Compare commits

...

10 Commits

Author SHA1 Message Date
payton
a4015c907c 1.修改升级描述 2024-04-08 15:59:51 +08:00
payton
205ae97cc3 1.增加GprsSwitch控制关机 2024-04-08 15:59:37 +08:00
payton
83a4009b7b 1.IQ同步 2024-03-14 11:16:57 +08:00
payton
047332fc05 1.ver:7MR5RCwE204 2024-02-23 18:07:26 +08:00
payton
c14430a7e1 1.ttyusb数据获取长度调整 2024-02-23 18:06:35 +08:00
payton
7b51eac1d4 1.ftp发送优化 2024-02-23 18:05:53 +08:00
payton
9961fd5c69 1.ota模块--暂时不生效 2024-02-23 18:05:32 +08:00
payton
01057bb1e0 1.gps test 2024-02-23 18:02:19 +08:00
payton
4e879463eb 1.模块ota cmd 2024-02-23 18:02:01 +08:00
payton
0cf681af96 1.修改偏色和视频开始时闪的问题 2024-02-22 16:31:11 +08:00
20 changed files with 1393 additions and 268 deletions

View File

@ -1,4 +1,4 @@
# S530
# S550
@ -12,24 +12,22 @@
1.build rtos
```
cd rtos
source build/envsetup.sh
lunch #配置model首次需要S530选择以下配置
source build/envsetup.sh #新开的终端执行此命令进行配置编译环境
lunch #配置model首次需要S550选择以下配置
#Project Config: rtos
#Model Config: cfg_565_HUNTING_EVB_LINUX_4G_S530
#Model Config: cfg_565_HUNTING_EVB_LINUX_4G_S550
#toolchain: gcc-6.5-newlib-2.4-2019.11-arm-ca9-eabihf
get_stuff_for_environment #查看配置信息
make all #其它命令使用 make help
cp output/application.bin ../
cp output/rtos-main.bin ../
```
2.build linux。在项目根目录下进行
```
source build/envsetup.sh
lunch #配置model首次需要S530选择以下配置
source build/envsetup.sh #新开的终端执行此命令进行配置编译环境
lunch #配置model首次需要S550选择以下配置
#Project Config: Linux
#Model Config: cfg_565_HUNTING_EVB_LINUX_4G_S530
#Model Config: cfg_565_HUNTING_EVB_LINUX_4G_S550
#toolchain: arm-ca9-linux-uclibcgnueabihf-8.4.01
get_stuff_for_environment #查看配置信息
@ -40,6 +38,13 @@ make all #其它命令使用 make help
output/packed/FW98565A.bin #该bin文件为升级文件将之拷贝到SD卡根目录进行升级。快捷键升级时注意请插入usb用usb供电进行升级
4.硬升级(USB供电进行升级)
将LD98565A.bin(loader\Project\Model\Loader565_Data\Release\LD98565A.bin)和FW98565A.bin(output/packed/FW98565A.bin)拷贝到SD卡根目录进行升级。长按enter 键并且插入USB供电进行升级。
5.软升级(普通方式供电进行升级)
将FW98565A.bin(output/packed/FW98565A.bin)拷贝到SD卡根目录进行升级。在菜单中选择升级等待升级完成。
## 其它选项
@ -58,3 +63,7 @@ make pack
20230407
1.增加描述
20240408
1.修改升级描述

View File

@ -924,7 +924,7 @@
#define HUNTING_MCU_UART ENABLE
#define HUNTING_IR_LED_940 ENABLE
#define SF_EXIF_MN_BUF_SIZE 256
#define SF_BASE_VERSION "7MR5RCwE203"
#define SF_BASE_VERSION "7MR5RCwE204"
#define HW_S530 DISABLE
#define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
#define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */

View File

@ -286,6 +286,9 @@ SXCMD_ITEM("sfdump %", sf_vos_perf_list_dump, "sfdump")
SXCMD_ITEM("sdfilesw %", sf_cmd_sd_file_switch, "sdfilesw")
SXCMD_ITEM("lpatest %", sf_cmd_lpa_test, "lpatest")
SXCMD_ITEM("fwup %", sf_cmd_fw_upgrade, "fwup")
SXCMD_ITEM("modota %", sf_cmd_4g_ota_upgrade, "modota")
#endif
#if FS_MULTI_STRG_FUNC /* test cmd */

View File

@ -23,6 +23,82 @@ extern "C" {
#define SF_OTA_UPGRADE_FILE_PATH SF_SD_ROOT OTA_UPGRADE_FILE_NAME
#define SF_OTA_PARAM_BACKUP_FATH SF_SD_ROOT OTA_BAK_FILE_NAME
#define MODULE_VER "EG"
#define MODULE_VER_FLG1 "FAR"
#define MODULE_VER_FLG2 "GAR"
#define EG91E_MODULE_VER "EG91E"
#define EG91V_MODULE_VER "EG91V"
#define EG91A_MODULE_VER "EG91NA"
#define EC25E_MODULE_VER "EC25E"
#define EC25V_MODULE_VER "EC25V"
#define EC25A_MODULE_VER "EC25A"
#define OTA_FTP_CFGFILENAME_EG91E "DFOTA_EG91E.CFG"
#define OTA_FTP_UPDATAFILENAME_EG91E "module_EG91E.zip"
#define OTA_FTP_CFGFILENAME_EG91V "DFOTA_EG91V.CFG"
#define OTA_FTP_UPDATAFILENAME_EG91V "module_EG91V.zip"
#define OTA_FTP_CFGFILENAME_EG91A "DFOTA_EG91NA.CFG"
#define OTA_FTP_UPDATAFILENAME_EG91A "module_EG91NA.zip"
#define OTA_FTP_CFGFILENAME_EC25E "DFOTA_E.CFG"
#define OTA_FTP_UPDATAFILENAME_EC25E "module_E.zip"
#define OTA_FTP_CFGFILENAME_EC25V "DFOTA_V.CFG"
#define OTA_FTP_UPDATAFILENAME_EC25V "module_V.zip"
#define OTA_FTP_CFGFILENAME_EC25A "DFOTA_A.CFG"
#define OTA_FTP_UPDATAFILENAME_EC25A "module_A.zip"
#define DFOTA_OTA_DIR "DFOTA_S550"
#if 0
typedef enum _OTA_FTP
{
OTA_FTP_FRIST =(unsigned char)0x01,
OTA_FTP_CURVER,
OTA_FTP_QICSGP,
OTA_FTP_QICSGP1,
OTA_FTP_QIACT,
OTA_FTP_QFTPCFG1,
OTA_FTP_QFTPCFG2,
OTA_FTP_QFTPCFG3,
OTA_FTP_QFTPCFG4,
OTA_FTP_QFTPCFG5,
OTA_FTP_QFTPOPEN,
OTA_FTP_QFTPNLST,
OTA_FTP_QFTPGETCFG,
OTA_FTP_QFTPCLOSE,
OTA_FTP_OPENCFG,
OTA_FTP_SEEKCFG,
OTA_FTP_READCFG,
OTA_FTP_CLOSECFG,
OTA_FTP_QIDEACT,
OTA_FTP_QFOTADL,
OTA_FTP_DOWNLOAD,
OTA_FTP_UPDATING,
OTA_FTP_UPDATING1,
OTA_FTP_UPDATING2,
OTA_FTP_UPDATAEND,
OTA_FTP_CHECK,
OTA_FTP_QGMR,
OTA_FTP_END,
}OTA_FTP;
typedef enum _OTA_Cue
{
OTA_UPDATING = (unsigned char)0x01,
OTA_NOUPDATE,
OTA_SUCCESS,
OTA_FAIL,
OTA_TIME_OUT = (unsigned char)0x64,/*100*/
OTA_FILE_OPEN_ERROR = (unsigned char)0xc8,/*200*/
OTA_FILE_SIZE_ERROR,
OTA_DOWNLOAD_ERROR,
OTA_UPDATED_ERROR,
OTA_VERTION_ERROR,
OTA_BATTERY_LOW,
}OTA_Cue;
#endif
typedef struct sf_ota_attrs {
int server_type;
char server_url[128];
@ -35,6 +111,44 @@ typedef struct sf_ota_attrs {
//SSL *ssl;
//SSL_CTX *ctx;
} SF_OTA_ATTRS;
typedef enum _OTA_ERR_CODE_E{
OTA_ERROR_QIACT = 1,
OTA_ERROR_VERTION = 2,
OTA_ERROR_VERSION_INVALID= 3,
OTA_ERROR_TIME_OUT = 4,
OTA_ERROR_BAT_LOW = 5,
OTA_ERROR_FTP_OPEN = 6,
OTA_ERROR_FTP_NLST = 7,
OTA_ERROR_FTP_GET = 8,
OTA_ERROR_FTP_QIDEACT = 9,
OTA_ERROR_FTP_QFSEEK = 10,
OTA_ERROR_FTP_CFGFORMAT = 11,
OTA_ERROR_FTP_QFREAD = 12,
OTA_ERROR_FTP_QFOTADL = 13,
OTA_ERROR_FTP_DOWNLOAD = 14,
OTA_ERROR_FTP_UPDATE = 15,
OTA_ERROR_QIDEACT = 16,
OTA_ERROR_BUTT,
}OTA_ERR_CODE_e;
#define SF_OTA_ERROR_QIACT SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_QIACT)
#define SF_OTA_ERROR_VERTION SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_VERTION)
#define SF_OTA_ERROR_VERTION_INVAlID SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_VERSION_INVALID)
#define SF_OTA_ERROR_TIME_OUT SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_TIME_OUT)
#define SF_OTA_ERROR_BAT_LOW SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_BAT_LOW)
#define SF_OTA_ERROR_FTP_OPEN SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_OPEN)
#define SF_OTA_ERROR_FTP_NLST SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_NLST)
#define SF_OTA_ERROR_FTP_GET SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_GET)
#define SF_OTA_ERROR_FTP_QIDEACT SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_QIDEACT)
#define SF_OTA_ERROR_FTP_QFSEEK SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_QFSEEK)
#define SF_OTA_ERROR_FTP_CFGFORMAT SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_CFGFORMAT)
#define SF_OTA_ERROR_FTP_QFREAD SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_QFREAD)
#define SF_OTA_ERROR_FTP_QFOTADL SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_QFOTADL)
#define SF_OTA_ERROR_FTP_DOWNLOAD SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_DOWNLOAD)
#define SF_OTA_ERROR_FTP_UPDATE SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_FTP_UPDATE)
#define SF_OTA_ERROR_QIDEACT SF_ERR_ID(SF_MOD_OTA, OTA_ERROR_QIDEACT)
SINT32 upgrade_ota_file_IsExsit(SF_CHAR *fileName);
SINT32 sf_upgrade_ota_init(void);
@ -52,6 +166,7 @@ SINT32 sf_upgrade_ota_filecheck(void);
SINT32 sf_upgrade_ota_param_bak(void);
SINT32 sf_upgrade_ota_param_recover(void);
SINT32 sf_module_ota_ftp(void);
#ifdef __cplusplus
#if __cplusplus

View File

@ -220,6 +220,7 @@ typedef enum SF_MOD_e {
SF_MOD_SMS,
SF_MOD_4G,
SF_MOD_4G_SEND,
SF_MOD_OTA,
SF_MOD_FILE,
SF_MOD_HTTP,
SF_MOD_TTY,
@ -491,6 +492,8 @@ typedef enum sf_PARA_MESSAGE_TYPE_E
SF_PARA_CMD_USB_INIT = 0x1F08,
SF_PARA_CMD_GPS_STATUS = 0X1F09,
SF_PARA_CMD_FTP_CONNECT_STATUS= 0X1F0A,
SF_PARA_CMD_MOUP_OTA = 0X1F0F,
}SF_PARA_MESSAGE_TYPE_E;
typedef enum sf_WIFI_MESSAGE_TYPE_E

View File

@ -68,6 +68,7 @@ SINT32 sf_app_mcu_para_power_no_start(void);
SINT32 sf_app_mcu_updata_start(void);
UINT8 sf_app_get_mcu_init_flag(void);
SINT32 sf_app_lpa_start(void);
void sf_do_4g_upgrade_ota_thread(void);
#ifdef __cplusplus
#if __cplusplus
}

View File

@ -76,7 +76,7 @@ SINT32 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime)
UINT16 timeout_count = 0;
UINT16 callTime = 0;
UINT8 reHttpSRequest=0;
SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 };
SF_CHAR gsmPara[SF_TTYUSB_RECV_MAX] = { 0 };
SF_CHAR dataStr[SF_TTYUSB_RECV_MAX] = { 0 };
MODULE_SERVER_AUTHEN_E enATcmdType = MODULE_HTTP_AUTHEN_AT_QIACT_PRE;
@ -91,37 +91,37 @@ SINT32 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime)
switch(enATcmdType)
{
case MODULE_HTTP_AUTHEN_AT_QIACT_PRE:
sprintf(ttyData, "AT+QIDEACT=%d\r", HTTP_PDP);
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QIDEACT=%d\r", HTTP_PDP);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
enATcmdType = MODULE_HTTP_AUTHEN_AT_QIACT;
break;
case MODULE_HTTP_AUTHEN_AT_QIACT:
sprintf(ttyData,"AT+QIACT=%d\r",HTTP_PDP);/**/
sprintf(gsmPara,"AT+QIACT=%d\r",HTTP_PDP);/**/
enATcmdType = MODULE_HTTP_AUTHEN_AT_QHTTPURL_1;
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
break;
case MODULE_HTTP_AUTHEN_AT_QHTTPURL_1:
if(strstr(ttyData, "OK"))
if(strstr(gsmPara, "OK"))
{
timeout_count = 0;
callTime = 0;
sprintf(dataStr,"http://acenter.wuyuantech.com/CameraManager/device/getGreenDate"/*, pStaticParam->WebIP*/);
sprintf(ttyData, "AT+QHTTPURL=%d,80\r",strlen(dataStr));
sprintf(gsmPara, "AT+QHTTPURL=%d,80\r",strlen(dataStr));
enATcmdType = MODULE_HTTP_AUTHEN_AT_QHTTPURL_2;
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
}
else if(strstr(ttyData, "ERROR"))
else if(strstr(gsmPara, "ERROR"))
{
callTime++;
if(callTime < PDP_TRY_TIME)
{
sf_sleep_s(2);
sprintf(ttyData, "AT+QIACT=%d\r",HTTP_PDP);
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QIACT=%d\r",HTTP_PDP);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
}
else
@ -129,9 +129,9 @@ SINT32 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime)
callTime=0;
sts = 0;
ret = SF_GPS_ERROR_QIACT;
SLOGE("Moudle QIACT ERROR.DATA:%s", ttyData);
sprintf(ttyData, "AT+QIDEACT=%d\r",HTTP_PDP);
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
SLOGE("Moudle QIACT ERROR.DATA:%s", gsmPara);
sprintf(gsmPara, "AT+QIDEACT=%d\r",HTTP_PDP);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
@ -142,31 +142,31 @@ SINT32 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime)
sts = 0;
ret = SF_GPS_ERROR_QIACT;
SLOGE("Moudle QIACT timeout");
sprintf(ttyData, "AT+QIDEACT=%d\r",HTTP_PDP);
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QIDEACT=%d\r",HTTP_PDP);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
}
break;
case MODULE_HTTP_AUTHEN_AT_QHTTPURL_2:
if(strstr(ttyData, "CONNECT"))
if(strstr(gsmPara, "CONNECT"))
{
timeout_count = 0;
sprintf(ttyData,"http://acenter.wuyuantech.com/CameraManager/device/getGreenDate"/*, pStaticParam->WebIP*/);
sprintf(gsmPara,"http://acenter.wuyuantech.com/CameraManager/device/getGreenDate"/*, pStaticParam->WebIP*/);
enATcmdType = MODULE_HTTP_AUTHEN_AT_QHTTPGET;
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
}
break;
case MODULE_HTTP_AUTHEN_AT_QHTTPGET:
if(strstr(ttyData, "OK"))
if(strstr(gsmPara, "OK"))
{
timeout_count = 0;
callTime = 0;
sprintf(ttyData,"%s","AT+QHTTPGET=80\r");
sprintf(gsmPara,"%s","AT+QHTTPGET=80\r");
enATcmdType = MODULE_HTTP_AUTHEN_AT_QHTTPREAD;
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
}
break;
@ -174,48 +174,48 @@ SINT32 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime)
case MODULE_HTTP_AUTHEN_AT_QHTTPREAD:
timeout_count = 0;
callTime++;
if(strstr(ttyData, "+QHTTPGET:"))
if(strstr(gsmPara, "+QHTTPGET:"))
{
if(strstr(ttyData, "+QHTTPGET: 0,200"))
if(strstr(gsmPara, "+QHTTPGET: 0,200"))
{
timeout_count= 0;
callTime = 0;
sprintf(ttyData,"%s","AT+QHTTPREAD=80\r");
sprintf(gsmPara,"%s","AT+QHTTPREAD=80\r");
enATcmdType = MODULE_HTTP_AUTHEN_AT_QIDEACT;
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
}
else if(reHttpSRequest == 0)
{
SLOGW("HTTP Send Failed,try again");
reHttpSRequest = 1;
sprintf(ttyData,"%s","AT\r");
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara,"%s","AT\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
enATcmdType = MODULE_HTTP_AUTHEN_AT_QHTTPURL_1;
}
else
{
SLOGE("HTTP Send Failed,data:%s", ttyData);
SLOGE("HTTP Send Failed,data:%s", gsmPara);
SLOGE("FAILED:send http failed!!!!!\n");
ret = SF_HTTP_ERROR_REQUEST;
sprintf(ttyData, "AT+QIDEACT=%d\r", HTTP_PDP);
sprintf(gsmPara, "AT+QIDEACT=%d\r", HTTP_PDP);
enATcmdType = MODULE_HTTP_AUTHEN_AT_END;
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
}
}
else
{
if((strstr(ttyData,"ERROR")) || (callTime > 400))
if((strstr(gsmPara,"ERROR")) || (callTime > 400))
{
if(reHttpSRequest == 0)
{
SLOGD("FAILED:send http timeout,try again\n");
reHttpSRequest = 1;
sprintf(ttyData,"%s","AT\r");
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara,"%s","AT\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
enATcmdType = MODULE_HTTP_AUTHEN_AT_QHTTPURL_1;
}
@ -223,8 +223,8 @@ SINT32 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime)
{
SLOGD("FAILED:send http timeout!!!!!\n");
ret = SF_HTTP_ERROR_REQUEST;
sprintf(ttyData, "AT+QIDEACT=%d\r", HTTP_PDP);
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QIDEACT=%d\r", HTTP_PDP);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
enATcmdType = MODULE_HTTP_AUTHEN_AT_END;
}
@ -235,11 +235,11 @@ SINT32 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime)
case MODULE_HTTP_AUTHEN_AT_QIDEACT:
timeout_count = 0;
if(strstr(ttyData,"statu"))
if(strstr(gsmPara,"statu"))
{
UINT8 *P1 = NULL;
P1 = (UINT8 *)strstr(ttyData,"greenDate");
P1 = (UINT8 *)strstr(gsmPara,"greenDate");
if(P1 != NULL)
{
//printf("greenDate:%s\n",P1);
@ -265,16 +265,16 @@ SINT32 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime)
pNowTime->Sec = atoi((char *)tempStr);
SLOGD("%d/%02d/%02d %02d:%02d:%02d\n",pNowTime->Year,pNowTime->Mon,pNowTime->Day,pNowTime->Hour,pNowTime->Min,pNowTime->Sec);
sprintf(ttyData, "AT+QIDEACT=%d\r", HTTP_PDP);
sprintf(gsmPara, "AT+QIDEACT=%d\r", HTTP_PDP);
enATcmdType = MODULE_HTTP_AUTHEN_AT_END;
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
}
else
{
sprintf(ttyData, "AT+QIDEACT=%d\r", HTTP_PDP);
sprintf(gsmPara, "AT+QIDEACT=%d\r", HTTP_PDP);
enATcmdType = MODULE_HTTP_AUTHEN_AT_END;
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
}
}
@ -285,27 +285,27 @@ SINT32 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime)
{
SLOGE("FAILED:send http timeout!!!!!\n");
callTime = 0;
sprintf(ttyData, "AT+QIDEACT=%d\r", HTTP_PDP);
sprintf(gsmPara, "AT+QIDEACT=%d\r", HTTP_PDP);
enATcmdType = MODULE_HTTP_AUTHEN_AT_END;
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
}
}
break;
case MODULE_HTTP_AUTHEN_AT_END:
if(strstr(ttyData, "OK") || (timeout_count > 100))
if(strstr(gsmPara, "OK") || (timeout_count > 100))
return ret;
break;
default:
break;
}
SLOGD("sendBuf******\n %s \n*********************\n\n", ttyData);
memset(ttyData,'\0',SF_TTYUSB_RECV_MAX);
sf_hal_ttyusb2_read(ttyData, 200);
SLOGD("sendBuf******\n %s \n*********************\n\n", gsmPara);
memset(gsmPara,'\0',SF_TTYUSB_RECV_MAX);
sf_hal_ttyusb2_read(gsmPara, 200);
SLOGD("callTIme:%d, location:%d\n", callTime, enATcmdType);
SLOGD("revBuf******\n %s \n*********************\n\n", ttyData);
SLOGD("revBuf******\n %s \n*********************\n\n", gsmPara);
timeout_count++;
if(timeout_count > 200)
{
@ -324,11 +324,12 @@ SINT32 eg91_gps_Isupdate(SF_FN_PARAM_S *pfnParam,UINT8 *pIsupdate,SF_PARA_TIME_S
SF_COMM_CHECK_POINTER(pfnParam->pfn_AT_instruction_exit,SF_FAILURE);
SF_COMM_CHECK_POINTER(pNowTime,SF_FAILURE);
SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 };
// SF_CHAR gsmPara[SF_TTYUSB_RECV_MAX] = { 0 };
UINT16 sts =1;
UINT16 timeout_count = 0;
UINT16 callTime = 0;
SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 1000, .len = 255, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
SF_PARA_TIME_S preDate;
SIM_SEARCH_GPS_e enMmcLocation = SIM_SEARCH_GPS_FIRST;
@ -344,22 +345,22 @@ SINT32 eg91_gps_Isupdate(SF_FN_PARAM_S *pfnParam,UINT8 *pIsupdate,SF_PARA_TIME_S
switch(enMmcLocation)
{
case SIM_SEARCH_GPS_FIRST:
sprintf(ttyData, "%s", "AT+QGPSXTRA?\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "%s", "AT+QGPSXTRA?\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
enMmcLocation = SIM_SEARCH_GPS_FIRST_1;
break;
case SIM_SEARCH_GPS_FIRST_1:
if(strstr(ttyData,"+QGPSXTRA: 1"))
if(strstr(gsmPara,"+QGPSXTRA: 1"))
{
sprintf(ttyData, "AT+QGPSXTRADATA?\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSXTRADATA?\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
enMmcLocation = SIM_SEARCH_GPS_QGPSXTRA;
}else if(strstr(ttyData,"+QGPSXTRA: 0"))
}else if(strstr(gsmPara,"+QGPSXTRA: 0"))
{
callTime = 0;
sprintf(ttyData, "AT+QGPSXTRA=1\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSXTRA=1\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
enMmcLocation = SIM_SEARCH_GPS_FIRST_2;
}else if(timeout_count > 200)
{
@ -368,10 +369,10 @@ SINT32 eg91_gps_Isupdate(SF_FN_PARAM_S *pfnParam,UINT8 *pIsupdate,SF_PARA_TIME_S
}
break;
case SIM_SEARCH_GPS_FIRST_2:
if(strstr(ttyData,"OK"))
if(strstr(gsmPara,"OK"))
{
sprintf(ttyData, "%s", "AT+QGPSXTRADATA?\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "%s", "AT+QGPSXTRADATA?\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
enMmcLocation = SIM_SEARCH_GPS_QGPSXTRA;
}
else
@ -382,12 +383,12 @@ SINT32 eg91_gps_Isupdate(SF_FN_PARAM_S *pfnParam,UINT8 *pIsupdate,SF_PARA_TIME_S
}
break;
case SIM_SEARCH_GPS_QGPSXTRA:
if(strstr((const char *)ttyData,"OK"))
if(strstr((const char *)gsmPara,"OK"))
{
if(strstr(ttyData,",\"")!=NULL)
if(strstr(gsmPara,",\"")!=NULL)
{
int diffsec = 0;
SF_CHAR *CCLK = strstr(ttyData, ",\"");
SF_CHAR *CCLK = strstr(gsmPara, ",\"");
preDate.Year = (CCLK[2]- '0')*1000 + (CCLK[3]- '0')*100 + (CCLK[4]-'0')*10 + (CCLK[5]-'0');
preDate.Mon = (CCLK[7]- '0')*10 + (CCLK[8]- '0');
@ -411,8 +412,8 @@ SINT32 eg91_gps_Isupdate(SF_FN_PARAM_S *pfnParam,UINT8 *pIsupdate,SF_PARA_TIME_S
else
{
enMmcLocation = SIM_SEARCH_GPS_EXIT;
sprintf(ttyData, "AT\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
}
@ -429,11 +430,14 @@ SINT32 eg91_gps_Isupdate(SF_FN_PARAM_S *pfnParam,UINT8 *pIsupdate,SF_PARA_TIME_S
default:
break;
}
SLOGD("sendBuf******\n %s \n*********************\n\n", ttyData);
memset(ttyData,'\0',SF_TTYUSB_RECV_MAX);
sf_hal_ttyusb2_read(ttyData, 200);
SLOGD("callTIme:%d, location:%d\n", callTime, enMmcLocation);
SLOGD("revBuf******\n %s \n*********************\n\n", ttyData);
sf_gsm_para_buff_clear();
//sf_hal_ttyusb2_read(gsmPara, 200);
sf_hal_ttyusb2_read_buf(&ttyData);
if(gsmPara[0] != '\0')
{
MLOGD("enMmcLocation:%d\n%s\n", enMmcLocation, gsmPara);
}
timeout_count++;
if(timeout_count > 200)
{
@ -453,8 +457,8 @@ SINT32 eg91_gps_search(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime,UINT8 au
SF_COMM_CHECK_POINTER(pfnParam->pfn_AT_instruction_exit,SF_FAILURE);
SF_COMM_CHECK_POINTER(pNowTime,SF_FAILURE);
UINT16 timeout_count = 0;
UINT16 callTime = 0;
SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 };
// UINT16 callTime = 0;
// SF_CHAR gsmPara[SF_TTYUSB_RECV_MAX] = { 0 };
UINT16 sts =1;
UINT16 calltime = 0;
//UINT8 pdpdeact = 0;
@ -463,7 +467,16 @@ SINT32 eg91_gps_search(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime,UINT8 au
SF_PDT_PARAM_STATISTICS_S *pStaticParam = pfnParam->pstaticParam;
SIM_SEARCH_GPS_e enMmcLocation = SIM_SEARCH_GPS_FIRST;
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
// UIMenuStoreInfo *pPara = sf_app_ui_para_get();
SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 1000, .len = 255, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
// SF_DEBUG("Sim4gApn=%s", pPara->Sim4gApn);
sf_hal_ttyusb2_read(gsmPara, 200);//clean uart read buff
sf_gsm_para_buff_clear();
while(sts && sf_app_while_flag())
{
if(SF_TRUE == pfnParam->pfn_AT_instruction_exit(0))
@ -476,34 +489,34 @@ SINT32 eg91_gps_search(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime,UINT8 au
{
case SIM_SEARCH_GPS_FIRST:
enMmcLocation = SIM_SEARCH_GPS_DELRAM;
sprintf(ttyData, "AT+QFDEL=\"RAM:*\"\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QFDEL=\"RAM:*\"\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
break;
case SIM_SEARCH_GPS_DELRAM:
if(strstr(ttyData,"OK") || strstr(ttyData,"ERROR"))
if(strstr(gsmPara,"OK") || strstr(gsmPara,"ERROR"))
{
if(strstr(pStaticParam->ApnGPRS, V_MODULE_APN))
{
sprintf(ttyData, "AT+QHTTPCFG=\"contextid\",%d\r", V_PDP_INDEX);
sprintf(gsmPara, "AT+QHTTPCFG=\"contextid\",%d\r", V_PDP_INDEX);
}else if(strstr(pStaticParam->ApnGPRS, A_MODULE_APN))
{
sprintf(ttyData, "AT+QHTTPCFG=\"contextid\",%d\r", A_PDP_INDEX);
sprintf(gsmPara, "AT+QHTTPCFG=\"contextid\",%d\r", A_PDP_INDEX);
}else
{
sprintf(ttyData, "AT+QHTTPCFG=\"contextid\",%d\r", E_PDP_INDEX);
sprintf(gsmPara, "AT+QHTTPCFG=\"contextid\",%d\r", E_PDP_INDEX);
}
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
enMmcLocation = SIM_SEARCH_GPS_REQUESTHEADER;
}
break;
case SIM_SEARCH_GPS_REQUESTHEADER:
sprintf(ttyData, "AT+QHTTPCFG=\"requestheader\",0\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QHTTPCFG=\"requestheader\",0\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
enMmcLocation = SIM_SEARCH_GPS_DOWNLOAD1;
break;
case SIM_SEARCH_GPS_DOWNLOAD1:
sprintf(ttyData, "AT+QHTTPCFG=\"responseheader\",0\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QHTTPCFG=\"responseheader\",0\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
enMmcLocation = SIM_SEARCH_GPS_DOWNLOAD2;
break;
@ -512,79 +525,79 @@ SINT32 eg91_gps_search(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime,UINT8 au
SLOGD("APN:%s \n", pStaticParam->ApnGPRS);
if(strstr(pStaticParam->ApnGPRS, V_MODULE_APN))
{
sprintf(ttyData, "AT+QICSGP=%d\r", V_PDP_INDEX);
sprintf(gsmPara, "AT+QICSGP=%d\r", V_PDP_INDEX);
enMmcLocation = SIM_SEARCH_GPS_CSGP;
}
else if(strstr(pStaticParam->ApnGPRS, A_MODULE_APN))
{
sprintf(ttyData, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r", A_PDP_INDEX,
sprintf(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r", A_PDP_INDEX,
pStaticParam->ApnGPRS, pStaticParam->ApnUsername, pStaticParam->ApnPassword);
enMmcLocation = SIM_SEARCH_GPS_DOWNLOAD3;;
}
else
{
sprintf(ttyData, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r", E_PDP_INDEX,
sprintf(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r", E_PDP_INDEX,
pStaticParam->ApnGPRS, pStaticParam->ApnUsername, pStaticParam->ApnPassword);
enMmcLocation = SIM_SEARCH_GPS_DOWNLOAD3;
}
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
break;
case SIM_SEARCH_GPS_CSGP:
if(strstr(ttyData, "OK"))
if(strstr(gsmPara, "OK"))
{
if(strstr(ttyData, "+QICSGP: 0") || strstr(ttyData, "+QICSGP: 1,\"\""))
if(strstr(gsmPara, "+QICSGP: 0") || strstr(gsmPara, "+QICSGP: 1,\"\""))
{
sprintf(ttyData, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",V_PDP_INDEX,
sprintf(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",V_PDP_INDEX,
pStaticParam->ApnGPRS, pStaticParam->ApnUsername, pStaticParam->ApnPassword);
}
else
{
sprintf(ttyData, "AT\r");
sprintf(gsmPara, "AT\r");
}
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
enMmcLocation = SIM_SEARCH_GPS_DOWNLOAD3;
}
break;
case SIM_SEARCH_GPS_DOWNLOAD3:
if(strstr(ttyData, "OK"))
if(strstr(gsmPara, "OK"))
{
if(strstr(pStaticParam->ApnGPRS, V_MODULE_APN))
sprintf(ttyData, "AT+QIACT=%d\r", V_PDP_INDEX);
sprintf(gsmPara, "AT+QIACT=%d\r", V_PDP_INDEX);
else if(strstr(pStaticParam->ApnGPRS, A_MODULE_APN))
sprintf(ttyData, "AT+QIACT=%d\r", A_PDP_INDEX);
sprintf(gsmPara, "AT+QIACT=%d\r", A_PDP_INDEX);
else
sprintf(ttyData, "AT+QIACT=%d\r", E_PDP_INDEX);
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QIACT=%d\r", E_PDP_INDEX);
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
enMmcLocation = SIM_SEARCH_GPS_DOWNLOAD4;
}
break;
case SIM_SEARCH_GPS_DOWNLOAD4:
if(strstr(ttyData, "OK"))
if(strstr(gsmPara, "OK"))
{
int len=0;
enMmcLocation = SIM_SEARCH_GPS_DOWNLOAD5;
len = strlen("http://xtrapath3.izatcloud.net/xtra3grc.bin");
sprintf(ttyData, "AT+QHTTPURL=%d,80\r", len);
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QHTTPURL=%d,80\r", len);
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
else if(strstr(ttyData,"ERROR"))
else if(strstr(gsmPara,"ERROR"))
{
calltime++;
SLOGD("calltime++=%d\n",calltime);
if(calltime<6)
{
if(strstr(pStaticParam->ApnGPRS, V_MODULE_APN))
sprintf(ttyData, "AT+QIACT=%d\r", V_PDP_INDEX);
sprintf(gsmPara, "AT+QIACT=%d\r", V_PDP_INDEX);
else if(strstr(pStaticParam->ApnGPRS, A_MODULE_APN))
sprintf(ttyData, "AT+QIACT=%d\r", A_PDP_INDEX);
sprintf(gsmPara, "AT+QIACT=%d\r", A_PDP_INDEX);
else
sprintf(ttyData, "AT+QIACT=%d\r", E_PDP_INDEX);
sprintf(gsmPara, "AT+QIACT=%d\r", E_PDP_INDEX);
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
sf_sleep_ms(1700);
}
else
@ -598,28 +611,28 @@ SINT32 eg91_gps_search(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime,UINT8 au
break;
case SIM_SEARCH_GPS_DOWNLOAD5:
if(strstr(ttyData, "CONNECT"))
if(strstr(gsmPara, "CONNECT"))
{
enMmcLocation = SIM_SEARCH_GPS_DOWNLOAD6;
sprintf(ttyData, "http://xtrapath3.izatcloud.net/xtra3grc.bin\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "http://xtrapath3.izatcloud.net/xtra3grc.bin\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
break;
case SIM_SEARCH_GPS_DOWNLOAD6:
if(strstr(ttyData, "OK"))
if(strstr(gsmPara, "OK"))
{
enMmcLocation = SIM_SEARCH_GPS_DOWNLOAD7;
sprintf(ttyData, "AT+QHTTPGET=80\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QHTTPGET=80\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
break;
case SIM_SEARCH_GPS_DOWNLOAD7:
if(strstr(ttyData, "+QHTTPGET: 0,200"))
if(strstr(gsmPara, "+QHTTPGET: 0,200"))
{
enMmcLocation = SIM_SEARCH_GPS_DOWNLOAD8;
sprintf(ttyData, "AT+QHTTPREADFILE=\"RAM:xtra2.bin\",80\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QHTTPREADFILE=\"RAM:xtra2.bin\",80\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
else
@ -633,94 +646,94 @@ SINT32 eg91_gps_search(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime,UINT8 au
SLOGE("[ERROR]GPS QHTTPGET time out\n");
if(strstr(pStaticParam->ApnGPRS, V_MODULE_APN))
sprintf(ttyData, "AT+QIDEACT=%d\r", V_PDP_INDEX);
sprintf(gsmPara, "AT+QIDEACT=%d\r", V_PDP_INDEX);
else if(strstr(pStaticParam->ApnGPRS, A_MODULE_APN))
sprintf(ttyData, "AT+QIDEACT=%d\r", A_PDP_INDEX);
sprintf(gsmPara, "AT+QIDEACT=%d\r", A_PDP_INDEX);
else
sprintf(ttyData, "AT+QIDEACT=%d\r", E_PDP_INDEX);
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QIDEACT=%d\r", E_PDP_INDEX);
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
}
break;
case SIM_SEARCH_GPS_DOWNLOAD8:
if(strstr(ttyData,"+QHTTPREADFILE: 0"))
if(strstr(gsmPara,"+QHTTPREADFILE: 0"))
{
enMmcLocation = SIM_SEARCH_GPS_DOWNLOAD10;
if(strstr(pStaticParam->ApnGPRS, V_MODULE_APN))
sprintf(ttyData, "AT+QIDEACT=%d\r", V_PDP_INDEX);
sprintf(gsmPara, "AT+QIDEACT=%d\r", V_PDP_INDEX);
else if(strstr(pStaticParam->ApnGPRS, A_MODULE_APN))
sprintf(ttyData, "AT+QIDEACT=%d\r", A_PDP_INDEX);
sprintf(gsmPara, "AT+QIDEACT=%d\r", A_PDP_INDEX);
else
sprintf(ttyData, "AT+QIDEACT=%d\r", E_PDP_INDEX);
sprintf(gsmPara, "AT+QIDEACT=%d\r", E_PDP_INDEX);
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
else if(strstr(ttyData,"+QHTTPREADFILE: 702") != NULL)
else if(strstr(gsmPara,"+QHTTPREADFILE: 702") != NULL)
{
enMmcLocation = SIM_SEARCH_GPS_EXIT;
SLOGE("[ERROR]GPS +QHTTPREADFILE: 702\n");
if(strstr(pStaticParam->ApnGPRS, V_MODULE_APN))
sprintf(ttyData, "AT+QIDEACT=%d\r", V_PDP_INDEX);
sprintf(gsmPara, "AT+QIDEACT=%d\r", V_PDP_INDEX);
else if(strstr(pStaticParam->ApnGPRS, A_MODULE_APN))
sprintf(ttyData, "AT+QIDEACT=%d\r", A_PDP_INDEX);
sprintf(gsmPara, "AT+QIDEACT=%d\r", A_PDP_INDEX);
else
sprintf(ttyData, "AT+QIDEACT=%d\r", E_PDP_INDEX);
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QIDEACT=%d\r", E_PDP_INDEX);
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
break;
case SIM_SEARCH_GPS_DOWNLOAD9:
if(strstr(ttyData, "OK"))
if(strstr(gsmPara, "OK"))
{
enMmcLocation = SIM_SEARCH_GPS_DOWNLOAD10;
sprintf(ttyData, "AT+QGPSXTRA=1\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSXTRA=1\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
break;
case SIM_SEARCH_GPS_DOWNLOAD10:
if(strstr(ttyData,"OK"))
if(strstr(gsmPara,"OK"))
{
enMmcLocation = SIM_SEARCH_GPS_GPS_XTRADATA2;
sprintf(ttyData, "AT+QGPSXTRATIME=0,\"%04d/%02d/%02d,%02d:%02d:%02d\",1,1,5\r",
sprintf(gsmPara, "AT+QGPSXTRATIME=0,\"%04d/%02d/%02d,%02d:%02d:%02d\",1,1,5\r",
pNowTime->Year, pNowTime->Mon, pNowTime->Day, pNowTime->Hour, pNowTime->Min, pNowTime->Sec);
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
break;
case SIM_SEARCH_GPS_GPS_XTRADATA1:
if(strstr(ttyData, "OK"))
if(strstr(gsmPara, "OK"))
{
enMmcLocation = SIM_SEARCH_GPS_GPS_XTRADATA2;
sprintf(ttyData, "AT\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
else if(strstr(ttyData, "+QGPSURC") != 0 )
else if(strstr(gsmPara, "+QGPSURC") != 0 )
{
printf("SIYUAN:qrc");
enMmcLocation = SIM_SEARCH_GPS_GPS_XTRADATA2;
sprintf(ttyData, "AT\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
break;
case SIM_SEARCH_GPS_GPS_XTRADATA2:
if(strstr(ttyData, "OK"))
if(strstr(gsmPara, "OK"))
{
enMmcLocation = SIM_SEARCH_GPS_EXIT;
sprintf(ttyData, "AT+QGPSXTRADATA=\"RAM:xtra2.bin\"\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSXTRADATA=\"RAM:xtra2.bin\"\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
break;
case SIM_SEARCH_GPS_ON:
enMmcLocation = SIM_SEARCH_GPS_EXIT;
sprintf(ttyData, "AT+QGPS=1\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPS=1\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
break;
case SIM_SEARCH_GPS_EXIT:
sts = 0;
@ -728,11 +741,14 @@ SINT32 eg91_gps_search(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime,UINT8 au
default:
break;
}
SLOGD("sendBuf******\n %s \n*********************\n\n", ttyData);
memset(ttyData,'\0',SF_TTYUSB_RECV_MAX);
sf_hal_ttyusb2_read(ttyData, 200);
SLOGD("callTIme:%d, location:%d\n", callTime, enMmcLocation);
SLOGD("revBuf******\n %s \n*********************\n\n", ttyData);
sf_gsm_para_buff_clear();
//sf_hal_ttyusb2_read(gsmPara, 200);
sf_hal_ttyusb2_read_buf(&ttyData);
if(gsmPara[0] != '\0')
{
MLOGD("enMmcLocation:%d\n%s\n", enMmcLocation, gsmPara);
}
timeout_count++;
if(timeout_count > 200)
{
@ -750,7 +766,7 @@ SINT32 eg91_gps_preconfig(SF_FN_PARAM_S *pfnParam)
SF_COMM_CHECK_POINTER(pfnParam->pfn_AT_instruction_exit,SF_FAILURE);
UINT16 timeout_count = 0;
SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 };
SF_CHAR gsmPara[SF_TTYUSB_RECV_MAX] = { 0 };
UINT16 sts =1;
UINT16 calltime = 0;
UINT8 pdpdeact = 0;
@ -772,47 +788,47 @@ SINT32 eg91_gps_preconfig(SF_FN_PARAM_S *pfnParam)
{
case SIM_SEARCH_GPS_FIRST:
enMmcLocation = SIM_SEARCH_GPS_ON;
sprintf(ttyData, "%s", "AT+QGPSCFG=\"outport\",\"uartdebug\"\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "%s", "AT+QGPSCFG=\"outport\",\"uartdebug\"\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
break;
case SIM_SEARCH_GPS_ON:
enMmcLocation = SIM_SEARCH_GPS_EXIT;
sprintf(ttyData, "AT+QGPS=1\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPS=1\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
break;
case SIM_SEARCH_GPS_LOC:
if(strstr(ttyData,"OK"))
if(strstr(gsmPara,"OK"))
{
enMmcLocation = SIM_SEARCH_GPS_END;
sprintf(ttyData, "AT+QGPSLOC=2\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSLOC=2\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
calltime = 0;
}
else if(strstr(ttyData, "ERROR"))
else if(strstr(gsmPara, "ERROR"))
{
if(sendTryTime == 0)
{
calltime = 0;
sendTryTime++;
enMmcLocation = SIM_SEARCH_GPS_ON;
sprintf(ttyData, "AT+QGPSEND\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSEND\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SLOGE("[ERROR] GPS ON ERR, Try:%d\n", sendTryTime);
}else
{
calltime = 0;
sendTryTime = 0;
enMmcLocation = SIM_SEARCH_GPS_EXIT;
sprintf(ttyData, "AT+QGPSEND\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSEND\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SLOGE("[ERROR] GPS ON ERR\n");
}
}
break;
case SIM_SEARCH_GPS_END:
if(strstr(ttyData, "ERROR") != 0)
if(strstr(gsmPara, "ERROR") != 0)
{
//3minite timeout.
if(calltime > GPS_SEARCH_TIMEOUT_TIMES)
@ -820,28 +836,28 @@ SINT32 eg91_gps_preconfig(SF_FN_PARAM_S *pfnParam)
calltime = 0;
enMmcLocation = SIM_SEARCH_GPS_EXIT;
pStaticParam->DialyReportFailCnt++;
sprintf(ttyData, "AT+QGPSEND\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSEND\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SLOGE("[ERROR] GPS timeout\n");
sts = 0;
ret = SF_GPS_ERROR_AT_TIMEOUT;
}
else
{
sprintf(ttyData, "AT+QGPSLOC=2\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSLOC=2\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
calltime++;
sf_sleep_ms(100);
}
else if(strstr(ttyData, "+QGPSLOC:") != 0)
else if(strstr(gsmPara, "+QGPSLOC:") != 0)
{
printf("--------Loc:----------------------\n");
SF_CHAR *str=NULL;
strtok(ttyData,",");
strtok(gsmPara,",");
str = strtok(NULL,",");
if(NULL!=str)
{
@ -860,8 +876,8 @@ SINT32 eg91_gps_preconfig(SF_FN_PARAM_S *pfnParam)
enMmcLocation = SIM_SEARCH_GPS_EXIT;
calltime = 0;
sprintf(ttyData, "AT+QGPSEND\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSEND\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
printf("SIYUAN-Bob:latitude=%s,longitude=%s\n", pStaticParam->Latitude, pStaticParam->Longitude);
}
@ -877,11 +893,11 @@ SINT32 eg91_gps_preconfig(SF_FN_PARAM_S *pfnParam)
default:
break;
}
SLOGD("sendBuf******\n %s \n*********************\n\n", ttyData);
memset(ttyData,'\0',SF_TTYUSB_RECV_MAX);
sf_hal_ttyusb2_read(ttyData, 200);
SLOGD("sendBuf******\n %s \n*********************\n\n", gsmPara);
memset(gsmPara,'\0',SF_TTYUSB_RECV_MAX);
sf_hal_ttyusb2_read(gsmPara, 200);
SLOGD("callTIme:%d, location:%d\n", calltime, enMmcLocation);
SLOGD("revBuf******\n %s \n*********************\n\n", ttyData);
SLOGD("revBuf******\n %s \n*********************\n\n", gsmPara);
timeout_count++;
if(timeout_count > 200)
{
@ -900,7 +916,7 @@ SINT32 eg91_gps_search_result(SF_FN_PARAM_S *pfnParam)
SF_COMM_CHECK_POINTER(pfnParam->pfn_AT_instruction_exit,SF_FAILURE);
UINT16 timeout_count = 0;
SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 };
SF_CHAR gsmPara[SF_TTYUSB_RECV_MAX] = { 0 };
UINT16 sts =1;
UINT16 calltime = 0;
//UINT8 pdpdeact = 0;
@ -922,16 +938,16 @@ SINT32 eg91_gps_search_result(SF_FN_PARAM_S *pfnParam)
{
case SIM_SEARCH_GPS_ON:
enMmcLocation = SIM_SEARCH_GPS_LOC;
sprintf(ttyData, "AT+QGPS=1\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPS=1\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
break;
case SIM_SEARCH_GPS_LOC:
#ifndef SF_GPS_TEST
enMmcLocation = SIM_SEARCH_GPS_END;
#endif
sprintf(ttyData, "AT+QGPSLOC?\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSLOC?\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
#ifdef SF_GPS_TEST
calltime++;
@ -940,7 +956,7 @@ SINT32 eg91_gps_search_result(SF_FN_PARAM_S *pfnParam)
#endif
break;
case SIM_SEARCH_GPS_END:
if(strstr(ttyData, "ERROR") != 0)
if(strstr(gsmPara, "ERROR") != 0)
{
if(calltime > GPS_SEARCH_TIMEOUT_TIMES)
@ -949,26 +965,26 @@ SINT32 eg91_gps_search_result(SF_FN_PARAM_S *pfnParam)
enMmcLocation = SIM_SEARCH_GPS_EXIT;
pStaticParam->DialyReportFailCnt++;
sprintf(ttyData, "AT+QGPSEND\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSEND\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SLOGE("[ERROR] GPS timeout\n");
ret = SF_GPS_ERROR_AT_TIMEOUT;
}
else
{
sprintf(ttyData, "AT+QGPSLOC?\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSLOC?\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
}
calltime++;
sf_sleep_ms(100);
}
else if(strstr(ttyData, "+QGPSLOC:") != 0)
else if(strstr(gsmPara, "+QGPSLOC:") != 0)
{
SF_CHAR *str=NULL;
strtok(ttyData,",");
strtok(gsmPara,",");
str = strtok(NULL,",");
if(NULL!=str)
{
@ -985,8 +1001,8 @@ SINT32 eg91_gps_search_result(SF_FN_PARAM_S *pfnParam)
enMmcLocation = SIM_SEARCH_GPS_EXIT;
calltime = 0;
sprintf(ttyData, "AT+QGPSEND\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
sprintf(gsmPara, "AT+QGPSEND\r");
sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
printf("SIYUAN-Bob:latitude=%s,longitude=%s\n", pStaticParam->Latitude, pStaticParam->Longitude);
}
@ -997,11 +1013,11 @@ SINT32 eg91_gps_search_result(SF_FN_PARAM_S *pfnParam)
default:
break;
}
SLOGD("sendBuf******\n %s \n*********************\n\n", ttyData);
memset(ttyData,'\0',SF_TTYUSB_RECV_MAX);
sf_hal_ttyusb2_read(ttyData, 200);
SLOGD("sendBuf******\n %s \n*********************\n\n", gsmPara);
memset(gsmPara,'\0',SF_TTYUSB_RECV_MAX);
sf_hal_ttyusb2_read(gsmPara, 200);
SLOGD("callTIme:%d, location:%d\n", calltime, enMmcLocation);
SLOGD("revBuf******\n %s \n*********************\n\n", ttyData);
SLOGD("revBuf******\n %s \n*********************\n\n", gsmPara);
#ifndef SF_GPS_TEST
timeout_count++;
#endif
@ -1030,7 +1046,7 @@ UINT32 sf_gps_close(void)
SIM_SEARCH_GPS_e eSmsLocation = SIM_SEARCH_GPS_END;
int ttyRet = 0;
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 1000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 1000, .len = 255, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);

View File

@ -3296,7 +3296,7 @@ SINT32 sf_net_regist_manual(void)
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_TTY_DATA_TYPE_S ttyData = { .waitMs = 500, .len = 255, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
SF_LOG(" s\n");
@ -4998,7 +4998,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 = 1000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 1000, .len = 255, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
sf_gsm_para_buff_clear();
@ -5135,7 +5135,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 = 1000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 1000, .len = 255, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
// SF_DEBUG("Sim4gApn=%s", pPara->Sim4gApn);
@ -5292,15 +5292,16 @@ SINT32 sf_get_ntp(SINT32 value, SF_PARA_TIME_S *current_time)
case SMS_SIM_INIT_QIDEACT:
SF_GEN_NTP_QIDEACT:
// SF_DEBUG("modeule ver:%s", pPara->ModuleVer);
if(SF_STRNCMP(pPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q, 6) == 0)
{
//eg915q not eact pdp
sprintf((char *)gsmPara, "AT\r");
}
else
{
sprintf((char *)gsmPara, "AT+QIDEACT=%d\r", pdpIndex);
}
// if(SF_STRNCMP(pPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q, 6) == 0)
// {
// //eg915q not eact pdp
// sprintf((char *)gsmPara, "AT\r");
// }
// else
// {
// sprintf((char *)gsmPara, "AT+QIDEACT=%d\r", pdpIndex);
// }
sprintf((char *)gsmPara, "AT\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
eSmsLocation = SMS_SIM_INIT_EXIT;
@ -5473,7 +5474,7 @@ UINT32 sf_sim_qsclk(UINT8 mode) //mode = 2, gprsmode = 1
SF_SIM_E eSmsLocation = SMS_SIM_INIT_DTRUP;
int ttyRet = 0;
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 1000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 1000, .len = 255, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);

View File

@ -54,6 +54,7 @@ extern "C" {
#include "curl/curl.h"
#include "sf_4G_sms_lpa_cmd.h"
#include "sf_commu_mcu.h"
#include "sf_otamng.h"
/**************************************************************************
* C O N S T A N T S *
@ -66,36 +67,7 @@ extern "C" {
/**************************************************************************
* D A T A T Y P E S *
**************************************************************************/
#define MODULE_VER "EG"
#define MODULE_VER_FLG1 "FAR"
#define MODULE_VER_FLG2 "GAR"
#define EG91E_MODULE_VER "EG91E"
#define EG91V_MODULE_VER "EG91V"
#define EG91A_MODULE_VER "EG91NA"
#define EC25E_MODULE_VER "EC25E"
#define EC25V_MODULE_VER "EC25V"
#define EC25A_MODULE_VER "EC25A"
#define CAM_OTA_DIR "CAM_OTA_S520_AX"
#define QFIREHOSE_OTA_DIR "QFIREHOSE_OTA_S520_AX"
#define DFOTA_OTA_DIR "DFOTA_S520_AX"
#define OTA_FTP_CFGFILENAME_EG91E "DFOTA_EG91E.CFG"
#define OTA_FTP_UPDATAFILENAME_EG91E "module_EG91E.zip"
#define OTA_FTP_CFGFILENAME_EG91V "DFOTA_EG91V.CFG"
#define OTA_FTP_UPDATAFILENAME_EG91V "module_EG91V.zip"
#define OTA_FTP_CFGFILENAME_EG91A "DFOTA_EG91NA.CFG"
#define OTA_FTP_UPDATAFILENAME_EG91A "module_EG91NA.zip"
#define OTA_FTP_CFGFILENAME_EC25E "DFOTA_E.CFG"
#define OTA_FTP_UPDATAFILENAME_EC25E "module_E.zip"
#define OTA_FTP_CFGFILENAME_EC25V "DFOTA_V.CFG"
#define OTA_FTP_UPDATAFILENAME_EC25V "module_V.zip"
#define OTA_FTP_CFGFILENAME_EC25A "DFOTA_A.CFG"
#define OTA_FTP_UPDATAFILENAME_EC25A "module_A.zip"
/**************************************************************************
* G L O B A L D A T A *
**************************************************************************/
@ -1360,7 +1332,10 @@ SINT32 sf_send_file_to_ftp(UINT8 mode)
SF_PDT_PARAM_STATISTICS_S *pSifarPara = sf_statistics_param_get();
SINT64 sendEndTime = 0;
MLOGD("start\n");
if(sf_get_mode_flag())
{
time(&sendStartTime);
}
ssl = ((2 == puiPara->FtpSwitch) ? 1 : 0);
gprsMode = 0;//puiPara->GprsMode;
// printf("[%s:%d] ssl:%d,GprsMode:%d\n", __FUNCTION__, __LINE__, ssl, gprsMode);
@ -1435,11 +1410,15 @@ SINT32 sf_send_file_to_ftp(UINT8 mode)
//sendEndTime = clock();
time(&sendEndTime);
double elapsed_time = sf_sys_s_time_get(sendEndTime);
pSifarPara->TotalTransmissionTime += elapsed_time;
pSifarPara->ThumbnailTransmissionTime += elapsed_time;
if(!sf_get_mode_flag())
{
pSifarPara->TotalTransmissionTime += elapsed_time;
pSifarPara->ThumbnailTransmissionTime += elapsed_time;
pSifarPara->picSendTimeCount +=elapsed_time;
pSifarPara->sendThumbnailTimeCount += elapsed_time;
}
pSifarPara->picSendTimeCount +=elapsed_time;
pSifarPara->sendThumbnailTimeCount += elapsed_time;
MLOGD("SendTime:%d s picSendTimeCount:%d s sendThumbnailTimeCount:%d s\n", elapsed_time, pSifarPara->picSendTimeCount,pSifarPara->sendThumbnailTimeCount);
time(&sendStartTime);
}

View File

@ -43,7 +43,7 @@
#include "sf_battery.h"
#include "sf_system.h"
#include "sf_4G_sms_lpa_cmd.h"
#include "sf_otamng.h"
/**************************************************************************
* C O N S T A N T S *
**************************************************************************/
@ -1473,7 +1473,7 @@ SINT32 sf_sms_read_message(void)
int msmtmp[255] = { 0 };
int msmmb = 0;
//static int testflag = 0;
SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 2000, .len = 3, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 2000, .len = 255, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
UIMenuStoreInfo *pPara = sf_app_ui_para_get();
SF_PDT_PARAM_STATISTICS_S *pSifarPara = sf_statistics_param_get();
@ -2505,7 +2505,7 @@ SINT32 sf_power_off_module_ota(void)
else
{
ret = sf_4g_module_ota_ftp();//need restart module
// ret = sf_module_ota_ftp();
//if(ret == OTA_UPDATED_ERROR || ret == OTA_SUCCESS || ret == OTA_VERTION_ERROR || ret == OTA_TIME_OUT)
{
if(CameraCmd.setPara)

View File

@ -886,6 +886,15 @@ static SINT32 sf_app_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf)
sf_do_4g_upgrade_thread();
}
break;
case SF_PARA_CMD_MOUP_OTA:
ModuleUpdating = pMessageBuf->arg2;
MLOGD("ModuleUpdating = %d\n",ModuleUpdating);
if(ModuleUpdating){
sf_do_4g_upgrade_ota_thread();
}
break;
case SF_PARA_CMD_IR_LED_STATUS:
IsNightLedOn = pMessageBuf->arg2;
break;

View File

@ -1384,6 +1384,79 @@ void sf_do_4g_upgrade_thread(void)
}
}
void* sf_sys_do_4g_upgrade_ota(void *arg)
{
//int s32Ret = 0;
// UINT8 updateFileName[60] = {0};
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
SLOGW("Begin to do 4G OTA Upgrade!\n");
if(sf_is_enough_power_to_update() == FALSE)
{
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
}
else{
//if(sf_is_4g_module_usb_update_file_exist(updateFileName))
{
if(strncmp(puiPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q, 6) == 0){
sf_cmd_4g_usb_boot();
}
// sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1);
// sf_set_module_update(1);
//sf_set_send_statu(TRUE);
sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE);
//BKG_PostEvent(NVTEVT_BKW_FW_UPDATE);
if(0 != sf_module_ota_ftp()){
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
}
else {
//SysResetFlag();
sf_sys_status_led_set(SF_LED_SYS_STATE_NORMAL);
}
// sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0);
// sf_set_send_statu(FALSE);
// sf_set_module_update(0);
sf_sleep_ms(1000);
//Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0);
if(PWR_ON_SETUP == sf_poweron_type_get()){
sf_set_power_off_flag(1);
SF_MESSAGE_BUF_S stMessageBuf = {0};
stMessageBuf.cmdId = CMD_POWEROFF;
stMessageBuf.arg1 = APP_POWER_OFF_NORMAL;
sf_com_message_send_to_cardv(&stMessageBuf);
}
}
}
ModeuleUpgradeTskParam.IsRun = 0;
SLOGW("Begin to do 4G OTA Upgrade e\n");
return NULL;
}
void sf_do_4g_upgrade_ota_thread(void)
{
printf("ModeuleUpgradeTskParam.IsRun:%d\n", ModeuleUpgradeTskParam.IsRun);
if(ModeuleUpgradeTskParam.IsRun != 0)
{
// ModeuleUpgradeTskParam.IsRun = 0;
// pthread_join(ModeuleUpgradeTskParam.TskId, NULL);
SLOGW("4G OTA Upgrade thread run\n");
return;
}
if(!ModeuleUpgradeTskParam.IsRun)
{
pthread_create(&ModeuleUpgradeTskParam.TskId, NULL, sf_sys_do_4g_upgrade_ota, NULL);
ModeuleUpgradeTskParam.IsRun = 1;
}
}
/*************************************************
Function: sf_wifi_start_to_cardv
Description: wifi on

View File

@ -9,6 +9,7 @@
#include <sys/vfs.h>
#include<pthread.h>
#include "sf_param_common.h"
#include "sf_type.h"
#include "sf_log.h"
#include "sf_md5.h"
@ -21,8 +22,12 @@
#include "sf_message_queue.h"
#include "sf_http_server.h"
//#include "sf_param_common.h"
#include "sf_battery.h"
#include "sf_ftp.h"
#include "sf_commu_mcu_reg.h"
#include "sf_common.h"
#include "sf_hal_ttyusb.h"
#include "sf_eg91_sim.h"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
@ -30,6 +35,8 @@ extern "C" {
#endif
static SF_OTA_ATTRS stOtaAttrs = {0};
extern char logStr[128];
extern char gsmPara[GPRS_INFO_LINE_MAX];
SINT32 packet_log_printf(UINT8 *pbuf,UINT16 lenth)
{
UINT16 i= 0;
@ -631,7 +638,7 @@ SINT32 sf_upgrade_ota_env_set(void)
SINT32 sf_upgrade_ota_reset(void)
{
SF_CHAR data_buff[BUFFER_SIZE] = {0};
if(stOtaAttrs.filename == NULL) {
if(stOtaAttrs.filename[0] == '\0') {
MLOGE("souce filename is null\n");
return SF_FAILURE;
}
@ -651,6 +658,886 @@ SINT32 sf_upgrade_ota_deinit(void)
return SF_SUCCESS;
}
/*************************************************
Function: sf_module_ota_ftp
Description: 4g module ftp update
Input: N/A
Output: N/A
Return: N/A
Others: N/A
*************************************************/
SINT32 sf_module_ota_ftp(void)
{
UINT32 location = OTA_FTP_FRIST;
SINT32 sts = OTA_NOUPDATE; /*0:updating 1:no update 2:update fail 3:update success*/
UINT32 errorCode = 0;
UINT32 calltime=0;
UINT32 time = 0;
UINT8 cfgfilehandle[5] = {0};
UINT8 Version[48] = {0};
UINT8 srcVersion[48] = {0};
UINT8 desVersion[48] = {0};
SINT64 cTime = 0;
SINT64 eTime = 0;
double elapsed_time = 0;
UINT8 autoUpdata=0;
UINT8 *pTemp = NULL;
UINT8 *pTemp1 = NULL;
UINT8 modulVerStr[50]= {0};
UINT8 ftpIp[40]= {0};
UINT8 ftpPort[6]= {0};
UINT8 ftpUsername[40]= {0};
UINT8 ftpPassword[20]= {0};
//UINT8 convertUsername[100]= {0};
//UINT8 convertPassword[100]= {0};
UINT8 *cfgfilename = NULL;
UINT8 *updatafilename = NULL;
UINT8 *modeVer = NULL;
UINT8 baudrateCheckTime = 0;
UINT8 baudrateChangeFlg = 0;
UINT8 pdpInedx = 0;
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
SINT32 ttyRet = 0;
SF_TTY_DATA_TYPE_S ttyData = { .waitMs = 2000, .len = 255, .lenMax = (GPRS_INFO_LINE_MAX-1), .cmp = "OK", .cmperr = "ERROR", .data = gsmPara};
SLOGD(" s\n");
if(sf_is_enough_power_to_update() == FALSE)
{
return OTA_BATTERY_LOW;
}
if(strncmp(puiPara->ModuleVer, GPRS_MODULE_TYPE_EG915Q, 6) == 0)
{
//eg915q
}
else
{
system("killall quectel-CM-EG91");
sleep(2);
system("ifconfig eth0 down");
}
if(SF_STRSTR(puiPara->ModuleVer, EC25V_MODULE_VER))
{
cfgfilename = (UINT8 *)OTA_FTP_CFGFILENAME_EC25V;
updatafilename = (UINT8 *)OTA_FTP_UPDATAFILENAME_EC25V;
modeVer = (UINT8 *)EC25V_MODULE_VER;
}
else if(SF_STRSTR(puiPara->ModuleVer, EC25A_MODULE_VER))
{
cfgfilename = (UINT8 *)OTA_FTP_CFGFILENAME_EC25A;
updatafilename = (UINT8 *)OTA_FTP_UPDATAFILENAME_EC25A;
modeVer = (UINT8 *)EC25A_MODULE_VER;
}
else if(SF_STRSTR(puiPara->ModuleVer, EC25E_MODULE_VER))
{
cfgfilename = (UINT8 *)OTA_FTP_CFGFILENAME_EC25E;
updatafilename = (UINT8 *)OTA_FTP_UPDATAFILENAME_EC25E;
modeVer = (UINT8 *)EC25E_MODULE_VER;
}
else if(SF_STRSTR(puiPara->ModuleVer, EG91V_MODULE_VER))
{
cfgfilename = (UINT8 *)OTA_FTP_CFGFILENAME_EG91V;
updatafilename = (UINT8 *)OTA_FTP_UPDATAFILENAME_EG91V;
modeVer = (UINT8 *)EG91V_MODULE_VER;
}
else if(SF_STRSTR(puiPara->ModuleVer, EG91A_MODULE_VER))
{
cfgfilename = (UINT8 *)OTA_FTP_CFGFILENAME_EG91A;
updatafilename = (UINT8 *)OTA_FTP_UPDATAFILENAME_EG91A;
modeVer = (UINT8 *)EG91A_MODULE_VER;
}
else if(SF_STRSTR(puiPara->ModuleVer, EG91E_MODULE_VER))
{
cfgfilename = (UINT8 *)OTA_FTP_CFGFILENAME_EG91E;
updatafilename = (UINT8 *)OTA_FTP_UPDATAFILENAME_EG91E;
modeVer = (UINT8 *)EG91E_MODULE_VER;
}
else
{
printf("module ver not support update\n");
return sts;
}
printf("cfgfilename=%s\n", cfgfilename);
printf("updatafilename=%s\n", updatafilename);
SF_STRCPY(ftpIp, puiPara->OtaFtpIp);
SF_STRCPY(ftpPort, puiPara->OtaFtpPort);
SF_STRCPY(ftpUsername, puiPara->OtaFtpUserName);
SF_STRCPY(ftpPassword, puiPara->OtaFtpPassWord);
sf_set_module_update(1);
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1);
sts = OTA_UPDATING;
while(sts == OTA_UPDATING)
{
switch(location)
{
case OTA_FTP_FRIST:
SF_SPRINTF(gsmPara, "AT\r");
location = OTA_FTP_CURVER;
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
break;
case OTA_FTP_CURVER:
if(SF_STRSTR(gsmPara,"OK"))
{
SF_SPRINTF(gsmPara, "AT+QGMR\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QICSGP;
}
else
{
SF_SPRINTF(gsmPara, "AT\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
break;
case OTA_FTP_QICSGP:
if(SF_STRSTR(gsmPara,"OK"))
{
pTemp = SF_STRSTR(gsmPara, MODULE_VER);
if(pTemp != NULL)
{
pTemp1 = SF_STRTOK(pTemp, "\r");
printf("pTemp1=%s\n", pTemp1);
SF_STRCPY(Version, pTemp1);
printf("Version: %s\n", Version);
if(SF_STRSTR(puiPara->Sim4gApn, APN_4G_VERIZON))
{
pdpInedx = V_PDP_INDEX;
SF_SPRINTF(gsmPara,"AT+QICSGP=%d\r", V_PDP_INDEX);
location=OTA_FTP_QICSGP1;
}
else if(SF_STRSTR(puiPara->Sim4gApn, APN_4G_ATT))
{
pdpInedx = A_PDP_INDEX;
SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",A_PDP_INDEX, puiPara->Sim4gApn,puiPara->Sim4gUsr,puiPara->Sim4gPwd);
location=OTA_FTP_QIACT;
}
else
{
pdpInedx = E_PDP_INDEX;
SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",E_PDP_INDEX, puiPara->Sim4gApn,puiPara->Sim4gUsr,puiPara->Sim4gPwd);
location=OTA_FTP_QIACT;
}
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
else
{
printf("Module version unknow error\n");
errorCode = SF_OTA_ERROR_VERTION_INVAlID;
sts = OTA_NOUPDATE;
}
}
else
{
SF_SPRINTF(gsmPara, "AT+QGMR\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
break;
case OTA_FTP_QICSGP1:
if(SF_STRSTR(gsmPara, "OK"))
{
if(SF_STRSTR(gsmPara, "+QICSGP: 0") || SF_STRSTR(gsmPara, "+QICSGP: 1,\"\""))
{
SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",V_PDP_INDEX, puiPara->Sim4gApn,puiPara->Sim4gUsr,puiPara->Sim4gPwd);
}
else
{
SF_SPRINTF(gsmPara, "AT\r");
}
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QIACT;
}
break;
case OTA_FTP_QIACT:
if(SF_STRSTR(gsmPara, "OK"))
{
SF_SPRINTF(gsmPara, "AT+QIACT=%d\r", pdpInedx);
location = OTA_FTP_QFTPCFG1;
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
calltime=0;
}
break;
case OTA_FTP_QFTPCFG1:
if(SF_STRSTR(gsmPara, "OK"))
{
SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"contextid\",%d\r", pdpInedx);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QFTPCFG2;
calltime=0;
}
else if(SF_STRSTR(gsmPara,"ERROR"))
{
calltime++;
if(calltime < 6)
{
SF_SPRINTF(gsmPara, "AT+QIACT=%d\r", pdpInedx);
}
else
{
location = OTA_FTP_QIDEACT;
calltime=0;
errorCode = SF_OTA_ERROR_QIACT;
SLOGE("[ERROR]OTA_FTP QIACT over try 6 times");
SF_STRCPY(gsmPara, "AT\r");
}
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
break;
case OTA_FTP_QFTPCFG2:
//if(SF_STRSTR(gsmPara, "OK"))
{
SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"account\",\"%s\",\"%s\"\r", ftpUsername, ftpPassword);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QFTPCFG3;
}
break;
case OTA_FTP_QFTPCFG3:
//if(SF_STRSTR(gsmPara, "OK"))
{
SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"filetype\",1\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QFTPCFG4;
}
break;
case OTA_FTP_QFTPCFG4:
//if(SF_STRSTR(gsmPara, "OK"))
{
SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"transmode\",1\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location=OTA_FTP_QFTPCFG5;
}
break;
case OTA_FTP_QFTPCFG5:
//if(SF_STRSTR(gsmPara, "OK"))
{
SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"restenable\",0\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location=OTA_FTP_QFTPOPEN;
}
break;
case OTA_FTP_QFTPOPEN:
if(SF_STRSTR(gsmPara, "OK"))
{
SF_SPRINTF(gsmPara, "AT+QFTPOPEN=\"%s\",%s\r", ftpIp, ftpPort);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QFTPNLST;
}
break;
case OTA_FTP_QFTPNLST:
if(SF_STRSTR(gsmPara, "+QFTPOPEN:"))
{
if(SF_STRSTR(gsmPara, "+QFTPOPEN: 0"))
{
SF_SPRINTF(gsmPara, "AT+QFTPGET=\"%s/%s\",\"RAM:%s\"\r", DFOTA_OTA_DIR, cfgfilename, cfgfilename);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QFTPCLOSE;
}
else
{
location = OTA_FTP_QIDEACT;
errorCode = SF_OTA_ERROR_FTP_OPEN;
SLOGE("OTA_FTP Open Failed.");
SF_STRCPY(gsmPara, "AT\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
}
else if(SF_STRSTR(gsmPara, "+CME ERROR"))
{
location = OTA_FTP_QIDEACT;
errorCode = SF_OTA_ERROR_FTP_OPEN;
SLOGE("OTA_FTP QFTPOPEN CME ERROR.");
SF_STRCPY(gsmPara, "AT\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
break;
case OTA_FTP_QFTPGETCFG:
if(SF_STRSTR(gsmPara, "+QFTPNLST:"))
{
if((SF_STRSTR(gsmPara, cfgfilename)!= NULL) && (SF_STRSTR(gsmPara, updatafilename)!= NULL))
{
SF_SPRINTF(gsmPara, "AT+QFTPGET=\"%s/%s\",\"RAM:%s\"\r", DFOTA_OTA_DIR, cfgfilename, cfgfilename);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QFTPCLOSE;
}
else
{
location = OTA_FTP_QIDEACT;
errorCode = SF_OTA_ERROR_FTP_NLST;
SLOGE("OTA_FTP NO NEED UPDATA FILE.");
SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
}
else if(SF_STRSTR(gsmPara, "+CME ERROR"))
{
location = OTA_FTP_QIDEACT;
errorCode = SF_OTA_ERROR_FTP_NLST;
SLOGE("OTA_FTP QFTPNLST CME ERROR.");
SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
break;
case OTA_FTP_QFTPCLOSE:
if(SF_STRSTR(gsmPara, "+QFTPGET:"))
{
if(SF_STRSTR(gsmPara, "+QFTPGET: 0"))
{
SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QIDEACT;
sf_sleep_ms(200);
}
else
{
location = OTA_FTP_QIDEACT;
errorCode = SF_OTA_ERROR_FTP_GET;
SLOGE("OTA_FTP GET CFG FILE FAIL.");
SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
sf_sleep_ms(200);
}
}
else if(SF_STRSTR(gsmPara, "+CME ERROR"))
{
location= OTA_FTP_QIDEACT;
errorCode = SF_OTA_ERROR_FTP_GET;
SLOGE("OTA_FTP QFTPGET CME ERROR.");
SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
sf_sleep_ms(200);
}
break;
case OTA_FTP_QIDEACT:
//if(SF_STRSTR(gsmPara, "OK"))
{
calltime = 0;
SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpInedx);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
if(errorCode == 0)
location = OTA_FTP_OPENCFG;
else
location = OTA_FTP_END;
}
break;
case OTA_FTP_OPENCFG:
if(SF_STRSTR(gsmPara, "OK"))
{
SF_SPRINTF(gsmPara, "AT+QFOPEN=\"RAM:%s\",2\r", cfgfilename);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_SEEKCFG;
}
else if(SF_STRSTR(gsmPara,"ERROR"))
{
calltime++;
if(calltime < 6)
{
SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpInedx);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
else
{
location = OTA_FTP_END;
calltime=0;
errorCode = SF_OTA_ERROR_FTP_QIDEACT;
SLOGE("[ERROR]OTA_FTP QIDEACT over try 6 times");
SF_STRCPY(gsmPara, "AT\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
}
break;
case OTA_FTP_SEEKCFG:
if(SF_STRSTR(gsmPara, "+QFOPEN:"))
{
pTemp = SF_STRSTR(gsmPara, "+QFOPEN: ");
SF_STRNCPY(cfgfilehandle, pTemp+9, 4);
printf("cfgfilehandle=%s\n",cfgfilehandle);
SF_SPRINTF(gsmPara, "AT+QFSEEK=%s,10,0\r", cfgfilehandle);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_READCFG;
}
else if(SF_STRSTR(gsmPara, "+CME ERROR"))
{
SLOGE("OTA_FTP QFOPEN CME ERROR.");
location= OTA_FTP_END;
errorCode = SF_OTA_ERROR_FTP_OPEN;
}
break;
case OTA_FTP_READCFG:
if(SF_STRSTR(gsmPara, "OK"))
{
SF_SPRINTF(gsmPara, "AT+QFREAD=%s,117\r", cfgfilehandle);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_CLOSECFG;
sf_sleep_ms(500);
}
else if(SF_STRSTR(gsmPara, "+CME ERROR"))
{
location= OTA_FTP_END;
errorCode = SF_OTA_ERROR_FTP_QFSEEK;
SLOGE("OTA_FTP QFSEEK CME ERROR.");
SF_SPRINTF(gsmPara, "AT+QFCLOSE=%s\r", cfgfilehandle);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
break;
case OTA_FTP_CLOSECFG:
if(SF_STRSTR(gsmPara, "CONNECT 117") !=NULL)
{
pTemp = SF_STRSTR(gsmPara, "CONNECT 117");
if(pTemp[13] == 1)
autoUpdata = 1;
// printf("pTemp=%s\n",pTemp+30);
pTemp+=32;
// pTemp = SF_STRSTR(pTemp, modeVer);
int mm = 0;
while((pTemp != NULL) && (mm < 60))
{
printf("%s",pTemp++);
if(SF_STRSTR(pTemp, modeVer))
{
printf("tmp:%s",pTemp);
break;
}
mm++;
}
printf("\n");
if((pTemp != NULL))
{
snprintf((char *)srcVersion, sizeof(srcVersion), "%s", (char *)pTemp);
snprintf((char *)desVersion, sizeof(desVersion), "%s", (char *)pTemp+48);
}
// SF_STRCPY(srcVersion, pTemp+35);
// SF_STRCPY(desVersion, pTemp+35+48);
printf("autoUpdata=%d\n",autoUpdata);
printf("srcVersion=%s\n",srcVersion);
printf("dstVersion=%s\n",desVersion);
SF_SPRINTF(gsmPara, "AT+QFCLOSE=%s\r", cfgfilehandle);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QFOTADL;
}
else if(SF_STRSTR(gsmPara, "CONNECT"))
{
printf("DFOTA.CFG READ error\n");
printf("gsmPara=%s\n",gsmPara);
SLOGE("OTA_FTP CFG FILE FORMAT ERROR.");
SF_SPRINTF(gsmPara, "AT+QFCLOSE=%s\r", cfgfilehandle);
location= OTA_FTP_END;
errorCode = SF_OTA_ERROR_FTP_CFGFORMAT;
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
else if(SF_STRSTR(gsmPara, "+CME ERROR"))
{
SLOGE("OTA_FTP QFREAD CME ERROR.");
SF_SPRINTF(gsmPara, "AT+QFCLOSE=%s\r", cfgfilehandle);
location= OTA_FTP_END;
errorCode = SF_OTA_ERROR_FTP_QFREAD;
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
break;
case OTA_FTP_QFOTADL:
//if((ConfigureModeFlag || module_updata_mms_cmd == 1) || ((StartMode == 8) && (autoUpdata == 1)))
{
if(SF_STRCMP(srcVersion, Version)==0)
{
/*if(ConfigureModeFlag)
{
appOsdLib_OsdLayerShapeClear(APP_OSD_SHAPE_RECT, 0, 104, 320, 32, 0, 0);
appOsdLib_TextIDDraw(320/2, 240/2, SP5K_GFX_ALIGN_CENTER, ID_STR_UPDATING___);
}*/
//app_FTP_Info_Convert(ftpUsername, convertUsername);
//app_FTP_Info_Convert(ftpPassword, convertPassword);
//SF_SPRINTF(gsmPara, "AT+QFOTADL=\"FTP://%s:%s@%s:%s/DFOTA/%s\"\r", convertUsername, convertPassword, ftpIp, ftpPort,updatafilename);
SF_SPRINTF(gsmPara, "AT+QFOTADL=\"FTP://%s:%s@%s:%s/%s/%s\"\r", ftpUsername, ftpPassword, ftpIp, ftpPort, DFOTA_OTA_DIR, updatafilename);
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_DOWNLOAD;
}
else
{
sts = OTA_NOUPDATE;
errorCode = SF_OTA_ERROR_VERTION;
printf("src version not equal\n");
}
}
/*else
{
printf("NO NEED AUTO UPDATA\n");
sts = OTA_NOUPDATE;
}*/
break;
case OTA_FTP_DOWNLOAD:
if(SF_STRSTR(gsmPara,"OK"))
{
calltime = 0;
time = 0;
sf_mcu_wdg_set(5);
location = OTA_FTP_UPDATING;
sf_time(&cTime);
}
else if(SF_STRSTR(gsmPara,"ERROR"))
{
errorCode = SF_OTA_ERROR_FTP_QFOTADL;
sts = OTA_DOWNLOAD_ERROR;
}
break;
case OTA_FTP_UPDATING:
if(SF_STRSTR(gsmPara,"\"FTPEND\",0"))
{
printf("gsmPara:%s\n", gsmPara);
time = 0;
calltime = 0;
location = OTA_FTP_UPDATING1;
sf_mcu_wdg_set(5);
}
else if(SF_STRSTR(gsmPara,"\"FTPEND\""))
{
printf("gsmPara:%s\n", gsmPara);
time = 0;
printf("DOWMLOAD ERROR\n");
SLOGE("OTA Download error");
SLOGE(gsmPara);
errorCode = SF_OTA_ERROR_FTP_DOWNLOAD;
sts = OTA_DOWNLOAD_ERROR;
}
else
{
time = 0;
sf_time(&eTime);
elapsed_time = difftime(eTime, cTime);
// s
printf("time: %.2f s\n", elapsed_time);
if(elapsed_time > 120)
{
SLOGE("OTA Download timeout");
errorCode = SF_OTA_ERROR_FTP_DOWNLOAD;
sts = OTA_TIME_OUT;
}
}
break;
case OTA_FTP_UPDATING1:
if(SF_STRSTR(gsmPara,"+QIND: \"FOTA\",\"START\"") || SF_STRSTR(gsmPara,"+QIND: \"FOTA\",\"UPDATING\""))
{
location = OTA_FTP_UPDATING2;
}
else
{
if(baudrateCheckTime > 60)
{
baudrateChangeFlg = 1;
SLOGW("baudrateCheckTime:%d\n",baudrateCheckTime);
location = OTA_FTP_UPDATING2;
}
else
{
baudrateCheckTime++;
sf_sleep_ms(800);
}
}
break;
case OTA_FTP_UPDATING2:
if(SF_STRSTR(gsmPara,"\"END\",0"))
{
printf("gsmPara:%s\n", gsmPara);
time = 0;
if(baudrateChangeFlg == 1)
{
SLOGW("baudrateChangeFlg:%d\n",baudrateChangeFlg);
}
location = OTA_FTP_UPDATAEND;
}
else if(SF_STRSTR(gsmPara,"\"END\""))
{
printf("gsmPara:%s\n", gsmPara);
time = 0;
printf("UPDATED ERROR\n");
SLOGE("OTA update error");
SLOGE(gsmPara);
errorCode = SF_OTA_ERROR_FTP_UPDATE;
sts = OTA_UPDATED_ERROR;
if(baudrateChangeFlg == 1)
{
SLOGW("baudrateChangeFlg:%d\n",baudrateChangeFlg);
}
}
else if(SF_STRSTR(gsmPara,"UPDATING"))
{
printf("gsmPara:%s\n", gsmPara);
time = 0;
calltime = 0;
sf_mcu_wdg_set(5);
sf_sleep_ms(800);
}
else
{
time = 0;
calltime++;
printf("calltime:%d\n", calltime);
if(calltime >= 200)
{
SLOGE("OTA update timeout");
errorCode = SF_OTA_ERROR_FTP_UPDATE;
sts = OTA_UPDATED_ERROR;
if(baudrateChangeFlg == 1)
{
SLOGW("baudrateChangeFlg:%d\n",baudrateChangeFlg);
}
}
sf_sleep_ms(800);
}
break;
case OTA_FTP_UPDATAEND:
if(SF_STRSTR(gsmPara,"RDY"))
{
sf_sleep_ms(300);
printf("UPDATE END\n");
SF_SPRINTF(gsmPara, "AT+QGMR\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_CHECK;
}
else if(SF_STRSTR(gsmPara,"ERROR"))
{
errorCode = SF_OTA_ERROR_FTP_UPDATE;
sts = OTA_UPDATED_ERROR;
}
else
{
sf_sleep_ms(300);
}
break;
case OTA_FTP_CHECK:
if(SF_STRSTR(gsmPara, MODULE_VER))
{
pTemp=SF_STRSTR(gsmPara, MODULE_VER);
if(pTemp != NULL)
{
pTemp1 = SF_STRTOK(pTemp, "\r");
printf("pTemp1=%s\n", pTemp1);
SF_STRCPY(Version, pTemp1);
//printf("Version: %s\n", Version);
}
if(SF_STRCMP(Version, desVersion) == 0)
{
sts = OTA_SUCCESS;
}
else
{
sts = OTA_VERTION_ERROR;
}
}
else
{
SF_SPRINTF(gsmPara, "AT+QGMR\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
break;
case OTA_FTP_END:
SF_STRCPY(gsmPara, "AT\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
sts = OTA_FAIL;
break;
}
sf_gsm_para_buff_clear();
sf_hal_ttyusb2_read_buf(&ttyData);
if(gsmPara[0] != '\0')
{
MLOGD("location:%d\n%s\n", location, gsmPara);
}
time++;
if(time >= 300)
{
if((location > OTA_FTP_QIACT) && (location < OTA_FTP_OPENCFG))
{
location = OTA_FTP_QIDEACT;
errorCode = SF_OTA_ERROR_TIME_OUT;
time = 250;
calltime = 0;
SF_SPRINTF(gsmPara, "AT\r");
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
}
else
{
sts = OTA_TIME_OUT;
}
printf("update timeout!\n");
}
}
sf_set_module_update(0);
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0);
/* cal qgmr ver,then save*/
printf("Version = %s\n",Version);
pTemp = SF_STRSTR(Version, MODULE_VER);
if(pTemp != NULL)
{
UINT8 *pT1 = NULL;
UINT8 *pT2 = NULL;
UINT8 *pT3 = NULL;
pT1 = SF_STRSTR(pTemp, MODULE_VER_FLG1);
if(pT1 == NULL)
pT1 = SF_STRSTR(pTemp, MODULE_VER_FLG2);
pT2 = SF_STRSTR(pTemp,"_");
printf("pT1 = %s\n",pT1);
printf("pTemp = %s\n",pTemp);
printf("pT2 = %s\n",pT2);
if(pT1 != NULL)
{
UINT8 str1[5] = {0};
UINT8 str2[5] = {0};
UINT8 str3[5] = {0};
UINT8 str4[30] = {0};
memcpy(str1, pTemp+4,pT1-pTemp-4);
printf("str1 = %s\n",str1);
memcpy(str2, pT1+3,2);
printf("str2 = %s\n",str2);
memcpy(str3, pT1+6,2);
printf("str3 = %s\n",str3);
if(pT2 != NULL)
{
pT3 = pT2+1;
SF_STRCPY(modulVerStr, pT3);
pT3 = SF_STRTOK(modulVerStr, "\r");
}
if(pT3 != NULL)
{
SF_STRCPY(str4, pT3);
printf("str4 = %s\n",str4);
SF_SPRINTF(puiPara->ModuleSubver,"S%sY%sY%sY%sS",str1,str2,str3,str4);
}
else
{
SF_SPRINTF(puiPara->ModuleSubver,"S%sY%sY%sS",str1,str2,str3);
}
printf("puiPara->ModuleSubver = %s\n",puiPara->ModuleSubver);
}
}
printf("Module OTA Update sts:%d errorCode:%d\n", sts, errorCode);
if(errorCode)
{
SF_SPRINTF(logStr, "%x,", errorCode);
MLOGE(logStr);
}
printf("sf_module_ota_ftp e\n");
return sts;
}
#ifdef __cplusplus
#if __cplusplus
}

View File

@ -221,4 +221,6 @@ int sf_cardv_init_start(void);
void sf_cardv_set_battery_level(unsigned long Val);
int sf_get_ota_flag(void);
void sf_set_ota_flag(int falg);
void sf_set_module_update_ota(UINT8 flag);
BOOL sf_cmd_4g_ota_upgrade(unsigned char argc, char **argv);
#endif

View File

@ -407,6 +407,19 @@ void sf_set_module_update(UINT8 flag)
ModuleUpdating = flag;
}
void sf_set_module_update_ota(UINT8 flag)
{
SF_MESSAGE_BUF_S stMessageBuf = {0};
if(ModuleUpdating != flag)
{
stMessageBuf.arg2 = flag;
stMessageBuf.arg1 = SF_PARA_CMD_MOUP_OTA;
stMessageBuf.cmdId = CMD_PARA;
sf_com_message_send_to_app(&stMessageBuf);
}
ModuleUpdating = flag;
}
UINT8 sf_get_fw_update(void)
{
return FwUpdate;
@ -1417,6 +1430,14 @@ BOOL sf_cmd_ftp_ota(unsigned char argc, char **argv)
return TRUE;
}
BOOL sf_cmd_4g_ota_upgrade(unsigned char argc, char **argv)
{
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
sf_set_module_update_ota(1);
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
return TRUE;
}
BOOL sf_cmd_fw_upgrade(unsigned char argc, char **argv)
{
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);

View File

@ -1183,10 +1183,10 @@ static UINT32 ae_adc_tbl[57][3] = {
{693, 539, 1000},
{691, 806, 1000}, //sun chen@20240111 start
{689, 1082, 1000},
{687, 4038, 1000},
{684, 5755, 1000},//8333, 2150},
{681, 6187, 1000},//8333, 2550},
{679, 8333, 1000},//sun chen@20240111 end
{687, 2580, 1000},//4038
{684, 3929, 1000},//5755, 2150},
{681, 4733, 1000},//6187, 2550},
{679, 5016, 1000},//sun chen@20240111 end
{669, 8333, 1000},
{645, 8333, 1000},
{617, 8333, 1000},

View File

@ -945,7 +945,7 @@
#define HUNTING_MCU_UART ENABLE
#define HUNTING_IR_LED_940 ENABLE
#define SF_EXIF_MN_BUF_SIZE 256
#define SF_BASE_VERSION "7MR5RCwE203"
#define SF_BASE_VERSION "7MR5RCwE204"
#define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
#define DCF_FILE_NAME "SYGW" /* SYFW0001.JPG */
#define SF_EMMC_DCF_FILE_NAME "SYBX" /* SYBX0001.JPG */

View File

@ -342,6 +342,7 @@ static void MovieFast_ShutDown(void)
#endif
#if HUNTING_CAMERA_MCU
UIMenuStoreInfo *puiPara = sf_ui_para_get();
#if SF_TRIGGER_TIME_TEST != ENABLE
sf_fastboot_msg_en(ENABLE);
#endif
@ -392,7 +393,7 @@ static void MovieFast_ShutDown(void)
FileSys_CloseEx('A', FST_TIME_INFINITE);
FileSys_CloseEx('B', FST_TIME_INFINITE);
#if SF_IQ_TEST != ENABLE
if(sf_get_power_off_flag()){
if((sf_get_power_off_flag()) || (!puiPara->GprsSwitch)){
sf_mcu_reg_set(SF_MCU_POWEROFF,0);
}else{
fastboot_set_done(BOOT_FLOW_BOOT);
@ -2047,6 +2048,8 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg)
DBG_WRN(">>>>>>>>>>>>>>> movie thread <<<<<<<<<<\r\n");
// nvt_cmdsys_runcmd("ae set_speed 0 128 700 400 200 "); // dgain mode /dgain th/down speed/up speed1/up speed2
/*.............sun chen@20240111 end.................*/
nvt_cmdsys_runcmd("awb set_smooth 0 0");
nvt_cmdsys_runcmd("awb set_dfgain 0 466 491");
{
AET_EXTEND_PARAM ext_param = {0};
@ -2355,6 +2358,8 @@ DBG_WRN(">>>>>>>>>>>>>>> movie thread <<<<<<<<<<\r\n");
sf_ir_led_set(((2 == puiPara->NightMode) ? 2 : 1),puiPara->FlashLed, puiPara->NightMode, 1);
}
#endif
nvt_cmdsys_runcmd("awb set_smooth 0 1");
vos_util_delay_ms(100);
Set_AEMODE(0); //sun chen@20240130 P+V start video record
vos_util_delay_ms(200);

View File

@ -2333,6 +2333,7 @@ static void PhotoFast_ShutDown(void)
}
#endif
#if HUNTING_CAMERA_MCU == ENABLE
UIMenuStoreInfo *puiPara = sf_ui_para_get();
#if SF_TRIGGER_TIME_TEST != ENABLE
sf_fastboot_msg_en(ENABLE);
#endif
@ -2379,7 +2380,7 @@ static void PhotoFast_ShutDown(void)
FileSys_CloseEx('A', FST_TIME_INFINITE);
FileSys_CloseEx('B', FST_TIME_INFINITE);
#if SF_IQ_TEST != ENABLE
if(sf_get_power_off_flag()){
if((sf_get_power_off_flag()) || (!puiPara->GprsSwitch)){
sf_mcu_reg_set(SF_MCU_POWEROFF,0);
}else{
fastboot_set_done(BOOT_FLOW_BOOT);