1.4G业务;2.rtos增加电池检查;3.优化参数检测;4.调整3启动处理流程;5.调整mcu读写,增加一次重试;6.修复wifi设置图片尺寸;7.修复Linux下ir cut切换;8.调整off到on的设置;9同步p+V优化;10.修改led关机时马上关闭;11.修改loader强制升级
This commit is contained in:
parent
8c1c8dcfd4
commit
ef5710db19
|
@ -195,7 +195,7 @@ static int nvt_handle_fw_abin(void)
|
|||
printf("modelext init fail\n");
|
||||
}
|
||||
} else{
|
||||
printf("%sUpdate successfully %s\r\n", ANSI_COLOR_YELLOW, ANSI_COLOR_RESET);
|
||||
printf("%s%s:%d Update successfully %s\r\n", ANSI_COLOR_YELLOW, __FUNCTION__, __LINE__, ANSI_COLOR_RESET);
|
||||
}
|
||||
/*
|
||||
* To handle bootargs expanding for the kernel /proc/cmdline and uboot mtdids env setting
|
||||
|
|
|
@ -177,7 +177,7 @@ static int nvt_handle_fw_abin(void)
|
|||
printf("modelext init fail\n");
|
||||
}
|
||||
} else{
|
||||
printf("%sUpdate successfully %s\r\n", ANSI_COLOR_YELLOW, ANSI_COLOR_RESET);
|
||||
printf("%s%s:%d Update successfully %s\r\n", ANSI_COLOR_YELLOW, __FUNCTION__, __LINE__, ANSI_COLOR_RESET);
|
||||
}
|
||||
/*
|
||||
* To handle bootargs expanding for the kernel /proc/cmdline and uboot mtdids env setting
|
||||
|
|
|
@ -157,7 +157,7 @@ static int nvt_handle_fw_abin(void)
|
|||
printf("modelext init fail\n");
|
||||
}
|
||||
} else{
|
||||
printf("%sUpdate successfully %s\r\n", ANSI_COLOR_YELLOW, ANSI_COLOR_RESET);
|
||||
printf("%s%s:%d Update successfully %s\r\n", ANSI_COLOR_YELLOW, __FUNCTION__, __LINE__, ANSI_COLOR_RESET);
|
||||
}
|
||||
/*
|
||||
* To handle bootargs expanding for the kernel /proc/cmdline and uboot mtdids env setting
|
||||
|
|
|
@ -182,7 +182,7 @@ static int nvt_handle_fw_abin(void)
|
|||
printf("modelext init fail\n");
|
||||
}
|
||||
} else {
|
||||
printf("%sUpdate successfully %s\r\n", ANSI_COLOR_YELLOW, ANSI_COLOR_RESET);
|
||||
printf("%s%s:%d Update successfully %s\r\n", ANSI_COLOR_YELLOW, __FUNCTION__, __LINE__, ANSI_COLOR_RESET);
|
||||
}
|
||||
/*
|
||||
* To handle bootargs expanding for the kernel /proc/cmdline and uboot mtdids env setting
|
||||
|
|
|
@ -160,7 +160,7 @@ static int nvt_handle_fw_abin(void)
|
|||
printf("modelext init fail\n");
|
||||
}
|
||||
} else{
|
||||
printf("%sUpdate successfully %s\r\n", ANSI_COLOR_YELLOW, ANSI_COLOR_RESET);
|
||||
printf("%s%s:%d Update successfully %s\r\n", ANSI_COLOR_YELLOW, __FUNCTION__, __LINE__, ANSI_COLOR_RESET);
|
||||
ota_upgrade_sts = 1;
|
||||
}
|
||||
/*
|
||||
|
@ -401,6 +401,21 @@ static int nvt_norflash_init(void)
|
|||
return ret;
|
||||
}
|
||||
#endif /* CONFIG_NVT_LINUX_EMMC_BOOT */
|
||||
#if 0
|
||||
static int sf_fw_update_reset(void)
|
||||
{
|
||||
int ret = 0;
|
||||
char command[128] = {0};
|
||||
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||
sprintf(command, "reset");
|
||||
ret = run_command(command, 0);
|
||||
if (ret < 0) {
|
||||
nvt_dbg(ERR, "sf reset failed\n");
|
||||
}
|
||||
printf("[%s:%d] %s\n", __FUNCTION__, __LINE__,command);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
/**
|
||||
* @brief misc_init_r - To do nvt update and board init.
|
||||
*
|
||||
|
@ -465,7 +480,7 @@ int misc_init_r(void)
|
|||
}
|
||||
|
||||
nvt_dbg(FUNC, "boot time: %lu(us) \n", get_nvt_timer0_cnt());
|
||||
|
||||
//sf_fw_update_reset();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -225,7 +225,7 @@ static int nvt_handle_fw_abin(void)
|
|||
printf("modelext init fail\n");
|
||||
}
|
||||
} else{
|
||||
printf("%sUpdate successfully %s\r\n", ANSI_COLOR_YELLOW, ANSI_COLOR_RESET);
|
||||
printf("%s%s:%d Update successfully %s\r\n", ANSI_COLOR_YELLOW, __FUNCTION__, __LINE__, ANSI_COLOR_RESET);
|
||||
}
|
||||
/*
|
||||
* To handle bootargs expanding for the kernel /proc/cmdline and uboot mtdids env setting
|
||||
|
|
|
@ -177,7 +177,7 @@ static int nvt_handle_fw_abin(void)
|
|||
printf("modelext init fail\n");
|
||||
}
|
||||
} else{
|
||||
printf("%sUpdate successfully %s\r\n", ANSI_COLOR_YELLOW, ANSI_COLOR_RESET);
|
||||
printf("%s%s:%d Update successfully %s\r\n", ANSI_COLOR_YELLOW, __FUNCTION__, __LINE__, ANSI_COLOR_RESET);
|
||||
}
|
||||
/*
|
||||
* To handle bootargs expanding for the kernel /proc/cmdline and uboot mtdids env setting
|
||||
|
|
|
@ -225,7 +225,7 @@ static int nvt_handle_fw_abin(void)
|
|||
printf("modelext init fail\n");
|
||||
}
|
||||
} else{
|
||||
printf("%sUpdate successfully %s\r\n", ANSI_COLOR_YELLOW, ANSI_COLOR_RESET);
|
||||
printf("%s%s:%d Update successfully %s\r\n", ANSI_COLOR_YELLOW, __FUNCTION__, __LINE__, ANSI_COLOR_RESET);
|
||||
}
|
||||
/*
|
||||
* To handle bootargs expanding for the kernel /proc/cmdline and uboot mtdids env setting
|
||||
|
|
|
@ -177,7 +177,7 @@ static int nvt_handle_fw_abin(void)
|
|||
printf("modelext init fail\n");
|
||||
}
|
||||
} else{
|
||||
printf("%sUpdate successfully %s\r\n", ANSI_COLOR_YELLOW, ANSI_COLOR_RESET);
|
||||
printf("%s%s:%d Update successfully %s\r\n", ANSI_COLOR_YELLOW, __FUNCTION__, __LINE__, ANSI_COLOR_RESET);
|
||||
}
|
||||
/*
|
||||
* To handle bootargs expanding for the kernel /proc/cmdline and uboot mtdids env setting
|
||||
|
|
|
@ -225,7 +225,7 @@ static int nvt_handle_fw_abin(void)
|
|||
printf("modelext init fail\n");
|
||||
}
|
||||
} else{
|
||||
printf("%sUpdate successfully %s\r\n", ANSI_COLOR_YELLOW, ANSI_COLOR_RESET);
|
||||
printf("%s%s:%d Update successfully %s\r\n", ANSI_COLOR_YELLOW, __FUNCTION__, __LINE__, ANSI_COLOR_RESET);
|
||||
}
|
||||
/*
|
||||
* To handle bootargs expanding for the kernel /proc/cmdline and uboot mtdids env setting
|
||||
|
|
|
@ -177,7 +177,7 @@ static int nvt_handle_fw_abin(void)
|
|||
printf("modelext init fail\n");
|
||||
}
|
||||
} else{
|
||||
printf("%sUpdate successfully %s\r\n", ANSI_COLOR_YELLOW, ANSI_COLOR_RESET);
|
||||
printf("%s%s:%d Update successfully %s\r\n", ANSI_COLOR_YELLOW, __FUNCTION__, __LINE__, ANSI_COLOR_RESET);
|
||||
}
|
||||
/*
|
||||
* To handle bootargs expanding for the kernel /proc/cmdline and uboot mtdids env setting
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
#define PWM_LED_ERASE 50
|
||||
#define PWM_LED_PROGRAM 5
|
||||
#else
|
||||
#define NVT_LED_PIN P_GPIO(10)
|
||||
#define NVT_LED_PIN DSI_GPIO(9)
|
||||
#define NVT_LED_ERASE_DURATION 30
|
||||
#define NVT_LED_PROGRAM_DURATION 10
|
||||
#endif
|
||||
|
|
32
code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxInput_Key.c
Executable file → Normal file
32
code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxInput_Key.c
Executable file → Normal file
|
@ -144,6 +144,12 @@ void DrvKey_Init(void)
|
|||
@param void
|
||||
@return UINT32
|
||||
*/
|
||||
static UINT32 KeyTestPressCnt = 0;
|
||||
static BOOL KeyPress_Long = FALSE;
|
||||
static UINT32 SendKeyCnt = 0;
|
||||
#define LongKey_Cnt (40)// times
|
||||
#define SendKey_LessCnt (6 + 1)///(6 + 1)//6 :vaild times
|
||||
|
||||
UINT32 DrvKey_DetNormalKey(void)
|
||||
{
|
||||
UINT32 uiKeyCode = 0;
|
||||
|
@ -200,7 +206,33 @@ UINT32 DrvKey_DetNormalKey(void)
|
|||
// }
|
||||
|
||||
if (!gpio_getPin(GPIO_KEY_TEST)) {
|
||||
//uiKeyCode |= FLGKEY_SHUTTER2;
|
||||
KeyTestPressCnt++;
|
||||
if(KeyTestPressCnt > LongKey_Cnt) //long press
|
||||
{
|
||||
KeyPress_Long = TRUE;
|
||||
uiKeyCode |= FLGKEY_CUSTOM1;
|
||||
}
|
||||
}else{
|
||||
if(KeyTestPressCnt){
|
||||
if(KeyPress_Long){
|
||||
if(++SendKeyCnt < SendKey_LessCnt){ //long key
|
||||
uiKeyCode |= FLGKEY_CUSTOM1;
|
||||
}else{
|
||||
SendKeyCnt = 0;
|
||||
KeyTestPressCnt = 0;
|
||||
KeyPress_Long = FALSE;
|
||||
}
|
||||
}else{
|
||||
if(++SendKeyCnt < SendKey_LessCnt){ //shot key
|
||||
uiKeyCode |= FLGKEY_SHUTTER2;
|
||||
}else{
|
||||
SendKeyCnt = 0;
|
||||
KeyTestPressCnt = 0;
|
||||
KeyPress_Long = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
/*
|
||||
|
|
|
@ -319,8 +319,8 @@ INT32 GPIO_SetBacklightStatus(BOOL en)
|
|||
return gpio_getPin(GPIO_LCD_BLG_PCTL);
|
||||
}
|
||||
|
||||
void GOIO_Turn_Onoff_IRCUT(UINT8 onoff)
|
||||
{
|
||||
void GOIO_Turn_Onoff_IRCUT(UINT8 onoff)
|
||||
{
|
||||
static UINT32 ir_flag = 1;
|
||||
//printf("[%s:%d]s onoff:%d\n",__FUNCTION__,__LINE__,onoff);
|
||||
DBG_IND(" s onoff:%d\n",onoff);
|
||||
|
@ -356,7 +356,7 @@ void GOIO_Turn_Onoff_IRCUT(UINT8 onoff)
|
|||
//gpio_clearPin(GPIO_IRCUT_MEN2);
|
||||
//printf("[%s:%d]e\n",__FUNCTION__,__LINE__);
|
||||
DBG_IND(" e\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void GPIO_IRLed_Turn_Onoff(BOOL onoff)
|
||||
|
|
|
@ -461,11 +461,11 @@
|
|||
// EXIF Config
|
||||
#define USE_EXIF DISABLE
|
||||
// End string must be '\0', total char must be 31
|
||||
#define EXIF_MAKER_NAME "DvCam"
|
||||
#define EXIF_MAKER_NAME "SY"
|
||||
// End string must be '\0', total char must be 31
|
||||
#define EXIF_MODEL_NAME "96675"
|
||||
#define EXIF_MODEL_NAME "S530-R"
|
||||
// End string must be '\0', total char must be 31
|
||||
#define EXIF_IMAGE_DESCROPTOIN "NOVATEK CAMERA"
|
||||
#define EXIF_IMAGE_DESCROPTOIN "S530 CAMERA"
|
||||
|
||||
#define EXIF_SOFTWARE_VERSION FW_VERSION_NUM // <= 20 char (TagSoftVerLen)
|
||||
|
||||
|
@ -918,7 +918,7 @@
|
|||
#define HUNTING_MCU_I2C DISABLE
|
||||
#define HUNTING_MCU_UART ENABLE
|
||||
#define HUNTING_IR_LED_940 ENABLE
|
||||
#define SF_BASE_VERSION "7MD4RCwD6T2"
|
||||
#define SF_BASE_VERSION "7MD4RCwD6T4"
|
||||
#define HW_S530 1
|
||||
#define DCF_DIR_NAME "MEDIA" /* 100MEDIA */
|
||||
#define DCF_FILE_NAME "SYFW" /* SYFW0001.JPG */
|
||||
|
@ -928,6 +928,14 @@
|
|||
#define SF_SEND_LIST_DIR "/mnt/sd/THUMB/"
|
||||
#define SF_THUMB_SEND_LIST SF_SEND_LIST_DIR"send.list"
|
||||
#define SF_THUMB_SEND_AUTO SF_SEND_LIST_DIR"auto.list"
|
||||
#define SF_HD_DIR_LIST SF_SEND_LIST_DIR"HD/send.list"
|
||||
#define SF_HD_DIR SF_SEND_LIST_DIR"HD"
|
||||
#define SF_HD_DIR_CARDV "A:\\THUMB\\HD\\"
|
||||
|
||||
#define SF_FW_CFG_FILE_NAME "SPHOST_REVEAL.CFG"
|
||||
#define SF_FW_FILE_NAME "SPHOST_REVEAL.BRN"
|
||||
#define SF_FW_CFG_FILE_PATH "A:\\SPHOST_REVEAL.CFG"
|
||||
#define SF_FW_FILE_PATH "A:\\SPHOST_REVEAL.BRN"
|
||||
|
||||
#define SF_IQ_TEST DISABLE
|
||||
|
||||
|
|
|
@ -136,6 +136,7 @@ static KEY_OBJ g_KeyTable[] = {
|
|||
//{FLGKEY_LEFT, KEY_CONTINUE, NVTEVT_KEY_PREV, NVTEVT_KEY_CONTINUE, 0},
|
||||
//{FLGKEY_LEFT, KEY_RELEASE, NVTEVT_KEY_PREV, NVTEVT_KEY_RELEASE, 0},
|
||||
{FLGKEY_SHUTTER2, KEY_PRESS, NVTEVT_KEY_SHUTTER2, NVTEVT_KEY_PRESS, DEMOSOUND_SOUND_KEY_TONE},
|
||||
{FLGKEY_SHUTTER2, KEY_CONTINUE, NVTEVT_KEY_SHUTTER2, NVTEVT_KEY_CONTINUE, 0},
|
||||
{FLGKEY_SHUTTER2, KEY_RELEASE, NVTEVT_KEY_SHUTTER2, NVTEVT_KEY_RELEASE, 0},
|
||||
{FLGKEY_RIGHT, KEY_PRESS, NVTEVT_KEY_SELECT, NVTEVT_KEY_PRESS, DEMOSOUND_SOUND_KEY_TONE},
|
||||
{FLGKEY_RIGHT, KEY_CONTINUE, NVTEVT_KEY_SELECT, NVTEVT_KEY_CONTINUE, 0},
|
||||
|
@ -407,8 +408,8 @@ void System_OnInputInit(void)
|
|||
GxKey_SetRepeatInterval(BURSTKEY_INTERVAL / SxTimer_GetData(SXTIMER_TIMER_BASE));
|
||||
SysMan_RegKeySoundCB(KeySoundCB);
|
||||
SysMan_RegKeyTable(g_KeyTable, sizeof(g_KeyTable) / sizeof(KEY_OBJ));
|
||||
//3.£gu¢DUSxJobaA¢XE ---------> System Job
|
||||
//4.£gu¢DUSxTimeraA¢XE ---------> Detect Job
|
||||
//3.<EFBFBD>gu<EFBFBD>DUSxJobaA<EFBFBD>XE ---------> System Job
|
||||
//4.<EFBFBD>gu<EFBFBD>DUSxTimeraA<EFBFBD>XE ---------> Detect Job
|
||||
|
||||
#if (POWERKEY_FUNCTION == ENABLE)
|
||||
SX_TIMER_DET_PWR_ID = SxTimer_AddItem(&Timer_Input_DetPKey);
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
#include "sf_mcu.h"
|
||||
#include "sf_common.h"
|
||||
#endif
|
||||
extern VControl SystemObjCtrl;
|
||||
extern VControl UISetupObjCtrl;
|
||||
|
@ -448,7 +449,9 @@ INT32 System_OnShutdown(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
|||
SwTimer_DelayMs(500);
|
||||
#endif
|
||||
}
|
||||
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
sf_cardv_para_check_stop();
|
||||
#endif
|
||||
Save_MenuInfo();
|
||||
#if (BT_FUNC == ENABLE)
|
||||
System_OnBTExit();
|
||||
|
|
|
@ -374,6 +374,7 @@ int NvtMain(void)
|
|||
printf("create cardv message successs!!!!\n");
|
||||
}
|
||||
sf_cardv_message_thread_init();
|
||||
sf_cardv_para_check_start();
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
|
||||
stMessageBuf.arg1 = SF_MCU_CMD_POWERON;
|
||||
|
@ -382,12 +383,11 @@ int NvtMain(void)
|
|||
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_NOT_DETECT);
|
||||
|
||||
sf_battery_check_init();
|
||||
sf_battery_thread_init();
|
||||
|
||||
/*wifi init*/
|
||||
if(sf_get_mode_flag())
|
||||
{
|
||||
GOIO_Turn_Onoff_IRCUT(1);
|
||||
|
||||
/*wifi init*/
|
||||
stMessageBuf.arg1 = SF_WIFI_CMD_START;
|
||||
stMessageBuf.cmdId = CMD_WIFI;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
|
@ -407,7 +407,7 @@ int NvtMain(void)
|
|||
{
|
||||
sf_usb_mux_s(0);
|
||||
}
|
||||
GOIO_Turn_Onoff_IRCUT(1);
|
||||
|
||||
#endif
|
||||
|
||||
System_WaitForPowerOffStart(); // Wait for shutdown cmd
|
||||
|
|
|
@ -870,12 +870,12 @@ UINT32 BackgroundFormatCard(void)
|
|||
if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PLAYBACK) {
|
||||
UIPlay_PlaySingle(PB_SINGLE_CURR);
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
//#NT#2016/05/30#Lincy Lin -begin
|
||||
//#NT#Support logfile function
|
||||
#if (LOGFILE_FUNC==ENABLE)
|
||||
#if (LOGFILE_FUNC==ENABLE)
|
||||
LogFile_ReOpen();
|
||||
#endif
|
||||
#endif
|
||||
//#NT#2016/05/30#Lincy Lin -end
|
||||
vos_util_delay_ms(1000);
|
||||
SysMain_system("sync");
|
||||
|
|
|
@ -1787,13 +1787,14 @@ INT32 MovieExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
|||
|
||||
Movie_CommPoolInit();
|
||||
gMovie_InitCommonMemFinish=1;
|
||||
#if SF_IQ_TEST == ENABLE
|
||||
if((0 == access("/mnt/sd/FW98565A.bin", F_OK))){
|
||||
system("rm -rf /mnt/sd/LD96565A.bin");
|
||||
system("rm -rf /mnt/sd/FW98565A.bin");
|
||||
system("sync");
|
||||
usleep(100*1000);
|
||||
}
|
||||
|
||||
#endif
|
||||
MovieExe_SetRecInfoByUISetting();
|
||||
|
||||
gMovie_Disp_Info.vout_ctrl = GxVideo_GetDeviceCtrl(DOUT1,DISPLAY_DEVCTRL_CTRLPATH);
|
||||
|
|
|
@ -385,7 +385,7 @@ extern UINT32 PhotoExe_GetFdFaceNum(void);
|
|||
extern void PhotoExe_DZoomReset(void);
|
||||
extern void PhotoExe_DZoomInBK(void);
|
||||
extern void PhotoExe_DZoomOutBK(void);
|
||||
|
||||
extern void sf_set_DZoom(INT32 idx);
|
||||
//Photo Init
|
||||
extern INT32 PhotoExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray);
|
||||
extern INT32 PhotoExe_OnClose(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray);
|
||||
|
|
|
@ -91,10 +91,10 @@ HD_DIM DZoom_5M_Table[DZOOM_MAX_STEP] = {
|
|||
|
||||
HD_DIM DZoom_2M_Table[DZOOM_MAX_STEP] = {
|
||||
{2560,1440},
|
||||
{1920,1080},
|
||||
{1856,1044},
|
||||
{1792,1008},
|
||||
{1732,976},
|
||||
{1280,720},
|
||||
{640,480},
|
||||
{320,240},
|
||||
{160,120},
|
||||
{1672,940},
|
||||
// {1616,908},
|
||||
};
|
||||
|
@ -1197,6 +1197,86 @@ static void PhotoExe_DZoomStop(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
|
||||
void sf_set_DZoom(INT32 idx)
|
||||
{
|
||||
HD_PATH_ID vcap_id = 0;
|
||||
HD_PATH_ID vprc_id = 0;
|
||||
HD_VIDEOCAP_CROP vcap_crop_param= {0};
|
||||
HD_RESULT ret = HD_OK;
|
||||
HD_VIDEOPROC_IN hd_vproc_in = {0};
|
||||
HD_VIDEOPROC_OUT vprc_out_param = {0};
|
||||
//INT32 idx = g_i32PhotoDzoomStep;
|
||||
HD_DIM *pDzoomTbl=DZoom_2M_Table;
|
||||
|
||||
if (idx >= (DZOOM_MAX_STEP-1)) {
|
||||
return;
|
||||
}
|
||||
if(System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_MOVIE){
|
||||
vcap_id = ImageApp_MovieMulti_GetVcapPort(_CFG_REC_ID_1);
|
||||
vprc_id = ImageApp_MovieMulti_GetVprc3DNRPort(_CFG_REC_ID_1);
|
||||
}else{
|
||||
ImageApp_Photo_Get_Hdal_Path(PHOTO_VID_IN_1, PHOTO_HDAL_VCAP_CAP_PATH, (UINT32 *)&vcap_id);
|
||||
ImageApp_Photo_Get_Hdal_Path(PHOTO_VID_IN_1, PHOTO_HDAL_VPRC_3DNR_REF_PATH, (UINT32 *)&vprc_id);
|
||||
}
|
||||
if ((vcap_id == 0) || (vprc_id == 0)) {
|
||||
DBG_ERR("vcap_id=%d, vprc_id=%d\r\n", vcap_id, vprc_id);
|
||||
return;
|
||||
}
|
||||
|
||||
vcap_crop_param.mode = HD_CROP_ON;
|
||||
|
||||
hd_vproc_in.pxlfmt = HD_VIDEO_PXLFMT_YUV420;
|
||||
hd_vproc_in.frc = HD_VIDEO_FRC_RATIO(1, 1);
|
||||
|
||||
vprc_out_param.pxlfmt = HD_VIDEO_PXLFMT_YUV420;
|
||||
vprc_out_param.frc = HD_VIDEO_FRC_RATIO(1, 1);
|
||||
|
||||
vcap_crop_param.win.rect.x = (pDzoomTbl[0].w - pDzoomTbl[idx].w)/2;
|
||||
vcap_crop_param.win.rect.y = (pDzoomTbl[0].h - pDzoomTbl[idx].h)/2;
|
||||
vcap_crop_param.win.rect.w = pDzoomTbl[idx].w;
|
||||
vcap_crop_param.win.rect.h = pDzoomTbl[idx].h;
|
||||
|
||||
hd_vproc_in.dim.w = pDzoomTbl[idx].w;
|
||||
hd_vproc_in.dim.h = pDzoomTbl[idx].h;
|
||||
|
||||
vprc_out_param.dim.w = pDzoomTbl[idx].w;
|
||||
vprc_out_param.dim.h = pDzoomTbl[idx].h;
|
||||
vprc_out_param.rect.x = 0;
|
||||
vprc_out_param.rect.y = 0;
|
||||
vprc_out_param.rect.w = pDzoomTbl[idx].w;
|
||||
vprc_out_param.rect.h = pDzoomTbl[idx].w;
|
||||
|
||||
DBG_DUMP("zoomin idx=%d, w=%d, h=%d step=%lu\r\n",
|
||||
idx,
|
||||
pDzoomTbl[idx].w,
|
||||
pDzoomTbl[idx].h,
|
||||
g_i32PhotoDzoomStep
|
||||
);
|
||||
|
||||
if ((ret = hd_videocap_set(vcap_id, HD_VIDEOCAP_PARAM_OUT_CROP, &vcap_crop_param)) != HD_OK) {
|
||||
DBG_ERR("set HD_VIDEOCAP_PARAM_IN_CROP fail(%d)\r\n", ret);
|
||||
}
|
||||
|
||||
if ((ret = hd_videocap_start(vcap_id)) != HD_OK) {
|
||||
DBG_ERR("set hd_videocap_start fail(%d)\r\n", ret);
|
||||
}
|
||||
|
||||
if ((ret = hd_videoproc_set(vprc_id, HD_VIDEOPROC_PARAM_IN, &hd_vproc_in)) != HD_OK) {
|
||||
DBG_ERR("set hd_videoproc_set fail(%d)\r\n", ret);
|
||||
}
|
||||
|
||||
if ((ret = hd_videoproc_set(vprc_id, HD_VIDEOPROC_PARAM_OUT, &vprc_out_param)) != HD_OK) {
|
||||
DBG_ERR("set hd_videoproc_set fail(%d)\r\n", ret);
|
||||
}
|
||||
|
||||
if ((ret = hd_videoproc_start(vprc_id)) != HD_OK) {
|
||||
DBG_ERR("set hd_videoproc_start fail(%d)\r\n", ret);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void PhotoExe_DZoomInBK(void)
|
||||
{
|
||||
HD_PATH_ID vcap_id = 0;
|
||||
|
@ -2469,12 +2549,14 @@ INT32 PhotoExe_OnOpen(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray)
|
|||
GOIO_Turn_Onoff_IRCUT(1);
|
||||
|
||||
//sf_ir_led_set(((2 == puiPara->NightMode) ? 2 : 1),puiPara->FlashLed, puiPara->NightMode,0);
|
||||
#if SF_IQ_TEST == ENABLE
|
||||
if((0 == access("/mnt/sd/FW98565A.bin", F_OK))){
|
||||
system("rm -rf /mnt/sd/LD96565A.bin");
|
||||
system("rm -rf /mnt/sd/FW98565A.bin");
|
||||
system("sync");
|
||||
usleep(100*1000);
|
||||
}
|
||||
#endif
|
||||
|
||||
PhotoExe_CommPoolInit();
|
||||
dualCam =PhotoExe_InitSensorCount();
|
||||
|
|
|
@ -17,7 +17,7 @@ typedef void (*TRANSCODE_BS_READY_CB)(void* bitstream_va, UINT32 size);
|
|||
#define TRANSCODE_DBG_DUMP_YUV 0
|
||||
#define TRANSCODE_DBG_DUMP_BS 0
|
||||
|
||||
#define TRANSCODE_TARGET_PHOTO_SIZE UIAPP_PHOTO_SIZE_2M
|
||||
#define TRANSCODE_TARGET_PHOTO_SIZE SCREEN_PHOTO_SIZE_2_76M
|
||||
#define TRANSCODE_TARGET_INIT_QUALITY 50
|
||||
|
||||
typedef struct {
|
||||
|
|
|
@ -79,8 +79,8 @@ static UINT32 _TranscodeExe_Get_Max_Cap_Buf_Size(void)
|
|||
|
||||
static UINT32 _TranscodeExe_Get_Target_Buf_Size(void)
|
||||
{
|
||||
UINT32 target_size_w = ALIGN_CEIL_64(GetPhotoSizeWidth(TRANSCODE_TARGET_PHOTO_SIZE));
|
||||
UINT32 target_size_h = ALIGN_CEIL_64(GetPhotoSizeHeight(TRANSCODE_TARGET_PHOTO_SIZE));
|
||||
UINT32 target_size_w = ALIGN_CEIL_64(sf_get_screen_nail_width(TRANSCODE_TARGET_PHOTO_SIZE));
|
||||
UINT32 target_size_h = ALIGN_CEIL_64(sf_get_screen_nail_height(TRANSCODE_TARGET_PHOTO_SIZE));
|
||||
HD_VIDEO_PXLFMT pxl_fmt = HD_VIDEO_PXLFMT_YUV420;
|
||||
|
||||
return VDO_YUV_BUFSIZE(target_size_w, target_size_h, pxl_fmt);
|
||||
|
@ -88,7 +88,7 @@ static UINT32 _TranscodeExe_Get_Target_Buf_Size(void)
|
|||
|
||||
static HD_DIM _TranscodeExe_Get_Target_Size(void)
|
||||
{
|
||||
return (HD_DIM){GetPhotoSizeWidth(TRANSCODE_TARGET_PHOTO_SIZE), GetPhotoSizeHeight(TRANSCODE_TARGET_PHOTO_SIZE)};
|
||||
return (HD_DIM){sf_get_screen_nail_width(TRANSCODE_TARGET_PHOTO_SIZE), sf_get_screen_nail_height(TRANSCODE_TARGET_PHOTO_SIZE)};
|
||||
}
|
||||
|
||||
static UINT32 _TranscodeExe_Get_Target_Bitrate(void)
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
void transcode_bs_ready_cb(void* bitstream_va, UINT32 size)
|
||||
{
|
||||
DBG_DUMP("bitstream_va = %lx , size = %lx\n", bitstream_va, size);
|
||||
//SF_HD_DIR
|
||||
}
|
||||
|
||||
static BOOL cmd_transcode_start(unsigned char argc, char **argv)
|
||||
|
|
|
@ -274,7 +274,7 @@ static void update_battery(void)
|
|||
|
||||
/* user should call a function to get battery level here */
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
lv_plugin_img_set_src(image_battery_scr_uiflowmovie, res[sf_battery_level_get()]);
|
||||
lv_plugin_img_set_src(image_battery_scr_uiflowmovie, res[sf_cardv_battery_level_get()]);
|
||||
#else
|
||||
lv_plugin_img_set_src(image_battery_scr_uiflowmovie, res[0]);
|
||||
#endif
|
||||
|
@ -1261,7 +1261,7 @@ void UIFlowMovieEventCallback(lv_obj_t* obj, lv_event_t event)
|
|||
UIFlowMovie_ScrOpen(obj);
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||
if((puiPara->CamMode == SF_CAM_MODE_VIDEO))
|
||||
if((SF_CAM_MODE_VIDEO == puiPara->CamMode))
|
||||
{
|
||||
sf_rtsp_restart();
|
||||
}
|
||||
|
|
|
@ -266,7 +266,7 @@ static void update_battery(void)
|
|||
|
||||
/* user should call a function to get battery level here */
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
lv_plugin_img_set_src(image_battery_scr_uiflowphoto, res[sf_battery_level_get()]);
|
||||
lv_plugin_img_set_src(image_battery_scr_uiflowphoto, res[sf_cardv_battery_level_get()]);
|
||||
#else
|
||||
lv_plugin_img_set_src(image_battery_scr_uiflowphoto, res[GetBatteryLevel()]);
|
||||
#endif
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
#include "PrjInc.h"
|
||||
#include "UIFlowLVGL/UIFlowLVGL.h"
|
||||
#include "UIFlowWndUSBAPI.h"
|
||||
#include <kwrap/debug.h>
|
||||
|
||||
static lv_group_t* gp = NULL;
|
||||
|
||||
static void set_indev_keypad_group(lv_obj_t* obj)
|
||||
|
@ -14,6 +16,27 @@ static void set_indev_keypad_group(lv_obj_t* obj)
|
|||
lv_indev_set_group(indev, gp);
|
||||
}
|
||||
|
||||
static void UIFlowUsb_Key(lv_obj_t* obj, uint32_t key)
|
||||
{
|
||||
printf("\n[%s] %d key:%d\n", __FUNCTION__, __LINE__,key);
|
||||
|
||||
switch(key)
|
||||
{
|
||||
case LV_USER_KEY_SHUTTER2:
|
||||
if((System_GetState(SYS_STATE_CURRMODE) != PRIMARY_MODE_USBMSDC)){
|
||||
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBMSDC);
|
||||
}
|
||||
else{
|
||||
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_USBPCC);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void UIFlowUSBEventCallback(lv_obj_t* obj, lv_event_t event)
|
||||
{
|
||||
uint32_t* usbmode;
|
||||
|
@ -52,7 +75,7 @@ void UIFlowUSBEventCallback(lv_obj_t* obj, lv_event_t event)
|
|||
{
|
||||
uint32_t* key = (uint32_t*)lv_event_get_data();
|
||||
|
||||
|
||||
UIFlowUsb_Key(obj, *key);
|
||||
/***********************************************************************************
|
||||
* IMPORTANT!!
|
||||
*
|
||||
|
|
|
@ -63,7 +63,11 @@
|
|||
#define DEFAULT_MOVIE_SIZE MOVIE_SIZE_DUAL_1920x1080P30_848x480P30//MOVIE_SIZE_FRONT_1920x1080P30
|
||||
#else
|
||||
#if (MOVIE_AI_DEMO == DISABLE)
|
||||
#if SF_IQ_TEST == DISABLE
|
||||
#define DEFAULT_MOVIE_SIZE MOVIE_SIZE_FRONT_1280x720P30
|
||||
#else
|
||||
#define DEFAULT_MOVIE_SIZE MOVIE_SIZE_CLONE_1920x1080P30_1920x1080P25
|
||||
#endif
|
||||
#else
|
||||
#define DEFAULT_MOVIE_SIZE MOVIE_SIZE_DUAL_1920x1080P30_848x480P30//MOVIE_SIZE_FRONT_1920x1080P30
|
||||
#endif
|
||||
|
@ -166,7 +170,15 @@
|
|||
#endif
|
||||
|
||||
#define DEFAULT_ETHCAM_TX_IP_ADDR 0 //0xc00a8c0
|
||||
|
||||
#if SF_IQ_TEST == ENABLE
|
||||
#define DEFAULT_NET_WORK_NEED_SEARCH SF_OFF
|
||||
#define DEFAULT_BOOT_WORK_MODE SF_CAM_MODE_PHOTO_VIDEO//
|
||||
#else
|
||||
#define DEFAULT_BOOT_WORK_MODE SF_CAM_MODE_PHOTO//
|
||||
#define DEFAULT_NET_WORK_NEED_SEARCH SF_ON
|
||||
#endif
|
||||
|
||||
#define DEFAULT_SF_CAMID SF_CAMID_OFF
|
||||
#define DEFAULT_FLASH_LED SF_FLASH_LED_HIGH
|
||||
#define DEFAULT_NIGHT_MODE SF_NIGHT_MODE_MIN_BLUR//SF_NIGHT_MODE_BALANCED
|
||||
|
@ -183,11 +195,6 @@
|
|||
#elif defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_)
|
||||
#define DEFAULT_PIR_SENSITIVITY SF_PIR_SENSITIVITY_7
|
||||
#endif
|
||||
#if SF_IQ_TEST == ENABLE
|
||||
#define DEFAULT_NET_WORK_NEED_SEARCH SF_OFF
|
||||
#else
|
||||
#define DEFAULT_NET_WORK_NEED_SEARCH SF_ON
|
||||
#endif
|
||||
|
||||
#define DEFAULT_GPRS_SWITCH SF_ON
|
||||
#define DEFAULT_BATTERY_TYPE SF_BATT_ALKALINE
|
||||
|
@ -196,7 +203,7 @@
|
|||
#define DEFAULT_SEND_MAX_NUM SF_SEND_MAX_NUM_UNLIMITED
|
||||
#define DEFAULT_REDAILY_REPORT_SWITCH SF_OFF
|
||||
#define DEFAULT_SIN_PIN_FLAG SF_ON
|
||||
#define DEFAULT_AUTO_OFF_SWITCH SF_OFF
|
||||
#define DEFAULT_AUTO_OFF_SWITCH SF_ON
|
||||
#define DEFAULT_DATE_TIME SF_DATE_TIME_DDMMYY
|
||||
#define DEFAULT_SEND_PHOTO_SWITCH SF_ON
|
||||
#define DEFAULT_SEND_VIDEO_SWITCH SF_OFF
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
//---------------------UIInfo Global Variables -----------------------------
|
||||
UIMenuStoreInfo currentInfo = {0}; //#NT#Init the array to zero.
|
||||
UIMenuStoreInfo origInfo = {0}; /* backup */
|
||||
UIMenuStoreInfo origInfo_check = {0}; /* backup */
|
||||
|
||||
BOOL bSysReady = 0;
|
||||
BOOL bAutoSystemReset = FALSE;
|
||||
|
@ -509,7 +510,7 @@ void Load_MenuInfo(void)
|
|||
}
|
||||
#endif
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
sf_share_mem_customer_down(0);
|
||||
//sf_share_mem_customer_down(0);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
@ -702,7 +703,7 @@ EXIT:
|
|||
SysResetFlag();
|
||||
currentInfo.uhInfoSize = sizeof(currentInfo);
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
sf_share_mem_customer_down(0);
|
||||
//sf_share_mem_customer_down(0);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -721,11 +722,12 @@ EXIT:
|
|||
currentInfo.uhInfoSize = sizeof(currentInfo);
|
||||
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
sf_share_mem_customer_down(0);
|
||||
//sf_share_mem_customer_down(0);
|
||||
#endif
|
||||
}
|
||||
SysCheckFlag();
|
||||
origInfo = currentInfo;
|
||||
origInfo_check = currentInfo;
|
||||
|
||||
if(sys_mtd_fp){
|
||||
fclose(sys_mtd_fp);
|
||||
|
@ -1088,7 +1090,7 @@ EXIT:
|
|||
sum);
|
||||
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
sf_share_mem_customer_down(0);
|
||||
//sf_share_mem_customer_down(0);
|
||||
#endif
|
||||
}
|
||||
else{
|
||||
|
@ -2245,3 +2247,20 @@ UIMenuStoreInfo* sf_ui_para_get(void)
|
|||
return (UIMenuStoreInfo*)¤tInfo;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_get_para_check_flag
|
||||
Description:
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: N/A
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
BOOL sf_get_cardv_para_check_flag(void)
|
||||
{
|
||||
if(memcmp(¤tInfo, &origInfo_check, sizeof(currentInfo)) == 0){
|
||||
return FALSE;
|
||||
}
|
||||
origInfo_check = currentInfo;
|
||||
|
||||
return TRUE;
|
||||
}
|
|
@ -778,6 +778,7 @@ enum _PHOTO_SIZE {
|
|||
#if PHOTO_PREVIEW_SLICE_ENC_FUNC
|
||||
PHOTO_SIZE_40M,
|
||||
#endif
|
||||
PHOTO_SIZE_32M,
|
||||
PHOTO_SIZE_24M,
|
||||
PHOTO_SIZE_16M,
|
||||
PHOTO_SIZE_12M,
|
||||
|
@ -2037,5 +2038,5 @@ extern void UI_SetInitVolume(UINT32 volumeIndex);
|
|||
extern void UI_SaveRTCDate(void);
|
||||
extern void UI_SetFileDBFileID(void);
|
||||
extern UIMenuStoreInfo* sf_ui_para_get(void);
|
||||
|
||||
extern BOOL sf_get_cardv_para_check_flag(void);
|
||||
#endif //_UIINFO_H_
|
||||
|
|
|
@ -32,6 +32,7 @@ static PHOTO_SIZE_PARAM g_PhotoCapSizeTable[PHOTO_SIZE_ID_MAX + 2] = {
|
|||
#if PHOTO_PREVIEW_SLICE_ENC_FUNC || POWERON_FAST_SLICE_ENC
|
||||
{7552, 4248, IMAGERATIO_4_3, "40M"}, /* 40M */
|
||||
#endif
|
||||
{6528, 4896, IMAGERATIO_4_3, "32M"}, /* 32M */
|
||||
{5632, 4224, IMAGERATIO_4_3, "24M"}, //16M
|
||||
{4608, 3456, IMAGERATIO_4_3, "16M"}, //16M
|
||||
{4032, 3024, IMAGERATIO_4_3, "12M"}, //12M
|
||||
|
@ -90,12 +91,22 @@ UINT32 GetPhotoSizeRatio(UINT32 ubIndex)
|
|||
|
||||
UINT32 sf_get_screen_nail_width(UINT32 ubIndex)
|
||||
{
|
||||
if(ubIndex == SCREEN_PHOTO_SIZE_2_76M){
|
||||
return g_ScreenNailSizeTable[ubIndex].uiWidth;
|
||||
}
|
||||
else{
|
||||
return g_ScreenNailSizeTable[sf_get_send_pic_sieze()].uiWidth;
|
||||
}
|
||||
}
|
||||
|
||||
UINT32 sf_get_screen_nail_height(UINT32 ubIndex)
|
||||
{
|
||||
if(ubIndex == SCREEN_PHOTO_SIZE_2_76M){
|
||||
return g_ScreenNailSizeTable[ubIndex].uiHeight;
|
||||
}
|
||||
else{
|
||||
return g_ScreenNailSizeTable[sf_get_send_pic_sieze()].uiHeight;
|
||||
}
|
||||
}
|
||||
|
||||
UINT32 sf_get_screen_nail_ratio(UINT32 ubIndex)
|
||||
|
|
|
@ -245,6 +245,7 @@ SRC = \
|
|||
./code/source/4gMng/sf_opera_adapt.c \
|
||||
./code/source/4gMng/sf_ftp.c \
|
||||
./code/source/4gMng/sf_sms.c \
|
||||
./code/source/4gMng/sf_4G_auto_operation.c \
|
||||
./code/source/dataMng/sf_dataMng.c \
|
||||
./code/source/dataMng/sf_transdata1.c \
|
||||
./code/source/dataMng/sf_datahttp.c \
|
||||
|
@ -259,7 +260,8 @@ SRC = \
|
|||
./code/source/utils/sf_aes.c \
|
||||
./code/source/debugMng/sf_debug.c \
|
||||
./code/source/updataMng/sf_md5.c \
|
||||
./code/source/updataMng/sf_otamng.c
|
||||
./code/source/updataMng/sf_otamng.c \
|
||||
./code/source/battery/sf_battery.c
|
||||
|
||||
# ./code/source/wifi/sf_data_transfer.c \
|
||||
# ./code/source/wifi/sf_svr_send.c \
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#ifndef _SF_BATTERY_H
|
||||
#define _SF_BATTERY_H
|
||||
|
||||
#include <kwrap/task.h>
|
||||
//#include <sf_type.h>
|
||||
|
||||
#include <sf_type.h>
|
||||
|
||||
//typedef signed int SINT32;
|
||||
|
||||
|
@ -21,15 +21,15 @@ void sf_battery_level_update(void);
|
|||
BOOL sf_check_low_battery(void);
|
||||
signed int sf_battery_adc_value_get(void);
|
||||
void sf_battery_level_polling(void);
|
||||
THREAD_RETTYPE sf_battery_check_thread(void *arg);
|
||||
void* sf_battery_check_thread(void *arg);
|
||||
void sf_battery_thread_init(void);
|
||||
UINT8 sf_get_night_led_flag(void);
|
||||
void sf_set_night_led_flag(UINT8 flag);
|
||||
UINT32 sf_battery_level_get(void);
|
||||
void sf_view_osd_battery_draw(UINT8 bShow);
|
||||
UINT8 sf_battery_value_get(UINT8 nightMode);
|
||||
UINT8 sf_battery_type_get(void);
|
||||
|
||||
BOOL sf_battery_check_init(void);
|
||||
|
||||
void sf_set_need_check_first(void);
|
||||
BOOL sf_is_enough_power_to_update(void);
|
||||
void sf_adc_init(void);
|
||||
#endif
|
|
@ -28,7 +28,8 @@ SINT32 sf_share_mem_customer_down(UINT32 to);
|
|||
|
||||
SINT32 sf_share_mem_customer_deinit(void);
|
||||
|
||||
|
||||
SINT32 sf_share_mem_hd_update(void);
|
||||
SINT32 sf_share_mem_hd_down(UINT32 to);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <kwrap/nvt_type.h>
|
||||
#define IS_RELEASE 1
|
||||
|
||||
#if IS_RELEASE
|
||||
|
@ -76,7 +76,11 @@ extern "C" {
|
|||
#define SF_STRTOLL(a, b, c) strtoll((char *)a, (char **)b, c)
|
||||
|
||||
void app_message_recv_start(void);
|
||||
|
||||
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);
|
||||
UINT8 sf_app_get_night_led_flag(void);
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -27,13 +27,27 @@ extern "C"{
|
|||
#include <sf_commu_mcu_reg.h>
|
||||
|
||||
#define SERIAL_DEVICE_PATH "/dev/ttyS2"
|
||||
#define BUF_REG_SIZE (REG_SIZE*2+8)
|
||||
#define BUF_REG_SIZE 256//(REG_SIZE*2+8)
|
||||
|
||||
typedef struct {
|
||||
unsigned char buf[BUF_REG_SIZE];
|
||||
unsigned int index;
|
||||
}SMAPBUF_t;
|
||||
|
||||
typedef enum MCU_FLAG_INIT {
|
||||
MCU_FLAG_INITT_SYSTEM = 0x00,
|
||||
MCU_FLAG_INIT_SENSOR = 0x01,
|
||||
MCU_FLAG_INIT_CAPTURE = 0x02,
|
||||
MCU_FLAG_INIT_DISPLAY = 0x03,
|
||||
MCU_FLAG_INIT_STORAGE = 0x04,
|
||||
MCU_FLAG_INIT_FILESYSOK = 0x05,
|
||||
MCU_FLAG_INIT_FILENAMINGOK,
|
||||
MCU_FLAG_INIT_MEIDA_ENCODER,
|
||||
MCU_FLAG_INIT_MEIDA_DECODER,
|
||||
MCU_FLAG_INIT_BOOTLOGO,
|
||||
MCU_FLAG_INIT_OTHERS,
|
||||
MCU_FLAG_GET,
|
||||
MCU_FLAG_INIT_MAX_CNT = 32, //flag max bit cnt is 32
|
||||
} MCU_FLAG_INIT;
|
||||
|
||||
void mcubuf_reset(void);
|
||||
int sf_commu_mcu_interface_init(int speed, char flow_ctrl, int databits, int stopbits, char parity);
|
||||
|
@ -60,6 +74,11 @@ int sf_set_mcu_reg_many(unsigned char reg[], unsigned char val[], unsigned int n
|
|||
int sf_get_mcu_reg_many(unsigned char reg[], unsigned int num);
|
||||
int sf_commu_set_mcu_many(unsigned char reg[], unsigned char val[], unsigned int *num);
|
||||
int sf_commu_get_mcu_many(unsigned char reg[], unsigned char val[], unsigned int *num);
|
||||
void sf_mcu_flag_init(void);
|
||||
void sf_mcu_flag_set_done(MCU_FLAG_INIT boot_init);
|
||||
void sf_mcu_flag_wait_done(MCU_FLAG_INIT boot_init);
|
||||
int sf_mcu_flag_wait_done_timeout(MCU_FLAG_INIT boot_init, int timeout_ms);
|
||||
void sf_mcu_flag_clear_done(MCU_FLAG_INIT boot_init);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -371,10 +371,6 @@ UINT8 sf_get_power_off_flag(void);
|
|||
void sf_set_power_off_flag(UINT8 flag);
|
||||
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);
|
||||
void sf_set_gprs_errno(SINT32 value);
|
||||
SINT32 sf_get_gprs_errno(void);
|
||||
BOOL sf_get_signal_ready_flag(void);
|
||||
|
|
|
@ -232,6 +232,25 @@ typedef enum SF_SIM
|
|||
|
||||
}SF_SIM_E;
|
||||
|
||||
typedef enum SIM_ERR_CODE_s{
|
||||
SIM_NO_SIGNAL,
|
||||
SIM_NO_SIMCARD,
|
||||
SIM_SUCCEED,
|
||||
SIM_COM_ERROR,
|
||||
SIM_BAUD_ERROR,
|
||||
SIM_INIT_ERROR,
|
||||
SIM_NETWORK_ERROR,
|
||||
SIM_NO_MCC,
|
||||
SIM_CONNECET_SERVER_ERROR,
|
||||
SIM_MEGA_ERROR,
|
||||
SIM_TO_BUSINESS_SIM_ERROR,
|
||||
SIM_AT_ERROR,
|
||||
SIM_INFO_ERROR,
|
||||
SIM_UNKNOW_ERROR,
|
||||
SIM_TYPE_ERROR,
|
||||
SIM_FAILED,
|
||||
}SIM_ERR_CODE;
|
||||
|
||||
SINT32 eg91_iccid_get(SF_CHAR *iccid,SF_FN_PARAM_S *pfnParam);
|
||||
|
||||
SINT32 eg91_qsclk_set(SF_FN_PARAM_S *pfnParam);
|
||||
|
@ -268,6 +287,14 @@ void sf_4g_module_sleep(void);
|
|||
|
||||
SINT32 sf_4g_set_module_minimun_fun(void);
|
||||
|
||||
void sf_gprs_wait_network_scan_finish(UINT8 refresh);
|
||||
|
||||
SINT32 sf_add_cimi_id(char *cimi);
|
||||
|
||||
SINT32 sf_module_complete_init(void);
|
||||
SINT32 sf_net_regist_manual(void);
|
||||
|
||||
SINT32 sf_auto_net_reg(void);
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -29,13 +29,17 @@ UINT8 sf_app_get_battery(void);
|
|||
|
||||
void sf_custom_send_str_get(UINT8 *sendName, UINT8 *pStr);
|
||||
|
||||
BOOL sf_is_enough_power_to_update(void);
|
||||
//BOOL sf_is_enough_power_to_update(void);
|
||||
|
||||
BOOL sf_is_4g_module_usb_update_file_exist(UINT8 *updateFname);
|
||||
|
||||
void sf_set_del_flag(BOOL flag);
|
||||
|
||||
BOOL sf_get_del_flag(void);
|
||||
UINT32 sf_get_file_size(UINT8 * fname);
|
||||
UINT8 sf_get_send_file_list(char *sendfileList, UINT8 *fileTotal);
|
||||
BOOL sf_check_auto_thumb_file(VOID);
|
||||
UINT8 sf_get_send_file_total(void);
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -76,9 +76,10 @@ void sf_file_thumb_cfg_clear(void);
|
|||
SF_SRCFILE_ATTR_S* sf_file_thumb_cfg_get(void);
|
||||
SINT32 sf_file_size_get(SF_CHAR *filePath,UINT32 *pFileSize);
|
||||
|
||||
BOOL sf_check_auto_thumb_file(VOID);
|
||||
UINT8 sf_get_send_file_list(char *sendfileList, UINT8 *fileTotal);
|
||||
UINT8 sf_get_send_file_total(void);
|
||||
SF_HDFILE_ATTR_S* sf_file_hd_cfg_get(void);
|
||||
void sf_file_hd_cfg_set_down(SF_HDFILE_ATTR_S *pSfHdPara);
|
||||
void sf_hd_param_set(SF_HDFILE_ATTR_S *pSfHdPara);
|
||||
SF_HDFILE_ATTR_S* sf_file_video_cfg_get(void);
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -208,12 +208,15 @@ SINT32 sf_ftp_stop(UINT8 ssl, UINT8 GprsMode);
|
|||
SINT32 sf_pic_send_ftp(void);
|
||||
SINT32 sf_txt_send_ftp(void);
|
||||
SINT32 sf_video_send_ftp(void);
|
||||
SINT32 sf_simcom_ftp_dailyreport_send(void);
|
||||
SINT32 sf_ftp_dailyreport_send(void);
|
||||
SINT32 sf_check_ftp_send(UINT8 mode);
|
||||
SINT32 sf_simcom_ftp_send(UINT8 mode);
|
||||
SINT32 sf_send_file_to_ftp(UINT8 mode);
|
||||
SINT32 sf_4g_module_ota_ftp(void);
|
||||
UINT32 sf_connect_ftps_server(void);
|
||||
SINT32 sf_connect_ftps_server(void);
|
||||
UINT32 sf_camera_ota_ftp(void);
|
||||
SINT32 sf_concentrated_ftp_send(void);
|
||||
SINT32 sf_hd_ftp_send(void);
|
||||
SINT32 sf_video_ftp_send(void);
|
||||
SINT32 sf_get_ftp_open_flag(void);
|
||||
#endif /*_SF_FTP_H_*/
|
||||
|
||||
|
|
|
@ -24,6 +24,9 @@ SINT32 sf_hal_gpio_deinit(U32 gpioNum);
|
|||
|
||||
void sf_usb_mux_s(UINT32 cnt);
|
||||
|
||||
int sf_app_pir_statu_read(void);
|
||||
|
||||
UINT32 sf_app_data_ready_read(void);
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ extern "C" {
|
|||
#define WARNING_FILE_PATH SF_SD_ROOT"warning.txt"
|
||||
#define INFO_FILE_PATH SF_SD_ROOT"info.txt"
|
||||
|
||||
#define SF_ENCRYPTION_ENBLE 1
|
||||
#define SF_ENCRYPTION_ENBLE 0
|
||||
|
||||
typedef enum SF_LOG_LEVEL_E
|
||||
{
|
||||
|
|
|
@ -117,7 +117,7 @@ SINT32 sf_4G_acm_tcp_server_close(SF_FN_PARAM_S *pfnParam);
|
|||
|
||||
SINT32 sf_4G_other_sim_apn_cfg(SF_FN_PARAM_S *pfnParam);
|
||||
|
||||
|
||||
UINT32 sf_auto_operation_adjust(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
|
|
|
@ -28,7 +28,7 @@ extern "C" {
|
|||
#include "sf_param_common.h"
|
||||
#include "sf_module.h"
|
||||
|
||||
UINT16 sf_auto_operation_adaptation(SF_CHAR *operatorName, UIMenuStoreInfo *sim_info_t);
|
||||
SINT32 sf_auto_operation_adaptation(SF_CHAR *operatorName, UIMenuStoreInfo *sim_info_t);
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -61,6 +61,7 @@ void sf_customer_param_set_down(UIMenuStoreInfo *pSfCustomerPara);
|
|||
|
||||
UINT8 sf_signal_level_get(UINT8 netFlagG, UINT8 cqSignal);
|
||||
|
||||
BOOL sf_get_para_check_flag(void);
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -474,8 +474,11 @@ typedef enum sf_PARA_MESSAGE_TYPE_E
|
|||
SF_PARA_CMD_UPDATE = 0x1A00,
|
||||
SF_PARA_CMD_DOMN = 0x1B00,
|
||||
SF_PARA_CMD_RESET = 0x1C00,
|
||||
|
||||
|
||||
SF_PARA_CMD_FWUP = 0x1D00,
|
||||
SF_PARA_CMD_MOUP = 0x1E00,
|
||||
SF_PARA_CMD_NET_STATUS = 0x1F00,
|
||||
SF_PARA_CMD_IR_LED_STATUS = 0x1F01,
|
||||
SF_PARA_CMD_BATTERY_LEVEL = 0x1F02,
|
||||
}SF_PARA_MESSAGE_TYPE_E;
|
||||
|
||||
typedef enum sf_WIFI_MESSAGE_TYPE_E
|
||||
|
@ -484,6 +487,7 @@ typedef enum sf_WIFI_MESSAGE_TYPE_E
|
|||
SF_WIFI_CMD_STOP = 0x1B00,
|
||||
SF_WIFI_CMD_RESTART = 0x1C00,
|
||||
SF_WIFI_CMD_CAPTURE = 0x1D00,
|
||||
SF_WIFI_CMD_HD_TURE = 0x1E00,
|
||||
|
||||
}SF_WIFI_MESSAGE_TYPE_E;
|
||||
|
||||
|
|
|
@ -296,6 +296,16 @@ typedef struct sf_SRCFILE_ATTR_S {
|
|||
UINT8 filecnt;
|
||||
SF_FILE_ATTR_S stfileattr[SF_SRCFILE_MAX];
|
||||
}SF_SRCFILE_ATTR_S;
|
||||
|
||||
typedef struct HDImgList
|
||||
{
|
||||
UINT16 dirKey;
|
||||
UINT16 fileKey;
|
||||
} HDImgList_t;
|
||||
typedef struct sf_HDFILE_ATTR_S {
|
||||
UINT8 filecnt;
|
||||
HDImgList_t stfileattr[51];
|
||||
}SF_HDFILE_ATTR_S;
|
||||
typedef struct sf_REPORT_FILE_ATTR_S {
|
||||
UINT8 filecnt;
|
||||
SF_SEND_FILE_ATTR_S stSendFileAttr[100];
|
||||
|
|
|
@ -51,6 +51,7 @@ void app_FileSend_start(void);
|
|||
SINT32 app_t110(void);
|
||||
SINT32 sf_app_to_cardv_capture(void);
|
||||
SINT32 sf_module_reboot_reg_net(void);
|
||||
SINT32 sf_app_to_cardv_hd_ture(void);
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ extern "C" {
|
|||
#if 0
|
||||
#include <sf_hal_ttyusb.h>
|
||||
|
||||
#define sf_4g_send_data sf_hal_ttyusb2_write
|
||||
#define sf_hal_ttyusb2_write sf_hal_ttyusb2_write
|
||||
#define sf_4g_get_data sf_hal_ttyusb2_read
|
||||
|
||||
#define SF_NTP_SITE1 "time.windows.com"
|
|
@ -260,5 +260,9 @@ SINT32 sf_power_off_check_module_sleep(void);
|
|||
SINT32 sf_power_off_check_camera_restart(void);
|
||||
SINT32 sf_power_off_check_ui_para_sava(void);
|
||||
UINT8 sf_sms_check_send(void);
|
||||
UINT8 sf_get_send_hd(void);
|
||||
UINT8 sf_get_send_video(void);
|
||||
UINT8 sf_set_send_hd(UINT8 value);
|
||||
UINT8 sf_set_send_video(UINT8 value);
|
||||
#endif /*_SF_SMS_H_*/
|
||||
|
||||
|
|
|
@ -50,6 +50,11 @@ UINT8 *sf_versionGet(UINT8 ver[],UINT8 fea[]);
|
|||
|
||||
void sf_power_off(void);
|
||||
|
||||
SINT32 sf_app_para_check_start(void);
|
||||
SINT32 sf_app_para_check_stop(void);
|
||||
SINT32 sf_app_battery_start(void);
|
||||
SINT32 sf_app_battery_stop(void);
|
||||
SINT32 sf_app_data_ready_start(void);
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -59,7 +59,7 @@ static void gps_infor_convert(SF_CHAR *str)
|
|||
memcpy((char*)strTemp, str, 4);
|
||||
temp = atoi(strTemp);
|
||||
temp = temp * 60 / 100;
|
||||
sprintf(strTemp, "%04d", temp);
|
||||
sprintf(strTemp, "%04ld", temp);
|
||||
memcpy(str, strTemp, 4);
|
||||
}
|
||||
|
||||
|
|
|
@ -1259,7 +1259,7 @@ SINT32 eg91_server_acm_open(SF_FN_PARAM_S *pfnParam)
|
|||
{
|
||||
case MODULE_SERVER_ACM_WRITE_AT_QISEND:
|
||||
enATcmdType = MODULE_SERVER_ACM_WRITE_AT_SENDING;
|
||||
sprintf(ttyData,"AT+QISEND=%d,%d\r", TCP_PDP, psenddate->dataSize-3);
|
||||
sprintf(ttyData,"AT+QISEND=%d,%ld\r", TCP_PDP, psenddate->dataSize-3);
|
||||
ttyRet = sf_hal_ttyusb2_write(ttyData, strlen(ttyData));
|
||||
SF_APPCOMM_CHECK_RETURN(ttyRet, ttyRet);
|
||||
break;
|
||||
|
|
|
@ -23,18 +23,69 @@ extern "C" {
|
|||
#include "sf_datahttp.h"
|
||||
#include "sf_service.h"
|
||||
#include "sf_ftp.h"
|
||||
#include "sf_module.h"
|
||||
|
||||
#define APNGPRS_WUYUAN1 "America.bics"
|
||||
#define APNGPRS_WUYUAN2 "bicsapn"
|
||||
#define MEGA_TEST 0
|
||||
unsigned long int LocateTime = 0;
|
||||
|
||||
|
||||
char gsmPara[GPRS_INFO_LINE_MAX] = { 0 };
|
||||
char logStr[128] = {0};
|
||||
UINT8 SimImei[8] = { 0 };
|
||||
UINT8 AddCimiTimes = 0;
|
||||
UINT8 simErrorCode = SIM_AT_ERROR;
|
||||
BOOL NetworkScan = FALSE;
|
||||
BOOL GprsNetWorkReady = FALSE;
|
||||
|
||||
UINT8 gprs_search_process = GPRS_SEARCH_STEP_IDLE;
|
||||
extern SF_PARA_TIME_S rtcTime;
|
||||
|
||||
SF_PARA_TIME_S nowDate = { 0, 0, 0, 0, 0, 0};
|
||||
|
||||
typedef struct sf_cimi_id
|
||||
{
|
||||
int id;
|
||||
char cimi[6];
|
||||
struct sf_cimi_id *next;
|
||||
}sf_cimi_id_t;
|
||||
|
||||
sf_cimi_id_t cimi_head = { .id = 1, .cimi = "0", .next = NULL };
|
||||
|
||||
UINT8 sf_qcsq_decode(char *instr, UINT8 *csqVal)
|
||||
{
|
||||
char *pStr = NULL;
|
||||
UINT8 csq = 0;
|
||||
|
||||
if((instr == NULL) || (csqVal == NULL))
|
||||
{
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
pStr = strstr((const char *)instr, "+QCSQ: ");
|
||||
|
||||
if(pStr != NULL)
|
||||
{
|
||||
strtok((char *)instr, ",");
|
||||
pStr = strtok(NULL, ",");
|
||||
|
||||
if(pStr != NULL)
|
||||
{
|
||||
pStr = strtok(NULL, "\"");
|
||||
|
||||
if(pStr != NULL)
|
||||
{
|
||||
csq = 0 - atoi((const char *)pStr);
|
||||
*csqVal = csq;
|
||||
printf("[%s:%d]qcsqVal=%d\n", __FUNCTION__, __LINE__, csq);
|
||||
return SUCCESS;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
void eg91_mark_time_set(unsigned long int MarkTime)
|
||||
{
|
||||
|
@ -2220,14 +2271,14 @@ void sf_quectel_module_subver_change(char *pTemp)
|
|||
}
|
||||
|
||||
/************************************************************
|
||||
Function: sf_quectel_module_complete_init
|
||||
Function: sf module complete init
|
||||
Description: module complete init,for setup/A/8 start mode.
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: 0 SUCCESS, 1 error
|
||||
Others: N/A
|
||||
************************************************************/
|
||||
SINT32 sf_quectel_module_complete_init(void)
|
||||
SINT32 sf_module_complete_init(void)
|
||||
{
|
||||
SINT32 ret = SF_SUCCESS;
|
||||
SF_QUECTEL_NETREG_E eNetRegLocation = QUECTEL_NETREG_FRIST;
|
||||
|
@ -2817,7 +2868,7 @@ SINT32 sf_quectel_module_complete_init(void)
|
|||
|
||||
if(gsmPara[0] != '\0')
|
||||
{
|
||||
printf("eNetRegLocation=%d,gsmPara:\n%s", eNetRegLocation, gsmPara);
|
||||
MLOGD("eNetRegLocation:%d\ngsmPara:%s\n", eNetRegLocation, gsmPara);
|
||||
}
|
||||
|
||||
time++;
|
||||
|
@ -2840,18 +2891,18 @@ SINT32 sf_quectel_module_complete_init(void)
|
|||
|
||||
|
||||
/*************************************************
|
||||
Function: sf_quectel_net_regist
|
||||
Function: sf net regist manual
|
||||
Description: net reg
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: 0 SUCCESS, 1 error
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
SINT32 sf_quectel_net_regist(void)
|
||||
SINT32 sf_net_regist_manual(void)
|
||||
{
|
||||
|
||||
SINT32 ret = SF_SUCCESS;
|
||||
#if 0
|
||||
|
||||
//UINT8 gsmPara[GPRS_INFO_LINE_MAX] = {0};
|
||||
SF_QUECTEL_NETREG_E eNetRegLocation = QUECTEL_NETREG_FRIST;
|
||||
UINT16 callTime = 0;
|
||||
|
@ -2931,11 +2982,11 @@ SINT32 sf_quectel_net_regist(void)
|
|||
if(sf_auto_operation_adjust() == FAIL)
|
||||
{
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "Auto Operation Fail,MCCMNC:%s", puiPara->OperatorCode);
|
||||
sprintf((char *)logStr, "Auto Operation Fail,MCCMNC:%s\n", puiPara->OperatorCode);
|
||||
SLOGE(logStr);
|
||||
|
||||
ret = SF_SIM_ERROR_APN;
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
|
||||
//sf_guide_operator_match_status_set();
|
||||
|
@ -2943,7 +2994,7 @@ SINT32 sf_quectel_net_regist(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
sprintf((char *)logStr, "Auto Operation Success,MCCMNC:%s", puiPara->OperatorCode);
|
||||
sprintf((char *)logStr, "Auto Operation Success,MCCMNC:%s\n", puiPara->OperatorCode);
|
||||
SLOGI(logStr);
|
||||
}
|
||||
|
||||
|
@ -2982,7 +3033,7 @@ SINT32 sf_quectel_net_regist(void)
|
|||
{
|
||||
ret = SF_SIM_ERROR_APN;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_NET_REG_END;
|
||||
}
|
||||
|
@ -2995,7 +3046,7 @@ SINT32 sf_quectel_net_regist(void)
|
|||
{
|
||||
ret = SF_SIM_ERROR_APN;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_NET_REG_END;
|
||||
}
|
||||
|
@ -3089,7 +3140,7 @@ SINT32 sf_quectel_net_regist(void)
|
|||
|
||||
if(strstr((const char *)gsmPara, "OK") != NULL)
|
||||
{
|
||||
if(sf_4g_uart_restart(1) == SUCCESS)
|
||||
if(sf_ttyusb_restart() == SUCCESS)
|
||||
{
|
||||
callTime = 0;
|
||||
time = 0;
|
||||
|
@ -3100,7 +3151,7 @@ SINT32 sf_quectel_net_regist(void)
|
|||
ret = SF_SIM_ERROR_REG_NET;
|
||||
printf("[%s:%d] tty usb restart err.\n", __FUNCTION__, __LINE__);
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d] tty usb restart err,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
sprintf((char *)logStr, "[%s:%d] tty usb restart err,Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_NET_REG_END;
|
||||
}
|
||||
|
@ -3109,7 +3160,7 @@ SINT32 sf_quectel_net_regist(void)
|
|||
break;
|
||||
|
||||
case QUECTEL_NETREG_MODULE_RESTART:
|
||||
ret = sf_quectel_module_complete_init();
|
||||
ret = sf_module_complete_init();
|
||||
|
||||
if(ret == SF_SUCCESS)
|
||||
{
|
||||
|
@ -3201,9 +3252,9 @@ SINT32 sf_quectel_net_regist(void)
|
|||
{
|
||||
ret = SF_SIM_ERROR_REG_NET;
|
||||
printf("[%s:%d]AT+CGREG? Timeout.\n", __FUNCTION__, __LINE__);
|
||||
SLOGE((SINT8 *)gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]AT+CGREG? Timeout,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE((SINT8 *)logStr);
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]AT+CGREG? Timeout,Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_NET_REG_END;
|
||||
}
|
||||
}
|
||||
|
@ -3262,8 +3313,8 @@ SINT32 sf_quectel_net_regist(void)
|
|||
AddCimiTimes++;
|
||||
time = 0;
|
||||
|
||||
sf_set_netsearch_step(GPRS_SEARCH_STEP_RETRYING);
|
||||
sp5kHostMsgSend(APP_UI_MSG_TRANSFER_REFLUSH, 0, 0, 0);
|
||||
//sf_set_netsearch_step(GPRS_SEARCH_STEP_RETRYING);
|
||||
//sp5kHostMsgSend(APP_UI_MSG_TRANSFER_REFLUSH, 0, 0, 0);
|
||||
}
|
||||
else //cimi already exist
|
||||
{
|
||||
|
@ -3370,9 +3421,9 @@ SINT32 sf_quectel_net_regist(void)
|
|||
if(callTime > 10)
|
||||
{
|
||||
ret = SF_SIM_ERROR_AT_TIMEOUT;
|
||||
SLOGE((SINT8 *)gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE((SINT8 *)logStr);
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_NET_REG_END;
|
||||
}
|
||||
}
|
||||
|
@ -3412,9 +3463,9 @@ SINT32 sf_quectel_net_regist(void)
|
|||
else
|
||||
{
|
||||
ret = SF_SIM_ERROR_NO_SIGNAL;
|
||||
SLOGE((SINT8 *)gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE((SINT8 *)logStr);
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_NET_REG_END;
|
||||
}
|
||||
}
|
||||
|
@ -3425,9 +3476,9 @@ SINT32 sf_quectel_net_regist(void)
|
|||
if(callTime > 10)
|
||||
{
|
||||
ret = SF_SIM_ERROR_AT_TIMEOUT;
|
||||
SLOGE((SINT8 *)gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE((SINT8 *)logStr);
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_NET_REG_END;
|
||||
}
|
||||
}
|
||||
|
@ -3435,7 +3486,7 @@ SINT32 sf_quectel_net_regist(void)
|
|||
break;
|
||||
|
||||
case QUECTEL_NETREG_CSQ:
|
||||
sf_normal_log((SINT8 *)gsmPara);
|
||||
SLOGI(gsmPara);
|
||||
|
||||
if(strstr((const char *)gsmPara, "OK"))
|
||||
{
|
||||
|
@ -3464,9 +3515,9 @@ SINT32 sf_quectel_net_regist(void)
|
|||
callTime = 0;
|
||||
|
||||
ret = SF_SIM_ERROR_NO_SIGNAL;
|
||||
SLOGE((SINT8 *)gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE((SINT8 *)logStr);
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_NET_REG_END;
|
||||
}
|
||||
else
|
||||
|
@ -3483,7 +3534,7 @@ SINT32 sf_quectel_net_regist(void)
|
|||
|
||||
ret = SF_SIM_ERROR_NO_SIGNAL;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_NET_REG_END;
|
||||
}
|
||||
|
@ -3502,9 +3553,9 @@ SINT32 sf_quectel_net_regist(void)
|
|||
if(callTime > 10)
|
||||
{
|
||||
ret = SF_SIM_ERROR_AT_TIMEOUT;
|
||||
SLOGE((SINT8 *)gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE((SINT8 *)logStr);
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_NET_REG_END;
|
||||
}
|
||||
}
|
||||
|
@ -3522,9 +3573,8 @@ SINT32 sf_quectel_net_regist(void)
|
|||
|
||||
if(pTemp != NULL)
|
||||
{
|
||||
memset(OperatorNameL, '\0', sizeof(OperatorNameL));
|
||||
strcpy((char *)OperatorNameL, pTemp);
|
||||
SF_LOG("OperatorNameL=%s", OperatorNameL);
|
||||
snprintf(puiPara->ServiceProvider, sizeof(puiPara->ServiceProvider), "%s", pTemp);
|
||||
SF_LOG("OperatorNameL=%s", puiPara->ServiceProvider);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3553,12 +3603,12 @@ SINT32 sf_quectel_net_regist(void)
|
|||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
sf_4g_get_data(gsmPara, 200, 1);
|
||||
sf_gsm_para_buff_clear();
|
||||
sf_hal_ttyusb2_read(gsmPara, 200);
|
||||
|
||||
if(gsmPara[0] != '\0')
|
||||
{
|
||||
printf("eNetRegLocation:%d\ngsmPara:%s\n", eNetRegLocation, gsmPara);
|
||||
MLOGD("eNetRegLocation:%d\ngsmPara:%s\n", eNetRegLocation, gsmPara);
|
||||
}
|
||||
|
||||
time++;
|
||||
|
@ -3567,7 +3617,7 @@ SINT32 sf_quectel_net_regist(void)
|
|||
{
|
||||
time = 0;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Wait Init Timeout.", __FUNCTION__, __LINE__);
|
||||
sprintf((char *)logStr, "[%s:%d]Wait Init Timeout.\n", __FUNCTION__, __LINE__);
|
||||
printf("%s,GprsMode=%d\n", logStr, puiPara->GprsMode);
|
||||
SLOGE(logStr);
|
||||
|
||||
|
@ -3579,7 +3629,558 @@ SINT32 sf_quectel_net_regist(void)
|
|||
SF_NET_REG_END:
|
||||
|
||||
printf("[%s:%d]ret:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************
|
||||
Function: sf_auto_net_reg
|
||||
Description: net reg, for auto start mdoe.
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: 0 SUCCESS, 1 error
|
||||
Others: N/A
|
||||
*****************************************************/
|
||||
SINT32 sf_auto_net_reg(void)
|
||||
{
|
||||
SINT32 ret = SF_SUCCESS;
|
||||
//UINT8 gsmPara[GPRS_INFO_LINE_MAX] = {0};
|
||||
SF_QUECTEL_NETREG_E eNetRegLocation = QUECTEL_NETREG_FRIST;
|
||||
UINT16 callTime = 0;
|
||||
UINT16 time = 0;
|
||||
UINT32 mm = 0;
|
||||
SINT32 ttyRet = 0;
|
||||
//UINT8 strSave[21] = {0};
|
||||
//UINT8 strNow[21] = {0};
|
||||
UINT8 strtmp[12][70] = { { 0 } };
|
||||
UINT8 netStr[16] = { 0 };
|
||||
UINT8 cqSignal = 0;
|
||||
char *pTemp = NULL;
|
||||
char *delim = NULL;
|
||||
|
||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||
|
||||
SF_LOG(" s");
|
||||
|
||||
//needRecordLogFlag = 1;
|
||||
puiPara->NetGeneration = 0;
|
||||
|
||||
sf_gsm_para_buff_clear();
|
||||
|
||||
while(sf_app_while_flag())
|
||||
{
|
||||
switch(eNetRegLocation)
|
||||
{
|
||||
case QUECTEL_NETREG_FRIST:
|
||||
|
||||
if(strstr((const char *)gsmPara, "OK"))
|
||||
{
|
||||
strcpy((char *)gsmPara, "AT+QSIMSTAT?\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen(gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
eNetRegLocation = QUECTEL_NETREG_QSIMSTAT;
|
||||
}
|
||||
else if(strstr((const char *)gsmPara, "ERROR"))
|
||||
{
|
||||
ret = SF_SIM_ERROR_AT_TIMEOUT;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy((char *)gsmPara, "ATE1\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case QUECTEL_NETREG_QSIMSTAT:
|
||||
|
||||
if((strstr((const char *)gsmPara, "+QSIMSTAT: 0,0")) || (strstr((const char *)gsmPara, "+CPIN: NOT INSERTED")))
|
||||
{
|
||||
callTime++;
|
||||
|
||||
if(callTime >= 75)
|
||||
{
|
||||
ret = SF_SIM_ERROR_NO_SIMCARD;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]ErrorCode=0x%08x,Simcard Not Inserted.", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
SF_ERROR("ErrorCode=0x%08x,Simcard Not Inserted.", ret);
|
||||
sf_set_sim_insert(0);
|
||||
sf_set_cq_signal(0);
|
||||
SF_LOG("AT+QSIMSTAT? Timeout");
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
|
||||
strcpy((char *)gsmPara, "AT+QSIMSTAT?\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
break;
|
||||
}
|
||||
else if(strstr((const char *)gsmPara, "+QSIMSTAT: 0,1"))
|
||||
{
|
||||
if(PWR_ON_SMS == sf_convert_power_on_mode())
|
||||
{
|
||||
eNetRegLocation = QUECTEL_NETREG_CGREG;
|
||||
strcpy((char *)gsmPara, "AT+CGREG?\r");
|
||||
}
|
||||
else
|
||||
{
|
||||
eNetRegLocation = QUECTEL_NETREG_QLWCFG_URC;
|
||||
strcpy((char *)gsmPara, "AT+QLWCFG=\"startup\",0\r");
|
||||
}
|
||||
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
else if((strstr((const char *)gsmPara, "+QSIMSTAT: 0,2")))
|
||||
{
|
||||
callTime++;
|
||||
|
||||
if(callTime >= 75)
|
||||
{
|
||||
ret = SF_SIM_ERROR_AT_TIMEOUT;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]ErrorCode=0x%08x,Unknown, before (U)SIM initialization.\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
SF_ERROR("ErrorCode=0x%08x,Unknown, before (U)SIM initialization.", ret);
|
||||
sf_set_sim_insert(0);
|
||||
sf_set_cq_signal(0);
|
||||
SF_LOG("AT+QSIMSTAT? Timeout");
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
|
||||
strcpy((char *)gsmPara, "AT+QSIMSTAT?\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
callTime++;
|
||||
|
||||
if(callTime > 10)
|
||||
{
|
||||
ret = SF_SIM_ERROR_AT_TIMEOUT;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
|
||||
strcpy((char *)gsmPara, "AT+QSIMSTAT?\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case QUECTEL_NETREG_QLWCFG_URC:
|
||||
|
||||
if(strstr((const char *)gsmPara, "OK"))
|
||||
{
|
||||
eNetRegLocation = QUECTEL_NETREG_QLWCFG_STARTUP;
|
||||
strcpy((char *)gsmPara, "AT+QCFG=\"tcp/windowsize\",1,100\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
//DelayTime = 50;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case QUECTEL_NETREG_QLWCFG_STARTUP:
|
||||
|
||||
if(strstr((const char *)gsmPara, "OK"))
|
||||
{
|
||||
eNetRegLocation = QUECTEL_NETREG_CGDCONT;
|
||||
//DelayTime = 200;
|
||||
|
||||
if(strstr((const char *)puiPara->Sim4gApn, APN_4G_VERIZON))
|
||||
{
|
||||
callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/
|
||||
eNetRegLocation = QUECTEL_NETREG_CGREG;
|
||||
strcpy((char *)gsmPara, "AT+CGREG?\r");
|
||||
}
|
||||
else if(strstr((const char *)puiPara->Sim4gApn, APN_4G_ATT))
|
||||
{
|
||||
sprintf((char *)gsmPara, "AT+CGDCONT=1,\"IPV4V6\",\"%s\"\r", puiPara->Sim4gApn);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf((char *)gsmPara, "%s", "AT+CGDCONT=1,\"IPV4V6\",\"\"\r");
|
||||
}
|
||||
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case QUECTEL_NETREG_CGDCONT:
|
||||
|
||||
if(strstr((const char *)gsmPara, "OK"))
|
||||
{
|
||||
eNetRegLocation = QUECTEL_NETREG_CGREG;
|
||||
strcpy((char *)gsmPara, "AT+CGREG?\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
|
||||
callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case QUECTEL_NETREG_CGREG:
|
||||
#if MEGA_TEST
|
||||
|
||||
if(puiPara->MegaTestSwitch == 1)
|
||||
{
|
||||
strcpy((char *)gsmPara, "sftest\n");
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
if((strstr((const char *)gsmPara, "+CGREG: 0,1") != NULL) || (strstr((const char *)gsmPara, "+CGREG: 0,5") != NULL))
|
||||
{
|
||||
SLOGI(gsmPara);
|
||||
eNetRegLocation = QUECTEL_NETREG_QNWINFO;
|
||||
strcpy((char *)gsmPara, "AT+QNWINFO\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
callTime = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
callTime--;
|
||||
sprintf((char *)gsmPara, "AT+CGREG?\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
|
||||
sf_sleep_ms(300);
|
||||
|
||||
if(callTime == 0)
|
||||
{
|
||||
if((strstr((const char *)puiPara->Sim4gApn, APNGPRS_WUYUAN1)) || (strstr((const char *)puiPara->Sim4gApn, APNGPRS_WUYUAN2)))
|
||||
{
|
||||
if(AddCimiTimes == 5)
|
||||
{
|
||||
simErrorCode = SIM_NO_SIGNAL;
|
||||
printf("[%s:%d]:aleady match five cimi,end to AT+CGREG?simErrorCode:%d\n", __FUNCTION__, __LINE__, simErrorCode);
|
||||
ret = SF_SIM_ERROR_MEGA;
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
else
|
||||
{
|
||||
eNetRegLocation = QUECTEL_NETREG_CIMI_2;
|
||||
sprintf((char *)gsmPara, "AT+CIMI\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = SF_SIM_ERROR_REG_NET;
|
||||
printf("[%s:%d]AT+CGREG? Timeout.\n", __FUNCTION__, __LINE__);
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]AT+CGREG? Timeout,Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case QUECTEL_NETREG_CIMI_2:
|
||||
|
||||
if(strstr((const char *)gsmPara, "OK"))
|
||||
{
|
||||
SLOGI(gsmPara);
|
||||
|
||||
delim = " \r\n";
|
||||
pTemp = strtok((char *)strstr((const char *)gsmPara, "AT+CIMI"), delim);
|
||||
mm = 0;
|
||||
memset(strtmp, '\0', sizeof(strtmp));
|
||||
while((pTemp != NULL) && (mm < 12))
|
||||
{
|
||||
strcpy((char *)strtmp[mm], (const char *)pTemp);
|
||||
printf("---pTemp[%d]:%s\n", mm, pTemp);
|
||||
mm++;
|
||||
pTemp = strtok((char *)0, delim);
|
||||
}
|
||||
|
||||
if(((strtmp[1][0] - '0') >= 0) && ((strtmp[1][0] - '0') <= 9) && ((strtmp[1][5] - '0') >= 0) && ((strtmp[1][5] - '0') <= 9))
|
||||
{
|
||||
memset(puiPara->OperatorCode, '\0', sizeof(puiPara->OperatorCode));
|
||||
strncpy((char *)puiPara->OperatorCode, (const char *)strtmp[1], 5);
|
||||
strncpy((char *)SimImei, (const char *)strtmp[1], 5);
|
||||
}
|
||||
}
|
||||
|
||||
callTime = SF_QUECTEL_NET_REG_CALLTIME_MAX; /*4 min*/
|
||||
#if MEGA_TEST
|
||||
|
||||
if(puiPara->MegaTestSwitch == 1)
|
||||
{
|
||||
if((sf_test_mode_cimi() == FAIL) && (time < 200)) //wait 200s to scanf cimi,then copy to strok;
|
||||
{
|
||||
break; //no scanf,then break,enter next while;
|
||||
}
|
||||
|
||||
callTime = puiPara->NetRegCalltime;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
if(sf_add_cimi_id((char *)SimImei) == SUCCESS) //new cimi,total cimi:5
|
||||
{
|
||||
printf("[%s:%d]:puiPara->OperatorCode:%s,new cimi:%s\n", __FUNCTION__, __LINE__, puiPara->OperatorCode, SimImei);
|
||||
eNetRegLocation = QUECTEL_NETREG_CGREG; //return net reg.
|
||||
sprintf((char *)gsmPara, "AT+CGREG?\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
AddCimiTimes++;
|
||||
time = 0;
|
||||
|
||||
//sf_set_netsearch_step(GPRS_SEARCH_STEP_RETRYING);
|
||||
//sp5kHostMsgSend(APP_UI_MSG_TRANSFER_REFLUSH, 0, 0, 0);
|
||||
}
|
||||
else //cimi already exist
|
||||
{
|
||||
simErrorCode = SIM_MEGA_ERROR;
|
||||
printf("[%s:%d]:exist cimi,end to AT+CGREG?simErrorCode:%d\n", __FUNCTION__, __LINE__, simErrorCode);
|
||||
ret = SF_SIM_ERROR_MEGA;
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case QUECTEL_NETREG_QNWINFO:
|
||||
|
||||
if(strstr((const char *)gsmPara, "+QNWINFO:") != NULL)
|
||||
{
|
||||
SLOGI(gsmPara);
|
||||
|
||||
if(strstr((const char *)gsmPara, "No Service"))
|
||||
{
|
||||
puiPara->NetGeneration = 2;
|
||||
}
|
||||
else if(NULL != strtok((char *)(char *)gsmPara, "\""))
|
||||
{
|
||||
strcpy((char *)netStr, strtok((char *)NULL, "\""));
|
||||
SF_LOG("netStr=%s", netStr);
|
||||
|
||||
if((strstr((const char *)netStr, "DD") != NULL))
|
||||
{
|
||||
puiPara->NetGeneration = 4;
|
||||
}
|
||||
else if(strstr((const char *)netStr, "CDMA") != NULL || strstr((const char *)netStr, "HDR") != NULL || strstr((const char *)netStr, "HSUPA") != NULL
|
||||
|| strstr((const char *)netStr, "HSDPA") != NULL || (strstr((const char *)netStr, "HSPA+") != NULL))
|
||||
{
|
||||
puiPara->NetGeneration = 3;
|
||||
}
|
||||
else if(strstr((const char *)netStr, "CMDA") != NULL || strstr((const char *)netStr, "G") != NULL)
|
||||
{
|
||||
puiPara->NetGeneration = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
puiPara->NetGeneration = 2;
|
||||
}
|
||||
}
|
||||
|
||||
if(puiPara->NetGeneration == 4)
|
||||
{
|
||||
eNetRegLocation = QUECTEL_NETREG_QCSQ;
|
||||
strcpy((char *)gsmPara, "AT+QCSQ\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
callTime = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
eNetRegLocation = QUECTEL_NETREG_CSQ;
|
||||
strcpy((char *)gsmPara, "AT+CSQ\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
callTime = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
callTime++;
|
||||
|
||||
if(callTime > 10)
|
||||
{
|
||||
ret = SF_SIM_ERROR_AT_TIMEOUT;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case QUECTEL_NETREG_QCSQ:
|
||||
|
||||
if(strstr((const char *)gsmPara, "+QCSQ:"))
|
||||
{
|
||||
if(sf_qcsq_decode(gsmPara, &cqSignal) == SUCCESS)
|
||||
{
|
||||
if(cqSignal == 0)
|
||||
{
|
||||
callTime++;
|
||||
|
||||
if(callTime <= 10)
|
||||
{
|
||||
strcpy((char *)gsmPara, "AT+QCSQ\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
break;
|
||||
}
|
||||
|
||||
/*else
|
||||
{
|
||||
cqSignal = 105; //QCSQ=0 is module bug
|
||||
}*/
|
||||
}
|
||||
|
||||
sf_set_cq_signal(cqSignal);
|
||||
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = SF_SIM_ERROR_NO_SIGNAL;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
callTime++;
|
||||
|
||||
if(callTime > 10)
|
||||
{
|
||||
ret = SF_SIM_ERROR_AT_TIMEOUT;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case QUECTEL_NETREG_CSQ:
|
||||
SLOGI(gsmPara);
|
||||
|
||||
if(strstr((const char *)gsmPara, "OK"))
|
||||
{
|
||||
delim = " ,\r\n";
|
||||
pTemp = strtok((char *)strstr((const char *)gsmPara, "+CSQ:"), delim);
|
||||
mm = 0;
|
||||
memset(strtmp, '\0', sizeof(strtmp));
|
||||
|
||||
while((pTemp != NULL) && (mm < 20))
|
||||
{
|
||||
strcpy((char *)strtmp[mm], (const char *)pTemp);
|
||||
printf("[%s:%d]pTemp[%d]:%s\n", __FUNCTION__, __LINE__, mm, pTemp);
|
||||
mm++;
|
||||
pTemp = strtok((char *)0, delim);
|
||||
}
|
||||
|
||||
cqSignal = (atoi((const char *)strtmp[1]));
|
||||
sf_set_cq_signal(cqSignal);
|
||||
|
||||
if(cqSignal > 31)
|
||||
{
|
||||
callTime++;
|
||||
|
||||
if(callTime > 10)
|
||||
{
|
||||
callTime = 0;
|
||||
|
||||
ret = SF_SIM_ERROR_NO_SIGNAL;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy((char *)gsmPara, "AT+CSQ\r");
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
sf_sleep_ms(300);
|
||||
}
|
||||
}
|
||||
else if(cqSignal <= 1)
|
||||
{
|
||||
callTime = 0;
|
||||
|
||||
ret = SF_SIM_ERROR_NO_SIGNAL;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
else
|
||||
{
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
callTime++;
|
||||
|
||||
if(callTime > 10)
|
||||
{
|
||||
ret = SF_SIM_ERROR_AT_TIMEOUT;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(logStr);
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
sf_gsm_para_buff_clear();
|
||||
sf_hal_ttyusb2_read(gsmPara, 200);
|
||||
|
||||
if(gsmPara[0] != '\0')
|
||||
{
|
||||
MLOGD("eNetRegLocation:%d\ngsmPara:%s\n", eNetRegLocation, gsmPara);
|
||||
}
|
||||
|
||||
time++;
|
||||
|
||||
if(time > 800)
|
||||
{
|
||||
ret = SF_SIM_ERROR_AT_TIMEOUT;
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)logStr, "[%s:%d]Wait Init Timeout.\n", __FUNCTION__, __LINE__);
|
||||
SLOGE(logStr);
|
||||
time = 0;
|
||||
goto SF_MODULE_END;
|
||||
}
|
||||
}
|
||||
|
||||
SF_MODULE_END:
|
||||
printf("[%s:%d]ret:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -4279,6 +4880,50 @@ SINT32 sf_4g_set_module_minimun_fun(void)
|
|||
return ret;
|
||||
}
|
||||
|
||||
void sf_gprs_wait_network_scan_finish(UINT8 refresh)
|
||||
{
|
||||
|
||||
if(NetworkScan == TRUE)
|
||||
{
|
||||
//sf_gprs_network_ready(refresh);
|
||||
|
||||
while(NetworkScan == TRUE)
|
||||
{
|
||||
sleep(1000);
|
||||
}
|
||||
|
||||
GprsNetWorkReady = FALSE;
|
||||
//sf_wait_at_ready();
|
||||
}
|
||||
}
|
||||
|
||||
SINT32 sf_add_cimi_id(char *cimi)
|
||||
{
|
||||
int ret = SUCCESS;
|
||||
sf_cimi_id_t *n;
|
||||
sf_cimi_id_t *nck;
|
||||
|
||||
for(nck = cimi_head.next; nck != NULL; nck = nck->next)
|
||||
{
|
||||
printf("[%s:%d]old:nck->id:%d,nck->cimi:%s\n\n", __FUNCTION__, __LINE__, nck->id, nck->cimi);
|
||||
|
||||
if(strstr((const char *)nck->cimi, cimi) || ((nck->id) >= 5))
|
||||
{
|
||||
return nck->id;
|
||||
}
|
||||
}
|
||||
|
||||
n = malloc(sizeof(sf_cimi_id_t));
|
||||
memset(n->cimi, '\0', sizeof(n->cimi));
|
||||
strncpy((char *)n->cimi, cimi, 5);
|
||||
n->id = cimi_head.id++;
|
||||
|
||||
printf("[%s:%d]new:n->id:%d,n->cimi:%s\n", __FUNCTION__, __LINE__, n->id, n->cimi);
|
||||
n->next = cimi_head.next;
|
||||
cimi_head.next = n;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -19,6 +19,7 @@ extern "C" {
|
|||
#include "sf_eg91_server.h"
|
||||
//#ifndef CFG_TRANSDATA_AT
|
||||
#include "sf_http_server.h"
|
||||
#include "sf_message_queue.h"
|
||||
//#endif
|
||||
#endif
|
||||
|
||||
|
@ -39,9 +40,18 @@ SF_4G_STATUS_E sf_4G_status_get(void)
|
|||
|
||||
void sf_4G_status_set(SF_4G_STATUS_E enStatus)
|
||||
{
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
if(enStatus < SF_4G_BUTT){
|
||||
|
||||
if(enStatus < SF_4G_BUTT)
|
||||
if(ModuleStatus != enStatus)
|
||||
{
|
||||
stMessageBuf.arg1 = enStatus;
|
||||
stMessageBuf.arg1 = SF_PARA_CMD_NET_STATUS;
|
||||
stMessageBuf.cmdId = CMD_PARA;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
}
|
||||
ModuleStatus = enStatus;
|
||||
}
|
||||
else
|
||||
MLOGE("Type format error\n");
|
||||
|
||||
|
@ -248,20 +258,22 @@ SINT32 sf_4G_gps_search_result(SF_FN_PARAM_S *pfnParam)
|
|||
SINT32 sf_4G_sim_init(SF_FN_PARAM_S *pfnParam)
|
||||
{
|
||||
#if defined(CFG_MODULE_EG91)
|
||||
//return sf_quectel_module_complete_init();
|
||||
return eg91_sim_init(pfnParam);
|
||||
//return eg91_sim_init(pfnParam);
|
||||
return sf_module_complete_init();
|
||||
#endif
|
||||
}
|
||||
SINT32 sf_4G_register_net_manual(SF_FN_PARAM_S *pfnParam)
|
||||
{
|
||||
#if defined(CFG_MODULE_EG91)
|
||||
return eg91_register_net_manual(pfnParam);
|
||||
//return eg91_register_net_manual(pfnParam);
|
||||
return sf_net_regist_manual();
|
||||
#endif
|
||||
}
|
||||
SINT32 sf_4G_register_net_auto(SF_FN_PARAM_S *pfnParam)
|
||||
{
|
||||
#if defined(CFG_MODULE_EG91)
|
||||
return eg91_register_net_auto(pfnParam);
|
||||
//return eg91_register_net_auto(pfnParam);
|
||||
return sf_auto_net_reg();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ extern "C" {
|
|||
|
||||
#define MMS_SET (0)
|
||||
|
||||
UINT16 sf_auto_operation_adaptation(SF_CHAR *operatorName, UIMenuStoreInfo *sim_info_t)
|
||||
SINT32 sf_auto_operation_adaptation(SF_CHAR *operatorName, UIMenuStoreInfo *sim_info_t)
|
||||
{
|
||||
MLOGD("Auto_Operation_Adjust NEW, Name:%s\n", operatorName);
|
||||
if((strncmp(operatorName, "46001", 5) == 0) || (strncmp(operatorName, "46010", 5) == 0)) //china union
|
||||
|
@ -1255,6 +1255,7 @@ UINT16 sf_auto_operation_adaptation(SF_CHAR *operatorName, UIMenuStoreInfo *sim_
|
|||
strcpy(puiPara->PORT, "8080");
|
||||
strcpy(puiPara->USERNAME, "\0");
|
||||
strcpy(puiPara->PASSWORD, "\0");
|
||||
|
||||
#endif
|
||||
}
|
||||
else if (strncmp(operatorName, "26801", 5) == 0) //Portugal vodafone
|
||||
|
|
|
@ -37,6 +37,11 @@
|
|||
#include "sf_device.h"
|
||||
#include "sf_storeMng.h"
|
||||
#include "sf_commMng.h"
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include "sf_fileMng.h"
|
||||
#include "sf_battery.h"
|
||||
|
||||
/**************************************************************************
|
||||
* C O N S T A N T S *
|
||||
**************************************************************************/
|
||||
|
@ -137,13 +142,13 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
{
|
||||
i = 0;
|
||||
|
||||
if(strValue[0][2] == '*')
|
||||
if(strValue[0][3] == '*')
|
||||
{
|
||||
totalItem = strValue[i][3] - '0';
|
||||
totalItem = strValue[i][4] - '0';
|
||||
|
||||
if((strValue[i][4] >= '0') && (strValue[i][4] <= '9'))
|
||||
if((strValue[i][5] >= '0') && (strValue[i][5] <= '9'))
|
||||
{
|
||||
totalItem = totalItem * 10 + (strValue[i][4] - '0');
|
||||
totalItem = totalItem * 10 + (strValue[i][5] - '0');
|
||||
printf("value ok\n");
|
||||
}
|
||||
else
|
||||
|
@ -162,7 +167,7 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
|
||||
if((strValue[0][0] =='R') && (strValue[0][1] == '0') && (strValue[0][2] == '1') && (strValue[0][3] == '*'))
|
||||
{
|
||||
if((mm >= 29) && (mm == totalItem))
|
||||
if((mm >= 29)/* && (mm == totalItem)*/)
|
||||
{
|
||||
Readmmsok = SMS_STATUS_RECIEV;
|
||||
|
||||
|
@ -910,7 +915,7 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
*sms_send_mode = 0;
|
||||
}else if((strValue[0][0] =='R') && (strValue[0][1] == '0') && (strValue[0][2] == '3') && (strValue[0][3] == '*'))
|
||||
{
|
||||
if((mm >= 1 ) && (mm == totalItem))
|
||||
if((mm >= 1 )/* && (mm == totalItem)*/)
|
||||
{
|
||||
//send the pic
|
||||
if(strlen((const char *)strValue[i]) == 5)
|
||||
|
@ -942,7 +947,7 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
*sms_send_mode = 0;
|
||||
}else if((strValue[0][0] =='R') && (strValue[0][1] == '0') && (strValue[0][2] == '4') && (strValue[0][3] == '*'))
|
||||
{
|
||||
if((mm == 1 ) && (mm == totalItem)) //module update
|
||||
if((1 == mm) /* && (mm == totalItem)*/) //module update
|
||||
{
|
||||
if(SF_STRLEN(strValue[i]) == 5)
|
||||
{
|
||||
|
@ -973,7 +978,7 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
}else if((strValue[0][0] =='R') && (strValue[0][1] == '0') && (strValue[0][2] == '5') && (strValue[0][3] == '*'))
|
||||
{
|
||||
mm--;
|
||||
if((mm == atoi((const char *)&strValue[0][4]) ) && (mm == totalItem)) //send HD pic
|
||||
if((atoi((const char *)&strValue[0][4]) == mm )/* && (mm == totalItem)*/) //send HD pic
|
||||
{
|
||||
Readmmsok = SMS_STATUS_RECIEV;
|
||||
printf("subscribeSendCnt:%d\n", pSifarPara->subscribeSendCnt);
|
||||
|
@ -990,12 +995,12 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
Readmmsok = SMS_STATUS_PARA_ERR;
|
||||
}
|
||||
}
|
||||
sf_hd_pic_list_print();//debug
|
||||
|
||||
if(((pSubImgListHead != NULL) && (pSubImgListHead->pNext != NULL) && (pSifarPara->subscribeSendCnt < SUBSCRIBE_SEND_MAX_NUM) && (pPara_sms_saved->GprsMode != 1))
|
||||
||((pSubImgListHead != NULL) && (pSubImgListHead->pNext != NULL) && (pPara_sms_saved->GprsMode == 1)))
|
||||
{
|
||||
CameraCmd.sendHD = 1;
|
||||
sf_hd_pic_list_print();//debug
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -1007,7 +1012,7 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
*sms_send_mode = 0;
|
||||
}else if((strValue[0][0] =='R') && (strValue[0][1] == '0') && (strValue[0][2] == '6') && (strValue[0][3] == '*'))
|
||||
{
|
||||
if((mm == 1) && (mm == totalItem)) //FW update
|
||||
if((1 == mm)/* && (mm == totalItem)*/) //FW update
|
||||
{
|
||||
if(SF_STRLEN(strValue[i]) == 5)
|
||||
{
|
||||
|
@ -1037,7 +1042,7 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
*sms_send_mode = 0;
|
||||
}else if((strValue[0][0] =='R') && (strValue[0][1] == '0') && (strValue[0][2] == '7') && (strValue[0][3] == '*'))
|
||||
{
|
||||
if((mm == 1) && (mm == totalItem)) //get log
|
||||
if((1 == mm)/* && (mm == totalItem)*/) //get log
|
||||
{
|
||||
if(SF_STRLEN(strValue[i]) == 5)
|
||||
{
|
||||
|
@ -1067,7 +1072,7 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
*sms_send_mode = 0;
|
||||
}else if((strValue[0][0] =='R') && (strValue[0][1] == '0') && (strValue[0][2] == '8') && (strValue[0][3] == '*'))
|
||||
{
|
||||
if((mm == 1) && (mm == totalItem)) //sd format
|
||||
if((1 == mm)/* && (mm == totalItem)*/) //sd format
|
||||
{
|
||||
if(SF_STRLEN(strValue[i]) == 5)
|
||||
{
|
||||
|
@ -1114,12 +1119,11 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
}
|
||||
}
|
||||
|
||||
sf_video_list_print();//debug
|
||||
|
||||
if(((pSubVideoListHead != NULL) && (pSubVideoListHead->pNext != NULL) && (pSifarPara->subscribeVideoSendCnt < SUBSCRIBE_VIDEO_SEND_MAX_NUM) && (pPara_sms_saved->GprsMode != 1))
|
||||
|| ((pSubVideoListHead != NULL) && (pSubVideoListHead->pNext != NULL) && (pPara_sms_saved->GprsMode == 1)))
|
||||
{
|
||||
CameraCmd.sendVideo = 1;
|
||||
sf_video_list_print();//debug
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -1130,7 +1134,7 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
*sms_send_mode = 0;
|
||||
}else if((strValue[0][0] =='R') && (strValue[0][1] == '1') && (strValue[0][2] == '0') && (strValue[0][3] == '*'))
|
||||
{
|
||||
if((mm == 1) && (mm == totalItem)) //reset
|
||||
if((1 == mm)/* && (mm == totalItem)*/) //reset
|
||||
{
|
||||
if((strValue[i][4] - '0') == 1)
|
||||
{
|
||||
|
@ -1152,7 +1156,7 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
*sms_send_mode = 0;
|
||||
}else if((strValue[0][0] =='R') && (strValue[0][1] == '1') && (strValue[0][2] == '1') && (strValue[0][3] == '*'))
|
||||
{
|
||||
if((mm == 1) && (mm == totalItem)) //restart
|
||||
if((1 == mm)/* && (mm == totalItem)*/) //restart
|
||||
{
|
||||
if(SF_STRLEN(strValue[i]) == 5)
|
||||
{
|
||||
|
@ -1181,7 +1185,7 @@ UINT8 sf_message_data_processing(UINT8 strValue[30][32], UINT16 mm, UINT8 *sms_s
|
|||
*sms_send_mode = 0;
|
||||
}else if((strValue[0][0] =='R') && (strValue[0][1] == '0') && (strValue[0][2] == 'd') && (strValue[0][3] == '*'))
|
||||
{
|
||||
if(mm == 1) //debug mode
|
||||
if((1 == mm)/* && (mm == totalItem)*/) //debug mode
|
||||
{
|
||||
if(SF_STRLEN(strValue[i]) == 5)
|
||||
{
|
||||
|
@ -1464,7 +1468,7 @@ SINT32 sf_sms_read_message(void)
|
|||
while(temp != 0)
|
||||
{
|
||||
strcpy((char *)strValue[mm], (const char *)temp);
|
||||
printf("strValue[%d]:%s", mm, strValue[mm]);
|
||||
printf("strValue[%d]:%s\n", mm, strValue[mm]);
|
||||
mm++;
|
||||
temp = (UINT8 *)strsep(&pStr, "#");
|
||||
}
|
||||
|
@ -1613,7 +1617,7 @@ SINT32 sf_sms_read_message(void)
|
|||
sprintf((char *)gsmPara, "SMS unknown error!\x1a\r");
|
||||
}
|
||||
|
||||
sf_error_log((SINT8 *)gsmPara);
|
||||
SLOGE((SINT8 *)gsmPara);
|
||||
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
|
@ -1648,9 +1652,9 @@ SINT32 sf_sms_read_message(void)
|
|||
sts = SF_SMS_ERROR_SEND_MSG;
|
||||
add = 0;
|
||||
|
||||
sf_error_log((SINT8 *)gsmPara);
|
||||
SLOGE((SINT8 *)gsmPara);
|
||||
sprintf((char *)errMsg, "[%s:%d]Send SMS Three Times,Error Code:0x%08X", __FUNCTION__, __LINE__, sts);
|
||||
sf_error_log((SINT8 *)errMsg);
|
||||
SLOGE((SINT8 *)errMsg);
|
||||
}
|
||||
}
|
||||
else if(strstr((const char *)gsmPara, "ERROR"))
|
||||
|
@ -1658,9 +1662,9 @@ SINT32 sf_sms_read_message(void)
|
|||
eSmsLocation = SMS_SIM_CMDFLAG;
|
||||
Readmmsok = 0;
|
||||
sts = SF_SMS_ERROR_SEND_MSG;
|
||||
sf_error_log((SINT8 *)gsmPara);
|
||||
SLOGE((SINT8 *)gsmPara);
|
||||
sprintf((char *)errMsg, "[%s:%d]Send SMS Fail,Error Code:0x%08X", __FUNCTION__, __LINE__, sts);
|
||||
sf_error_log((SINT8 *)errMsg);
|
||||
SLOGE((SINT8 *)errMsg);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -2109,13 +2113,45 @@ void sf_hd_pic_add_to_list(UINT8 *fileName)
|
|||
void sf_hd_pic_list_print(void)
|
||||
{
|
||||
UINT8 i = 0;
|
||||
int fd = 0;
|
||||
struct stat st_buffer;
|
||||
char sendListName[64] = {0};
|
||||
char buff[SF_SEND_LIST_ITEM_LENGTH+1] = {0};
|
||||
SubImgList_t *pList = pSubImgListHead;
|
||||
printf("[%s:%d] print list:\n", __FUNCTION__, __LINE__);
|
||||
SF_HDFILE_ATTR_S* fileCfg = sf_file_hd_cfg_get();
|
||||
|
||||
if (stat(SF_HD_DIR, &st_buffer) == 0 && S_ISDIR(st_buffer.st_mode)) {
|
||||
printf("%s exists\n", SF_HD_DIR);
|
||||
}
|
||||
else{
|
||||
if (mkdir(SF_HD_DIR, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) != 0) {
|
||||
printf("Failed to create directory");
|
||||
}
|
||||
}
|
||||
snprintf(sendListName, sizeof(sendListName), "%s", SF_HD_DIR_LIST);
|
||||
fd = open(sendListName, O_APPEND | O_WRONLY | O_CREAT);
|
||||
if(fd){
|
||||
lseek(fd, 0, SEEK_SET);
|
||||
while(pList != NULL)
|
||||
{
|
||||
snprintf(buff, sizeof(buff), "%d%d\r\n", pList->dirKey, pList->fileKey);
|
||||
write(fd, buff, strlen(buff));
|
||||
printf("ID:%d f:%d,%d\n", i++, pList->dirKey, pList->fileKey);
|
||||
fileCfg->stfileattr[fileCfg->filecnt].dirKey = pList->dirKey;
|
||||
fileCfg->stfileattr[fileCfg->filecnt].fileKey = pList->fileKey;
|
||||
fileCfg->filecnt += 1;
|
||||
pList = pList->pNext;
|
||||
}
|
||||
close(fd);
|
||||
}
|
||||
else{
|
||||
while(pList != NULL)
|
||||
{
|
||||
printf("ID:%d f:%d,%d\n", i++, pList->dirKey, pList->fileKey);
|
||||
pList = pList->pNext;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -2189,10 +2225,15 @@ void sf_video_add_to_list(UINT8 *fileName)
|
|||
void sf_video_list_print(void)
|
||||
{
|
||||
UINT8 i = 0;
|
||||
SF_HDFILE_ATTR_S* fileCfg = sf_file_video_cfg_get();
|
||||
SubImgList_t *pList = pSubVideoListHead;
|
||||
printf("[%s:%d] print list:\n", __FUNCTION__, __LINE__);
|
||||
while(pList != NULL)
|
||||
{
|
||||
fileCfg->stfileattr[fileCfg->filecnt].dirKey = pList->dirKey;
|
||||
fileCfg->stfileattr[fileCfg->filecnt].fileKey = pList->fileKey;
|
||||
fileCfg->filecnt += 1;
|
||||
pList = pList->pNext;
|
||||
printf("ID:%d f:%d,%d\n", i++, pList->dirKey, pList->fileKey);
|
||||
pList = pList->pNext;
|
||||
}
|
||||
|
@ -2492,7 +2533,7 @@ SINT32 sf_power_off_check_sd(void)
|
|||
|
||||
if(sf_in_card_exist())
|
||||
{
|
||||
if(sf_get_mode_flag() /*|| (PowerOnMode == PWR_ON_GPRS_INIT)*/)
|
||||
if(sf_get_mode_flag() || ((0 == puiPara->SendType)))
|
||||
sf_delete_send_flie_list();
|
||||
}
|
||||
|
||||
|
@ -2539,6 +2580,7 @@ SINT32 sf_power_off_check_gprs(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
|
@ -2691,3 +2733,56 @@ UINT8 sf_sms_check_send(void)
|
|||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf get send hd
|
||||
Description: get hd flag
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: 0:SUCCESS, errcode:FAIL
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
UINT8 sf_get_send_hd(void)
|
||||
{
|
||||
return CameraCmd.sendHD;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf get send hd
|
||||
Description: get hd flag
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: 0:SUCCESS, errcode:FAIL
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
UINT8 sf_set_send_hd(UINT8 value)
|
||||
{
|
||||
CameraCmd.sendHD =value;
|
||||
return CameraCmd.sendHD;
|
||||
}
|
||||
/*************************************************
|
||||
Function: sf get send video
|
||||
Description: get video flag
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: 0:SUCCESS, errcode:FAIL
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
UINT8 sf_get_send_video(void)
|
||||
{
|
||||
return CameraCmd.sendVideo;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf get send video
|
||||
Description: get video flag
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: 0:SUCCESS, errcode:FAIL
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
UINT8 sf_set_send_video(UINT8 value)
|
||||
{
|
||||
CameraCmd.sendVideo = value;
|
||||
return CameraCmd.sendVideo;
|
||||
}
|
|
@ -50,7 +50,7 @@
|
|||
#include <sys/vfs.h>
|
||||
#include "sf_keymng.h"
|
||||
#include "sf_wifi_svr.h"
|
||||
|
||||
#include "sf_battery.h"
|
||||
//#include <libavcodec/avcodec.h>
|
||||
//#include <libavformat/avformat.h>
|
||||
//#include <libavutil/imgutils.h>
|
||||
|
@ -62,7 +62,7 @@ extern pthread_mutex_t GPIO_mutexLock;
|
|||
//---------------------UIInfo Global Variables -----------------------------
|
||||
UIMenuStoreInfo currentInfo = {0}; //#NT#Init the array to zero.
|
||||
UIMenuStoreInfo origInfo = {0}; /* backup */
|
||||
|
||||
UIMenuStoreInfo origInfo_check = {0}; /* backup */
|
||||
void sf_signalStop(SINT32 signo)
|
||||
{
|
||||
printf("\nsignalStop(signal code: %d) !!!\n", signo);
|
||||
|
@ -95,7 +95,44 @@ int test_sd_free(void)
|
|||
|
||||
return 0;
|
||||
}
|
||||
UINT8 sf_check_power_on_mode(void)
|
||||
{
|
||||
FILE *fp = NULL;
|
||||
UINT32 u32ize = 0;
|
||||
char *pStrSrc = NULL;
|
||||
char *pStrOtsOk = "Mode=";
|
||||
char *temp = NULL;
|
||||
UINT8 startup = 0;
|
||||
|
||||
system("cat /proc/cmdline > /tmp/Mode.txt");
|
||||
fp = fopen("/tmp/Mode.txt","r");
|
||||
if(fp == NULL){
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
fseek(fp, 0, SEEK_END);
|
||||
u32ize = ftell(fp); // take file size
|
||||
fseek(fp, 0, SEEK_SET); // move to position zero
|
||||
pStrSrc = (char *)malloc(u32ize*sizeof(char));
|
||||
if (pStrSrc) {
|
||||
fread(pStrSrc, 1, u32ize, fp);
|
||||
temp = strstr(pStrSrc, pStrOtsOk);
|
||||
if ( temp != NULL) {
|
||||
temp += strlen("Mode=");
|
||||
sscanf(temp, "%hhd", &startup);
|
||||
printf("%s: PowerOnModeStr=%d\r\n", __func__,startup);
|
||||
//printf("%s: temp=%s\r\n", __func__,temp);
|
||||
}
|
||||
free(pStrSrc);
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
fp = NULL;
|
||||
pStrSrc = NULL;
|
||||
u32ize = 0;
|
||||
|
||||
return startup;
|
||||
}
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
printf("*********************************************\n");
|
||||
|
@ -126,12 +163,17 @@ int main(int argc, char *argv[])
|
|||
//app_led_group_register();
|
||||
app_message_recv_start();
|
||||
|
||||
sf_poweron_type_set(sf_check_power_on_mode());
|
||||
|
||||
sf_mcu_flag_init();
|
||||
sf_mcu_init();
|
||||
sf_get_power_on_mode();
|
||||
sf_mcu_wdg_set(30);
|
||||
|
||||
sf_led_init();
|
||||
|
||||
sf_customer_param_load();
|
||||
sf_app_para_check_start();
|
||||
|
||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||
|
||||
|
@ -143,8 +185,10 @@ int main(int argc, char *argv[])
|
|||
sf_mcu_reg_set(SF_MCU_CTRL_MODULE_PIR, 1);
|
||||
}
|
||||
|
||||
sf_battery_check_init();
|
||||
sf_app_battery_start();
|
||||
//sf_app_data_ready_start();
|
||||
|
||||
sf_led_init();
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_PIR_NOT_DETECT);
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_NORMAL);
|
||||
|
||||
|
@ -168,7 +212,10 @@ int main(int argc, char *argv[])
|
|||
//sf_wifi_app_start();
|
||||
}
|
||||
#if SF_IQ_TEST != ENABLE
|
||||
if(SF_MCU_STARTUP_NORMAL != startup)
|
||||
{
|
||||
app_RegisterNet_start();
|
||||
}
|
||||
#endif
|
||||
SLOGD("poweron type beginning :[%d,%s]\n", startup, sf_poweron_type_string(startup));
|
||||
/*if(SF_MCU_STARTUP_ONKEY != startup)
|
||||
|
|
|
@ -58,6 +58,9 @@ extern "C" {
|
|||
extern pthread_mutex_t Param_mutexLock;
|
||||
SINT8 longClickhold = 0;
|
||||
SINT8 bmoduleupdate = 0;
|
||||
static UINT8 ModuleUpdating = 0;
|
||||
static UINT8 FwUpdate = 0;
|
||||
static UINT8 IsNightLedOn = 0;
|
||||
|
||||
static SF_THREAD_CFG_S sf_msgQueueThread =
|
||||
{
|
||||
|
@ -65,6 +68,44 @@ static SF_THREAD_CFG_S sf_msgQueueThread =
|
|||
.TskId = -1,
|
||||
};
|
||||
|
||||
|
||||
UINT8 sf_get_module_update(void)
|
||||
{
|
||||
return ModuleUpdating;
|
||||
}
|
||||
|
||||
void sf_set_module_update(UINT8 flag)
|
||||
{
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
if(ModuleUpdating != flag)
|
||||
{
|
||||
stMessageBuf.arg1 = flag;
|
||||
stMessageBuf.arg1 = SF_PARA_CMD_MOUP;
|
||||
stMessageBuf.cmdId = CMD_PARA;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
}
|
||||
ModuleUpdating = flag;
|
||||
}
|
||||
|
||||
UINT8 sf_get_fw_update(void)
|
||||
{
|
||||
return FwUpdate;
|
||||
}
|
||||
|
||||
void sf_set_fw_update(UINT8 flag)
|
||||
{
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
|
||||
if(FwUpdate != flag)
|
||||
{
|
||||
stMessageBuf.arg1 = flag;
|
||||
stMessageBuf.arg1 = SF_PARA_CMD_FWUP;
|
||||
stMessageBuf.cmdId = CMD_PARA;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
}
|
||||
FwUpdate = flag;
|
||||
}
|
||||
|
||||
const SF_CHAR* app_process_SD_getstatusstring(SF_MESSAGE_CMD_SD_E enType)
|
||||
{
|
||||
switch(enType)
|
||||
|
@ -655,6 +696,7 @@ static SINT32 sf_app_proccess_cmd_file(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
}
|
||||
static SINT32 sf_app_proccess_cmd_poweroff(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||
{
|
||||
sf_app_para_check_stop();
|
||||
return app_system_poweroff(pMessageBuf->arg1);
|
||||
}
|
||||
|
||||
|
@ -664,8 +706,6 @@ static SINT32 sf_app_proccess_cmd_mcu(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
MLOGI("ID = %#x\n",pMessageBuf->arg1);
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
|
||||
|
||||
|
||||
switch(pMessageBuf->arg1)
|
||||
{
|
||||
case SF_MCU_CMD_POWERON:
|
||||
|
@ -703,7 +743,15 @@ static SINT32 sf_app_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
case SF_PARA_CMD_UPDATE:
|
||||
sf_share_mem_customer_update();
|
||||
break;
|
||||
|
||||
case SF_PARA_CMD_FWUP:
|
||||
ModuleUpdating = pMessageBuf->arg2;
|
||||
break;
|
||||
case SF_PARA_CMD_MOUP:
|
||||
FwUpdate = pMessageBuf->arg2;
|
||||
break;
|
||||
case SF_PARA_CMD_IR_LED_STATUS:
|
||||
IsNightLedOn = pMessageBuf->arg2;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -720,7 +768,9 @@ static SINT32 sf_app_proccess_cmd_wifi(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
//sf_wifi_app_start();
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_WIFI_DISCONNECT);
|
||||
break;
|
||||
case SF_WIFI_CMD_HD_TURE:
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -849,6 +899,10 @@ void app_message_recv_start(void)
|
|||
|
||||
}
|
||||
|
||||
UINT8 sf_app_get_night_led_flag(void)
|
||||
{
|
||||
return IsNightLedOn;
|
||||
}
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
#include "sf_device.h"
|
||||
#include "sf_eg91_sim.h"
|
||||
#include "sf_commu_mcu_reg.h"
|
||||
|
||||
#include "sf_ftp.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
|
@ -393,7 +393,9 @@ SINT32 app_led_net_reg_stop(SINT32 s32ret)
|
|||
}
|
||||
else if(s32ret == SF_4G_ERROR_NO_SIMCARD \
|
||||
|| s32ret == SF_4G_ERROR_NO_SUPPOET \
|
||||
|| s32ret == SF_APP_ERROR_NO_SUPPOET)
|
||||
|| s32ret == SF_APP_ERROR_NO_SUPPOET \
|
||||
|| s32ret == SF_SIM_ERROR_NO_SIMCARD \
|
||||
|| s32ret == SF_SIM_ERROR_APN)
|
||||
{
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_SIM_ERROR);
|
||||
}
|
||||
|
@ -405,7 +407,7 @@ SINT32 app_led_net_reg_stop(SINT32 s32ret)
|
|||
sf_sys_status_led_set(SF_LED_SYS_STATE_SIM_ERROR);
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
|
||||
}
|
||||
else if(s32ret == SF_4G_ERROR_REG_NET) {
|
||||
else if(s32ret == SF_4G_ERROR_REG_NET || s32ret == SF_SIM_ERROR_REG_NET) {
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_SIM_ERROR);
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
|
||||
}
|
||||
|
@ -413,6 +415,10 @@ SINT32 app_led_net_reg_stop(SINT32 s32ret)
|
|||
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
|
||||
}
|
||||
|
||||
if(SUCCESS != sf_get_ftp_open_flag())
|
||||
{
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_SEND_FAIL);
|
||||
}
|
||||
return SF_SUCCESS;
|
||||
}
|
||||
SINT32 app_led_poweroff(void)
|
||||
|
|
|
@ -74,8 +74,6 @@ SF_THREAD_S ThumbSend = {
|
|||
.TskId = -1,
|
||||
};
|
||||
|
||||
UINT32 FtpOpenOk = FAIL;
|
||||
|
||||
SINT32 app_ttyusb_IsOpen(void) {
|
||||
int retryTime = 0;
|
||||
int retryFlag = 0;
|
||||
|
@ -736,6 +734,7 @@ SINT16 sf_send_pic_num_check(void) {
|
|||
return SF_FAILURE;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
SINT32 app_file_send_check(SF_PDT_PARAM_STATISTICS_S *pstaticparam) {
|
||||
|
@ -1017,7 +1016,7 @@ static SINT32 app_file_transfer(SF_FN_PARAM_S *pfnParam) {
|
|||
|
||||
// sf_thumb_file_creat();
|
||||
|
||||
s32ret = sf_simcom_ftp_send(1);
|
||||
s32ret = sf_send_file_to_ftp(1);
|
||||
|
||||
if (s32ret == SF_SUCCESS) {
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_SEND_SUCCESS);
|
||||
|
@ -1035,7 +1034,7 @@ static SINT32 app_file_transfer(SF_FN_PARAM_S *pfnParam) {
|
|||
case SF_MCU_STARTUP_PIR:
|
||||
// sf_share_mem_file_init();
|
||||
if (TRUE == sf_check_auto_thumb_file()) {
|
||||
s32ret = sf_simcom_ftp_send(1);
|
||||
s32ret = sf_send_file_to_ftp(1);
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -1074,16 +1073,45 @@ static SINT32 app_file_transfer(SF_FN_PARAM_S *pfnParam) {
|
|||
#endif
|
||||
case SF_MCU_STARTUP_RING:
|
||||
if (sf_get_pic()) {
|
||||
s32ret = sf_simcom_ftp_send(1);
|
||||
s32ret = sf_send_file_to_ftp(1);
|
||||
sf_sms_set_pic(0);
|
||||
if(sf_get_send_hd()){
|
||||
if(1 != sf_app_to_cardv_hd_ture()){
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(sf_get_send_hd()){
|
||||
s32ret = sf_hd_ftp_send();
|
||||
}
|
||||
|
||||
if(sf_get_send_video()){
|
||||
s32ret = sf_video_ftp_send();
|
||||
}
|
||||
break;
|
||||
case SF_MCU_STARTUP_SYN_PARAM:
|
||||
if (pCustomerParam->GpsSendFlag) {
|
||||
s32ret = sf_simcom_ftp_send(2);
|
||||
s32ret = sf_send_file_to_ftp(2);
|
||||
pCustomerParam->GpsSendFlag = 0;
|
||||
}
|
||||
|
||||
if (sf_get_pic()) {
|
||||
s32ret = sf_simcom_ftp_send(1);
|
||||
s32ret = sf_send_file_to_ftp(1);
|
||||
sf_sms_set_pic(0);
|
||||
if(sf_get_send_hd()){
|
||||
if(1 != sf_app_to_cardv_hd_ture()){
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(sf_get_send_hd()){
|
||||
s32ret = sf_hd_ftp_send();
|
||||
}
|
||||
|
||||
if(sf_get_send_video()){
|
||||
s32ret = sf_video_ftp_send();
|
||||
}
|
||||
SLOGD("GpsSendFlag:%d\n", pCustomerParam->GpsSendFlag);
|
||||
break;
|
||||
|
@ -1095,7 +1123,7 @@ static SINT32 app_file_transfer(SF_FN_PARAM_S *pfnParam) {
|
|||
return s32ret;
|
||||
}
|
||||
|
||||
SINT32 app_FileSend_thread(void) {
|
||||
SINT32 sf_cardv_file_to_app_send_thread(void) {
|
||||
SINT32 s32ret = 0;
|
||||
SF_FN_PARAM_S stpfncallback = {0};
|
||||
stpfncallback.pstParam = sf_customer_param_get();
|
||||
|
@ -1125,11 +1153,43 @@ SINT32 app_FileSend_thread(void) {
|
|||
sf_file_thumb_cfg_clear();
|
||||
sf_share_mem_file_down(1, s32ret);
|
||||
|
||||
if ((sf_poweron_type_get() != SF_MCU_STARTUP_ONKEY) && (sf_sms_check_send())) {
|
||||
if ((sf_poweron_type_get() != SF_MCU_STARTUP_ONKEY) && (!sf_sms_check_send())) {
|
||||
sf_power_off();
|
||||
}
|
||||
return s32ret;
|
||||
}
|
||||
|
||||
SINT32 sf_file_send_auto(void) {
|
||||
SINT32 s32ret = 0;
|
||||
SF_FN_PARAM_S stpfncallback = {0};
|
||||
stpfncallback.pstParam = sf_customer_param_get();
|
||||
stpfncallback.pstaticParam = sf_app_ui_para_get();
|
||||
// stpfncallback.pstaticParam = sf_statistics_param_get();
|
||||
stpfncallback.pfn_AT_instruction_exit = (void *)app_disconnect_4g_module;
|
||||
|
||||
sf_share_mem_file_init();
|
||||
// s32ret = app_file_send_check(stpfncallback.pstaticParam);
|
||||
s32ret = sf_check_ftp_send(1);
|
||||
if (s32ret != SF_SUCCESS) {
|
||||
MLOGE("ERROR:%#x\n", s32ret);
|
||||
ThumbSend.IsRun = 0;
|
||||
sf_file_thumb_cfg_clear();
|
||||
sf_share_mem_file_down(1, s32ret);
|
||||
return s32ret;
|
||||
}
|
||||
|
||||
s32ret = app_file_transfer(&stpfncallback);
|
||||
if (s32ret != SF_SUCCESS) {
|
||||
sf_set_gprs_errno(s32ret);
|
||||
}
|
||||
// app_file_transfer_Error_return_server(&stpfncallback);
|
||||
ThumbSend.IsRun = 0;
|
||||
sf_file_thumb_cfg_clear();
|
||||
sf_share_mem_file_down(1, s32ret);
|
||||
|
||||
return s32ret;
|
||||
}
|
||||
|
||||
static SINT32 app_Register_Net_Error_return_setup(SF_FN_PARAM_S *pfnParam,
|
||||
SINT32 s32ret) {
|
||||
// SF_PDT_PARAM_STATISTICS_S *pStaticParam = pfnParam->pstaticParam;
|
||||
|
@ -1232,7 +1292,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) {
|
|||
//,version);
|
||||
|
||||
s32ret = sf_4G_register_net_manual(pfnParam);
|
||||
sf_share_mem_customer_down(1);
|
||||
//sf_share_mem_customer_down(1);
|
||||
SF_APPCOMM_CHECK_RETURN(s32ret, s32ret);
|
||||
|
||||
#ifdef SF_GPS_TEST
|
||||
|
@ -1249,6 +1309,16 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) {
|
|||
if ((s32ret == SF_SIM_ERROR_UTC) || (SF_ON == pCustomerParam->GpsSwitch)) {
|
||||
s32ret = sf_get_ntp(s32ret);
|
||||
}
|
||||
|
||||
if(sf_get_signal_ready()){
|
||||
if(SUCCESS != sf_connect_ftps_server()){
|
||||
printf("[%s:%d]open ftps fail, reconnect\n", __FUNCTION__, __LINE__);
|
||||
if(SUCCESS != sf_connect_ftps_server()){
|
||||
printf("[%s:%d]re open ftps fail, reconnect\n", __FUNCTION__, __LINE__);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SF_APPCOMM_CHECK_RETURN(s32ret, s32ret);
|
||||
|
||||
break;
|
||||
|
@ -1275,13 +1345,19 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) {
|
|||
SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST);
|
||||
|
||||
s32ret = sf_4G_register_net_auto(pfnParam);
|
||||
sf_share_mem_customer_down(1);
|
||||
//sf_share_mem_customer_down(1);
|
||||
SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST);
|
||||
|
||||
s32ret = sf_read_message();
|
||||
SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST);
|
||||
if (sf_get_pic()) {
|
||||
sf_app_to_cardv_capture();
|
||||
s32ret = sf_app_to_cardv_capture();
|
||||
}
|
||||
else if(sf_get_send_hd()){
|
||||
s32ret = sf_app_to_cardv_hd_ture();
|
||||
}
|
||||
else if(sf_get_send_video()){
|
||||
s32ret = sf_video_ftp_send();
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1317,10 +1393,10 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) {
|
|||
if (s32ret != SF_SUCCESS) {
|
||||
sf_set_signal_ready_flag(TRUE);
|
||||
}
|
||||
sf_share_mem_customer_down(1);
|
||||
//sf_share_mem_customer_down(1);
|
||||
SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST);
|
||||
|
||||
s32ret = app_FileSend_thread();
|
||||
s32ret = sf_file_send_auto();
|
||||
SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST);
|
||||
|
||||
break;
|
||||
|
@ -1362,11 +1438,10 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) {
|
|||
pCustomerParam->NeedTimeSyncStartUp = 1;
|
||||
}
|
||||
if (pCustomerParam->DailyReportSwitch) {
|
||||
pCustomerParam->GpsSendFlag =
|
||||
1; // indicate need send dp file in b power on.
|
||||
pCustomerParam->GpsSendFlag = 1; // indicate need send dp file in b power on.
|
||||
}
|
||||
sf_dailyReport_set();
|
||||
sf_share_mem_customer_down(1);
|
||||
//sf_share_mem_customer_down(1);
|
||||
|
||||
break;
|
||||
case SF_MCU_STARTUP_USB:
|
||||
|
@ -1395,15 +1470,22 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) {
|
|||
s32ret = sf_get_ntp(s32ret);
|
||||
}
|
||||
if (0 != sf_get_cq_signal()) {
|
||||
pCustomerParam->GpsSendFlag = 0;
|
||||
pCustomerParam->GpsSendFlag = 1;
|
||||
pCustomerParam->NeedTimeSyncStartUp = 1;
|
||||
// avoid always A mode power on
|
||||
pCustomerParam->NetWorkNeedSearch = 0;
|
||||
// printf("[%s:%d]NeedTimeSyncStartUp=%d\n", __FUNCTION__, __LINE__,
|
||||
// pCustomerParam->NeedTimeSyncStartUp);
|
||||
|
||||
if(SUCCESS != sf_connect_ftps_server()){
|
||||
printf("[%s:%d]open ftps fail, reconnect\n", __FUNCTION__, __LINE__);
|
||||
if(SUCCESS != sf_connect_ftps_server()){
|
||||
printf("[%s:%d]re open ftps fail, reconnect\n", __FUNCTION__, __LINE__);
|
||||
}
|
||||
}
|
||||
}
|
||||
sf_dailyReport_set();
|
||||
sf_share_mem_customer_down(1);
|
||||
//sf_share_mem_customer_down(1);
|
||||
break;
|
||||
case SF_MCU_STARTUP_SYN_PARAM:
|
||||
|
||||
|
@ -1420,7 +1502,7 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) {
|
|||
s32ret = sf_4G_register_net_auto(pfnParam);
|
||||
SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST);
|
||||
|
||||
s32ret = app_FileSend_thread();
|
||||
s32ret = sf_file_send_auto();
|
||||
SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST);
|
||||
|
||||
pCustomerParam->NetWorkNeedSearch = 0;
|
||||
|
@ -1429,10 +1511,15 @@ static SINT32 app_Register_Net_startup_mode(SF_FN_PARAM_S *pfnParam) {
|
|||
s32ret = sf_read_message();
|
||||
SF_APPCOMM_CHECK_RETURN(s32ret, SF_APP_ERROR_REQUEST);
|
||||
if (sf_get_pic()) {
|
||||
sf_app_to_cardv_capture();
|
||||
s32ret = sf_app_to_cardv_capture();
|
||||
}
|
||||
|
||||
sf_share_mem_customer_down(1);
|
||||
else if(sf_get_send_hd()){
|
||||
s32ret = sf_app_to_cardv_hd_ture();
|
||||
}
|
||||
else if(sf_get_send_video()){
|
||||
s32ret = sf_video_ftp_send();
|
||||
}
|
||||
//sf_share_mem_customer_down(1);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1469,7 +1556,7 @@ void app_FileSend_start(void) {
|
|||
|
||||
MLOGI("ThumbSend.IsRun:%d\n", ThumbSend.IsRun);
|
||||
if (!ThumbSend.IsRun) {
|
||||
pthread_create(&ThumbSend.TskId, NULL, (void *)app_FileSend_thread, NULL);
|
||||
pthread_create(&ThumbSend.TskId, NULL, (void *)sf_cardv_file_to_app_send_thread, NULL);
|
||||
ThumbSend.IsRun = 1;
|
||||
SF_MUTEX_INIT_LOCK(ThumbSend.mutexLock);
|
||||
}
|
||||
|
@ -1533,10 +1620,33 @@ SINT32 sf_module_reboot_reg_net(void)
|
|||
SF_APPCOMM_CHECK_RETURN(s32ret, s32ret);
|
||||
|
||||
s32ret = sf_4G_register_net_manual(&stpfncallback);
|
||||
sf_share_mem_customer_down(1);
|
||||
//sf_share_mem_customer_down(1);
|
||||
SF_APPCOMM_CHECK_RETURN(s32ret, s32ret);
|
||||
return s32ret;
|
||||
}
|
||||
|
||||
SINT32 sf_app_to_cardv_hd_ture(void) {
|
||||
static UINT8 falg = 0;
|
||||
SINT32 s32ret = SF_FAILURE;
|
||||
|
||||
char sendHDName[64] = {0};
|
||||
if(falg)
|
||||
{
|
||||
return falg;
|
||||
}
|
||||
falg = 1;
|
||||
snprintf(sendHDName, sizeof(sendHDName), "%s", SF_HD_DIR);
|
||||
|
||||
if(sf_file_IsExsit((CHAR *)sendHDName) != SF_TRUE)
|
||||
{
|
||||
MLOGI(" not HD Dir [%s]\n",sendHDName);
|
||||
|
||||
}
|
||||
MLOGI(" [%s]\n",sendHDName);
|
||||
|
||||
s32ret = sf_share_mem_hd_down(1);
|
||||
return s32ret;
|
||||
}
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -19,6 +19,8 @@
|
|||
#include "sf_log.h"
|
||||
#include "sf_module.h"
|
||||
#include "sf_ledmng.h"
|
||||
#include "sf_param_common.h"
|
||||
#include "sf_param_enum.h"
|
||||
#include "sf_service.h"
|
||||
#include "sf_storeMng.h"
|
||||
#include "sf_systemMng.h"
|
||||
|
@ -33,6 +35,10 @@
|
|||
#include "sf_system.h"
|
||||
#include "sf_device.h"
|
||||
#include "sf_sms.h"
|
||||
#include "sf_commMng.h"
|
||||
#include "sf_battery.h"
|
||||
#include "sf_common.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
extern "C" {
|
||||
|
@ -80,6 +86,23 @@ SF_THREAD_S OtaUpgradeRestoreTskCfg =
|
|||
.IsRun = 0,
|
||||
.TskId = -1,
|
||||
};
|
||||
SF_THREAD_S ParaTskCfg =
|
||||
{
|
||||
.IsRun = 0,
|
||||
.TskId = -1,
|
||||
};
|
||||
|
||||
SF_THREAD_S BatteryTskCfg =
|
||||
{
|
||||
.IsRun = 0,
|
||||
.TskId = -1,
|
||||
};
|
||||
|
||||
SF_THREAD_S DateReadyTskCfg =
|
||||
{
|
||||
.IsRun = 0,
|
||||
.TskId = -1,
|
||||
};
|
||||
|
||||
SINT8 debugFlag = 0;
|
||||
|
||||
|
@ -89,92 +112,37 @@ void app_poweroff_time_clear(void)
|
|||
}
|
||||
static void* auto_poweroff_thread(void * arg)
|
||||
{
|
||||
UINT8 pwroffcnt = 0;
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
SINT32 isUsb = sf_usb_IsInsert();
|
||||
if(isUsb)
|
||||
{
|
||||
sf_set_pir_statu_flag(FALSE);
|
||||
return NULL;
|
||||
}
|
||||
if(sf_get_fw_update())
|
||||
return NULL;
|
||||
|
||||
while(AutoPoweroffTskCfg.IsRun)
|
||||
{
|
||||
|
||||
if(bUpdateEnble >= 1 && bUpdateEnble < 6)
|
||||
//if(sf_get_pir_statu_flag())
|
||||
{
|
||||
bUpdateEnble++;
|
||||
}
|
||||
else if(bUpdateEnble >= 6) {
|
||||
app_led_sd_status_return();
|
||||
bUpdateEnble = 0;
|
||||
}
|
||||
pwroffcnt++;
|
||||
|
||||
// if(s32ThreeWaySwitch == 1) {
|
||||
// app_pir_monitoring_stop();
|
||||
// sf_led_event_process(LED_STATUS_SLOWFLASH_ON,LED_GROUP_STATUS,LED_TYPE_GREEN);
|
||||
// s32ThreeWaySwitch = 2;
|
||||
// }
|
||||
// else if(s32ThreeWaySwitch >= 2 && s32ThreeWaySwitch < 7) {
|
||||
// s32ThreeWaySwitch++;
|
||||
// }
|
||||
// else if( s32ThreeWaySwitch >= 7) {
|
||||
// app_led_all_status_set(LED_STATUS_HOLD_ON,LED_TYPE_OFF);
|
||||
// app_system_poweroff(SF_POWEROFF_KEYON);
|
||||
// s32ThreeWaySwitch = 0;
|
||||
// }
|
||||
|
||||
|
||||
if(debugFlag == 1){
|
||||
sleep(1);
|
||||
continue;
|
||||
}
|
||||
if(debugFlag == 2) {
|
||||
AutoPowerOffTime = 175;
|
||||
debugFlag = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if(AutoPowerOffTime < 180)
|
||||
if(pwroffcnt == 1)
|
||||
{
|
||||
|
||||
UINT8 temp = 0;
|
||||
temp = sf_4G_status_get();
|
||||
|
||||
|
||||
if((temp == SF_4G_SENDING) || (temp == SF_4G_SEARCHING))
|
||||
AutoPowerOffTime = 0;
|
||||
else
|
||||
AutoPowerOffTime++;
|
||||
|
||||
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_GOING_TO_PIR);
|
||||
}
|
||||
else if(AutoPowerOffTime == 180)
|
||||
else if(pwroffcnt == 6)
|
||||
{
|
||||
AutoPowerOffTime = 0;
|
||||
if(sf_usb_IsInsert())
|
||||
continue;
|
||||
|
||||
if(sf_poweron_type_get() == SF_MCU_STARTUP_ONKEY)
|
||||
{
|
||||
app_pir_monitoring_stop();
|
||||
app_led_all_status_set(LED_STATUS_HOLD_ON,LED_TYPE_OFF);
|
||||
|
||||
stMessageBuf.cmdId = CMD_LED;
|
||||
|
||||
stMessageBuf.arg1 = LED_STATUS_SLOWFLASH_ON;
|
||||
stMessageBuf.arg2 = LED_GROUP_STATUS;
|
||||
stMessageBuf.arg3 = LED_TYPE_GREEN;
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
|
||||
sleep(5);
|
||||
stMessageBuf.arg1 = SF_POWEROFF_AUTO;
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_POWER_OFF);
|
||||
printf("[power off] %s(%d) AutoPowerOffTime:%d\n", __FUNCTION__, __LINE__, AutoPowerOffTime);
|
||||
sf_set_power_off_flag(1);
|
||||
stMessageBuf.cmdId = CMD_POWEROFF;
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
continue;
|
||||
stMessageBuf.arg1 = APP_POWER_OFF_APO;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
return NULL;
|
||||
}
|
||||
if(sf_upgrade_status_get() == SF_UPGRADE_FAIL)
|
||||
{
|
||||
stMessageBuf.arg1 = SF_POWEROFF_NOT;
|
||||
stMessageBuf.cmdId = CMD_POWEROFF;
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
sleep(1);
|
||||
}
|
||||
|
@ -323,6 +291,7 @@ static void* battery_monitoring_thread(void *arg)
|
|||
|
||||
sleep(3);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SINT32 app_batmonitoring_start(void)
|
||||
|
@ -841,14 +810,16 @@ SINT32 app_preinit(void)
|
|||
|
||||
if((startup == SF_MCU_STARTUP_NORMAL) && (!bUsbIsInsert))
|
||||
{
|
||||
app_led_poweroff();
|
||||
//app_led_poweroff();
|
||||
app_auto_poweroff_start();
|
||||
return SF_SUCCESS;
|
||||
}
|
||||
if((!bUsbIsInsert)/* || (startup == SF_MCU_STARTUP_ONKEY)*/)
|
||||
{
|
||||
sf_4G_usb_init();
|
||||
MLOGD("sim card insert\n");
|
||||
}
|
||||
/*if(startup == SF_MCU_STARTUP_ONKEY)
|
||||
/*if(startup == SF_MCU_STARTUP_NORMAL)
|
||||
{
|
||||
app_pir_monitoring_start();
|
||||
#ifndef SF_HARDWARE_TEST
|
||||
|
@ -937,6 +908,197 @@ void sf_power_off(void)
|
|||
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
|
||||
}
|
||||
|
||||
void* sf_app_para_check_thread(void *arg)
|
||||
{
|
||||
while(ParaTskCfg.IsRun)
|
||||
{
|
||||
if(TRUE == sf_get_para_check_flag()){
|
||||
MLOGI("menu info is changed\n");
|
||||
sf_share_mem_customer_down(1);
|
||||
}
|
||||
//sleep(1);
|
||||
sf_sleep_ms(10);
|
||||
}
|
||||
ParaTskCfg.IsRun = 0;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
SINT32 sf_app_para_check_start(void)
|
||||
{
|
||||
SINT32 ret = SF_FAILURE;
|
||||
if(ParaTskCfg.IsRun)
|
||||
{
|
||||
SLOGE("thread has already run !!!\n");
|
||||
return SF_FAILURE;
|
||||
}
|
||||
ret = pthread_create(&ParaTskCfg.TskId, NULL, sf_app_para_check_thread, NULL);
|
||||
if(ret != SF_SUCCESS)
|
||||
{
|
||||
MLOGD("thread creat fail!\n");
|
||||
return ret;
|
||||
}
|
||||
ParaTskCfg.IsRun = 1;
|
||||
return SF_SUCCESS;
|
||||
|
||||
}
|
||||
SINT32 sf_app_para_check_stop(void)
|
||||
{
|
||||
UINT16 ret = 0;
|
||||
|
||||
ParaTskCfg.IsRun = 0;
|
||||
MLOGD("s\n");
|
||||
ret = pthread_join(ParaTskCfg.TskId, NULL);
|
||||
if(ret != SF_SUCCESS)
|
||||
{
|
||||
MLOGD("thread stop fail!\n");
|
||||
return ret;
|
||||
}
|
||||
return SF_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
SINT32 sf_app_battery_start(void)
|
||||
{
|
||||
SINT32 ret = SF_SUCCESS;
|
||||
|
||||
if(BatteryTskCfg.IsRun)
|
||||
{
|
||||
SLOGE("thread has already run !!!\n");
|
||||
return SF_FAILURE;
|
||||
}
|
||||
ret = pthread_create(&BatteryTskCfg.TskId, NULL, sf_battery_check_thread, NULL);
|
||||
if(ret != SF_SUCCESS)
|
||||
{
|
||||
MLOGD("thread creat fail!\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
BatteryTskCfg.IsRun = 1;
|
||||
|
||||
return SF_SUCCESS;
|
||||
}
|
||||
|
||||
SINT32 sf_app_battery_stop(void)
|
||||
{
|
||||
UINT16 ret = 0;
|
||||
|
||||
BatteryTskCfg.IsRun = 0;
|
||||
MLOGD("s\n");
|
||||
ret = pthread_join(BatteryTskCfg.TskId, NULL);
|
||||
if(ret != SF_SUCCESS)
|
||||
{
|
||||
MLOGD("thread stop fail!\n");
|
||||
return ret;
|
||||
}
|
||||
return SF_SUCCESS;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void* sf_mcu_data_ready_thread(void * arg)
|
||||
{
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
SINT32 isUsb = sf_usb_IsInsert();
|
||||
SLOGI("s\n");
|
||||
|
||||
if(isUsb)
|
||||
{
|
||||
sf_set_pir_statu_flag(FALSE);
|
||||
return NULL;
|
||||
}
|
||||
if(sf_get_fw_update())
|
||||
return NULL;
|
||||
|
||||
while(DateReadyTskCfg.IsRun)
|
||||
{
|
||||
if(sf_app_data_ready_read())
|
||||
{
|
||||
UINT8 startMode = 0;
|
||||
|
||||
startMode = sf_mcu_power_on_para_get(SF_MCU_STARTMODE);
|
||||
printf("startMode=%d\n", startMode);
|
||||
|
||||
if(sf_usb_IsInsert())//sf_gpio_get_status(GPIO_INT_USBPLUGIN))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if(sf_get_mode_flag())
|
||||
{
|
||||
|
||||
stMessageBuf.cmdId = CMD_KEY;
|
||||
stMessageBuf.arg1 = SF_EVENT_KEY_SHORT_CLICK;
|
||||
stMessageBuf.arg2 = SF_KEY_PIN_DATAREADY;
|
||||
stMessageBuf.arg3 = startMode;
|
||||
|
||||
if(startMode == 0) //OFF
|
||||
{
|
||||
sf_set_power_off_flag(1);
|
||||
//gModuleSleep = 0;
|
||||
sf_set_module_sleep_flag(0);
|
||||
//LCD_BACKLIGHT_OFF;
|
||||
//profLogPrintf(0,"[sf_mcu_dataready_get],APP_POWER_OFF_NORMAL");
|
||||
printf("[power off] %s(%d)\n", __FUNCTION__, __LINE__);
|
||||
//Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0); //shutdown start
|
||||
stMessageBuf.cmdId = CMD_POWEROFF;
|
||||
stMessageBuf.arg1 = APP_POWER_OFF_NORMAL;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_POWER_OFF);
|
||||
|
||||
}
|
||||
else if(startMode == 1) //SETUP
|
||||
{
|
||||
sf_set_module_sleep_flag(0);
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_POWER_OFF);
|
||||
}
|
||||
else if(startMode == 3) //ON
|
||||
{
|
||||
sf_set_pir_statu_flag(1);
|
||||
printf("%s:%d-------PIR Key Pressed.------\n", __FUNCTION__, __LINE__);
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if((startMode == 0) || (startMode == 1)) //PIR MODE: ON->OFF/ ON->SETUP
|
||||
{
|
||||
sf_set_module_sleep_flag(0);
|
||||
//gModuleSleep = 0; //power off 4G module
|
||||
sf_set_power_off_flag(1);
|
||||
printf("[power off] %s(%d)\n", __FUNCTION__, __LINE__);
|
||||
//Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, 0); //shutdown start
|
||||
stMessageBuf.cmdId = CMD_POWEROFF;
|
||||
stMessageBuf.arg1 = APP_POWER_OFF_NORMAL;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
}
|
||||
}
|
||||
}
|
||||
sf_sleep_ms(50);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SINT32 sf_app_data_ready_start(void)
|
||||
{
|
||||
SINT32 ret = SF_SUCCESS;
|
||||
|
||||
if(DateReadyTskCfg.IsRun)
|
||||
{
|
||||
SLOGE("thread has already run !!!\n");
|
||||
return SF_FAILURE;
|
||||
}
|
||||
ret = pthread_create(&DateReadyTskCfg.TskId, NULL, sf_mcu_data_ready_thread, NULL);
|
||||
if(ret != SF_SUCCESS)
|
||||
{
|
||||
MLOGD("thread creat fail!\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
DateReadyTskCfg.IsRun = 1;
|
||||
|
||||
return SF_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -19,40 +19,43 @@
|
|||
*
|
||||
**************************************************************************/
|
||||
|
||||
#include <sf_battery.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
//#include <linux/input.h>
|
||||
#include <sys/fcntl.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <stdlib.h>
|
||||
#include <sf_mcu.h>
|
||||
|
||||
#include <kwrap/util.h>
|
||||
#include <sys/wait.h>
|
||||
#include <errno.h>
|
||||
#include <kwrap/debug.h>
|
||||
#include "PrjInc.h"
|
||||
#include "IOCfg.h"
|
||||
#include "DxHunting.h"
|
||||
/*
|
||||
#include "NvtUser/NvtUser.h"
|
||||
#include "AppControl/AppControl.h"
|
||||
#include "comm/hwclock.h"
|
||||
//#include "NvtUser/NvtUser.h"
|
||||
//#include "AppControl/AppControl.h"
|
||||
//#include "comm/hwclock.h"
|
||||
#include <time.h>
|
||||
#include <io/gpio.h>
|
||||
#include <io/adc.h>
|
||||
#include "UIInfo/UIInfo.h"
|
||||
#include "IOCfg.h"
|
||||
*/
|
||||
#include "sf_battery.h"
|
||||
#include "sf_log.h"
|
||||
#include "sf_message_queue.h"
|
||||
#include "sf_param_common.h"
|
||||
#include "sf_common.h"
|
||||
#include "sf_ledmng.h"
|
||||
#include "sf_dev_usb.h"
|
||||
#include "sf_commu_mcu_reg.h"
|
||||
|
||||
#if HUNTING_CAMERA_MCU == ENABLE
|
||||
typedef signed int SINT32;
|
||||
|
||||
UINT32 _DcVoltageVal = 0;
|
||||
UINT32 _LiPolymerVoltageVal = 0; /*4.0P no use*/
|
||||
UINT32 _BatVoltageVal = 45;
|
||||
UINT8 IsNightLedOn = 0;
|
||||
UINT32 IsPowerDcIn = 1;
|
||||
UINT32 BatVoltageVal = 45;
|
||||
SF_BatteryLevel_e sf_LatestBattLevel = SF_BATT_LEVEL_0;
|
||||
|
@ -62,7 +65,8 @@ UINT32 LiPolymerVoltageVal = 0; /*4.0P no use*/
|
|||
UINT32 batTempLevel = 0xff;
|
||||
|
||||
#define SF_READ_BAT_MAX 10
|
||||
ID FLG_ID_SF_BSTTERY = 0;
|
||||
#define SF_DC_IN_VOLATAGE 70
|
||||
#define SF_LI_IN_VOLATAGE 99
|
||||
|
||||
/*************************************************
|
||||
Function: sf_battery_voltage_convert
|
||||
|
@ -107,9 +111,29 @@ UINT32 sf_get_max_value(UINT32 *_ValueList)
|
|||
|
||||
return MaxValue;
|
||||
}
|
||||
void sf_adc_init(void)
|
||||
{
|
||||
|
||||
if (adc_open(ADC_CH_VOLDET_BATTERY) != 0) {
|
||||
SLOGE("Can't open ADC channel for battery voltage detection\r\n");
|
||||
return;
|
||||
}
|
||||
|
||||
//650 Range is 250K Hz ~ 2M Hz
|
||||
adc_setConfig(ADC_CONFIG_ID_OCLK_FREQ, 250000); //250K Hz
|
||||
|
||||
//battery voltage detection
|
||||
adc_setChConfig(ADC_CH_VOLDET_BATTERY, ADC_CH_CONFIG_ID_SAMPLE_FREQ, 10000); //10K Hz, sample once about 100 us for CONTINUOUS mode
|
||||
adc_setChConfig(ADC_CH_VOLDET_BATTERY, ADC_CH_CONFIG_ID_SAMPLE_MODE, (VOLDET_ADC_MODE) ? ADC_CH_SAMPLEMODE_CONTINUOUS : ADC_CH_SAMPLEMODE_ONESHOT);
|
||||
adc_setChConfig(ADC_CH_VOLDET_BATTERY, ADC_CH_CONFIG_ID_INTEN, FALSE);
|
||||
|
||||
// Enable adc control logic
|
||||
adc_setEnable(TRUE);
|
||||
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_battery_adc_value_get_once
|
||||
Function: sf_adc_value_get
|
||||
Description: get battery adc only once
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
|
@ -161,7 +185,7 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval)
|
|||
gpio_set_value(P_GPIO_1, 1);//adc_muxb
|
||||
}
|
||||
|
||||
vos_util_delay_us(500);
|
||||
vos_util_delay_ms(1);
|
||||
|
||||
*pval = adc_readData(0);
|
||||
//printf("[%s:%d] *pval:%d\n", __FUNCTION__, __LINE__,*pval);
|
||||
|
@ -169,7 +193,6 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval)
|
|||
return SUCCESS;
|
||||
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_battery_adc_value_get_once
|
||||
Description: get battery adc only once
|
||||
|
@ -183,8 +206,6 @@ UINT32 sf_battery_adc_value_get_once(void)
|
|||
UINT32 batAdc = 0;
|
||||
static UINT8 getBatAdcFlg = 0;
|
||||
|
||||
//uiPara_t* puiPara = appUiParaGet();
|
||||
|
||||
if(getBatAdcFlg)
|
||||
{
|
||||
return SUCCESS;
|
||||
|
@ -252,10 +273,11 @@ UINT32 sf_battery_adc_value_get_once(void)
|
|||
*************************************************/
|
||||
void sf_battery_level_update(void)
|
||||
{
|
||||
static UINT8 batteryVal_tmp = 0;
|
||||
UINT8 batteryVal = 0;
|
||||
UINT8 batteryLevel = SF_BATT_LEVEL_0;
|
||||
|
||||
batteryVal = sf_battery_value_get(sf_get_night_led_flag());
|
||||
batteryVal = sf_battery_value_get(sf_app_get_night_led_flag());
|
||||
|
||||
if(batteryVal >= 70)
|
||||
{
|
||||
|
@ -277,6 +299,19 @@ void sf_battery_level_update(void)
|
|||
{
|
||||
batteryLevel = SF_BATT_LEVEL_0;
|
||||
}
|
||||
|
||||
if(batteryVal_tmp != batteryVal){
|
||||
#if HUNTING_CAMERA_4G == ENABLE
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
stMessageBuf.cmdId = CMD_DEV;
|
||||
stMessageBuf.arg1 = SF_DEV_CMD_BAT;
|
||||
stMessageBuf.arg2 = batteryVal;
|
||||
stMessageBuf.arg3 = (SINT32)sf_battery_type_get();
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
#endif
|
||||
batteryVal_tmp = batteryVal;
|
||||
|
||||
}
|
||||
sf_LatestBattLevel = batteryLevel;
|
||||
}
|
||||
|
||||
|
@ -295,7 +330,7 @@ void sf_battery_level_update(void)
|
|||
UINT8 batteryVal = 0;
|
||||
UINT8 batteryLevel = SF_BATT_LEVEL_0;
|
||||
|
||||
if(sf_get_night_led_flag())
|
||||
if(sf_app_get_night_led_flag())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -410,16 +445,16 @@ BOOL sf_check_low_battery(void)
|
|||
{
|
||||
UINT8 lowCompareVal = 0;
|
||||
BOOL ret = FALSE;
|
||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||
|
||||
if(sf_is_usb_flag())
|
||||
if(sf_usb_IsInsert())
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sf_battery_level_update();
|
||||
|
||||
if(sf_get_night_led_flag())
|
||||
if(sf_app_get_night_led_flag())
|
||||
{
|
||||
if(puiPara->BatteryType == SF_BATT_ALKALINE)
|
||||
{
|
||||
|
@ -475,13 +510,13 @@ signed int sf_battery_adc_value_get(void)
|
|||
UINT32 batTemp = 0;
|
||||
UINT32 dcValueList[12] = { 0 };
|
||||
UINT32 batValueList[12] = { 0 };
|
||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||
|
||||
SINT32 ret = FAIL;
|
||||
|
||||
if((sf_get_mode_flag() == 0) || (needCheckFirst == TRUE))
|
||||
{
|
||||
//printf("[%s:%d]ConfigureModeFlag=%d,needCheckFirst=%d\n",__FUNCTION__,__LINE__,ConfigureModeFlag,needCheckFirst);
|
||||
//printf("[%s:%d]ConfigureModeFlag=%d,needCheckFirst=%d\n",__FUNCTION__,__LINE__,sf_get_mode_flag(),needCheckFirst);
|
||||
needCheckFirst = FALSE;
|
||||
|
||||
for(readBatCnt = 0; readBatCnt < 5;) //get max value of 5 times.
|
||||
|
@ -581,7 +616,7 @@ signed int sf_battery_adc_value_get(void)
|
|||
batTemp += batValueList[readBatCnt];
|
||||
|
||||
readBatCnt++;
|
||||
vos_util_delay_ms(100);
|
||||
sf_sleep_ms(100);
|
||||
|
||||
if(readBatCnt >= SF_READ_BAT_MAX)
|
||||
{
|
||||
|
@ -620,9 +655,10 @@ void sf_battery_level_polling(void)
|
|||
UINT32 batTemp = 0;
|
||||
UINT32 dcValueList[12] = { 0 };
|
||||
UINT32 batValueList[12] = { 0 };
|
||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||
static UINT32 prePowerDcStatus = 0;
|
||||
|
||||
signed int ret = FALSE;
|
||||
//signed int ret = FALSE;
|
||||
|
||||
static UINT32 battEmpty = 0;
|
||||
|
||||
|
@ -709,23 +745,31 @@ void sf_battery_level_polling(void)
|
|||
|
||||
sf_battery_level_update();
|
||||
|
||||
ret = sf_check_low_battery();
|
||||
//ret = sf_check_low_battery();
|
||||
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
{
|
||||
printf("[%s:%d]batTempLevel=%d,sf_LatestBattLevel=%d\n", __FUNCTION__, __LINE__, batTempLevel, sf_LatestBattLevel);
|
||||
}
|
||||
|
||||
if(batTempLevel != sf_LatestBattLevel)
|
||||
if((batTempLevel != sf_LatestBattLevel) || IsPowerDcIn != prePowerDcStatus)
|
||||
{
|
||||
prePowerDcStatus = IsPowerDcIn;
|
||||
batTempLevel = sf_LatestBattLevel;
|
||||
#if HW_S530
|
||||
sf_view_osd_battery_draw(TRUE);
|
||||
#endif
|
||||
}
|
||||
|
||||
if(ret == TRUE)
|
||||
if(sf_LatestBattLevel == SF_BATT_LEVEL_0)
|
||||
{
|
||||
if(sf_get_night_led_flag())
|
||||
if(sf_app_get_night_led_flag())
|
||||
{
|
||||
sf_ir_led_set(0, 0, 0, 0);
|
||||
//sf_ir_led_set(0, 0, 0, 0);
|
||||
char cmd[64] = {'\0'};
|
||||
snprintf(cmd, sizeof(cmd), "echo \"w closepwm 3\" > /proc/pwm/cmd");
|
||||
system(cmd);
|
||||
printf("%s:%d cmd:%s\n", __FUNCTION__, __LINE__,cmd);
|
||||
}
|
||||
|
||||
//the Module not need sleep.
|
||||
|
@ -736,30 +780,49 @@ void sf_battery_level_polling(void)
|
|||
{
|
||||
battEmpty = 1;
|
||||
printf("[%s:%d]power off because low battery\n", __FUNCTION__, __LINE__);
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
stMessageBuf.cmdId = CMD_POWEROFF;
|
||||
stMessageBuf.arg1 = APP_POWER_OFF_BATT_EMPTY;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
//Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_BATT_EMPTY); //shutdown start
|
||||
}
|
||||
}
|
||||
else if(sf_LatestBattLevel == SF_BATT_LEVEL_1)
|
||||
{
|
||||
if((sf_battery_value_get(sf_app_get_night_led_flag()) < 10)/* && (sf_led_get(SF_LED_BAT1) != SF_LED_STATE_SLOW_FLASHING)*/)
|
||||
{
|
||||
printf("[%s:%d] SF_LED_BAT1 SF_LED_STATE_SLOW_FLASHING\n", __FUNCTION__, __LINE__);
|
||||
//sf_led_set(SF_LED_BAT1, SF_LED_STATE_SLOW_FLASHING);
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_0_SLOW);
|
||||
}
|
||||
else if((sf_battery_value_get(sf_app_get_night_led_flag()) == 10) /*&& (sf_led_get(SF_LED_BAT1) != SF_LED_STATE_ON)*/)
|
||||
{
|
||||
printf("[%s:%d] SF_LED_BAT1 SF_LED_STATE_SLOW_FLASHING\n", __FUNCTION__, __LINE__);
|
||||
//sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON);
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
THREAD_RETTYPE sf_battery_check_thread(void *arg)
|
||||
void* sf_battery_check_thread(void *arg)
|
||||
{
|
||||
THREAD_ENTRY();
|
||||
//THREAD_ENTRY();
|
||||
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||
sf_battery_check_init();
|
||||
|
||||
while(sf_while_flag())
|
||||
while(sf_app_while_flag())
|
||||
{
|
||||
sf_battery_level_polling();
|
||||
}
|
||||
printf("[%s:%d] e \n", __FUNCTION__, __LINE__);
|
||||
THREAD_RETURN(0);
|
||||
//THREAD_RETURN(0);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
ID FLG_ID_SF_BSTTERY = 0;
|
||||
void sf_battery_thread_init(void)
|
||||
{
|
||||
static UINT8 dofirst = 1;
|
||||
|
@ -775,16 +838,7 @@ void sf_battery_thread_init(void)
|
|||
vos_task_resume(s_handle_batt);
|
||||
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
|
||||
}
|
||||
|
||||
UINT8 sf_get_night_led_flag(void)
|
||||
{
|
||||
return IsNightLedOn;
|
||||
}
|
||||
|
||||
void sf_set_night_led_flag(UINT8 flag)
|
||||
{
|
||||
IsNightLedOn = flag;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*************************************************
|
||||
Function: sf_battery_level_get
|
||||
|
@ -800,6 +854,43 @@ UINT32 sf_battery_level_get(void)
|
|||
}
|
||||
|
||||
|
||||
void sf_view_osd_battery_draw(UINT8 bShow)
|
||||
{
|
||||
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||
#if HW_S530
|
||||
if(!sf_get_mode_flag())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(bShow)
|
||||
{
|
||||
switch(sf_battery_level_get())
|
||||
{
|
||||
case SF_BATT_LEVEL_0:
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_0);
|
||||
break;
|
||||
case SF_BATT_LEVEL_1:
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_1);
|
||||
break;
|
||||
case SF_BATT_LEVEL_2:
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_2);
|
||||
break;
|
||||
case SF_BATT_LEVEL_3:
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_3);
|
||||
break;
|
||||
case SF_BATT_LEVEL_4:
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_BAT_4);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
|
||||
}
|
||||
|
||||
|
||||
/*************************************************
|
||||
Function: sf_battery_value_get
|
||||
Description: get battery value x%
|
||||
|
@ -813,7 +904,7 @@ UINT8 sf_battery_value_get(UINT8 nightMode)
|
|||
UINT8 value = 0;
|
||||
UINT8 batteryVal = 0;
|
||||
|
||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||
if(IsPowerDcIn == 0)
|
||||
{
|
||||
//printf("BatMedian:%d\n", BatMedian);
|
||||
|
@ -1049,5 +1140,81 @@ UINT8 sf_battery_value_get(UINT8 nightMode)
|
|||
return value;
|
||||
|
||||
}
|
||||
/*************************************************
|
||||
Function: sf_battery_type_get
|
||||
Description: Get battery type.
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: value: battery type, 0:normal 1:LiPolymer
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
UINT8 sf_battery_type_get(void)
|
||||
{
|
||||
if(IsPowerDcIn)
|
||||
return SF_POWER_TYPE_DC;
|
||||
else if(LiPolymerVoltageVal)
|
||||
return SF_POWER_TYPE_LI_POLYER;
|
||||
else
|
||||
return SF_POWER_TYPE_AA;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_battery_check_init
|
||||
Description: Perform a battery test in manual mode.
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: value: TRUE ,FALSE
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
BOOL sf_battery_check_init(void)
|
||||
{
|
||||
sf_adc_init();
|
||||
|
||||
if(sf_battery_adc_value_get() == SUCCESS)
|
||||
{
|
||||
if(sf_check_low_battery() == TRUE)
|
||||
{
|
||||
printf("[%s:%d]power off because low battery\n", __FUNCTION__, __LINE__);
|
||||
//Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_BATT_EMPTY); //shutdown start
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
#if HW_S530
|
||||
sf_view_osd_battery_draw(TRUE);
|
||||
#endif
|
||||
return TRUE;
|
||||
}
|
||||
void sf_set_need_check_first(void)
|
||||
{
|
||||
needCheckFirst = TRUE;
|
||||
}
|
||||
/*************************************************
|
||||
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)
|
||||
{
|
||||
sf_set_need_check_first();
|
||||
sf_battery_adc_value_get();
|
||||
printf("update DC=%d Li=%d Bat=%d\n", DcVoltageVal, LiPolymerVoltageVal, BatVoltageVal);
|
||||
|
||||
if(sf_battery_value_get(0) < 40)
|
||||
{
|
||||
printf("low battery, no update\n");
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
#endif
|
|
@ -27,7 +27,7 @@ extern "C" {
|
|||
int sf_semId = -1;
|
||||
int sf_sharMemId = -1;
|
||||
int sf_sharMemfileId = -1;
|
||||
|
||||
int sf_hdMemId = -1;
|
||||
union semun {
|
||||
int val;
|
||||
struct semid_ds *buf;
|
||||
|
@ -297,6 +297,73 @@ SINT32 sf_share_mem_customer_deinit(void)
|
|||
return sf_share_mem_deinit(sf_sharMemId);
|
||||
}
|
||||
|
||||
SINT32 sf_share_mem_hd_update(void)
|
||||
{
|
||||
SF_HDFILE_ATTR_S *pSfHDPara = 0;
|
||||
if(SF_SUCCESS == sf_share_mem_init((char*)"/tmp/sf_hd",sizeof(SF_HDFILE_ATTR_S),&sf_hdMemId))
|
||||
{
|
||||
pSfHDPara = (SF_HDFILE_ATTR_S *)sf_share_mem_get(sf_hdMemId);
|
||||
if(pSfHDPara <= 0)
|
||||
{
|
||||
printf("[%s:%d] creat share mem failed!!!\n", __FUNCTION__, __LINE__);
|
||||
return SF_FAILURE;
|
||||
}
|
||||
else
|
||||
{
|
||||
sf_hd_param_set(pSfHDPara);
|
||||
shmdt(pSfHDPara);
|
||||
printf("[%s:%d] creat share mem succeed ID:%d!!!\n", __FUNCTION__, __LINE__, sf_hdMemId);
|
||||
return SF_SUCCESS;
|
||||
}
|
||||
|
||||
}
|
||||
return SF_FAILURE;
|
||||
|
||||
}
|
||||
|
||||
SINT32 sf_share_mem_hd_down(UINT32 to)
|
||||
{
|
||||
SF_HDFILE_ATTR_S *pSfHDPara = 0;
|
||||
|
||||
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||
if(SF_SUCCESS == sf_share_mem_init((char*)"/tmp/sf_hd",sizeof(SF_HDFILE_ATTR_S),&sf_hdMemId))
|
||||
{
|
||||
pSfHDPara = (SF_HDFILE_ATTR_S *)sf_share_mem_get(sf_hdMemId);
|
||||
if(pSfHDPara <= 0)
|
||||
{
|
||||
printf("[%s:%d] creat share mem failed!!!\n", __FUNCTION__, __LINE__);
|
||||
return SF_FAILURE;
|
||||
}
|
||||
else
|
||||
{
|
||||
sf_file_hd_cfg_set_down(pSfHDPara);
|
||||
shmdt(pSfHDPara);
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
if(to)//to cardv
|
||||
{
|
||||
stMessageBuf.arg1 = SF_WIFI_CMD_HD_TURE;
|
||||
stMessageBuf.cmdId = CMD_WIFI;
|
||||
MLOGI("PARA UPDATE to cardv ID:%d\n",sf_hdMemId);
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
}
|
||||
else //to sf app
|
||||
{
|
||||
stMessageBuf.arg1 = SF_PARA_CMD_UPDATE;
|
||||
stMessageBuf.cmdId = CMD_FILE;
|
||||
MLOGI("PARA UPDATE to app ID:%d\n",sf_hdMemId);
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
}
|
||||
|
||||
//printf("[%s:%d] to:%d creat share mem succeed ID:%d!!!\n", __FUNCTION__, __LINE__, to, sf_hdMemId);
|
||||
return SF_SUCCESS;
|
||||
}
|
||||
|
||||
}
|
||||
return SF_FAILURE;
|
||||
|
||||
}
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -377,6 +377,19 @@ void* sf_led_thread(void *arg)
|
|||
{
|
||||
|
||||
UINT8 i = 0;
|
||||
|
||||
/*gpio init*/
|
||||
for(i = 0; i < SF_LED_ALL; i++)
|
||||
{
|
||||
|
||||
//gpio_setDir(LedInfo[i].gpioNum, GPIO_DIR_OUTPUT);
|
||||
|
||||
//gpio_setPin(LedInfo[i].gpioNum);
|
||||
sf_hal_gpio_init(LedInfo[i].gpioNum,GPIO_DIR_OUT);
|
||||
//gpio_direction_output(LedInfo[i].gpioNum, GPIO_DIR_OUTPUT);
|
||||
sf_hal_gpio_set(LedInfo[i].gpioNum, LedInfo[i].ledstate);
|
||||
}
|
||||
|
||||
//FLGPTN FlgPtn;
|
||||
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||
while(isLedExit)
|
||||
|
@ -508,24 +521,12 @@ Ledstate_t sf_led_get(LedId_t ledId)
|
|||
|
||||
void sf_led_init(void)
|
||||
{
|
||||
UINT8 i = 0;
|
||||
static UINT8 dofirst = 1;
|
||||
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||
if((!dofirst) || (SF_MCU_STARTUP_ONKEY != sf_poweron_type_get()))
|
||||
UINT8 startup = sf_poweron_type_get();
|
||||
//printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||
if((!dofirst) || ((SF_MCU_STARTUP_ONKEY != startup) && (SF_MCU_STARTUP_NORMAL != startup) && (SF_MCU_STARTUP_USB != startup)))
|
||||
return;
|
||||
dofirst = 0;
|
||||
/*gpio init*/
|
||||
for(i = 0; i < SF_LED_ALL; i++)
|
||||
{
|
||||
|
||||
//gpio_setDir(LedInfo[i].gpioNum, GPIO_DIR_OUTPUT);
|
||||
|
||||
//gpio_setPin(LedInfo[i].gpioNum);
|
||||
sf_hal_gpio_init(LedInfo[i].gpioNum,GPIO_DIR_OUT);
|
||||
//gpio_direction_output(LedInfo[i].gpioNum, GPIO_DIR_OUTPUT);
|
||||
sf_hal_gpio_set(LedInfo[i].gpioNum, LedInfo[i].ledstate);
|
||||
}
|
||||
|
||||
|
||||
//vos_flag_create(&FLG_ID_SF_LED, NULL, "FLG_ID_SF_LED");
|
||||
/*thread creat*/
|
||||
|
@ -582,7 +583,9 @@ void sf_led_stop(void)
|
|||
|
||||
void sf_sys_status_led_set(LedSysState_t ledSysStateId)
|
||||
{
|
||||
if((SF_MCU_STARTUP_ONKEY != sf_poweron_type_get()))
|
||||
UINT8 startup = sf_poweron_type_get();
|
||||
//printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||
if(((SF_MCU_STARTUP_ONKEY != startup) && (SF_MCU_STARTUP_NORMAL != startup) && (SF_MCU_STARTUP_USB != startup)))
|
||||
return;
|
||||
//if((ledSysStateId != SF_LED_SYS_STATE_PIR_DETECT) && (ledSysStateId != SF_LED_SYS_STATE_PIR_NOT_DETECT))
|
||||
printf("SYS LED SET %d\n", ledSysStateId);
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <sf_module.h>
|
||||
#include <sf_system.h>
|
||||
#include <dirent.h>
|
||||
#include "sf_battery.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
|
@ -42,6 +43,8 @@ int sftestus = 60;
|
|||
UINT32 sf_uart_time_flag = 0;
|
||||
UINT8 PicName[5][2][35] = { { { 0 } } };
|
||||
UINT8 mmsUploadFlg = 0; /*0:mms upload file fail; 1:success.*/
|
||||
char SendFileList[201][SF_SEND_LIST_ITEM_LENGTH] = {{0}}; //for 200 files
|
||||
UINT8 SendFileTotal = 0;
|
||||
extern char logStr[128];
|
||||
extern char gsmPara[GPRS_INFO_LINE_MAX];
|
||||
static SINT16 Temper = 0;
|
||||
|
@ -325,10 +328,10 @@ SINT32 sf_quectel_upload_file_to_module(UINT8 *fileAbsolutePath, UINT8 *uploadFn
|
|||
if(count > 500)
|
||||
{
|
||||
ret = SF_UPLOAD_ERROR_AT_TIMEOUT;
|
||||
printf("[%s:%d]MMS AT Timeout,enUploadLocation=%d,Error Code:0x%08X",
|
||||
printf("[%s:%d]MMS AT Timeout,enUploadLocation=%d,Error Code:0x%08X\n",
|
||||
__FUNCTION__, __LINE__, enUploadLocation, ret);
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)gsmPara, "[%s:%d]MMS AT Timeout,enUploadLocation=%d,Error Code:0x%08X",
|
||||
sprintf((char *)gsmPara, "[%s:%d]MMS AT Timeout,enUploadLocation=%d,Error Code:0x%08X\n",
|
||||
__FUNCTION__, __LINE__, enUploadLocation, ret);
|
||||
SLOGE(gsmPara);
|
||||
count = 0;
|
||||
|
@ -349,7 +352,7 @@ SINT32 sf_quectel_upload_file_to_module(UINT8 *fileAbsolutePath, UINT8 *uploadFn
|
|||
if(strstr((const char *)gsmPara, "ERROR"))
|
||||
{
|
||||
ret = SF_UPLOAD_ERROR_GET_FSIZE_FAIL;
|
||||
sprintf((char *)gsmPara, "[%s:%d] AT+QFDEL,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
sprintf((char *)gsmPara, "[%s:%d] AT+QFDEL,Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(gsmPara);
|
||||
goto SF_QUECTEL_UPLOAD_END;
|
||||
}
|
||||
|
@ -381,7 +384,7 @@ SINT32 sf_quectel_upload_file_to_module(UINT8 *fileAbsolutePath, UINT8 *uploadFn
|
|||
else
|
||||
{
|
||||
ret = SF_UPLOAD_ERROR_GET_FSIZE_FAIL;
|
||||
sprintf((char *)gsmPara, "[%s:%d]Get File Szie Fail,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
sprintf((char *)gsmPara, "[%s:%d]Get File Szie Fail,Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(gsmPara);
|
||||
goto SF_QUECTEL_UPLOAD_END;
|
||||
}
|
||||
|
@ -390,7 +393,7 @@ SINT32 sf_quectel_upload_file_to_module(UINT8 *fileAbsolutePath, UINT8 *uploadFn
|
|||
{
|
||||
printf("[%s:%d]open upload file fail,fileAbsolutePath:%s\n", __FUNCTION__, __LINE__, fileAbsolutePath);
|
||||
ret = SF_UPLOAD_ERROR_OPEN_FAIL;
|
||||
sprintf((char *)gsmPara, "[%s:%d]Open Upload File Fail,Error Code:0x%08X", __FUNCTION__, __LINE__, ret);
|
||||
sprintf((char *)gsmPara, "[%s:%d]Open Upload File Fail,Error Code:0x%08X\n", __FUNCTION__, __LINE__, ret);
|
||||
SLOGE(gsmPara);
|
||||
goto SF_QUECTEL_UPLOAD_END;
|
||||
}
|
||||
|
@ -421,7 +424,7 @@ SINT32 sf_quectel_upload_file_to_module(UINT8 *fileAbsolutePath, UINT8 *uploadFn
|
|||
ret = SF_UPLOAD_ERROR_DATA;
|
||||
SLOGE(gsmPara);
|
||||
printf("[%s:%d]Upload data error,fileAbsolutePath:%s\n", __FUNCTION__, __LINE__, fileAbsolutePath);
|
||||
sprintf((char *)gsmPara, "[%s:%d]Upload data error,Error Code:0x%08X,%s", __FUNCTION__, __LINE__, ret, uploadFname);
|
||||
sprintf((char *)gsmPara, "[%s:%d]Upload data error,Error Code:0x%08X,%s\n", __FUNCTION__, __LINE__, ret, uploadFname);
|
||||
SLOGE(gsmPara);
|
||||
//enUploadLocation = QUECTEL_UPLOAD_END;
|
||||
|
||||
|
@ -449,7 +452,7 @@ SINT32 sf_quectel_upload_file_to_module(UINT8 *fileAbsolutePath, UINT8 *uploadFn
|
|||
ret = SF_UPLOAD_ERROR_DATA;
|
||||
SLOGE(gsmPara);
|
||||
printf("[%s:%d]Upload data error,fileAbsolutePath:%s\n", __FUNCTION__, __LINE__, fileAbsolutePath);
|
||||
sprintf((char *)gsmPara, "[%s:%d]Upload data error,Error Code:0x%08X,%s", __FUNCTION__, __LINE__, ret, uploadFname);
|
||||
sprintf((char *)gsmPara, "[%s:%d]Upload data error,Error Code:0x%08X,%s\n", __FUNCTION__, __LINE__, ret, uploadFname);
|
||||
SLOGE(gsmPara);
|
||||
//enUploadLocation = QUECTEL_UPLOAD_END;
|
||||
sf_test_upload_tm_log = 1;
|
||||
|
@ -494,10 +497,10 @@ SINT32 sf_quectel_upload_file_to_module(UINT8 *fileAbsolutePath, UINT8 *uploadFn
|
|||
//sf_cmd_camera_restart(1); //reboot modu
|
||||
//enUploadLocation = QUECTEL_UPLOAD_END;
|
||||
ret = SF_UPLOAD_ERROR_AT_TIMEOUT;
|
||||
printf("[%s:%d]Upload To Module Timeout,enUploadLocation=%d,Error Code:0x%08X",
|
||||
printf("[%s:%d]Upload To Module Timeout,enUploadLocation=%d,Error Code:0x%08X\n",
|
||||
__FUNCTION__, __LINE__, enUploadLocation, ret);
|
||||
SLOGE(gsmPara);
|
||||
sprintf((char *)gsmPara, "[%s:%d]Upload To Module Timeout,enUploadLocation=%d,Error Code:0x%08X,%s",
|
||||
sprintf((char *)gsmPara, "[%s:%d]Upload To Module Timeout,enUploadLocation=%d,Error Code:0x%08X,%s\n",
|
||||
__FUNCTION__, __LINE__, enUploadLocation, ret, uploadFname);
|
||||
SLOGE(gsmPara);
|
||||
sf_test_upload_tm_log = 1;
|
||||
|
@ -524,7 +527,7 @@ SINT32 sf_quectel_upload_file_to_module(UINT8 *fileAbsolutePath, UINT8 *uploadFn
|
|||
}
|
||||
}
|
||||
SF_QUECTEL_UPLOAD_END:
|
||||
SLOGD("End,ret=0x%08x", ret);
|
||||
SLOGD("End,ret=0x%08x\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -827,7 +830,7 @@ SINT16 sf_app_get_temper(UINT8 type) /*0:°F 1:°C */
|
|||
stMessageBuf.arg1 = SF_DEV_CMD_TEMPER;
|
||||
stMessageBuf.arg2 = type;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
while((TemperFalg == 0) && (tmp < 20))
|
||||
while((TemperFalg == 0) && (tmp < 100))
|
||||
{
|
||||
usleep(1000);
|
||||
tmp++;
|
||||
|
@ -844,6 +847,8 @@ void sf_app_set_temper(SINT16 val) /*0:°F 1:°C */
|
|||
|
||||
UINT8 sf_app_get_battery(void)
|
||||
{
|
||||
return sf_battery_value_get(0);
|
||||
#if 0
|
||||
int tmp = 0;
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
|
||||
|
@ -852,12 +857,13 @@ UINT8 sf_app_get_battery(void)
|
|||
stMessageBuf.cmdId = CMD_DEV;
|
||||
stMessageBuf.arg1 = SF_DEV_CMD_BAT;
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
while((batteryFalg == 0) && (tmp < 30))
|
||||
while((batteryFalg == 0) && (tmp < 100))
|
||||
{
|
||||
usleep(1000);
|
||||
tmp++;
|
||||
}
|
||||
return battery;
|
||||
#endif
|
||||
}
|
||||
|
||||
void sf_app_set_battery(UINT8 val, UINT8 type)
|
||||
|
@ -1253,7 +1259,7 @@ UINT32 sf_create_dailyreport_file(void)
|
|||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#if 0
|
||||
/*************************************************
|
||||
Function: sf_is_enough_power_to_update
|
||||
Description: whether or not enough power to update
|
||||
|
@ -1273,7 +1279,7 @@ BOOL sf_is_enough_power_to_update(void)
|
|||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
BOOL sf_is_4g_module_usb_update_file_exist(UINT8 *updateFname)
|
||||
{
|
||||
|
@ -1310,6 +1316,157 @@ BOOL sf_is_4g_module_usb_update_file_exist(UINT8 *updateFname)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_get_send_file_list
|
||||
Description: get send file list
|
||||
Input: sendfname
|
||||
Output: N/A
|
||||
Return: N/A
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
UINT8 sf_get_send_file_list(char *sendfileList, UINT8 *fileTotal)
|
||||
{
|
||||
UIMenuStoreInfo *pPara = sf_app_ui_para_get();
|
||||
SF_PDT_PARAM_STATISTICS_S *pSifarPara = sf_statistics_param_get();
|
||||
char sendListName[64] = {0};
|
||||
FILE *fd = NULL;
|
||||
UINT32 fsize = 0;
|
||||
UINT8 i = 0;
|
||||
UINT8 MaxFileNum = 200;
|
||||
UINT32 oldFileKey = 0;
|
||||
char oldFileName[SF_SEND_LIST_ITEM_LENGTH+1] = {0};
|
||||
char *pFileHasSend = NULL;
|
||||
UINT32 fileOffset = 0;
|
||||
|
||||
if(0 == pPara->SendType){
|
||||
snprintf(sendListName, sizeof(sendListName), "%s", SF_THUMB_SEND_AUTO);
|
||||
}else {
|
||||
snprintf(sendListName, sizeof(sendListName), "%s", SF_THUMB_SEND_LIST);
|
||||
}
|
||||
sf_file_size_get(sendListName, &fsize);
|
||||
|
||||
fd = fopen(sendListName,"r");
|
||||
if(fd == 0)
|
||||
{
|
||||
printf("%s:%d [ERROR] %s open filed\n", __FUNCTION__, __LINE__, sendListName);
|
||||
return FAIL;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(pPara->SendMaxNum == 0) //unlimited
|
||||
{
|
||||
MaxFileNum = (sf_battery_value_get(0) >= 50 ? 200 : 100);// the last 100/200 files
|
||||
}
|
||||
else
|
||||
{
|
||||
MaxFileNum = pPara->SendMaxNum - pSifarPara->picSendMax;
|
||||
}
|
||||
printf("%s:%d Get %s MaxFileNum:%d\n", __FUNCTION__, __LINE__, sendListName, MaxFileNum);
|
||||
|
||||
//fsize = sp5kFsFileSizeGet(fd);
|
||||
if(fsize == 0)
|
||||
{
|
||||
fclose(fd);
|
||||
sf_file_remove(sendListName);
|
||||
return FAIL;
|
||||
}
|
||||
else if(fsize%SF_SEND_LIST_ITEM_LENGTH) //format error delete file list
|
||||
{
|
||||
//SLOGE((SINT8 *)"FTP ERROR: 303\n");
|
||||
printf("%s:%d FTP ERROR: 303\n", __FUNCTION__, __LINE__);
|
||||
fclose(fd);
|
||||
sf_file_remove(sendListName);
|
||||
return FAIL;
|
||||
}
|
||||
else if(fsize > MaxFileNum*SF_SEND_LIST_ITEM_LENGTH) // the last 100/200 files
|
||||
{
|
||||
fseek(fd, fsize-MaxFileNum*SF_SEND_LIST_ITEM_LENGTH, SEEK_SET);
|
||||
fsize = MaxFileNum*SF_SEND_LIST_ITEM_LENGTH;
|
||||
}
|
||||
*fileTotal = fsize/SF_SEND_LIST_ITEM_LENGTH;
|
||||
printf("fileTotal=%d, fsize=%d\n", *fileTotal, fsize);
|
||||
fread(sendfileList, fsize, 1, fd);
|
||||
fclose(fd);
|
||||
|
||||
oldFileKey = pPara->FileKey;
|
||||
printf("last send key:%d\n", oldFileKey);
|
||||
//oldFileKey = 1000003; //for debug
|
||||
if((oldFileKey >= 1000001) && (oldFileKey <= 9999999)) //W1000001.JPG W9999999.JPG
|
||||
{
|
||||
snprintf(oldFileName, sizeof(oldFileName), "W%ld.JPG", oldFileKey);
|
||||
printf("last send file:%s\n", oldFileName);
|
||||
pFileHasSend = strstr(sendfileList, oldFileName); //MAX spend time <= 310ms
|
||||
if(pFileHasSend != NULL)
|
||||
{
|
||||
pFileHasSend -= 1;
|
||||
fileOffset = abs(pFileHasSend - sendfileList) + SF_SEND_LIST_ITEM_LENGTH;
|
||||
fsize -= fileOffset;
|
||||
printf("fileOffset=%d\n", fileOffset);
|
||||
memmove(sendfileList, pFileHasSend + SF_SEND_LIST_ITEM_LENGTH, fsize);
|
||||
*(sendfileList+fsize) = '\0';
|
||||
*fileTotal = fsize/SF_SEND_LIST_ITEM_LENGTH;
|
||||
printf("fileTotal=%d, fsize=%d\n", *fileTotal, fsize);
|
||||
}
|
||||
}
|
||||
|
||||
for(i=1; i <= *fileTotal; i++) // remove \r
|
||||
{
|
||||
*(sendfileList+i*SF_SEND_LIST_ITEM_LENGTH-2) = '\0';
|
||||
}
|
||||
|
||||
//memdump(sendfileList, fsize);
|
||||
//printf("get Success\n");
|
||||
return SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
BOOL sf_check_auto_thumb_file(VOID)
|
||||
{
|
||||
|
||||
BOOL ret = FALSE;
|
||||
UINT8 fileIndex = 0;
|
||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||
printf("%s:%d s\n", __FUNCTION__, __LINE__);
|
||||
|
||||
char tmp[64] = {'\0'};
|
||||
|
||||
SF_SRCFILE_ATTR_S* fileCfg = sf_file_thumb_cfg_get();
|
||||
if(0 == puiPara->SendType){
|
||||
snprintf(tmp, sizeof(tmp), "%s", SF_THUMB_SEND_AUTO);
|
||||
}else {
|
||||
snprintf(tmp, sizeof(tmp), "%s", SF_THUMB_SEND_LIST);
|
||||
}
|
||||
|
||||
if(SUCCESS == sf_get_send_file_list(&SendFileList[0][0], &SendFileTotal)){
|
||||
if (fileCfg) {
|
||||
ret = TRUE;
|
||||
for(fileIndex = 0; fileIndex < SendFileTotal; fileIndex++)
|
||||
{
|
||||
if(SF_CAM_MODE_PHOTO_VIDEO == (SendFileList[fileIndex][0] - '0')){
|
||||
fileCfg->stfileattr[fileIndex].enFileTye = SF_FILE_TYPE_PIC_VIDEO;
|
||||
}else if(SF_CAM_MODE_PHOTO == (SendFileList[fileIndex][0] - '0')){
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(0 == puiPara->SendType){
|
||||
sf_file_remove(tmp);
|
||||
}
|
||||
|
||||
printf("%s:%d e \n", __FUNCTION__, __LINE__);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
UINT8 sf_get_send_file_total(void)
|
||||
{
|
||||
return SendFileTotal;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include "sf_log.h"
|
||||
#include "sf_fileMng.h"
|
||||
#include "sf_common.h"
|
||||
#include "sf_battery.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
|
@ -22,8 +23,9 @@ extern "C" {
|
|||
|
||||
SF_SRCFILE_ATTR_S *pThumbFileCfg = 0;
|
||||
|
||||
char SendFileList[201][SF_SEND_LIST_ITEM_LENGTH] = {{0}}; //for 200 files
|
||||
UINT8 SendFileTotal = 0;
|
||||
static SF_HDFILE_ATTR_S HDFileCfg = {0};
|
||||
static SF_HDFILE_ATTR_S VideoFileCfg = {0};
|
||||
|
||||
//"^HRT[0-9]{5}.txt$"
|
||||
//"^W[0-9]{7}.txt$"
|
||||
|
||||
|
@ -670,157 +672,26 @@ void sf_file_thumb_cfg_clear(void)
|
|||
pThumbFileCfg->filecnt = 0;
|
||||
}
|
||||
|
||||
UINT8 sf_get_send_file_total(void)
|
||||
SF_HDFILE_ATTR_S* sf_file_hd_cfg_get(void)
|
||||
{
|
||||
return SendFileTotal;
|
||||
return &HDFileCfg;
|
||||
}
|
||||
|
||||
BOOL sf_check_auto_thumb_file(VOID)
|
||||
void sf_file_hd_cfg_set_down(SF_HDFILE_ATTR_S *pSfHdPara)
|
||||
{
|
||||
|
||||
BOOL ret = FALSE;
|
||||
UINT8 fileIndex = 0;
|
||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||
printf("%s:%d s\n", __FUNCTION__, __LINE__);
|
||||
|
||||
char tmp[64] = {'\0'};
|
||||
|
||||
SF_SRCFILE_ATTR_S* fileCfg = sf_file_thumb_cfg_get();
|
||||
if(0 == puiPara->SendType){
|
||||
snprintf(tmp, sizeof(tmp), "%s", SF_THUMB_SEND_AUTO);
|
||||
}else {
|
||||
snprintf(tmp, sizeof(tmp), "%s", SF_THUMB_SEND_LIST);
|
||||
}
|
||||
|
||||
if(SUCCESS == sf_get_send_file_list(&SendFileList[0][0], &SendFileTotal)){
|
||||
if (fileCfg) {
|
||||
ret = TRUE;
|
||||
for(fileIndex = 0; fileIndex < SendFileTotal; fileIndex++)
|
||||
{
|
||||
if(SF_CAM_MODE_PHOTO_VIDEO == (SendFileList[fileIndex][0] - '0')){
|
||||
fileCfg->stfileattr[fileIndex].enFileTye = SF_FILE_TYPE_PIC_VIDEO;
|
||||
}else if(SF_CAM_MODE_PHOTO == (SendFileList[fileIndex][0] - '0')){
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(0 == puiPara->SendType){
|
||||
sf_file_remove(tmp);
|
||||
}
|
||||
|
||||
printf("%s:%d e \n", __FUNCTION__, __LINE__);
|
||||
|
||||
return ret;
|
||||
//currentInfo = *pSfCustomerPara;
|
||||
memcpy(pSfHdPara,&HDFileCfg,sizeof(SF_HDFILE_ATTR_S));
|
||||
}
|
||||
void sf_hd_param_set(SF_HDFILE_ATTR_S *pSfHdPara)
|
||||
{
|
||||
//currentInfo = *pSfCustomerPara;
|
||||
memcpy(&HDFileCfg,pSfHdPara,sizeof(SF_HDFILE_ATTR_S));
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_get_send_file_list
|
||||
Description: get send file list
|
||||
Input: sendfname
|
||||
Output: N/A
|
||||
Return: N/A
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
UINT8 sf_get_send_file_list(char *sendfileList, UINT8 *fileTotal)
|
||||
SF_HDFILE_ATTR_S* sf_file_video_cfg_get(void)
|
||||
{
|
||||
UIMenuStoreInfo *pPara = sf_app_ui_para_get();
|
||||
char sendListName[64] = {0};
|
||||
FILE *fd = NULL;
|
||||
UINT32 fsize = 0;
|
||||
UINT8 i = 0;
|
||||
UINT8 MaxFileNum = 200;
|
||||
UINT32 oldFileKey = 0;
|
||||
char oldFileName[SF_SEND_LIST_ITEM_LENGTH+1] = {0};
|
||||
char *pFileHasSend = NULL;
|
||||
UINT32 fileOffset = 0;
|
||||
|
||||
if(0 == pPara->SendType){
|
||||
snprintf(sendListName, sizeof(sendListName), "%s", SF_THUMB_SEND_AUTO);
|
||||
}else {
|
||||
snprintf(sendListName, sizeof(sendListName), "%s", SF_THUMB_SEND_LIST);
|
||||
}
|
||||
sf_file_size_get(sendListName, &fsize);
|
||||
|
||||
fd = fopen(sendListName,"r");
|
||||
if(fd == 0)
|
||||
{
|
||||
printf("%s:%d [ERROR] %s open filed\n", __FUNCTION__, __LINE__, sendListName);
|
||||
return FAIL;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(pPara->SendMaxNum == 0) //unlimited
|
||||
{
|
||||
MaxFileNum = 100;//(sf_battery_value_get(0) >= 50 ? 200 : 100);// the last 100/200 files
|
||||
}
|
||||
else
|
||||
{
|
||||
MaxFileNum = 100;//pPara->SendMaxNum - pSifarPara->picSendMax;
|
||||
}
|
||||
printf("%s:%d Get %s MaxFileNum:%d\n", __FUNCTION__, __LINE__, sendListName, MaxFileNum);
|
||||
|
||||
//fsize = sp5kFsFileSizeGet(fd);
|
||||
if(fsize == 0)
|
||||
{
|
||||
fclose(fd);
|
||||
sf_file_remove(sendListName);
|
||||
return FAIL;
|
||||
}
|
||||
else if(fsize%SF_SEND_LIST_ITEM_LENGTH) //format error delete file list
|
||||
{
|
||||
//sf_error_log((SINT8 *)"FTP ERROR: 303\n");
|
||||
printf("%s:%d FTP ERROR: 303\n", __FUNCTION__, __LINE__);
|
||||
fclose(fd);
|
||||
sf_file_remove(sendListName);
|
||||
return FAIL;
|
||||
}
|
||||
else if(fsize > MaxFileNum*SF_SEND_LIST_ITEM_LENGTH) // the last 100/200 files
|
||||
{
|
||||
fseek(fd, fsize-MaxFileNum*SF_SEND_LIST_ITEM_LENGTH, SEEK_SET);
|
||||
fsize = MaxFileNum*SF_SEND_LIST_ITEM_LENGTH;
|
||||
}
|
||||
*fileTotal = fsize/SF_SEND_LIST_ITEM_LENGTH;
|
||||
printf("fileTotal=%d, fsize=%d\n", *fileTotal, fsize);
|
||||
fread(sendfileList, fsize, 1, fd);
|
||||
fclose(fd);
|
||||
|
||||
oldFileKey = pPara->FileKey;
|
||||
printf("last send key:%d\n", oldFileKey);
|
||||
//oldFileKey = 1000003; //for debug
|
||||
if((oldFileKey >= 1000001) && (oldFileKey <= 9999999)) //W1000001.JPG W9999999.JPG
|
||||
{
|
||||
snprintf(oldFileName, sizeof(oldFileName), "W%ld.JPG", oldFileKey);
|
||||
printf("last send file:%s\n", oldFileName);
|
||||
pFileHasSend = strstr(sendfileList, oldFileName); //MAX spend time <= 310ms
|
||||
if(pFileHasSend != NULL)
|
||||
{
|
||||
pFileHasSend -= 1;
|
||||
fileOffset = abs(pFileHasSend - sendfileList) + SF_SEND_LIST_ITEM_LENGTH;
|
||||
fsize -= fileOffset;
|
||||
printf("fileOffset=%d\n", fileOffset);
|
||||
memmove(sendfileList, pFileHasSend + SF_SEND_LIST_ITEM_LENGTH, fsize);
|
||||
*(sendfileList+fsize) = '\0';
|
||||
*fileTotal = fsize/SF_SEND_LIST_ITEM_LENGTH;
|
||||
printf("fileTotal=%d, fsize=%d\n", *fileTotal, fsize);
|
||||
}
|
||||
}
|
||||
|
||||
for(i=1; i <= *fileTotal; i++) // remove \r
|
||||
{
|
||||
*(sendfileList+i*SF_SEND_LIST_ITEM_LENGTH-2) = '\0';
|
||||
}
|
||||
|
||||
//memdump(sendfileList, fsize);
|
||||
//printf("get Success\n");
|
||||
return SUCCESS;
|
||||
}
|
||||
return &VideoFileCfg;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
|
||||
#include "sf_hal_gpio.h"
|
||||
#include <io/gpio.h>
|
||||
#include "IOCfg.h"
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
extern "C" {
|
||||
|
@ -161,6 +162,26 @@ void sf_usb_mux_s(UINT32 cnt)
|
|||
printf("[%s:%d] e cnt:%d\n", __FUNCTION__, __LINE__,cnt);
|
||||
}
|
||||
|
||||
int sf_app_pir_statu_read(void)
|
||||
{
|
||||
static UINT8 state = 0;
|
||||
if(0 == state)
|
||||
{
|
||||
state = 1;
|
||||
gpio_direction_input(GPIO_PIR_STATE);
|
||||
}
|
||||
return gpio_get_value(GPIO_PIR_STATE);
|
||||
}
|
||||
UINT32 sf_app_data_ready_read(void)
|
||||
{
|
||||
/*static UINT8 state = 0;
|
||||
if(0 == state)
|
||||
{
|
||||
state = 1;
|
||||
gpio_direction_input(GPIO_KEY_DATAREADY);
|
||||
}*/
|
||||
return gpio_getPin(GPIO_KEY_DATAREADY);
|
||||
}
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -176,7 +176,7 @@ void sf_log_file(SF_LOG_LEVEL_e enLevel,const char *pszFunc, U32 u32Line,char *p
|
|||
|
||||
pszFmt = (NULL == pszFmt) ? "" : pszFmt;
|
||||
|
||||
if(enLevel <= SF_LOG_LEVEL_DEBUG)
|
||||
if((enLevel <= SF_LOG_LEVEL_WARNING) ||(1 == puiPara->DebugMode))
|
||||
{
|
||||
|
||||
CHAR tmpBuf[2048] = { 0 };
|
||||
|
|
|
@ -55,7 +55,7 @@ extern "C" {
|
|||
|
||||
extern UIMenuStoreInfo currentInfo; //#NT#Init the array to zero.
|
||||
extern UIMenuStoreInfo origInfo; /* backup */
|
||||
|
||||
extern UIMenuStoreInfo origInfo_check; /* backup */
|
||||
//BOOL bSysReady = 0;
|
||||
//BOOL bAutoSystemReset = FALSE;
|
||||
|
||||
|
@ -67,6 +67,41 @@ SF_URL_S sfStOtaUrl = {0};
|
|||
SF_PDT_PARAM_CFG_S StCustomerParam = {0};
|
||||
SF_PDT_PARAM_STATISTICS_S Ststatistics= {0};
|
||||
|
||||
BOOL sf_Check_OTA(void)
|
||||
{
|
||||
FILE *fp = NULL;
|
||||
UINT32 u32ize = 0;
|
||||
char *pStrSrc = NULL;
|
||||
char *pStrOtsOk = "ota_flag=0x1";
|
||||
BOOL ret = FALSE;
|
||||
|
||||
system("cat /proc/cmdline > /tmp/ota.txt");
|
||||
fp = fopen("/tmp/ota.txt","r");
|
||||
if(fp == NULL){
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
fseek(fp, 0, SEEK_END);
|
||||
u32ize = ftell(fp); // take file size
|
||||
fseek(fp, 0, SEEK_SET); // move to position zero
|
||||
pStrSrc = (char *)malloc(u32ize*sizeof(char));
|
||||
if (pStrSrc) {
|
||||
fread(pStrSrc, 1, u32ize, fp);
|
||||
if (strstr(pStrSrc, pStrOtsOk) != 0) {
|
||||
printf("%s: ota upgrade success\r\n", __func__);
|
||||
ret = TRUE;
|
||||
}
|
||||
free(pStrSrc);
|
||||
}
|
||||
|
||||
fclose(fp);
|
||||
fp = NULL;
|
||||
pStrSrc = NULL;
|
||||
u32ize = 0;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int sf_UIInfo_GetStrgPartitionInfo(unsigned long long *pPartOfs, unsigned long long *pPartSize, const char* fdt_path)
|
||||
{
|
||||
unsigned char *p_fdt = (unsigned char *)fdt_get_base();
|
||||
|
@ -293,6 +328,24 @@ UIMenuStoreInfo* sf_app_ui_para_get(void)
|
|||
{
|
||||
return (UIMenuStoreInfo*)¤tInfo;
|
||||
}
|
||||
/*************************************************
|
||||
Function: sf_get_para_check_flag
|
||||
Description:
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: N/A
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
BOOL sf_get_para_check_flag(void)
|
||||
{
|
||||
if(memcmp(¤tInfo, &origInfo_check, sizeof(currentInfo)) == 0){
|
||||
//MLOGI("menu info is changed\n");
|
||||
return FALSE;
|
||||
}
|
||||
origInfo_check = currentInfo;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void SysLimitFlag(UINT32 uiFlag, UINT32 uiMinId, UINT32 uiMaxId, UINT32 uiDefaultId)
|
||||
|
@ -864,6 +917,7 @@ void sf_customer_param_set(UIMenuStoreInfo *pSfCustomerPara)
|
|||
{
|
||||
//currentInfo = *pSfCustomerPara;
|
||||
memcpy(¤tInfo,pSfCustomerPara,sizeof(UIMenuStoreInfo));
|
||||
origInfo_check = currentInfo;
|
||||
}
|
||||
|
||||
void sf_customer_param_set_down(UIMenuStoreInfo *pSfCustomerPara)
|
||||
|
@ -881,6 +935,7 @@ void sf_customer_param_reset(SF_PDT_PARAM_CFG_S *psfpdtparam,UINT8 sysRet)
|
|||
|
||||
SINT32 sf_customer_param_save(SF_PDT_PARAM_CFG_S *pSfCustomerPara)
|
||||
{
|
||||
#if 0
|
||||
SF_COMM_CHECK_POINTER(pSfCustomerPara,SF_FAILURE);
|
||||
SINT32 i = 0;
|
||||
SINT32 ret = 0;
|
||||
|
@ -901,6 +956,91 @@ SINT32 sf_customer_param_save(SF_PDT_PARAM_CFG_S *pSfCustomerPara)
|
|||
MLOGE("save param failed!!!\n");
|
||||
fsync(fd);
|
||||
close(fd);
|
||||
#endif
|
||||
|
||||
unsigned long long partition_ofs= 0, partition_size = 0;
|
||||
int ret = 0;
|
||||
FILE *sys_mtd_fp = NULL;
|
||||
INT32 rw_len = 0;
|
||||
UINT32 sectorCnt;
|
||||
void* tmpInfo = NULL;
|
||||
size_t write_size;
|
||||
char cmd[128] = {'\0'};
|
||||
printf("%s:%d s\n", __FUNCTION__, __LINE__);
|
||||
|
||||
//sf_SysCheckFlag();
|
||||
|
||||
/* check if sys param changed */
|
||||
if(memcmp(¤tInfo, &origInfo, sizeof(currentInfo)) == 0){
|
||||
SLOGI("menu info is not changed\n");
|
||||
goto EXIT;
|
||||
}
|
||||
|
||||
sectorCnt = (sizeof(currentInfo) / _EMBMEM_BLK_SIZE_) + ((sizeof(currentInfo) % _EMBMEM_BLK_SIZE_)? 1 : 0);
|
||||
|
||||
ret = sf_UIInfo_GetStrgPartitionInfo(&partition_ofs, &partition_size, PARTITION_PATH_SYS);
|
||||
if ((ret == 0) && (sizeof(currentInfo) < partition_size)) {
|
||||
char sys_mtd_dev_path[128] = {'\0'};
|
||||
ret = find_sys_mtd_device(sys_mtd_dev_path, sizeof(sys_mtd_dev_path));
|
||||
if(ret){
|
||||
goto EXIT;
|
||||
}
|
||||
|
||||
sys_mtd_fp = fopen(sys_mtd_dev_path, "wb");
|
||||
if(!sys_mtd_fp){
|
||||
SLOGI("open %s failed!\n", sys_mtd_dev_path);
|
||||
ret = -1;
|
||||
goto EXIT;
|
||||
}
|
||||
|
||||
write_size = sectorCnt * _EMBMEM_BLK_SIZE_;
|
||||
tmpInfo = malloc(write_size);
|
||||
if(!tmpInfo){
|
||||
SLOGE("allocate tmpInfo failed!\n");
|
||||
ret = -1;
|
||||
goto EXIT;
|
||||
}
|
||||
|
||||
sprintf(cmd, "flash_eraseall -N %s", sys_mtd_dev_path);
|
||||
SLOGI("%s\n", cmd);
|
||||
ret = system(cmd);
|
||||
if(ret){
|
||||
SLOGE("flash_eraseall failed!\n");
|
||||
goto EXIT;
|
||||
}
|
||||
|
||||
memset(tmpInfo, 0xFF, write_size);
|
||||
currentInfo.uhInfoSize = sizeof(currentInfo);
|
||||
memcpy(tmpInfo, ¤tInfo, sizeof(currentInfo));
|
||||
rw_len = fwrite(tmpInfo, 1, write_size, sys_mtd_fp);
|
||||
if(rw_len != (INT32)(write_size)) {
|
||||
SLOGE("fwrite size not matched(%ld / %ld)!\n", rw_len, write_size);
|
||||
ret = -1;
|
||||
goto EXIT;
|
||||
}
|
||||
fflush(sys_mtd_fp);
|
||||
|
||||
UINT32 sum = MemCheck_CalcCheckSum16Bit((UINT32)tmpInfo, sizeof(currentInfo));
|
||||
SLOGI("**************size = %lx / mov size = %u / sum = %lx **************\n",
|
||||
sizeof(currentInfo),
|
||||
((UIMenuStoreInfo*)tmpInfo)->UIParameter[FL_MOVIE_SIZE],
|
||||
sum);
|
||||
}
|
||||
else{
|
||||
SLOGE("can't get partition info or menu info size exceed partition size!\n");
|
||||
}
|
||||
|
||||
EXIT:
|
||||
if(sys_mtd_fp){
|
||||
fclose(sys_mtd_fp);
|
||||
sys_mtd_fp = NULL;
|
||||
}
|
||||
|
||||
if(tmpInfo){
|
||||
free(tmpInfo);
|
||||
tmpInfo = NULL;
|
||||
}
|
||||
printf("%s:%d e\n", __FUNCTION__, __LINE__);
|
||||
|
||||
return SF_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -393,8 +393,17 @@ SINT32 sf_sd_status_set(SF_SD_STATUS_E enStatus)
|
|||
*************************************************/
|
||||
UINT32 sf_delete_send_flie_list(void)
|
||||
{
|
||||
UIMenuStoreInfo *puiPara = sf_app_ui_para_get();
|
||||
if(0 == puiPara->SendType){
|
||||
if(sf_file_IsExsit(SF_THUMB_SEND_AUTO) == SF_TRUE)
|
||||
sf_file_remove(SF_THUMB_SEND_AUTO);
|
||||
}
|
||||
else{
|
||||
printf("delete %s\n", SF_SEND_LIST_DIR);
|
||||
if(sf_file_IsExsit(SF_THUMB_SEND_LIST) == SF_TRUE)
|
||||
sf_file_remove(SF_THUMB_SEND_LIST);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,10 @@
|
|||
#include "sf_message_queue.h"
|
||||
#include "sf_commu_mcu.h"
|
||||
#include <sf_device.h>
|
||||
|
||||
#include "kwrap/flag.h"
|
||||
#include "kwrap/debug.h"
|
||||
#include "kwrap/util.h"
|
||||
#include <sys/select.h>
|
||||
#define SERIAL_DEVICE_PATH "/dev/ttyS2"
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -125,10 +128,48 @@ unsigned char cmpValBuf[BUF_REG_SIZE] = {0};
|
|||
|
||||
static unsigned char sf_commu_mcu_exit = 1;
|
||||
static pthread_t sfCommuMcuThread = 0;
|
||||
static void * sf_commu_mcu_task(void * argv);
|
||||
//static void * sf_commu_mcu_task(void * argv);
|
||||
|
||||
int gsfd = -1;
|
||||
|
||||
static ID sf_mcu_flag_id = 0;
|
||||
|
||||
void sf_mcu_flag_init(void)
|
||||
{
|
||||
vos_flag_create(&sf_mcu_flag_id, NULL, "sf_mcu_flag_id");
|
||||
vos_flag_clr(sf_mcu_flag_id, (FLGPTN)-1);
|
||||
}
|
||||
|
||||
void sf_mcu_flag_set_done(MCU_FLAG_INIT boot_init)
|
||||
{
|
||||
vos_flag_set(sf_mcu_flag_id, (FLGPTN)(1 << boot_init));
|
||||
}
|
||||
|
||||
void sf_mcu_flag_wait_done(MCU_FLAG_INIT boot_init)
|
||||
{
|
||||
FLGPTN flgptn;
|
||||
vos_flag_wait(&flgptn, sf_mcu_flag_id, (FLGPTN)(1 << boot_init), TWF_ANDW);
|
||||
}
|
||||
|
||||
int sf_mcu_flag_wait_done_timeout(MCU_FLAG_INIT boot_init, int timeout_ms)
|
||||
{
|
||||
ER ret = E_OK;
|
||||
FLGPTN flgptn;
|
||||
|
||||
ret = vos_flag_wait_timeout(&flgptn, sf_mcu_flag_id, (FLGPTN)(1 << boot_init), TWF_ANDW, vos_util_msec_to_tick(timeout_ms));
|
||||
if(unlikely(ret != E_OK)){
|
||||
printf("wait(%lu) init timeout(%ld ms)!\n", boot_init, timeout_ms);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void sf_mcu_flag_clear_done(MCU_FLAG_INIT boot_init)
|
||||
{
|
||||
//vos_flag_clr(sf_mcu_flag_id, (FLGPTN)(1 << boot_init));
|
||||
vos_flag_clr(sf_mcu_flag_id, (FLGPTN)-1);
|
||||
}
|
||||
|
||||
void mcubuf_reset(void)
|
||||
{
|
||||
mcu_buf_len = 0;
|
||||
|
@ -157,6 +198,7 @@ int sf_commu_mcu_close(void)
|
|||
{
|
||||
if(gsfd > 0)
|
||||
close(gsfd);
|
||||
gsfd = -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -351,11 +393,59 @@ int sf_commu_write(unsigned char * buf, int len)
|
|||
int sf_commu_read(unsigned char * buf, int len)
|
||||
{
|
||||
int ret = SF_SUCCESS;
|
||||
#if 0
|
||||
int timeout_ms = 1000;
|
||||
// 参数检查
|
||||
if (buf == NULL || len <= 0)
|
||||
{
|
||||
printf("%s:%d Invalid parameters.\n", __FUNCTION__, __LINE__);
|
||||
return -EINVAL;
|
||||
}
|
||||
struct timeval timeout;
|
||||
fd_set read_fds;
|
||||
|
||||
// 设置超时时间
|
||||
timeout.tv_sec = timeout_ms / 1000;
|
||||
timeout.tv_usec = (timeout_ms % 1000) * 1000;
|
||||
|
||||
// 初始化文件描述符集
|
||||
FD_ZERO(&read_fds);
|
||||
FD_SET(gsfd, &read_fds);
|
||||
|
||||
// 使用 select 检查文件描述符是否可读
|
||||
ret = select(gsfd + 1, &read_fds, NULL, NULL, &timeout);
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("%s:%d read error: %s\n", __FUNCTION__, __LINE__, strerror(errno));
|
||||
return -errno;
|
||||
}
|
||||
else if (ret == 0)
|
||||
{
|
||||
// 超时,没有数据可读
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (FD_ISSET(gsfd, &read_fds))
|
||||
{
|
||||
ret = read(gsfd, buf, len);
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("%s:%d read error: %s\n", __FUNCTION__, __LINE__, strerror(errno));
|
||||
return -errno;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 返回实际读取的字节数
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
return -1; // 不可达的代码,但为了保持一致性,这里也返回-1
|
||||
#else
|
||||
ret = read(gsfd, buf, len);
|
||||
if(ret < 0)
|
||||
return SF_FAILURE;
|
||||
return ret;
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
int sf_set_mcu_reg(unsigned char reg, unsigned char val)
|
||||
|
@ -612,6 +702,13 @@ unsigned int sf_get_mcu_reg_ack_depack_many(unsigned char reg[], unsigned char v
|
|||
|
||||
int sf_commu_wait(unsigned char cmd)
|
||||
{
|
||||
if(sf_mcu_flag_wait_done_timeout(cmd, 60))
|
||||
{
|
||||
sf_commu_reset();
|
||||
return - 1;
|
||||
}
|
||||
return 0;
|
||||
#if 0
|
||||
volatile char trytimes = 0;
|
||||
while ((smap_buf.buf[2] != cmd || SMAP_waitAck == 0) && trytimes <= 100)
|
||||
{
|
||||
|
@ -624,6 +721,7 @@ int sf_commu_wait(unsigned char cmd)
|
|||
return - 1;
|
||||
}
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
void sf_commu_reset(void)
|
||||
|
@ -633,6 +731,7 @@ void sf_commu_reset(void)
|
|||
memset(smap_buf.buf, 0x00, sizeof(smap_buf.buf));
|
||||
memset(cmpRegBuf, 0x00, sizeof(cmpRegBuf));
|
||||
memset(cmpValBuf, 0x00, sizeof(cmpValBuf));
|
||||
sf_mcu_flag_clear_done(0);
|
||||
}
|
||||
|
||||
int sf_commu_set_mcu(unsigned char reg, unsigned char val)
|
||||
|
@ -693,7 +792,7 @@ int sf_commu_get_mcu(unsigned char reg)
|
|||
|
||||
return ret;
|
||||
}
|
||||
int sf_commu_set_mcu_many(unsigned char reg[], unsigned char val[], unsigned int *num)
|
||||
int sf_commu_set_mcu_many2(unsigned char reg[], unsigned char val[], unsigned int *num)
|
||||
{
|
||||
int ret = -1;
|
||||
//unsigned int address = 0;
|
||||
|
@ -727,15 +826,13 @@ int sf_commu_set_mcu_many(unsigned char reg[], unsigned char val[], unsigned int
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int sf_commu_get_mcu_many(unsigned char reg[], unsigned char val[], unsigned int *num)
|
||||
int sf_commu_get_mcu_many2(unsigned char reg[], unsigned char val[], unsigned int *num)
|
||||
{
|
||||
int ret = 0;
|
||||
unsigned int i = 0;
|
||||
|
||||
sf_commu_reset();
|
||||
sf_get_mcu_reg_many(reg,*num);
|
||||
ret = sf_commu_wait(0x02);
|
||||
|
@ -763,7 +860,6 @@ int sf_commu_get_mcu_many(unsigned char reg[], unsigned char val[], unsigned int
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -849,7 +945,7 @@ unsigned char sf_commu_parse_mcu_data(unsigned char * src, unsigned int len)
|
|||
stMessageBuf.arg3 = (val[0] & 0x1F);
|
||||
|
||||
ret = 0x05;
|
||||
if(stMessageBuf.arg3 == 3) //ON
|
||||
if(3 == stMessageBuf.arg3) //ON
|
||||
{
|
||||
sf_set_pir_statu_flag(1);
|
||||
if(sf_get_mode_flag()){
|
||||
|
@ -857,12 +953,20 @@ unsigned char sf_commu_parse_mcu_data(unsigned char * src, unsigned int len)
|
|||
}
|
||||
printf("%s:%d-------PIR Key Pressed.------\n", __FUNCTION__, __LINE__);
|
||||
}
|
||||
else if((stMessageBuf.arg3 == 0) || (stMessageBuf.arg3 == 1)) //ON
|
||||
else if(1 == stMessageBuf.arg3) //ON->OFF
|
||||
{//PIR MODE: ON->OFF/ ON->SETUP
|
||||
sf_set_module_sleep_flag(0);
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_POWER_OFF);
|
||||
}
|
||||
else if(0 == stMessageBuf.arg3) //ON->SETUP
|
||||
{//PIR MODE: ON->OFF/ ON->SETUP
|
||||
sf_set_module_sleep_flag(0);
|
||||
sf_com_message_send_to_cardv(&stMessageBuf);
|
||||
}
|
||||
if(sf_get_mode_flag()){
|
||||
sf_set_power_off_flag(1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -890,12 +994,63 @@ unsigned char sf_commu_parse_mcu_data(unsigned char * src, unsigned int len)
|
|||
}
|
||||
return ret;
|
||||
}
|
||||
int sf_mcu_dev_read(unsigned char *buf, int len, int timeout_ms)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
// 参数检查
|
||||
if (buf == NULL || len <= 0 || timeout_ms < 0)
|
||||
{
|
||||
printf("Invalid parameters for sf_mcu_dev_read.\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
struct timeval timeout;
|
||||
fd_set read_fds;
|
||||
|
||||
// 设置超时时间
|
||||
timeout.tv_sec = timeout_ms / 1000;
|
||||
timeout.tv_usec = (timeout_ms % 1000) * 1000;
|
||||
|
||||
// 初始化文件描述符集
|
||||
FD_ZERO(&read_fds);
|
||||
FD_SET(gsfd, &read_fds);
|
||||
|
||||
// 使用 select 检查文件描述符是否可读
|
||||
ret = select(gsfd + 1, &read_fds, NULL, NULL, &timeout);
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("%s:%d read error: %s\n", __FUNCTION__, __LINE__, strerror(errno));
|
||||
return -errno;
|
||||
}
|
||||
else if (ret == 0)
|
||||
{
|
||||
// 超时,没有数据可读
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (FD_ISSET(gsfd, &read_fds))
|
||||
{
|
||||
ret = read(gsfd, buf, len);
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("%s:%d read error: %s\n", __FUNCTION__, __LINE__, strerror(errno));
|
||||
return -errno;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 返回实际读取的字节数
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
return -1; // 不可达的代码,但为了保持一致性,这里也返回-1
|
||||
}
|
||||
static void * sf_commu_mcu_task(void * argv)
|
||||
{
|
||||
static unsigned char buffer[BUF_REG_SIZE] = {0};
|
||||
int i = 0;
|
||||
//int j = 0;
|
||||
int readLen = 0;
|
||||
int len = 0;
|
||||
short start = -1;
|
||||
|
@ -906,12 +1061,59 @@ static void * sf_commu_mcu_task(void * argv)
|
|||
unsigned char temp_end2 = 0;
|
||||
unsigned char copy_size = 0;
|
||||
printf("[%s:%d] s\n", __FUNCTION__, __LINE__);
|
||||
|
||||
//sf_mcu_flag_set_done(MCU_FLAG_GET);
|
||||
mcubuf_reset();
|
||||
while(sf_commu_mcu_exit == 0)
|
||||
{
|
||||
readLen = sf_commu_read(buffer + len, BUF_REG_SIZE);
|
||||
#if 0
|
||||
sf_mcu_flag_wait_done(MCU_FLAG_GET);
|
||||
|
||||
//len = sf_commu_read(buffer, BUF_REG_SIZE);
|
||||
len = sf_mcu_dev_read(buffer, 256, 10);
|
||||
|
||||
if (len > 0)
|
||||
{
|
||||
for (i = 0; i < len - 1; i++)
|
||||
{
|
||||
// 查找起始标识符:0x55, 0xAA
|
||||
if (buffer[i] == 0x55 && buffer[i + 1] == 0xAA)
|
||||
{
|
||||
start = i;
|
||||
// 查找结束标识符:0xFF, 0xEE
|
||||
for ( j = i; j < len - 1; j++)
|
||||
{
|
||||
if (buffer[j] == 0xFF && buffer[j + 1] == 0xEE)
|
||||
{
|
||||
end = j + 1;
|
||||
// 查找是否符合要求的命令
|
||||
copy_size = end - start + 1;
|
||||
if (buffer[start + 2] != 0xFF)
|
||||
{
|
||||
if (buffer[start + 2] == 0x05 || buffer[start + 2] == 0x06)
|
||||
{
|
||||
memcpy(mcu_buf, buffer + start, copy_size);
|
||||
mcu_buf_len = copy_size;
|
||||
sf_commu_parse_mcu_data(mcu_buf, mcu_buf_len);
|
||||
mcubuf_reset();
|
||||
}
|
||||
}
|
||||
i = end; // 设置起始值
|
||||
//break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (len < 0)
|
||||
{
|
||||
printf("Error occurred in reading: %s\n", strerror(-len));
|
||||
//break;
|
||||
}
|
||||
sf_mcu_flag_set_done(MCU_FLAG_GET);
|
||||
|
||||
#else
|
||||
|
||||
readLen = sf_commu_read(buffer + len, BUF_REG_SIZE);
|
||||
if(readLen > 0)
|
||||
{
|
||||
len += readLen;
|
||||
|
@ -995,7 +1197,6 @@ static void * sf_commu_mcu_task(void * argv)
|
|||
end = -1;
|
||||
len = 0;
|
||||
i = 0;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1004,11 +1205,14 @@ static void * sf_commu_mcu_task(void * argv)
|
|||
len = 0;
|
||||
i = 0;
|
||||
}
|
||||
sf_mcu_flag_set_done(MCU_FLAG_GET);
|
||||
}
|
||||
}
|
||||
|
||||
usleep(10000);//10ms
|
||||
#endif
|
||||
}
|
||||
//sf_mcu_flag_set_done(MCU_FLAG_GET);
|
||||
sf_commu_mcu_close();
|
||||
pthread_exit(0);
|
||||
}
|
||||
|
@ -1040,6 +1244,182 @@ unsigned char sf_commu_mcu_task_running(void)
|
|||
return sf_commu_mcu_exit;
|
||||
}
|
||||
|
||||
|
||||
int sf_mcu_dev_wait(unsigned char cmd)
|
||||
{
|
||||
unsigned char buffer[256];
|
||||
unsigned int len = 0;
|
||||
int start = -1;
|
||||
int end = -1;
|
||||
unsigned int copy_size = 0;
|
||||
//int trytimes = 0;
|
||||
const int total_timeout_ms = 3000; // 最大超时时间,与原始的 trytimes * 1000 相等
|
||||
const int read_timeout_ms = 1000; // 单次 read 超时时间
|
||||
int time_elapsed_ms = 0;
|
||||
int break_flag = 0;
|
||||
|
||||
while ((smap_buf.buf[2] != cmd || SMAP_waitAck == 0) && time_elapsed_ms < total_timeout_ms && !break_flag)
|
||||
{
|
||||
len = sf_mcu_dev_read(buffer, 256, read_timeout_ms);
|
||||
if (len > 0)
|
||||
{
|
||||
for (unsigned int i = 0; i < len - 1; i++)
|
||||
{
|
||||
// 查找起始标识符:0x55, 0xAA
|
||||
if (buffer[i] == 0x55 && buffer[i + 1] == 0xAA)
|
||||
{
|
||||
start = i;
|
||||
// 查找结束标识符:0xFF, 0xEE
|
||||
for (unsigned int j = i; j < len - 1; j++)
|
||||
{
|
||||
if (buffer[j] == 0xFF && buffer[j + 1] == 0xEE)
|
||||
{
|
||||
end = j + 1;
|
||||
// 查找是否符合要求的命令
|
||||
copy_size = end - start + 1;
|
||||
if (buffer[start + 2] == cmd && buffer[start + 2] != 0xFF)
|
||||
{
|
||||
if (buffer[start + 2] != 0x05 && buffer[start + 2] != 0x06)
|
||||
{
|
||||
// 如果是符合要求的命令,写入 smap_buf 中
|
||||
memcpy(smap_buf.buf + smap_buf.index, buffer + start, copy_size);
|
||||
smap_buf.index += copy_size;
|
||||
SMAP_waitAck = 1; // 设置应答标志位
|
||||
}
|
||||
else
|
||||
{
|
||||
// 如果是MCU状态相关命令,写入 mcu_buf 中
|
||||
//memcpy(mcu_buf, buffer + start, copy_size);
|
||||
//mcu_buf_len = copy_size;
|
||||
}
|
||||
// 设置外层循环退出标志
|
||||
break_flag = 1;
|
||||
}
|
||||
i = end; // 设置起始值
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (len < 0)
|
||||
{
|
||||
printf("Error occurred in reading: %s\n", strerror(-len));
|
||||
break;
|
||||
}
|
||||
time_elapsed_ms += read_timeout_ms;
|
||||
}
|
||||
return time_elapsed_ms >= total_timeout_ms ? -1 : 0;
|
||||
}
|
||||
|
||||
int sf_commu_set_mcu_many(unsigned char reg[], unsigned char val[], unsigned int *num)
|
||||
{
|
||||
int ret = -1;
|
||||
int retries = 0; // 重试次数
|
||||
unsigned int i = 0;
|
||||
|
||||
if (gsfd == -1)
|
||||
sf_commu_mcu_open();
|
||||
|
||||
while (retries < 2)
|
||||
{
|
||||
sf_commu_reset();
|
||||
sf_set_mcu_reg_many(reg, val, *num);
|
||||
//ret = sf_mcu_dev_wait(0x04);
|
||||
ret = sf_commu_wait(MCU_FLAG_GET);
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("%s:%d time out\r\n", __FUNCTION__, __LINE__);
|
||||
sf_commu_reset();
|
||||
retries++; // 超时时增加重试次数
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = sf_get_mcu_reg_ack_depack_many(cmpRegBuf, cmpValBuf, num);
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("%s:%d error\r\n", __FUNCTION__, __LINE__);
|
||||
ret = -1;
|
||||
retries++; // 错误时增加重试次数
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
for(i = 0; i < *num; i++)
|
||||
{
|
||||
if((reg[i] != cmpRegBuf[i]) || (val[i] != cmpValBuf[i]))
|
||||
{
|
||||
printf("%s:%d error address %d, value %d get address %d, value %d\r\n", __FUNCTION__, __LINE__, reg[i], val[i], cmpRegBuf[i], cmpValBuf[i]);
|
||||
ret = -1;
|
||||
retries++; // 错误时增加重试次数
|
||||
}
|
||||
else{
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return -1; // 超过最大重试次数仍然失败时,返回 -1
|
||||
}
|
||||
|
||||
int sf_commu_get_mcu_many(unsigned char reg[], unsigned char val[], unsigned int *num)
|
||||
{
|
||||
int ret = -1;
|
||||
int retries = 0; // 重试次数
|
||||
unsigned int i = 0;
|
||||
|
||||
if (gsfd == -1)
|
||||
sf_commu_mcu_open();
|
||||
|
||||
while (retries < 2)
|
||||
{
|
||||
sf_commu_reset();
|
||||
sf_get_mcu_reg_many(reg,*num);
|
||||
//printf("sf_mcu_dev_get_mcu %d", reg);
|
||||
//ret = sf_mcu_dev_wait(0x02);
|
||||
ret = sf_commu_wait(MCU_FLAG_GET);
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("%s:%d time out\r\n", __FUNCTION__, __LINE__);
|
||||
sf_commu_reset();
|
||||
retries++; // 超时时增加重试次数
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = sf_get_mcu_reg_ack_depack_many(cmpRegBuf, val, num);
|
||||
if (ret < 0)
|
||||
{
|
||||
printf("%s:%d error\r\n", __FUNCTION__, __LINE__);
|
||||
ret = -1;
|
||||
retries++; // 错误时增加重试次数
|
||||
}
|
||||
else
|
||||
{
|
||||
for(i = 0; i < *num; i++)
|
||||
{
|
||||
if(reg[i] != cmpRegBuf[i])
|
||||
{
|
||||
printf("%s:%d error\r\n", __FUNCTION__, __LINE__);
|
||||
ret = -1;
|
||||
retries++; // 错误时增加重试次数
|
||||
|
||||
}
|
||||
else{
|
||||
return ret; // 成功时直接返回
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return -1; // 超过最大重试次数仍然失败时,返回 -1
|
||||
}
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include "sf_commu_mcu_reg.h"
|
||||
#include <sf_device.h>
|
||||
#include <sf_dev_usb.h>
|
||||
|
||||
#include "sf_common.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
|
@ -65,8 +65,6 @@ static UINT8 SIMPINPUK = 1;
|
|||
static UINT8 cq_Signal = 0;
|
||||
static UINT8 drNoResetTimeSync = SF_FALSE; //0:reset; 1:no reset;
|
||||
static UINT8 SetMcuRtcFlag = 0;
|
||||
static UINT8 ModuleUpdating = 0;
|
||||
static UINT8 FwUpdate = 0;
|
||||
static BOOL SignalReadyFlag = FALSE;
|
||||
|
||||
|
||||
|
@ -345,8 +343,8 @@ unsigned char sf_mcu_analog_pir_sen_convert(unsigned char pirs)
|
|||
|
||||
unsigned char sf_mcu_reg_set(MCUParam_t attrId, unsigned char val)
|
||||
{
|
||||
unsigned char mcuReg[70] = {0};
|
||||
unsigned char mcuData[70] = {0};
|
||||
unsigned char mcuReg[REG_SIZE] = {0};
|
||||
unsigned char mcuData[REG_SIZE] = {0};
|
||||
//unsigned char regsize =0;
|
||||
unsigned char i = 0;
|
||||
unsigned char temp = 0;
|
||||
|
@ -363,6 +361,7 @@ unsigned char sf_mcu_reg_set(MCUParam_t attrId, unsigned char val)
|
|||
SINT32 isCardFull = sf_is_card_full();
|
||||
//CameraBootSetting_t* pCameraBootSetting = CameraBootSettingGetHandle();
|
||||
sf_set_sim_insert(1);//Remove hardware detection SIM card
|
||||
MLOGI("Firmware compile time:%s %s VER:%s\n", __DATE__, __TIME__,SF_BASE_VERSION);
|
||||
MLOGI("DailyReportSwitch=%d %02d:%02d\n", puiPara->DailyReportSwitch, puiPara->DailyReportTime2.Hour, puiPara->DailyReportTime2.Min);
|
||||
MLOGI("isUsb = %d isCard = %d isCardFull = %d val = %d simCardInsert = %d start mode = %d\n", isUsb, isCard, isCardFull, val, simCardInsert, sf_poweron_type_get());
|
||||
if(!isCard)
|
||||
|
@ -1180,6 +1179,7 @@ int sf_get_signal_ready(void)
|
|||
int sf_set_signal_ready(int value)
|
||||
{
|
||||
isSignalReady = value;
|
||||
return isSignalReady;
|
||||
}
|
||||
UINT8 sf_get_cq_signal(void)
|
||||
{
|
||||
|
@ -1343,26 +1343,6 @@ void sf_set_sms_number(UINT32 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;
|
||||
}
|
||||
|
||||
void sf_set_gprs_errno(SINT32 value)
|
||||
{
|
||||
GPRS_ERRNO = value;
|
||||
|
|
|
@ -130,6 +130,7 @@ UINT16 CurrentWifiCmd = 0;
|
|||
|
||||
UINT8 gFileName[SF_FILENAME_MAXLEN];
|
||||
UINT8 SendingFile = 0;
|
||||
INT32 DigitalZoom = 0;
|
||||
|
||||
sysMsg_t sendMsg;
|
||||
static SF_WIFI_STATUS_E WifiStatus = SF_WIFI_BUTT;
|
||||
|
@ -226,7 +227,7 @@ static S32 sf_get_sd_info(UINT32 *pSDStatus, UINT32 *pSDFree, UINT32 *pSDTotalSi
|
|||
|
||||
return *pSDStatus;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static void sf_set_zoom(U32 nZoom)
|
||||
{
|
||||
int s32Ret = 0;
|
||||
|
@ -268,7 +269,7 @@ static void sf_set_zoom(U32 nZoom)
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
SF_WIFI_STATUS_E sf_get_wifi_status(void)
|
||||
{
|
||||
return WifiStatus;
|
||||
|
@ -800,23 +801,25 @@ void sf_app_Get_Camera_Info(MSG_DEV_INFO_Get_Rsp_T *camInfo)
|
|||
//MLOGI("[sf_app_Get_Camera_Info],sf_get_sifar_param\n");
|
||||
|
||||
camInfo->cmdRet = 0;
|
||||
//strcpy((char *)camInfo->protocolVersion, "1.0");
|
||||
strcpy((char *)camInfo->protocolVersion, "1.0");
|
||||
|
||||
//printf("[sf_app_Get_Camera_Info],protocolVersion\n");
|
||||
camInfo->devType = 0;
|
||||
//strcpy((char *)camInfo->devId, "1.0.0.1");
|
||||
strcpy((char *)camInfo->devId, "1.0.0.1");
|
||||
|
||||
// printf("[sf_app_Get_Camera_Info],devId\n");
|
||||
camInfo->batLevel = sf_battery_level_get();
|
||||
//camInfo->batLevel = sf_battery_level_get();
|
||||
camInfo->batLevel = sf_cardv_battery_level_get();
|
||||
if(camInfo->batLevel < 1)
|
||||
camInfo->batLevel = 1;
|
||||
|
||||
//printf("[sf_app_Get_Camera_Info],sf_get_Battery_Level\n");
|
||||
|
||||
//camInfo->batteryPercent = camInfo->batLevel * 20;
|
||||
camInfo->batteryPercent = sf_battery_value_get(sf_get_night_led_flag());
|
||||
camInfo->batteryType = 0;
|
||||
|
||||
//camInfo->batteryPercent = sf_battery_value_get(sf_get_night_led_flag());
|
||||
camInfo->batteryPercent = sf_cardv_battery_value_get();
|
||||
//camInfo->batteryType = sf_battery_type_get();
|
||||
camInfo->batteryType = sf_cardv_battery_type_get();
|
||||
|
||||
UINT32 SDFree; /* SD卡剩余容量 MB */
|
||||
UINT32 SDTotalSize; /* SD卡总容量MB */
|
||||
|
@ -883,46 +886,38 @@ void sf_app_Get_Camera_Para(MSG_DEV_Param_Get_Rsp_T *CamPara)
|
|||
//printf("[sf_app_Get_Camera_Para],snapnum:%d\n",puiPara->snapnum);
|
||||
CamPara->cmdRet = 0;
|
||||
|
||||
CamPara->zoom = puiPara->Zoom;
|
||||
CamPara->zoom = DigitalZoom + 1;//puiPara->Zoom+1;
|
||||
|
||||
if(puiPara->CamMode == 0)
|
||||
{
|
||||
CamPara->cameraMode = 0;
|
||||
}
|
||||
else if (puiPara->CamMode == 2)
|
||||
{
|
||||
CamPara->cameraMode = 1;
|
||||
}
|
||||
else if (puiPara->CamMode == 1)
|
||||
{
|
||||
CamPara->cameraMode = 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
CamPara->cameraMode = 0;
|
||||
}
|
||||
CamPara->cameraMode = (puiPara->CamMode==2)?1:0;
|
||||
|
||||
MLOGI("Camera Mode:%d\n", CamPara->cameraMode);
|
||||
|
||||
//CamPara->cameraMode = puiPara->CamMode;
|
||||
|
||||
if(puiPara->ImgSize == 2)
|
||||
if(PHOTO_SIZE_16M == puiPara->ImgSize)
|
||||
{
|
||||
CamPara->imageSize = 0;
|
||||
}
|
||||
else if(puiPara->ImgSize == 3)
|
||||
else if(PHOTO_SIZE_12M == puiPara->ImgSize)
|
||||
{
|
||||
CamPara->imageSize = 1;
|
||||
}
|
||||
else if(puiPara->ImgSize == 4)
|
||||
else if(PHOTO_SIZE_8M == puiPara->ImgSize)
|
||||
{
|
||||
CamPara->imageSize = 2;
|
||||
}
|
||||
/*else if(PHOTO_SIZE_16M == puiPara->ImgSize)
|
||||
{
|
||||
CamPara->imageSize = 3;
|
||||
}
|
||||
else if(PHOTO_SIZE_32M == puiPara->ImgSize)
|
||||
{
|
||||
CamPara->imageSize = 2;
|
||||
}*/
|
||||
else
|
||||
{
|
||||
CamPara->imageSize = 2;
|
||||
}
|
||||
|
||||
MLOGI("Image Size:%d\n", CamPara->imageSize);
|
||||
|
||||
//CamPara->imageSize = puiPara->ImgSize;
|
||||
|
@ -960,8 +955,27 @@ void sf_app_Get_Camera_Para(MSG_DEV_Param_Get_Rsp_T *CamPara)
|
|||
CamPara->sendSecondTimeM = puiPara->TimeSend2.Min;//
|
||||
|
||||
CamPara->SMSCtrl = puiPara->GprsMode;
|
||||
CamPara->videoSize = puiPara->VideoSize;
|
||||
CamPara->videoTime = puiPara->VideoLenth-5;
|
||||
if(MOVIE_SIZE_FRONT_1920x1080P30 == puiPara->VideoSize){
|
||||
CamPara->videoSize = 0;
|
||||
}
|
||||
else if(MOVIE_SIZE_FRONT_1280x720P30 == puiPara->VideoSize){
|
||||
CamPara->videoSize = 1;
|
||||
}
|
||||
else if(MOVIE_SIZE_FRONT_848x480P30 == puiPara->VideoSize){
|
||||
CamPara->videoSize = 2;
|
||||
}
|
||||
else{
|
||||
CamPara->videoSize = 1;
|
||||
}
|
||||
if(15 == puiPara->VideoLenth)
|
||||
{
|
||||
CamPara->videoTime = 10;
|
||||
}
|
||||
else if (10 == puiPara->VideoLenth)
|
||||
{
|
||||
CamPara->videoTime = 5;
|
||||
}
|
||||
|
||||
CamPara->batType = puiPara->BatteryType;
|
||||
|
||||
CamPara->cameraID = puiPara->CamNameSwitch == 0 ? 1:0;
|
||||
|
@ -1155,9 +1169,9 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
|
|||
if(msgParse.cmd == WIFI_GET_CAMERA_CONNECT)
|
||||
{
|
||||
// jiamin add:streaming reset count time
|
||||
if(!isStopStreaming)
|
||||
//if(!isStopStreaming)
|
||||
{
|
||||
//sf_clear_poweroff_time();/*reset power off count time*/
|
||||
sf_set_auto_off_time(0);/*reset power off count time*/
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -1298,16 +1312,17 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
|
|||
break;
|
||||
#endif
|
||||
case WIFI_SET_CAMERA_Zoom: //
|
||||
MLOGI("[WIFI_SET_CAMERA_Zoom],Zoom:%d\n",puiPara->Zoom);
|
||||
puiPara->Zoom = pMsgStruct->msgBuf.deviceZoomSet.zoom;
|
||||
puiPara->Zoom = (puiPara->Zoom > 4 ? 1 : puiPara->Zoom);
|
||||
MLOGI("[WIFI_SET_CAMERA_Zoom],Zoom:%d\n",DigitalZoom);
|
||||
DigitalZoom = pMsgStruct->msgBuf.deviceZoomSet.zoom;
|
||||
DigitalZoom = (DigitalZoom > 4 ? 1 : DigitalZoom) - 1;
|
||||
|
||||
//forbuild sp5kModeGet(&curMode);
|
||||
curMode = 0;//forbuild
|
||||
MLOGI("mode = 0x%x, zoom = %d,\n", curMode, puiPara->Zoom);
|
||||
MLOGI(" factor = %d\n", zmFactor[puiPara->Zoom]);
|
||||
MLOGI("mode = 0x%x, zoom = %d,\n", curMode, DigitalZoom);
|
||||
MLOGI(" factor = %d\n", zmFactor[DigitalZoom]);
|
||||
//forbuild sp5kZoomFactorSet(curMode, zmFactor[puiPara.zoom]);
|
||||
sf_set_zoom(puiPara->Zoom);
|
||||
//sf_set_zoom(puiPara->Zoom);
|
||||
sf_set_DZoom(DigitalZoom);
|
||||
respFlag = 2;
|
||||
paramSaveFlag = 0;
|
||||
break;
|
||||
|
@ -1395,28 +1410,30 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
|
|||
|
||||
if(tmpValue == 0)
|
||||
{
|
||||
puiPara->ImgSize = SF_IMG_SIZE_24M;
|
||||
puiPara->ImgSize = PHOTO_SIZE_16M;
|
||||
}
|
||||
else if(tmpValue == 1)
|
||||
{
|
||||
puiPara->ImgSize = SF_IMG_SIZE_12M;
|
||||
puiPara->ImgSize = PHOTO_SIZE_12M;
|
||||
}
|
||||
else if(tmpValue == 2)
|
||||
{
|
||||
puiPara->ImgSize = SF_IMG_SIZE_8M;
|
||||
puiPara->ImgSize = PHOTO_SIZE_8M;
|
||||
}
|
||||
/*
|
||||
else if(tmpValue == 3)
|
||||
{
|
||||
puiPara->ImgSize = SF_IMG_SIZE_16M;
|
||||
puiPara->ImgSize = PHOTO_SIZE_16M;
|
||||
}
|
||||
else if(tmpValue == 2)
|
||||
{
|
||||
puiPara->ImgSize = SF_IMG_SIZE_32M;
|
||||
}
|
||||
puiPara->ImgSize = PHOTO_SIZE_32M;
|
||||
}*/
|
||||
else
|
||||
{
|
||||
puiPara->ImgSize = SF_IMG_SIZE_8M;
|
||||
puiPara->ImgSize = PHOTO_SIZE_8M;
|
||||
}
|
||||
SysSetFlag(FL_PHOTO_SIZE, puiPara->ImgSize);
|
||||
//sf_set_img_size(puiPara->ImgSize);
|
||||
|
||||
respFlag = 2;
|
||||
|
@ -1593,6 +1610,19 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
|
|||
case WIFI_SET_CAMERA_VideoSize://err
|
||||
MLOGI("[WIFI_SET_CAMERA_VideoSize],videoSize:%d\n",pMsgStruct->msgBuf.setVideoSize.videoSize);
|
||||
puiPara->VideoSize = pMsgStruct->msgBuf.setVideoSize.videoSize % 3;
|
||||
if(0 == pMsgStruct->msgBuf.setVideoSize.videoSize % 3){
|
||||
puiPara->VideoSize = MOVIE_SIZE_FRONT_1920x1080P30;
|
||||
}else if(1 == pMsgStruct->msgBuf.setVideoSize.videoSize % 3){
|
||||
puiPara->VideoSize = MOVIE_SIZE_FRONT_1280x720P30;
|
||||
}else if(2 == pMsgStruct->msgBuf.setVideoSize.videoSize % 3){
|
||||
puiPara->VideoSize = MOVIE_SIZE_FRONT_848x480P30;
|
||||
}else{
|
||||
puiPara->VideoSize = MOVIE_SIZE_FRONT_1280x720P30;
|
||||
}
|
||||
if(puiPara->VideoSize != SysGetFlag(FL_MOVIE_SIZE))
|
||||
{
|
||||
SysSetFlag(FL_MOVIE_SIZE, puiPara->VideoSize);
|
||||
}
|
||||
//forbuild appMediaAttrUpdate(puiPara.VideoSize);
|
||||
//sf_set_video_size(puiPara->VideoSize);
|
||||
respFlag = 2;
|
||||
|
@ -1601,7 +1631,14 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
|
|||
|
||||
case WIFI_SET_CAMERA_VideoTime: //O
|
||||
MLOGI("[WIFI_SET_CAMERA_VideoTime],videoTime:%d\n",pMsgStruct->msgBuf.setVideoTime.videoTime);
|
||||
puiPara->VideoLenth = pMsgStruct->msgBuf.setVideoTime.videoTime+5;
|
||||
if(10 == pMsgStruct->msgBuf.setVideoTime.videoTime)
|
||||
{
|
||||
puiPara->VideoLenth = 15;
|
||||
}
|
||||
else if (5 == pMsgStruct->msgBuf.setVideoTime.videoTime)
|
||||
{
|
||||
puiPara->VideoLenth = 10;
|
||||
}
|
||||
//puiPara->VideoLenth = (puiPara->VideoLenth > 55 ? 0 : puiPara->VideoLenth);
|
||||
respFlag = 2;
|
||||
paramSaveFlag = 1;
|
||||
|
@ -1771,7 +1808,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
|
|||
}
|
||||
else
|
||||
{
|
||||
sprintf((char *)fileName, "./%s",pMsgStruct->msgBuf.ctrlFileTransfer.fileName);
|
||||
sprintf((char *)fileName, "%s%s",SF_SD_ROOT,pMsgStruct->msgBuf.ctrlFileTransfer.fileName);
|
||||
}
|
||||
// printf("rec file cmd:%s\n", fileName);
|
||||
}
|
||||
|
@ -1967,6 +2004,10 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
|
|||
uTemp = htonl(pMsgStruct->msgBuf.ctrlUpdate.updateType);
|
||||
MLOGI("[WIFI_CTRL_UPGRADE],fSize:%d\n",fSize);
|
||||
#if 1//forbuild
|
||||
if(uTemp == 0)
|
||||
{
|
||||
sf_do_upgrade_thread();
|
||||
}
|
||||
//sf_app_msg_data_snd(SY_MSG_UPGRADE_FW,(unsigned char*)NULL);
|
||||
#endif
|
||||
respFlag = 2;//forbuild
|
||||
|
@ -2066,6 +2107,7 @@ SINT32 sf_svr_packet_proc(SINT32 fd, UINT8 *pAppData, UINT16 dataLen)
|
|||
if(paraNeedReboot)
|
||||
{
|
||||
//sf_sys_reboot();
|
||||
Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_NORMAL); //shutdown start
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
BIN
code/hdal/vendor/output/libvendor_ai2_pub.a
vendored
BIN
code/hdal/vendor/output/libvendor_ai2_pub.a
vendored
Binary file not shown.
BIN
code/hdal/vendor/output/libvendor_ai2_pub2.a
vendored
BIN
code/hdal/vendor/output/libvendor_ai2_pub2.a
vendored
Binary file not shown.
|
@ -78,11 +78,8 @@ SRC = \
|
|||
code/source/mcu/sf_mcu_client.c \
|
||||
code/source/mcu/sf_commu_mcu.c \
|
||||
code/source/common/sf_sd_common.c \
|
||||
code/source/common/sf_pc_tool.c \
|
||||
code/source/common/sf_common.c \
|
||||
code/source/common/sf_led.c \
|
||||
code/source/common/sf_battery.c \
|
||||
code/source/module/sf_tcp.c \
|
||||
$(APP_DIR)/source/sf_app/code/source/logMng/sf_log.c \
|
||||
$(APP_DIR)/source/sf_app/code/source/qrcodeMng/sf_base64.c \
|
||||
$(APP_DIR)/source/sf_app/code/source/paramMng/sf_param_common.c \
|
||||
|
@ -94,6 +91,9 @@ SRC = \
|
|||
$(APP_DIR)/source/sf_app/code/source/wifi/sf_wifi_svr.c \
|
||||
$(APP_DIR)/source/sf_app/code/source/wifi/sf_getapinfo.c
|
||||
|
||||
# code/source/common/sf_pc_tool.c \
|
||||
# code/source/module/sf_tcp.c \
|
||||
# code/source/common/sf_battery.c \
|
||||
# code/source/common/sf_message_queue.c \
|
||||
# code/source/common/sf_share_mem.c \
|
||||
# code/source/common/sf_base64.c \
|
||||
|
|
|
@ -6,6 +6,13 @@
|
|||
#define SF_DATE_TIME_YEAR_MAX 2050
|
||||
#define SF_DATE_TIME_YEAR_MIN 2021
|
||||
|
||||
typedef enum MCU_FLAG_INIT {
|
||||
HD_FLAG_INITT_START = 0x00,
|
||||
HD_FLAG_INITT_STOT,
|
||||
HD_FLAG_INITT_OK,
|
||||
HD_FLAG_INIT_MAX_CNT = 32, //flag max bit cnt is 32
|
||||
} HD_FLAG_INIT;
|
||||
|
||||
void sf_mode_detect(void);
|
||||
int sf_pir_statu_read(void);
|
||||
void sf_set_pir_power_off_flag(BOOL flag);
|
||||
|
@ -14,6 +21,8 @@ void sf_set_pir_statu_flag(BOOL flag);
|
|||
void sf_set_auto_off_time(UINT16 time);
|
||||
UINT8 sf_get_fw_update(void);
|
||||
void sf_set_fw_update(UINT8 flag);
|
||||
UINT8 sf_get_module_update(void);
|
||||
void sf_set_module_update(UINT8 flag);
|
||||
BOOL sf_cmd_cam_name_switch(unsigned char argc, char **argv);
|
||||
BOOL sf_cmd_flash_led(unsigned char argc, char **argv);
|
||||
BOOL sf_cmd_img_size(unsigned char argc, char **argv);
|
||||
|
@ -85,5 +94,18 @@ void sf_stamp_temperature_get(INT16 *fTemper,INT16 *cTemper); /*0:F 1:C*/
|
|||
void sf_set_send_statu(BOOL is);
|
||||
BOOL sf_get_send_statu(void);
|
||||
void sf_cardv_set_mcu_rtc_flag(void);
|
||||
|
||||
void sf_hd_flag_init(void);
|
||||
void sf_hd_flag_set_done(HD_FLAG_INIT flag);
|
||||
void sf_hd_flag_wait_done(HD_FLAG_INIT flag);
|
||||
int sf_hd_flag_wait_done_timeout(HD_FLAG_INIT flag, int timeout_ms);
|
||||
void sf_hd_flag_clear_done(HD_FLAG_INIT flag);
|
||||
void sf_do_upgrade_thread(void);
|
||||
UINT32 sf_cardv_para_check_start(void);
|
||||
UINT32 sf_cardv_para_check_stop(void);
|
||||
UINT8 sf_get_night_led_flag(void);
|
||||
void sf_set_night_led_flag(UINT8 flag);
|
||||
void sf_cardv_battery_level_update(UINT8 batteryVal);
|
||||
UINT32 sf_cardv_battery_level_get(void);
|
||||
UINT8 sf_cardv_battery_value_get(void);
|
||||
UINT8 sf_cardv_battery_type_get(void);
|
||||
#endif
|
||||
|
|
|
@ -3,14 +3,14 @@
|
|||
|
||||
#include <sf_mcu.h>
|
||||
#include <sf_sd_common.h>
|
||||
#include <sf_pc_tool.h>
|
||||
#include <sf_tcp.h>
|
||||
#include <sf_http.h>
|
||||
#include <sf_gps.h>
|
||||
#include <sf_sim.h>
|
||||
//#include <sf_pc_tool.h>
|
||||
//#include <sf_tcp.h>
|
||||
//#include <sf_http.h>
|
||||
//#include <sf_gps.h>
|
||||
//#include <sf_sim.h>
|
||||
#include <sf_common.h>
|
||||
#include <sf_led.h>
|
||||
#include <sf_battery.h>
|
||||
//#include <sf_battery.h>
|
||||
#include <sf_commu_mcu.h>
|
||||
//#include <sf_type.h>
|
||||
//#include <sf_hal_ttyusb.h>
|
||||
|
@ -21,6 +21,6 @@
|
|||
#include <sf_message_queue.h>
|
||||
#include <sf_commMng.h>
|
||||
#include <sf_fileMng.h>
|
||||
|
||||
#include <kwrap/task.h>
|
||||
|
||||
#endif
|
||||
|
|
|
@ -24,9 +24,6 @@
|
|||
#endif
|
||||
#include "sf_param_struct.h"
|
||||
|
||||
#define SF_DC_IN_VOLATAGE 70
|
||||
#define SF_LI_IN_VOLATAGE 99
|
||||
|
||||
#define SUCCESS 0
|
||||
#define FAIL 1
|
||||
#define SF_MCU_NIGHT_MODE_LUMINANCE 600
|
||||
|
|
|
@ -159,7 +159,7 @@ UINT32 sf_adc_value_get(UINT32 mux, UINT32 *pval)
|
|||
gpio_set_value(P_GPIO_1, 1);//adc_muxb
|
||||
}
|
||||
|
||||
vos_util_delay_ms(3);
|
||||
vos_util_delay_ms(1);
|
||||
|
||||
*pval = adc_readData(0);
|
||||
//printf("[%s:%d] *pval:%d\n", __FUNCTION__, __LINE__,*pval);
|
||||
|
@ -619,8 +619,9 @@ void sf_battery_level_polling(void)
|
|||
UINT32 dcValueList[12] = { 0 };
|
||||
UINT32 batValueList[12] = { 0 };
|
||||
UIMenuStoreInfo *puiPara = sf_ui_para_get();
|
||||
static UINT32 prePowerDcStatus = 0;
|
||||
|
||||
signed int ret = FALSE;
|
||||
//signed int ret = FALSE;
|
||||
|
||||
static UINT32 battEmpty = 0;
|
||||
|
||||
|
@ -707,26 +708,27 @@ void sf_battery_level_polling(void)
|
|||
|
||||
sf_battery_level_update();
|
||||
|
||||
ret = sf_check_low_battery();
|
||||
//ret = sf_check_low_battery();
|
||||
|
||||
if(puiPara->BatteryLogSwitch)
|
||||
{
|
||||
printf("[%s:%d]batTempLevel=%d,sf_LatestBattLevel=%d\n", __FUNCTION__, __LINE__, batTempLevel, sf_LatestBattLevel);
|
||||
}
|
||||
|
||||
if(batTempLevel != sf_LatestBattLevel)
|
||||
if((batTempLevel != sf_LatestBattLevel) || IsPowerDcIn != prePowerDcStatus)
|
||||
{
|
||||
prePowerDcStatus = IsPowerDcIn;
|
||||
batTempLevel = sf_LatestBattLevel;
|
||||
#if HW_S530
|
||||
sf_view_osd_battery_draw(TRUE);
|
||||
#endif
|
||||
}
|
||||
|
||||
if(ret == TRUE)
|
||||
if(sf_LatestBattLevel == SF_BATT_LEVEL_0)
|
||||
{
|
||||
if(sf_get_night_led_flag())
|
||||
{
|
||||
//sf_ir_led_set(0, 0, 0, 0);
|
||||
sf_ir_led_set(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
//the Module not need sleep.
|
||||
|
@ -737,7 +739,7 @@ void sf_battery_level_polling(void)
|
|||
{
|
||||
battEmpty = 1;
|
||||
printf("[%s:%d]power off because low battery\n", __FUNCTION__, __LINE__);
|
||||
//Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_BATT_EMPTY); //shutdown start
|
||||
Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, APP_POWER_OFF_BATT_EMPTY); //shutdown start
|
||||
}
|
||||
}
|
||||
else if(sf_LatestBattLevel == SF_BATT_LEVEL_1)
|
||||
|
@ -1146,4 +1148,33 @@ BOOL sf_battery_check_init(void)
|
|||
#endif
|
||||
return TRUE;
|
||||
}
|
||||
void sf_set_need_check_first(void)
|
||||
{
|
||||
needCheckFirst = TRUE;
|
||||
}
|
||||
/*************************************************
|
||||
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)
|
||||
{
|
||||
sf_set_need_check_first();
|
||||
sf_battery_adc_value_get();
|
||||
printf("update DC=%d Li=%d Bat=%d\n", DcVoltageVal, LiPolymerVoltageVal, BatVoltageVal);
|
||||
|
||||
if(sf_battery_value_get(0) < 40)
|
||||
{
|
||||
printf("low battery, no update\n");
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
#endif
|
Binary file not shown.
|
@ -53,7 +53,7 @@
|
|||
#include "GxTime.h"
|
||||
#include "UIFlowPhoto/UIFlowPhotoFuncs.h"
|
||||
#include "UIFlowMovie/UIFlowMovieFuncs.h"
|
||||
|
||||
#include "UIApp/Transcode/UIAppTranscode.h"
|
||||
#include <sf_message_queue.h>
|
||||
#include <sf_param_enum.h>
|
||||
#include <sf_keymng.h>
|
||||
|
@ -66,7 +66,6 @@
|
|||
BOOL isGoing2PowerOff = FALSE;
|
||||
UINT16 AutoOfftime = 0;
|
||||
BOOL isGoing2Pir = FALSE;
|
||||
UINT8 FwUpdate = 0;
|
||||
UINT8 NetWorkFlag = 0;
|
||||
UINT8 RespFlag = 0;
|
||||
static BOOL IsMenu = FALSE;
|
||||
|
@ -74,7 +73,33 @@ static BOOL IsCap = FALSE;
|
|||
static BOOL IsSend = FALSE;
|
||||
static UINT8 cq_Signal = 0;
|
||||
static UINT32 TemperAdc = 0;
|
||||
static ID sf_hd_flag_id = 0;
|
||||
static UINT8 hdFlagInit = 0;
|
||||
static char HdflieName[32] = {0};
|
||||
static UINT8 ModuleUpdating = 0;
|
||||
static UINT8 FwUpdate = 0;
|
||||
static UINT8 IsNightLedOn = 0;
|
||||
static SF_BatteryLevel_e sf_LatestBattLevel = SF_BATT_LEVEL_0;
|
||||
static UINT8 batteryVal = 0;
|
||||
static UINT8 batteryType = 0;
|
||||
|
||||
static SF_THREAD_S UpgradeTskParam =
|
||||
{
|
||||
.IsRun = 0,
|
||||
.TskId = -1,
|
||||
};
|
||||
|
||||
/*static SF_THREAD_S ModeuleUpgradeTskParam =
|
||||
{
|
||||
.IsRun = 0,
|
||||
.TskId = -1,
|
||||
};
|
||||
*/
|
||||
static SF_THREAD_S ParaTskCfg =
|
||||
{
|
||||
.IsRun = 0,
|
||||
.TskId = -1,
|
||||
};
|
||||
const UINT16 Adc2TempTable[]=
|
||||
{
|
||||
0,1648,1721,1794,1867,1940,2013,2086,2159, 2232,2305, 2378,2451,2524,2597,2670,2743, 2816, 2889, 2968,
|
||||
|
@ -223,7 +248,7 @@ void sf_mode_detect(void)
|
|||
pwroffcnt = 0;
|
||||
}
|
||||
|
||||
if(puiPara->AutoOffSwitch == 0 || (NetWorkFlag != 0) /*|| (appActiveStateGet() == APP_STATE_CUSTOMER_TRANSFER)*/)
|
||||
if(puiPara->AutoOffSwitch == 0 || (0x04 == NetWorkFlag/*SF_4G_SENDING*/) || (0x05 == NetWorkFlag/*SF_4G_SEARCHING*/) || (sf_get_fw_update()) || (sf_get_module_update())/*|| (appActiveStateGet() == APP_STATE_CUSTOMER_TRANSFER)*/)
|
||||
{
|
||||
AutoOfftime=0;
|
||||
}
|
||||
|
@ -258,6 +283,23 @@ void sf_mode_detect(void)
|
|||
|
||||
//printf("[%s:%d] e\n", __FUNCTION__, __LINE__);
|
||||
}
|
||||
UINT8 sf_get_module_update(void)
|
||||
{
|
||||
return ModuleUpdating;
|
||||
}
|
||||
|
||||
void sf_set_module_update(UINT8 flag)
|
||||
{
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
if(ModuleUpdating != flag)
|
||||
{
|
||||
stMessageBuf.arg1 = flag;
|
||||
stMessageBuf.arg1 = SF_PARA_CMD_MOUP;
|
||||
stMessageBuf.cmdId = CMD_PARA;
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
}
|
||||
ModuleUpdating = flag;
|
||||
}
|
||||
|
||||
UINT8 sf_get_fw_update(void)
|
||||
{
|
||||
|
@ -266,6 +308,14 @@ UINT8 sf_get_fw_update(void)
|
|||
|
||||
void sf_set_fw_update(UINT8 flag)
|
||||
{
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
if(FwUpdate != flag)
|
||||
{
|
||||
stMessageBuf.arg1 = flag;
|
||||
stMessageBuf.arg1 = SF_PARA_CMD_FWUP;
|
||||
stMessageBuf.cmdId = CMD_PARA;
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
}
|
||||
FwUpdate = flag;
|
||||
}
|
||||
|
||||
|
@ -1305,7 +1355,67 @@ INT16 sf_celsius_change_to_fahrenheit(INT16 cTemper)
|
|||
printf("fTemper=%d%s\n",fTemper,"`F");
|
||||
return fTemper;
|
||||
}
|
||||
/*************************************************
|
||||
Function: sf_cardv_adc_value_get
|
||||
Description: get battery adc only once
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: SUCCESS/FAIL
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
UINT32 sf_cardv_adc_value_get(UINT32 mux, UINT32 *pval)
|
||||
{
|
||||
static UINT8 getAdcFlg = 0;
|
||||
static UINT8 outputflag = 1;
|
||||
*pval = 0;
|
||||
|
||||
if(getAdcFlg)
|
||||
{
|
||||
return FAIL;
|
||||
}
|
||||
getAdcFlg = 1;
|
||||
|
||||
if(outputflag)
|
||||
{
|
||||
outputflag = 0;
|
||||
gpio_direction_output(P_GPIO_0,0);
|
||||
gpio_direction_output(P_GPIO_1,0);
|
||||
}
|
||||
|
||||
if(SF_ADC_BATT == mux)//bat_det
|
||||
{
|
||||
//B:0 A:0
|
||||
gpio_set_value(P_GPIO_0, 0);//adc_muxa
|
||||
gpio_set_value(P_GPIO_1, 0);//adc_muxb
|
||||
}
|
||||
else if(SF_ADC_LI == mux)//v-li_det
|
||||
{
|
||||
//B:0 A:1
|
||||
gpio_set_value(P_GPIO_0, 1);//adc_muxa
|
||||
gpio_set_value(P_GPIO_1, 0);//adc_muxb
|
||||
|
||||
}
|
||||
else if(SF_ADC_DC == mux)//dc12_det
|
||||
{
|
||||
//B:1 A:0
|
||||
gpio_set_value(P_GPIO_0, 0);//adc_muxa
|
||||
gpio_set_value(P_GPIO_1, 1);//adc_muxb
|
||||
}
|
||||
else if(SF_ADC_TEMP == mux)//temp_det
|
||||
{
|
||||
//B:1 A:1
|
||||
gpio_set_value(P_GPIO_0, 1);//adc_muxa
|
||||
gpio_set_value(P_GPIO_1, 1);//adc_muxb
|
||||
}
|
||||
|
||||
vos_util_delay_ms(1);
|
||||
|
||||
*pval = adc_readData(0);
|
||||
//printf("[%s:%d] *pval:%d\n", __FUNCTION__, __LINE__,*pval);
|
||||
getAdcFlg = 0;
|
||||
return SUCCESS;
|
||||
|
||||
}
|
||||
void sf_stamp_temperature_get(INT16 *fTemper,INT16 *cTemper) /*0:F 1:C*/
|
||||
{
|
||||
UINT8 readBatCnt = 0;
|
||||
|
@ -1315,7 +1425,7 @@ void sf_stamp_temperature_get(INT16 *fTemper,INT16 *cTemper) /*0:F 1:C*/
|
|||
|
||||
for(readBatCnt=0; readBatCnt<5; readBatCnt++) //get max value of 5 times.
|
||||
{
|
||||
if(sf_adc_value_get(SF_ADC_TEMP, &TemperAdc) == SUCCESS)
|
||||
if(sf_cardv_adc_value_get(SF_ADC_TEMP, &TemperAdc) == SUCCESS)
|
||||
{
|
||||
temperValueList[readBatCnt] = pValue;
|
||||
}
|
||||
|
@ -1333,6 +1443,35 @@ void sf_stamp_temperature_get(INT16 *fTemper,INT16 *cTemper) /*0:F 1:C*/
|
|||
*fTemper = sf_celsius_change_to_fahrenheit(*cTemper);
|
||||
}
|
||||
|
||||
void sf_transcode_bs_ready_cb(void* bitstream_va, UINT32 size)
|
||||
{
|
||||
SLOGI("bitstream_va = %lx , size = %lx\n", bitstream_va, size);
|
||||
//SF_HD_DIR
|
||||
char tmp[64] = {'\0'};
|
||||
snprintf(tmp, sizeof(tmp), "%s%s", SF_HD_DIR_CARDV, HdflieName);
|
||||
FST_FILE fp = FileSys_OpenFile(tmp, FST_OPEN_ALWAYS | FST_OPEN_WRITE);
|
||||
FileSys_WriteFile(fp, (UINT8*)bitstream_va, &size, 0, NULL);
|
||||
FileSys_CloseFile(fp);
|
||||
|
||||
sf_hd_flag_set_done(HD_FLAG_INITT_OK);
|
||||
}
|
||||
|
||||
static BOOL sf_cmd_transcode_start(char **argv)
|
||||
{
|
||||
UIAppTranscode_User_Config user_config = {0};
|
||||
|
||||
|
||||
user_config.filepath = (char*)argv[0];
|
||||
SLOGI("transcode start filepath:%s\r\n",user_config.filepath);
|
||||
|
||||
user_config.bs_ready_cb = sf_transcode_bs_ready_cb;
|
||||
|
||||
Ux_SendEvent(&CustomTranscodeObjCtrl, NVTEVT_EXE_TRANSCODE_START, 1, &user_config);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
INT16 sf_adc2Temperature(UINT16 adcValue, UINT8 type)/*type: 0:°F 1:°C */
|
||||
{
|
||||
UINT16 lowIndex = 0, highIndex = 175, keyIndex = 77, midIndex = 0;
|
||||
|
@ -1504,6 +1643,15 @@ static SINT32 sf_cardv_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
case SF_PARA_CMD_RESET:
|
||||
Reset_MenuInfo();
|
||||
break;
|
||||
case SF_PARA_CMD_FWUP:
|
||||
ModuleUpdating = pMessageBuf->arg2;
|
||||
break;
|
||||
case SF_PARA_CMD_MOUP:
|
||||
FwUpdate = pMessageBuf->arg2;
|
||||
break;
|
||||
case SF_PARA_CMD_NET_STATUS:
|
||||
NetWorkFlag = pMessageBuf->arg2;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -1570,7 +1718,45 @@ static SINT32 sf_cardv_proccess_cmd_wifi(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
|
||||
FlowPhoto_DoCapture();
|
||||
break;
|
||||
case SF_WIFI_CMD_HD_TURE:
|
||||
if(!hdFlagInit)
|
||||
{
|
||||
hdFlagInit = 1;
|
||||
FileSys_MakeDir(PHOTO_THUMB_PATH);
|
||||
FileSys_MakeDir(SF_HD_DIR_CARDV);
|
||||
sf_hd_flag_init();
|
||||
}
|
||||
char *arg[2] = { 0 };
|
||||
char *str = malloc(64);
|
||||
if(NULL != str)
|
||||
{
|
||||
if(SF_SUCCESS == sf_share_mem_hd_update())
|
||||
{
|
||||
SF_HDFILE_ATTR_S* fileCfg = sf_file_hd_cfg_get();
|
||||
|
||||
UINT8 fileIndex = 1;
|
||||
|
||||
for(fileIndex = 1; fileIndex < fileCfg->filecnt; fileIndex++)
|
||||
{
|
||||
//HdflieName
|
||||
memset(HdflieName, '\0', sizeof(HdflieName));
|
||||
sf_hd_flag_clear_done(0);
|
||||
snprintf(HdflieName, sizeof(HdflieName), "W%03d%04d.JPG", fileCfg->stfileattr[fileIndex].dirKey, fileCfg->stfileattr[fileIndex].fileKey);
|
||||
snprintf(str, 64, "A:\\DCIM\\%03d%s\\%s%04d.JPG", fileCfg->stfileattr[fileIndex].dirKey, DCF_DIR_NAME, DCF_FILE_NAME, fileCfg->stfileattr[fileIndex].fileKey);
|
||||
printf("%s\n", str);
|
||||
arg[0] = str;
|
||||
sf_cmd_transcode_start(arg);
|
||||
if(sf_hd_flag_wait_done_timeout(HD_FLAG_INITT_OK, 5000))
|
||||
{
|
||||
MLOGE("HD timeout\n");
|
||||
//return - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
free(str);
|
||||
}
|
||||
sf_share_mem_hd_down(0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -1607,7 +1793,7 @@ static SINT32 sf_cardv_proccess_cmd_dev(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
switch(pMessageBuf->arg1)
|
||||
{
|
||||
case SF_DEV_CMD_TEMPER:
|
||||
if(sf_adc_value_get(SF_ADC_TEMP, &TemperAdc) == SUCCESS)
|
||||
if(sf_cardv_adc_value_get(SF_ADC_TEMP, &TemperAdc) == SUCCESS)
|
||||
{
|
||||
sf_adc2Temperature((UINT16)TemperAdc, 1);
|
||||
}
|
||||
|
@ -1618,11 +1804,9 @@ static SINT32 sf_cardv_proccess_cmd_dev(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
break;
|
||||
case SF_DEV_CMD_BAT:
|
||||
stMessageBuf.cmdId = CMD_DEV;
|
||||
stMessageBuf.arg1 = SF_DEV_CMD_BAT;
|
||||
stMessageBuf.arg2 = (SINT32)sf_battery_value_get(0);
|
||||
stMessageBuf.arg3 = (SINT32)sf_battery_type_get();
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
batteryVal = stMessageBuf.arg2;
|
||||
batteryType = stMessageBuf.arg3;
|
||||
sf_cardv_battery_level_update(batteryVal);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -1653,7 +1837,23 @@ static SINT32 sf_cardv_proccess_cmd_sd(SF_MESSAGE_BUF_S *pMessageBuf)
|
|||
}
|
||||
return SF_SUCCESS;
|
||||
}
|
||||
static SINT32 sf_cardv_proccess_cmd_poweroff(SF_MESSAGE_BUF_S *pMessageBuf)
|
||||
{
|
||||
//UINT32 ret = 0;
|
||||
|
||||
//MLOGI("ID = %#x\n",pMessageBuf->arg1);
|
||||
|
||||
Ux_PostEvent(NVTEVT_SYSTEM_SHUTDOWN, 1, pMessageBuf->arg1); //shutdown start
|
||||
/*switch(pMessageBuf->arg1)
|
||||
{
|
||||
case APP_POWER_OFF_BATT_EMPTY:
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}*/
|
||||
return SF_SUCCESS;
|
||||
}
|
||||
void* sf_cardv_message_thread(void *argv)
|
||||
{
|
||||
SINT32 ret = 0;
|
||||
|
@ -1692,7 +1892,11 @@ void* sf_cardv_message_thread(void *argv)
|
|||
break;
|
||||
case CMD_SD:
|
||||
sf_cardv_proccess_cmd_sd(&stMessagebuf);
|
||||
break; default:
|
||||
break;
|
||||
case CMD_POWEROFF:
|
||||
sf_cardv_proccess_cmd_poweroff(&stMessagebuf);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1809,3 +2013,252 @@ void sf_cardv_set_mcu_rtc_flag(void)
|
|||
stMessageBuf.cmdId = CMD_MCU;
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
}
|
||||
|
||||
void sf_hd_flag_init(void)
|
||||
{
|
||||
vos_flag_create(&sf_hd_flag_id, NULL, "sf_hd_flag_id");
|
||||
vos_flag_clr(sf_hd_flag_id, (FLGPTN)-1);
|
||||
}
|
||||
|
||||
void sf_hd_flag_set_done(HD_FLAG_INIT flag)
|
||||
{
|
||||
vos_flag_set(sf_hd_flag_id, (FLGPTN)(1 << flag));
|
||||
}
|
||||
|
||||
void sf_hd_flag_wait_done(HD_FLAG_INIT flag)
|
||||
{
|
||||
FLGPTN flgptn;
|
||||
vos_flag_wait(&flgptn, sf_hd_flag_id, (FLGPTN)(1 << flag), TWF_ANDW);
|
||||
}
|
||||
|
||||
int sf_hd_flag_wait_done_timeout(HD_FLAG_INIT flag, int timeout_ms)
|
||||
{
|
||||
ER ret = E_OK;
|
||||
FLGPTN flgptn;
|
||||
|
||||
ret = vos_flag_wait_timeout(&flgptn, sf_hd_flag_id, (FLGPTN)(1 << flag), TWF_ANDW, vos_util_msec_to_tick(timeout_ms));
|
||||
if(unlikely(ret != E_OK)){
|
||||
DBG_ERR("wait(%lu) init timeout(%ld ms)!\n", flag, timeout_ms);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void sf_hd_flag_clear_done(HD_FLAG_INIT flag)
|
||||
{
|
||||
vos_flag_clr(sf_hd_flag_id, (FLGPTN)-1);
|
||||
}
|
||||
|
||||
static UINT32 sf_fwupdate(void)
|
||||
{
|
||||
DBG_FUNC_BEGIN("\r\n");
|
||||
|
||||
UINT32 result = 0;
|
||||
|
||||
INT curMode = System_GetState(SYS_STATE_CURRMODE) ;
|
||||
|
||||
System_ChangeSubMode(SYS_SUBMODE_UPDFW);
|
||||
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, PRIMARY_MODE_UPDFW);
|
||||
|
||||
result = System_OnStrg_UploadFW(0);
|
||||
if (result != 0)
|
||||
DBG_ERR("System_OnStrg_UploadFW() fail(%d)\r\n",result);
|
||||
|
||||
if (result != 0) {
|
||||
Ux_SendEvent(0, NVTEVT_SYSTEM_MODE, 1, curMode);
|
||||
System_ChangeSubMode(SYS_SUBMODE_NORMAL);
|
||||
|
||||
}
|
||||
|
||||
DBG_FUNC_END("\r\n");
|
||||
return result;
|
||||
}
|
||||
|
||||
void* sf_sys_do_upgrade(void *arg)
|
||||
{
|
||||
//int s32Ret = 0;
|
||||
|
||||
SLOGW("Begin to do Upgrade!\n");
|
||||
|
||||
//if(sf_is_enough_power_to_update() == FALSE)
|
||||
if(sf_cardv_battery_value_get() < 40){
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
|
||||
}
|
||||
else{
|
||||
sf_set_fw_update(1);
|
||||
sf_set_send_statu(TRUE);
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_UPDATE);
|
||||
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 1);
|
||||
//BKG_PostEvent(NVTEVT_BKW_FW_UPDATE);
|
||||
if(0 != sf_fwupdate()){
|
||||
sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR);
|
||||
}
|
||||
sf_mcu_reg_set(SF_MCU_SOFT_UPDATE, 0);
|
||||
sf_set_send_statu(FALSE);
|
||||
sf_set_fw_update(0);
|
||||
}
|
||||
|
||||
UpgradeTskParam.IsRun = 2;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void sf_do_upgrade_thread(void)
|
||||
{
|
||||
printf("UpgradeTskParam.IsRun:%d\n", UpgradeTskParam.IsRun);
|
||||
if(UpgradeTskParam.IsRun == 2)
|
||||
{
|
||||
UpgradeTskParam.IsRun = 0;
|
||||
pthread_join(UpgradeTskParam.TskId, NULL);
|
||||
}
|
||||
|
||||
if(!UpgradeTskParam.IsRun)
|
||||
{
|
||||
pthread_create(&UpgradeTskParam.TskId, NULL, sf_sys_do_upgrade, NULL);
|
||||
UpgradeTskParam.IsRun = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void* sf_cardv_para_check_thread(void *arg)
|
||||
{
|
||||
while(ParaTskCfg.IsRun)
|
||||
{
|
||||
if(TRUE == sf_get_cardv_para_check_flag()){
|
||||
MLOGI("menu info is changed\n");
|
||||
sf_share_mem_customer_down(0);
|
||||
}
|
||||
//sleep(1);
|
||||
vos_util_delay_ms(10);
|
||||
|
||||
}
|
||||
ParaTskCfg.IsRun = 0;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
UINT32 sf_cardv_para_check_start(void)
|
||||
{
|
||||
SINT32 ret = 1;
|
||||
if(ParaTskCfg.IsRun)
|
||||
{
|
||||
SLOGE("thread has already run !!!\n");
|
||||
return 1;
|
||||
}
|
||||
ret = pthread_create(&ParaTskCfg.TskId, NULL, sf_cardv_para_check_thread, NULL);
|
||||
if(ret != SF_SUCCESS)
|
||||
{
|
||||
MLOGD("thread creat fail!\n");
|
||||
return ret;
|
||||
}
|
||||
ParaTskCfg.IsRun = 1;
|
||||
return SF_SUCCESS;
|
||||
|
||||
}
|
||||
UINT32 sf_cardv_para_check_stop(void)
|
||||
{
|
||||
SINT32 ret = 1;
|
||||
MLOGD("stop\n");
|
||||
ParaTskCfg.IsRun = 0;
|
||||
MLOGD("sf_flash_poweroff_stop\n");
|
||||
ret = pthread_join(ParaTskCfg.TskId, NULL);
|
||||
if(ret != SF_SUCCESS)
|
||||
{
|
||||
MLOGD("thread stop fail!\n");
|
||||
return ret;
|
||||
}
|
||||
return SF_SUCCESS;
|
||||
}
|
||||
UINT8 sf_get_night_led_flag(void)
|
||||
{
|
||||
return IsNightLedOn;
|
||||
}
|
||||
|
||||
void sf_set_night_led_flag(UINT8 flag)
|
||||
{
|
||||
if(flag != IsNightLedOn){
|
||||
#if HUNTING_CAMERA_4G == ENABLE
|
||||
SF_MESSAGE_BUF_S stMessageBuf = {0};
|
||||
stMessageBuf.arg2 = flag;
|
||||
stMessageBuf.arg1 = SF_PARA_CMD_IR_LED_STATUS;
|
||||
stMessageBuf.cmdId = CMD_PARA;
|
||||
sf_com_message_send_to_app(&stMessageBuf);
|
||||
#endif
|
||||
}
|
||||
IsNightLedOn = flag;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_battery_level_update
|
||||
Description: Get battery Voltage with Level.
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: N/A
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
void sf_cardv_battery_level_update(UINT8 batteryVal)
|
||||
{
|
||||
|
||||
UINT8 batteryLevel = SF_BATT_LEVEL_0;
|
||||
|
||||
if(batteryVal >= 70)
|
||||
{
|
||||
batteryLevel = SF_BATT_LEVEL_4;
|
||||
}
|
||||
else if(batteryVal >= 40)
|
||||
{
|
||||
batteryLevel = SF_BATT_LEVEL_3;
|
||||
}
|
||||
else if(batteryVal >= 20)
|
||||
{
|
||||
batteryLevel = SF_BATT_LEVEL_2;
|
||||
}
|
||||
else if(batteryVal >= 1)
|
||||
{
|
||||
batteryLevel = SF_BATT_LEVEL_1;
|
||||
}
|
||||
else
|
||||
{
|
||||
batteryLevel = SF_BATT_LEVEL_0;
|
||||
}
|
||||
|
||||
sf_LatestBattLevel = batteryLevel;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_battery_level_get
|
||||
Description: get battery level
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: SUCCESS/FAIL
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
UINT32 sf_cardv_battery_level_get(void)
|
||||
{
|
||||
return (UINT32)sf_LatestBattLevel;
|
||||
}
|
||||
|
||||
|
||||
/*************************************************
|
||||
Function: sf_battery_value_get
|
||||
Description: get battery value x%
|
||||
Input: nightMode or no
|
||||
Output: N/A
|
||||
Return: battery value x%
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
UINT8 sf_cardv_battery_value_get(void)
|
||||
{
|
||||
return batteryVal;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
Function: sf_battery_type_get
|
||||
Description: Get battery type.
|
||||
Input: N/A
|
||||
Output: N/A
|
||||
Return: value: battery type, 0:normal 1:LiPolymer
|
||||
Others: N/A
|
||||
*************************************************/
|
||||
UINT8 sf_cardv_battery_type_get(void)
|
||||
{
|
||||
return batteryType;
|
||||
}
|
|
@ -153,7 +153,7 @@ SINT32 sf_module_init(VOID)
|
|||
{
|
||||
eSmsLocation = SMS_SIM_INIT_ATI;
|
||||
strcpy((char *)gsmPara, "ATI\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
else if(strstr((const char *)gsmPara, "CME ERROR: SIM not inserted"))
|
||||
|
@ -168,7 +168,7 @@ SINT32 sf_module_init(VOID)
|
|||
{
|
||||
//sleep(800);
|
||||
strcpy((char *)gsmPara, "AT\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
//printf("ttyRet:%d\n", ttyRet);
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
|
@ -197,14 +197,14 @@ SINT32 sf_module_init(VOID)
|
|||
|
||||
printf("[%s:%d]ModuleImei:%s,ModuleVer:%s\n", __FUNCTION__, __LINE__, pPara->ModuleImei, pPara->ModuleVer);
|
||||
strcpy((char *)gsmPara, "AT+CSUB\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
eSmsLocation = SMS_SIM_INIT_ATCSUB;
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy((char *)gsmPara, "ATI\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
|
||||
|
@ -230,14 +230,14 @@ SINT32 sf_module_init(VOID)
|
|||
strcpy((char *)pPara->ModuleSubver, (const char *)strtmp[1]);
|
||||
printf("[%s:%d]ModuleQGver:%s\n", __FUNCTION__, __LINE__, pPara->ModuleSubver);
|
||||
strcpy((char *)gsmPara, "AT+CPIN?\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
eSmsLocation = SMS_SIM_INIT_ATCPIN;
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy((char *)gsmPara, "AT+CSUB\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
|
||||
|
@ -251,7 +251,7 @@ SINT32 sf_module_init(VOID)
|
|||
eSmsLocation = SMS_SIM_INIT_CNVW;
|
||||
strcpy((char *)gsmPara, "AT+CNVW=3006,0,\"FF\"\r");
|
||||
calltime = 0;
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
else if(strstr((const char *)gsmPara, "CME ERROR: SIM not inserted"))
|
||||
|
@ -268,7 +268,7 @@ SINT32 sf_module_init(VOID)
|
|||
{
|
||||
//sleep(1000);
|
||||
sprintf((char *)gsmPara, "%s", "AT+CPIN?\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
}
|
||||
|
@ -286,7 +286,7 @@ SINT32 sf_module_init(VOID)
|
|||
{
|
||||
//sleep(1000);
|
||||
sprintf((char *)gsmPara, "%s", "AT+CPIN?\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
|
||||
|
@ -304,7 +304,7 @@ SINT32 sf_module_init(VOID)
|
|||
SysSetFlag(SimPinFlag, 0);
|
||||
//printf("[%s:%d]pPara->SimPinStr:%s\n",__FUNCTION__,__LINE__,pPara->SimPinStr);
|
||||
sprintf((char *)gsmPara, "AT+CPIN=%s\r", pPara->SimPinStr);
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
else /*first time*/
|
||||
|
@ -345,7 +345,7 @@ SINT32 sf_module_init(VOID)
|
|||
{
|
||||
printf("--------tempi:%d.--------\n", time);
|
||||
sprintf((char *)gsmPara, "AT+CPIN?\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
}
|
||||
|
@ -383,7 +383,7 @@ SINT32 sf_module_init(VOID)
|
|||
sf_set_sim_pin_flag(1, 1, 1);
|
||||
eSmsLocation = SMS_SIM_INIT_ATCPIN2;
|
||||
sprintf((char *)gsmPara, "AT+CLCK=\"SC\",0,\"%s\"\r", pPara->SimPinStr);
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
calltime = 0;
|
||||
}
|
||||
|
@ -401,7 +401,7 @@ SINT32 sf_module_init(VOID)
|
|||
eSmsLocation = SMS_SIM_INIT_CNVW;
|
||||
strcpy((char *)gsmPara, "AT+CNVW=3006,0,\"FF\"\r");
|
||||
calltime = 0;
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
else
|
||||
|
@ -426,7 +426,7 @@ SINT32 sf_module_init(VOID)
|
|||
if(strstr((const char *)gsmPara, "OK"))
|
||||
{
|
||||
strcpy((char *)gsmPara, "AT&W\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
eSmsLocation = SMS_SIM_INIT_ATW;
|
||||
}
|
||||
|
@ -434,7 +434,7 @@ SINT32 sf_module_init(VOID)
|
|||
{
|
||||
//appTimeDelayMs(800);
|
||||
strcpy((char *)gsmPara, "AT+CNVW=3006,0,\"FF\"\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
|
||||
|
@ -445,7 +445,7 @@ SINT32 sf_module_init(VOID)
|
|||
if(strstr((const char *)gsmPara, "OK"))
|
||||
{
|
||||
strcpy((char *)gsmPara, "AT+CICCID\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
eSmsLocation = SMS_SIM_INIT_CICCID;
|
||||
}
|
||||
|
@ -453,7 +453,7 @@ SINT32 sf_module_init(VOID)
|
|||
{
|
||||
//appTimeDelayMs(800);
|
||||
strcpy((char *)gsmPara, "AT&W\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
|
||||
|
@ -482,13 +482,13 @@ SINT32 sf_module_init(VOID)
|
|||
eSmsLocation = SMS_SIM_INIT_ATCIMI;
|
||||
strcpy((char *)gsmPara, "AT+CIMI\r");
|
||||
calltime = 0;
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy((char *)gsmPara, "AT+CICCID\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
|
||||
|
@ -582,7 +582,7 @@ SINT32 sf_module_init(VOID)
|
|||
}
|
||||
|
||||
eSmsLocation = SMS_SIM_INIT_EXIT;
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
else
|
||||
|
@ -608,7 +608,7 @@ SINT32 sf_module_init(VOID)
|
|||
}
|
||||
|
||||
strcpy((char *)gsmPara, "AT+CIMI\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
|
||||
|
@ -622,7 +622,7 @@ SINT32 sf_module_init(VOID)
|
|||
{
|
||||
eSmsLocation = SMS_SIM_INIT_QICSGP1;
|
||||
sprintf((char *)gsmPara, "AT+QPRTPARA=3\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
else
|
||||
|
@ -663,7 +663,7 @@ SINT32 sf_module_init(VOID)
|
|||
else
|
||||
{
|
||||
strcpy((char *)gsmPara, "AT\r");
|
||||
ttyRet = sf_4g_send_data(gsmPara, strlen((const char *)gsmPara));
|
||||
ttyRet = sf_hal_ttyusb2_write(gsmPara, strlen((const char *)gsmPara));
|
||||
SF_CHECK_RETURN(ttyRet, SF_GPRS_MODULE_ERROR_WRITE);
|
||||
}
|
||||
|
||||
|
|
BIN
code/lib/source/sifar/code/source/module/sf_tcp.o
Normal file
BIN
code/lib/source/sifar/code/source/module/sf_tcp.o
Normal file
Binary file not shown.
BIN
configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S530/nvt-evb.dtb
Normal file
BIN
configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S530/nvt-evb.dtb
Normal file
Binary file not shown.
1181
configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S530/nvt-evb.tmp.dts
Normal file
1181
configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S530/nvt-evb.tmp.dts
Normal file
File diff suppressed because it is too large
Load Diff
BIN
loader/ARC/Lib/Release/Ctrl_Flow.a
Normal file
BIN
loader/ARC/Lib/Release/Ctrl_Flow.a
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user