/* C entry. * * \param argc the number of arguments. * \param argv the arguments. * * DO NOT CHANGES THE NAME OF PARAMETERS, otherwise your program will get * a compile error if you are using INIT_CMD_PIPE macro. */ int main(int argc, char *argv[]) { char buf[128]; char device_node_path[256]; char call_number[128]; int single_level; int setup_delay; int call_time; /* init cmd pipe after local variable declaration */ INIT_CMD_PIPE(); init_script(atoi(argv[2])); db_msg("2g tester\n"); if(script_fetch("2g","device_node",(int*)device_node_path,sizeof(device_node_path)/4)){ db_warn("2gtester:can't fetch device_node,set to /dev/ttyUSB0\n"); strcpy(device_node_path,"/dev/ttyUSB0"); } db_msg("device_node=%s\n",device_node_path); if(script_fetch("2g","call_number",(int*)call_number,sizeof(call_number)/4)){ db_warn("2gtester:can't fetch call_number,set to 10086\n"); strcpy(call_number,"10086"); } if(script_fetch("2g","setup_delay",&setup_delay,1)){ db_warn("2gtester:can't fetch setup_delay,set to 5s\n"); setup_delay=5; } if(script_fetch("2g","call_time",&call_time,1)){ db_warn("2gtester:can't fetch call_time,set to 30s\n"); call_time=30; } single_level=setup_2g_device(device_node_path,setup_delay); if(single_level==0) { SEND_CMD_PIPE_FAIL_EX("can't get single level"); return -1; } db_msg("single level=%d\n",single_level); sprintf(buf,"single level=%d dB\n",single_level); SEND_CMD_PIPE_OK_EX(buf); //make a telephone call with the specified number //return: 0 means ok; -1 means fail; if(call_number_2g_device(call_number)) { SEND_CMD_PIPE_FAIL_EX("can't make a call!"); return -1; } //call time delay,you can speak th each other in this time sleep(call_time); // hangup_2g_device(); /* send OK to core if test OK, otherwise send FAIL * by using SEND_CMD_PIPE_FAIL(). */ SEND_CMD_PIPE_OK_EX("test done"); return 0; }
/* C entry. * * \param argc the number of arguments. * \param argv the arguments. * * DO NOT CHANGES THE NAME OF PARAMETERS, otherwise your program will get * a compile error if you are using INIT_CMD_PIPE macro. */ int main(int argc, char *argv[]) { char device_node_path[256]; int setup_delay; int call_time; int loop_ctl_pipe_fd; int loop_mode_flag = 1; int ret = -1; /* init cmd pipe after local variable declaration */ INIT_CMD_PIPE(); init_script(atoi(argv[2])); db_msg("2glooptester\n"); if(script_fetch("loop","device_node",(int*)device_node_path,sizeof(device_node_path)/4)){ db_warn("2glooptester:can't fetch device_node,set to /dev/ttyUSB0\n"); strcpy(device_node_path,"/dev/ttyUSB0"); } db_msg("device_node=%s\n",device_node_path); if(script_fetch("loop","setup_delay",&setup_delay,1)){ db_warn("2glooptester:can't fetch setup_delay,set to 5s\n"); setup_delay=5; } if(script_fetch("loop","call_time",&call_time,1)){ db_warn("2glooptester:can't fetch call_time,set to 30s\n"); call_time=30; } /* single_level=setup_device(device_node_path,setup_delay); if(single_level==0) { SEND_CMD_PIPE_FAIL_EX("can't get single level"); return -1; }*/ loop_ctl_pipe_fd = open(LOOP_CTL_PIPE_NAME,O_RDONLY ,0); if(loop_ctl_pipe_fd==NULL){ printf("2glooptester:fail to open loop_ctl_pipe\n"); } setup_device(device_node_path,setup_delay); LOOP_TEST: if(enter_loop_mode()){ SEND_CMD_PIPE_FAIL_EX("failed:loop\n"); return 0; } if(loop_test()){ SEND_CMD_PIPE_FAIL_EX("failed:sound_loop\n"); return 0; } SEND_CMD_PIPE_OK(); //call time delay,you can speak th each other in this time // sleep(call_time); // exit_loop_mode(); /* send OK to core if test OK, otherwise send FAIL * by using SEND_CMD_PIPE_FAIL(). */ SEND_CMD_PIPE_OK_EX("test done"); while(1){ db_msg("get loop_ctl_pipe\n"); ret = read(loop_ctl_pipe_fd,&loop_mode_flag,sizeof(loop_mode_flag)); if(ret == -1){ db_msg("no data avlaible\n"); } db_msg("loop mode ON \n"); if(!loop_mode_flag){ db_msg("exit_loop_mode\n"); exit_loop_mode(); break; } sleep(1); } while(1){ ret = read(loop_ctl_pipe_fd,&loop_mode_flag,sizeof(loop_mode_flag)); if(ret == -1){ db_msg("no data avlaible\n"); } db_msg("loop mode OFF \n"); sleep(2); if(loop_mode_flag) goto LOOP_TEST; } close(loop_ctl_pipe_fd); return 0; }