int AT_Pre_Process (char *buf_cmd) { #if 0 if(!strcmp(buf_cmd, SLEEPMODE)){ LOGD(TAG "SLEEP_MODE"); pret = setSleepMode(fd_atcmd); if(!strcmp(pret, STR_OK)) write_chars(fd_uart, "OK\r",3); else write_chars(fd_uart, "ERROR\r",6); } else if(!strcmp(buf_cmd, EMER_CALL)){ LOGD(TAG "EMERCALL"); pret = dial112(fd_atcmd); if(!strcmp(pret, STR_OK)) write_chars(fd_uart, "OK\r",3); else write_chars(fd_uart, "ERROR\r",6); } else if(!strcmp(buf_cmd, GET_SN)) { LOGD(TAG "GET_SN"); pret = getSN(buf_ret, sizeof(buf_ret), fd_atcmd); if(!strcmp(pret, STR_OK)) write_chars(fd_uart, buf_ret, sizeof(buf_ret)); else write_chars(fd_uart, "ERROR\r",6); } else if(strstr(buf_cmd, SET_SN) || !strcmp(buf_cmd, ATH)) { LOGD(TAG "%s\n", buf_cmd); // Add '\r\n' tp command buf. buf_cmd[len] = '\r'; buf_cmd[len+1] = '\n'; buf_cmd[len+2] = '\0'; pret = at_command_set(buf_cmd, fd_atcmd); if(!strcmp(pret, STR_OK)) write_chars(fd_uart, "OK\r",3); else write_chars(fd_uart, "ERROR\r",6); } else if(!strcmp(buf_cmd, AT) || !strcmp(buf_cmd, ATE0)) { // AT and ATE0 are commands for test command between // ATE tool and target. Just return "OK\r" when receive. LOGD(TAG "%s\n", buf_cmd); write_chars(fd_uart, "OK\r",3); } else{ LOGD(TAG "Unsupported command\n"); write_chars(fd_uart, "ERROR\r",6); } #endif #ifdef MTK_DT_SUPPORT if(!strcmp(buf_cmd, "AT+SWITCH")) { LOGD(TAG "AT+SWITCH"); if(g_mdFlag==1) g_mdFlag=2; else if(g_mdFlag==2) g_mdFlag=1; else LOGD(TAG "Unsupported MD Flag\n"); } #endif return 0; }
int sigtest_entry(struct ftm_param *param, void *priv) { char *ptr; int chosen, i; bool exit = false; struct sigtest *st = (struct sigtest *)priv; struct itemview *iv; int ret; const char *pret; int test_result_temp = FTM_TEST_PASS; char dev_node1[32]; char dev_node2[32]; char dev_node5[32]; LOGD(TAG "%s\n", __FUNCTION__); if(is_support_modem(1)){ snprintf(dev_node1, 32, "%s", ccci_get_node_name(USR_FACTORY_DATA, MD_SYS1)); st->fd_atmd = openDeviceWithDeviceName(dev_node1); if (-1 == st->fd_atmd) { LOGD(TAG "Fail to open CCCI interface\n"); return 0; } for (i = 0; i<30; i++) usleep(50000); //sleep 1s wait for modem bootup } if(is_support_modem(2)){ snprintf(dev_node2, 32, "%s", ccci_get_node_name(USR_FACTORY_DATA, MD_SYS2)); st->fd_atmd2 = openDeviceWithDeviceName(dev_node2); if (-1 == st->fd_atmd2) { LOGD(TAG "Fail to open CCCI interface\n"); return 0; } for (i = 0; i<30; i++) usleep(50000); //sleep 1s wait for modem bootup } #if defined(MTK_EXTERNAL_MODEM_SLOT) && !defined(EVDO_DT_SUPPORT) #if defined(PURE_AP_USE_EXTERNAL_MODEM) st->fd_atmd_dt = openDeviceWithDeviceName("/dev/ttyUSB1"); #else st->fd_atmd_dt = openDeviceWithDeviceName("/dev/ttyMT0"); #endif //st->fd_atmd_dt= openDeviceWithDeviceName(CCCI_MODEM_MT6252); if (-1 == st->fd_atmd_dt) { LOGD(TAG "Fail to open CCCI interface\n"); return 0; } for (i = 0; i<30; i++) usleep(50000); //sleep 1s wait for modem bootup #endif if(is_support_modem(5)){ snprintf(dev_node5, 32, "%s", ccci_get_node_name(USR_FACTORY_DATA, MD_SYS5)); st->fd_atmd5 = openDeviceWithDeviceName(dev_node5); if (-1 == st->fd_atmd5) { LOGD(TAG "Fail to open /dev/eemcs_mux interface\n"); return 0; } for (i = 0; i<30; i++) usleep(50000); //sleep 1s wait for modem bootup } for (i = 0; i<50; i++) usleep(50000); //sleep 1s wait for modem bootup if(is_support_modem(1)){ ExitFlightMode (st->fd_atmd, TRUE); } if(is_support_modem(2)){ ExitFlightMode_DualTalk (st->fd_atmd2, TRUE); } #if defined(MTK_EXTERNAL_MODEM_SLOT) && !defined(EVDO_DT_SUPPORT) ExitFlightMode_DualTalk(st->fd_atmd_dt, TRUE); #endif for (i = 0; i<30; i++) usleep(50000); //sleep 1s wait for modem bootup if(is_support_modem(5)){ ExitFlightMode (st->fd_atmd5, TRUE); } init_text(&st->title, param->name, COLOR_YELLOW); init_text(&st->text, &st->info[0], COLOR_YELLOW); memset(&st->info[0], 0, sizeof(st->info)); sprintf(st->info, "%s\n", uistr_info_emergency_call_testing); st->exit_thd = false; if (!st->iv) { iv = ui_new_itemview(); if (!iv) { LOGD(TAG "No memory"); return -1; } st->iv = iv; } iv = st->iv; iv->set_title(iv, &st->title); iv->set_items(iv, sigtest_items, 0); iv->set_text(iv, &st->text); iv->start_menu(iv,0); iv->redraw(iv); #if 0 do { chosen = iv->run(iv, &exit); switch (chosen) { #ifdef MTK_DT_SUPPORT case ITEM_CALL_FOR_MODEM_75: pret = dial112(st->fd_atmd); if(!strcmp(pret, "OK")) { LOGD(TAG "Dial 112 Success\n"); sprintf(st->info, "%s\n", "Dial 112 Success!\n"); } else { LOGD(TAG "Dial 112 Fail\n"); sprintf(st->info, "%s\n", "Dial 112 Fail!\n"); } iv->redraw(iv); break; case ITEM_CALL_FOR_MODEM_52: pret = dial112(st->fd_atmd2); if(!strcmp(pret, "OK")) { LOGD(TAG "Dial 112 Success\n"); sprintf(st->info, "%s\n", "Dial 112 Success!\n"); } else { LOGD(TAG "Dial 112 Fail\n"); sprintf(st->info, "%s\n", "Dial 112 Fail!\n"); } iv->redraw(iv); break; #else case ITEM_EMG_CALL: LOGD(TAG "Come to EMG Call...\n"); //mtk70828 sprintf(st->info, "%s\n", "Dial 112 on going ...!\n"); iv->redraw(iv); //mtk70828 pret = dial112(st->fd_atmd); if(!strcmp(pret, "OK")) { LOGD(TAG "Dial 112 Success\n"); sprintf(st->info, "%s\n", "Dial 112 Success!\n"); } else { LOGD(TAG "Dial 112 Fail\n"); sprintf(st->info, "%s\n", "Dial 112 Fail!\n"); } iv->redraw(iv); break; #endif case ITEM_PASS: case ITEM_FAIL: if (chosen == ITEM_PASS) { st->mod->test_result = FTM_TEST_PASS; } else if (chosen == ITEM_FAIL) { st->mod->test_result = FTM_TEST_FAIL; } exit = true; break; } if (exit) { st->exit_thd = true; // Need to add ATH command else the loop back test will have noise. ExitFlightMode (st->fd_atmd, FALSE); #ifdef MTK_DT_SUPPORT ExitFlightMode_DualTalk (st->fd_atmd2, FALSE); #endif break; } } while (1); #endif if(is_support_modem(1)){ LOGD(TAG "Come to EMG Call IN MTK_ENABLE_MD1\n"); pret = dial112(st->fd_atmd); if(!strcmp(pret, "OK")) { LOGD(TAG "Dial 112 Success\n"); sprintf(st->info, "%s\n", uistr_info_emergency_call_success_in_modem1); st->mod->test_result = FTM_TEST_PASS; test_result_temp = FTM_TEST_PASS; } else { LOGD(TAG "Dial 112 Fail IN MTK_ENABLE_MD1\n"); sprintf(st->info, "%s\n", uistr_info_emergency_call_fail_in_modem1); st->mod->test_result = FTM_TEST_FAIL; test_result_temp = FTM_TEST_FAIL; } ExitFlightMode (st->fd_atmd, FALSE); closeDevice(st->fd_atmd); iv->redraw(iv); } if(is_support_modem(2)){ LOGD(TAG "Come to EMG Call\n"); pret = dial112(st->fd_atmd2); if(!strcmp(pret, "OK")) { LOGD(TAG "Dial 112 Success\n"); sprintf(st->info, "%s\n", uistr_info_emergency_call_success_in_modem2); if(test_result_temp == FTM_TEST_PASS) { st->mod->test_result = FTM_TEST_PASS; } else { st->mod->test_result = FTM_TEST_FAIL; } } else { LOGD(TAG "Dial 112 Fail in MTK_ENABLE_MD2\n"); sprintf(st->info, "%s\n", uistr_info_emergency_call_fail_in_modem2); st->mod->test_result = FTM_TEST_FAIL; } ExitFlightMode (st->fd_atmd2, FALSE); closeDevice (st->fd_atmd2); iv->redraw(iv); } #if defined(MTK_EXTERNAL_MODEM_SLOT) && !defined(EVDO_DT_SUPPORT) LOGD(TAG "Come to EMG Call\n"); pret = dial112(st->fd_atmd_dt); if(!strcmp(pret, "OK")) { LOGD(TAG "Dial 112 Success\n"); sprintf(st->info, "%s\n", uistr_info_emergency_call_success_in_modem2); if(test_result_temp == FTM_TEST_PASS) { st->mod->test_result = FTM_TEST_PASS; } else { st->mod->test_result = FTM_TEST_FAIL; } } else { LOGD(TAG "Dial 112 Fail in MTK_ENABLE_MD2\n"); sprintf(st->info, "%s\n", uistr_info_emergency_call_fail_in_modem2); st->mod->test_result = FTM_TEST_FAIL; } ExitFlightMode (st->fd_atmd_dt, FALSE); closeDevice (st->fd_atmd_dt); iv->redraw(iv); #endif if(is_support_modem(5)){ LOGD(TAG "Come to EMG Call IN MTK_ENABLE_MD5\n"); pret = dial112(st->fd_atmd5); if(!strcmp(pret, "OK")) { LOGD(TAG "Dial 112 Success\n"); sprintf(st->info, "%s\n", uistr_info_emergency_call_success_in_modem5); st->mod->test_result = FTM_TEST_PASS; test_result_temp = FTM_TEST_PASS; } else { LOGD(TAG "Dial 112 Fail IN MTK_ENABLE_MD5\n"); sprintf(st->info, "%s\n", uistr_info_emergency_call_fail_in_modem5); st->mod->test_result = FTM_TEST_FAIL; test_result_temp = FTM_TEST_FAIL; } ExitFlightMode (st->fd_atmd5, FALSE); closeDevice(st->fd_atmd5); iv->redraw(iv); } return 0; }
int sigtest_entry(struct ftm_param *param, void *priv) { char *ptr; int chosen, i; bool exit = false; struct sigtest *st = (struct sigtest *)priv; struct itemview *iv; int ret; const char *pret; LOGD(TAG "%s\n", __FUNCTION__); #ifdef MTK_DT_SUPPORT st->fd_atmd = openDeviceWithDeviceName(CCCI_MODEM_MT6575); if (-1 == st->fd_atmd) { LOGD(TAG "Fail to open CCCI interface\n"); return 0; } st->fd_atmd2 = openDeviceWithDeviceName(CCCI_MODEM_MT6252); if (-1 == st->fd_atmd2) { LOGD(TAG "Fail to open CCCI interface\n"); return 0; } initTermIO(st->fd_atmd2,5); #else st->fd_atmd = openDevice(); if(-1 == st->fd_atmd) { LOGD(TAG "Fail to open CCCI interface\n"); return 0; } #endif for (i = 0; i<30; i++) usleep(50000); //sleep 1s wait for modem bootup ExitFlightMode (st->fd_atmd, TRUE); #ifdef MTK_DT_SUPPORT ExitFlightMode_DualTalk (st->fd_atmd2, TRUE); #endif init_text(&st->title, param->name, COLOR_YELLOW); init_text(&st->text, &st->info[0], COLOR_YELLOW); //sigtest_update_info(st, st->info); sprintf(st->info, "%s", "Emergency call is not started!\n"); st->exit_thd = false; if (!st->iv) { iv = ui_new_itemview(); if (!iv) { LOGD(TAG "No memory"); return -1; } st->iv = iv; } iv = st->iv; iv->set_title(iv, &st->title); iv->set_items(iv, sigtest_items, 0); iv->set_text(iv, &st->text); do { chosen = iv->run(iv, &exit); switch (chosen) { #ifdef MTK_DT_SUPPORT case ITEM_CALL_FOR_MODEM_75: pret = dial112(st->fd_atmd); if(!strcmp(pret, "OK")) { LOGD(TAG "Dial 112 Success\n"); sprintf(st->info, "%s\n", "Dial 112 Success!\n"); } else { LOGD(TAG "Dial 112 Fail\n"); sprintf(st->info, "%s\n", "Dial 112 Fail!\n"); } iv->redraw(iv); break; case ITEM_CALL_FOR_MODEM_52: pret = dial112(st->fd_atmd2); if(!strcmp(pret, "OK")) { LOGD(TAG "Dial 112 Success\n"); sprintf(st->info, "%s\n", "Dial 112 Success!\n"); } else { LOGD(TAG "Dial 112 Fail\n"); sprintf(st->info, "%s\n", "Dial 112 Fail!\n"); } iv->redraw(iv); break; #else case ITEM_EMG_CALL: LOGD(TAG "Come to EMG Call...\n"); //mtk70828 sprintf(st->info, "%s\n", "Dial 112 on going ...!\n"); iv->redraw(iv); //mtk70828 pret = dial112(st->fd_atmd); if(!strcmp(pret, "OK")) { LOGD(TAG "Dial 112 Success\n"); sprintf(st->info, "%s\n", "Dial 112 Success!\n"); } else { LOGD(TAG "Dial 112 Fail\n"); sprintf(st->info, "%s\n", "Dial 112 Fail!\n"); } iv->redraw(iv); break; #endif case ITEM_PASS: case ITEM_FAIL: if (chosen == ITEM_PASS) { st->mod->test_result = FTM_TEST_PASS; } else if (chosen == ITEM_FAIL) { st->mod->test_result = FTM_TEST_FAIL; } exit = true; break; } if (exit) { st->exit_thd = true; // Need to add ATH command else the loop back test will have noise. ExitFlightMode (st->fd_atmd, FALSE); #ifdef MTK_DT_SUPPORT ExitFlightMode_DualTalk (st->fd_atmd2, FALSE); #endif break; } } while (1); closeDevice(st->fd_atmd); #ifdef MTK_DT_SUPPORT closeDevice (st->fd_atmd2); #endif return 0; }