diff --git a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S530/profile b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S530/profile index 2717fbebe..365a33844 100755 --- a/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S530/profile +++ b/BSP/root-fs/rootfs/etc_Model/etc_565_HUNTING_EVB_LINUX_4G_S530/profile @@ -78,4 +78,5 @@ alias 4gusbboot='cardv sys 4gusbboot' alias ftpsw='cardv sys ftpsw' alias ftpset='cardv sys ftpset' alias ftpsset='cardv sys ftpsset' -alias stampsw='cardv sys stampsw' \ No newline at end of file +alias stampsw='cardv sys stampsw' +alias gprssw='cardv sys gprssw' \ No newline at end of file diff --git a/code/application/sifarsdk b/code/application/sifarsdk index 4fab386ee..16e808c3a 160000 --- a/code/application/sifarsdk +++ b/code/application/sifarsdk @@ -1 +1 @@ -Subproject commit 4fab386ee16f4716fba25bb439f17cd360a7135d +Subproject commit 16e808c3a97ba4c47dd683f1daa79b4459b20202 diff --git a/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/IOCfg.c b/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/IOCfg.c index c345c91a7..e279b417d 100755 --- a/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/IOCfg.c +++ b/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/IOCfg.c @@ -464,7 +464,7 @@ void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo } else { - ui_rise = 45;//55% + ui_rise = 60;//40% } } else @@ -475,7 +475,7 @@ void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo } else { - ui_rise = 30;//70% + ui_rise = 55;//45% } } #else @@ -489,7 +489,7 @@ void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo } else { - ui_rise = 45;//55% + ui_rise = 65;//35% } } else @@ -500,7 +500,7 @@ void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo } else { - ui_rise = 30;//70% + ui_rise = 60;//40% } } #endif diff --git a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h index eccee93fa..e1009326c 100755 --- a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h +++ b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h @@ -920,7 +920,7 @@ #define HUNTING_MCU_I2C DISABLE #define HUNTING_MCU_UART ENABLE #define HUNTING_IR_LED_940 DISABLE -#define SF_BASE_VERSION "7MD4RCwD6T8" +#define SF_BASE_VERSION "7MD4RCwD6T9" #define HW_S530 1 #define DCF_DIR_NAME "MEDIA" /* 100MEDIA */ #define DCF_FILE_NAME "SYFW" /* SYFW0001.JPG */ diff --git a/code/application/source/cardv/SrcCode/System/SysMain_cmd.c b/code/application/source/cardv/SrcCode/System/SysMain_cmd.c index 7b9e113a2..7fda1556b 100755 --- a/code/application/source/cardv/SrcCode/System/SysMain_cmd.c +++ b/code/application/source/cardv/SrcCode/System/SysMain_cmd.c @@ -256,6 +256,7 @@ SXCMD_ITEM("dispparaset %", sf_cmd_disp_para_set, "dispparaset v1 v2 v3 v4 v5 v6 SXCMD_ITEM("ftpsw %", sf_cmd_ftp_switch, "ftpsw v1") SXCMD_ITEM("ftpset %", sf_cmd_ftp, "ftpset v1 v2 v3 v4") SXCMD_ITEM("ftpsset %", sf_cmd_ftps, "ftpsset v1 v2 v3 v4") +SXCMD_ITEM("gprssw %", sf_cmd_gprs_switch, "gprssw 0/1") #endif diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h index ccf2cb4f2..11d7f3da8 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h @@ -177,7 +177,7 @@ #if SF_IQ_TEST == ENABLE #if SF_HW_TEST == ENABLE - #define DEFAULT_BOOT_WORK_MODE SF_CAM_MODE_PHOTO + #define DEFAULT_BOOT_WORK_MODE SF_CAM_MODE_PHOTO_VIDEO #define DEFAULT_PIR_SWITCH SF_OFF #define DEFAULT_PIR_SENSITIVITY SF_PIR_SENSITIVITY_0 #define DEFAULT_TIMELAPSE_SWITCH SF_ON diff --git a/code/application/source/sf_app/code/include/sf_hal_ttyusb.h b/code/application/source/sf_app/code/include/sf_hal_ttyusb.h index 1a3d6c35d..03fddc650 100755 --- a/code/application/source/sf_app/code/include/sf_hal_ttyusb.h +++ b/code/application/source/sf_app/code/include/sf_hal_ttyusb.h @@ -61,6 +61,16 @@ typedef struct sf_SERIAL_DATA_FRAME_TYPE_S { }SF_SERIAL_DATA_FRAME_TYPE_S; +typedef struct sf_TTY_DATA_TYPE_S { + int waitMs; + unsigned int len; + unsigned int lenMax; + char *cmp; + char *cmperr; + char *data; +}SF_TTY_DATA_TYPE_S; + + SINT32 sf_hal_ttyusb2_init(void); SINT32 sf_hal_ttyusb2_write(SF_CHAR *sendBuf, SINT32 dataLen); @@ -77,7 +87,7 @@ SINT32 sf_hal_uart_read(SF_CHAR *recvBuf, SINT32 waitMs); SINT32 sf_hal_uart_deinit(void); - +SINT32 sf_hal_ttyusb2_read_buf(SF_TTY_DATA_TYPE_S *recv); #ifdef __cplusplus #if __cplusplus diff --git a/code/application/source/sf_app/code/include/sf_param_enum.h b/code/application/source/sf_app/code/include/sf_param_enum.h index 3c2605e30..1abfaba3d 100755 --- a/code/application/source/sf_app/code/include/sf_param_enum.h +++ b/code/application/source/sf_app/code/include/sf_param_enum.h @@ -480,6 +480,8 @@ typedef enum sf_PARA_MESSAGE_TYPE_E SF_PARA_CMD_NET_STATUS = 0x1F00, SF_PARA_CMD_IR_LED_STATUS = 0x1F01, SF_PARA_CMD_BATTERY_LEVEL = 0x1F02, + SF_PARA_CMD_WAIT = 0x1F03, + SF_PARA_CMD_SIG = 0x1F04, }SF_PARA_MESSAGE_TYPE_E; typedef enum sf_WIFI_MESSAGE_TYPE_E diff --git a/code/application/source/sf_app/code/include/sf_system.h b/code/application/source/sf_app/code/include/sf_system.h index 4012b7f17..337efbac7 100755 --- a/code/application/source/sf_app/code/include/sf_system.h +++ b/code/application/source/sf_app/code/include/sf_system.h @@ -49,7 +49,8 @@ SINT32 app_preinit(void); UINT8 *sf_versionGet(UINT8 ver[],UINT8 fea[]); void sf_power_off(void); - +void sf_set_wait_shared_condition(int in); +SINT32 sf_app_para_signaling_start(void); SINT32 sf_app_para_check_start(void); SINT32 sf_app_para_check_stop(void); SINT32 sf_app_battery_start(void); diff --git a/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c b/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c index 29df43c1d..fc7671909 100755 --- a/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c @@ -2394,7 +2394,7 @@ SINT32 sf_module_complete_init(void) UINT8 strSave[21] = { 0 }; UINT8 strNow[21] = { 0 }; UINT8 strtmp[12][70] = { { 0 } }; - + SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 1000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara}; char *pTemp = NULL; char *delim = NULL; @@ -2419,6 +2419,9 @@ SINT32 sf_module_complete_init(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); callTime = 0; + //ttyData.cmp = "OK"; + ttyData.len = 21; + //sf_sleep_ms(50); } else if(strstr((const char *)gsmPara, "CME ERROR: SIM not inserted")) { @@ -2436,6 +2439,8 @@ SINT32 sf_module_complete_init(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); //printf("ttyRet:%d\n", ttyRet); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + //ttyData.cmp = "ATE1"; + ttyData.len = strlen(gsmPara) + 2; } break; @@ -2480,6 +2485,8 @@ SINT32 sf_module_complete_init(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); callTime = 0; + ttyData.cmp = "Revision"; + ttyData.len = 20; } else { @@ -2537,6 +2544,8 @@ SINT32 sf_module_complete_init(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); callTime = 0; + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } else { @@ -2584,6 +2593,8 @@ SINT32 sf_module_complete_init(void) } ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } else { @@ -2607,6 +2618,7 @@ SINT32 sf_module_complete_init(void) strcpy((char *)gsmPara, "AT+QSIMSTAT?\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.len = strlen(gsmPara) + 2; } else { @@ -2665,6 +2677,7 @@ SINT32 sf_module_complete_init(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); callTime = 0; + ttyData.len = strlen(gsmPara) + 2; } else if((strstr((const char *)gsmPara, "+QSIMSTAT: 0,2"))) { @@ -2715,7 +2728,7 @@ SINT32 sf_module_complete_init(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); callTime = 0; - + ttyData.len = strlen(gsmPara) + 2; break; case QUECTEL_NETREG_QCFG_NTP: @@ -2726,6 +2739,7 @@ SINT32 sf_module_complete_init(void) strcpy((char *)gsmPara, "AT+QURCCFG=\"urcport\",\"usbat\"\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.len = strlen(gsmPara) + 2; } break; @@ -2738,6 +2752,7 @@ SINT32 sf_module_complete_init(void) strcpy((char *)gsmPara, "AT+QCFG=\"risignaltype\",\"physical\"\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.len = strlen(gsmPara) + 2; } break; @@ -2750,6 +2765,7 @@ SINT32 sf_module_complete_init(void) strcpy((char *)gsmPara, "AT+QCFG=\"urc/ri/other\",\"off\"\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.len = strlen(gsmPara) + 2; } break; @@ -2869,6 +2885,7 @@ SINT32 sf_module_complete_init(void) strcpy((char *)gsmPara, "AT+CPIN?\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.len = strlen(gsmPara) + 2; } else{ if(strstr((const char *)gsmPara, "OK")) @@ -2877,6 +2894,7 @@ SINT32 sf_module_complete_init(void) strcpy((char *)gsmPara, "AT+CPIN?\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.len = strlen(gsmPara) + 2; } } break; @@ -2893,6 +2911,8 @@ SINT32 sf_module_complete_init(void) strcpy((char *)gsmPara, "AT+QCCID\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "+QCCID:"; + ttyData.len = MODULE_ICCID_LEN; } else { @@ -2950,6 +2970,14 @@ SINT32 sf_module_complete_init(void) SLOGE(logStr); goto SF_MODULE_END; } + else if(strstr((const char *)gsmPara, "ERROR")) + { + ret = SF_SIM_ERROR_AT_TIMEOUT; + SLOGE(gsmPara); + sprintf((char *)logStr, "Error Code:0x%08X\n", ret); + SLOGE(logStr); + goto SF_MODULE_END; + } else { if(time % 10 == 0) @@ -2997,6 +3025,7 @@ SINT32 sf_module_complete_init(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); callTime = 0; + ttyData.len = strlen(gsmPara) + 2; } break; @@ -3012,6 +3041,8 @@ SINT32 sf_module_complete_init(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); callTime = 0; + ttyData.cmp = "+QCCID:"; + ttyData.len = MODULE_ICCID_LEN; } else { @@ -3089,7 +3120,8 @@ SINT32 sf_module_complete_init(void) break; } sf_gsm_para_buff_clear(); - sf_hal_ttyusb2_read(gsmPara, 200); + //sf_hal_ttyusb2_read(gsmPara, 200); + sf_hal_ttyusb2_read_buf(&ttyData); if(gsmPara[0] != '\0') { @@ -3140,8 +3172,8 @@ SINT32 sf_net_regist_manual(void) UINT8 strtmp[12][70] = { { 0 } }; char *pTemp = NULL; char *delim = NULL; - UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 500, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara}; SF_LOG(" s\n"); @@ -3165,6 +3197,8 @@ SINT32 sf_net_regist_manual(void) strcpy((char *)gsmPara, "AT+CIMI\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; break; case QUECTEL_NETREG_CIMI_1: @@ -3230,7 +3264,7 @@ SINT32 sf_net_regist_manual(void) SF_LOG("operation info manual set,default success.\n"); } - if(strstr((const char *)puiPara->Sim4gApn, APN_4G_VERIZON)) + if((strstr((const char *)puiPara->Sim4gApn, APN_4G_VERIZON)) && ((SF_STRNCMP(puiPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q, 6) != 0))) { eNetRegLocation = QUECTEL_NETREG_QNVFW; sprintf((char *)gsmPara, "%s", "at+qnvfr=\"/nv/item_files/modem/uim/gstk/feature_bmsk\"\r"); @@ -3248,7 +3282,8 @@ SINT32 sf_net_regist_manual(void) eNetRegLocation = QUECTEL_NETREG_CGDCONT; } - + //ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); @@ -3300,6 +3335,8 @@ SINT32 sf_net_regist_manual(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + //ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } else { @@ -3316,6 +3353,8 @@ SINT32 sf_net_regist_manual(void) sprintf((char *)gsmPara, "%s", "AT+QICSGP=1\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } break; @@ -3357,6 +3396,8 @@ SINT32 sf_net_regist_manual(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } break; @@ -3408,6 +3449,8 @@ SINT32 sf_net_regist_manual(void) SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/ + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } break; @@ -3442,6 +3485,8 @@ SINT32 sf_net_regist_manual(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); } + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } else { @@ -3533,7 +3578,8 @@ SINT32 sf_net_regist_manual(void) SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); AddCimiTimes++; time = 0; - + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; //sf_set_netsearch_step(GPRS_SEARCH_STEP_RETRYING); //sp5kHostMsgSend(APP_UI_MSG_TRANSFER_REFLUSH, 0, 0, 0); } @@ -3555,6 +3601,8 @@ SINT32 sf_net_regist_manual(void) strcpy((char *)gsmPara, "AT+QCFG=\"tcp/windowsize\",0,100\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } break; @@ -3567,6 +3615,8 @@ SINT32 sf_net_regist_manual(void) strcpy((char *)gsmPara, "AT+QCFG=\"tcp/windowsize\",1,100\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } break; @@ -3580,6 +3630,8 @@ SINT32 sf_net_regist_manual(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); callTime = 0; + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } break; @@ -3632,6 +3684,8 @@ SINT32 sf_net_regist_manual(void) SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); callTime = 0; } + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } else { @@ -3678,6 +3732,8 @@ SINT32 sf_net_regist_manual(void) strcpy((char *)gsmPara, "AT+COPS?\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } else { @@ -3744,6 +3800,8 @@ SINT32 sf_net_regist_manual(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); sf_sleep_ms(300); + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } } else if(cqSignal <= 1) @@ -3800,6 +3858,8 @@ SINT32 sf_net_regist_manual(void) strcpy((char *)gsmPara, "AT&W\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } else { @@ -3820,7 +3880,8 @@ SINT32 sf_net_regist_manual(void) break; } sf_gsm_para_buff_clear(); - sf_hal_ttyusb2_read(gsmPara, 200); + //sf_hal_ttyusb2_read(gsmPara, 200); + sf_hal_ttyusb2_read_buf(&ttyData); if(gsmPara[0] != '\0') { @@ -3876,6 +3937,7 @@ SINT32 sf_auto_net_reg(void) char *delim = NULL; UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 500, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara}; SF_LOG(" s\n"); @@ -3896,6 +3958,7 @@ SINT32 sf_auto_net_reg(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); eNetRegLocation = QUECTEL_NETREG_QSIMSTAT; + ttyData.len = strlen(gsmPara) + 2; } else if(strstr((const char *)gsmPara, "ERROR")) { @@ -3910,6 +3973,7 @@ SINT32 sf_auto_net_reg(void) strcpy((char *)gsmPara, "ATE1\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.len = strlen(gsmPara) + 2; } break; @@ -3958,6 +4022,7 @@ SINT32 sf_auto_net_reg(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.len = strlen(gsmPara) + 2; } else if((strstr((const char *)gsmPara, "+QSIMSTAT: 0,2"))) { @@ -4010,6 +4075,7 @@ SINT32 sf_auto_net_reg(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); //DelayTime = 50; + ttyData.len = strlen(gsmPara) + 2; } break; @@ -4038,6 +4104,8 @@ SINT32 sf_auto_net_reg(void) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } break; @@ -4052,6 +4120,8 @@ SINT32 sf_auto_net_reg(void) SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/ + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } break; @@ -4100,6 +4170,8 @@ SINT32 sf_auto_net_reg(void) sprintf((char *)gsmPara, "AT+CIMI\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } } else @@ -4164,7 +4236,8 @@ SINT32 sf_auto_net_reg(void) SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); AddCimiTimes++; time = 0; - + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; //sf_set_netsearch_step(GPRS_SEARCH_STEP_RETRYING); //sp5kHostMsgSend(APP_UI_MSG_TRANSFER_REFLUSH, 0, 0, 0); } @@ -4226,6 +4299,8 @@ SINT32 sf_auto_net_reg(void) SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); callTime = 0; } + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } else { @@ -4374,7 +4449,8 @@ SINT32 sf_auto_net_reg(void) } sf_gsm_para_buff_clear(); - sf_hal_ttyusb2_read(gsmPara, 200); + //sf_hal_ttyusb2_read(gsmPara, 200); + sf_hal_ttyusb2_read_buf(&ttyData); if(gsmPara[0] != '\0') { @@ -4529,6 +4605,7 @@ SINT32 sf_get_utc(VOID) printf("[%s:%d] s\n", __FUNCTION__, __LINE__); UIMenuStoreInfo *pPara = sf_app_ui_para_get(); + SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 2000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara}; sf_gsm_para_buff_clear(); @@ -4593,6 +4670,8 @@ SINT32 sf_get_utc(VOID) strcpy((char *)gsmPara, "AT+QLTS=2\r"); ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } } @@ -4602,8 +4681,8 @@ SINT32 sf_get_utc(VOID) break; } sf_gsm_para_buff_clear(); - - sf_hal_ttyusb2_read(gsmPara, 200); + //sf_hal_ttyusb2_read(gsmPara, 200); + sf_hal_ttyusb2_read_buf(&ttyData); if(gsmPara[0] != '\0') { @@ -4660,6 +4739,7 @@ SINT32 sf_get_ntp(SINT32 value, SF_PARA_TIME_S *current_time) printf("[%s:%d] s\n", __FUNCTION__, __LINE__); UIMenuStoreInfo *pPara = sf_app_ui_para_get(); + SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 2000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara}; sf_gsm_para_buff_clear(); @@ -4687,6 +4767,8 @@ SINT32 sf_get_ntp(SINT32 value, SF_PARA_TIME_S *current_time) ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara)); SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); eSmsLocation = SMS_SIM_INIT_CNTPTO; + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; break; case SMS_SIM_INIT_CNTPTO: @@ -4699,6 +4781,8 @@ SINT32 sf_get_ntp(SINT32 value, SF_PARA_TIME_S *current_time) SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); eSmsLocation = SMS_SIM_INIT_ATCNTP; calltime = 0; + ttyData.cmp = "OK"; + ttyData.len = strlen(gsmPara) + 2; } else if(strstr((const char *)gsmPara, "ERROR") != NULL) { @@ -4831,7 +4915,8 @@ SINT32 sf_get_ntp(SINT32 value, SF_PARA_TIME_S *current_time) break; } sf_gsm_para_buff_clear(); - sf_hal_ttyusb2_read(gsmPara, 200); + //sf_hal_ttyusb2_read(gsmPara, 200); + sf_hal_ttyusb2_read_buf(&ttyData); if(gsmPara[0] != '\0') { diff --git a/code/application/source/sf_app/code/source/4gMng/sf_sms.c b/code/application/source/sf_app/code/source/4gMng/sf_sms.c index 0aeb030bc..66929bf47 100755 --- a/code/application/source/sf_app/code/source/4gMng/sf_sms.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_sms.c @@ -1332,7 +1332,7 @@ SINT32 sf_sms_read_message(void) break; case SMS_SIM_CMGR: - + TO_SMS_SIM_CMGR: if(number > 254) { number = 0; @@ -1442,6 +1442,8 @@ SINT32 sf_sms_read_message(void) eSmsLocation = SMS_SIM_CMGR; msmll--; number = msmtmp[msmmb++]; + printf("\n[%s:%d] pSifarPara->SmsFlag:%d\n", __FUNCTION__, __LINE__, pSifarPara->SmsFlag); + goto TO_SMS_SIM_CMGR; } else { @@ -1454,9 +1456,10 @@ SINT32 sf_sms_read_message(void) printf("read msg null, delete REC READ\n"); eSmsLocation = SMS_SIM_CMGD2; + printf("\n[%s:%d] pSifarPara->SmsFlag:%d\n", __FUNCTION__, __LINE__, pSifarPara->SmsFlag); + goto TO_SMS_SIM_CMGD2; } - printf("\n[%s:%d] pSifarPara->SmsFlag:%d\n", __FUNCTION__, __LINE__, pSifarPara->SmsFlag); break; } else if((strstr((const char *)gsmPara, "+CMGR:")) && (number < 255)) @@ -1469,7 +1472,17 @@ SINT32 sf_sms_read_message(void) { //no sms command,exit; getCmdFlag = 0; - eSmsLocation = SMS_SIM_CMDFLAG; + printf("[%s:%d] getCmdFlag:%d\n", __FUNCTION__, __LINE__, getCmdFlag); + if(getCmdFlag) + { + eSmsLocation = SMS_SIM_CMGR; + goto TO_SMS_SIM_CMGR; + } + else + { + eSmsLocation = SMS_SIM_CMGD2; + goto TO_SMS_SIM_CMGD2; + } break; } @@ -1509,214 +1522,24 @@ SINT32 sf_sms_read_message(void) Readmmsok = sf_message_data_processing(strValue, mm, &sms_send_mode); - if((Readmmsok == SMS_STATUS_NO_RESPONSE) || (Readmmsok == SMS_STATUS_IDLE)) - { - eSmsLocation = SMS_SIM_CMDFLAG; - } - else - { - eSmsLocation = SMS_SIM_CMDFLAG; - } + printf("[%s:%d] getCmdFlag:%d Readmmsok:%d\n", __FUNCTION__, __LINE__, getCmdFlag, Readmmsok); + if(getCmdFlag) + { + eSmsLocation = SMS_SIM_CMGR; + goto TO_SMS_SIM_CMGR; + } + else + { + eSmsLocation = SMS_SIM_CMGD2; + goto TO_SMS_SIM_CMGD2; + } //add = 0; - break; - #if 0 - case SMS_SIM_CMGS: - printf("%s:%d getCmdFlag:%d\n", __FUNCTION__, __LINE__, getCmdFlag); - - - if(((pPara->Phone1[0] == '\0') && (pPara->Phone2[0] == '\0') && (pPara->Phone3[0] == '\0') && (pPara->Phone4[0] == '\0')) || (!Readmmsok)) - { - if(getCmdFlag) - { - eSmsLocation = SMS_SIM_CMGR; //no send,but need continue read. - } - else - { - eSmsLocation = SMS_SIM_CMGD2; //no send,no read,exit. - } - } - else - { - /*if(getCmdFlag) - { - eSmsLocation = SMS_SIM_CMGR; //no send,continue read. - break; - } - else - { - //read all message,then send. - }*/ - - if(pPara->Phone1[0] != '\0') - { - sprintf((char *)gsmPara, "AT+CMGS=\"%s\"\r", pPara->Phone1); - } - else if(pPara->Phone2[0] != '\0') - { - sprintf((char *)gsmPara, "AT+CMGS=\"%s\"\r", pPara->Phone2); - } - else if(pPara->Phone3[0] != '\0') - { - sprintf((char *)gsmPara, "AT+CMGS=\"%s\"\r", pPara->Phone3); - } - else if(pPara->Phone4[0] != '\0') - { - sprintf((char *)gsmPara, "AT+CMGS=\"%s\"\r", pPara->Phone4); - } - - ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); - SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); - eSmsLocation = SMS_SIM_CONTENT; - } - - break; - - case SMS_SIM_CONTENT: - - if(strstr((const char *)gsmPara, ">")) - { - if(sms_send_mode == 0) - { - if(Readmmsok == SMS_STATUS_RECIEV) - { - sprintf((char *)gsmPara, "SMS commands executed successfully!\x1a\r"); - } - else if(Readmmsok == SMS_STATUS_FORMAT_ERR) - { - sprintf((char *)gsmPara, "SMS command format error!\x1a\r"); - } - else if(Readmmsok == SMS_STATUS_PARA_ERR) - { - sprintf((char *)gsmPara, "SMS command parameter error!\x1a\r"); - } - else - { - sprintf((char *)gsmPara, "SMS command unknown error!\x1a\r"); - } - } - else if(sms_send_mode == 1) - { - if(Readmmsok == SMS_STATUS_RECIEV) - { - if(IS_CARD_EXIST) - { - sp5kDiskInfoGet(SP5K_DRIVE_SD, SP5K_DISK_SIZE_BY_MEGA_BYTE, &totalSize); - sp5kDiskInfoGet(SP5K_DRIVE_SD, SP5K_DISK_FREE_SIZE_BY_KBYTE, &dskfree); - dskfree = dskfree / 1024; - sprintf((char *)dskfreeStr, "%dM/%dM", dskfree, totalSize); - } - else - { - sprintf((char *)dskfreeStr, "NO CARD"); - } - - sf_versionGet(localver, localfea); - sf_mcu_version_get(mcuVersion); - sprintf((char *)gsmPara, "ModuleImei:%s VER:%s MCU VER:%s CSQ:%d SD:%s Bat:%d%%\x1a\r", \ - pPara->ModuleImei, localver, mcuVersion, cq_Signal, dskfreeStr, sf_battery_value_get(0)); - } - else if(Readmmsok == SMS_STATUS_PARA_ERR) - { - sprintf((char *)gsmPara, "SMS command parameter error!\x1a\r"); - } - else - { - sprintf((char *)gsmPara, "SMS command unknown error!\x1a\r"); - } - } - else if(sms_send_mode == 2) - { - if(Readmmsok == SMS_STATUS_RECIEV) - { - sprintf((char *)gsmPara, "SMS commands executed successfully!\x1a\r"); - } - else if(Readmmsok == SMS_STATUS_FORMAT_ERR) - { - sprintf((char *)gsmPara, "SMS command format error!\x1a\r"); - } - else if(Readmmsok == SMS_STATUS_PARA_ERR) - { - sprintf((char *)gsmPara, "SMS command parameter error!\x1a\r"); - } - else - { - sprintf((char *)gsmPara, "SMS command unknown error!\x1a\r"); - } - } - else - { - sprintf((char *)gsmPara, "SMS unknown error!\x1a\r"); - } - - SLOGE((SINT8 *)gsmPara); - - ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara)); - SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE); - eSmsLocation = SMS_SIM_REPLY; - } - else - { - eSmsLocation = SMS_SIM_CMGD2; - } - - break; - - case SMS_SIM_REPLY: - - if(strstr((const char *)gsmPara, "OK")) - { - eSmsLocation = SMS_SIM_CMDFLAG; - Readmmsok = 0; - } - else if(strstr((const char *)gsmPara, "ERROR: 350")) - { - add++; - - if(add < 3) - { - eSmsLocation = SMS_SIM_CMGS; //retry send two times. - } - else - { - Readmmsok = 0; - eSmsLocation = SMS_SIM_CMDFLAG; - sts = SF_SMS_ERROR_SEND_MSG; - add = 0; - - SLOGE((SINT8 *)gsmPara); - sprintf((char *)errMsg, "[%s:%d]Send SMS Three Times,Error Code:0x%08X", __FUNCTION__, __LINE__, sts); - SLOGE((SINT8 *)errMsg); - } - } - else if(strstr((const char *)gsmPara, "ERROR")) - { - eSmsLocation = SMS_SIM_CMDFLAG; - Readmmsok = 0; - sts = SF_SMS_ERROR_SEND_MSG; - SLOGE((SINT8 *)gsmPara); - sprintf((char *)errMsg, "[%s:%d]Send SMS Fail,Error Code:0x%08X", __FUNCTION__, __LINE__, sts); - SLOGE((SINT8 *)errMsg); - } - - break; -#endif - case SMS_SIM_CMDFLAG: - printf("getCmdFlag:%d\n", getCmdFlag); - - if(getCmdFlag) - { - eSmsLocation = SMS_SIM_CMGR; - } - else - { - eSmsLocation = SMS_SIM_CMGD2; - } - break; case SMS_SIM_CMGD2: + TO_SMS_SIM_CMGD2: strcpy((char *)gsmPara, "AT+CMGD=1,3\r"); printf("[%s:%d] %s\n", __FUNCTION__, __LINE__,gsmPara); diff --git a/code/application/source/sf_app/code/source/app/sf_app.c b/code/application/source/sf_app/code/source/app/sf_app.c index 7dba47d38..b33261d75 100755 --- a/code/application/source/sf_app/code/source/app/sf_app.c +++ b/code/application/source/sf_app/code/source/app/sf_app.c @@ -61,6 +61,7 @@ extern pthread_mutex_t Param_mutexLock; extern pthread_mutex_t GPIO_mutexLock; +extern pthread_cond_t condition; //---------------------UIInfo Global Variables ----------------------------- UIMenuStoreInfo currentInfo = {0}; //#NT#Init the array to zero. UIMenuStoreInfo origInfo = {0}; /* backup */ @@ -154,7 +155,7 @@ int main(int argc, char *argv[]) if((!isUsb) && (SF_MCU_STARTUP_NORMAL != startup) && (SF_MCU_STARTUP_OFF != startup)/*&& (0 == isUpdate)*/) { #if SF_IQ_TEST != ENABLE - if((0 == isUpdate)) + if((0 == isUpdate) && (puiPara->GprsSwitch)) { sf_4G_usb_init(); app_RegisterNet_start(); @@ -217,7 +218,10 @@ int main(int argc, char *argv[]) } }*/ - + if((!isUsb) && (SF_MCU_STARTUP_NORMAL != startup) && (SF_MCU_STARTUP_OFF != startup) && (SF_MCU_STARTUP_ONKEY != startup)&& (!puiPara->GprsSwitch)) + { + sf_power_off(); + } //if((SF_MCU_STARTUP_ONKEY == startup) || (TRUE == autosend)) { //////////////////////////////// @@ -244,6 +248,7 @@ int main(int argc, char *argv[]) sf_share_mem_customer_deinit(); SF_MUTEX_DESTROY(Param_mutexLock); SF_MUTEX_DESTROY(GPIO_mutexLock); + pthread_cond_destroy(&condition); exit(0); printf("********************sf app end***********************\n"); diff --git a/code/application/source/sf_app/code/source/app/sf_common.c b/code/application/source/sf_app/code/source/app/sf_common.c index 42d13e61e..dfd2005b4 100755 --- a/code/application/source/sf_app/code/source/app/sf_common.c +++ b/code/application/source/sf_app/code/source/app/sf_common.c @@ -794,6 +794,13 @@ static SINT32 sf_app_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf) case SF_PARA_CMD_IR_LED_STATUS: IsNightLedOn = pMessageBuf->arg2; break; + case SF_PARA_CMD_WAIT: + sf_set_wait_shared_condition(0); + break; + case SF_PARA_CMD_SIG: + sf_app_para_signaling_start(); + break; + default: break; } diff --git a/code/application/source/sf_app/code/source/app/sf_service.c b/code/application/source/sf_app/code/source/app/sf_service.c index 5e5d81609..856a7c606 100755 --- a/code/application/source/sf_app/code/source/app/sf_service.c +++ b/code/application/source/sf_app/code/source/app/sf_service.c @@ -1361,77 +1361,83 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) break; #endif - s32ret = sf_get_utc(); - if ((s32ret == SF_SIM_ERROR_UTC) && (SF_ON != pCustomerParam->GpsSwitch)) { - SF_PARA_TIME_S current_time = { 0, 0, 0, 0, 0, 0}; - s32ret = sf_get_ntp(s32ret, ¤t_time); - } - sf_4G_usb_net_apn_cfg(pfnParam); - sf_USB_net_init(); - if ((SF_ON == pCustomerParam->GpsSwitch)) { - s32ret = open_gps(s32ret); - serach_gps_onkey_start(); - } - if(sf_get_signal_ready()){ - if(SUCCESS != sf_connect_ftps_server()){ - printf("[%s:%d]open ftps fail, reconnect\n", __FUNCTION__, __LINE__); - if(SUCCESS != sf_connect_ftps_server()){ - printf("[%s:%d]re open ftps fail, reconnect\n", __FUNCTION__, __LINE__); - } - } - } - SF_APPCOMM_CHECK_RETURN(s32ret, s32ret); + s32ret = sf_get_utc(); + if ((s32ret == SF_SIM_ERROR_UTC) && (SF_ON != pCustomerParam->GpsSwitch)) { + SF_PARA_TIME_S current_time = { 0, 0, 0, 0, 0, 0}; + s32ret = sf_get_ntp(s32ret, ¤t_time); + } + sf_4G_usb_net_apn_cfg(pfnParam); + set_at_parament(); + sf_USB_net_init(); + if ((SF_ON == pCustomerParam->GpsSwitch)) { + s32ret = open_gps(s32ret); + serach_gps_onkey_start(); + } - break; + if(sf_get_signal_ready()){ + if(SUCCESS != sf_connect_ftps_server()){ + printf("[%s:%d]open ftps fail, reconnect\n", __FUNCTION__, __LINE__); + if(SUCCESS != sf_connect_ftps_server()){ + printf("[%s:%d]re open ftps fail, reconnect\n", __FUNCTION__, __LINE__); + } + } + } + SF_APPCOMM_CHECK_RETURN(s32ret, s32ret); - case SF_MCU_STARTUP_NORMAL: - break; + break; - case SF_MCU_STARTUP_RING: + case SF_MCU_STARTUP_NORMAL: + break; - s32ret = sf_4G_sim_IsInsert(); - if (!s32ret) { - SF_APPCOMM_CHECK_RETURN(SF_FAILURE, SF_APP_ERROR_REQUEST); - } + case SF_MCU_STARTUP_RING: + + s32ret = sf_4G_sim_IsInsert(); + if (!s32ret) { + SF_APPCOMM_CHECK_RETURN(SF_FAILURE, SF_APP_ERROR_REQUEST); + } + + s32ret = app_ttyusb_IsOpen(); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - s32ret = app_ttyusb_IsOpen(); - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); #if SF_QLOG_ENABLE if (pCustomerParam->QLogSwitch == 1) app_Qlog_procress(); #endif - s32ret = sf_4G_sim_init(pfnParam); - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - s32ret = sf_4G_register_net_auto(pfnParam); - //sf_share_mem_customer_down(1); - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - sf_4G_usb_net_apn_cfg(pfnParam); - sf_USB_net_init(); + s32ret = sf_4G_sim_init(pfnParam); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - s32ret = sf_read_message(); - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - if (sf_get_pic()) { - s32ret = sf_app_to_cardv_capture(); - } - else if(sf_get_send_hd()){ - s32ret = sf_app_to_cardv_hd_ture(); - } - else if(sf_get_send_video()){ - s32ret = sf_video_ftp_send(); - } - break; + s32ret = sf_4G_register_net_auto(pfnParam); + //sf_share_mem_customer_down(1); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); + sf_4G_usb_net_apn_cfg(pfnParam); + set_at_parament(); + sf_USB_net_init(); - case SF_MCU_STARTUP_TIMELAPSE: - case SF_MCU_STARTUP_PIR: - if (pCustomerParam->SendType != 0) { - break; - } + s32ret = sf_read_message(); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); + if (sf_get_pic()) { + s32ret = sf_app_to_cardv_capture(); + } + else if(sf_get_send_hd()){ + s32ret = sf_app_to_cardv_hd_ture(); + } + else if(sf_get_send_video()){ + s32ret = sf_video_ftp_send(); + } + break; + + case SF_MCU_STARTUP_TIMELAPSE: + case SF_MCU_STARTUP_PIR: + if (pCustomerParam->SendType != 0) { + break; + } + + case SF_MCU_STARTUP_BATCH_SEND: - case SF_MCU_STARTUP_BATCH_SEND: #ifdef SF_HARDWARE_TEST app_system_poweroff(SF_POWEROFF_NOT); break; @@ -1453,14 +1459,16 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) s32ret = sf_4G_sim_init(pfnParam); SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - s32ret = sf_4G_register_net_auto(pfnParam); - if (s32ret != SF_SUCCESS) { - sf_set_signal_ready_flag(TRUE); - } - //sf_share_mem_customer_down(1); - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - sf_4G_usb_net_apn_cfg(pfnParam); - sf_USB_net_init(); + s32ret = sf_4G_register_net_auto(pfnParam); + if (s32ret != SF_SUCCESS) { + sf_set_signal_ready_flag(TRUE); + } + //sf_share_mem_customer_down(1); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); + sf_4G_usb_net_apn_cfg(pfnParam); + set_at_parament(); + sf_USB_net_init(); + s32ret = sf_file_send_auto(); SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); @@ -1481,54 +1489,58 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) if (pCustomerParam->QLogSwitch == 1) app_Qlog_procress(); #endif - s32ret = sf_4G_sim_init(pfnParam); - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - s32ret = sf_4G_register_net_manual(pfnParam); - if (s32ret != SF_SUCCESS) { - sf_set_signal_ready_flag(TRUE); - } + s32ret = sf_4G_sim_init(pfnParam); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - if (0 != sf_get_cq_signal()) { - pCustomerParam->NeedTimeSyncStartUp = 1; - } - if (pCustomerParam->DailyReportSwitch) { - pCustomerParam->GpsSendFlag = 1; // indicate need send dp file in b power on. - } + s32ret = sf_4G_register_net_manual(pfnParam); + if (s32ret != SF_SUCCESS) { + sf_set_signal_ready_flag(TRUE); + } + + if (0 != sf_get_cq_signal()) { + pCustomerParam->NeedTimeSyncStartUp = 1; + } + if (pCustomerParam->DailyReportSwitch) { + pCustomerParam->GpsSendFlag = 1; // indicate need send dp file in b power on. + } - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - sf_4G_usb_net_apn_cfg(pfnParam); - sf_USB_net_init(); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); + sf_4G_usb_net_apn_cfg(pfnParam); + set_at_parament(); + sf_USB_net_init(); - s32ret = sf_get_utc(); - if ((s32ret == SF_SIM_ERROR_UTC) && (SF_ON != pCustomerParam->GpsSwitch)) { - SF_PARA_TIME_S current_time = { 0, 0, 0, 0, 0, 0}; - s32ret = sf_get_ntp(s32ret, ¤t_time); - } - if ((SF_ON == pCustomerParam->GpsSwitch)) { - s32ret = open_gps(s32ret); - } - if (1 == pCustomerParam->NeedTimeSyncStartUp) { - printf("[%s:%d]8 between A and B,no reg net again,no reset time sync.\n", - __FUNCTION__, __LINE__); - sf_set_dr_reset_time_sys_flag(1); - } - //sf_dailyReport_set(); - //sf_share_mem_customer_down(1); + s32ret = sf_get_utc(); + if ((s32ret == SF_SIM_ERROR_UTC) && (SF_ON != pCustomerParam->GpsSwitch)) { + SF_PARA_TIME_S current_time = { 0, 0, 0, 0, 0, 0}; + s32ret = sf_get_ntp(s32ret, ¤t_time); + } + if ((SF_ON == pCustomerParam->GpsSwitch)) { + s32ret = open_gps(s32ret); + } + if (1 == pCustomerParam->NeedTimeSyncStartUp) { + printf("[%s:%d]8 between A and B,no reg net again,no reset time sync.\n", + __FUNCTION__, __LINE__); + sf_set_dr_reset_time_sys_flag(1); + } + //sf_dailyReport_set(); + //sf_share_mem_customer_down(1); - break; - case SF_MCU_STARTUP_USB: + break; + case SF_MCU_STARTUP_USB: - break; - case SF_MCU_STARTUP_RESET: + break; + case SF_MCU_STARTUP_RESET: + + s32ret = app_ttyusb_IsOpen(); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - s32ret = app_ttyusb_IsOpen(); - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); #if SF_QLOG_ENABLE if (pCustomerParam->QLogSwitch == 1) app_Qlog_procress(); #endif + s32ret = sf_4G_sim_init(pfnParam); SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); @@ -1582,6 +1594,9 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) } + + + #endif s32ret = sf_4G_register_net_manual(pfnParam); @@ -1633,6 +1648,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) } SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); sf_4G_usb_net_apn_cfg(pfnParam); + set_at_parament(); sf_USB_net_init(); s32ret = sf_get_utc(); @@ -1663,53 +1679,56 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) if (pCustomerParam->QLogSwitch == 1) app_Qlog_procress(); #endif - s32ret = sf_4G_sim_init(pfnParam); - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - s32ret = sf_4G_register_net_auto(pfnParam); - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - sf_4G_usb_net_apn_cfg(pfnParam); - sf_USB_net_init(); + s32ret = sf_4G_sim_init(pfnParam); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - if ((SF_ON == pCustomerParam->GpsSwitch)) { - const int KEEP_SERACHING_TIMEOUT_MS = 2000; - const int KEEP_SERACHING_PERIOD_MS = 200; - // keep_seraching_gps_location(KEEP_SERACHING_TIMEOUT_S); - SF_GPS_PARAM gps_param = { - .timeout_ms = KEEP_SERACHING_TIMEOUT_MS, - .period_ms = KEEP_SERACHING_PERIOD_MS, - }; - keep_get_gps_location(gps_param); - gps_close(); - } + s32ret = sf_4G_register_net_auto(pfnParam); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); + sf_4G_usb_net_apn_cfg(pfnParam); + set_at_parament(); + sf_USB_net_init(); - s32ret = sf_read_message(); - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); + if ((SF_ON == pCustomerParam->GpsSwitch)) { + const int KEEP_SERACHING_TIMEOUT_MS = 2000; + const int KEEP_SERACHING_PERIOD_MS = 200; + // keep_seraching_gps_location(KEEP_SERACHING_TIMEOUT_S); + SF_GPS_PARAM gps_param = { + .timeout_ms = KEEP_SERACHING_TIMEOUT_MS, + .period_ms = KEEP_SERACHING_PERIOD_MS, + }; + keep_get_gps_location(gps_param); + gps_close(); + } - pCustomerParam->NetWorkNeedSearch = 0; - pCustomerParam->NeedTimeSyncStartUp = 0; + s32ret = sf_read_message(); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - s32ret = sf_file_send_auto(); - SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); + pCustomerParam->NetWorkNeedSearch = 0; + pCustomerParam->NeedTimeSyncStartUp = 0; + + s32ret = sf_file_send_auto(); + SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST); - if (sf_get_pic()) { - s32ret = sf_app_to_cardv_capture(); - } - else if(sf_get_send_hd()){ - s32ret = sf_app_to_cardv_hd_ture(); - } - else if(sf_get_send_video()){ - s32ret = sf_video_ftp_send(); - } - //sf_share_mem_customer_down(1); - break; + if (sf_get_pic()) { + s32ret = sf_app_to_cardv_capture(); + } + else if(sf_get_send_hd()){ + s32ret = sf_app_to_cardv_hd_ture(); + } + else if(sf_get_send_video()){ + s32ret = sf_video_ftp_send(); + } + //sf_share_mem_customer_down(1); + break; - default: - break; - } + default: + break; + } + + return s32ret; - return s32ret; } void app_Register_Net_thread(void) { @@ -1931,6 +1950,12 @@ int sf_check_usb0(void) return 0; } +void set_at_parament(void) +{ + UIMenuStoreInfo *pCustomerParam = sf_app_ui_para_get(); + set_at_param(pCustomerParam->Sim4gApn, pCustomerParam->Sim4gUsr, pCustomerParam->Sim4gPwd); +} + SINT32 open_gps(const SINT32 utc) { UIMenuStoreInfo *pCustomerParam = sf_app_ui_para_get(); @@ -1942,7 +1967,7 @@ SINT32 open_gps(const SINT32 utc) snprintf(ntp_time, NTP_TIME_LENGTH, "%04d/%02d/%02d,%02d:%02d:%02d", current_time.Year, current_time.Mon, current_time.Day, current_time.Hour, current_time.Min, current_time.Sec); - gps_map_update(pCustomerParam->Sim4gApn, pCustomerParam->Sim4gUsr, pCustomerParam->Sim4gPwd, ntp_time); + gps_map_update(ntp_time); if (AT_MANAGER_SUCCEED == gps_open(ntp_time)) { return SF_SUCCESS; diff --git a/code/application/source/sf_app/code/source/app/sf_system.c b/code/application/source/sf_app/code/source/app/sf_system.c index 1daa1b977..4fe41cd71 100755 --- a/code/application/source/sf_app/code/source/app/sf_system.c +++ b/code/application/source/sf_app/code/source/app/sf_system.c @@ -123,7 +123,11 @@ SF_THREAD_S McuParaTskCfg = .IsRun = 0, .TskId = -1, }; - +SF_THREAD_S WaiParaTskCfg = +{ + .IsRun = 0, + .TskId = -1, +}; SINT8 debugFlag = 0; void app_poweroff_time_clear(void) @@ -934,6 +938,48 @@ void sf_power_off(void) sf_com_message_send_to_cardv(&stMessageBuf); printf("[%s:%d] e\n", __FUNCTION__, __LINE__); } +pthread_cond_t condition; +extern pthread_mutex_t Param_mutexLock; +int shared_condition = 1; + +void* sf_para_signaling_thread(void* arg) +{ + pthread_mutex_lock(&Param_mutexLock); + + // Modify the status that meets the conditions + shared_condition = 1; + + // Wake up waiting threads + pthread_cond_signal(&condition); + + pthread_mutex_unlock(&Param_mutexLock); + WaiParaTskCfg.IsRun = 0; + pthread_exit(NULL); +} + +SINT32 sf_app_para_signaling_start(void) +{ + SINT32 ret = SF_FAILURE; + if(WaiParaTskCfg.IsRun) + { + SLOGE("thread has already run !!!\n"); + return SF_FAILURE; + } + SLOGI("thread run\n"); + ret = pthread_create(&WaiParaTskCfg.TskId, NULL, sf_para_signaling_thread, NULL); + if(ret != SF_SUCCESS) + { + MLOGD("thread creat fail!\n"); + return ret; + } + return SF_SUCCESS; +} + +void sf_set_wait_shared_condition(int in) +{ + shared_condition = in; + SLOGI("shared_condition:%d\n", shared_condition); +} void* sf_app_para_check_thread(void *arg) { @@ -941,6 +987,10 @@ void* sf_app_para_check_thread(void *arg) ParaTskCfg.IsRun = 1; while(ParaTskCfg.IsRun) { + while (shared_condition == 0) { + pthread_cond_wait(&condition, &Param_mutexLock); + } + if(TRUE == sf_get_para_check_flag()){ MLOGI("menu info is changed\n"); sf_share_mem_customer_down(1); @@ -960,6 +1010,7 @@ SINT32 sf_app_para_check_start(void) SLOGE("thread has already run !!!\n"); return SF_FAILURE; } + pthread_cond_init(&condition, NULL); ret = pthread_create(&ParaTskCfg.TskId, NULL, sf_app_para_check_thread, NULL); if(ret != SF_SUCCESS) { diff --git a/code/application/source/sf_app/code/source/fileMng/sf_file.c b/code/application/source/sf_app/code/source/fileMng/sf_file.c index 55380a02c..8d42d1431 100755 --- a/code/application/source/sf_app/code/source/fileMng/sf_file.c +++ b/code/application/source/sf_app/code/source/fileMng/sf_file.c @@ -1482,7 +1482,7 @@ UINT8 sf_get_send_file_list(char *sendfileList, UINT8 *fileTotal) printf("fileTotal=%d, fsize=%d\n", *fileTotal, fsize); fread(sendfileList, fsize, 1, fd); fclose(fd); - + system("sync"); oldFileKey = pPara->FileKey; printf("last send key:%d\n", oldFileKey); //oldFileKey = 1000003; //for debug diff --git a/code/application/source/sf_app/code/source/fileMng/sf_fileMng.c b/code/application/source/sf_app/code/source/fileMng/sf_fileMng.c old mode 100644 new mode 100755 index 10e109757..e04826dab --- a/code/application/source/sf_app/code/source/fileMng/sf_fileMng.c +++ b/code/application/source/sf_app/code/source/fileMng/sf_fileMng.c @@ -48,8 +48,8 @@ SINT32 sf_file_remove(SF_CHAR *fileName) MLOGI("removing [%s]\n",fileName); sprintf(cmdstring,"rm -rf %s",fileName); s32ret = system(cmdstring); - sync(); - + //sync(); + system("sync"); if(s32ret != SF_SUCCESS) { //SF_MESSAGE_BUF_S stMessageBuf = {0}; diff --git a/code/application/source/sf_app/code/source/ttyusb/sf_hal_ttyusb.c b/code/application/source/sf_app/code/source/ttyusb/sf_hal_ttyusb.c index 732de229e..68274422b 100755 --- a/code/application/source/sf_app/code/source/ttyusb/sf_hal_ttyusb.c +++ b/code/application/source/sf_app/code/source/ttyusb/sf_hal_ttyusb.c @@ -249,10 +249,10 @@ static SINT32 hal_ttyusb_read(SINT32 fd, SF_CHAR *recvBuf, SINT32 waitTime) SINT32 s32ret = 0; fd_set read_fds; struct timeval TimeoutVal; - if(waitTime > 0) - sf_sleep_ms(waitTime); + //if(waitTime > 0) + // sf_sleep_ms(waitTime); - while(waitTime--) + //while(waitTime--) { @@ -275,13 +275,13 @@ static SINT32 hal_ttyusb_read(SINT32 fd, SF_CHAR *recvBuf, SINT32 waitTime) } else if (s32ret < 0) { //MLOGE(" select failed\n"); - //return SF_FAILURE; - continue; + return SF_FAILURE; + //continue; } else if (0 == s32ret) { //MLOGW("FIFO select timeout [%d]\n",waitTime); - //return SF_FAILURE; - continue; + return SF_FAILURE; + //continue; } } @@ -415,6 +415,46 @@ SINT32 sf_hal_uart_deinit(void) return hal_ttyusb_destory(UartFd); } + +SINT32 sf_hal_ttyusb2_read_buf(SF_TTY_DATA_TYPE_S *recv) +{ + //SF_PDT_PARAM_CFG_S *sfParam = sf_customer_param_get(); + SINT32 s32ret = 0; + fd_set read_fds; + struct timeval TimeoutVal; + int waitTime = 2; + unsigned int dataL = 0; + FD_ZERO(&read_fds); + FD_SET(TtyUSB2Fd, &read_fds); + + TimeoutVal.tv_sec = 0; + TimeoutVal.tv_usec = (recv->waitMs)*1000; + + while(waitTime--) + { + s32ret = select(TtyUSB2Fd + 1, &read_fds, NULL, NULL, &TimeoutVal); + if (s32ret > 0) { + if (FD_ISSET(TtyUSB2Fd, &read_fds)) { + s32ret = read(TtyUSB2Fd, recv->data+dataL, recv->lenMax); + dataL += strlen(recv->data); + if ((((dataL) >= (recv->len)) && (strstr(recv->data, recv->cmp))) || (strstr(recv->data, recv->cmperr))) { + break; + } + } + } + else if (s32ret < 0) { + MLOGE(" select failed\n"); + continue; + } + else if (0 == s32ret) { + MLOGW("FIFO select timeout [%d]\n",waitTime); + continue; + } + } + FD_CLR(TtyUSB2Fd, &read_fds); + return SF_SUCCESS; +} + #ifdef __cplusplus #if __cplusplus } diff --git a/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c b/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c index f0cbae56d..9fb5c4f93 100755 --- a/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c +++ b/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c @@ -1420,6 +1420,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen) puiPara->ImgSize = PHOTO_SIZE_8M; } SysSetFlag(FL_PHOTO_SIZE, puiPara->ImgSize); + Photo_SetUserIndex(PHOTO_USR_SIZE, puiPara->ImgSize); //sf_set_img_size(puiPara->ImgSize); respFlag = 2; diff --git a/code/lib/source/sifar/code/include/sf_common.h b/code/lib/source/sifar/code/include/sf_common.h index ac81eaa4c..1525d0273 100755 --- a/code/lib/source/sifar/code/include/sf_common.h +++ b/code/lib/source/sifar/code/include/sf_common.h @@ -120,4 +120,6 @@ BOOL sf_cmd_ftp(unsigned char argc, char **argv); BOOL sf_cmd_ftps(unsigned char argc, char **argv); UINT32 sf_cardv_cap_start(void); UINT32 sf_cardv_hd_cap_start(void); +void sf_cardv_set_wait_shared_condition(int in); +int sf_cardv_para_signaling_start(void); #endif diff --git a/code/lib/source/sifar/code/source/common/sf_common.c b/code/lib/source/sifar/code/source/common/sf_common.c index 28e117624..54dccb19e 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -83,6 +83,10 @@ static UINT8 batteryVal = 0; static UINT8 batteryType = 0; static SINT16 fTemper = 0; static SINT16 cTemper = 0; +static pthread_cond_t condition; +static pthread_mutex_t Param_mutexLock; +static int shared_condition = 1; + static SF_THREAD_S UpgradeTskParam = { .IsRun = 0, @@ -109,6 +113,11 @@ static SF_THREAD_S HdCapTskCfg = .IsRun = 0, .TskId = -1, }; +static SF_THREAD_S WaiParaTskCfg = +{ + .IsRun = 0, + .TskId = -1, +}; int sf_pir_statu_read(void) { static UINT8 state = 0; @@ -388,6 +397,7 @@ BOOL sf_cmd_img_size(unsigned char argc, char **argv) printf("[%s:%d] value:%d\n", __FUNCTION__, __LINE__,value); if(value < PHOTO_SIZE_ID_MAX){ SysSetFlag(FL_PHOTO_SIZE, value); + Photo_SetUserIndex(PHOTO_USR_SIZE, puiPara->ImgSize); puiPara->ImgSize = value; Save_MenuInfo(); } @@ -1595,6 +1605,12 @@ static SINT32 sf_cardv_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf) case SF_PARA_CMD_NET_STATUS: NetWorkFlag = pMessageBuf->arg2; break; + case SF_PARA_CMD_WAIT: + sf_cardv_set_wait_shared_condition(0); + break; + case SF_PARA_CMD_SIG: + sf_cardv_para_signaling_start(); + break; default: break; } @@ -2010,6 +2026,47 @@ void sf_do_upgrade_thread(void) } } + +void* sf_cardv_para_signaling_thread(void* arg) +{ + pthread_mutex_lock(&Param_mutexLock); + + // Modify the status that meets the conditions + shared_condition = 1; + + // Wake up waiting threads + pthread_cond_signal(&condition); + + pthread_mutex_unlock(&Param_mutexLock); + WaiParaTskCfg.IsRun = 0; + pthread_exit(NULL); +} + +int sf_cardv_para_signaling_start(void) +{ + int ret = SF_FAILURE; + if(WaiParaTskCfg.IsRun) + { + SLOGE("thread has already run !!!\n"); + return SF_FAILURE; + } + SLOGI("thread run\n"); + ret = pthread_create(&WaiParaTskCfg.TskId, NULL, sf_cardv_para_signaling_thread, NULL); + if(ret != SF_SUCCESS) + { + MLOGD("thread creat fail!\n"); + return ret; + } + return SF_SUCCESS; +} + +void sf_cardv_set_wait_shared_condition(int in) +{ + shared_condition = in; + SLOGI("shared_condition:%d\n", shared_condition); +} + + void* sf_cardv_para_check_thread(void *arg) { SLOGI("thread run\n"); @@ -2038,6 +2095,7 @@ UINT32 sf_cardv_para_check_start(void) SLOGE("thread has already run !!!\n"); return 1; } + pthread_cond_init(&condition, NULL); ret = pthread_create(&ParaTskCfg.TskId, NULL, sf_cardv_para_check_thread, NULL); if(ret != SF_SUCCESS) { diff --git a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxHunting.c b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxHunting.c old mode 100644 new mode 100755 index d81b67aac..33cbbaf1b --- a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxHunting.c +++ b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxHunting.c @@ -449,7 +449,7 @@ void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo } else { - ui_rise = 45;//55% + ui_rise = 60;//40% } } else @@ -460,7 +460,7 @@ void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo } else { - ui_rise = 30;//70% + ui_rise = 55;//45% } } #else @@ -474,7 +474,7 @@ void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo } else { - ui_rise = 45;//55% + ui_rise = 65;//35% } } else @@ -485,7 +485,7 @@ void sf_ir_led_set(UINT8 mode, UINT8 flashLed, UINT8 stillExp, UINT8 isSnapVideo } else { - ui_rise = 30;//70% + ui_rise = 60;//40% } } #endif diff --git a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h index 9188c1ab9..062bc6b47 100755 --- a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h +++ b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h @@ -947,7 +947,7 @@ #define HUNTING_MCU_UART ENABLE #define HUNTING_IR_LED_940 DISABLE #define SF_EXIF_MN_BUF_SIZE 256 -#define SF_BASE_VERSION "7MD4RCwD6T8" +#define SF_BASE_VERSION "7MD4RCwD6T9" #define HW_S530 1 #define DCF_DIR_NAME "MEDIA" /* 100MEDIA */ #define DCF_FILE_NAME "SYFW" /* SYFW0001.JPG */ diff --git a/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c b/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c index 20c26c462..bed6b3fec 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c +++ b/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c @@ -171,7 +171,8 @@ static void insmod_system(void) #if HUNTING_CAMERA_MCU == ENABLE VOS_TICK t1, t2; vos_perf_mark(&t1); - sf_battery_check_init(); + //sf_battery_check_init(); + sf_battery_thread_init(); vos_perf_mark(&t2); DBG_DUMP("sf_mod_init: %lu\n", vos_perf_duration(t1, t2)); #endif @@ -408,9 +409,6 @@ static void mcu_task(void) sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_NOT_DETECT); sf_sys_status_led_set(SF_LED_SYS_STATE_NORMAL); - #if HW_S530 - sf_view_osd_battery_draw(TRUE); - #endif //vos_util_delay_ms(15); //if(sf_is_night_mode(1) !=TRUE) diff --git a/rtos/code/driver/na51089/include/sf_battery.h b/rtos/code/driver/na51089/include/sf_battery.h index 42024d1f7..f221cbc75 100755 --- a/rtos/code/driver/na51089/include/sf_battery.h +++ b/rtos/code/driver/na51089/include/sf_battery.h @@ -2,7 +2,7 @@ #define _SF_BATTERY_H #include - +#include "FileSysTsk.h" typedef signed int SINT32; typedef enum { @@ -38,7 +38,7 @@ INT16 sf_adc2Temperature(UINT16 adcValue, UINT8 type);/*type: 0:F 1:C*/ void sf_stamp_temperature_get(INT16 *fTem,INT16 *cTem); /*0:F 1:C*/ void sf_temper_update(void); INT16 sf_celsius_change_to_fahrenheit(INT16 cTemper); -void sf_BatteryInfoSave(char *name); +void sf_BatteryInfoSave(char *name, FST_FILE fd); UINT32 sf_get_temper_adc(void); UINT8 sf_solar_to_Lunar(UINT16 Year,UINT8 Month, UINT8 Day); void sf_battery_print(void); diff --git a/rtos/code/driver/na51089/include/sf_mcu.h b/rtos/code/driver/na51089/include/sf_mcu.h index 6bd5db036..d431adc00 100755 --- a/rtos/code/driver/na51089/include/sf_mcu.h +++ b/rtos/code/driver/na51089/include/sf_mcu.h @@ -21,7 +21,7 @@ //#include "kflow_audiocapture/ctl_aud.h" #include "rtos_na51089/kdrv_i2c.h" #endif - +#include "FileSysTsk.h" #define SUCCESS 0 #define FAIL 1 @@ -514,7 +514,7 @@ void sf_file_thumb_cfg_fill(char* filepath,char* fileName,UINT32 size, SF_FILE_T void sf_file_thumb_cfg_set(SF_SRCFILE_ATTR_S *pThumbFileCfgl); void sf_file_thumb_cfg_clear(void); void sf_file_thumb_cfg_sava(void); -void sf_add_file_name_to_send_list(char *sendfname, UINT32 fd); +void sf_add_file_name_to_send_list(char *sendfname, FST_FILE fd); UINT8 sf_mcu_power_on_para_get(MCUParam_t attrId); void sf_mcu_flag_init(void); void sf_mcu_flag_set_done(MCU_FLAG_INIT boot_init); @@ -524,7 +524,7 @@ void sf_mcu_flag_clear_done(MCU_FLAG_INIT boot_init); UINT32 sf_get_send_pic_sieze(void); void sf_para_print(void); UINT8 sf_convert_power_on_mode(void); -void sf_hw_info_save(char *name); +void sf_hw_info_save(char *name,FST_FILE fd); void sf_set_iso_exp_lv(UINT32 adj, UINT32 iso, UINT32 exp, UINT32 lv); UINT32 sf_in_update(void); #endif diff --git a/rtos/code/driver/na51089/source/mcu/sf_battery.c b/rtos/code/driver/na51089/source/mcu/sf_battery.c index 356d0a5d5..d64dd0dbf 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_battery.c +++ b/rtos/code/driver/na51089/source/mcu/sf_battery.c @@ -204,7 +204,7 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval) } //vos_util_delay_ms(1); - vos_util_delay_us(100); + vos_util_delay_us(1500); *pval = adc_readVoltage(0); //*pval = adc_readData(0); @@ -298,6 +298,10 @@ UINT32 sf_battery_adc_value_get_once(void) UINT32 liPolymerVoltageVal = 0; UINT32 batVoltageVal = 0; static UINT8 getBatAdcFlg = 0; + static int getBatFlg = 2; + static int getLiBatFlg = 2; + static int getDcFlg = 2; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); if(getBatAdcFlg) @@ -305,32 +309,62 @@ UINT32 sf_battery_adc_value_get_once(void) getBatAdcFlg = 1; - - if(sf_adc_value_get(SF_ADC_DC, &batAdc) == SUCCESS) - { - dcVoltageVal = sf_battery_voltage_convert(24, 100, batAdc); - //dcVoltageVal += 4; - if(puiPara->BatteryLogSwitch) - printf("DC ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,dcVoltageVal,dcVoltageVal/10,dcVoltageVal%10); - } - - if(sf_adc_value_get(SF_ADC_LI, &batAdc) == SUCCESS) + if(getDcFlg) { - liPolymerVoltageVal = sf_battery_voltage_convert(24, 100, batAdc); - //liPolymerVoltageVal += 4; - if(puiPara->BatteryLogSwitch) - printf("Li ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,liPolymerVoltageVal,liPolymerVoltageVal/10,liPolymerVoltageVal%10); + if(sf_adc_value_get(SF_ADC_DC, &batAdc) == SUCCESS) + { + dcVoltageVal = sf_battery_voltage_convert(24, 100, batAdc); + //dcVoltageVal += 4; + if(puiPara->BatteryLogSwitch) + printf("DC ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,dcVoltageVal,dcVoltageVal/10,dcVoltageVal%10); + } + if(batAdc <= 0) + { + getDcFlg--; + } + else { + getDcFlg = 2; + } } - if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS) + if(getLiBatFlg) { - batVoltageVal = sf_battery_voltage_convert(24, 100, batAdc); - //batVoltageVal += 4; - if(puiPara->BatteryLogSwitch) - printf("Bat ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10); - + if(sf_adc_value_get(SF_ADC_LI, &batAdc) == SUCCESS) + { + liPolymerVoltageVal = sf_battery_voltage_convert(24, 100, batAdc); + //liPolymerVoltageVal += 4; + if(puiPara->BatteryLogSwitch) + printf("Li ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,liPolymerVoltageVal,liPolymerVoltageVal/10,liPolymerVoltageVal%10); + } + if(batAdc <= 0) + { + getLiBatFlg--; + } + else { + getLiBatFlg = 2; + } } + if(getBatFlg) + { + if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS) + { + batVoltageVal = sf_battery_voltage_convert(24, 100, batAdc); + //batVoltageVal += 4; + if(puiPara->BatteryLogSwitch) + printf("Bat ADC Value:%lu After Convert:%lu(%lu.%luV)\n",batAdc,batVoltageVal,batVoltageVal/10,batVoltageVal%10); + + } + if(batAdc <= 0) + { + getBatFlg--; + } + else { + getBatFlg = 2; + } + } + + if(sf_adc_value_get(SF_ADC_TEMP, &batAdc) == SUCCESS) { _TemperAdc = batAdc; @@ -877,6 +911,7 @@ void sf_battery_thread_init(void) if(!dofirst) return; dofirst = 0; + sf_adc_init(); VK_TASK_HANDLE s_handle_batt = 0; @@ -1237,7 +1272,7 @@ BOOL sf_is_battery_low(UINT8 refresh, UINT8 nightMode) batteryVal = sf_battery_value_get(nightMode); - if(!sf_get_mode_flag()) + //if(!sf_get_mode_flag()) { if(batteryVal >= 70) { @@ -1262,7 +1297,10 @@ BOOL sf_is_battery_low(UINT8 refresh, UINT8 nightMode) sf_LatestBattLevel = batteryLevel; } - + #if HW_S530 + printf("batteryVal=%d sf_get_mode_flag()=%d \n", batteryVal, sf_get_mode_flag()); + sf_view_osd_battery_draw(TRUE); + #endif if(batteryVal == 0) return TRUE; @@ -1558,14 +1596,14 @@ UINT8 sf_solar_to_Lunar(UINT16 Year,UINT8 Month, UINT8 Day) #if SF_BATTERY_TEST == ENABLE -void sf_BatteryInfoSave(char *name) +void sf_BatteryInfoSave(char *name, FST_FILE fd) { char *tmpBuf = NULL; UINT32 LibatAdc = 0; UINT32 batAdc = 0; //char fileName[64] = {0}; - FST_FILE fd = 0; + //FST_FILE fd = 0; //struct stat st; UINT32 size = 0; INT32 ret_fs = 0; @@ -1586,8 +1624,8 @@ void sf_BatteryInfoSave(char *name) else { fd = open(SF_BATTERY_TEST_FILE, O_APPEND | O_WRONLY | O_CREAT); }*/ - printf("fileName:%s\n",SF_BATTERY_TEST_FILE); - fd = FileSys_OpenFile(SF_BATTERY_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE); + //printf("fileName:%s\n",SF_BATTERY_TEST_FILE); + //fd = FileSys_OpenFile(SF_BATTERY_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE); LibatAdc = sf_battery_convert_to_adc(24, 100, LiPolymerVoltageValTest); batAdc = sf_battery_convert_to_adc(24, 100, BatVoltageValTest); @@ -1604,16 +1642,17 @@ void sf_BatteryInfoSave(char *name) close(fd); printf("Add Success st_size:%ld\n", st.st_size); */ - ret_fs = FileSys_SeekFile((FST_FILE)fd, 0, FST_SEEK_END); + ret_fs = FileSys_SeekFile(fd, 0, FST_SEEK_END); if (ret_fs != FST_STA_OK) { printf("%s:%d seek file failed\r\n", __FUNCTION__, __LINE__); } size = strlen(tmpBuf); - ret_fs = FileSys_WriteFile((FST_FILE)fd, (UINT8*)tmpBuf, &size, 0, NULL); + printf("%s:%d size:%lu\r\n", __FUNCTION__, __LINE__, size); + ret_fs = FileSys_WriteFile(fd, (UINT8*)tmpBuf, &size, 0, NULL); if (ret_fs != FST_STA_OK) { printf("%s:%d FileSys_WriteFile failed\r\n", __FUNCTION__, __LINE__); } - FileSys_CloseFile(fd); + //FileSys_CloseFile((FST_FILE)fd); } free(tmpBuf); } @@ -1644,16 +1683,16 @@ void sf_battery_print(void) { if(DcVoltageVal) { - printf("\n[max]DC ADC Value=%lu,After Convert:(%lu.%luV),Is Dc In=%s\n", sf_battery_convert_to_adc(24, 100, DcVoltageVal), DcVoltageVal / 10, DcVoltageVal % 10, IsPowerDcIn == 1? "Yes" : "No"); + printf("DC ADC Value=%lu V:(%lu.%luV),Is Dc In=%s\n", sf_battery_convert_to_adc(24, 100, DcVoltageVal), DcVoltageVal / 10, DcVoltageVal % 10, IsPowerDcIn == 1? "Yes" : "No"); } if(LiPolymerVoltageVal) { - printf("[max]Li ADC Value=%lu,After Convert:(%lu.%luV)\n\n", sf_battery_convert_to_adc(24, 100, LiPolymerVoltageVal), LiPolymerVoltageVal / 10, LiPolymerVoltageVal % 10); + printf("Li ADC Value=%lu V:(%lu.%luV)\n", sf_battery_convert_to_adc(24, 100, LiPolymerVoltageVal), LiPolymerVoltageVal / 10, LiPolymerVoltageVal % 10); } else { - printf("[max]Other ADC Value=%lu V:(%lu.%luV)\n\n", sf_battery_convert_to_adc(24, 100, LiPolymerVoltageVal), BatVoltageVal / 10, BatVoltageVal % 10); + printf("Other ADC Value=%lu V:(%lu.%luV)\n", sf_battery_convert_to_adc(24, 100, BatVoltageVal), BatVoltageVal / 10, BatVoltageVal % 10); } } #endif diff --git a/rtos/code/driver/na51089/source/mcu/sf_mcu.c b/rtos/code/driver/na51089/source/mcu/sf_mcu.c index a589cf61b..af14cd50c 100755 --- a/rtos/code/driver/na51089/source/mcu/sf_mcu.c +++ b/rtos/code/driver/na51089/source/mcu/sf_mcu.c @@ -2161,7 +2161,7 @@ void sf_file_thumb_cfg_sava(void) char sendListName[64] = {0}; FST_FILE fs = 0; //char buff[SF_SEND_LIST_ITEM_LENGTH+1] = {0}; - int fd = 0; + //int fd = 0; static int flag = 0; //struct stat st; #if SF_IQ_TEST != ENABLE @@ -2204,13 +2204,63 @@ void sf_file_thumb_cfg_sava(void) for(fileIndex = 0; fileIndex < pThumbFileCfg->filecnt; fileIndex++) { if((0 == fileIndex) || ((1 == puiPara->SendMulti))){ - sf_add_file_name_to_send_list(pThumbFileCfg->stfileattr[fileIndex].thumbfileName, fd); + sf_add_file_name_to_send_list(pThumbFileCfg->stfileattr[fileIndex].thumbfileName, fs); printf("%s:%d thumbfileSize:%ld thumbfileName:%s thumbfilePath:%s\n", __FUNCTION__, __LINE__,pThumbFileCfg->stfileattr[fileIndex].thumbfileSize,pThumbFileCfg->stfileattr[fileIndex].thumbfileName,pThumbFileCfg->stfileattr[fileIndex].thumbfilePath); } } FileSys_CloseFile(fs); //close(fd); } + +#if SF_BATTERY_TEST == ENABLE + fs = 0; + fileIndex = 0; + char str1[6] = { 0 }; + char str2[6] = { 0 }; + printf("fileName:%s\n",SF_BATTERY_TEST_FILE); + fs = FileSys_OpenFile(SF_BATTERY_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE); + if(fs) + { + for(fileIndex = 0; fileIndex < pThumbFileCfg->filecnt; fileIndex++) + { + if((0 == fileIndex) || ((1 == puiPara->SendMulti))){ + memset(str1,'\0', sizeof(str1)); + memset(str2,'\0', sizeof(str2)); + memcpy(str1, pThumbFileCfg->stfileattr[fileIndex].thumbfileName + 4, 4); + snprintf((char *)str2, sizeof(str2), "%s", str1); + printf("%s:%d thumbfileName:%s str2:%s\n", __FUNCTION__, __LINE__, pThumbFileCfg->stfileattr[fileIndex].thumbfileName, str2); + sf_BatteryInfoSave(str2,fs); + } + } + FileSys_CloseFile(fs); + //close(fd); + } +#endif +#if SF_HW_TEST == ENABLE + fs = 0; + fileIndex = 0; + char str3[6] = { 0 }; + char str4[6] = { 0 }; + + printf("fileName:%s\n",SF_HW_TEST_FILE); + fs = FileSys_OpenFile(SF_HW_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE); + if(fs) + { + for(fileIndex = 0; fileIndex < pThumbFileCfg->filecnt; fileIndex++) + { + if((0 == fileIndex) || ((1 == puiPara->SendMulti))){ + memset(str3,'\0', sizeof(str3)); + memset(str4,'\0', sizeof(str4)); + memcpy(str3, pThumbFileCfg->stfileattr[fileIndex].thumbfileName + 4, 4); + snprintf((char *)str4, sizeof(str4), "%s", str3); + printf("%s:%d thumbfileName:%s str2:%s\n", __FUNCTION__, __LINE__, pThumbFileCfg->stfileattr[fileIndex].thumbfileName, str4); + sf_hw_info_save(str4,fs); + } + } + FileSys_CloseFile(fs); + //close(fd); + } +#endif //printf("%s:%d e Size:%ld\n", __FUNCTION__, __LINE__,pThumbFileCfg->stfileattr[fileIndex].thumbfileSize); free(pThumbFileCfg); } @@ -2224,7 +2274,7 @@ void sf_file_thumb_cfg_sava(void) Return: N/A Others: N/A *************************************************/ -void sf_add_file_name_to_send_list(char *sendfname, UINT32 fd) +void sf_add_file_name_to_send_list(char *sendfname, FST_FILE fd) { //char sendListName[64] = {0}; char buff[SF_SEND_LIST_ITEM_LENGTH+1] = {0}; @@ -2233,6 +2283,11 @@ void sf_add_file_name_to_send_list(char *sendfname, UINT32 fd) INT32 ret_fs = 0; UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if (sendfname == NULL) { + printf("%s:%d sendfname err\n", __FUNCTION__, __LINE__); + return; + } + if(strlen(sendfname) != SF_SEND_LIST_ITEM_LENGTH-3) //3 ->CamMode \r\n { printf("%s:%d AddFileNameToSenddist fail: send file name format error\n", __FUNCTION__, __LINE__); @@ -2259,16 +2314,6 @@ void sf_add_file_name_to_send_list(char *sendfname, UINT32 fd) //printf("Add Success st_size:%ld\n", st.st_size); } -#if SF_BATTERY_TEST == ENABLE - char str1[5] = { 0 }; - memcpy(str1, sendfname + 4, 4); - sf_BatteryInfoSave(str1); -#endif -#if SF_HW_TEST == ENABLE - char str2[5] = { 0 }; - memcpy(str2, sendfname + 4, 4); - sf_hw_info_save(str2); -#endif } /************************************************* @@ -2294,6 +2339,7 @@ void sf_para_print(void) printf("Firmware compile time:%s %s VER:%s\n", __DATE__, __TIME__,SF_BASE_VERSION); printf("%s:%d tm: %d : %d : %d : %d : %d : %d\n", __FUNCTION__, __LINE__,ctv.tm_year, ctv.tm_mon,ctv.tm_mday,ctv.tm_hour,ctv.tm_min,ctv.tm_sec); printf("%s:%d isUsb = %d isCard = %d isCardFull = %d simCardInsert = %ld start mode = %d IRSHTTER = %d\n",__FUNCTION__,__LINE__, isUsb, isCard, isCardFull, simCardInsert, PowerOnMode, IRSHTTER); + sf_battery_print(); } #if SF_HW_TEST == ENABLE @@ -2309,14 +2355,14 @@ void sf_set_iso_exp_lv(UINT32 adj, UINT32 iso, UINT32 exp, UINT32 lv) testexp = exp; testlv = lv; } -void sf_hw_info_save(char *name) +void sf_hw_info_save(char *name,FST_FILE fd) { char *tmpBuf = NULL; //UINT32 LibatAdc = 0; //UINT32 batAdc = 0; //char fileName[64] = {0}; - FST_FILE fd = 0; + //FST_FILE fd = 0; //struct stat st; UINT32 size = 0; INT32 ret_fs = 0; @@ -2361,8 +2407,8 @@ void sf_hw_info_save(char *name) else { fd = open(SF_HW_TEST_FILE, O_APPEND | O_WRONLY | O_CREAT); }*/ - printf("fileName:%s\n",SF_HW_TEST_FILE); - fd = FileSys_OpenFile(SF_HW_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE); + //printf("fileName:%s\n",SF_HW_TEST_FILE); + //fd = FileSys_OpenFile(SF_HW_TEST_FILE, FST_OPEN_ALWAYS | FST_OPEN_WRITE); sprintf(tmpBuf, "%s %s IRSHTTER=%d TemperAdc=%lu ae_adj=%lu iso=%lu exp=%lu lv=%lu\r\n", datestr, name, IRSHTTER, sf_get_temper_adc(), testadj, testiso, testexp, testlv); @@ -2375,16 +2421,16 @@ void sf_hw_info_save(char *name) write(fd, tmpBuf, strlen(tmpBuf)); close(fd);*/ //printf("Add Success st_size:%ld\n", st.st_size); - ret_fs = FileSys_SeekFile((FST_FILE)fd, 0, FST_SEEK_END); + ret_fs = FileSys_SeekFile(fd, 0, FST_SEEK_END); if (ret_fs != FST_STA_OK) { printf("%s:%d seek file failed\r\n", __FUNCTION__, __LINE__); } size = strlen(tmpBuf); - ret_fs = FileSys_WriteFile((FST_FILE)fd, (UINT8*)tmpBuf, &size, 0, NULL); + ret_fs = FileSys_WriteFile(fd, (UINT8*)tmpBuf, &size, 0, NULL); if (ret_fs != FST_STA_OK) { printf("%s:%d FileSys_WriteFile failed\r\n", __FUNCTION__, __LINE__); } - FileSys_CloseFile(fd); + //FileSys_CloseFile(fd); } free(tmpBuf); }