1.修改4G业务;2.增加压缩高清图api;3.调整ttyusb重试机制;4.增加1/8、1/15曝光时间;

This commit is contained in:
payton 2023-06-15 11:06:03 +08:00
parent 3c80ba1755
commit 132a380e09
63 changed files with 4191 additions and 455 deletions

View File

@ -0,0 +1,24 @@
/*
Copyright Novatek Microelectronics Corp. 2005. All rights reserved.
@file UIMode.h
@ingroup mIPRJAPUIFlow
@brief UI Mode Functions
This file is the user interface ( for interchange flow control).
@note Nothing.
@date 2005/04/01
*/
#ifndef _UIMODETRANSCODE_H
#define _UIMODETRANSCODE_H
#include "SysMain.h"
extern SYS_MODE gModeTranscode;
extern int PRIMARY_MODE_TRANSCODE;
extern SYS_SUBMODE gSubModeTranscode;
extern int SYS_SUBMODE_TRANSCODE;
#endif

View File

@ -917,7 +917,7 @@
#define DZOOM_FUNC ENABLE #define DZOOM_FUNC ENABLE
#define HUNTING_MCU_I2C DISABLE #define HUNTING_MCU_I2C DISABLE
#define HUNTING_MCU_UART ENABLE #define HUNTING_MCU_UART ENABLE
#define HUNTING_IR_LED_940 ENABLE #define HUNTING_IR_LED_940 DISABLE
#define SF_BASE_VERSION "7MD4RCwD6T2" #define SF_BASE_VERSION "7MD4RCwD6T2"
#define HW_S530 1 #define HW_S530 1
#define DCF_DIR_NAME "MEDIA" /* 100MEDIA */ #define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
@ -927,12 +927,29 @@
#define SF_SD_ROOT "/mnt/sd/" #define SF_SD_ROOT "/mnt/sd/"
#define SF_SEND_LIST_DIR "/mnt/sd/THUMB/" #define SF_SEND_LIST_DIR "/mnt/sd/THUMB/"
#define SF_THUMB_SEND_LIST SF_SEND_LIST_DIR"send.list" #define SF_THUMB_SEND_LIST SF_SEND_LIST_DIR"send.list"
#define SF_THUMB_SEND_AUTO PHOTO_THUMB_PATH"auto.list" #define SF_THUMB_SEND_AUTO SF_SEND_LIST_DIR"auto.list"
#define SF_IQ_TEST DISABLE #define SF_IQ_TEST ENABLE
#define PHOTO_ISP_STAMP DISABLE #define PHOTO_ISP_STAMP DISABLE
#define SF_BASE_VERSION_FEA "R2.3" #define SF_BASE_VERSION_FEA "R2.3"
#define SF_GPS_SUPPORT 0
#define SF_SEND_LIST_ITEM_LENGTH 15
#define SF_4G_REGISTER_NETWORK_COUNT 230
#define SUBSCRIBE_MAX_NUM 10
#define SUBSCRIBE_SEND_MAX_NUM 50
#define SUBSCRIBE_VIDEO_MAX_NUM 10
#define SUBSCRIBE_VIDEO_SEND_MAX_NUM 50
#define SF_4G_USB_NET_DOWNLOAD 1
#define SF_TEST_GPRS 1
#define CUSTOM_TEST_FTPS 0
#define SF_TEST_OTA_FTP 0
#define CUSTOM_TEST_OTA_FTP 0
/******************************************************************************************* /*******************************************************************************************
* LVGL UI Style config * LVGL UI Style config

View File

@ -355,7 +355,7 @@ int NvtMain(void)
nvt_hdal_init(); nvt_hdal_init();
nvt_user_init(); nvt_user_init();
#if HUNTING_CAMERA_MCU == ENABLE #if HUNTING_CAMERA_MCU == ENABLE
if(!GxUSB_GetIsUSBPlug())//(!sf_gpio_get_status(GPIO_INT_USBPLUGIN)) if(!GxUSB_GetIsUSBPlug())//(!sf_gpio_get_status(GPIO_INT_USBPLUGIN))
{ {
#if HUNTING_CAMERA_4G == ENABLE #if HUNTING_CAMERA_4G == ENABLE

View File

@ -70,8 +70,8 @@ static _UIAppTranscode_Info g_transcode_info = {0};
static UINT32 _TranscodeExe_Get_Max_Cap_Buf_Size(void) static UINT32 _TranscodeExe_Get_Max_Cap_Buf_Size(void)
{ {
UINT32 max_cap_size_w = GetPhotoSizeWidth(PHOTO_MAX_CAP_SIZE); UINT32 max_cap_size_w = ALIGN_CEIL_64(GetPhotoSizeWidth(PHOTO_MAX_CAP_SIZE));
UINT32 max_cap_size_h = GetPhotoSizeHeight(PHOTO_MAX_CAP_SIZE); UINT32 max_cap_size_h = ALIGN_CEIL_64(GetPhotoSizeHeight(PHOTO_MAX_CAP_SIZE));
HD_VIDEO_PXLFMT pxl_fmt = HD_VIDEO_PXLFMT_YUV420; HD_VIDEO_PXLFMT pxl_fmt = HD_VIDEO_PXLFMT_YUV420;
return VDO_YUV_BUFSIZE(max_cap_size_w, max_cap_size_h, pxl_fmt); return VDO_YUV_BUFSIZE(max_cap_size_w, max_cap_size_h, pxl_fmt);
@ -79,8 +79,8 @@ static UINT32 _TranscodeExe_Get_Max_Cap_Buf_Size(void)
static UINT32 _TranscodeExe_Get_Target_Buf_Size(void) static UINT32 _TranscodeExe_Get_Target_Buf_Size(void)
{ {
UINT32 target_size_w = GetPhotoSizeWidth(TRANSCODE_TARGET_PHOTO_SIZE); UINT32 target_size_w = ALIGN_CEIL_64(GetPhotoSizeWidth(TRANSCODE_TARGET_PHOTO_SIZE));
UINT32 target_size_h = GetPhotoSizeHeight(TRANSCODE_TARGET_PHOTO_SIZE); UINT32 target_size_h = ALIGN_CEIL_64(GetPhotoSizeHeight(TRANSCODE_TARGET_PHOTO_SIZE));
HD_VIDEO_PXLFMT pxl_fmt = HD_VIDEO_PXLFMT_YUV420; HD_VIDEO_PXLFMT pxl_fmt = HD_VIDEO_PXLFMT_YUV420;
return VDO_YUV_BUFSIZE(target_size_w, target_size_h, pxl_fmt); return VDO_YUV_BUFSIZE(target_size_w, target_size_h, pxl_fmt);
@ -779,7 +779,7 @@ INT32 TranscodeExe_Open(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
ret = _TranscodeExe_Set_Encode_Cfg( ret = _TranscodeExe_Set_Encode_Cfg(
g_transcode_info.venc_path, g_transcode_info.venc_path,
target_size, target_size,
target_bitreate); target_bitreate*2);
if(ret != HD_OK){ if(ret != HD_OK){
goto exit; goto exit;
} }

View File

@ -116,5 +116,6 @@
#define APPUSER_SETUP_BASE 0x14080000 #define APPUSER_SETUP_BASE 0x14080000
#define APPUSER_TRANSCODE_BASE 0x14082000

View File

@ -227,4 +227,74 @@
#define DEFAULT_FTP_SWITCH SF_FTP_ON #define DEFAULT_FTP_SWITCH SF_FTP_ON
#define DEFAULT_MULTISHOT_INTEVEL SF_MULTISHOT_INTEVEL_1S #define DEFAULT_MULTISHOT_INTEVEL SF_MULTISHOT_INTEVEL_1S
#define SIFAR_FTP_IP "119.23.174.139"
#define SIFAR_FTP_PORT "21"
#define SIFAR_FTP_USERNAME "cameraftp"
#define SIFAR_FTP_PASSWORD "camera123456"
#define SIFAR_FTPS_IP "49.51.247.68"
#define SIFAR_FTPS_PORT "21"
#define SIFAR_FTPS_USERNAME "sifarftpsuser"
#define SIFAR_FTPS_PASSWORD "rsHkZJPg"
#define CUSTOM_FTP_IP "ZnRwLTE1YmVuYWpmZWIuaXNoYXJlaXQubmV0"
#define CUSTOM_FTP_PORT "21"
#define CUSTOM_FTP_USERNAME "c0s2OWNxblBJcXYxRkhuNHlXbTV3WjJMaG1KVTZPUHM="
#define CUSTOM_FTP_PASSWORD "cTZwQC1WTnc3MlJxWEJXIUZnVWpIaHRZbjdWSzJHTS10Wjl6"
#define CUSTOM_TEST_FTP_IP "ZnRwLTE1YmVuYWpmZWIuaXNoYXJlaXQubmV0"
#define CUSTOM_TEST_FTP_PORT "21"
#define CUSTOM_TEST_FTP_USERNAME "dGVzdG9ubHk="
#define CUSTOM_TEST_FTP_PASSWORD "QUQwOEQ0NTktOUJDRC00OTJBLUFBQjktMUZGNjNEQzgzMjI2"
#define SIFAR_OTA_FTP_IP "MTE5LjIzLjE3NC4xMzk="
#define SIFAR_OTA_FTP_PORT "21"
#define SIFAR_OTA_FTP_USERNAME "Y2FtZXJhZnRw"
#define SIFAR_OTA_FTP_PASSWORD "Y2FtZXJhMTIzNDU2"
#define CUSTOM_OTA_FTP_IP "ZnRwLWZvMTQ0YWUxYWMuaXNoYXJlaXQubmV0"
#define CUSTOM_OTA_FTP_PORT "21"
#define CUSTOM_OTA_FTP_USERNAME "d3A4WmpjUkwyTjJU"
#define CUSTOM_OTA_FTP_PASSWORD "MWVoZipyXlFeJV5rVFleaTlpWmV0SWR6VA=="
#define CUSTOM_TEST_OTA_FTP_IP "ZnRwLWZvMTQ0YWUxYWMuaXNoYXJlaXQubmV0"
#define CUSTOM_TEST_OTA_FTP_PORT "21"
#define CUSTOM_TEST_OTA_FTP_USERNAME "dGVzdG9ubHk="
#define CUSTOM_TEST_OTA_FTP_PASSWORD "SWoqTWZmSTB2NW8qJTFHdV56RUN1WmFRcA=="
#if SF_TEST_GPRS
#define USER_FTP_IP SIFAR_FTP_IP
#define USER_FTP_PORT SIFAR_FTP_PORT
#define USER_FTP_USERNAME SIFAR_FTP_USERNAME
#define USER_FTP_PASSWORD SIFAR_FTP_PASSWORD
#elif CUSTOM_TEST_FTPS
#define USER_FTP_IP CUSTOM_TEST_FTP_IP
#define USER_FTP_PORT CUSTOM_TEST_FTP_PORT
#define USER_FTP_USERNAME CUSTOM_TEST_FTP_USERNAME
#define USER_FTP_PASSWORD CUSTOM_TEST_FTP_PASSWORD
#else
#define USER_FTP_IP CUSTOM_FTP_IP
#define USER_FTP_PORT CUSTOM_FTP_PORT
#define USER_FTP_USERNAME CUSTOM_FTP_USERNAME
#define USER_FTP_PASSWORD CUSTOM_FTP_PASSWORD
#endif
#if SF_TEST_OTA_FTP
#define OTA_FTP_IP SIFAR_OTA_FTP_IP
#define OTA_FTP_PORT SIFAR_OTA_FTP_PORT
#define OTA_FTP_USERNAME SIFAR_OTA_FTP_USERNAME
#define OTA_FTP_PASSWORD SIFAR_OTA_FTP_PASSWORD
#elif CUSTOM_TEST_OTA_FTP
#define OTA_FTP_IP CUSTOM_TEST_OTA_FTP_IP
#define OTA_FTP_PORT CUSTOM_TEST_OTA_FTP_PORT
#define OTA_FTP_USERNAME CUSTOM_TEST_OTA_FTP_USERNAME
#define OTA_FTP_PASSWORD CUSTOM_TEST_OTA_FTP_PASSWORD
#else
#define OTA_FTP_IP CUSTOM_OTA_FTP_IP
#define OTA_FTP_PORT CUSTOM_OTA_FTP_PORT
#define OTA_FTP_USERNAME CUSTOM_OTA_FTP_USERNAME
#define OTA_FTP_PASSWORD CUSTOM_OTA_FTP_PASSWORD
#endif
#endif #endif

View File

@ -12,7 +12,9 @@
#if (USE_DCF == ENABLE) #if (USE_DCF == ENABLE)
#include "DCF.h" #include "DCF.h"
#endif #endif
#include <sf_inc.h> #include <sf_inc.h>
#include "sf_base64.h"
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#define __MODULE__ UIInfo #define __MODULE__ UIInfo
@ -1444,6 +1446,12 @@ void SysCheckFlag(void)
{ {
SysSetFlag(FL_CONTINUE_SHOT, puiPara->Multishot); SysSetFlag(FL_CONTINUE_SHOT, puiPara->Multishot);
} }
if(puiPara->VideoSize != SysGetFlag(FL_MOVIE_SIZE))
{
SysSetFlag(FL_MOVIE_SIZE, puiPara->VideoSize);
}
sf_set_pir_sensitivity(puiPara->PirSensitivity);
#endif #endif
//printf("%s:%d sifar para e\n", __FUNCTION__, __LINE__); //printf("%s:%d sifar para e\n", __FUNCTION__, __LINE__);
@ -1650,7 +1658,7 @@ void SysResetFlag(void)
puiPara->ImgSize = DEFAULT_PHOTO_SIZE; puiPara->ImgSize = DEFAULT_PHOTO_SIZE;
puiPara->NightMode = DEFAULT_NIGHT_MODE; puiPara->NightMode = DEFAULT_NIGHT_MODE;
//Multishot //Multishot
//VideoSize puiPara->VideoSize = DEFAULT_MOVIE_SIZE;
//VideoTimeMenu //VideoTimeMenu
puiPara->VideoLenth = DEFAULT_VIDEO_LENTH; puiPara->VideoLenth = DEFAULT_VIDEO_LENTH;
puiPara->PirSwitch = DEFAULT_PIR_SWITCH; puiPara->PirSwitch = DEFAULT_PIR_SWITCH;
@ -1661,8 +1669,8 @@ void SysResetFlag(void)
if(puiPara->TimelapseSwitch) if(puiPara->TimelapseSwitch)
{ {
puiPara->TimelapseTime.Hour = 0; puiPara->TimelapseTime.Hour = 0;
puiPara->TimelapseTime.Min = 2; puiPara->TimelapseTime.Min = 0;
puiPara->TimelapseTime.Sec = 0; puiPara->TimelapseTime.Sec = 5;
} }
puiPara->WorkTime1Switch = DEFAULT_WORKTIME_SWITCH; puiPara->WorkTime1Switch = DEFAULT_WORKTIME_SWITCH;
@ -1753,11 +1761,41 @@ void SysResetFlag(void)
memset(puiPara ->strSSID_hotspot_1,'\0', sizeof(puiPara ->strSSID_hotspot_1)); memset(puiPara ->strSSID_hotspot_1,'\0', sizeof(puiPara ->strSSID_hotspot_1));
memset(puiPara ->strPASSPHRASE_hotspot_1,'\0', sizeof(puiPara ->strPASSPHRASE_hotspot_1)); memset(puiPara ->strPASSPHRASE_hotspot_1,'\0', sizeof(puiPara ->strPASSPHRASE_hotspot_1));
#endif #endif
strcpy((char *)puiPara ->FtpIp, "119.23.174.139");
strcpy((char *)puiPara ->FtpPort, "21"); snprintf((char *)puiPara->WifiApPWD, sizeof(puiPara->WifiApPWD), "Reveal2021");
strcpy((char *)puiPara ->FtpUsr, "cameraftp");
strcpy((char *)puiPara ->FtpPwd, "camera123456"); UINT8 tmpStr[60] = {0};
strcpy((char *)puiPara ->WifiApPWD, "Reveal2021"); #if SF_TEST_GPRS
snprintf((char *)puiPara->FtpIp, sizeof(puiPara->FtpIp), USER_FTP_IP);
snprintf((char *)puiPara->FtpPort, sizeof(puiPara->FtpPort), USER_FTP_PORT);
snprintf((char *)puiPara->FtpUsr, sizeof(puiPara->FtpUsr), USER_FTP_USERNAME);
snprintf((char *)puiPara->FtpPwd, sizeof(puiPara->FtpPwd), USER_FTP_PASSWORD);
//SF_STRCPY(puiPara ->APNGPRS, "3gnet");
#else
sf_base64_decode(USER_FTP_IP, (char *)tmpStr);
snprintf((char *)puiPara->FtpIp, sizeof(puiPara->FtpIp), (char *)tmpStr);
snprintf((char *)puiPara->FtpPort, sizeof(puiPara->FtpPort), USER_FTP_PORT);
memset(tmpStr, '\0', sizeof(tmpStr));
sf_base64_decode(USER_FTP_USERNAME, (char *)tmpStr);
snprintf((char *)puiPara->FtpUsr, sizeof(puiPara->FtpUsr), (char *)tmpStr);
memset(tmpStr, '\0', sizeof(tmpStr));
sf_base64_decode(USER_FTP_PASSWORD, (char *)tmpStr);
snprintf((char *)puiPara->FtpPwd, sizeof(puiPara->FtpPwd), (char *)tmpStr);
#endif
memset(tmpStr, '\0', sizeof(tmpStr));
sf_base64_decode(OTA_FTP_IP, (char *)tmpStr);
snprintf((char *)puiPara->OtaFtpIp, sizeof(puiPara->OtaFtpIp), (char *)tmpStr);
snprintf((char *)puiPara->OtaFtpPort, sizeof(puiPara->OtaFtpPort), OTA_FTP_PORT);
memset(tmpStr, '\0', sizeof(tmpStr));
sf_base64_decode(OTA_FTP_USERNAME, (char *)tmpStr);
snprintf((char *)puiPara->OtaFtpUserName, sizeof(puiPara->OtaFtpUserName), (char *)tmpStr);
memset(tmpStr, '\0', sizeof(tmpStr));
sf_base64_decode(OTA_FTP_PASSWORD, (char *)tmpStr);
snprintf((char *)puiPara->OtaFtpPassWord, sizeof(puiPara->OtaFtpPassWord), (char *)tmpStr);
#if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_) #if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_)
puiPara->GpsNumber = DEFAULT_GPS_NUMBER; puiPara->GpsNumber = DEFAULT_GPS_NUMBER;
@ -1765,7 +1803,6 @@ void SysResetFlag(void)
puiPara->TimeSend2Switch = DEFAULT_TIMESEND2_SWITCH; puiPara->TimeSend2Switch = DEFAULT_TIMESEND2_SWITCH;
puiPara->TimeSend3Switch = DEFAULT_TIMESEND3_SWITCH; puiPara->TimeSend3Switch = DEFAULT_TIMESEND3_SWITCH;
puiPara->TimeSend4Switch = DEFAULT_TIMESEND4_SWITCH; puiPara->TimeSend4Switch = DEFAULT_TIMESEND4_SWITCH;
sf_set_pir_sensitivity(7);
#endif #endif
#else #else
@ -1840,7 +1877,9 @@ void SysResetFlag(void)
//#2023/02/10#Payton - end //#2023/02/10#Payton - end
SysSetFixedFlag(); SysSetFixedFlag();
#if HUNTING_CAMERA_MCU == ENABLE
SysCheckFlag();
#endif
} }
void SysExeMenuSettingFuncs(void) void SysExeMenuSettingFuncs(void)

View File

@ -516,12 +516,17 @@ typedef struct _UIMenuUIMenuStoreInfo {
UINT8 FtpPort[5]; UINT8 FtpPort[5];
UINT8 FtpUsr[40]; UINT8 FtpUsr[40];
UINT8 FtpPwd[20]; UINT8 FtpPwd[20];
UINT8 FtpsIp[40]; UINT8 FtpsIp[40];
UINT8 FtpsPort[5]; UINT8 FtpsPort[5];
UINT8 FtpsUsr[40]; UINT8 FtpsUsr[40];
UINT8 FtpsPwd[20]; UINT8 FtpsPwd[20];
UINT8 OtaFtpIp[40];
UINT8 OtaFtpPort[5];
UINT8 OtaFtpUserName[40];
UINT8 OtaFtpPassWord[40];
UINT8 WifiSwitch; UINT8 WifiSwitch;
UINT8 WifiMode; UINT8 WifiMode;
UINT8 WifiApPWD[16]; UINT8 WifiApPWD[16];

View File

@ -244,6 +244,7 @@ SRC = \
./code/source/4gMng/sf_module.c \ ./code/source/4gMng/sf_module.c \
./code/source/4gMng/sf_opera_adapt.c \ ./code/source/4gMng/sf_opera_adapt.c \
./code/source/4gMng/sf_ftp.c \ ./code/source/4gMng/sf_ftp.c \
./code/source/4gMng/sf_sms.c \
./code/source/dataMng/sf_dataMng.c \ ./code/source/dataMng/sf_dataMng.c \
./code/source/dataMng/sf_transdata1.c \ ./code/source/dataMng/sf_transdata1.c \
./code/source/dataMng/sf_datahttp.c \ ./code/source/dataMng/sf_datahttp.c \

View File

@ -31,7 +31,7 @@ void HMAC_SHA1(UINT8 hmac[20], const UINT8 *key, int key_len,
/*void oss_sign_headers(aos_pool_t *p, const aos_string_t *signstr, const aos_string_t *access_key_id, /*void oss_sign_headers(aos_pool_t *p, const aos_string_t *signstr, const aos_string_t *access_key_id,
const aos_string_t *access_key_secret, aos_table_t *headers);*/ const aos_string_t *access_key_secret, aos_table_t *headers);*/
void oss_sign_headers(); void oss_sign_headers(UINT8*value,UINT8*datestr,UINT8*namestr,UINT8*typestr,UINT8*password,UINT8*bucket);
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -641,4 +641,19 @@ typedef int gid_t;
#endif /* WIN32 */ #endif /* WIN32 */
#define APR_HAVE_ERRNO_H 0
#define APR_HAVE_STRING_H 0
#define APR_HAVE_SIGNAL_H 0
#define APR_HAVE_STRCASECMP 0
#define APR_HAVE_STRICMP 0
#define APR_HAVE_STRNCASECMP 0
#define APR_HAVE_MEMMOVE 0
#define APR_HAVE_MEMCHR 0
#define APR_HAS_RANDOM 0
#define APR_HAVE_ERRNO_H 0
#define APR_HAVE_NETINET_IN_H 0
#define APR_HAVE_STRING_H 0
#define HAVE_CONFIG_H 0
#define HAVE_STRDUP 0
#endif /* APR_H */ #endif /* APR_H */

View File

@ -356,6 +356,7 @@ unsigned char sf_mcu_wdg_off(void);
void sf_set_module_sleep_flag(UINT8 flag); void sf_set_module_sleep_flag(UINT8 flag);
int sf_app_while_flag(void); int sf_app_while_flag(void);
void sf_set_sim_insert(UINT32 sim); void sf_set_sim_insert(UINT32 sim);
UINT32 sf_get_sim_insert(void);
int sf_get_signal_ready(void); int sf_get_signal_ready(void);
void sf_set_sim_pin_flag(UINT8 simPin, UINT8 simPins, UINT8 simPinPuk); void sf_set_sim_pin_flag(UINT8 simPin, UINT8 simPins, UINT8 simPinPuk);
void sf_set_cq_signal(UINT8 csq); void sf_set_cq_signal(UINT8 csq);
@ -367,7 +368,11 @@ void sf_set_dr_reset_time_sys_flag(UINT8 value);
UINT8 sf_get_power_off_flag(void); UINT8 sf_get_power_off_flag(void);
void sf_set_power_off_flag(UINT8 flag); void sf_set_power_off_flag(UINT8 flag);
void sf_set_mcu_rtc_flag(UINT8 value); void sf_set_mcu_rtc_flag(UINT8 value);
void sf_set_sms_number(UINT32 num);
UINT8 sf_get_module_update(void);
void sf_set_module_update(UINT8 flag);
UINT8 sf_get_fw_update(void);
void sf_set_fw_update(UINT8 flag);
extern unsigned short TrigType; extern unsigned short TrigType;

View File

@ -52,7 +52,7 @@ typedef enum SIM_SEARCH_GPS_E
//static unsigned long int gps_get_seconds(SF_PARA_TIME_S *pTime); //static unsigned long int gps_get_seconds(SF_PARA_TIME_S *pTime);
//static int gps_diffSec_from_date(SF_PARA_TIME_S *pnowDate, SF_PARA_TIME_S *poldDate); //static int gps_diffSec_from_date(SF_PARA_TIME_S *pnowDate, SF_PARA_TIME_S *poldDate);
//static void gps_infor_convert(SF_CHAR *str); //static void gps_infor_convert(SF_CHAR *str);
SINT16 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime); SINT32 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime);
SINT32 eg91_gps_search_result(SF_FN_PARAM_S *pfnParam); SINT32 eg91_gps_search_result(SF_FN_PARAM_S *pfnParam);
SINT32 eg91_gps_preconfig(SF_FN_PARAM_S *pfnParam); SINT32 eg91_gps_preconfig(SF_FN_PARAM_S *pfnParam);

View File

@ -28,6 +28,9 @@ UINT32 sf_create_dailyreport_file(void);
UINT8 sf_app_get_battery(void); UINT8 sf_app_get_battery(void);
void sf_custom_send_str_get(UINT8 *sendName, UINT8 *pStr); void sf_custom_send_str_get(UINT8 *sendName, UINT8 *pStr);
BOOL sf_is_enough_power_to_update(void);
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -10,7 +10,6 @@ extern "C" {
#define MMZBLOCKSIZE 1024 #define MMZBLOCKSIZE 1024
#define SF_VIDEO_LOOP_NUM 4 /*PIC 3 + VIDEO 1*/ #define SF_VIDEO_LOOP_NUM 4 /*PIC 3 + VIDEO 1*/
#define SF_SEND_LIST_ITEM_LENGTH 15
#define SF_FILE_ERROR_NO_FILE SF_ERR_ID(SF_MOD_FILE, ERROR_NO_FILE) #define SF_FILE_ERROR_NO_FILE SF_ERR_ID(SF_MOD_FILE, ERROR_NO_FILE)
@ -62,7 +61,7 @@ SINT32 sf_file_txt_fill(SF_FILE_ATTR_S *pstFileAttr);
#if defined(CFG_TRANSDATA_AT) #if defined(CFG_TRANSDATA_AT)
SINT32 sf_file_subscribe_check(SF_FILE_ATTR_S *pstfileAttr, SF_SUBSCRIBE_ATTR_S *pSubscribe); SINT32 sf_file_subscribe_check(SF_FILE_ATTR_S *pstfileAttr, SF_SUBSCRIBE_ATTR_S *pSubscribe);
#else #else
SINT16 sf_file_subscribe_check(SF_FILE_ATTR_S *pstfileAttr, SF_SEND_FILE_ATTR_S* pSendFileAttr); SINT32 sf_file_subscribe_check(SF_FILE_ATTR_S *pstfileAttr, SF_SEND_FILE_ATTR_S* pSendFileAttr);
#endif #endif
SINT32 sf_file_IsExsit(CHAR *fileName); SINT32 sf_file_IsExsit(CHAR *fileName);

View File

@ -23,6 +23,8 @@
#ifndef _SF_FTP_H_ #ifndef _SF_FTP_H_
#define _SF_FTP_H_ #define _SF_FTP_H_
#include "kwrap/nvt_type.h"
#include "sf_type.h"
typedef enum _FTP_SIM_E typedef enum _FTP_SIM_E
{ {
FTP_SIM_CGDCONT = 0, FTP_SIM_CGDCONT = 0,
@ -118,6 +120,77 @@ typedef enum _SEND_ERR_CODE_E{
#define SF_SEND_ERROR_FTP_NULL SF_ERR_ID(SF_MOD_4G_SEND, SEND_ERROR_FTP_NULL) #define SF_SEND_ERROR_FTP_NULL SF_ERR_ID(SF_MOD_4G_SEND, SEND_ERROR_FTP_NULL)
#define SF_SEND_ERROR_REACH_MAX_NUM SF_ERR_ID(SF_MOD_4G_SEND, SEND_ERROR_REACH_MAX_NUM) #define SF_SEND_ERROR_REACH_MAX_NUM SF_ERR_ID(SF_MOD_4G_SEND, SEND_ERROR_REACH_MAX_NUM)
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;
typedef enum _CAMERA_OTA_FTP
{
CAMERA_OTA_FTP_FRIST =(unsigned char)0x01,
CAMERA_OTA_FTP_CURVER,
CAMERA_OTA_FTP_QICSGP,
CAMERA_OTA_FTP_QICSGP1,
CAMERA_OTA_FTP_QIACT,
CAMERA_OTA_FTP_QFTPCFG1,
CAMERA_OTA_FTP_QFTPCFG2,
CAMERA_OTA_FTP_QFTPCFG3,
CAMERA_OTA_FTP_QFTPCFG4,
CAMERA_OTA_FTP_QFTPCFG5,
CAMERA_OTA_FTP_QFTPOPEN,
CAMERA_OTA_FTP_QFTPNLST,
CAMERA_OTA_FTP_QFTPGETCFG,
CAMERA_OTA_FTP_QFTPGETBRN,
CAMERA_OTA_FTP_QFTPCLOSE,
CAMERA_OTA_FTP_QIDEACT,
CAMERA_OTA_FTP_READSIZE,
CAMERA_OTA_FTP_DOWNLOAD_CFG,
CAMERA_OTA_FTP_DOWNLOAD_BRN,
CAMERA_OTA_FTP_SAVE_BRN,
CAMERA_OTA_FTP_END,
}CAMERA_OTA_FTP;
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 struct sf_ftp_send_file typedef struct sf_ftp_send_file
{ {
int id;/* id number*/ int id;/* id number*/
@ -138,6 +211,6 @@ SINT32 sf_video_send_ftp(void);
SINT32 sf_simcom_ftp_dailyreport_send(void); SINT32 sf_simcom_ftp_dailyreport_send(void);
SINT32 sf_check_ftp_send(UINT8 mode); SINT32 sf_check_ftp_send(UINT8 mode);
SINT32 sf_simcom_ftp_send(UINT8 mode); SINT32 sf_simcom_ftp_send(UINT8 mode);
SINT32 sf_4g_module_ota_ftp(void);
#endif /*_SF_FTP_H_*/ #endif /*_SF_FTP_H_*/

View File

@ -1,5 +1,5 @@
#ifndef __SF_EG91_SERVER_H__ #ifndef __SF_HTTP_SERVER_H__
#define __SF_EG91_SERVER_H__ #define __SF_HTTP_SERVER_H__
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus

View File

@ -212,14 +212,15 @@ extern "C" {
#define ACCESS_KEY "AC40CSHKRO01" #define ACCESS_KEY "AC40CSHKRO01"
#endif #endif
#define SF_ERR_ID(module, err) ((SINT16)(((module) << 8) | (err))) #define SF_ERR_ID(module, err) ((SINT32)(((module) << 16) | (err)))
/** SF Module ID */ /** SF Module ID */
typedef enum SF_MOD_e { typedef enum SF_MOD_e {
SF_MOD_SIM = 1, SF_MOD_SIM = 1,
SF_MOD_GPS,
SF_MOD_FTP, SF_MOD_FTP,
SF_MOD_SMS,
SF_MOD_4G, SF_MOD_4G,
SF_MOD_4G_SEND, SF_MOD_4G_SEND,
SF_MOD_GPS,
SF_MOD_FILE, SF_MOD_FILE,
SF_MOD_HTTP, SF_MOD_HTTP,
SF_MOD_TTY, SF_MOD_TTY,

View File

@ -262,9 +262,9 @@ typedef struct sfPDT_PARAM_STATISTICS_S
UINT8 subscribeVideoSendCnt; UINT8 subscribeVideoSendCnt;
UINT8 GpsSearchFailCnt;/*dailyReport mode, search gps fail cnt*/ UINT8 GpsSearchFailCnt;/*dailyReport mode, search gps fail cnt*/
UINT8 msm_flag; UINT8 SmsFlag;
UINT8 msm_number; UINT8 SmsNumber;
UINT8 msm_str[66]; UINT8 SmsStr[66];
UINT8 SendlowPowerWarnCnt; UINT8 SendlowPowerWarnCnt;
UINT32 CheckSum; UINT32 CheckSum;

View File

@ -40,9 +40,10 @@ typedef enum SF_CMD_TYPE_E {
SF_CMD_BUTT SF_CMD_BUTT
} SF_CMD_TYPE_E; } SF_CMD_TYPE_E;
SINT16 app_file_upload(SF_FILE_ATTR_S *pstFileAttr, SF_FN_PARAM_S *pfnParam); SINT32 app_file_upload(SF_FILE_ATTR_S *pstFileAttr, SF_FN_PARAM_S *pfnParam);
SF_BOOL app_disconnect_4g_module(void); SF_BOOL app_disconnect_4g_module(void);
SINT32 app_ttyusb_IsOpen(void); SINT32 app_ttyusb_IsOpen(void);
SINT32 sf_ttyusb_restart(void);
SINT32 app_file_subscrible_check(SF_REPORT_FILE_ATTR_S *pDtsReportFileAttr,SF_REPORT_FILE_ATTR_S *pSrcReportFileAttr); SINT32 app_file_subscrible_check(SF_REPORT_FILE_ATTR_S *pDtsReportFileAttr,SF_REPORT_FILE_ATTR_S *pSrcReportFileAttr);
SINT32 app_RegisterNet_start(void); SINT32 app_RegisterNet_start(void);

View File

@ -0,0 +1,252 @@
/**************************************************************************
*
* Copyright (c) 2009-2018 by SiFar Technology, Inc.
*
* This software is copyrighted by and is the property of SiFar
* Technology, Inc.. All rights are reserved by SiFar Technology, Inc..
* This software may only be used in accordance with the corresponding
* license agreement. Any unauthorized use, duplication, distribution,
* or disclosure of this software is expressly forbidden.
*
* This Copyright notice MUST not be removed or modified without prior
* written consent of SiFar Technology, Inc..
*
* SiFar Technology, Inc. reserves the right to modify this software without notice.
*
* Author: hac
* Ver: 1.0.0 2021.12.10
* Description:
*
**************************************************************************/
#ifndef _SF_SMS_H_
#define _SF_SMS_H_
#include "sf_param_enum.h"
#include "kwrap/nvt_type.h"
#include "sf_type.h"
typedef enum SF_SMS
{
SMS_SIM_CGDCONT = (unsigned char)0x01,
SMS_SIM_CGREG, //5
SMS_SIM_CGREG1,
SMS_SIM_CNSMOD,
SMS_SIM_CPSI,
SMS_SIM_CSQ,
SMS_SIM_CMGF,
SMS_SIM_CSCS,
SMS_SIM_CPMS,
SMS_SIM_CMGD1, //10
SMS_SIM_CMGR,
SMS_SIM_IRA,
SMS_SIM_PARA,
SMS_SIM_CMGS,
SMS_SIM_CONTENT,
SMS_SIM_REPLY, //15
SMS_SIM_CMDFLAG,
SMS_SIM_CMGD2,
SMS_SIM_UNREAD,
SMS_SIM_READ,
SMS_SIM_CMGL,
SMS_SIM_EXIT,
}SF_SMS_E;
typedef enum _SMS_ERR_CODE_E{
SMS_ERROR_QINIT = 1,
SMS_ERROR_READ = 2,
SMS_ERROR_AT_TIMEOUT = 3,
SMS_ERROR_SUBSCRIBE_PIC = 4,
SMS_ERROR_SUBSCRIBE_VIDEO= 5,
SMS_ERROR_TIMEOUT,
SMS_ERROR_SEND_MSG,
SMS_ERROR_BUTT,
}SMS_ERR_CODE_e;
typedef enum _SMS_PARSE_STATUS_E
{
SMS_STATUS_IDLE,
SMS_STATUS_RECIEV,
SMS_STATUS_FORMAT_ERR,
SMS_STATUS_PARA_ERR,
SMS_STATUS_NO_RESPONSE
}SMS_PARSE_STATUS_E;
#define SF_SMS_ERROR_QINIT SF_ERR_ID(SF_MOD_SMS, SMS_ERROR_QINIT)
#define SF_SMS_ERROR_READ SF_ERR_ID(SF_MOD_SMS, SMS_ERROR_READ)
#define SF_SMS_ERROR_AT_TIMEOUT SF_ERR_ID(SF_MOD_SMS, SMS_ERROR_AT_TIMEOUT)
#define SF_SMS_ERROR_SUBSCRIBE_PIC SF_ERR_ID(SF_MOD_SMS, SMS_ERROR_SUBSCRIBE_PIC)
#define SF_SMS_ERROR_SUBSCRIBE_VIDEO SF_ERR_ID(SF_MOD_SMS, SMS_ERROR_SUBSCRIBE_VIDEO)
#define SF_SMS_ERROR_TIMEOUT SF_ERR_ID(SF_MOD_SMS, SMS_ERROR_TIMEOUT)
#define SF_SMS_ERROR_SEND_MSG SF_ERR_ID(SF_MOD_SMS, SMS_ERROR_SEND_MSG)
typedef enum _MMS
{
MMS_Frist = (unsigned char)0x01,
MMS_DEL_RAM,
MMS_JPGSIZE,
MMS_JPG,
MMS_GSN,
MMS_PIN,
MMS_CLCK1,
MMS_CLCK0,
MMS_CLK_SC,
MMS_INIT_QUERY, //10
MMS_IPR,
MMS_IPR1,
MMS_IPR2,
MMS_IPR3,
MMS_IPR4,
MMS_IPR5,
MMS_SIMSTAT,
MMS_ATE,
MMS_ATW,
MMS_LWCFG1, //20
MMS_LWCFG2,
MMS_CMEE,
MMS_IFC,
MMS_CPIN,
MMS_SIM,
MMS_QIN,
MMS_CREG,
MMS_QCSQ,
MMS_CSQ,
MMS_CGREG, //30
MMS_QNWINFO,
MMS_CTZU,
MMS_QIFG1,
MMS_SETAPN1,
MMS_SETAPN2,
MMS_QIFG2,
MMS_QIFG3,
MMS_QICSGP,
MMS_QICSGP1,
MMS_QMMURL,//40
MMS_QMMPROXY,
MMS_QMMSW,
MMS_QFDEL,
MMS_QMMDUR,
MMS_PHONE1,
MMS_PHONE2,
MMS_PHONE3,
MMS_PHONE4,
MMS_EMAIL1,
MMS_EMAIL2,//50
MMS_EMAIL3,
MMS_EMAIL4,
MMS_UTF8_0,
MMS_UTF8,
MMS_QMMSW4,
MMS_QFLST,
MMS_SW5,
MMS_SEND,
MMS_CLEAN,
MMS_ATQIDEACT,//60
MMS_ATQIDEACT0,
MMS_ATQIDEACT1,
MMS_ATQINISTAT,
MMS_ATCMGF,
MMS_ATCSCS,
MMS_ATCMGD3,
MMS_ATCMGL,
MMS_ATCMGR,
MMS_ATCMGR1,
MMS_ATCMGL1, //70
MMs_ATCMGD,
MMS_ATCMGS,
MMS_ATCMGS1,
MMS_ATCMGS1_2,
MMS_ATCMGS2,
MMS_ATQSCLK,
MMS_ATI,
MMS_ATI2,
MMS_ATI2_1,
MMS_ATI2_2, //80
MMS_ATI3,
MMS_QNVFR,
MMS_QNVFW,
MMS_CID,
MMS_CID1,
MMS_CIMI,
MMS_IPV4V6_1,
MMS_IPV4V6_2,
MMS_IPV4V6_3,
MMS_IPV4V6_4, //90
MMS_CFUN0,
MMS_CFUN1,
MMS_XTRA_QUERY,
MMS_XTRA_SET,
MMS_csub,
MMS_COPS,
MMS_QNTP,
MMS_CCLK,
MMS_ATQURCCFG,
MMS_ATCOPS, //100
MMS_ATCGSN,
MMS_PBDONE,
MMS_TEST,
MMS_EXIT,
MMS_EXIT1,
MMS_NTP_TRY,
MMS_NTP,
MMS_NTP1,
MMS_NTP1_2,
MMS_NTP1_3,//110
MMS_NTP2,
MMS_TIMEOUT,
MMS_IPV4V6,
MMS_QNVW,
MMS_WSIZE1,
MMS_WSIZE2,
MMS_XGPS,
MMS_XGPS1,
}MMS;
#define SMS_REGISTER_NETWORK_COUNT 200
#define getbit(x,y) ((x)>>(y)&1)
typedef struct sfCAMERA_CMD_S
{
UINT8 setPara;
UINT8 moduleUpdateOTA;
UINT8 moduleUpdateSD;
UINT8 firmwareUpdateOTA;
UINT8 getLog;
UINT8 takePhotoAndSend;
UINT8 sendHD;
UINT8 sendVideo;
UINT8 formatSD;
UINT8 cameraReset;
UINT8 cameraRestart;
UINT8 GotoServerGetPara;
} SF_CAMERA_CMD_S;
typedef struct SubImgList
{
UINT16 dirKey;
UINT16 fileKey;
struct SubImgList *pNext;
} SubImgList_t;
UINT8 sf_get_pic(void);
void sf_sms_set_pic(UINT8 pic);
UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_send_mode);
SINT32 sf_sms_read_message(void);
SINT32 sf_check_message(void);
SINT32 sf_read_message(void);
SINT32 sf_sms_reg_net_init(void);
void sf_sms_set_number(UINT8 number);
UINT8 sf_sms_get_number(void);
void sf_cmd_camera_restart(UINT8 cameraRestart);
UINT8 sf_get_camera_restart(void);
void sf_set_para_sava(void);
void sf_hd_pic_add_to_list(UINT8 *fileName);
void sf_hd_pic_list_print(void);
void sf_video_add_to_list(UINT8 *fileName);
void sf_video_list_print(void);
SINT32 sf_power_off_check_sms(void);
SINT32 sf_power_off_module_ota(void);
#endif /*_SF_SMS_H_*/

View File

@ -48,7 +48,7 @@ SINT32 app_preinit(void);
UINT8 *sf_versionGet(UINT8 ver[],UINT8 fea[]); UINT8 *sf_versionGet(UINT8 ver[],UINT8 fea[]);
void sf_power_off(void);
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus

View File

@ -18,7 +18,6 @@
#endif #endif
#define SF_LPA_SDK 0 #define SF_LPA_SDK 0
#define SF_GPS_SUPPORT 0
#define DEBUG_INFO_ON_LCD 0 #define DEBUG_INFO_ON_LCD 0
#define DBG_LOG 0 #define DBG_LOG 0

View File

@ -63,10 +63,10 @@ static void gps_infor_convert(SF_CHAR *str)
memcpy(str, strTemp, 4); memcpy(str, strTemp, 4);
} }
SINT16 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime) SINT32 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime)
{ {
SINT16 ttyRet = SF_SUCCESS; SINT32 ttyRet = SF_SUCCESS;
SINT16 ret = SF_SUCCESS; SINT32 ret = SF_SUCCESS;
SINT16 sts = 1; SINT16 sts = 1;
UINT16 timeout_count = 0; UINT16 timeout_count = 0;
UINT16 callTime = 0; UINT16 callTime = 0;
@ -234,30 +234,30 @@ SINT16 eg91_gps_greendate_Get(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime)
{ {
UINT8 *P1 = NULL; UINT8 *P1 = NULL;
P1 = strstr(ttyData,"greenDate"); P1 = (UINT8 *)strstr(ttyData,"greenDate");
if(P1 != NULL) if(P1 != NULL)
{ {
//printf("greenDate:%s\n",P1); //printf("greenDate:%s\n",P1);
UINT8 tempStr[5] = {0}; UINT8 tempStr[5] = {0};
strncpy(tempStr,P1+12,4); strncpy((char *)tempStr,(char *)P1+12,4);
pNowTime->Year = atoi(tempStr); pNowTime->Year = atoi((char *)tempStr);
memset(tempStr,'\0',sizeof(tempStr)); memset(tempStr,'\0',sizeof(tempStr));
strncpy(tempStr,P1+12+4,2); strncpy((char *)tempStr,(char *)P1+12+4,2);
pNowTime->Mon = atoi(tempStr); pNowTime->Mon = atoi((char *)tempStr);
strncpy(tempStr,P1+12+6,2); strncpy((char *)tempStr,(char *)P1+12+6,2);
pNowTime->Day = atoi(tempStr); pNowTime->Day = atoi((char *)tempStr);
strncpy(tempStr,P1+12+8,2); strncpy((char *)tempStr,(char *)P1+12+8,2);
pNowTime->Hour = atoi(tempStr); pNowTime->Hour = atoi((char *)tempStr);
strncpy(tempStr,P1+12+10,2); strncpy((char *)tempStr,(char *)P1+12+10,2);
pNowTime->Min = atoi(tempStr); pNowTime->Min = atoi((char *)tempStr);
strncpy(tempStr,P1+12+12,2); strncpy((char *)tempStr,(char *)P1+12+12,2);
pNowTime->Sec = atoi(tempStr); 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); 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(ttyData, "AT+QIDEACT=%d\r", HTTP_PDP);
@ -351,15 +351,13 @@ SINT32 eg91_gps_Isupdate(SF_FN_PARAM_S *pfnParam,UINT8 *pIsupdate,SF_PARA_TIME_S
sf_hal_ttyusb2_write(ttyData, strlen(ttyData)); sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
enMmcLocation = SIM_SEARCH_GPS_QGPSXTRA; enMmcLocation = SIM_SEARCH_GPS_QGPSXTRA;
} }else if(strstr(ttyData,"+QGPSXTRA: 0"))
else if(strstr(ttyData,"+QGPSXTRA: 0"))
{ {
callTime = 0; callTime = 0;
sprintf(ttyData, "AT+QGPSXTRA=1\r"); sprintf(ttyData, "AT+QGPSXTRA=1\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData)); sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
enMmcLocation = SIM_SEARCH_GPS_FIRST_2; enMmcLocation = SIM_SEARCH_GPS_FIRST_2;
} }else if(timeout_count > 200)
else if(timeout_count > 200)
{ {
enMmcLocation = SIM_SEARCH_GPS_EXIT; enMmcLocation = SIM_SEARCH_GPS_EXIT;
@ -455,8 +453,8 @@ SINT32 eg91_gps_search(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime,UINT8 au
SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 }; SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 };
UINT16 sts =1; UINT16 sts =1;
UINT16 calltime = 0; UINT16 calltime = 0;
UINT8 pdpdeact = 0; //UINT8 pdpdeact = 0;
SINT16 ret = SF_FAILURE; SINT32 ret = SF_FAILURE;
SF_PDT_PARAM_STATISTICS_S *pStaticParam = pfnParam->pstaticParam; SF_PDT_PARAM_STATISTICS_S *pStaticParam = pfnParam->pstaticParam;
@ -483,12 +481,10 @@ SINT32 eg91_gps_search(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime,UINT8 au
if(strstr(pStaticParam->ApnGPRS, V_MODULE_APN)) if(strstr(pStaticParam->ApnGPRS, V_MODULE_APN))
{ {
sprintf(ttyData, "AT+QHTTPCFG=\"contextid\",%d\r", V_PDP_INDEX); sprintf(ttyData, "AT+QHTTPCFG=\"contextid\",%d\r", V_PDP_INDEX);
} }else if(strstr(pStaticParam->ApnGPRS, A_MODULE_APN))
else if(strstr(pStaticParam->ApnGPRS, A_MODULE_APN))
{ {
sprintf(ttyData, "AT+QHTTPCFG=\"contextid\",%d\r", A_PDP_INDEX); sprintf(ttyData, "AT+QHTTPCFG=\"contextid\",%d\r", A_PDP_INDEX);
} }else
else
{ {
sprintf(ttyData, "AT+QHTTPCFG=\"contextid\",%d\r", E_PDP_INDEX); sprintf(ttyData, "AT+QHTTPCFG=\"contextid\",%d\r", E_PDP_INDEX);
} }
@ -632,7 +628,7 @@ SINT32 eg91_gps_search(SF_FN_PARAM_S *pfnParam,SF_PARA_TIME_S *pNowTime,UINT8 au
enMmcLocation = SIM_SEARCH_GPS_EXIT; enMmcLocation = SIM_SEARCH_GPS_EXIT;
SLOGE("[ERROR]GPS QHTTPGET time out\n"); SLOGE("[ERROR]GPS QHTTPGET time out\n");
if(strstr(pStaticParam->ApnGPRS, V_MODULE_APN)) if(strstr(pStaticParam->ApnGPRS, V_MODULE_APN))
sprintf(ttyData, "AT+QIDEACT=%d\r", V_PDP_INDEX); sprintf(ttyData, "AT+QIDEACT=%d\r", V_PDP_INDEX);
else if(strstr(pStaticParam->ApnGPRS, A_MODULE_APN)) else if(strstr(pStaticParam->ApnGPRS, A_MODULE_APN))
sprintf(ttyData, "AT+QIDEACT=%d\r", A_PDP_INDEX); sprintf(ttyData, "AT+QIDEACT=%d\r", A_PDP_INDEX);
@ -755,7 +751,7 @@ SINT32 eg91_gps_preconfig(SF_FN_PARAM_S *pfnParam)
UINT16 calltime = 0; UINT16 calltime = 0;
UINT8 pdpdeact = 0; UINT8 pdpdeact = 0;
UINT8 sendTryTime = 0; UINT8 sendTryTime = 0;
SINT16 ret = SF_FAILURE; SINT32 ret = SF_FAILURE;
SF_PDT_PARAM_STATISTICS_S *pStaticParam = pfnParam->pstaticParam; SF_PDT_PARAM_STATISTICS_S *pStaticParam = pfnParam->pstaticParam;
SIM_SEARCH_GPS_e enMmcLocation = SIM_SEARCH_GPS_FIRST; SIM_SEARCH_GPS_e enMmcLocation = SIM_SEARCH_GPS_FIRST;
@ -799,8 +795,7 @@ SINT32 eg91_gps_preconfig(SF_FN_PARAM_S *pfnParam)
sprintf(ttyData, "AT+QGPSEND\r"); sprintf(ttyData, "AT+QGPSEND\r");
sf_hal_ttyusb2_write(ttyData, strlen(ttyData)); sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
SLOGE("[ERROR] GPS ON ERR, Try:%d\n", sendTryTime); SLOGE("[ERROR] GPS ON ERR, Try:%d\n", sendTryTime);
} }else
else
{ {
calltime = 0; calltime = 0;
sendTryTime = 0; sendTryTime = 0;
@ -904,9 +899,9 @@ SINT32 eg91_gps_search_result(SF_FN_PARAM_S *pfnParam)
SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 }; SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 };
UINT16 sts =1; UINT16 sts =1;
UINT16 calltime = 0; UINT16 calltime = 0;
UINT8 pdpdeact = 0; //UINT8 pdpdeact = 0;
UINT8 sendTryTime = 0; //UINT8 sendTryTime = 0;
SINT16 ret = SF_SUCCESS; SINT32 ret = SF_SUCCESS;
SF_PDT_PARAM_STATISTICS_S *pStaticParam = pfnParam->pstaticParam; SF_PDT_PARAM_STATISTICS_S *pStaticParam = pfnParam->pstaticParam;
SIM_SEARCH_GPS_e enMmcLocation = SIM_SEARCH_GPS_LOC; SIM_SEARCH_GPS_e enMmcLocation = SIM_SEARCH_GPS_LOC;

View File

@ -31,8 +31,8 @@ SINT32 eg91_file_to_module(SF_CHAR *fileName, SINT32 *fileSize, SF_FILE_TYPE_E f
SINT32 tolFileSize = 0; SINT32 tolFileSize = 0;
SINT32 readSize = 0; SINT32 readSize = 0;
UINT16 count = 0; UINT16 count = 0;
SINT16 ret = SF_SUCCESS; SINT32 ret = SF_SUCCESS;
SINT16 ret1 = SF_SUCCESS; SINT32 ret1 = SF_SUCCESS;
SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 }; SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 };
SF_CHAR tempFileName[32] = { 0 }; SF_CHAR tempFileName[32] = { 0 };
SF_CHAR *pBuf = NULL; SF_CHAR *pBuf = NULL;
@ -184,109 +184,109 @@ SINT32 eg91_file_to_module(SF_CHAR *fileName, SINT32 *fileSize, SF_FILE_TYPE_E f
return ret; return ret;
} }
static SINT16 eg91_ip_get(cJSON *object, SF_CHAR *webIP, SF_CHAR *acmIP) static SINT16 eg91_ip_get(cJSON *object, SF_CHAR *webIP, SF_CHAR *acmIP)
{ {
SF_CHAR tempStr[128] = {0}; SF_CHAR tempStr[128] = {0};
SF_CHAR decode_tempStr[128] = {0}; SF_CHAR decode_tempStr[128] = {0};
UINT8 type = 0; UINT8 type = 0;
type = cJSON_GetObjectItem(object,"serverType")->valueSINT32; type = cJSON_GetObjectItem(object,"serverType")->valueSINT32;
sprintf(tempStr,"%s",cJSON_GetObjectItem(object,"ip")->valuestring); sprintf(tempStr,"%s",cJSON_GetObjectItem(object,"ip")->valuestring);
printf("type:%d,ip:%s\n",type,tempStr); printf("type:%d,ip:%s\n",type,tempStr);
sf_base64_decode(tempStr,decode_tempStr); sf_base64_decode(tempStr,decode_tempStr);
printf("decode_tempStr=%s\n",decode_tempStr); printf("decode_tempStr=%s\n",decode_tempStr);
if(SF_NULL == strlen(decode_tempStr)) if(SF_NULL == strlen(decode_tempStr))
return SF_FAILURE; return SF_FAILURE;
if(type == 1) if(type == 1)
{ {
sprintf(webIP,"%s",decode_tempStr); sprintf(webIP,"%s",decode_tempStr);
} }
else if(type == 2) else if(type == 2)
{ {
sprintf(acmIP,"%s",decode_tempStr); sprintf(acmIP,"%s",decode_tempStr);
} }
else else
{ {
memset(acmIP, '\0', strlen(acmIP)); memset(acmIP, '\0', strlen(acmIP));
memset(acmIP, '\0', strlen(acmIP)); memset(acmIP, '\0', strlen(acmIP));
return SF_FAILURE; return SF_FAILURE;
} }
return SF_SUCCESS; return SF_SUCCESS;
} }
static SINT16 eg91_parse_server_get(SF_CHAR *buf, SF_CHAR *webIp, SF_CHAR *acmIp) static SINT16 eg91_parse_server_get(SF_CHAR *buf, SF_CHAR *webIp, SF_CHAR *acmIp)
{ {
SF_COMM_CHECK_POINTER(buf,SF_FAILURE); SF_COMM_CHECK_POINTER(buf,SF_FAILURE);
SF_COMM_CHECK_POINTER(webIp,SF_FAILURE); SF_COMM_CHECK_POINTER(webIp,SF_FAILURE);
SF_COMM_CHECK_POINTER(acmIp,SF_FAILURE); SF_COMM_CHECK_POINTER(acmIp,SF_FAILURE);
cJSON_Hooks hooks = {malloc, free}; cJSON_Hooks hooks = {malloc, free};
UINT8 statu[5] = {1}; UINT8 statu[5] = {1};
UINT8 msg[10] = {0}; //UINT8 msg[10] = {0};
SINT16 errorcode = SF_SUCCESS; SINT16 errorcode = SF_SUCCESS;
cJSON_InitHooks(&hooks); cJSON_InitHooks(&hooks);
cJSON *root = cJSON_Parse(buf); cJSON *root = cJSON_Parse(buf);
sprintf((SF_CHAR*)statu,"%s",cJSON_GetObjectItem(root,"statu")->valuestring); sprintf((SF_CHAR*)statu,"%s",cJSON_GetObjectItem(root,"statu")->valuestring);
errorcode = cJSON_GetObjectItem(root,"errCode")->valueSINT32; errorcode = cJSON_GetObjectItem(root,"errCode")->valueSINT32;
printf("statu=%s\n",statu); printf("statu=%s\n",statu);
printf("errCode=%d\n",errorcode); printf("errCode=%d\n",errorcode);
if(!strstr(buf,"null")) if(!strstr(buf,"null"))
{ {
cJSON *content = cJSON_GetObjectItem(root,"content");/**/ cJSON *content = cJSON_GetObjectItem(root,"content");/**/
cJSON *object1 = cJSON_GetArrayItem(content,0); cJSON *object1 = cJSON_GetArrayItem(content,0);
cJSON *object2 = cJSON_GetArrayItem(content,1); cJSON *object2 = cJSON_GetArrayItem(content,1);
eg91_ip_get(object1, webIp, acmIp); eg91_ip_get(object1, webIp, acmIp);
eg91_ip_get(object2, webIp, acmIp); eg91_ip_get(object2, webIp, acmIp);
} }
cJSON_Delete(root); cJSON_Delete(root);
printf("webIp=%s\n",webIp); printf("webIp=%s\n",webIp);
printf("acmIp=%s\n",acmIp); printf("acmIp=%s\n",acmIp);
printf("ret=%d\n",errorcode); printf("ret=%d\n",errorcode);
return errorcode; return errorcode;
} }
UINT32 eg91_parse_server_get_time(UINT8 *buf) UINT32 eg91_parse_server_get_time(UINT8 *buf)
{ {
SF_COMM_CHECK_POINTER(buf,SF_FAILURE); SF_COMM_CHECK_POINTER(buf,SF_FAILURE);
cJSON_Hooks hooks = {malloc, free}; cJSON_Hooks hooks = {malloc, free};
UINT8 statu[10] = {0}; UINT8 statu[10] = {0};
UINT32 errCode = 0; UINT32 errCode = 0;
cJSON_InitHooks(&hooks); cJSON_InitHooks(&hooks);
printf("dest_buf = %s\n", buf); printf("dest_buf = %s\n", buf);
cJSON *root = cJSON_Parse((SF_CHAR*)buf); cJSON *root = cJSON_Parse((SF_CHAR*)buf);
sprintf((SF_CHAR*)statu,"%s",cJSON_GetObjectItem(root,"statu")->valuestring); sprintf((SF_CHAR*)statu,"%s",cJSON_GetObjectItem(root,"statu")->valuestring);
errCode = cJSON_GetObjectItem(root,"errCode")->valueSINT32; errCode = cJSON_GetObjectItem(root,"errCode")->valueSINT32;
printf("statu=%s\n",statu); printf("statu=%s\n",statu);
printf("errCode=%d\n",errCode); printf("errCode=%d\n",errCode);
if(strstr((SF_CHAR*)buf,"null")) if(strstr((SF_CHAR*)buf,"null"))
{ {
} }
else else
{ {
cJSON *content = cJSON_GetObjectItem(root, "content");/**/ cJSON *content = cJSON_GetObjectItem(root, "content");/**/
printf("%s,%d\n", __FUNCTION__, __LINE__); printf("%s,%d\n", __FUNCTION__, __LINE__);
sprintf((SF_CHAR*)buf, "%s", cJSON_GetObjectItem(content,"greenDate")->valuestring); sprintf((SF_CHAR*)buf, "%s", cJSON_GetObjectItem(content,"greenDate")->valuestring);
printf("buf:%s\n", buf); printf("buf:%s\n", buf);
//cJSON_Delete(content); //cJSON_Delete(content);
} }
cJSON_Delete(root); cJSON_Delete(root);
return errCode; return errCode;
} }
SINT32 eg91_http_config(SF_FN_PARAM_S *pfnParam, UINT8 sslOn, UINT8 autoReqHead) SINT32 eg91_http_config(SF_FN_PARAM_S *pfnParam, UINT8 sslOn, UINT8 autoReqHead)
@ -328,24 +328,24 @@ SINT32 eg91_http_config(SF_FN_PARAM_S *pfnParam, UINT8 sslOn, UINT8 autoReqHead)
break; break;
case MODULE_HTTP_CONFIG_AT_QHTTPCFG_1: case MODULE_HTTP_CONFIG_AT_QHTTPCFG_1:
if(strstr(ttyData, "OK")) if(strstr(ttyData, "OK"))
{ {
timeout_count = 0; timeout_count = 0;
sprintf(ttyData, "AT+QHTTPCFG=\"contextid\",%d\r", HTTP_PDP); sprintf(ttyData, "AT+QHTTPCFG=\"contextid\",%d\r", HTTP_PDP);
enATcmdType = MODULE_HTTP_CONFIG_AT_QHTTPCFG_2; enATcmdType = MODULE_HTTP_CONFIG_AT_QHTTPCFG_2;
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData)); ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet); SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
} }
else if(strstr(ttyData, "ERROR")) else if(strstr(ttyData, "ERROR"))
{ {
return SF_4G_ERROR_AT_APN; return SF_4G_ERROR_AT_APN;
} }
break; break;
case MODULE_HTTP_CONFIG_AT_QHTTPCFG_2: case MODULE_HTTP_CONFIG_AT_QHTTPCFG_2:
if(strstr(ttyData, "OK")) if(strstr(ttyData, "OK"))
{ {
if(sslOn) if(sslOn)
enATcmdType = MODULE_HTTP_CONFIG_AT_QHTTPCFG_3; enATcmdType = MODULE_HTTP_CONFIG_AT_QHTTPCFG_3;
else else
enATcmdType = MODULE_HTTP_CONFIG_AT_END; enATcmdType = MODULE_HTTP_CONFIG_AT_END;
@ -470,7 +470,7 @@ SINT32 eg91_http_config(SF_FN_PARAM_S *pfnParam, UINT8 sslOn, UINT8 autoReqHead)
break; break;
case MODULE_HTTP_AUTHEN_AT_QHTTPURL_1: case MODULE_HTTP_AUTHEN_AT_QHTTPURL_1:
if(strstr(ttyData, "OK")) if(strstr(ttyData, "OK"))
{ {
timeout_count = 0; timeout_count = 0;
callTime = 0; callTime = 0;
@ -542,7 +542,7 @@ SINT32 eg91_http_config(SF_FN_PARAM_S *pfnParam, UINT8 sslOn, UINT8 autoReqHead)
callTime++; callTime++;
if(strstr(ttyData, "+QHTTPGET:")) if(strstr(ttyData, "+QHTTPGET:"))
{ {
if(strstr(ttyData, "+QHTTPGET: 0,200")) if(strstr(ttyData, "+QHTTPGET: 0,200"))
{ {
timeout_count= 0; timeout_count= 0;
callTime = 0; callTime = 0;
@ -613,7 +613,7 @@ SINT32 eg91_http_config(SF_FN_PARAM_S *pfnParam, UINT8 sslOn, UINT8 autoReqHead)
} }
if((errorcode == SF_SUCCESS) && (webStr[0] != '\0') && (acmStr[0] != '\0')) if((errorcode == SF_SUCCESS) && (webStr[0] != '\0') && (acmStr[0] != '\0'))
{ {
if(authenrequstCnt < 6) if(authenrequstCnt < 6)
{ {
sprintf(pStaticParam->WebIP, "%s", webStr); sprintf(pStaticParam->WebIP, "%s", webStr);
@ -952,8 +952,8 @@ SINT32 eg91_server_acm_open(SF_FN_PARAM_S *pfnParam)
SF_COMM_CHECK_POINTER(pfnParam->pstaticParam,SF_FAILURE); SF_COMM_CHECK_POINTER(pfnParam->pstaticParam,SF_FAILURE);
SF_COMM_CHECK_POINTER(pfnParam->pfn_AT_instruction_exit,SF_FAILURE); SF_COMM_CHECK_POINTER(pfnParam->pfn_AT_instruction_exit,SF_FAILURE);
SINT16 ttyRet = SF_SUCCESS; SINT32 ttyRet = SF_SUCCESS;
SINT16 ret = SF_SUCCESS; SINT32 ret = SF_SUCCESS;
SINT16 sts = 1; SINT16 sts = 1;
UINT16 timeout_count = 0; UINT16 timeout_count = 0;
UINT16 callTime = 0; UINT16 callTime = 0;

View File

@ -435,8 +435,8 @@ SINT32 eg91_usb_net_apn_cfg(SF_FN_PARAM_S *pfnParam)
SF_COMM_CHECK_POINTER(pfnParam->pfn_AT_instruction_exit, SF_FAILURE); SF_COMM_CHECK_POINTER(pfnParam->pfn_AT_instruction_exit, SF_FAILURE);
UINT16 count = 0; UINT16 count = 0;
SINT16 ret = SF_SUCCESS; SINT32 ret = SF_SUCCESS;
SINT16 ret1 = SF_SUCCESS; SINT32 ret1 = SF_SUCCESS;
//SINT32 fd = 0; //SINT32 fd = 0;
//int retryTime = 0; //int retryTime = 0;
SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 }; SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 };
@ -1320,7 +1320,7 @@ SINT32 eg91_register_net_auto(SF_FN_PARAM_S *pfnParam)
SF_COMM_CHECK_POINTER(pfnParam->pfn_AT_instruction_exit,SF_FAILURE); SF_COMM_CHECK_POINTER(pfnParam->pfn_AT_instruction_exit,SF_FAILURE);
UINT16 count = 0; UINT16 count = 0;
UINT16 callTime = 0; UINT16 callTime = 0;
SINT16 ret = SF_SUCCESS; SINT32 ret = SF_SUCCESS;
SINT32 csq = 0; SINT32 csq = 0;
SF_CHAR *pStr = NULL; SF_CHAR *pStr = NULL;
SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 }; SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 };
@ -1793,7 +1793,7 @@ SINT32 eg91_register_net_manual(SF_FN_PARAM_S *pfnParam)
SF_COMM_CHECK_POINTER(pfnParam->pfn_AT_instruction_exit,SF_FAILURE); SF_COMM_CHECK_POINTER(pfnParam->pfn_AT_instruction_exit,SF_FAILURE);
UINT16 count = 0; UINT16 count = 0;
UINT16 callTime = 0; UINT16 callTime = 0;
SINT16 ret = SF_SUCCESS; SINT32 ret = SF_SUCCESS;
SINT32 csq = 0; SINT32 csq = 0;
SF_CHAR *pStr = NULL; SF_CHAR *pStr = NULL;
SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 }; SF_CHAR ttyData[SF_TTYUSB_RECV_MAX] = { 0 };

View File

@ -55,7 +55,36 @@ extern "C" {
/************************************************************************** /**************************************************************************
* D A T A T Y P E S * * 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 * * G L O B A L D A T A *
**************************************************************************/ **************************************************************************/
@ -1211,6 +1240,913 @@ SINT32 sf_simcom_ftp_send(UINT8 mode)
} }
} }
/*************************************************
Function: sf_module_ota_ftp
Description: 4g module ftp update
Input: N/A
Output: N/A
Return: N/A
Others: N/A
*************************************************/
SINT32 sf_4g_module_ota_ftp(void)
{
SINT32 sts = OTA_NOUPDATE; /*0:updating 1:no update 2:update fail 3:update success*/
#if 0
UINT32 location = OTA_FTP_FRIST;
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};
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 tempStr[20] = {0};
UINT8 baudrateCheckTime = 0;
UINT8 baudrateChangeFlg = 0;
UINT8 pdpInedx = 0;
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
SINT32 ttyRet = 0;
printf("sf_module_ota_ftp s\n");
if(sf_is_enough_power_to_update() == FALSE)
{
return sts;
}
if(SF_STRSTR(puiPara->ModuleVer, EC25V_MODULE_VER))
{
cfgfilename = (UINT8 *)OTA_FTP_CFGFILENAME_EC25V;
updatafilename = (UINT8 *)OTA_FTP_UPDATAFILENAME_EC25V;
}
else if(SF_STRSTR(puiPara->ModuleVer, EC25A_MODULE_VER))
{
cfgfilename = (UINT8 *)OTA_FTP_CFGFILENAME_EC25A;
updatafilename = (UINT8 *)OTA_FTP_UPDATAFILENAME_EC25A;
}
else if(SF_STRSTR(puiPara->ModuleVer, EC25E_MODULE_VER))
{
cfgfilename = (UINT8 *)OTA_FTP_CFGFILENAME_EC25E;
updatafilename = (UINT8 *)OTA_FTP_UPDATAFILENAME_EC25E;
}
else if(SF_STRSTR(puiPara->ModuleVer, EG91V_MODULE_VER))
{
cfgfilename = (UINT8 *)OTA_FTP_CFGFILENAME_EG91V;
updatafilename = (UINT8 *)OTA_FTP_UPDATAFILENAME_EG91V;
}
else if(SF_STRSTR(puiPara->ModuleVer, EG91A_MODULE_VER))
{
cfgfilename = (UINT8 *)OTA_FTP_CFGFILENAME_EG91A;
updatafilename = (UINT8 *)OTA_FTP_UPDATAFILENAME_EG91A;
}
else if(SF_STRSTR(puiPara->ModuleVer, EG91E_MODULE_VER))
{
cfgfilename = (UINT8 *)OTA_FTP_CFGFILENAME_EG91E;
updatafilename = (UINT8 *)OTA_FTP_UPDATAFILENAME_EG91E;
}
else
{
//appBtnEnable(BTN_ALL);
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)
{
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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
}
else
{
sts = OTA_TIME_OUT;
}
printf("update timeout!\n");
}
sf_4g_get_data(gsmPara, 200, 1);
printf("time=%d mmc=%d\n", time, location);
sf_tty_data_printf(gsmPara);
switch(location)
{
case OTA_FTP_FRIST:
SF_SPRINTF(gsmPara, "AT\r");
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_CURVER;
break;
case OTA_FTP_CURVER:
if(SF_STRSTR(gsmPara,"OK"))
{
SF_SPRINTF(gsmPara, "AT+QGMR\r");
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QICSGP;
}
else
{
SF_SPRINTF(gsmPara, "AT\r");
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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->Sim4gUserName,puiPara->Sim4gPassword);
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->Sim4gUserName,puiPara->Sim4gPassword);
location=OTA_FTP_QIACT;
}
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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->Sim4gUserName,puiPara->Sim4gPassword);
}
else
{
SF_SPRINTF(gsmPara, "AT\r");
}
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QIACT;
}
break;
case OTA_FTP_QIACT:
if(SF_STRSTR(gsmPara, "OK"))
{
if((puiPara->GprsMode == 1) && sf_pdp_flg_get())
{
SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"contextid\",%d\r", pdpInedx);
location = OTA_FTP_QFTPCFG2;
}
else
{
SF_SPRINTF(gsmPara, "AT+QIACT=%d\r", pdpInedx);
location = OTA_FTP_QFTPCFG1;
}
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
calltime=0;
}
break;
case OTA_FTP_QFTPCFG1:
if(SF_STRSTR(gsmPara, "OK"))
{
sf_pdp_flg_set(1);
SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"contextid\",%d\r", pdpInedx);
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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);
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
appTimeDelayMs(1800);
}
else
{
location = OTA_FTP_QIDEACT;
calltime=0;
errorCode = SF_OTA_ERROR_QIACT;
sf_error_log((SINT8 *)"[ERROR]OTA_FTP QIACT over try 6 times");
SF_STRCPY(gsmPara, "AT\r");
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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+QFTPNLST=\"%s\",\"COM:\"\r", DFOTA_OTA_DIR);
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QFTPGETCFG;
}
else
{
location = OTA_FTP_QIDEACT;
errorCode = SF_OTA_ERROR_FTP_OPEN;
sf_error_log((SINT8 *)"OTA_FTP Open Failed.");
SF_STRCPY(gsmPara, "AT\r");
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
}
}
else if(SF_STRSTR(gsmPara, "+CME ERROR"))
{
location = OTA_FTP_QIDEACT;
errorCode = SF_OTA_ERROR_FTP_OPEN;
sf_error_log((SINT8 *)"OTA_FTP QFTPOPEN CME ERROR.");
SF_STRCPY(gsmPara, "AT\r");
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QFTPCLOSE;
}
else
{
location = OTA_FTP_QIDEACT;
errorCode = SF_OTA_ERROR_FTP_NLST;
sf_error_log((SINT8 *)"OTA_FTP NO NEED UPDATA FILE.");
SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r");
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
}
}
else if(SF_STRSTR(gsmPara, "+CME ERROR"))
{
location = OTA_FTP_QIDEACT;
errorCode = SF_OTA_ERROR_FTP_NLST;
sf_error_log((SINT8 *)"OTA_FTP QFTPNLST CME ERROR.");
SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r");
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_QIDEACT;
}
else
{
location = OTA_FTP_QIDEACT;
errorCode = SF_OTA_ERROR_FTP_GET;
sf_error_log((SINT8 *)"OTA_FTP GET CFG FILE FAIL.");
SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r");
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
}
}
else if(SF_STRSTR(gsmPara, "+CME ERROR"))
{
location= OTA_FTP_QIDEACT;
errorCode = SF_OTA_ERROR_FTP_GET;
sf_error_log((SINT8 *)"OTA_FTP QFTPGET CME ERROR.");
SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r");
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
}
break;
case OTA_FTP_QIDEACT:
//if(SF_STRSTR(gsmPara, "OK"))
{
calltime = 0;
SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpInedx);
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
sf_pdp_flg_set(0);
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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
appTimeDelayMs(1800);
sf_pdp_flg_set(0);
}
else
{
location = OTA_FTP_END;
calltime=0;
errorCode = SF_OTA_ERROR_FTP_QIDEACT;
sf_error_log((SINT8 *)"[ERROR]OTA_FTP QIDEACT over try 6 times");
SF_STRCPY(gsmPara, "AT\r");
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
location = OTA_FTP_READCFG;
}
else if(SF_STRSTR(gsmPara, "+CME ERROR"))
{
sf_error_log((SINT8 *)"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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
appTimeDelayMs(500);
location = OTA_FTP_CLOSECFG;
}
else if(SF_STRSTR(gsmPara, "+CME ERROR"))
{
location= OTA_FTP_END;
errorCode = SF_OTA_ERROR_FTP_QFSEEK;
sf_error_log((SINT8 *)"OTA_FTP QFSEEK CME ERROR.");
SF_SPRINTF(gsmPara, "AT+QFCLOSE=%s\r", cfgfilehandle);
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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;
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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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);
sf_error_log((SINT8 *)"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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
}
else if(SF_STRSTR(gsmPara, "+CME ERROR"))
{
sf_error_log((SINT8 *)"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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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;
}
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;
}
else if(SF_STRSTR(gsmPara,"\"FTPEND\""))
{
printf("gsmPara:%s\n", gsmPara);
time = 0;
printf("DOWMLOAD ERROR\n");
sf_error_log((SINT8 *)"OTA Download error");
sf_error_log((SINT8 *)gsmPara);
errorCode = SF_OTA_ERROR_FTP_DOWNLOAD;
sts = OTA_DOWNLOAD_ERROR;
}
else
{
time = 0;
calltime++;
printf("calltime:%d\n", calltime);
if(calltime >= 600)
{
sf_error_log((SINT8 *)"OTA Download timeout");
errorCode = SF_OTA_ERROR_FTP_DOWNLOAD;
sts = OTA_TIME_OUT;
}
sf_mcu_wdg_set(5);
appTimeDelayMs(800);
}
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;
#if (SF_4G_UART_NUM != 0)
ros_thread_priority_change((UINT32)UartThrId, 24);
appTimeDelayMs(50);
#endif
printf("sp5kUartInit 115200\n");
sp5kUartInit(SF_4G_UART_NUM, 115200);
printf("sp5kUartInit 115200\n");
#if (SF_4G_UART_NUM != 0)
ros_thread_priority_change((UINT32)UartThrId, 14);
#endif
location = OTA_FTP_UPDATING2;
}
else
{
baudrateCheckTime++;
appTimeDelayMs(800);
}
}
break;
case OTA_FTP_UPDATING2:
if(SF_STRSTR(gsmPara,"\"END\",0"))
{
printf("gsmPara:%s\n", gsmPara);
time = 0;
if(baudrateChangeFlg == 1)
{
#if (SF_4G_UART_NUM != 0)
ros_thread_priority_change((UINT32)UartThrId, 24);
appTimeDelayMs(50);
#endif
printf("sp5kUartInit 460800\n");
sp5kUartInit(SF_4G_UART_NUM, 460800);
printf("sp5kUartInit 460800\n");
#if (SF_4G_UART_NUM != 0)
ros_thread_priority_change((UINT32)UartThrId, 14);
#endif
}
location = OTA_FTP_UPDATAEND;
}
else if(SF_STRSTR(gsmPara,"\"END\""))
{
printf("gsmPara:%s\n", gsmPara);
time = 0;
printf("UPDATED ERROR\n");
sf_error_log((SINT8 *)"OTA update error");
sf_error_log((SINT8 *)gsmPara);
errorCode = SF_OTA_ERROR_FTP_UPDATE;
sts = OTA_UPDATED_ERROR;
if(baudrateChangeFlg == 1)
{
#if (SF_4G_UART_NUM != 0)
ros_thread_priority_change((UINT32)UartThrId, 24);
appTimeDelayMs(50);
#endif
printf("sp5kUartInit 460800\n");
sp5kUartInit(SF_4G_UART_NUM, 460800);
printf("sp5kUartInit 460800\n");
#if (SF_4G_UART_NUM != 0)
ros_thread_priority_change((UINT32)UartThrId, 14);
#endif
}
}
else if(SF_STRSTR(gsmPara,"UPDATING"))
{
printf("gsmPara:%s\n", gsmPara);
if(ConfigureModeFlag)
{
pTemp=SF_STRSTR(gsmPara,"UPDATING");
pTemp = pTemp+10;
pTemp1 = SF_STRTOK(pTemp, "\r");
SF_SPRINTF(tempStr, "Updating %s%%", pTemp1);
appOsdLib_OsdLayerShapeClear(APP_OSD_SHAPE_RECT, 0, 40, 320, 200, 0, 0);
appOsdLib_TextDraw(320/2, 240/2, SP5K_GFX_ALIGN_CENTER, tempStr);
}
time = 0;
calltime = 0;
sf_mcu_wdg_set(5);
appTimeDelayMs(800);
}
else
{
time = 0;
calltime++;
printf("calltime:%d\n", calltime);
if(calltime >= 200)
{
sf_error_log((SINT8 *)"OTA update timeout");
errorCode = SF_OTA_ERROR_FTP_UPDATE;
sts = OTA_UPDATED_ERROR;
if(baudrateChangeFlg == 1)
{
#if (SF_4G_UART_NUM != 0)
ros_thread_priority_change((UINT32)UartThrId, 24);
appTimeDelayMs(50);
#endif
printf("sp5kUartInit 460800\n");
sp5kUartInit(SF_4G_UART_NUM, 460800);
printf("sp5kUartInit 460800\n");
#if (SF_4G_UART_NUM != 0)
ros_thread_priority_change((UINT32)UartThrId, 14);
#endif
}
}
appTimeDelayMs(800);
}
break;
case OTA_FTP_UPDATAEND:
if(SF_STRSTR(gsmPara,"RDY"))
{
appTimeDelayMs(300);
printf("UPDATE END\n");
SF_SPRINTF(gsmPara, "AT+QGMR\r");
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, 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
{
appTimeDelayMs(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_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
}
break;
case OTA_FTP_END:
SF_STRCPY(gsmPara, "AT\r");
ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara));
SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE);
sts = OTA_FAIL;
break;
}
}
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->ModuleQGver,"S%sY%sY%sY%sS",str1,str2,str3,str4);
}
else
{
SF_SPRINTF(puiPara->ModuleQGver,"S%sY%sY%sS",str1,str2,str3);
}
printf("puiPara->ModuleQGver = %s\n",puiPara->ModuleQGver);
}
}
printf("Module OTA Update sts:%d errorCode:%d\n", sts, errorCode);
if(errorCode)
{
SF_SPRINTF(errMsg, "%x,", errorCode);
sf_log_error_code(errMsg);
}
printf("sf_module_ota_ftp e\n");
#endif
return sts;
}
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -17,9 +17,9 @@ extern "C" {
#include "sf_eg91_sim.h" #include "sf_eg91_sim.h"
#include "sf_eg91_gps.h" #include "sf_eg91_gps.h"
#include "sf_eg91_server.h" #include "sf_eg91_server.h"
#ifndef CFG_TRANSDATA_AT //#ifndef CFG_TRANSDATA_AT
#include "sf_http_server.h" #include "sf_http_server.h"
#endif //#endif
#endif #endif
extern pthread_mutex_t GPIO_mutexLock; extern pthread_mutex_t GPIO_mutexLock;

File diff suppressed because it is too large Load Diff

View File

@ -51,10 +51,10 @@
#include "sf_keymng.h" #include "sf_keymng.h"
#include "sf_wifi_svr.h" #include "sf_wifi_svr.h"
#include <libavcodec/avcodec.h> //#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h> //#include <libavformat/avformat.h>
#include <libavutil/imgutils.h> //#include <libavutil/imgutils.h>
#include <libswscale/swscale.h> //#include <libswscale/swscale.h>
extern pthread_mutex_t Param_mutexLock; extern pthread_mutex_t Param_mutexLock;

View File

@ -659,15 +659,6 @@ static SINT32 sf_app_proccess_cmd_poweroff(SF_MESSAGE_BUF_S *pMessageBuf)
} }
static void app_proccess_cmd_led(SF_MESSAGE_BUF_S *pMessageBuf)
{
MLOGI("[%d,%s],[%d,%s],[%d,%s]\n", pMessageBuf->arg1,sf_led_status_getstatusstring(pMessageBuf->arg1),
pMessageBuf->arg2,sf_led_group_getstatusstring(pMessageBuf->arg2),
pMessageBuf->arg3,sf_led_type_getstatusstring(pMessageBuf->arg3));
if(sf_poweron_type_get() == SF_MCU_STARTUP_NORMAL || sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY)
sf_led_event_process(pMessageBuf->arg1,pMessageBuf->arg2,pMessageBuf->arg3);
}
static SINT32 sf_app_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf) static SINT32 sf_app_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf)
{ {
MLOGI("ID = %#x\n",pMessageBuf->arg1); MLOGI("ID = %#x\n",pMessageBuf->arg1);
@ -816,7 +807,6 @@ void* app_message_recv_thread(void *arg)
break; break;
case CMD_LED: case CMD_LED:
sf_sys_status_led_set(stMessagebuf.arg1); sf_sys_status_led_set(stMessagebuf.arg1);
//app_proccess_cmd_led(&stMessagebuf);
break; break;
case CMD_FILE: case CMD_FILE:
sf_app_proccess_cmd_file(&stMessagebuf); sf_app_proccess_cmd_file(&stMessagebuf);

View File

@ -26,7 +26,10 @@
#include "sf_module.h" #include "sf_module.h"
#include "sf_debug.h" #include "sf_debug.h"
#include "sf_dbg.h" #include "sf_dbg.h"
#include "sf_device.h"
#include "sf_systemMng.h"
#include "sf_storeMng.h"
#include "sf_service.h"
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
extern "C" { extern "C" {
@ -539,7 +542,7 @@ SINT32 app_debug_worktime(SINT32 argc, SF_CHAR **argv[])
return SF_FAILURE; return SF_FAILURE;
} }
if(mValue == 1) { if(mValue == 0) {
if(nValue) { if(nValue) {
SINT8 oValue = atoi((SF_CHAR*)argv[3]); SINT8 oValue = atoi((SF_CHAR*)argv[3]);
@ -578,7 +581,7 @@ SINT32 app_debug_worktime(SINT32 argc, SF_CHAR **argv[])
} }
else if(mValue == 2) { else if(mValue == 1) {
if(nValue) { if(nValue) {
SINT8 oValue = atoi((SF_CHAR*)argv[3]); SINT8 oValue = atoi((SF_CHAR*)argv[3]);
@ -895,7 +898,7 @@ SINT32 app_debug_debugmode(SINT32 argc, SF_CHAR **argv[])
SINT32 app_debug_help(SINT32 argc, SF_CHAR **argv[]) SINT32 app_debug_help(SINT32 argc, SF_CHAR **argv[])
{ {
SINT8 i= 0; UINT8 i= 0;
for(i = 0;i<(sizeof(stDebugCmdTable)/sizeof(stDebugCmdTable[0]));i++ ) for(i = 0;i<(sizeof(stDebugCmdTable)/sizeof(stDebugCmdTable[0]));i++ )
{ {
printf("%s\n",stDebugCmdTable[i].cmdStr); printf("%s\n",stDebugCmdTable[i].cmdStr);
@ -1094,7 +1097,7 @@ SINT32 app_debug_process(SINT32 argc, SF_CHAR **argv[])
break; break;
case 7: case 7:
{ {
SINT32 s32ret = SF_SUCCESS; //SINT32 s32ret = SF_SUCCESS;
SF_CHAR *stringtmp = 0; SF_CHAR *stringtmp = 0;
SF_CHAR tmp[64] = {0}; SF_CHAR tmp[64] = {0};
SF_CHAR cmd[512] = {0}; SF_CHAR cmd[512] = {0};

View File

@ -68,7 +68,7 @@ static char* usb_host_drivers[] = {
NULL NULL
}; };
void* pir_monitoring_thread(void) void* pir_monitoring_thread(void *arg)
{ {
SF_MESSAGE_BUF_S stMessageBuf = {0}; SF_MESSAGE_BUF_S stMessageBuf = {0};

View File

@ -48,7 +48,7 @@
#include "sf_commu_mcu_reg.h" #include "sf_commu_mcu_reg.h"
#include "sf_file.h" #include "sf_file.h"
#include "sf_commMng.h" #include "sf_commMng.h"
#include "sf_sms.h"
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
@ -76,21 +76,45 @@ UINT32 FtpOpenOk = FAIL;
SINT32 app_ttyusb_IsOpen(void) SINT32 app_ttyusb_IsOpen(void)
{ {
int retryTime = 0; int retryTime = 0;
int retryFlag = 0;
SINT32 s32ret = 0; SINT32 s32ret = 0;
MLOGD("ttyUSB has not been init, will init ttyUSB!\n"); MLOGD("ttyUSB has not been init, will init ttyUSB!\n");
while ((s32ret = sf_hal_ttyusb2_init()) < 0) while ((s32ret = sf_hal_ttyusb2_init()) < 0)
{ {
retryTime++; retryTime++;
if((retryTime >=200)&&(retryTime%200 == 0)) if((0 == retryFlag) && (retryTime >=100) && (retryTime%100 == 0))//200ms*100 = 20s
{ {
MLOGE("-------ttyUSB init fail!\n"); MLOGE("-------ttyUSB init fail, clos usb mux.\n");
sf_usb_mux_s(0);
sleep(5);
sf_usb_mux_s(1);
retryFlag = 1;
}
else if((1 == retryFlag) && (retryTime >=50) && (retryTime%50 == 0))//200ms*25 = 5s
{
MLOGE("-------ttyUSB retry init fail!\n");
s32ret = SF_TTY_ERROR_OPEN; s32ret = SF_TTY_ERROR_OPEN;
break; break;
} }
} }
return s32ret; return s32ret;
} }
SINT32 sf_ttyusb_restart(void)
{
SINT32 ret = 0;
ret = sf_hal_ttyusb2_deinit();
if(ret != 0)
{
MLOGE("-------ttyUSB deinit fail!\n");
}
else
{
ret = app_ttyusb_IsOpen();
}
return ret;
}
SF_BOOL app_disconnect_4g_module(void) SF_BOOL app_disconnect_4g_module(void)
{ {
if((sf_usb_IsInsert()) || (sf_poweroff_type_get())) if((sf_usb_IsInsert()) || (sf_poweroff_type_get()))
@ -397,7 +421,7 @@ SINT32 app_server_querystatus(SF_CMD_TYPE_E enCmdType,SF_FN_PARAM_S *pfnParam,SF
return s16Ret; return s16Ret;
} }
static SINT16 app_server_Iskeepconnect(SF_FN_PARAM_S *pfnParam,UINT8 GprsMode) SINT16 app_server_Iskeepconnect(SF_FN_PARAM_S *pfnParam,UINT8 GprsMode)
{ {
SINT16 s32ret = SF_SUCCESS; SINT16 s32ret = SF_SUCCESS;
if(GprsMode < 10) if(GprsMode < 10)
@ -420,7 +444,7 @@ static SINT16 app_server_Iskeepconnect(SF_FN_PARAM_S *pfnParam,UINT8 GprsMode)
} }
static SINT32 sf_file_sub_send(SF_FN_PARAM_S *pfnParam, SF_REPORT_FILE_ATTR_S *pReportFileAttr ) static SINT32 sf_file_sub_send(SF_FN_PARAM_S *pfnParam, SF_REPORT_FILE_ATTR_S *pReportFileAttr )
{ {
SINT16 ret = 0; SINT32 ret = 0;
//UINT8 tryModuleReboot = 0; //UINT8 tryModuleReboot = 0;
SF_FILE_ATTR_S stfileAttr = { 0 }; SF_FILE_ATTR_S stfileAttr = { 0 };
UINT8 sendFileTotal = 0; UINT8 sendFileTotal = 0;
@ -597,7 +621,7 @@ static SINT32 app_file_subscrible_execute(SF_FN_PARAM_S *pfnParam)
return s32ret; return s32ret;
} }
static SINT32 app_server_excute_cmd(SF_FN_PARAM_S *pfnParam) SINT32 app_server_excute_cmd(SF_FN_PARAM_S *pfnParam)
{ {
SINT32 ret = SF_SUCCESS; SINT32 ret = SF_SUCCESS;
SF_PDT_PARAM_CFG_S *pParam = (SF_PDT_PARAM_CFG_S*)pfnParam->pstParam; SF_PDT_PARAM_CFG_S *pParam = (SF_PDT_PARAM_CFG_S*)pfnParam->pstParam;
@ -677,7 +701,7 @@ static SINT32 app_server_excute_cmd(SF_FN_PARAM_S *pfnParam)
return ret; return ret;
} }
static SINT32 app_realtime_resetlimited(SF_PDT_PARAM_STATISTICS_S *pstaticparam,UINT8 GprsMode) SINT32 app_realtime_resetlimited(SF_PDT_PARAM_STATISTICS_S *pstaticparam,UINT8 GprsMode)
{ {
SINT16 s32ret = SF_SUCCESS; SINT16 s32ret = SF_SUCCESS;
if(sf_poweron_type_get() == SF_MCU_STARTUP_RESET) if(sf_poweron_type_get() == SF_MCU_STARTUP_RESET)
@ -687,7 +711,7 @@ static SINT32 app_realtime_resetlimited(SF_PDT_PARAM_STATISTICS_S *pstaticparam,
return s32ret; return s32ret;
} }
static SINT16 app_http_IsAuthenrequst(SF_FN_PARAM_S *pfnParam) SINT16 app_http_IsAuthenrequst(SF_FN_PARAM_S *pfnParam)
{ {
SINT16 s32ret = SF_SUCCESS; SINT16 s32ret = SF_SUCCESS;
SF_CHAR tempIccic[22] = { 0 }; SF_CHAR tempIccic[22] = { 0 };
@ -769,7 +793,7 @@ SINT32 app_file_send_check( SF_PDT_PARAM_STATISTICS_S *pstaticparam)
} }
static SINT16 sf_thumb_file_creat(void) SINT16 sf_thumb_file_creat(void)
{ {
SF_CHAR sysCmd[256] = { 0 }; SF_CHAR sysCmd[256] = { 0 };
@ -803,9 +827,9 @@ static SINT16 sf_thumb_file_creat(void)
} }
SINT16 app_file_upload(SF_FILE_ATTR_S *pstFileAttr, SF_FN_PARAM_S *pfnParam) SINT32 app_file_upload(SF_FILE_ATTR_S *pstFileAttr, SF_FN_PARAM_S *pfnParam)
{ {
SINT16 s32ret = SF_FAILURE; SINT32 s32ret = SF_FAILURE;
SINT32 fileSize = 0; SINT32 fileSize = 0;
SF_PDT_PARAM_STATISTICS_S *sfParam = pfnParam->pstaticParam; SF_PDT_PARAM_STATISTICS_S *sfParam = pfnParam->pstaticParam;
@ -839,10 +863,10 @@ SINT16 app_file_upload(SF_FILE_ATTR_S *pstFileAttr, SF_FN_PARAM_S *pfnParam)
return s32ret; return s32ret;
} }
static SINT16 app_file_thumbsend(SF_FN_PARAM_S *pfnParam) SINT32 app_file_thumbsend(SF_FN_PARAM_S *pfnParam)
{ {
SINT16 fileIndex = 0; SINT16 fileIndex = 0;
SINT16 s32ret = SF_SUCCESS; SINT32 s32ret = SF_SUCCESS;
SINT16 startMode = 0; SINT16 startMode = 0;
SF_SRCFILE_ATTR_S* pfileCfg = sf_file_thumb_cfg_get(); SF_SRCFILE_ATTR_S* pfileCfg = sf_file_thumb_cfg_get();
@ -978,7 +1002,7 @@ exception_handling:
return s32ret; return s32ret;
} }
static SINT16 app_file_transfer_Error_return_server(SF_FN_PARAM_S *pfnParam) SINT16 app_file_transfer_Error_return_server(SF_FN_PARAM_S *pfnParam)
{ {
SINT32 s32ret = 0; SINT32 s32ret = 0;
SF_MESSAGE_BUF_S stMessageBuf = {0}; SF_MESSAGE_BUF_S stMessageBuf = {0};
@ -1053,12 +1077,9 @@ static SINT32 app_file_transfer(SF_FN_PARAM_S *pfnParam)
s32ret = sf_simcom_ftp_send(1); s32ret = sf_simcom_ftp_send(1);
} }
/* break;
stMessageBuf.cmdId = CMD_KEY; case SF_MCU_STARTUP_BATCH_SEND:
stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK;
stMessageBuf.arg2 = SF_KEY_PIN_AOTU_MODE_POWOFF;//auto mode powoff
sf_com_message_send_to_cardv(&stMessageBuf);
*/
break; break;
#if 0 #if 0
case SF_MCU_STARTUP_NORMAL: case SF_MCU_STARTUP_NORMAL:
@ -1087,9 +1108,7 @@ static SINT32 app_file_transfer(SF_FN_PARAM_S *pfnParam)
case SF_MCU_STARTUP_USB: case SF_MCU_STARTUP_USB:
case SF_MCU_STARTUP_RESET: case SF_MCU_STARTUP_RESET:
case SF_MCU_STARTUP_BATCH_SEND:
break;
#endif #endif
case SF_MCU_STARTUP_SYN_PARAM: case SF_MCU_STARTUP_SYN_PARAM:
if(pCustomerParam->GpsSendFlag){ if(pCustomerParam->GpsSendFlag){
@ -1113,7 +1132,7 @@ SINT32 app_FileSend_thread(void)
stpfncallback.pstParam = sf_customer_param_get(); stpfncallback.pstParam = sf_customer_param_get();
stpfncallback.pstaticParam = sf_app_ui_para_get(); stpfncallback.pstaticParam = sf_app_ui_para_get();
//stpfncallback.pstaticParam = sf_statistics_param_get(); //stpfncallback.pstaticParam = sf_statistics_param_get();
stpfncallback.pfn_AT_instruction_exit = app_disconnect_4g_module; stpfncallback.pfn_AT_instruction_exit = (void *)app_disconnect_4g_module;
pthread_detach(pthread_self()); pthread_detach(pthread_self());
@ -1154,13 +1173,7 @@ static SINT32 app_Register_Net_Error_return_setup(SF_FN_PARAM_S *pfnParam,SINT32
app_led_net_reg_stop(s32ret); app_led_net_reg_stop(s32ret);
}else{ }else{
sf_power_off();
SF_MESSAGE_BUF_S stMessageBuf = {0};
MLOGI(" SF_KEY_PIN_AOTU_MODE_POWOFF\n");
stMessageBuf.cmdId = CMD_KEY;
stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK;
stMessageBuf.arg2 = SF_KEY_PIN_AOTU_MODE_POWOFF;//auto mode powoff
sf_com_message_send_to_cardv(&stMessageBuf);
RegisterNetTskParam.IsRun = 0; RegisterNetTskParam.IsRun = 0;
} }
//pStaticParam->u8ResetLimited = 0; //pStaticParam->u8ResetLimited = 0;
@ -1171,26 +1184,9 @@ static SINT32 app_Register_Net_Error_return_setup(SF_FN_PARAM_S *pfnParam,SINT32
} }
static SINT32 app_Register_Net_Error_return_init(SF_FN_PARAM_S *pfnParam) static SINT32 app_Register_Net_Error_return_init(SF_FN_PARAM_S *pfnParam)
{ {
//SF_PDT_PARAM_CFG_S *pCustomerParam =pfnParam->pstParam;
//SF_PDT_PARAM_STATISTICS_S *pStaticParam = pfnParam->pstaticParam;
SF_MESSAGE_BUF_S stMessageBuf = {0};
if(sf_poweron_type_get() != SF_MCU_STARTUP_ONKEY) if(sf_poweron_type_get() != SF_MCU_STARTUP_ONKEY)
{ {
/*if(pCustomerParam->GprsMode == 1) { sf_power_off();
app_realtime_resetlimited(pStaticParam, pCustomerParam->GprsMode);
stMessageBuf.arg1 = (pStaticParam->u8ResetLimited < 3 )?SF_POWEROFF_SYNC_PARAM:SF_POWEROFF_NOT;
}
else {
stMessageBuf.arg1 = SF_POWEROFF_NOT;
}
stMessageBuf.cmdId = CMD_POWEROFF;
sf_com_message_send_to_app(&stMessageBuf);*/
MLOGI(" SF_KEY_PIN_AOTU_MODE_POWOFF CMD_KEY\n");
stMessageBuf.cmdId = CMD_KEY;
stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK;
stMessageBuf.arg2 = SF_KEY_PIN_AOTU_MODE_POWOFF;//auto mode powoff
sf_com_message_send_to_cardv(&stMessageBuf);
} }
RegisterNetTskParam.IsRun = 0; RegisterNetTskParam.IsRun = 0;
@ -1200,10 +1196,6 @@ static SINT32 app_Register_Net_Error_return_init(SF_FN_PARAM_S *pfnParam)
static SINT32 app_Register_Net_Error_return_server(SF_FN_PARAM_S *pfnParam,SINT32 s32ret) static SINT32 app_Register_Net_Error_return_server(SF_FN_PARAM_S *pfnParam,SINT32 s32ret)
{ {
//SF_PDT_PARAM_CFG_S *pCustomerParam = pfnParam->pstParam;
//SF_PDT_PARAM_STATISTICS_S *pStaticParam = pfnParam->pstaticParam;
SF_MESSAGE_BUF_S stMessageBuf = {0};
//s32ret |= sf_4G_server_close(pfnParam);
SLOGE("s32ret:%#x\n", s32ret); SLOGE("s32ret:%#x\n", s32ret);
//SLOGD("bind flag:%x\n", pStaticParam->bindFlag); //SLOGD("bind flag:%x\n", pStaticParam->bindFlag);
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY) if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY)
@ -1218,17 +1210,7 @@ static SINT32 app_Register_Net_Error_return_server(SF_FN_PARAM_S *pfnParam,SINT3
} }
else else
{ {
sf_power_off();
/*app_realtime_resetlimited(pStaticParam, pCustomerParam->GprsMode);
stMessageBuf.arg1 = (pStaticParam->u8ResetLimited < 3 )?SF_POWEROFF_SYNC_PARAM:SF_POWEROFF_NOT;
stMessageBuf.cmdId = CMD_POWEROFF;
sf_com_message_send_to_app(&stMessageBuf);*/
MLOGI(" SF_KEY_PIN_AOTU_MODE_POWOFF CMD_KEY\n");
stMessageBuf.cmdId = CMD_KEY;
stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK;
stMessageBuf.arg2 = SF_KEY_PIN_AOTU_MODE_POWOFF;//auto mode powoff
sf_com_message_send_to_cardv(&stMessageBuf);
} }
RegisterNetTskParam.IsRun = 0; RegisterNetTskParam.IsRun = 0;
@ -1307,70 +1289,30 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam)
case SF_MCU_STARTUP_NORMAL: case SF_MCU_STARTUP_NORMAL:
break; break;
case SF_MCU_STARTUP_RING:/* case SF_MCU_STARTUP_RING:
#ifdef SF_HARDWARE_TEST
app_system_poweroff(SF_POWEROFF_NOT);
break;
#endif
s32ret = sf_4G_sim_IsInsert(); s32ret = sf_4G_sim_IsInsert();
if(!s32ret) if(!s32ret) {
{
timeCnt = 0;
while((sf_sd_status_get() == SF_SD_BUTT) && (timeCnt < 5))
{
usleep(1000*1000);
timeCnt++;
}
SF_APPCOMM_CHECK_RETURN(SF_FAILURE,SF_APP_ERROR_REQUEST); SF_APPCOMM_CHECK_RETURN(SF_FAILURE,SF_APP_ERROR_REQUEST);
} }
s32ret = app_ttyusb_IsOpen(); s32ret = app_ttyusb_IsOpen();
SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST); SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST);
#if SF_QLOG_ENABLE #if SF_QLOG_ENABLE
if(pCustomerParam->DebugMode == 1) if(pCustomerParam->QLogSwitch == 1)
app_Qlog_procress(); app_Qlog_procress();
#endif #endif
s32ret = sf_4G_sim_init(pfnParam); s32ret = sf_4G_sim_init(pfnParam);
SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST); SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST);
s32ret = sf_4G_register_net_auto(pfnParam); s32ret = sf_4G_register_net_auto(pfnParam);
sf_share_mem_customer_down(1);
SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST); SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST);
sf_4G_usb_net_apn_cfg(pfnParam);
sf_USB_net_init();
s32ret = sf_4G_server_open(pfnParam);
if(s32ret == SF_SUCCESS) {
s32ret = app_server_querystatus(SF_CMD_LOGIN_IN, pfnParam, SF_NULL);
s32ret = sf_4G_server_close(pfnParam);
}
LOGIN_ACM_RESPONSE_S* PLoginReponse = sf_get_login_reponse(); s32ret = sf_read_message();
if(PLoginReponse->getPic == 1) SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST);
{
stMessageBuf.cmdId = CMD_KEY;
stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK;
stMessageBuf.arg2 = SF_KEY_PIN_SYNC;
sf_com_message_send_to_app(&stMessageBuf);
}
else
{
s32ret = app_server_excute_cmd(pfnParam);
s32ret = sf_4G_acm_tcp_server_open(pfnParam);
SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_NO_SUPPOET);
s32ret = app_server_Iskeepconnect(pfnParam,pCustomerParam->GprsMode);
SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_NO_SUPPOET);
stMessageBuf.arg1 = SF_POWEROFF_NOT;
stMessageBuf.cmdId = CMD_POWEROFF;
sf_com_message_send_to_app(&stMessageBuf);
}
*/
break; break;
case SF_MCU_STARTUP_TIMELAPSE: case SF_MCU_STARTUP_TIMELAPSE:
@ -1426,7 +1368,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam)
SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST); SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST);
#if SF_QLOG_ENABLE #if SF_QLOG_ENABLE
if(pCustomerParam->DebugMode == 1) if(pCustomerParam->QLogSwitch == 1)
app_Qlog_procress(); app_Qlog_procress();
#endif #endif
s32ret = sf_4G_sim_init(pfnParam); s32ret = sf_4G_sim_init(pfnParam);
@ -1465,7 +1407,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam)
s32ret = app_ttyusb_IsOpen(); s32ret = app_ttyusb_IsOpen();
SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST); SF_APPCOMM_CHECK_RETURN(s32ret,SF_APP_ERROR_REQUEST);
#if SF_QLOG_ENABLE #if SF_QLOG_ENABLE
if(pCustomerParam->DebugMode == 1) if(pCustomerParam->QLogSwitch == 1)
app_Qlog_procress(); app_Qlog_procress();
#endif #endif
@ -1524,7 +1466,7 @@ void app_Register_Net_thread(void)
stpfncallback.pstParam = sf_customer_param_get(); stpfncallback.pstParam = sf_customer_param_get();
stpfncallback.pstaticParam = sf_app_ui_para_get(); stpfncallback.pstaticParam = sf_app_ui_para_get();
//stpfncallback.pstaticParam = sf_statistics_param_get(); //stpfncallback.pstaticParam = sf_statistics_param_get();
stpfncallback.pfn_AT_instruction_exit = app_disconnect_4g_module; stpfncallback.pfn_AT_instruction_exit = (void *)app_disconnect_4g_module;
pthread_detach(pthread_self()); pthread_detach(pthread_self());
s32ret = app_Register_Net_startup_mode(&stpfncallback); s32ret = app_Register_Net_startup_mode(&stpfncallback);

View File

@ -32,7 +32,7 @@
#include "sf_system.h" #include "sf_system.h"
#include "sf_device.h" #include "sf_device.h"
#include "sf_sms.h"
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
extern "C" { extern "C" {
@ -593,6 +593,7 @@ static void * usb_mode_Task(void * argv)
} }
sleep(1); sleep(1);
} }
return NULL;
} }
SINT32 app_usb_mode_start(void) SINT32 app_usb_mode_start(void)
{ {
@ -613,7 +614,7 @@ SINT32 app_usb_mode_start(void)
} }
SINT32 app_usb_mode_stop() SINT32 app_usb_mode_stop(void)
{ {
UINT16 ret = 0; UINT16 ret = 0;
@ -658,7 +659,7 @@ SINT32 app_system_time_update(unsigned int rtosBootTime)
return SF_SUCCESS; return SF_SUCCESS;
} }
SINT32 app_system_param_update() SINT32 app_system_param_update(void)
{ {
SF_RTOSINFO_S stRtosData = {0}; SF_RTOSINFO_S stRtosData = {0};
sf_sys_rtosdata_get(&stRtosData); sf_sys_rtosdata_get(&stRtosData);
@ -870,6 +871,39 @@ UINT8 *sf_versionGet(UINT8 ver[],UINT8 fea[])
} }
/*************************************************
Function: sf_power_off
Description: power off
Input: N/A
Output: N/A
Return: N/A
Others: N/A
*************************************************/
void sf_power_off(void)
{
SF_MESSAGE_BUF_S stMessageBuf = {0};
UINT8 PowerOnMode = sf_poweron_type_get();
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
SF_PDT_PARAM_STATISTICS_S *psfPara = sf_statistics_param_get();
if((PowerOnMode == PWR_ON_TIMELAPSE) || (PowerOnMode == PWR_ON_PIR))
{
psfPara->TirgNum++;
printf("TirgNum=%d\n", psfPara->TirgNum);
}
sf_power_off_check_sms();
sf_power_off_module_ota();
MLOGI(" SF_KEY_PIN_AOTU_MODE_POWOFF CMD_KEY\n");
stMessageBuf.cmdId = CMD_KEY;
stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK;
stMessageBuf.arg2 = SF_KEY_PIN_AOTU_MODE_POWOFF;//auto mode powoff
sf_com_message_send_to_cardv(&stMessageBuf);
}
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -386,7 +386,7 @@ void* sf_led_thread(void *arg)
{ {
if(isUsbIn) if(isUsbIn)
{ {
if((i == SF_LED_BUSY)/* || (i == SF_LED_STATUS_G)*/) if((SF_LED_BUSY == i)/* || (i == SF_LED_STATUS_G)*/)
{ {
sf_led_on(LedInfo[i].ledId); sf_led_on(LedInfo[i].ledId);
} }

View File

@ -1020,9 +1020,9 @@ UINT32 sf_create_dailyreport_file(void)
"Battery:%d%%\r\n" "Battery:%d%%\r\n"
"SD:%s\r\n" "SD:%s\r\n"
"ICCID:%s\r\n" "ICCID:%s\r\n"
"Trigger:%d\r\n" "Trigger:%ld\r\n"
"Total Pics:%d\r\n" "Total Pics:%ld\r\n"
"Total Pics Sent:%d\r\n", \ "Total Pics Sent:%ld\r\n", \
pPara->ModuleImei, \ pPara->ModuleImei, \
csqlevel, \ csqlevel, \
pPara->NetGeneration, \ pPara->NetGeneration, \
@ -1060,13 +1060,13 @@ UINT32 sf_create_dailyreport_file(void)
sprintf(str, "Lithium"); sprintf(str, "Lithium");
} }
sprintf((char *)szTmp1, "Total Pics Success:%d\r\n" sprintf((char *)szTmp1, "Total Pics Success:%ld\r\n"
"Total Pics Failed:%d\r\n" "Total Pics Failed:%ld\r\n"
"Total Pics Timeout:%d\r\n" "Total Pics Timeout:%ld\r\n"
"Total Transmission Time:%d\r\n" "Total Transmission Time:%ld\r\n"
"Thumbnail Transmission Time:%d\r\n" "Thumbnail Transmission Time:%ld\r\n"
"Thumbnail Pics Sent:%d\r\n" "Thumbnail Pics Sent:%ld\r\n"
"Thumbnail Pics Failed:%d\r\n", \ "Thumbnail Pics Failed:%ld\r\n", \
pSifarPara->picSendSucessCount + (pSifarPara->videoSendCount - pSifarPara->videoSendFailCount), \ pSifarPara->picSendSucessCount + (pSifarPara->videoSendCount - pSifarPara->videoSendFailCount), \
pSifarPara->picSendFailCount + pSifarPara->videoSendFailCount, \ pSifarPara->picSendFailCount + pSifarPara->videoSendFailCount, \
pSifarPara->picSendTimeoutCount, \ pSifarPara->picSendTimeoutCount, \
@ -1075,12 +1075,12 @@ UINT32 sf_create_dailyreport_file(void)
pSifarPara->sendThumbnailCount, \ pSifarPara->sendThumbnailCount, \
pSifarPara->sendThumbnailFailCount); pSifarPara->sendThumbnailFailCount);
sprintf((char *)szTmp2, "HD Transmission Time:%d\r\n" sprintf((char *)szTmp2, "HD Transmission Time:%ld\r\n"
"HD Pics Sent:%d\r\n" "HD Pics Sent:%ld\r\n"
"HD Pics Failed:%d\r\n" "HD Pics Failed:%ld\r\n"
"Video Transmission Time:%d\r\n" "Video Transmission Time:%ld\r\n"
"Video Sent:%d\r\n" "Video Sent:%ld\r\n"
"Video Faild:%d\r\n" "Video Faild:%ld\r\n"
"Ver:%s\r\n" "Ver:%s\r\n"
"FW Ver:%s\r\n" "FW Ver:%s\r\n"
"Mod:%s\r\n" "Mod:%s\r\n"
@ -1254,6 +1254,26 @@ UINT32 sf_create_dailyreport_file(void)
return ret; return ret;
} }
/*************************************************
Function: sf_is_enough_power_to_update
Description: whether or not enough power to update
Input: N/A
Output: N/A
Return: TRUE/FALSE
Others: N/A
*************************************************/
BOOL sf_is_enough_power_to_update(void)
{
if(sf_app_get_battery() < 40)
{
printf("low battery, no update\n");
return FALSE;
}
return TRUE;
}
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -518,7 +518,7 @@ SINT32 sf_file_http_header_add(SF_FILE_ATTR_S *pstFileAttr, SF_PDT_PARAM_STATIST
return s32Ret; return s32Ret;
} }
SINT16 sf_file_subscribe_check(SF_FILE_ATTR_S *pstfileAttr, SF_SEND_FILE_ATTR_S* pSendFileAttr) SINT32 sf_file_subscribe_check(SF_FILE_ATTR_S *pstfileAttr, SF_SEND_FILE_ATTR_S* pSendFileAttr)
{ {
UINT16 dirKey = 0; UINT16 dirKey = 0;
UINT16 fileKey = 0; UINT16 fileKey = 0;
@ -526,7 +526,7 @@ SINT16 sf_file_subscribe_check(SF_FILE_ATTR_S *pstfileAttr, SF_SEND_FILE_ATTR_S*
UINT16 videoDirKey = 0; UINT16 videoDirKey = 0;
UINT16 videoFileKey = 0; UINT16 videoFileKey = 0;
*/ */
SINT16 ret = 0; SINT32 ret = 0;
SF_CHAR tempStr[6] = {0}; SF_CHAR tempStr[6] = {0};
SF_CHAR fileName[16] = {0}; SF_CHAR fileName[16] = {0};
SF_CHAR filePath[128] = {0}; SF_CHAR filePath[128] = {0};
@ -687,22 +687,23 @@ BOOL sf_check_auto_thumb_file(VOID)
snprintf(tmp, sizeof(tmp), "%s", SF_THUMB_SEND_LIST); snprintf(tmp, sizeof(tmp), "%s", SF_THUMB_SEND_LIST);
} }
sf_get_send_file_list(&SendFileList[0][0], &SendFileTotal); if(SUCCESS == sf_get_send_file_list(&SendFileList[0][0], &SendFileTotal)){
if (fileCfg) {
if (fileCfg) { ret = TRUE;
ret = TRUE; for(fileIndex = 0; fileIndex < SendFileTotal; fileIndex++)
for(fileIndex = 0; fileIndex < SendFileTotal; fileIndex++) {
{ if(SF_CAM_MODE_PHOTO_VIDEO == (SendFileList[fileIndex][0] - '0')){
if(SF_CAM_MODE_PHOTO_VIDEO == (SendFileList[fileIndex][0] - '0')){ fileCfg->stfileattr[fileIndex].enFileTye = SF_FILE_TYPE_PIC_VIDEO;
fileCfg->stfileattr[fileIndex].enFileTye = SF_FILE_TYPE_PIC_VIDEO; }else if(SF_CAM_MODE_PHOTO == (SendFileList[fileIndex][0] - '0')){
}else if(SF_CAM_MODE_PHOTO == (SendFileList[fileIndex][0] - '0')){ fileCfg->stfileattr[fileIndex].enFileTye = SF_FILE_TYPE_PIC_SMALL;
fileCfg->stfileattr[fileIndex].enFileTye = SF_FILE_TYPE_PIC_SMALL; }
snprintf(fileCfg->stfileattr[fileIndex].thumbfileName, sizeof(fileCfg->stfileattr[fileIndex].thumbfileName), "%s", &SendFileList[fileIndex][1]);
snprintf(fileCfg->stfileattr[fileIndex].thumbfilePath, sizeof(fileCfg->stfileattr[fileIndex].thumbfilePath), "%s%s", SF_SEND_LIST_DIR, &SendFileList[fileIndex][1]);
printf("%s:%d thumbfileSize:%d thumbfileName:%s thumbfilePath:%s\n", __FUNCTION__, __LINE__,fileCfg->stfileattr[fileIndex].thumbfileSize,fileCfg->stfileattr[fileIndex].thumbfileName,fileCfg->stfileattr[fileIndex].thumbfilePath);
} }
snprintf(fileCfg->stfileattr[fileIndex].thumbfileName, sizeof(fileCfg->stfileattr[fileIndex].thumbfileName), "%s", &SendFileList[fileIndex][1]);
snprintf(fileCfg->stfileattr[fileIndex].thumbfilePath, sizeof(fileCfg->stfileattr[fileIndex].thumbfilePath), "%s%s", SF_SEND_LIST_DIR, &SendFileList[fileIndex][1]);
printf("%s:%d thumbfileSize:%d thumbfileName:%s thumbfilePath:%s\n", __FUNCTION__, __LINE__,fileCfg->stfileattr[fileIndex].thumbfileSize,fileCfg->stfileattr[fileIndex].thumbfileName,fileCfg->stfileattr[fileIndex].thumbfilePath);
} }
} }
if(0 == puiPara->SendType){ if(0 == puiPara->SendType){
sf_file_remove(tmp); sf_file_remove(tmp);
} }

View File

@ -105,7 +105,7 @@ SINT32 sf_sd_info_get(SF_STORE_ATTR_S *pstoreattrs)
} }
SINT32 sf_sd_isfull(SINT8 *Isfull) SINT32 sf_sd_isfull(SINT8 *Isfull)
{ {
SF_STORE_ATTR_S storeattrs = {0}; SF_STORE_ATTR_S storeattrs = {0};
sf_sd_info_get(&storeattrs); sf_sd_info_get(&storeattrs);
if(storeattrs.SDStatus != 0) if(storeattrs.SDStatus != 0)
@ -117,7 +117,7 @@ SINT32 sf_sd_isfull(SINT8 *Isfull)
SINT32 sf_sd_remove_file(const char *path,SINT32 threshold) SINT32 sf_sd_remove_file(const char *path,SINT32 threshold)
{ {
SF_COMM_CHECK_POINTER(path,SF_FAILURE); SF_COMM_CHECK_POINTER(path,SF_FAILURE);
if(SF_SUCCESS != sd_file_Isexsit(path)) { if(SF_SUCCESS != sd_file_Isexsit((char *)path)) {
MLOGD("%s is empty!!!\n",path); MLOGD("%s is empty!!!\n",path);
return SF_SUCCESS; return SF_SUCCESS;
} }
@ -368,16 +368,16 @@ SINT32 sf_sd_loopremove(const char *path)
SF_SD_STATUS_E sf_sd_status_get(void) SF_SD_STATUS_E sf_sd_status_get(void)
{ {
MLOGI("SdStatus:%d\n", SdStatus); MLOGI("SdStatus:%d\n", SdStatus);
return SdStatus; return SdStatus;
} }
SINT32 sf_sd_status_set(SF_SD_STATUS_E enStatus) SINT32 sf_sd_status_set(SF_SD_STATUS_E enStatus)
{ {
SF_STORE_CHECK_RANGE(enStatus ,SF_SD_OUT, SF_SD_BUTT); SF_STORE_CHECK_RANGE(enStatus ,SF_SD_OUT, SF_SD_BUTT);
SdStatus = enStatus; SdStatus = enStatus;
MLOGI("SdStatus:%d\n", SdStatus); MLOGI("SdStatus:%d\n", SdStatus);
return SF_SUCCESS; return SF_SUCCESS;
} }

View File

@ -65,6 +65,8 @@ static UINT8 SIMPINPUK = 1;
static UINT8 cq_Signal = 0; static UINT8 cq_Signal = 0;
static UINT8 drNoResetTimeSync = SF_FALSE; //0:reset; 1:no reset; static UINT8 drNoResetTimeSync = SF_FALSE; //0:reset; 1:no reset;
static UINT8 SetMcuRtcFlag = 0; static UINT8 SetMcuRtcFlag = 0;
static UINT8 ModuleUpdating = 0;
static UINT8 FwUpdate = 0;
UINT8 sf_mcu_read(UINT32 reg, UINT8 *data) UINT8 sf_mcu_read(UINT32 reg, UINT8 *data)
{ {
@ -1128,7 +1130,7 @@ void sf_set_module_sleep_flag(UINT8 flag)
int sf_app_while_flag(void) int sf_app_while_flag(void)
{ {
if((!sf_usb_IsInsert()) && (sf_get_power_off_flag() != 1) if((!sf_usb_IsInsert()) && (sf_get_power_off_flag() != 1)
/*&& (ModuleUpdating != 1) && (sf_get_fw_update() == 0)*/) && (sf_get_module_update() != 1) && (sf_get_fw_update() == 0))
{ {
return 1; return 1;
} }
@ -1142,6 +1144,11 @@ void sf_set_sim_insert(UINT32 sim)
simCardInsert = sim; simCardInsert = sim;
} }
UINT32 sf_get_sim_insert(void)
{
return simCardInsert;
}
void sf_set_cq_signal(UINT8 csq) void sf_set_cq_signal(UINT8 csq)
{ {
UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
@ -1319,6 +1326,34 @@ void sf_set_mcu_rtc_flag(UINT8 value)
SetMcuRtcFlag = value; SetMcuRtcFlag = value;
} }
void sf_set_sms_number(UINT32 num)
{
if(num == 1)
{
SmsCheck = num;
}
}
UINT8 sf_get_module_update(void)
{
return ModuleUpdating;
}
void sf_set_module_update(UINT8 flag)
{
ModuleUpdating = flag;
}
UINT8 sf_get_fw_update(void)
{
return FwUpdate;
}
void sf_set_fw_update(UINT8 flag)
{
FwUpdate = flag;
}
#ifdef __cplusplus #ifdef __cplusplus
#if __cplusplus #if __cplusplus
} }

View File

@ -57,7 +57,7 @@ static SINT32 hal_ttyusb_open(SF_CHAR* deviceName)
static SINT32 hal_ttyusb_config(SINT32 fd, SF_SERIAL_DATA_FRAME_TYPE_S *pSerialAttr) static SINT32 hal_ttyusb_config(SINT32 fd, SF_SERIAL_DATA_FRAME_TYPE_S *pSerialAttr)
{ {
SINT32 i; UINT32 i;
SINT32 speed_arr[] = {B115200, B460800}; SINT32 speed_arr[] = {B115200, B460800};
SINT32 name_arr[] = {115200, 460800}; SINT32 name_arr[] = {115200, 460800};
struct termios options; struct termios options;
@ -297,7 +297,7 @@ static SINT32 hal_ttyusb_create(SF_CHAR *ttyusbName,SF_SERIAL_DATA_FRAME_TYPE_S
if(SF_FAILURE < (*pttyfd = hal_ttyusb_open(ttyusbName))) if(SF_FAILURE < (*pttyfd = hal_ttyusb_open(ttyusbName)))
break; break;
i++; i++;
usleep(100000); usleep(100000);//100ms
} }
if(*pttyfd <= 0) if(*pttyfd <= 0)
@ -336,7 +336,7 @@ SINT32 sf_hal_ttyusb2_init(void)
if(TtyUSB2Fd > 0) if(TtyUSB2Fd > 0)
{ {
MLOGE("[/dev/ttyUSB2] has already inited !!!\n"); MLOGE("[/dev/ttyUSB2] has already inited !!!\n");
return SF_FAILURE; return SF_SUCCESS;
} }
SF_SERIAL_DATA_FRAME_TYPE_S stserialtype = {0}; SF_SERIAL_DATA_FRAME_TYPE_S stserialtype = {0};
@ -362,13 +362,16 @@ SINT32 sf_hal_ttyusb2_read(SF_CHAR *recvBuf, SINT32 dataLen)
} }
SINT32 sf_hal_ttyusb2_deinit(void) SINT32 sf_hal_ttyusb2_deinit(void)
{ {
SINT32 ret = 0;
if(TtyUSB2Fd < 0) if(TtyUSB2Fd < 0)
{ {
MLOGE("[/dev/ttyUSB2] has already deinited !!!\n"); MLOGE("[/dev/ttyUSB2] has already deinited !!!\n");
return SF_FAILURE; return SF_FAILURE;
} }
ret = hal_ttyusb_destory(TtyUSB2Fd);
return hal_ttyusb_destory(TtyUSB2Fd); TtyUSB2Fd = -1;
return ret;
} }
SINT32 sf_hal_uart_init(void) SINT32 sf_hal_uart_init(void)
{ {

View File

@ -7,7 +7,7 @@
version-info = [00 01 00 01]; version-info = [00 01 00 01];
ae_expect_lum { ae_expect_lum {
size = [b0 00 00 00]; size = [b0 00 00 00];
data = [3c 00 00 00 3c 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 27 00 00 00 2c 00 00 00 32 00 00 00 3a 00 00 00 44 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00]; data = [3c 00 00 00 3c 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 44 00 00 00 44 00 00 00 44 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00];
}; };
ae_la_clamp { ae_la_clamp {
size = [50 01 00 00]; size = [50 01 00 00];

View File

@ -35,7 +35,7 @@
}; };
awb_expand_block { awb_expand_block {
size = [90 00 00 00]; size = [90 00 00 00];
data = [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 10 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 f5 00 00 00 f5 00 00 00 f5 00 00 00 f5 00 00 00 69 00 00 00 69 00 00 00 5b 00 00 00 72 00 00 00 78 00 00 00 7a 00 00 00 69 00 00 00 80 00 00 00 05 00 00 00 38 00 00 00 12 00 00 00 20 00 00 00 19 00 00 00 4a 00 00 00 20 00 00 00 cb ff ff ff]; data = [02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 14 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 f5 00 00 00 f5 00 00 00 f5 00 00 00 f5 00 00 00 6e 00 00 00 69 00 00 00 5b 00 00 00 72 00 00 00 82 00 00 00 7a 00 00 00 69 00 00 00 80 00 00 00 c8 ff ff ff 38 00 00 00 12 00 00 00 20 00 00 00 f6 ff ff ff 4a 00 00 00 20 00 00 00 cb ff ff ff];
}; };
awb_luma_weight { awb_luma_weight {
size = [44 00 00 00]; size = [44 00 00 00];

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -383,21 +383,6 @@ typedef enum {
APP_POWER_OFF_APO, APP_POWER_OFF_APO,
} appUiPowerOff_e; } appUiPowerOff_e;
typedef struct sfCAMERA_CMD_S
{
UINT8 setPara;
UINT8 moduleUpdateOTA;
UINT8 moduleUpdateSD;
UINT8 firmwareUpdateOTA;
UINT8 getLog;
UINT8 takePhotoAndSend;
UINT8 sendHD;
UINT8 sendVideo;
UINT8 formatSD;
UINT8 cameraReset;
UINT8 cameraRestart;
UINT8 GotoServerGetPara;
} SF_CAMERA_CMD_S;
void sf_mcu_dataready_ck(UINT8 startMode); void sf_mcu_dataready_ck(UINT8 startMode);
void sf_mcu_dataready_get(void); void sf_mcu_dataready_get(void);
UINT8 sf_mcu_reg_set(MCUParam_t attrId, UINT8 val); UINT8 sf_mcu_reg_set(MCUParam_t attrId, UINT8 val);
@ -409,8 +394,6 @@ extern BOOL GxUSB_GetIsUSBPlug(void);
UINT8 sf_mcu_write_multi(UINT8 reg[], UINT8 data[], UINT32 num); UINT8 sf_mcu_write_multi(UINT8 reg[], UINT8 data[], UINT32 num);
BOOL sf_get_mode_flag(void); BOOL sf_get_mode_flag(void);
BOOL sf_is_usb_flag(void); BOOL sf_is_usb_flag(void);
void sf_cmd_camera_restart(UINT8 cameraRestart);
UINT8 sf_get_camera_restart(void);
void sf_calculate_daily_report(UINT8*dailyHour, UINT8*dailyMin); void sf_calculate_daily_report(UINT8*dailyHour, UINT8*dailyMin);
void sf_set_power_off_flag(UINT8 flag); void sf_set_power_off_flag(UINT8 flag);
UINT8 sf_get_power_off_flag(void); UINT8 sf_get_power_off_flag(void);

View File

@ -1172,7 +1172,7 @@ UINT32 sf_set_pir_sensitivity(UINT8 pirs)
puiPara->DigitPirSensitivity = digPirLevel[pirs]; puiPara->DigitPirSensitivity = digPirLevel[pirs];
puiPara->DigitPirCnt = digPirCount[pirs]; puiPara->DigitPirCnt = digPirCount[pirs];
puiPara->DigitPirWindowTime = 0; puiPara->DigitPirWindowTime = 0;
#if 0//SF_IQ_TEST == DISABLE #if SF_IQ_TEST == DISABLE
if(puiPara->PirSensitivity) if(puiPara->PirSensitivity)
{ {
puiPara->TimelapseSwitch = SF_OFF; puiPara->TimelapseSwitch = SF_OFF;

View File

@ -204,7 +204,7 @@ THREAD_RETTYPE sf_led_thread(void *arg)
{ {
if(isUsbIn) if(isUsbIn)
{ {
if((i == SF_LED_BUSY)/* || (i == SF_LED_STATUS_G)*/) if((SF_LED_BUSY == i)/* || (i == SF_LED_STATUS_G)*/)
{ {
sf_led_on(LedInfo[i].ledId); sf_led_on(LedInfo[i].ledId);
} }
@ -262,8 +262,7 @@ THREAD_RETTYPE sf_led_thread(void *arg)
LedInfo[i].times = 0; LedInfo[i].times = 0;
} }
LedInfo[i].times++; LedInfo[i].times++;
} }else if(LedInfo[i].ledstate == SF_LED_STATE_FLASHING)
else if(LedInfo[i].ledstate == SF_LED_STATE_FLASHING)
{ {
if(LedInfo[i].times == 0) if(LedInfo[i].times == 0)
{ {

View File

@ -61,7 +61,6 @@ static UINT8 AeNightMode = 0; /* 0:day 1:night */
static UINT32 simCardInsert=0; static UINT32 simCardInsert=0;
static UINT8 gModuleSleep = 1; static UINT8 gModuleSleep = 1;
UINT32 SmsCheck = 0; UINT32 SmsCheck = 0;
static SF_CAMERA_CMD_S CameraCmd = {0};
static UINT8 McuProductInfo = 0; static UINT8 McuProductInfo = 0;
#if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_) #if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_)
@ -729,7 +728,7 @@ BOOL sf_is_night_mode(BOOL isRefresh)
nightMode = FALSE; nightMode = FALSE;
} }
} }
printf("[%s:%d]nightMode=%d\n",__FUNCTION__,__LINE__,nightMode); //printf("[%s:%d]nightMode=%d\n",__FUNCTION__,__LINE__,nightMode);
return nightMode; return nightMode;
} }
@ -1888,20 +1887,9 @@ BOOL sf_is_usb_flag(void)
return GxUSB_GetIsUSBPlug(); return GxUSB_GetIsUSBPlug();
} }
void sf_cmd_camera_restart(UINT8 cameraRestart)
{
CameraCmd.cameraRestart = cameraRestart;
printf("[%s:%d] e cameraRestart:%d\n",__FUNCTION__,__LINE__,CameraCmd.cameraRestart);
}
UINT8 sf_get_camera_restart(void)
{
printf("[%s:%d] s cameraRestart:%d\n",__FUNCTION__,__LINE__,CameraCmd.cameraRestart);
return CameraCmd.cameraRestart;
}
void sf_calculate_daily_report(UINT8*dailyHour, UINT8*dailyMin) void sf_calculate_daily_report(UINT8*dailyHour, UINT8*dailyMin)
{ {
#if 0
UIMenuStoreInfo *puiPara = sf_ui_para_get(); UIMenuStoreInfo *puiPara = sf_ui_para_get();
UINT16 daily_sum_min = 0; UINT16 daily_sum_min = 0;
UINT16 timelapse_sum_min = 0; UINT16 timelapse_sum_min = 0;
@ -2005,6 +1993,7 @@ void sf_calculate_daily_report(UINT8*dailyHour, UINT8*dailyMin)
} }
printf("%s:%d Calculated:dailyHour:%d,dailyMin:%d\n", __FUNCTION__, __LINE__,*dailyHour,*dailyMin); printf("%s:%d Calculated:dailyHour:%d,dailyMin:%d\n", __FUNCTION__, __LINE__,*dailyHour,*dailyMin);
#endif
} }

View File

@ -952,11 +952,11 @@
#define MOVIE_AI_DEMO DISABLE #define MOVIE_AI_DEMO DISABLE
#define HUNTING_MCU_I2C DISABLE #define HUNTING_MCU_I2C DISABLE
#define HUNTING_MCU_UART ENABLE #define HUNTING_MCU_UART ENABLE
#define HUNTING_IR_LED_940 ENABLE #define HUNTING_IR_LED_940 DISABLE
#define SF_EXIF_MN_BUF_SIZE 256 #define SF_EXIF_MN_BUF_SIZE 256
#define SF_BASE_VERSION "7MD4RCwD6T2" #define SF_BASE_VERSION "7MD4RCwD6T2"
#define SF_TRIGGER_TIME_TEST DISABLE #define SF_TRIGGER_TIME_TEST DISABLE
#define SF_IQ_TEST DISABLE #define SF_IQ_TEST ENABLE
#define HUNTING_PHOTO_FAST_AE_60_FPS ENABLE #define HUNTING_PHOTO_FAST_AE_60_FPS ENABLE
#define HW_S530 1 #define HW_S530 1

View File

@ -637,7 +637,7 @@ static void MovieFast_OnRecStart(void)
MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 2); MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 2);
MovieFast_SetRRC(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 1, 1, 1); MovieFast_SetRRC(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 1, 1, 1);
}*/ }*/
MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 4); MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 2);
MovieFast_SetRRC(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 1, 1, 1); MovieFast_SetRRC(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 1, 1, 1);
#else #else
MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 4); MovieFast_SetAq(ImageApp_MovieMulti_GetVdoEncPort(gMovie_Clone_Info[i].rec_id), 4);

View File

@ -1071,7 +1071,7 @@ void SysResetFlag(void)
//ImgSize //ImgSize
puiPara->NightMode = DEFAULT_NIGHT_MODE; puiPara->NightMode = DEFAULT_NIGHT_MODE;
puiPara->Multishot = DEFAULT_CONTINUE_SHOT; puiPara->Multishot = DEFAULT_CONTINUE_SHOT;
puiPara->VideoSize = DEFAULT_MOVIE_SIZE;
//Multishot //Multishot
//VideoSize //VideoSize
//VideoTimeMenu //VideoTimeMenu

View File

@ -521,6 +521,11 @@ typedef struct _UIMenuUIMenuStoreInfo {
UINT8 FtpsPort[5]; UINT8 FtpsPort[5];
UINT8 FtpsUsr[40]; UINT8 FtpsUsr[40];
UINT8 FtpsPwd[20]; UINT8 FtpsPwd[20];
UINT8 OtaFtpIp[40];
UINT8 OtaFtpPort[5];
UINT8 OtaFtpUserName[40];
UINT8 OtaFtpPassWord[40];
UINT8 WifiSwitch; UINT8 WifiSwitch;
UINT8 WifiMode; UINT8 WifiMode;

View File

@ -7,7 +7,7 @@
version-info = [00 01 00 01]; version-info = [00 01 00 01];
ae_expect_lum { ae_expect_lum {
size = [b0 00 00 00]; size = [b0 00 00 00];
data = [3c 00 00 00 3c 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 26 00 00 00 27 00 00 00 2c 00 00 00 32 00 00 00 3a 00 00 00 44 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00]; data = [3c 00 00 00 3c 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 3a 00 00 00 44 00 00 00 44 00 00 00 44 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 50 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 32 00 00 00 3c 00 00 00 46 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00 5a 00 00 00];
}; };
ae_la_clamp { ae_la_clamp {
size = [50 01 00 00]; size = [50 01 00 00];

View File

@ -35,7 +35,7 @@
}; };
awb_expand_block { awb_expand_block {
size = [90 00 00 00]; size = [90 00 00 00];
data = [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 10 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 f5 00 00 00 f5 00 00 00 f5 00 00 00 f5 00 00 00 69 00 00 00 69 00 00 00 5b 00 00 00 72 00 00 00 78 00 00 00 7a 00 00 00 69 00 00 00 80 00 00 00 05 00 00 00 38 00 00 00 12 00 00 00 20 00 00 00 19 00 00 00 4a 00 00 00 20 00 00 00 cb ff ff ff]; data = [02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 06 00 00 00 06 00 00 00 06 00 00 00 14 00 00 00 0a 00 00 00 0a 00 00 00 0a 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 05 00 00 00 f5 00 00 00 f5 00 00 00 f5 00 00 00 f5 00 00 00 6e 00 00 00 69 00 00 00 5b 00 00 00 72 00 00 00 82 00 00 00 7a 00 00 00 69 00 00 00 80 00 00 00 c8 ff ff ff 38 00 00 00 12 00 00 00 20 00 00 00 f6 ff ff ff 4a 00 00 00 20 00 00 00 cb ff ff ff];
}; };
awb_luma_weight { awb_luma_weight {
size = [44 00 00 00]; size = [44 00 00 00];

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.