diff --git a/BSP/u-boot/board/novatek/nvt-na51000-a64/na51000evb.c b/BSP/u-boot/board/novatek/nvt-na51000-a64/na51000evb.c index 6a31ac59b..18bc19f0e 100755 --- a/BSP/u-boot/board/novatek/nvt-na51000-a64/na51000evb.c +++ b/BSP/u-boot/board/novatek/nvt-na51000-a64/na51000evb.c @@ -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 diff --git a/BSP/u-boot/board/novatek/nvt-na51000/na51000evb.c b/BSP/u-boot/board/novatek/nvt-na51000/na51000evb.c index 70ac91d79..da4467f99 100755 --- a/BSP/u-boot/board/novatek/nvt-na51000/na51000evb.c +++ b/BSP/u-boot/board/novatek/nvt-na51000/na51000evb.c @@ -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 diff --git a/BSP/u-boot/board/novatek/nvt-na51055/na51055evb.c b/BSP/u-boot/board/novatek/nvt-na51055/na51055evb.c index 02af014a6..048a08b7c 100755 --- a/BSP/u-boot/board/novatek/nvt-na51055/na51055evb.c +++ b/BSP/u-boot/board/novatek/nvt-na51055/na51055evb.c @@ -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 diff --git a/BSP/u-boot/board/novatek/nvt-na51068/na51068evb.c b/BSP/u-boot/board/novatek/nvt-na51068/na51068evb.c index 65be4ec83..25fc84218 100755 --- a/BSP/u-boot/board/novatek/nvt-na51068/na51068evb.c +++ b/BSP/u-boot/board/novatek/nvt-na51068/na51068evb.c @@ -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 diff --git a/BSP/u-boot/board/novatek/nvt-na51089/na51089evb.c b/BSP/u-boot/board/novatek/nvt-na51089/na51089evb.c index 28fe94287..5f0b575b4 100755 --- a/BSP/u-boot/board/novatek/nvt-na51089/na51089evb.c +++ b/BSP/u-boot/board/novatek/nvt-na51089/na51089evb.c @@ -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; } diff --git a/BSP/u-boot/board/novatek/nvt-na51090-a64/na51090evb.c b/BSP/u-boot/board/novatek/nvt-na51090-a64/na51090evb.c index ec0a6f5f2..5e852dcdd 100755 --- a/BSP/u-boot/board/novatek/nvt-na51090-a64/na51090evb.c +++ b/BSP/u-boot/board/novatek/nvt-na51090-a64/na51090evb.c @@ -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 diff --git a/BSP/u-boot/board/novatek/nvt-na51090/na51090evb.c b/BSP/u-boot/board/novatek/nvt-na51090/na51090evb.c index d416caec0..6972122ab 100755 --- a/BSP/u-boot/board/novatek/nvt-na51090/na51090evb.c +++ b/BSP/u-boot/board/novatek/nvt-na51090/na51090evb.c @@ -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 diff --git a/BSP/u-boot/board/novatek/nvt-na51102-a64/na51102evb.c b/BSP/u-boot/board/novatek/nvt-na51102-a64/na51102evb.c index 8a3ae279a..deee7f1e1 100755 --- a/BSP/u-boot/board/novatek/nvt-na51102-a64/na51102evb.c +++ b/BSP/u-boot/board/novatek/nvt-na51102-a64/na51102evb.c @@ -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 diff --git a/BSP/u-boot/board/novatek/nvt-na51102/na51102evb.c b/BSP/u-boot/board/novatek/nvt-na51102/na51102evb.c index 10ffe0646..1e10c977f 100755 --- a/BSP/u-boot/board/novatek/nvt-na51102/na51102evb.c +++ b/BSP/u-boot/board/novatek/nvt-na51102/na51102evb.c @@ -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 diff --git a/BSP/u-boot/board/novatek/nvt-na51103-a64/na51103evb.c b/BSP/u-boot/board/novatek/nvt-na51103-a64/na51103evb.c index f56f961f5..e6b34e140 100755 --- a/BSP/u-boot/board/novatek/nvt-na51103-a64/na51103evb.c +++ b/BSP/u-boot/board/novatek/nvt-na51103-a64/na51103evb.c @@ -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 diff --git a/BSP/u-boot/board/novatek/nvt-na51103/na51103evb.c b/BSP/u-boot/board/novatek/nvt-na51103/na51103evb.c index affc73dbe..4afc076a8 100755 --- a/BSP/u-boot/board/novatek/nvt-na51103/na51103evb.c +++ b/BSP/u-boot/board/novatek/nvt-na51103/na51103evb.c @@ -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 diff --git a/BSP/u-boot/include/configs/nvt-na51089-evb.h b/BSP/u-boot/include/configs/nvt-na51089-evb.h index 5e064da43..8b7654332 100755 --- a/BSP/u-boot/include/configs/nvt-na51089-evb.h +++ b/BSP/u-boot/include/configs/nvt-na51089-evb.h @@ -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 diff --git a/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxInput_Key.c b/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxInput_Key.c old mode 100755 new mode 100644 index 617d09fea..cb328e16f --- a/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxInput_Key.c +++ b/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxInput_Key.c @@ -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; + //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 /* diff --git a/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/IOCfg.c b/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/IOCfg.c index 2648c0152..c345c91a7 100755 --- a/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/IOCfg.c +++ b/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/IOCfg.c @@ -319,44 +319,44 @@ 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); + //printf("[%s:%d]s onoff:%d\n",__FUNCTION__,__LINE__,onoff); DBG_IND(" s onoff:%d\n",onoff); if(ir_flag) { - gpio_setDir(GPIO_IRCUT_MEN1, GPIO_DIR_OUTPUT); - gpio_setDir(GPIO_IRCUT_MEN2, GPIO_DIR_OUTPUT); + gpio_setDir(GPIO_IRCUT_MEN1, GPIO_DIR_OUTPUT); + gpio_setDir(GPIO_IRCUT_MEN2, GPIO_DIR_OUTPUT); ir_flag = 0; } - + if(onoff ==1) - { - gpio_setPin(GPIO_IRCUT_MEN1); - gpio_clearPin(GPIO_IRCUT_MEN2); + { + gpio_setPin(GPIO_IRCUT_MEN1); + gpio_clearPin(GPIO_IRCUT_MEN2); sf_ir_cut_ctrl_PowerOff(); - } - else if(onoff == 0) - { - gpio_setPin(GPIO_IRCUT_MEN2); - gpio_clearPin(GPIO_IRCUT_MEN1); - sf_ir_cut_ctrl_PowerOff(); - } - else + } + else if(onoff == 0) { - gpio_clearPin(GPIO_IRCUT_MEN1); - gpio_clearPin(GPIO_IRCUT_MEN2); + gpio_setPin(GPIO_IRCUT_MEN2); + gpio_clearPin(GPIO_IRCUT_MEN1); + sf_ir_cut_ctrl_PowerOff(); + } + else + { + gpio_clearPin(GPIO_IRCUT_MEN1); + gpio_clearPin(GPIO_IRCUT_MEN2); } - //DBG_DUMP("\r\n DrvGPIO_SetIRCut value:%d \r\n",onoff); - //Delay_DelayMs(20); - //gpio_clearPin(GPIO_IRCUT_MEN1); - //gpio_clearPin(GPIO_IRCUT_MEN2); - //printf("[%s:%d]e\n",__FUNCTION__,__LINE__); + //DBG_DUMP("\r\n DrvGPIO_SetIRCut value:%d \r\n",onoff); + //Delay_DelayMs(20); + //gpio_clearPin(GPIO_IRCUT_MEN1); + //gpio_clearPin(GPIO_IRCUT_MEN2); + //printf("[%s:%d]e\n",__FUNCTION__,__LINE__); DBG_IND(" e\n"); -} + } void GPIO_IRLed_Turn_Onoff(BOOL onoff) diff --git a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h index a5604e53f..46133f4a6 100644 --- a/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h +++ b/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h @@ -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 diff --git a/code/application/source/cardv/SrcCode/System/SysInput_Exe.c b/code/application/source/cardv/SrcCode/System/SysInput_Exe.c index 59b1d7fe6..22b7a5f5b 100755 --- a/code/application/source/cardv/SrcCode/System/SysInput_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysInput_Exe.c @@ -136,7 +136,8 @@ 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_RELEASE, NVTEVT_KEY_SHUTTER2, NVTEVT_KEY_RELEASE, 0}, + {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}, {FLGKEY_RIGHT, KEY_RELEASE, NVTEVT_KEY_SELECT, NVTEVT_KEY_RELEASE, 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.�gu�DUSxJobaA�XE ---------> System Job + //4.�gu�DUSxTimeraA�XE ---------> Detect Job #if (POWERKEY_FUNCTION == ENABLE) SX_TIMER_DET_PWR_ID = SxTimer_AddItem(&Timer_Input_DetPKey); diff --git a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c index 217320011..d8add5a08 100755 --- a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c @@ -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(); diff --git a/code/application/source/cardv/SrcCode/System/main.c b/code/application/source/cardv/SrcCode/System/main.c index 69b091730..6adbe1fb9 100755 --- a/code/application/source/cardv/SrcCode/System/main.c +++ b/code/application/source/cardv/SrcCode/System/main.c @@ -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 diff --git a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c index b7a866723..48bbea5f8 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c +++ b/code/application/source/cardv/SrcCode/UIApp/Background/UIBackgroundObj.c @@ -849,7 +849,7 @@ UINT32 BackgroundFormatCard(void) ret = FileSys_FormatDisk(pStrgDXH, FALSE); DBG_FUNC("Call FileSys_FormatDisk() ret=%d\r\n", ret); - if (ret == FST_STA_OK) { + if (ret == FST_STA_OK) { #if HUNTING_CAMERA_MCU == ENABLE sf_set_card_statu(CMD_FORMAT_SD_OK); #endif @@ -867,19 +867,19 @@ UINT32 BackgroundFormatCard(void) UI_SetData(FL_IsDCIMReadOnly, FALSE); #endif #if (PLAY_MODE==ENABLE) - if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PLAYBACK) { - UIPlay_PlaySingle(PB_SINGLE_CURR); - } -#endif - //#NT#2016/05/30#Lincy Lin -begin - //#NT#Support logfile function -#if (LOGFILE_FUNC==ENABLE) - LogFile_ReOpen(); -#endif - //#NT#2016/05/30#Lincy Lin -end - vos_util_delay_ms(1000); + if (System_GetState(SYS_STATE_CURRMODE) == PRIMARY_MODE_PLAYBACK) { + UIPlay_PlaySingle(PB_SINGLE_CURR); + } + #endif + //#NT#2016/05/30#Lincy Lin -begin + //#NT#Support logfile function + #if (LOGFILE_FUNC==ENABLE) + LogFile_ReOpen(); + #endif + //#NT#2016/05/30#Lincy Lin -end + vos_util_delay_ms(1000); SysMain_system("sync"); - } + } else { #if HUNTING_CAMERA_MCU == ENABLE diff --git a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c index 9f74507cd..1b0f31b16 100644 --- a/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Movie/UIAppMovie_Exe.c @@ -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); diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto.h b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto.h index 28f9568bc..17ddf78e8 100755 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto.h +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto.h @@ -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); diff --git a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c index 258138a5a..ec3d70637 100644 --- a/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Photo/UIAppPhoto_Exe.c @@ -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,13 +2549,15 @@ 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(); PhotoExe_InitFileNaming(); diff --git a/code/application/source/cardv/SrcCode/UIApp/Transcode/UIAppTranscode.h b/code/application/source/cardv/SrcCode/UIApp/Transcode/UIAppTranscode.h index 39d2227a6..4bb9d280a 100644 --- a/code/application/source/cardv/SrcCode/UIApp/Transcode/UIAppTranscode.h +++ b/code/application/source/cardv/SrcCode/UIApp/Transcode/UIAppTranscode.h @@ -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 { diff --git a/code/application/source/cardv/SrcCode/UIApp/Transcode/UIAppTranscode_Exe.c b/code/application/source/cardv/SrcCode/UIApp/Transcode/UIAppTranscode_Exe.c index ee2e143cf..f3ff01a5e 100644 --- a/code/application/source/cardv/SrcCode/UIApp/Transcode/UIAppTranscode_Exe.c +++ b/code/application/source/cardv/SrcCode/UIApp/Transcode/UIAppTranscode_Exe.c @@ -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) diff --git a/code/application/source/cardv/SrcCode/UIApp/Transcode/UIAppTranscode_cmd.c b/code/application/source/cardv/SrcCode/UIApp/Transcode/UIAppTranscode_cmd.c index 918c9cf51..6584868b5 100644 --- a/code/application/source/cardv/SrcCode/UIApp/Transcode/UIAppTranscode_cmd.c +++ b/code/application/source/cardv/SrcCode/UIApp/Transcode/UIAppTranscode_cmd.c @@ -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) diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c index 6bcefed2c..5e85bf19e 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowMovie/UIFlowMovieEventCallback.c @@ -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(); } diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c index dc133903d..a4f984d7b 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowPhoto/UIFlowPhotoEventCallback.c @@ -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 diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowUSB/UIFlowUSBEventCallback.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowUSB/UIFlowUSBEventCallback.c index fd2aedb60..ed6b0aa65 100755 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowUSB/UIFlowUSBEventCallback.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIFlowLVGL/UIFlowUSB/UIFlowUSBEventCallback.c @@ -1,6 +1,8 @@ +#include "PrjInc.h" #include "UIFlowLVGL/UIFlowLVGL.h" #include "UIFlowWndUSBAPI.h" #include + 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!! * diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h index 4bf30cca5..8d555d1ee 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UICfgDefault.h @@ -63,7 +63,11 @@ #define DEFAULT_MOVIE_SIZE MOVIE_SIZE_DUAL_1920x1080P30_848x480P30//MOVIE_SIZE_FRONT_1920x1080P30 #else #if (MOVIE_AI_DEMO == DISABLE) - #define DEFAULT_MOVIE_SIZE MOVIE_SIZE_CLONE_1920x1080P30_1920x1080P25 + #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 diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c index 2568acedf..7e3ab7d96 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.c @@ -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; +} \ No newline at end of file diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h index 6859be94e..b15dd1068 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h @@ -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_ diff --git a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIPhotoMapping.c b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIPhotoMapping.c index a9ee5dadc..d4bd3636a 100644 --- a/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIPhotoMapping.c +++ b/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIPhotoMapping.c @@ -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) { - return g_ScreenNailSizeTable[sf_get_send_pic_sieze()].uiWidth; + 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) { - return g_ScreenNailSizeTable[sf_get_send_pic_sieze()].uiHeight; + 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) diff --git a/code/application/source/sf_app/Makefile b/code/application/source/sf_app/Makefile index f41efb567..20ed5377e 100644 --- a/code/application/source/sf_app/Makefile +++ b/code/application/source/sf_app/Makefile @@ -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 \ diff --git a/code/lib/source/sifar/code/include/sf_battery.h b/code/application/source/sf_app/code/include/sf_battery.h similarity index 84% rename from code/lib/source/sifar/code/include/sf_battery.h rename to code/application/source/sf_app/code/include/sf_battery.h index 6ae17aa64..0fc439b03 100644 --- a/code/lib/source/sifar/code/include/sf_battery.h +++ b/code/application/source/sf_app/code/include/sf_battery.h @@ -1,8 +1,8 @@ #ifndef _SF_BATTERY_H #define _SF_BATTERY_H -#include -//#include + +#include //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 diff --git a/code/application/source/sf_app/code/include/sf_commMng.h b/code/application/source/sf_app/code/include/sf_commMng.h index edcf4f611..2a3a9f0ce 100644 --- a/code/application/source/sf_app/code/include/sf_commMng.h +++ b/code/application/source/sf_app/code/include/sf_commMng.h @@ -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 diff --git a/code/application/source/sf_app/code/include/sf_common.h b/code/application/source/sf_app/code/include/sf_common.h index f8afb7548..dba807694 100644 --- a/code/application/source/sf_app/code/include/sf_common.h +++ b/code/application/source/sf_app/code/include/sf_common.h @@ -6,7 +6,7 @@ extern "C" { #endif #endif - +#include #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 } diff --git a/code/application/source/sf_app/code/include/sf_commu_mcu.h b/code/application/source/sf_app/code/include/sf_commu_mcu.h index 3b1467c75..a2e868de7 100644 --- a/code/application/source/sf_app/code/include/sf_commu_mcu.h +++ b/code/application/source/sf_app/code/include/sf_commu_mcu.h @@ -27,13 +27,27 @@ extern "C"{ #include #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 } diff --git a/code/application/source/sf_app/code/include/sf_commu_mcu_reg.h b/code/application/source/sf_app/code/include/sf_commu_mcu_reg.h index ead00c67f..816d06ccc 100644 --- a/code/application/source/sf_app/code/include/sf_commu_mcu_reg.h +++ b/code/application/source/sf_app/code/include/sf_commu_mcu_reg.h @@ -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); diff --git a/code/application/source/sf_app/code/include/sf_eg91_sim.h b/code/application/source/sf_app/code/include/sf_eg91_sim.h index b3f3a0f18..255ce8fb3 100644 --- a/code/application/source/sf_app/code/include/sf_eg91_sim.h +++ b/code/application/source/sf_app/code/include/sf_eg91_sim.h @@ -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 } diff --git a/code/application/source/sf_app/code/include/sf_file.h b/code/application/source/sf_app/code/include/sf_file.h index 8dc15dcad..2cef2ad25 100644 --- a/code/application/source/sf_app/code/include/sf_file.h +++ b/code/application/source/sf_app/code/include/sf_file.h @@ -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 } diff --git a/code/application/source/sf_app/code/include/sf_fileMng.h b/code/application/source/sf_app/code/include/sf_fileMng.h index e1964aa58..bef5db8ca 100644 --- a/code/application/source/sf_app/code/include/sf_fileMng.h +++ b/code/application/source/sf_app/code/include/sf_fileMng.h @@ -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 } diff --git a/code/application/source/sf_app/code/include/sf_ftp.h b/code/application/source/sf_app/code/include/sf_ftp.h index a046de45c..c656180ee 100644 --- a/code/application/source/sf_app/code/include/sf_ftp.h +++ b/code/application/source/sf_app/code/include/sf_ftp.h @@ -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_*/ diff --git a/code/lib/source/sifar/code/include/sf_gps.h b/code/application/source/sf_app/code/include/sf_gps.h similarity index 100% rename from code/lib/source/sifar/code/include/sf_gps.h rename to code/application/source/sf_app/code/include/sf_gps.h diff --git a/code/application/source/sf_app/code/include/sf_hal_gpio.h b/code/application/source/sf_app/code/include/sf_hal_gpio.h index a8d9f5d05..6e2c45585 100644 --- a/code/application/source/sf_app/code/include/sf_hal_gpio.h +++ b/code/application/source/sf_app/code/include/sf_hal_gpio.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 } diff --git a/code/lib/source/sifar/code/include/sf_http.h b/code/application/source/sf_app/code/include/sf_http.h similarity index 100% rename from code/lib/source/sifar/code/include/sf_http.h rename to code/application/source/sf_app/code/include/sf_http.h diff --git a/code/application/source/sf_app/code/include/sf_log.h b/code/application/source/sf_app/code/include/sf_log.h index 81b3e5892..2f0a21ac9 100644 --- a/code/application/source/sf_app/code/include/sf_log.h +++ b/code/application/source/sf_app/code/include/sf_log.h @@ -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 { diff --git a/code/application/source/sf_app/code/include/sf_module.h b/code/application/source/sf_app/code/include/sf_module.h index 558e51e18..b74de8b2f 100644 --- a/code/application/source/sf_app/code/include/sf_module.h +++ b/code/application/source/sf_app/code/include/sf_module.h @@ -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 diff --git a/code/application/source/sf_app/code/include/sf_opera_adapt.h b/code/application/source/sf_app/code/include/sf_opera_adapt.h index 393267306..ebe3797c8 100644 --- a/code/application/source/sf_app/code/include/sf_opera_adapt.h +++ b/code/application/source/sf_app/code/include/sf_opera_adapt.h @@ -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 } diff --git a/code/application/source/sf_app/code/include/sf_param_common.h b/code/application/source/sf_app/code/include/sf_param_common.h index db31da2ab..00ad6885c 100644 --- a/code/application/source/sf_app/code/include/sf_param_common.h +++ b/code/application/source/sf_app/code/include/sf_param_common.h @@ -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 } diff --git a/code/application/source/sf_app/code/include/sf_param_enum.h b/code/application/source/sf_app/code/include/sf_param_enum.h index 4bbc53452..3c67f7692 100644 --- a/code/application/source/sf_app/code/include/sf_param_enum.h +++ b/code/application/source/sf_app/code/include/sf_param_enum.h @@ -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; diff --git a/code/application/source/sf_app/code/include/sf_param_struct.h b/code/application/source/sf_app/code/include/sf_param_struct.h index ade933a9c..8f4b3c971 100644 --- a/code/application/source/sf_app/code/include/sf_param_struct.h +++ b/code/application/source/sf_app/code/include/sf_param_struct.h @@ -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]; diff --git a/code/lib/source/sifar/code/include/sf_pc_tool.h b/code/application/source/sf_app/code/include/sf_pc_tool.h similarity index 100% rename from code/lib/source/sifar/code/include/sf_pc_tool.h rename to code/application/source/sf_app/code/include/sf_pc_tool.h diff --git a/code/application/source/sf_app/code/include/sf_service.h b/code/application/source/sf_app/code/include/sf_service.h index 39f801b7a..174eb1838 100644 --- a/code/application/source/sf_app/code/include/sf_service.h +++ b/code/application/source/sf_app/code/include/sf_service.h @@ -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 } diff --git a/code/lib/source/sifar/code/include/sf_sim.h b/code/application/source/sf_app/code/include/sf_sim.h similarity index 99% rename from code/lib/source/sifar/code/include/sf_sim.h rename to code/application/source/sf_app/code/include/sf_sim.h index a3fc116e9..de6780de4 100644 --- a/code/lib/source/sifar/code/include/sf_sim.h +++ b/code/application/source/sf_app/code/include/sf_sim.h @@ -10,7 +10,7 @@ extern "C" { #if 0 #include -#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" diff --git a/code/application/source/sf_app/code/include/sf_sms.h b/code/application/source/sf_app/code/include/sf_sms.h index 171360d75..62ce721e1 100644 --- a/code/application/source/sf_app/code/include/sf_sms.h +++ b/code/application/source/sf_app/code/include/sf_sms.h @@ -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_*/ diff --git a/code/application/source/sf_app/code/include/sf_system.h b/code/application/source/sf_app/code/include/sf_system.h index 49b7d0a16..e2d8b0694 100644 --- a/code/application/source/sf_app/code/include/sf_system.h +++ b/code/application/source/sf_app/code/include/sf_system.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 } diff --git a/code/lib/source/sifar/code/include/sf_tcp.h b/code/application/source/sf_app/code/include/sf_tcp.h similarity index 100% rename from code/lib/source/sifar/code/include/sf_tcp.h rename to code/application/source/sf_app/code/include/sf_tcp.h diff --git a/code/application/source/sf_app/code/source/4gMng/sf_4G_auto_operation.c b/code/application/source/sf_app/code/source/4gMng/sf_4G_auto_operation.c index 4e8f0ec8c..21773354f 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_4G_auto_operation.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_4G_auto_operation.c @@ -21,1449 +21,1386 @@ #include #include -#include - +#include +#include "sf_common.h" #include "UIInfo/UIInfo.h" +#include "sf_type.h" UINT8 simAutoMatchFlag = SUCCESS; /*0:match success; 1:match fail;*/ UINT32 sf_auto_operation_adjust(void) { UINT32 result = SUCCESS; - UIMenuStoreInfo *puiPara = sf_ui_para_get(); + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); + + //sifarParameter_t* puiPara = appuiParaGet(); printf("Auto_Operation_Adjust NEW, Name:%s\n", puiPara->OperatorCode); - - //puiPara->SimAutoSwitch = MENU_ON; - if((strncmp((const char *)puiPara->OperatorCode, "46001", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "46010", 5) == 0)) //china union + //puiPara->SimAutoMatch = MENU_ON; + if(SF_STRNCMP(puiPara->OperatorCode, "46001", 5) == 0) //china union { //SMTP SET - strcpy((char *)puiPara->Sim4gApn, "3gnet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); + SF_STRCPY(puiPara->Sim4gApn, "3gnet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); //MMS SET - strcpy((char *)puiPara->MmsApn, "3gwap"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.myuni.com.cn"); - strcpy((char *)puiPara->MmsProxy, "10.0.0.172"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "46003", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "46005", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "46011", 5) == 0)) //China Telecom - { - strcpy((char *)puiPara->Sim4gApn, "CTNET"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "CTWAP"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.vnet.mobi"); - strcpy((char *)puiPara->MmsProxy, "10.0.0.200"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "21601", 5) == 0) //Hungary Pannon - { - strcpy((char *)puiPara->Sim4gApn, "net"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.pgsm.hu"); - strcpy((char *)puiPara->MmsProxy, "193.225.154.22"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "21630", 5) == 0) //Hungary T-Mobile - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "wap"); - strcpy((char *)puiPara->Sim4gPwd, "wap"); - - strcpy((char *)puiPara->MmsApn, "mms-westel"); - strcpy((char *)puiPara->MmsMmsc, "http://mms.westel900.net/servlets/mms"); - strcpy((char *)puiPara->MmsProxy, "212.51.126.10"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "mms"); - strcpy((char *)puiPara->MmsPwd, "mms"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "21670", 5) == 0) //Hungary Vodafone - { - strcpy((char *)puiPara->Sim4gApn, "net"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms.vodafone.net"); - strcpy((char *)puiPara->MmsMmsc, "http://mms.vodafone.hu/servlets/mms"); - strcpy((char *)puiPara->MmsProxy, "80.244.97.2"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "mms"); - strcpy((char *)puiPara->MmsPwd, "mms"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "31000", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31001", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31059", 5) == 0) - || (strncmp((const char *)puiPara->OperatorCode, "31089", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31091", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31111", 5) == 0) - || (strncmp((const char *)puiPara->OperatorCode, "31127", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31128", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31139", 5) == 0) - || (strncmp((const char *)puiPara->OperatorCode, "31148", 5) == 0)) //Vierzon - { - strcpy((char *)puiPara->Sim4gApn, "VZWINTERNET"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "\0"); - strcpy((char *)puiPara->MmsMmsc, "\0"); - strcpy((char *)puiPara->MmsProxy, "\0"); - strcpy((char *)puiPara->MmsPort, "\0"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "31158", 5) == 0) //US celluar - { - strcpy((char *)puiPara->Sim4gApn, "uscc00000.enterprise0.usc-cdp"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "\0"); - strcpy((char *)puiPara->MmsMmsc, "\0"); - strcpy((char *)puiPara->MmsProxy, "\0"); - strcpy((char *)puiPara->MmsPort, "\0"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "46000", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "46002", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "46007", 5) == 0))//china union - { - strcpy((char *)puiPara->Sim4gApn, "CMNET"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "CMWAP"); - strcpy((char *)puiPara->MmsMmsc, "mmsc.monternet.com"); - strcpy((char *)puiPara->MmsProxy, "10.0.0.172"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "50501", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "50511", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "50571", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "50572", 5) == 0))//australia telstra - { - strcpy((char *)puiPara->Sim4gApn, "telstra.internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "telstra.mms"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.telstra.com:8002"); - strcpy((char *)puiPara->MmsProxy, "10.1.1.180"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "21910", 5) == 0) //Croatia VIPnet - { - strcpy((char *)puiPara->Sim4gApn, "data.vip.hr"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms.vipnet.hr"); - strcpy((char *)puiPara->MmsMmsc, "http://mms.vipnet.hr/servlets/mms"); - strcpy((char *)puiPara->MmsProxy, "212.91.99.91"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "21901", 5) == 0) //Croatia T-Mobile - { - strcpy((char *)puiPara->Sim4gApn, "internet.ht.hr"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms.htgprs"); - strcpy((char *)puiPara->MmsMmsc, "http://mms.t-mobile.hr/servlets/mms"); - strcpy((char *)puiPara->MmsProxy, "10.12.0.4"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "21902", 5) == 0) // Croatia Tele2 - { - strcpy((char *)puiPara->Sim4gApn, "internet.tele2.hr"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "internet.tele2.hr"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.tele2.hr"); - strcpy((char *)puiPara->MmsProxy, "193.12.40.66"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "23820", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "23830", 5) == 0))//Danmark Telia - { - strcpy((char *)puiPara->Sim4gApn, "www.internet.mtelia.dk"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "www.mms.mtelia.dk"); - strcpy((char *)puiPara->MmsApn, "www.mms.mtelia.dk"); - strcpy((char *)puiPara->MmsProxy, "139.209.134.131"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "23801", 5) == 0) //TDC - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://192.168.241.114:8002"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "194.182.251.15"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "23802", 5) == 0) //Telenor - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.telenor.dk"); - strcpy((char *)puiPara->MmsApn, "internet"); - strcpy((char *)puiPara->MmsProxy, "212.88.64.8"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "23806", 5) == 0) //Oister - { - strcpy((char *)puiPara->Sim4gApn, "Data.dk"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.oister.dk"); - strcpy((char *)puiPara->MmsApn, "mmssp"); - strcpy((char *)puiPara->MmsProxy, "172.16.53.12"); - strcpy((char *)puiPara->MmsPort, "8799"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - - else if(strncmp((const char *)puiPara->OperatorCode, "24603", 5) == 0)//Lithuania Tele 2 - { - strcpy((char *)puiPara->Sim4gApn, "internet.tele2.lt"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms.tele2.lt"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.tele2.lt"); - strcpy((char *)puiPara->MmsProxy, "193.12.40.29"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24602", 5) == 0)//Lithuania BITE - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc/servlets/mms"); - strcpy((char *)puiPara->MmsProxy, "192.168.150.2"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "mms@mms"); - strcpy((char *)puiPara->MmsPwd, "mms"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24601", 5) == 0)//Lithuania Omnitel - { - strcpy((char *)puiPara->Sim4gApn, "omnitel"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "gprs.mms.lt"); - strcpy((char *)puiPara->MmsMmsc, "http://mms.omnitel.net:8002/"); - strcpy((char *)puiPara->MmsProxy, "194.176.32.149"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "mms"); - strcpy((char *)puiPara->MmsPwd, "mms"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "53001", 5) == 0)//New Zealand Vodafone - { - strcpy((char *)puiPara->Sim4gApn, "vodafone"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "live.vodafone.com"); - strcpy((char *)puiPara->MmsMmsc, "http://pxt.vodafone.net.nz/pxtsend"); - strcpy((char *)puiPara->MmsProxy, "172.30.38.3"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "53024", 5) == 0)//New Zealand Vodafone - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsMmsc, "http://mms.2degreesmobile.net.nz:48090"); - strcpy((char *)puiPara->MmsProxy, "118.148.1.118"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "22610", 5) == 0)// Romania Orange - { - strcpy((char *)puiPara->Sim4gApn, "net"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsMmsc, "http://wap.mms.orange.ro:8002"); - strcpy((char *)puiPara->MmsProxy, "62.217.247.252"); - strcpy((char *)puiPara->MmsPort, "8799"); - strcpy((char *)puiPara->MmsUsr, "mms"); - strcpy((char *)puiPara->MmsPwd, "mms"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "22601", 5) == 0)// Romania Vodafone - { - strcpy((char *)puiPara->Sim4gApn, "live.vodafone.com"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "\0"); - strcpy((char *)puiPara->MmsMmsc, "\0"); - strcpy((char *)puiPara->MmsProxy, "\0"); - strcpy((char *)puiPara->MmsPort, "\0"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "22603", 5) == 0)// Romania Romtelecom - { - strcpy((char *)puiPara->Sim4gApn, "broadband"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "\0"); - strcpy((char *)puiPara->MmsMmsc, "\0"); - strcpy((char *)puiPara->MmsProxy, "\0"); - strcpy((char *)puiPara->MmsPort, "\0"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "22605", 5) == 0)// Romania DIGI.mobil - { - strcpy((char *)puiPara->Sim4gApn, "prepaid"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "\0"); - strcpy((char *)puiPara->MmsMmsc, "\0"); - strcpy((char *)puiPara->MmsProxy, "\0"); - strcpy((char *)puiPara->MmsPort, "\0"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "25028", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "25099", 5) == 0))// Russian Federation Beeline - { - strcpy((char *)puiPara->Sim4gApn, "internet.beeline.ru"); - strcpy((char *)puiPara->Sim4gUsr, "beeline"); - strcpy((char *)puiPara->Sim4gPwd, "beeline"); - - strcpy((char *)puiPara->MmsApn, "mms.beeline.ru"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc/"); - strcpy((char *)puiPara->MmsProxy, "192.168.94.23"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "beeline"); - strcpy((char *)puiPara->MmsPwd, "beeline"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "25001", 5) == 0)// Russian Federation MTS - { - strcpy((char *)puiPara->Sim4gApn, "internet.mts.ru"); - strcpy((char *)puiPara->Sim4gUsr, "mts"); - strcpy((char *)puiPara->Sim4gPwd, "mts"); - - strcpy((char *)puiPara->MmsApn, "mms.mts.ru"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc"); - strcpy((char *)puiPara->MmsProxy, "192.168.192.192"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "mts"); - strcpy((char *)puiPara->MmsPwd, "mts"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "25002", 5) == 0)// Russian Federation MegaFon - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "gdata"); - strcpy((char *)puiPara->Sim4gPwd, "gdata"); - - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc:8002"); - strcpy((char *)puiPara->MmsProxy, "10.10.10.10"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "gdata"); - strcpy((char *)puiPara->MmsPwd, "gdata"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "25020", 5) == 0)// Russian Federation Tele2 - { - strcpy((char *)puiPara->Sim4gApn, "internet.tele2.ru"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms.tele2.ru"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.tele2.ru"); - strcpy((char *)puiPara->MmsProxy, "193.12.40.65"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "25011", 5) == 0)// Russian Federation Yota - { - strcpy((char *)puiPara->Sim4gApn, "internet.yota"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms.yota"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc:8002"); - strcpy((char *)puiPara->MmsProxy, "10.10.10.10"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "25035", 5) == 0)// Russian Federation Motiv - { - strcpy((char *)puiPara->Sim4gApn, "inet.ycc.ru"); - strcpy((char *)puiPara->Sim4gUsr, "motiv"); - strcpy((char *)puiPara->Sim4gPwd, "motiv"); - - strcpy((char *)puiPara->MmsApn, "mms.ycc.ru"); - strcpy((char *)puiPara->MmsMmsc, "http://mms.ycc.ru"); - strcpy((char *)puiPara->MmsProxy, "172.16.2.10"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "motiv"); - strcpy((char *)puiPara->MmsPwd, "motiv"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24007", 5) == 0)//Sweden Tele2 COMVIQ - { - strcpy((char *)puiPara->Sim4gApn, "4G.tele2.se"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.tele2.se"); - strcpy((char *)puiPara->MmsApn, "4G.tele2.se"); - strcpy((char *)puiPara->MmsProxy, "130.244.202.30"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24001", 5) == 0)//Sweden TeliaSonera Mobile - { - strcpy((char *)puiPara->Sim4gApn, "online.telia.se"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmss"); - strcpy((char *)puiPara->MmsApn, "mms.telia.se"); - strcpy((char *)puiPara->MmsProxy, "193.209.134.132"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "mms"); - strcpy((char *)puiPara->MmsPwd, "telia"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "24006", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "24008", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "24024", 5) == 0))//Sweden Telenor Mobile Sverige - { - strcpy((char *)puiPara->Sim4gApn, "services.telenor.se"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms"); - strcpy((char *)puiPara->MmsApn, "services.telenor.se"); - strcpy((char *)puiPara->MmsProxy, "172.30.253.241"); - strcpy((char *)puiPara->MmsPort, "8799"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "23433", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "23434", 5) == 0))// United Kingdom Orange - { - strcpy((char *)puiPara->Sim4gApn, "orangeinternet"); - strcpy((char *)puiPara->Sim4gUsr, "user"); - strcpy((char *)puiPara->Sim4gPwd, "pass"); - - strcpy((char *)puiPara->MmsApn, "orangemms"); - strcpy((char *)puiPara->MmsMmsc, "http://mms.orange.co.uk/"); - strcpy((char *)puiPara->MmsProxy, "192.168.224.10"); - strcpy((char *)puiPara->MmsPort, "9201"); - strcpy((char *)puiPara->MmsUsr, "Orange"); - strcpy((char *)puiPara->MmsPwd, "Multimedia"); - } - - else if((strncmp((const char *)puiPara->OperatorCode, "23402", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "23410", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "23411", 5) == 0))// United Kingdom O2 - { - strcpy((char *)puiPara->Sim4gApn, "mobile.o2.co.uk"); - strcpy((char *)puiPara->Sim4gUsr, "web"); - strcpy((char *)puiPara->Sim4gPwd, "password"); - - strcpy((char *)puiPara->MmsApn, "payandgo.o2.co.uk"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.mms.o2.co.uk:8002"); - strcpy((char *)puiPara->MmsProxy, "193.113.200.195"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "payandgo"); - strcpy((char *)puiPara->MmsPwd, "password"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "23415", 5) == 0)//United Kingdom Vodafone - { - strcpy((char *)puiPara->Sim4gApn, "pp.vodafone.co.uk"); - strcpy((char *)puiPara->Sim4gUsr, "web"); - strcpy((char *)puiPara->Sim4gPwd, "web"); - - strcpy((char *)puiPara->MmsApn, "wap.vodafone.co.uk"); - strcpy((char *)puiPara->MmsMmsc, "http://mms.vodafone.co.uk/servlets/mms/"); - strcpy((char *)puiPara->MmsProxy, "212.183.137.12"); - strcpy((char *)puiPara->MmsPort, "9201"); - strcpy((char *)puiPara->MmsUsr, "wap"); - strcpy((char *)puiPara->MmsPwd, "wap"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "23430", 5) == 0)//United Kingdom T-Mobile - { - strcpy((char *)puiPara->Sim4gApn, "general.t-mobile.uk"); - strcpy((char *)puiPara->Sim4gUsr, "user"); - strcpy((char *)puiPara->Sim4gPwd, "wap"); - - strcpy((char *)puiPara->MmsApn, "general.t-mobile.uk"); - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.t-mobile.co.uk:8002/"); - strcpy((char *)puiPara->MmsProxy, "149.254.211.10"); - strcpy((char *)puiPara->MmsPort, "9201"); - strcpy((char *)puiPara->MmsUsr, "user"); - strcpy((char *)puiPara->MmsPwd, "one2one"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "23420", 5) == 0)//United Kingdom 3 - { - strcpy((char *)puiPara->Sim4gApn, "three.co.uk"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms.three.co.uk"); - strcpy((char *)puiPara->MmsMmsc, "http://mms.um.three.co.uk:10021/mmsc"); - strcpy((char *)puiPara->MmsProxy, "217.171.129.2"); - strcpy((char *)puiPara->MmsPort, "8799"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "24403", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "24412", 5) == 0))// Finland DNA - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.dnafinland.fi"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "10.1.1.2"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24421", 5) == 0)// Finland Saunalahti - { - strcpy((char *)puiPara->Sim4gApn, "internet.saunalahti"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.saunalahti.fi:8002/"); - strcpy((char *)puiPara->MmsApn, "mms.saunalahti.fi"); - strcpy((char *)puiPara->MmsProxy, "62.142.4.197"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24405", 5) == 0)// Finland Elisa - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.elisa.fi"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "213.161.41.57"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24491", 5) == 0)// Finland Sonera - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.sonera.net:8002/"); - strcpy((char *)puiPara->MmsApn, "wap.sonera.net"); - strcpy((char *)puiPara->MmsProxy, "195.156.25.33"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24410", 5) == 0)// Finland TDC - { - strcpy((char *)puiPara->Sim4gApn, "inet.tdc.fi"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.tdc.fi"); - strcpy((char *)puiPara->MmsApn, "mms.tdc.fi"); - strcpy((char *)puiPara->MmsProxy, "10.1.12.2"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "65507", 5) == 0)// South Africa Cell C - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.cmobile.co.za/"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "196.31.116.250"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "65510", 5) == 0)// South Africa MTN - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "guest"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.mtn.co.za/mms/wapenc"); - strcpy((char *)puiPara->MmsApn, "mymtn"); - strcpy((char *)puiPara->MmsProxy, "196.11.240.241"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "65501", 5) == 0)// South Africa Vodacom - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "guest"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.vodacom4me.co.za/"); - strcpy((char *)puiPara->MmsApn, "mms.vodacom.net"); - strcpy((char *)puiPara->MmsProxy, "196.6.128.13"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "65502", 5) == 0)// South Africa 8ta - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "guest"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - strcpy((char *)puiPara->MmsMmsc, "http://mms.8ta.com:38090/was"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "41.151.254.162"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "guest"); - strcpy((char *)puiPara->MmsPwd, "guest"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "22201", 5) == 0)// Italy TIM - { - strcpy((char *)puiPara->Sim4gApn, "ibox.tim.it"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.tim.it/servlets/mms"); - strcpy((char *)puiPara->MmsApn, "mms.tim.it"); - strcpy((char *)puiPara->MmsProxy, "213.230.130.89"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "22210", 5) == 0)// Italy Vodafone - { - strcpy((char *)puiPara->Sim4gApn, "mobile.vodafone.it"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.vodafone.it/servlets/mms"); - strcpy((char *)puiPara->MmsApn, "mms.vodafone.it"); - strcpy((char *)puiPara->MmsProxy, "10.128.224.10"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "22288", 5) == 0)// Italy wind - { - strcpy((char *)puiPara->Sim4gApn, "internet.wind"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.wind.it"); - strcpy((char *)puiPara->MmsApn, "mms.wind"); - strcpy((char *)puiPara->MmsProxy, "212.245.244.11"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "22208", 5) == 0) //Italy Fastweb Mobile - { - strcpy((char *)puiPara->Sim4gApn, "apn.fastweb.it"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "\0"); - strcpy((char *)puiPara->MmsApn, "\0"); - strcpy((char *)puiPara->MmsProxy, "\0"); - strcpy((char *)puiPara->MmsPort, "\0"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "22207", 5) == 0) //Italy Kena Mobile - { - strcpy((char *)puiPara->Sim4gApn, "web.kenamobile.it"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "\0"); - strcpy((char *)puiPara->MmsApn, "\0"); - strcpy((char *)puiPara->MmsProxy, "\0"); - strcpy((char *)puiPara->MmsPort, "\0"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "22215", 5) == 0) //Italy Iliad - { - strcpy((char *)puiPara->Sim4gApn, "iliad"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "\0"); - strcpy((char *)puiPara->MmsApn, "\0"); - strcpy((char *)puiPara->MmsProxy, "\0"); - strcpy((char *)puiPara->MmsPort, "\0"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "22233", 5) == 0) //Italy PosteMobile - { - strcpy((char *)puiPara->Sim4gApn, "wap.postemobile.it"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "\0"); - strcpy((char *)puiPara->MmsApn, "\0"); - strcpy((char *)puiPara->MmsProxy, "\0"); - strcpy((char *)puiPara->MmsPort, "\0"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "20815", 5) == 0)// France Free Mobile - { - strcpy((char *)puiPara->Sim4gApn, "free"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.free.fr"); - strcpy((char *)puiPara->MmsApn, "mmsfree"); - strcpy((char *)puiPara->MmsProxy, "212.27.40.225"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "20801", 5) == 0) // France Orange - { - strcpy((char *)puiPara->Sim4gApn, "orange"); - strcpy((char *)puiPara->Sim4gUsr, "orange"); - strcpy((char *)puiPara->Sim4gPwd, "orange"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.orange.fr"); - strcpy((char *)puiPara->MmsApn, "orange.acte"); - strcpy((char *)puiPara->MmsProxy, "192.168.10.200"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "20820", 5) == 0)// France Bouygues Telecom - { - strcpy((char *)puiPara->Sim4gApn, "mmsbouygtel.com"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.bouyguestelecom.fr/mms/wap"); - strcpy((char *)puiPara->MmsApn, "mmsbouygtel.com"); - strcpy((char *)puiPara->MmsProxy, "62.201.137.17"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "20810", 5) == 0)// France SFR - { - strcpy((char *)puiPara->Sim4gApn, "sl2sfr"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms1"); - strcpy((char *)puiPara->MmsApn, "sl2sfr"); - strcpy((char *)puiPara->MmsProxy, "10.151.0.1"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "31028", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31003", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31009", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31015", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31017", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31041", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31056", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31068", 5) == 0))// United States AT&T - { - strcpy((char *)puiPara->Sim4gApn, "nxtgenphone"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.mobile.att.net"); - strcpy((char *)puiPara->MmsApn, "\0"); - strcpy((char *)puiPara->MmsProxy, "proxy.mobile.att.net"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "31002", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31016", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31020", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31021", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31022", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31023", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31024", 5) == 0) - - || (strncmp((const char *)puiPara->OperatorCode, "31025", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31026", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31027", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31029", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31031", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31033", 5) == 0) - || (strncmp((const char *)puiPara->OperatorCode, "31058", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31066", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "31080", 5) == 0))// United States AT&T - { - strcpy((char *)puiPara->Sim4gApn, "fast.t-mobile.com"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.msg.eng.t-mobile.com/mms/wapenc"); - strcpy((char *)puiPara->MmsApn, "wap.voicestream.com"); - strcpy((char *)puiPara->MmsProxy, "216.155.165.50"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "26206", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "26212", 5) == 0)) // Germany Telekom - { - strcpy((char *)puiPara->Sim4gApn, "internet.telekom"); - strcpy((char *)puiPara->Sim4gUsr, "t-mobile"); - strcpy((char *)puiPara->Sim4gPwd, "tm"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.t-mobile.de/servlets/mms"); - strcpy((char *)puiPara->MmsApn, "mms.t-d1.de"); - strcpy((char *)puiPara->MmsProxy, "172.28.23.131"); - strcpy((char *)puiPara->MmsPort, "8008"); - strcpy((char *)puiPara->MmsUsr, "t-mobile"); - strcpy((char *)puiPara->MmsPwd, "mms"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "26201", 5) == 0) // Germany T-Mobile - { - strcpy((char *)puiPara->Sim4gApn, "internet.t-mobile"); - strcpy((char *)puiPara->Sim4gUsr, "t-mobile"); - strcpy((char *)puiPara->Sim4gPwd, "tm"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.t-mobile.de/servlets/mms"); - strcpy((char *)puiPara->MmsApn, "internet.t-mobile"); - strcpy((char *)puiPara->MmsProxy, "172.28.23.131"); - strcpy((char *)puiPara->MmsPort, "8008"); - strcpy((char *)puiPara->MmsUsr, "t-mobile"); - strcpy((char *)puiPara->MmsPwd, "tm"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "26202", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "26204", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "26209", 5) == 0)) // Germany Vodafone - { - strcpy((char *)puiPara->Sim4gApn, "web.vodafone.de"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://139.7.24.1/servlets/mms"); - strcpy((char *)puiPara->MmsApn, "event.vodafone.de"); - strcpy((char *)puiPara->MmsProxy, "139.7.29.17"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "26203", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "26205", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "26277", 5) == 0)) // Germany E-Plus - { - strcpy((char *)puiPara->Sim4gApn, "internet.eplus.de"); - strcpy((char *)puiPara->Sim4gUsr, "eplus"); - strcpy((char *)puiPara->Sim4gPwd, "internet"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms/eplus"); - strcpy((char *)puiPara->MmsApn, "mms.eplus.de"); - strcpy((char *)puiPara->MmsProxy, "212.23.97.153"); - strcpy((char *)puiPara->MmsPort, "5080"); - strcpy((char *)puiPara->MmsUsr, "mms"); - strcpy((char *)puiPara->MmsPwd, "eplus"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "26207", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "26208", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "26211", 5) == 0)) // Germany O2 - { - strcpy((char *)puiPara->Sim4gApn, "pinternet.interkom.de"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://10.81.0.7:8002/"); - strcpy((char *)puiPara->MmsApn, "pinternet.interkom.de"); - strcpy((char *)puiPara->MmsProxy, "82.113.100.6"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "29331", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "29341", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "29351", 5) == 0)) // Slovenia Telekom - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "mobitel"); - strcpy((char *)puiPara->Sim4gPwd, "internet"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.telekom.si"); - strcpy((char *)puiPara->MmsApn, "internet"); - strcpy((char *)puiPara->MmsProxy, "213.229.249.40"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "mobitel"); - strcpy((char *)puiPara->MmsPwd, "internet"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "29340", 5) == 0) // Slovenia Simobil - { - strcpy((char *)puiPara->Sim4gApn, "internet.simobil.si"); - strcpy((char *)puiPara->Sim4gUsr, "simobil"); - strcpy((char *)puiPara->Sim4gPwd, "internet"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmc"); - strcpy((char *)puiPara->MmsApn, "mms.simobil.si"); - strcpy((char *)puiPara->MmsProxy, "80.95.224.46"); - strcpy((char *)puiPara->MmsPort, "9201"); - strcpy((char *)puiPara->MmsUsr, "simobil"); - strcpy((char *)puiPara->MmsPwd, "internet"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "29364", 5) == 0) // Slovenia T2 - { - strcpy((char *)puiPara->Sim4gApn, "mms.t-2.net"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://www.mms.t-2.net:8002"); - strcpy((char *)puiPara->MmsApn, "mms.t-2.net"); - strcpy((char *)puiPara->MmsProxy, "172.20.18.137"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "23106", 5) == 0) //Slovakia O2 - { - strcpy((char *)puiPara->Sim4gApn, "o2internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.o2world.sk:8002"); - strcpy((char *)puiPara->MmsApn, "o2mms"); - strcpy((char *)puiPara->MmsProxy, "10.97.1.11"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "23102", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "23104", 5) == 0)) //Slovakia T-Mobile - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "192.168.1.1"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "23101", 5) == 0) //Slovakia Orange - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://imms.orange.sk"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "213.151.208.145"); - strcpy((char *)puiPara->MmsPort, "8799"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "23103", 5) == 0) //Slovakia 4Ka - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "192.168.1.1"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "42501", 5) == 0) //Israel����ɫ�У�orange - { - strcpy((char *)puiPara->Sim4gApn, "uinternet"); - strcpy((char *)puiPara->Sim4gUsr, "orange"); - strcpy((char *)puiPara->Sim4gPwd, "orange"); - - strcpy((char *)puiPara->MmsMmsc, "http://192.168.220.15/servlets/mms"); - strcpy((char *)puiPara->MmsApn, "uwap.orange.co.il"); - strcpy((char *)puiPara->MmsProxy, "192.118.11.55"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24801", 5) == 0) //Estonia����ɳ���ǣ� (Telia) - { - strcpy((char *)puiPara->Sim4gApn, "internet.emt.ee"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms.emt.ee"); - strcpy((char *)puiPara->MmsMmsc, "mms.emt.ee/servlets/mms"); - strcpy((char *)puiPara->MmsProxy, "217.71.32.82"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24802", 5) == 0) //Estonia����ɳ���ǣ�(Elisa) - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsMmsc, "194.204.2.10"); - strcpy((char *)puiPara->MmsProxy, "194.204.2.6"); - strcpy((char *)puiPara->MmsPort, "8000"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24803", 5) == 0) //Estonia����ɳ���ǣ�(Tele2) - { - strcpy((char *)puiPara->Sim4gApn, "internet.tele2.ee"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsApn, "mms.tele2.ee"); - strcpy((char *)puiPara->MmsMmsc, "mmsc.tele2.ee"); - strcpy((char *)puiPara->MmsProxy, "193.12.40.6"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "20408", 5) == 0) //Freeway - { - strcpy((char *)puiPara->Sim4gApn, "freeeway"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "\0"); - strcpy((char *)puiPara->MmsApn, "\0"); - strcpy((char *)puiPara->MmsProxy, "\0"); - strcpy((char *)puiPara->MmsPort, "\0"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "20416", 5) == 0) //Netherlands T-Mobile - { - strcpy((char *)puiPara->Sim4gApn, "smartsites.t-mobile"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://t-mobilemms"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "10.10.10.11"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "tmobilemms"); - strcpy((char *)puiPara->MmsPwd, "tmobilemms"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24201", 5) == 0) //norway Telenor - { - strcpy((char *)puiPara->Sim4gApn, "telenor.smart"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmsc"); - strcpy((char *)puiPara->MmsApn, "telenor"); - strcpy((char *)puiPara->MmsProxy, "10.10.10.11"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24202", 5) == 0) //norway Telia/Chilli Mobil - { - strcpy((char *)puiPara->Sim4gApn, "telia"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mm"); - strcpy((char *)puiPara->MmsApn, "telia"); - strcpy((char *)puiPara->MmsProxy, "212.169.66.4"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24205", 5) == 0) //norway Ice Net - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.nwn.no"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "188.149.250.10"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "24206", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "24214", 5) == 0)) //norway ice net - { - strcpy((char *)puiPara->Sim4gApn, "ice.net"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms"); - strcpy((char *)puiPara->MmsApn, "mms.ice.net"); - strcpy((char *)puiPara->MmsProxy, "10.10.10.10"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "24208", 5) == 0) //norway Get - { - strcpy((char *)puiPara->Sim4gApn, "internet.no"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.tdc.dk:8002"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "inetproxy.tdc.dk"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "26801", 5) == 0) //Portugal vodafone - { - strcpy((char *)puiPara->Sim4gApn, "net2.vodafone.pt"); - strcpy((char *)puiPara->Sim4gUsr, "vodafone"); - strcpy((char *)puiPara->Sim4gPwd, "vodafone"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.vodafone.pt/servlets/mms"); - strcpy((char *)puiPara->MmsApn, "net2.vodafone.pt"); - strcpy((char *)puiPara->MmsProxy, "Iproxy.vodafone.pt"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "vodafone"); - strcpy((char *)puiPara->MmsPwd, "vodafone"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "26002", 5) == 0) //Polish Tmobile - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "mms/servlets/mms"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "213.158.194.226"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "26003", 5) == 0) //Polish Orange - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "internet"); - strcpy((char *)puiPara->Sim4gPwd, "internet"); - - strcpy((char *)puiPara->MmsMmsc, "mms.orange.pl"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "192.168.6.104"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "mms"); - strcpy((char *)puiPara->MmsPwd, "mms"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "26001", 5) == 0) //Polish Plus - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "mms.plusgsm.pl:8002"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "212.2.96.16"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "26006", 5) == 0) //Polish Play - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "mmsc.play.pl/mms/wapenc"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "10.10.25.5"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "30261", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "30269", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "30263", 5) == 0)) //Canada Bell - { - strcpy((char *)puiPara->Sim4gApn, "pda.bell.ca"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.bell.ca/mms/wapenc"); - strcpy((char *)puiPara->MmsApn, "pda.bell.ca"); - strcpy((char *)puiPara->MmsProxy, "web.wireless.bell.ca"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "30232", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "30272", 5) == 0))//Canada Rogers - { - strcpy((char *)puiPara->Sim4gApn, "rogers-core-appl1.apn"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.gprs.rogers.com"); - strcpy((char *)puiPara->MmsApn, "rogers-core-appl1.apn"); - strcpy((char *)puiPara->MmsProxy, "10.128.1.69"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "wap@wap"); - strcpy((char *)puiPara->MmsPwd, "wap125"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "30222", 5) == 0) //Canada Telus - { - strcpy((char *)puiPara->Sim4gApn, "sp.telus.com"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://aliasredirect.net/proxy/mmsc"); - strcpy((char *)puiPara->MmsApn, "sp.telus.com"); - strcpy((char *)puiPara->MmsProxy, "74.49.0.18"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "30268", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "30278", 5) == 0)) //Canada SaskTel - { - strcpy((char *)puiPara->Sim4gApn, "pda.stm.sk.ca"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.sasktel.com"); - strcpy((char *)puiPara->MmsApn, "pda.stm.sk.ca"); - strcpy((char *)puiPara->MmsProxy, "mig.sasktel.com"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - - else if(strncmp((const char *)puiPara->OperatorCode, "23002", 5) == 0) //Czech O2 - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.o2active.cz:8002"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "160.218.160.218"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "23003", 5) == 0) //Czech Vodafone - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms/"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "10.11.10.111"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "23001", 5) == 0) //Czech T-mobile - { - strcpy((char *)puiPara->Sim4gApn, "internet.t-mobile.cz"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms"); - strcpy((char *)puiPara->MmsApn, "mms.t-mobile.cz"); - strcpy((char *)puiPara->MmsProxy, "10.0.0.10"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "28601", 5) == 0) //Turkey Turkcell - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "mms.turkcell.com.tr/servlets/mms"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "212.252.169.217"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "28602", 5) == 0) //Turkey Vodafone - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "vodafone"); - strcpy((char *)puiPara->Sim4gPwd, "vodafone"); - - strcpy((char *)puiPara->MmsMmsc, "mms:6001/MM1Servlet"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "217.31.233.18"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "vodafone"); - strcpy((char *)puiPara->MmsPwd, "vodafone"); - } - else if((strncmp((const char *)puiPara->OperatorCode, "28603", 5) == 0) || (strncmp((const char *)puiPara->OperatorCode, "28604", 5) == 0))//Turkey Avea - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "mms.avea.com.tr/servlets/mms"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "213.161.151.201"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "28401", 5) == 0) //Bulgaria A1 - { - strcpy((char *)puiPara->Sim4gApn, "internet.a1.bg"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmsc/"); - strcpy((char *)puiPara->MmsApn, "mms.a1.bg"); - strcpy((char *)puiPara->MmsProxy, "10.150.0.33"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "28405", 5) == 0) //Bulgaria Telenor - { - strcpy((char *)puiPara->Sim4gApn, "telenorbg"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmsc/"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "192.168.87.11"); - strcpy((char *)puiPara->MmsPort, "8004"); - strcpy((char *)puiPara->MmsUsr, "mms"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "28403", 5) == 0) //Bulgaria VIVACOM - { - strcpy((char *)puiPara->Sim4gApn, "internet.vivacom.bg"); - strcpy((char *)puiPara->Sim4gUsr, "VIVACOM"); - strcpy((char *)puiPara->Sim4gPwd, "VIVACOM"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.vivacom.bg"); - strcpy((char *)puiPara->MmsApn, "mms.vivacom.bg"); - strcpy((char *)puiPara->MmsProxy, "192.168.123.123"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "mms"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "25503", 5) == 0) //Ukraine KYIVSTAR - { - strcpy((char *)puiPara->Sim4gApn, "www.kyivstar.net"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.kyivstar.net"); - strcpy((char *)puiPara->MmsApn, "mms.kyivstar.net"); - strcpy((char *)puiPara->MmsProxy, "10.10.10.10"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "25501", 5) == 0) //Ukraine Vodafone - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmsc:8002/"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "192.168.10.10"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "25506", 5) == 0) //Ukraine LifeCell - { - strcpy((char *)puiPara->Sim4gApn, "internet"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.life"); - strcpy((char *)puiPara->MmsApn, "mms"); - strcpy((char *)puiPara->MmsProxy, "10.10.10.10"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "21407", 5) == 0) //Spain Movistar - { - strcpy((char *)puiPara->Sim4gApn, "telefonica.es"); - strcpy((char *)puiPara->Sim4gUsr, "telefonica"); - strcpy((char *)puiPara->Sim4gPwd, "telefonica"); - - strcpy((char *)puiPara->MmsMmsc, "http://mms.movistar.es"); - strcpy((char *)puiPara->MmsApn, "telefonica.es"); - strcpy((char *)puiPara->MmsProxy, "10.138.255.5"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "21401", 5) == 0) //Spain Vodafone - { - strcpy((char *)puiPara->Sim4gApn, "airtelwap.es"); - strcpy((char *)puiPara->Sim4gUsr, "wap@wap"); - strcpy((char *)puiPara->Sim4gPwd, "wap125"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.vodafone.es/servlets/mms"); - strcpy((char *)puiPara->MmsApn, "mms.vodafone.net"); - strcpy((char *)puiPara->MmsProxy, "212.73.32.10"); - strcpy((char *)puiPara->MmsPort, "80"); - strcpy((char *)puiPara->MmsUsr, "wap@wap"); - strcpy((char *)puiPara->MmsPwd, "wap125"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "21403", 5) == 0) //Spain Simyo - { - strcpy((char *)puiPara->Sim4gApn, "orangeworld"); - strcpy((char *)puiPara->Sim4gUsr, "orange"); - strcpy((char *)puiPara->Sim4gPwd, "orange"); - - strcpy((char *)puiPara->MmsMmsc, "https://mms.orange.es"); - strcpy((char *)puiPara->MmsApn, "orangemms"); - strcpy((char *)puiPara->MmsProxy, "172.22.188.25"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "\0"); - strcpy((char *)puiPara->MmsPwd, "\0"); - } - else if(strncmp((const char *)puiPara->OperatorCode, "20601", 5) == 0) //Belgium Proximus - { - strcpy((char *)puiPara->Sim4gApn, "internet.proximus.be"); - strcpy((char *)puiPara->Sim4gUsr, "\0"); - strcpy((char *)puiPara->Sim4gPwd, "\0"); - - strcpy((char *)puiPara->MmsMmsc, "http://mmsc.proximus.be/mms"); - strcpy((char *)puiPara->MmsApn, "event.proximus.be"); - strcpy((char *)puiPara->MmsProxy, "10.55.14.75"); - strcpy((char *)puiPara->MmsPort, "8080"); - strcpy((char *)puiPara->MmsUsr, "mms"); - strcpy((char *)puiPara->MmsPwd, "mms"); + SF_STRCPY(puiPara->MmsApn, "3gwap"); + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.myuni.com.cn"); + SF_STRCPY(puiPara->MmsProxy, "10.0.0.172"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "46000", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "46002", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "46007", 5) == 0))//china union + { + SF_STRCPY(puiPara->Sim4gApn, "CMNET"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "CMWAP"); + SF_STRCPY(puiPara->MmsMmsc, "mmsc.monternet.com"); + SF_STRCPY(puiPara->MmsProxy, "10.0.0.172"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "46003", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "46005", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "46011", 5) == 0))//china Telecom + { + SF_STRCPY(puiPara->Sim4gApn, "CTNET"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "CTWAP"); + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.vnet.mobi"); + SF_STRCPY(puiPara->MmsProxy, "10.0.0.200"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "50501", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "50511", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "50571", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "50572", 5) == 0))//australia telstra + { + SF_STRCPY(puiPara->Sim4gApn, "telstra.internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "telstra.mms"); + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.telstra.com:8002"); + SF_STRCPY(puiPara->MmsProxy, "10.1.1.180"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "21910", 5) == 0) //Croatia VMmsProxynet + { + SF_STRCPY(puiPara->Sim4gApn, "data.vip.hr"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "mms.vipnet.hr"); + SF_STRCPY(puiPara->MmsMmsc, "http://mms.vipnet.hr/servlets/mms"); + SF_STRCPY(puiPara->MmsProxy, "212.91.99.91"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "21901", 5) == 0) //Croatia T-Mobile + { + SF_STRCPY(puiPara->Sim4gApn, "internet.ht.hr"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "mms.htgprs"); + SF_STRCPY(puiPara->MmsMmsc, "http://mms.t-mobile.hr/servlets/mms"); + SF_STRCPY(puiPara->MmsProxy, "10.12.0.4"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "21902", 5) == 0) // Croatia Tele2 + { + SF_STRCPY(puiPara->Sim4gApn, "internet.tele2.hr"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "internet.tele2.hr"); + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.tele2.hr"); + SF_STRCPY(puiPara->MmsProxy, "193.12.40.66"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "23820", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "23830", 5) == 0))//Danmark Telia + { + SF_STRCPY(puiPara->Sim4gApn, "www.internet.mtelia.dk"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "www.mms.mtelia.dk"); + SF_STRCPY(puiPara->MmsMmsc, "www.mms.mtelia.dk"); + SF_STRCPY(puiPara->MmsProxy, "139.209.134.131"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "24603", 5) == 0)//Lithuania Tele 2 + { + SF_STRCPY(puiPara->Sim4gApn, "internet.tele2.lt"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "mms.tele2.lt"); + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.tele2.lt"); + SF_STRCPY(puiPara->MmsProxy, "193.12.40.29"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "24602", 5) == 0)//Lithuania BITE + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc/servlets/mms"); + SF_STRCPY(puiPara->MmsProxy, "192.168.150.2"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "mms@mms"); + SF_STRCPY(puiPara->MmsPwd, "mms"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "24601", 5) == 0)//Lithuania Omnitel + { + SF_STRCPY(puiPara->Sim4gApn, "omnitel"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "gprs.mms.lt"); + SF_STRCPY(puiPara->MmsMmsc, "http://mms.omnitel.net:8002/"); + SF_STRCPY(puiPara->MmsProxy, "194.176.32.149"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "mms"); + SF_STRCPY(puiPara->MmsPwd, "mms"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "53001", 5) == 0)//New Zealand Vodafone + { + SF_STRCPY(puiPara->Sim4gApn, "vodafone"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "live.vodafone.com"); + SF_STRCPY(puiPara->MmsMmsc, "http://pxt.vodafone.net.nz/pxtsend"); + SF_STRCPY(puiPara->MmsProxy, "172.30.38.3"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "53024", 5) == 0)//New Zealand Vodafone + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsMmsc, "http://mms.2degreesmobile.net.nz:48090"); + SF_STRCPY(puiPara->MmsProxy, "118.148.1.118"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "22610", 5) == 0)// Romania Orange + { + SF_STRCPY(puiPara->Sim4gApn, "net"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsMmsc, "http://wap.mms.orange.ro:8002"); + SF_STRCPY(puiPara->MmsProxy, "62.217.247.252"); + SF_STRCPY(puiPara->MmsPort, "8799"); + SF_STRCPY(puiPara->MmsUsr, "mms"); + SF_STRCPY(puiPara->MmsPwd, "mms"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "22601", 5) == 0)// Romania Vodafone + { + SF_STRCPY(puiPara->Sim4gApn, "live.vodafone.com"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "\0"); + SF_STRCPY(puiPara->MmsMmsc, "\0"); + SF_STRCPY(puiPara->MmsProxy, "\0"); + SF_STRCPY(puiPara->MmsPort, "\0"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "22603", 5) == 0)// Romania Romtelecom + { + SF_STRCPY(puiPara->Sim4gApn, "broadband"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "\0"); + SF_STRCPY(puiPara->MmsMmsc, "\0"); + SF_STRCPY(puiPara->MmsProxy, "\0"); + SF_STRCPY(puiPara->MmsPort, "\0"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "22605", 5) == 0)// Romania DIGI.mobil + { + SF_STRCPY(puiPara->Sim4gApn, "prepaid"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "\0"); + SF_STRCPY(puiPara->MmsMmsc, "\0"); + SF_STRCPY(puiPara->MmsProxy, "\0"); + SF_STRCPY(puiPara->MmsPort, "\0"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "25028", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "25099", 5) == 0))// Russian Federation Beeline + { + SF_STRCPY(puiPara->Sim4gApn, "internet.beeline.ru"); + SF_STRCPY(puiPara->Sim4gUsr, "beeline"); + SF_STRCPY(puiPara->Sim4gPwd, "beeline"); + + SF_STRCPY(puiPara->MmsApn, "mms.beeline.ru"); + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc/"); + SF_STRCPY(puiPara->MmsProxy, "192.168.94.23"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "beeline"); + SF_STRCPY(puiPara->MmsPwd, "beeline"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "25001", 5) == 0)// Russian Federation MTS + { + SF_STRCPY(puiPara->Sim4gApn, "internet.mts.ru"); + SF_STRCPY(puiPara->Sim4gUsr, "mts"); + SF_STRCPY(puiPara->Sim4gPwd, "mts"); + + SF_STRCPY(puiPara->MmsApn, "mms.mts.ru"); + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc"); + SF_STRCPY(puiPara->MmsProxy, "192.168.192.192"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "mts"); + SF_STRCPY(puiPara->MmsPwd, "mts"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "25002", 5) == 0)// Russian Federation MegaFon + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "gdata"); + SF_STRCPY(puiPara->Sim4gPwd, "gdata"); + + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc:8002"); + SF_STRCPY(puiPara->MmsProxy, "10.10.10.10"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "gdata"); + SF_STRCPY(puiPara->MmsPwd, "gdata"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "25020", 5) == 0)// Russian Federation Tele2 + { + SF_STRCPY(puiPara->Sim4gApn, "internet.tele2.ru"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "mms.tele2.ru"); + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.tele2.ru"); + SF_STRCPY(puiPara->MmsProxy, "193.12.40.65"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "25011", 5) == 0)// Russian Federation Yota + { + SF_STRCPY(puiPara->Sim4gApn, "internet.yota"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "mms.yota"); + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc:8002"); + SF_STRCPY(puiPara->MmsProxy, "10.10.10.10"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "25035", 5) == 0)// Russian Federation Motiv + { + SF_STRCPY(puiPara->Sim4gApn, "inet.ycc.ru"); + SF_STRCPY(puiPara->Sim4gUsr, "motiv"); + SF_STRCPY(puiPara->Sim4gPwd, "motiv"); + + SF_STRCPY(puiPara->MmsApn, "mms.ycc.ru"); + SF_STRCPY(puiPara->MmsMmsc, "http://mms.ycc.ru"); + SF_STRCPY(puiPara->MmsProxy, "172.16.2.10"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "motiv"); + SF_STRCPY(puiPara->MmsPwd, "motiv"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "24007", 5) == 0)//Sweden Tele2 COMVIQ + { + SF_STRCPY(puiPara->Sim4gApn, "4G.tele2.se"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.tele2.se"); + SF_STRCPY(puiPara->MmsApn, "4G.tele2.se"); + SF_STRCPY(puiPara->MmsProxy, "130.244.202.30"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "24001", 5) == 0)//Sweden TeliaSonera Mobile + { + SF_STRCPY(puiPara->Sim4gApn, "online.telia.se"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mmss"); + SF_STRCPY(puiPara->MmsApn, "mms.telia.se"); + SF_STRCPY(puiPara->MmsProxy, "193.209.134.132"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "mms"); + SF_STRCPY(puiPara->MmsPwd, "telia"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "24006", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "24008", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "24024", 5) == 0))//Sweden Telenor Mobile Sverige + { + SF_STRCPY(puiPara->Sim4gApn, "services.telenor.se"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms"); + SF_STRCPY(puiPara->MmsApn, "services.telenor.se"); + SF_STRCPY(puiPara->MmsProxy, "172.30.253.241"); + SF_STRCPY(puiPara->MmsPort, "8799"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "23433", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "23434", 5) == 0))// United Kingdom Orange + { + SF_STRCPY(puiPara->Sim4gApn, "orangeinternet"); + SF_STRCPY(puiPara->Sim4gUsr, "user"); + SF_STRCPY(puiPara->Sim4gPwd, "pass"); + + SF_STRCPY(puiPara->MmsApn, "orangemms"); + SF_STRCPY(puiPara->MmsMmsc, "http://mms.orange.co.uk/"); + SF_STRCPY(puiPara->MmsProxy, "192.168.224.10"); + SF_STRCPY(puiPara->MmsPort, "9201"); + SF_STRCPY(puiPara->MmsUsr, "Orange"); + SF_STRCPY(puiPara->MmsPwd, "Multimedia"); + } + + else if((SF_STRNCMP(puiPara->OperatorCode, "23402", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "23410", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "23411", 5) == 0))// United Kingdom O2 + { + SF_STRCPY(puiPara->Sim4gApn, "mobile.o2.co.uk"); + SF_STRCPY(puiPara->Sim4gUsr, "web"); + SF_STRCPY(puiPara->Sim4gPwd, "password"); + + SF_STRCPY(puiPara->MmsApn, "payandgo.o2.co.uk"); + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.mms.o2.co.uk:8002"); + SF_STRCPY(puiPara->MmsProxy, "193.113.200.195"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "payandgo"); + SF_STRCPY(puiPara->MmsPwd, "password"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "23415", 5) == 0)//United Kingdom Vodafone + { + SF_STRCPY(puiPara->Sim4gApn, "pp.vodafone.co.uk"); + SF_STRCPY(puiPara->Sim4gUsr, "web"); + SF_STRCPY(puiPara->Sim4gPwd, "web"); + + SF_STRCPY(puiPara->MmsApn, "wap.vodafone.co.uk"); + SF_STRCPY(puiPara->MmsMmsc, "http://mms.vodafone.co.uk/servlets/mms/"); + SF_STRCPY(puiPara->MmsProxy, "212.183.137.12"); + SF_STRCPY(puiPara->MmsPort, "9201"); + SF_STRCPY(puiPara->MmsUsr, "wap"); + SF_STRCPY(puiPara->MmsPwd, "wap"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "23430", 5) == 0)//United Kingdom T-Mobile + { + SF_STRCPY(puiPara->Sim4gApn, "general.t-mobile.uk"); + SF_STRCPY(puiPara->Sim4gUsr, "user"); + SF_STRCPY(puiPara->Sim4gPwd, "wap"); + + SF_STRCPY(puiPara->MmsApn, "general.t-mobile.uk"); + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.t-mobile.co.uk:8002/"); + SF_STRCPY(puiPara->MmsProxy, "149.254.211.10"); + SF_STRCPY(puiPara->MmsPort, "9201"); + SF_STRCPY(puiPara->MmsUsr, "user"); + SF_STRCPY(puiPara->MmsPwd, "one2one"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "23420", 5) == 0)//United Kingdom 3 + { + SF_STRCPY(puiPara->Sim4gApn, "three.co.uk"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "mms.three.co.uk"); + SF_STRCPY(puiPara->MmsMmsc, "http://mms.um.three.co.uk:10021/mmsc"); + SF_STRCPY(puiPara->MmsProxy, "217.171.129.2"); + SF_STRCPY(puiPara->MmsPort, "8799"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "24403", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "24412", 5) == 0))// Finland DNA + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.dnafinland.fi"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "10.1.1.2"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "24421", 5) == 0)// Finland Saunalahti + { + SF_STRCPY(puiPara->Sim4gApn, "internet.saunalahti"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.saunalahti.fi:8002/"); + SF_STRCPY(puiPara->MmsApn, "mms.saunalahti.fi"); + SF_STRCPY(puiPara->MmsProxy, "62.142.4.197"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "24405", 5) == 0)// Finland Elisa + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.elisa.fi"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "213.161.41.57"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "24491", 5) == 0)// Finland Sonera + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.sonera.net:8002/"); + SF_STRCPY(puiPara->MmsApn, "wap.sonera.net"); + SF_STRCPY(puiPara->MmsProxy, "195.156.25.33"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "24410", 5) == 0)// Finland TDC + { + SF_STRCPY(puiPara->Sim4gApn, "inet.tdc.fi"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.tdc.fi"); + SF_STRCPY(puiPara->MmsApn, "mms.tdc.fi"); + SF_STRCPY(puiPara->MmsProxy, "10.1.12.2"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "65507", 5) == 0)// South Africa Cell C + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.cmobile.co.za/"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "196.31.116.250"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "65510", 5) == 0)// South Africa MTN + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "guest"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.mtn.co.za/mms/wapenc"); + SF_STRCPY(puiPara->MmsApn, "mymtn"); + SF_STRCPY(puiPara->MmsProxy, "196.11.240.241"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "65501", 5) == 0)// South Africa Vodacom + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "guest"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.vodacom4me.co.za/"); + SF_STRCPY(puiPara->MmsApn, "mms.vodacom.net"); + SF_STRCPY(puiPara->MmsProxy, "196.6.128.13"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "65502", 5) == 0)// South Africa 8ta + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "guest"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + SF_STRCPY(puiPara->MmsMmsc, "http://mms.8ta.com:38090/was"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "41.151.254.162"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "guest"); + SF_STRCPY(puiPara->MmsPwd, "guest"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "22201", 5) == 0)// Italy TIM + { + SF_STRCPY(puiPara->Sim4gApn, "ibox.tim.it"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.tim.it/servlets/mms"); + SF_STRCPY(puiPara->MmsApn, "mms.tim.it"); + SF_STRCPY(puiPara->MmsProxy, "213.230.130.89"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "22210", 5) == 0)// Italy Vodafone + { + SF_STRCPY(puiPara->Sim4gApn, "mobile.vodafone.it"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.vodafone.it/servlets/mms"); + SF_STRCPY(puiPara->MmsApn, "mms.vodafone.it"); + SF_STRCPY(puiPara->MmsProxy, "10.128.224.10"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "22288", 5) == 0)// Italy wind + { + SF_STRCPY(puiPara->Sim4gApn, "internet.wind"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.wind.it"); + SF_STRCPY(puiPara->MmsApn, "mms.wind"); + SF_STRCPY(puiPara->MmsProxy, "212.245.244.11"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "22208", 5) == 0) //Italy Fastweb Mobile + { + SF_STRCPY(puiPara->Sim4gApn, "apn.fastweb.it"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "\0"); + SF_STRCPY(puiPara->MmsApn, "\0"); + SF_STRCPY(puiPara->MmsProxy, "\0"); + SF_STRCPY(puiPara->MmsPort, "\0"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "22207", 5) == 0) //Italy Kena Mobile + { + SF_STRCPY(puiPara->Sim4gApn, "web.kenamobile.it"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "\0"); + SF_STRCPY(puiPara->MmsApn, "\0"); + SF_STRCPY(puiPara->MmsProxy, "\0"); + SF_STRCPY(puiPara->MmsPort, "\0"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "22215", 5) == 0) //Italy Iliad + { + SF_STRCPY(puiPara->Sim4gApn, "iliad"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "\0"); + SF_STRCPY(puiPara->MmsApn, "\0"); + SF_STRCPY(puiPara->MmsProxy, "\0"); + SF_STRCPY(puiPara->MmsPort, "\0"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "22233", 5) == 0) //Italy PosteMobile + { + SF_STRCPY(puiPara->Sim4gApn, "wap.postemobile.it"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "\0"); + SF_STRCPY(puiPara->MmsApn, "\0"); + SF_STRCPY(puiPara->MmsProxy, "\0"); + SF_STRCPY(puiPara->MmsPort, "\0"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } +// else if(SF_STRNCMP(puiPara->OperatorCode, "22210", 5) == 0) //Italy Ho Mobile +// { +// SF_STRCPY(puiPara->Sim4gApn, "internet.ho-mobile.it"); +// SF_STRCPY(puiPara->Sim4gUsr, "\0"); +// SF_STRCPY(puiPara->Sim4gPwd, "\0"); +// +// SF_STRCPY(puiPara->MmsMmsc, "\0"); +// SF_STRCPY(puiPara->MmsApn, "\0"); +// SF_STRCPY(puiPara->MmsProxy, "\0"); +// SF_STRCPY(puiPara->MmsPort, "\0"); +// SF_STRCPY(puiPara->MmsUsr, "\0"); +// SF_STRCPY(puiPara->MmsPwd, "\0"); +// } + else if(SF_STRNCMP(puiPara->OperatorCode, "20815", 5) == 0)// France Free Mobile + { + SF_STRCPY(puiPara->Sim4gApn, "free"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.free.fr"); + SF_STRCPY(puiPara->MmsApn, "mmsfree"); + SF_STRCPY(puiPara->MmsProxy, "212.27.40.225"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "20801", 5) == 0) // France Orange + { + SF_STRCPY(puiPara->Sim4gApn, "orange"); + SF_STRCPY(puiPara->Sim4gUsr, "orange"); + SF_STRCPY(puiPara->Sim4gPwd, "orange"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.orange.fr"); + SF_STRCPY(puiPara->MmsApn, "orange.acte"); + SF_STRCPY(puiPara->MmsProxy, "192.168.10.200"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "20820", 5) == 0)// France Bouygues Telecom + { + SF_STRCPY(puiPara->Sim4gApn, "mmsbouygtel.com"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.bouyguestelecom.fr/mms/wap"); + SF_STRCPY(puiPara->MmsApn, "mmsbouygtel.com"); + SF_STRCPY(puiPara->MmsProxy, "62.201.137.17"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "20810", 5) == 0)// France SFR + { + SF_STRCPY(puiPara->Sim4gApn, "sl2sfr"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms1"); + SF_STRCPY(puiPara->MmsApn, "sl2sfr"); + SF_STRCPY(puiPara->MmsProxy, "10.151.0.1"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "31000", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31001", 5) == 0)|| (SF_STRNCMP(puiPara->OperatorCode, "31059", 5) == 0)|| (SF_STRNCMP(puiPara->OperatorCode, "31089", 5) == 0)|| (SF_STRNCMP(puiPara->OperatorCode, "31091", 5) == 0)|| (SF_STRNCMP(puiPara->OperatorCode, "31111", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31127", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31128", 5) == 0)|| (SF_STRNCMP(puiPara->OperatorCode, "31139", 5) == 0) + || (SF_STRNCMP(puiPara->OperatorCode, "31148", 5) == 0))// us verizon + { + SF_STRCPY(puiPara->Sim4gApn, APN_4G_VERIZON); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "\0"); + SF_STRCPY(puiPara->MmsApn, "\0"); + SF_STRCPY(puiPara->MmsProxy, "\0"); + SF_STRCPY(puiPara->MmsPort, "\0"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "31017", 5) == 0)// United States AT&T + { + SF_STRCPY(puiPara->Sim4gApn, APN_4G_ATT); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "\0"); + SF_STRCPY(puiPara->MmsApn, "\0"); + SF_STRCPY(puiPara->MmsProxy, "\0"); + SF_STRCPY(puiPara->MmsPort, "\0"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "31158", 5) == 0)// United States cellular + { + SF_STRCPY(puiPara->Sim4gApn, "uscc00000.enterprise0.usc-cdp"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "\0"); + SF_STRCPY(puiPara->MmsApn, "\0"); + SF_STRCPY(puiPara->MmsProxy, "\0"); + SF_STRCPY(puiPara->MmsPort, "\0"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "20404", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "90128", 5) == 0))//Vodafone Global + { + SF_STRCPY(puiPara->Sim4gApn, "TACTACAM"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "\0"); + SF_STRCPY(puiPara->MmsApn, "\0"); + SF_STRCPY(puiPara->MmsProxy, "\0"); + SF_STRCPY(puiPara->MmsPort, "\0"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + + /*else if((SF_STRNCMP(puiPara->OperatorCode, "31003", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31009", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31015", 5) == 0)|| (SF_STRNCMP(puiPara->OperatorCode, "31017", 5) == 0)|| (SF_STRNCMP(puiPara->OperatorCode, "31041", 5) == 0)|| (SF_STRNCMP(puiPara->OperatorCode, "31056", 5) == 0)|| (SF_STRNCMP(puiPara->OperatorCode, "31068", 5) == 0))// United States AT&T + { + SF_STRCPY(puiPara->Sim4gApn, "nxtgenphone"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.mobile.att.net"); + SF_STRCPY(puiPara->MmsApn, "\0"); + SF_STRCPY(puiPara->MmsProxy, "proxy.mobile.att.net"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "31002", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31016", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31020", 5) == 0)|| (SF_STRNCMP(puiPara->OperatorCode, "31021", 5) == 0)|| (SF_STRNCMP(puiPara->OperatorCode, "31022", 5) == 0)|| (SF_STRNCMP(puiPara->OperatorCode, "31023", 5) == 0)|| (SF_STRNCMP(puiPara->OperatorCode, "31024", 5) == 0) + + || (SF_STRNCMP(puiPara->OperatorCode, "31025", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31026", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31027", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31028", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31029", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31031", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31033", 5) == 0) + || (SF_STRNCMP(puiPara->OperatorCode, "31058", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31066", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "31080", 5) == 0))// United States AT&T + { + SF_STRCPY(puiPara->Sim4gApn, "fast.t-mobile.com"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.msg.eng.t-mobile.com/mms/wapenc"); + SF_STRCPY(puiPara->MmsApn, "wap.voicestream.com"); + SF_STRCPY(puiPara->MmsProxy, "216.155.165.50"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + }*/ + else if ((SF_STRNCMP(puiPara->OperatorCode, "26206", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "26212", 5) == 0)) // Germany Telekom + { + SF_STRCPY(puiPara->Sim4gApn, "internet.telekom"); + SF_STRCPY(puiPara->Sim4gUsr, "t-mobile"); + SF_STRCPY(puiPara->Sim4gPwd, "tm"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.t-mobile.de/servlets/mms"); + SF_STRCPY(puiPara->MmsApn, "mms.t-d1.de"); + SF_STRCPY(puiPara->MmsProxy, "172.28.23.131"); + SF_STRCPY(puiPara->MmsPort, "8008"); + SF_STRCPY(puiPara->MmsUsr, "t-mobile"); + SF_STRCPY(puiPara->MmsPwd, "mms"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "26201", 5) == 0) // Germany T-Mobile + { + SF_STRCPY(puiPara->Sim4gApn, "internet.t-mobile"); + SF_STRCPY(puiPara->Sim4gUsr, "t-mobile"); + SF_STRCPY(puiPara->Sim4gPwd, "tm"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.t-mobile.de/servlets/mms"); + SF_STRCPY(puiPara->MmsApn, "internet.t-mobile"); + SF_STRCPY(puiPara->MmsProxy, "172.28.23.131"); + SF_STRCPY(puiPara->MmsPort, "8008"); + SF_STRCPY(puiPara->MmsUsr, "t-mobile"); + SF_STRCPY(puiPara->MmsPwd, "tm"); + } + else if ((SF_STRNCMP(puiPara->OperatorCode, "26202", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "26204", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "26209", 5) == 0)) // Germany Vodafone + { + SF_STRCPY(puiPara->Sim4gApn, "web.vodafone.de"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://139.7.24.1/servlets/mms"); + SF_STRCPY(puiPara->MmsApn, "event.vodafone.de"); + SF_STRCPY(puiPara->MmsProxy, "139.7.29.17"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "26203", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "26205", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "26277", 5) == 0)) // Germany E-Plus + { + SF_STRCPY(puiPara->Sim4gApn, "internet.eplus.de"); + SF_STRCPY(puiPara->Sim4gUsr, "eplus"); + SF_STRCPY(puiPara->Sim4gPwd, "internet"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms/eplus"); + SF_STRCPY(puiPara->MmsApn, "mms.eplus.de"); + SF_STRCPY(puiPara->MmsProxy, "212.23.97.153"); + SF_STRCPY(puiPara->MmsPort, "5080"); + SF_STRCPY(puiPara->MmsUsr, "mms"); + SF_STRCPY(puiPara->MmsPwd, "eplus"); + } + else if ((SF_STRNCMP(puiPara->OperatorCode, "26207", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "26208", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "26211", 5) == 0)) // Germany O2 + { + SF_STRCPY(puiPara->Sim4gApn, "pinternet.interkom.de"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://10.81.0.7:8002/"); + SF_STRCPY(puiPara->MmsApn, "pinternet.interkom.de"); + SF_STRCPY(puiPara->MmsProxy, "82.113.100.6"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "29331", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "29341", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "29351", 5) == 0)) // Slovenia Telekom + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "mobitel"); + SF_STRCPY(puiPara->Sim4gPwd, "internet"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.telekom.si"); + SF_STRCPY(puiPara->MmsApn, "internet"); + SF_STRCPY(puiPara->MmsProxy, "213.229.249.40"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "mobitel"); + SF_STRCPY(puiPara->MmsPwd, "internet"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "29340", 5) == 0) // Slovenia Simobil + { + SF_STRCPY(puiPara->Sim4gApn, "internet.simobil.si"); + SF_STRCPY(puiPara->Sim4gUsr, "simobil"); + SF_STRCPY(puiPara->Sim4gPwd, "internet"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mmc"); + SF_STRCPY(puiPara->MmsApn, "mms.simobil.si"); + SF_STRCPY(puiPara->MmsProxy, "80.95.224.46"); + SF_STRCPY(puiPara->MmsPort, "9201"); + SF_STRCPY(puiPara->MmsUsr, "simobil"); + SF_STRCPY(puiPara->MmsPwd, "internet"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "29364", 5) == 0) // Slovenia T2 + { + SF_STRCPY(puiPara->Sim4gApn, "mms.t-2.net"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://www.mms.t-2.net:8002"); + SF_STRCPY(puiPara->MmsApn, "mms.t-2.net"); + SF_STRCPY(puiPara->MmsProxy, "172.20.18.137"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + + } + else if (SF_STRNCMP(puiPara->OperatorCode, "23106", 5) == 0) //Slovakia O2 + { + SF_STRCPY(puiPara->Sim4gApn, "o2internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.o2world.sk:8002"); + SF_STRCPY(puiPara->MmsApn, "o2mms"); + SF_STRCPY(puiPara->MmsProxy, "10.97.1.11"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if ((SF_STRNCMP(puiPara->OperatorCode, "23102", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "23104", 5) == 0)) //Slovakia T-Mobile + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "192.168.1.1"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "23101", 5) == 0) //Slovakia Orange + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://imms.orange.sk"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "213.151.208.145"); + SF_STRCPY(puiPara->MmsPort, "8799"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "23103", 5) == 0) //Slovakia 4Ka + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "192.168.1.1"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "42501", 5) == 0) //Israel(以色列)orange + { + SF_STRCPY(puiPara->Sim4gApn, "uinternet"); + SF_STRCPY(puiPara->Sim4gUsr, "orange"); + SF_STRCPY(puiPara->Sim4gPwd, "orange"); + + SF_STRCPY(puiPara->MmsMmsc, "http://192.168.220.15/servlets/mms"); + SF_STRCPY(puiPara->MmsApn, "uwap.orange.co.il"); + SF_STRCPY(puiPara->MmsProxy, "192.118.11.55"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "24801", 5) == 0) //Estonia(爱沙尼亚) (Telia) + { + SF_STRCPY(puiPara->Sim4gApn, "internet.emt.ee"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "mms.emt.ee"); + SF_STRCPY(puiPara->MmsMmsc, "mms.emt.ee/servlets/mms"); + SF_STRCPY(puiPara->MmsProxy, "217.71.32.82"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "24802", 5) == 0) //Estonia(爱沙尼亚)(Elisa) + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsMmsc, "194.204.2.10"); + SF_STRCPY(puiPara->MmsProxy, "194.204.2.6"); + SF_STRCPY(puiPara->MmsPort, "8000"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "24803", 5) == 0) //Estonia(爱沙尼亚)(Tele2) + { + SF_STRCPY(puiPara->Sim4gApn, "internet.tele2.ee"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsApn, "mms.tele2.ee"); + SF_STRCPY(puiPara->MmsMmsc, "mmsc.tele2.ee"); + SF_STRCPY(puiPara->MmsProxy, "193.12.40.6"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "20408", 5) == 0) //Netherlands è·å…° KPN + { + SF_STRCPY(puiPara->Sim4gApn, "portalmmm.nl"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mp.mobiel.kpn/mmsc"); + SF_STRCPY(puiPara->MmsApn, "portalmmm.nl"); + SF_STRCPY(puiPara->MmsProxy, "10.10.100.20"); + SF_STRCPY(puiPara->MmsPort, "5080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "20416", 5) == 0) //Netherlands T-Mobile + { + SF_STRCPY(puiPara->Sim4gApn, "smartsites.t-mobile"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://t-mobilemms"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "10.10.10.11"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "tmobilemms"); + SF_STRCPY(puiPara->MmsPwd, "tmobilemms"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "24201", 5) == 0) //norway Telenor + { + SF_STRCPY(puiPara->Sim4gApn, "telenor.smart"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc"); + SF_STRCPY(puiPara->MmsApn, "telenor"); + SF_STRCPY(puiPara->MmsProxy, "10.10.10.11"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "24202", 5) == 0) //norway Telia/Chilli Mobil + { + SF_STRCPY(puiPara->Sim4gApn, "telia"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mm"); + SF_STRCPY(puiPara->MmsApn, "telia"); + SF_STRCPY(puiPara->MmsProxy, "212.169.66.4"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "24205", 5) == 0) //norway Ice Net + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.nwn.no"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "188.149.250.10"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if ((SF_STRNCMP(puiPara->OperatorCode, "24206", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "24214", 5) == 0)) //norway ice net + { + SF_STRCPY(puiPara->Sim4gApn, "ice.net"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms"); + SF_STRCPY(puiPara->MmsApn, "mms.ice.net"); + SF_STRCPY(puiPara->MmsProxy, "10.10.10.10"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "24208", 5) == 0) //norway Get + { + SF_STRCPY(puiPara->Sim4gApn, "internet.no"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.tdc.dk:8002"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "inetproxy.tdc.dk"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if (SF_STRNCMP(puiPara->OperatorCode, "26801", 5) == 0) //Portugal vodafone + { + SF_STRCPY(puiPara->Sim4gApn, "net2.vodafone.pt"); + SF_STRCPY(puiPara->Sim4gUsr, "vodafone"); + SF_STRCPY(puiPara->Sim4gPwd, "vodafone"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.vodafone.pt/servlets/mms"); + SF_STRCPY(puiPara->MmsApn, "net2.vodafone.pt"); + SF_STRCPY(puiPara->MmsProxy, "Iproxy.vodafone.pt"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "vodafone"); + SF_STRCPY(puiPara->MmsPwd, "vodafone"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "26002", 5) == 0) //Polish Tmobile + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "mms/servlets/mms"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "213.158.194.226"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "26003", 5) == 0) //Polish Orange + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "internet"); + SF_STRCPY(puiPara->Sim4gPwd, "internet"); + + SF_STRCPY(puiPara->MmsMmsc, "mms.orange.pl"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "192.168.6.104"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "mms"); + SF_STRCPY(puiPara->MmsPwd, "mms"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "26001", 5) == 0) //Polish Plus + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "mms.plusgsm.pl:8002"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "212.2.96.16"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "26006", 5) == 0) //Polish Play + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "mmsc.play.pl/mms/wapenc"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "10.10.25.5"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "30261", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "30269", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "30263", 5) == 0)) //Canada Bell + { + SF_STRCPY(puiPara->Sim4gApn, "pda.bell.ca"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.bell.ca/mms/wapenc"); + SF_STRCPY(puiPara->MmsApn, "pda.bell.ca"); + SF_STRCPY(puiPara->MmsProxy, "web.wireless.bell.ca"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "30232", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "30272", 5) == 0))//Canada Rogers + { + SF_STRCPY(puiPara->Sim4gApn, "rogers-core-appl1.apn"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.gprs.rogers.com"); + SF_STRCPY(puiPara->MmsApn, "rogers-core-appl1.apn"); + SF_STRCPY(puiPara->MmsProxy, "10.128.1.69"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "wap@wap"); + SF_STRCPY(puiPara->MmsPwd, "wap125"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "30222", 5) == 0) //Canada Telus + { + SF_STRCPY(puiPara->Sim4gApn, "sp.telus.com"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://aliasredirect.net/proxy/mmsc"); + SF_STRCPY(puiPara->MmsApn, "sp.telus.com"); + SF_STRCPY(puiPara->MmsProxy, "74.49.0.18"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "30268", 5) == 0) || (SF_STRNCMP(puiPara->OperatorCode, "30278", 5) == 0)) //Canada SaskTel + { + SF_STRCPY(puiPara->Sim4gApn, "pda.stm.sk.ca"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.sasktel.com"); + SF_STRCPY(puiPara->MmsApn, "pda.stm.sk.ca"); + SF_STRCPY(puiPara->MmsProxy, "mig.sasktel.com"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + + else if(SF_STRNCMP(puiPara->OperatorCode, "23002", 5) == 0) //Czech O2 + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.o2active.cz:8002"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "160.218.160.218"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "23003", 5) == 0) //Czech Vodafone + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms/"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "10.11.10.111"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "23001", 5) == 0) //Czech T-mobile + { + SF_STRCPY(puiPara->Sim4gApn, "internet.t-mobile.cz"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms"); + SF_STRCPY(puiPara->MmsApn, "mms.t-mobile.cz"); + SF_STRCPY(puiPara->MmsProxy, "10.0.0.10"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "28601", 5) == 0) //Turkey Turkcell + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "mms.turkcell.com.tr/servlets/mms"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "212.252.169.217"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "28602", 5) == 0) //Turkey Vodafone + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "vodafone"); + SF_STRCPY(puiPara->Sim4gPwd, "vodafone"); + + SF_STRCPY(puiPara->MmsMmsc, "mms:6001/MM1Servlet"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "217.31.233.18"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "vodafone"); + SF_STRCPY(puiPara->MmsPwd, "vodafone"); + } + else if((SF_STRNCMP(puiPara->OperatorCode, "28603", 5) == 0) ||(SF_STRNCMP(puiPara->OperatorCode, "28604", 5) == 0))//Turkey Avea + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "mms.avea.com.tr/servlets/mms"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "213.161.151.201"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "28401", 5) == 0) //Bulgaria A1 + { + SF_STRCPY(puiPara->Sim4gApn, "internet.a1.bg"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc/"); + SF_STRCPY(puiPara->MmsApn, "mms.a1.bg"); + SF_STRCPY(puiPara->MmsProxy, "10.150.0.33"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "25503", 5) == 0) //Ukraine KYIVSTAR + { + SF_STRCPY(puiPara->Sim4gApn, "www.kyivstar.net"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.kyivstar.net"); + SF_STRCPY(puiPara->MmsApn, "mms.kyivstar.net"); + SF_STRCPY(puiPara->MmsProxy, "10.10.10.10"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "25501", 5) == 0) //Ukraine Vodafone + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc:8002/"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "192.168.10.10"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "25506", 5) == 0) //Ukraine LifeCell + { + SF_STRCPY(puiPara->Sim4gApn, "internet"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.life"); + SF_STRCPY(puiPara->MmsApn, "mms"); + SF_STRCPY(puiPara->MmsProxy, "10.10.10.10"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "21407", 5) == 0) //Spain Movistar + { + SF_STRCPY(puiPara->Sim4gApn, "telefonica.es"); + SF_STRCPY(puiPara->Sim4gUsr, "telefonica"); + SF_STRCPY(puiPara->Sim4gPwd, "telefonica"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mms.movistar.es"); + SF_STRCPY(puiPara->MmsApn, "telefonica.es"); + SF_STRCPY(puiPara->MmsProxy, "10.138.255.5"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "21401", 5) == 0) //Spain Vodafone + { + SF_STRCPY(puiPara->Sim4gApn, "airtelwap.es"); + SF_STRCPY(puiPara->Sim4gUsr, "wap@wap"); + SF_STRCPY(puiPara->Sim4gPwd, "wap125"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.vodafone.es/servlets/mms"); + SF_STRCPY(puiPara->MmsApn, "mms.vodafone.net"); + SF_STRCPY(puiPara->MmsProxy, "212.73.32.10"); + SF_STRCPY(puiPara->MmsPort, "80"); + SF_STRCPY(puiPara->MmsUsr, "wap@wap"); + SF_STRCPY(puiPara->MmsPwd, "wap125"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "21403", 5) == 0) //Spain Simyo + { + SF_STRCPY(puiPara->Sim4gApn, "orangeworld"); + SF_STRCPY(puiPara->Sim4gUsr, "orange"); + SF_STRCPY(puiPara->Sim4gPwd, "orange"); + + SF_STRCPY(puiPara->MmsMmsc, "https://mms.orange.es"); + SF_STRCPY(puiPara->MmsApn, "orangemms"); + SF_STRCPY(puiPara->MmsProxy, "172.22.188.25"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "\0"); + SF_STRCPY(puiPara->MmsPwd, "\0"); + } + else if(SF_STRNCMP(puiPara->OperatorCode, "20601", 5) == 0) //Belgium Proximus + { + SF_STRCPY(puiPara->Sim4gApn, "internet.proximus.be"); + SF_STRCPY(puiPara->Sim4gUsr, "\0"); + SF_STRCPY(puiPara->Sim4gPwd, "\0"); + + SF_STRCPY(puiPara->MmsMmsc, "http://mmsc.proximus.be/mms"); + SF_STRCPY(puiPara->MmsApn, "event.proximus.be"); + SF_STRCPY(puiPara->MmsProxy, "10.55.14.75"); + SF_STRCPY(puiPara->MmsPort, "8080"); + SF_STRCPY(puiPara->MmsUsr, "mms"); + SF_STRCPY(puiPara->MmsPwd, "mms"); } else { - simAutoMatchFlag = FAIL; + //puiPara->autoOperatorFlag = 1; + //autoSimOperatorMatchFlag = 1; result = FAIL; } @@ -1471,3 +1408,4 @@ UINT32 sf_auto_operation_adjust(void) } + diff --git a/code/application/source/sf_app/code/source/4gMng/sf_eg91_gps.c b/code/application/source/sf_app/code/source/4gMng/sf_eg91_gps.c index bbd722384..37e46d85c 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_eg91_gps.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_eg91_gps.c @@ -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); } diff --git a/code/application/source/sf_app/code/source/4gMng/sf_eg91_server.c b/code/application/source/sf_app/code/source/4gMng/sf_eg91_server.c index afae2dce5..3b98d5156 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_eg91_server.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_eg91_server.c @@ -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; diff --git a/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c b/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c index 4d105a206..8c4f4b460 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_eg91_sim.c @@ -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,10 +3629,561 @@ SINT32 sf_quectel_net_regist(void) SF_NET_REG_END: printf("[%s:%d]ret:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret); -#endif + 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; +} + void sf_set_netsearch_step(UINT8 stepValue) { gprs_search_process = stepValue; @@ -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 diff --git a/code/application/source/sf_app/code/source/4gMng/sf_ftp.c b/code/application/source/sf_app/code/source/4gMng/sf_ftp.c index 9d00df41c..1db293b7b 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_ftp.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_ftp.c @@ -45,6 +45,8 @@ extern "C" { #include "sf_file.h" #include "sf_storeMng.h" #include "sf_service.h" +#include "sf_sms.h" +#include "sf_ledmng.h" /************************************************************************** * C O N S T A N T S * **************************************************************************/ @@ -98,6 +100,7 @@ UINT8 smtpUploadVideoFlag = 0; /*0:smtp upload video fail; 1:success.*/ UINT8 sendPicSuccessFlag = 0; UINT8 sendVideoSuccessFlag = 0; UINT8 DailyReportFtpSendSucess = 0; +SINT32 FtpOpenOk = FAIL; extern char logStr[128]; extern char gsmPara[GPRS_INFO_LINE_MAX]; @@ -156,7 +159,7 @@ SINT32 sf_check_max_num(void) if(ret != SF_SUCCESS) { sprintf((char *)errMsg, "[%s:%d]Reach Max Num/Day Limit,Error Code:0x%08x", __FUNCTION__, __LINE__, ret); - sf_error_log((SINT8 *)errMsg); + SLOGE((SINT8 *)errMsg); }*/ ret = SF_SUCCESS; @@ -174,7 +177,6 @@ SINT32 sf_check_max_num(void) *************************************************/ SINT32 sf_ftp_config(UINT8 ssl, UINT8 GprsMode, UINT8 timeout) { -#if 1 SINT32 ret = SF_SUCCESS; FTP_SIM_E eFtpLocation = FTP_SIM_CGDCONT; SINT32 ttyRet = 0; @@ -490,10 +492,12 @@ SINT32 sf_ftp_config(UINT8 ssl, UINT8 GprsMode, UINT8 timeout) SF_FTP_END_CONFIG: printf("[%s:%d]ret:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret); - return ret; + if(SF_SUCCESS != ret){ + sf_sys_status_led_set(SF_LED_SYS_STATE_SEND_FAIL); + } + FtpOpenOk = ret; -#endif - return 0; + return ret; } /************************************************* @@ -506,8 +510,6 @@ SINT32 sf_ftp_config(UINT8 ssl, UINT8 GprsMode, UINT8 timeout) *************************************************/ SINT32 sf_ftp_send(UINT8 *ftpFileName, UINT8 *filePath, UINT8 timeout) { -#if 1 - SINT32 ret = SF_SUCCESS; FTP_SIM_E eFtpLocation = FTP_SIM_CFTPSCFG; SINT32 ttyRet = 0; @@ -626,9 +628,6 @@ SINT32 sf_ftp_send(UINT8 *ftpFileName, UINT8 *filePath, UINT8 timeout) SF_FTP_SEND_END: printf("[%s:%d]ret:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret); return ret; - -#endif - return 0; } /************************************************* @@ -641,8 +640,6 @@ SINT32 sf_ftp_send(UINT8 *ftpFileName, UINT8 *filePath, UINT8 timeout) *************************************************/ SINT32 sf_ftp_stop(UINT8 ssl, UINT8 GprsMode) { -#if 1 - SINT32 ret = SF_SUCCESS; FTP_SIM_E eFtpLocation = FTP_SIM_CFTPSLOGOUT; SINT32 ttyRet = 0; @@ -802,9 +799,6 @@ SINT32 sf_ftp_stop(UINT8 ssl, UINT8 GprsMode) SF_FTP_STOP_END: printf("[%s:%d]ret:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret); return ret; - -#endif - return 0; } SINT32 sf_pic_send_ftp(void) @@ -1019,7 +1013,7 @@ SINT32 sf_video_send_ftp(void) return ret; } -SINT32 sf_simcom_ftp_dailyreport_send(void) +SINT32 sf_ftp_dailyreport_send(void) { SINT32 ret = SF_SUCCESS; //UINT8 CamNameStr[20] = { 0 }; @@ -1125,14 +1119,14 @@ SINT32 sf_check_ftp_send(UINT8 mode) } /************************************************* - Function: sf_simcom_ftp_send + Function: sf send file to ftp Description: ftp send. Input: 1:send pic/video. 2:send dr. Output: N/A Return: 0:success; else:fail; Others: N/A *************************************************/ -SINT32 sf_simcom_ftp_send(UINT8 mode) +SINT32 sf_send_file_to_ftp(UINT8 mode) { SINT32 ret1 = SF_SUCCESS; //0:success; else:fail; SINT32 ret2 = SF_SUCCESS; //0:success; else:fail; @@ -1217,7 +1211,7 @@ SINT32 sf_simcom_ftp_send(UINT8 mode) } else { - ret1 = sf_simcom_ftp_dailyreport_send(); + ret1 = sf_ftp_dailyreport_send(); } } @@ -1352,7 +1346,7 @@ SINT32 sf_4g_module_ota_ftp(void) time = 250; calltime = 0; SF_SPRINTF(gsmPara, "AT\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } else @@ -1371,7 +1365,7 @@ SINT32 sf_4g_module_ota_ftp(void) { case OTA_FTP_FRIST: SF_SPRINTF(gsmPara, "AT\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_CURVER; @@ -1381,14 +1375,14 @@ SINT32 sf_4g_module_ota_ftp(void) if(SF_STRSTR(gsmPara,"OK")) { SF_SPRINTF(gsmPara, "AT+QGMR\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_QICSGP; } else { SF_SPRINTF(gsmPara, "AT\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } @@ -1425,7 +1419,7 @@ SINT32 sf_4g_module_ota_ftp(void) location=OTA_FTP_QIACT; } - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } else @@ -1438,7 +1432,7 @@ SINT32 sf_4g_module_ota_ftp(void) else { SF_SPRINTF(gsmPara, "AT+QGMR\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } @@ -1456,7 +1450,7 @@ SINT32 sf_4g_module_ota_ftp(void) SF_SPRINTF(gsmPara, "AT\r"); } - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_QIACT; } @@ -1476,7 +1470,7 @@ SINT32 sf_4g_module_ota_ftp(void) location = OTA_FTP_QFTPCFG1; } - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); calltime=0; } @@ -1488,7 +1482,7 @@ SINT32 sf_4g_module_ota_ftp(void) { sf_pdp_flg_set(1); SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"contextid\",%d\r", pdpInedx); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_QFTPCFG2; calltime=0; @@ -1499,7 +1493,7 @@ SINT32 sf_4g_module_ota_ftp(void) if(calltime < 6) { SF_SPRINTF(gsmPara, "AT+QIACT=%d\r", pdpInedx); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); appTimeDelayMs(1800); } @@ -1508,9 +1502,9 @@ SINT32 sf_4g_module_ota_ftp(void) location = OTA_FTP_QIDEACT; calltime=0; errorCode = SF_OTA_ERROR_QIACT; - sf_error_log((SINT8 *)"[ERROR]OTA_FTP QIACT over try 6 times"); + SLOGE((SINT8 *)"[ERROR]OTA_FTP QIACT over try 6 times"); SF_STRCPY(gsmPara, "AT\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } } @@ -1521,7 +1515,7 @@ SINT32 sf_4g_module_ota_ftp(void) //if(SF_STRSTR(gsmPara, "OK")) { SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"account\",\"%s\",\"%s\"\r", ftpUsername, ftpPassword); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_QFTPCFG3; } @@ -1531,7 +1525,7 @@ SINT32 sf_4g_module_ota_ftp(void) //if(SF_STRSTR(gsmPara, "OK")) { SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"filetype\",1\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_QFTPCFG4; } @@ -1542,7 +1536,7 @@ SINT32 sf_4g_module_ota_ftp(void) //if(SF_STRSTR(gsmPara, "OK")) { SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"transmode\",1\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location=OTA_FTP_QFTPCFG5; } @@ -1553,7 +1547,7 @@ SINT32 sf_4g_module_ota_ftp(void) //if(SF_STRSTR(gsmPara, "OK")) { SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"restenable\",0\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location=OTA_FTP_QFTPOPEN; } @@ -1564,7 +1558,7 @@ SINT32 sf_4g_module_ota_ftp(void) if(SF_STRSTR(gsmPara, "OK")) { SF_SPRINTF(gsmPara, "AT+QFTPOPEN=\"%s\",%s\r", ftpIp, ftpPort); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_QFTPNLST; } @@ -1577,7 +1571,7 @@ SINT32 sf_4g_module_ota_ftp(void) if(SF_STRSTR(gsmPara, "+QFTPOPEN: 0")) { SF_SPRINTF(gsmPara, "AT+QFTPNLST=\"%s\",\"COM:\"\r", DFOTA_OTA_DIR); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_QFTPGETCFG; } @@ -1585,9 +1579,9 @@ SINT32 sf_4g_module_ota_ftp(void) { location = OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_OPEN; - sf_error_log((SINT8 *)"OTA_FTP Open Failed."); + SLOGE((SINT8 *)"OTA_FTP Open Failed."); SF_STRCPY(gsmPara, "AT\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } } @@ -1595,9 +1589,9 @@ SINT32 sf_4g_module_ota_ftp(void) { location = OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_OPEN; - sf_error_log((SINT8 *)"OTA_FTP QFTPOPEN CME ERROR."); + SLOGE((SINT8 *)"OTA_FTP QFTPOPEN CME ERROR."); SF_STRCPY(gsmPara, "AT\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } @@ -1609,7 +1603,7 @@ SINT32 sf_4g_module_ota_ftp(void) if((SF_STRSTR(gsmPara, cfgfilename)!= NULL) && (SF_STRSTR(gsmPara, updatafilename)!= NULL)) { SF_SPRINTF(gsmPara, "AT+QFTPGET=\"%s/%s\",\"RAM:%s\"\r", DFOTA_OTA_DIR, cfgfilename, cfgfilename); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_QFTPCLOSE; } @@ -1617,9 +1611,9 @@ SINT32 sf_4g_module_ota_ftp(void) { location = OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_NLST; - sf_error_log((SINT8 *)"OTA_FTP NO NEED UPDATA FILE."); + SLOGE((SINT8 *)"OTA_FTP NO NEED UPDATA FILE."); SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } } @@ -1627,9 +1621,9 @@ SINT32 sf_4g_module_ota_ftp(void) { location = OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_NLST; - sf_error_log((SINT8 *)"OTA_FTP QFTPNLST CME ERROR."); + SLOGE((SINT8 *)"OTA_FTP QFTPNLST CME ERROR."); SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } @@ -1641,7 +1635,7 @@ SINT32 sf_4g_module_ota_ftp(void) if(SF_STRSTR(gsmPara, "+QFTPGET: 0")) { SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_QIDEACT; } @@ -1649,9 +1643,9 @@ SINT32 sf_4g_module_ota_ftp(void) { location = OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_GET; - sf_error_log((SINT8 *)"OTA_FTP GET CFG FILE FAIL."); + SLOGE((SINT8 *)"OTA_FTP GET CFG FILE FAIL."); SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } } @@ -1659,9 +1653,9 @@ SINT32 sf_4g_module_ota_ftp(void) { location= OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_GET; - sf_error_log((SINT8 *)"OTA_FTP QFTPGET CME ERROR."); + SLOGE((SINT8 *)"OTA_FTP QFTPGET CME ERROR."); SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } @@ -1673,7 +1667,7 @@ SINT32 sf_4g_module_ota_ftp(void) calltime = 0; SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpInedx); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); sf_pdp_flg_set(0); @@ -1689,7 +1683,7 @@ SINT32 sf_4g_module_ota_ftp(void) if(SF_STRSTR(gsmPara, "OK")) { SF_SPRINTF(gsmPara, "AT+QFOPEN=\"RAM:%s\",2\r", cfgfilename); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_SEEKCFG; } @@ -1699,7 +1693,7 @@ SINT32 sf_4g_module_ota_ftp(void) if(calltime < 6) { SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpInedx); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); appTimeDelayMs(1800); sf_pdp_flg_set(0); @@ -1709,9 +1703,9 @@ SINT32 sf_4g_module_ota_ftp(void) location = OTA_FTP_END; calltime=0; errorCode = SF_OTA_ERROR_FTP_QIDEACT; - sf_error_log((SINT8 *)"[ERROR]OTA_FTP QIDEACT over try 6 times"); + SLOGE((SINT8 *)"[ERROR]OTA_FTP QIDEACT over try 6 times"); SF_STRCPY(gsmPara, "AT\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } } @@ -1726,13 +1720,13 @@ SINT32 sf_4g_module_ota_ftp(void) printf("cfgfilehandle=%s\n",cfgfilehandle); SF_SPRINTF(gsmPara, "AT+QFSEEK=%s,10,0\r", cfgfilehandle); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_READCFG; } else if(SF_STRSTR(gsmPara, "+CME ERROR")) { - sf_error_log((SINT8 *)"OTA_FTP QFOPEN CME ERROR."); + SLOGE((SINT8 *)"OTA_FTP QFOPEN CME ERROR."); location= OTA_FTP_END; errorCode = SF_OTA_ERROR_FTP_OPEN; } @@ -1743,7 +1737,7 @@ SINT32 sf_4g_module_ota_ftp(void) if(SF_STRSTR(gsmPara, "OK")) { SF_SPRINTF(gsmPara, "AT+QFREAD=%s,117\r", cfgfilehandle); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); appTimeDelayMs(500); location = OTA_FTP_CLOSECFG; @@ -1752,9 +1746,9 @@ SINT32 sf_4g_module_ota_ftp(void) { location= OTA_FTP_END; errorCode = SF_OTA_ERROR_FTP_QFSEEK; - sf_error_log((SINT8 *)"OTA_FTP QFSEEK CME ERROR."); + SLOGE((SINT8 *)"OTA_FTP QFSEEK CME ERROR."); SF_SPRINTF(gsmPara, "AT+QFCLOSE=%s\r", cfgfilehandle); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } @@ -1776,7 +1770,7 @@ SINT32 sf_4g_module_ota_ftp(void) printf("dstVersion=%s\n",desVersion); SF_SPRINTF(gsmPara, "AT+QFCLOSE=%s\r", cfgfilehandle); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_QFOTADL; } @@ -1784,20 +1778,20 @@ SINT32 sf_4g_module_ota_ftp(void) { printf("DFOTA.CFG READ error\n"); printf("gsmPara=%s\n",gsmPara); - sf_error_log((SINT8 *)"OTA_FTP CFG FILE FORMAT ERROR."); + SLOGE((SINT8 *)"OTA_FTP CFG FILE FORMAT ERROR."); SF_SPRINTF(gsmPara, "AT+QFCLOSE=%s\r", cfgfilehandle); location= OTA_FTP_END; errorCode = SF_OTA_ERROR_FTP_CFGFORMAT; - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } else if(SF_STRSTR(gsmPara, "+CME ERROR")) { - sf_error_log((SINT8 *)"OTA_FTP QFREAD CME ERROR."); + SLOGE((SINT8 *)"OTA_FTP QFREAD CME ERROR."); SF_SPRINTF(gsmPara, "AT+QFCLOSE=%s\r", cfgfilehandle); location= OTA_FTP_END; errorCode = SF_OTA_ERROR_FTP_QFREAD; - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } @@ -1818,7 +1812,7 @@ SINT32 sf_4g_module_ota_ftp(void) //SF_SPRINTF(gsmPara, "AT+QFOTADL=\"FTP://%s:%s@%s:%s/DFOTA/%s\"\r", convertUsername, convertPassword, ftpIp, ftpPort,updatafilename); SF_SPRINTF(gsmPara, "AT+QFOTADL=\"FTP://%s:%s@%s:%s/%s/%s\"\r", ftpUsername, ftpPassword, ftpIp, ftpPort, DFOTA_OTA_DIR, updatafilename); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_DOWNLOAD; } @@ -1867,8 +1861,8 @@ SINT32 sf_4g_module_ota_ftp(void) printf("gsmPara:%s\n", gsmPara); time = 0; printf("DOWMLOAD ERROR\n"); - sf_error_log((SINT8 *)"OTA Download error"); - sf_error_log((SINT8 *)gsmPara); + SLOGE((SINT8 *)"OTA Download error"); + SLOGE((SINT8 *)gsmPara); errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; sts = OTA_DOWNLOAD_ERROR; } @@ -1880,7 +1874,7 @@ SINT32 sf_4g_module_ota_ftp(void) if(calltime >= 600) { - sf_error_log((SINT8 *)"OTA Download timeout"); + SLOGE((SINT8 *)"OTA Download timeout"); errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; sts = OTA_TIME_OUT; } @@ -1949,8 +1943,8 @@ SINT32 sf_4g_module_ota_ftp(void) printf("gsmPara:%s\n", gsmPara); time = 0; printf("UPDATED ERROR\n"); - sf_error_log((SINT8 *)"OTA update error"); - sf_error_log((SINT8 *)gsmPara); + SLOGE((SINT8 *)"OTA update error"); + SLOGE((SINT8 *)gsmPara); errorCode = SF_OTA_ERROR_FTP_UPDATE; sts = OTA_UPDATED_ERROR; @@ -1995,7 +1989,7 @@ SINT32 sf_4g_module_ota_ftp(void) if(calltime >= 200) { - sf_error_log((SINT8 *)"OTA update timeout"); + SLOGE((SINT8 *)"OTA update timeout"); errorCode = SF_OTA_ERROR_FTP_UPDATE; sts = OTA_UPDATED_ERROR; @@ -2023,7 +2017,7 @@ SINT32 sf_4g_module_ota_ftp(void) appTimeDelayMs(300); printf("UPDATE END\n"); SF_SPRINTF(gsmPara, "AT+QGMR\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_CHECK; } @@ -2064,14 +2058,14 @@ SINT32 sf_4g_module_ota_ftp(void) else { SF_SPRINTF(gsmPara, "AT+QGMR\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } break; case OTA_FTP_END: SF_STRCPY(gsmPara, "AT\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); sts = OTA_FAIL; break; @@ -2157,311 +2151,36 @@ SINT32 sf_4g_module_ota_ftp(void) Return: SUCCESS/FAIL Others: N/A *************************************************/ -UINT32 sf_connect_ftps_server(void) +SINT32 sf_connect_ftps_server(void) { - UINT32 ftpOpenOk = FAIL; - #if 0 - UINT32 location = FTP_ATQICSGP; - UINT32 sts = 0; - UINT16 time = 0; - UINT16 calltime=0; - UINT8 pdpIndex = 0; - SINT32 ttyRet = 0; + SINT32 ret = SF_SUCCESS;//0:success; else:fail; + UINT8 ssl = 0; + UINT8 gprsMode = 0; + UINT8 timeout = 30; + UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); - uiPara_t *pPara = appUiParaGet(); + printf("[%s:%d] s\n", __FUNCTION__, __LINE__); - printf("sf_Connect_ftps_server s\n"); + ssl = ((2 == puiPara->FtpSwitch) ? 1 : 0); + gprsMode = 0;//puiPara->GprsMode; + printf("[%s:%d] ssl:%d,GprsMode:%d\n", __FUNCTION__, __LINE__, ssl, gprsMode); - while((sts == 0) && (!IS_USB_IN) && (POWEROFF != 1) && (ModuleUpdating != 1) && (FwUpdate == 0)) + if(((puiPara->CamMode == SF_CAM_MODE_VIDEO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO)) && (puiPara->SendVideoSwitch == 1) && (puiPara->NetGeneration == 4)) //video { - if(!ConfigureModeFlag) - sf_mcu_dataready_get(); //Read MCU must be after reading uart data - - time++; - if(time >= 300) - { - printf("connect ftps timeout!\n"); - location = FTP_JPG0; - time = 250; - } - - sf_4g_get_data(gsmPara, 200, 1); - printf("time=%d mmc=%d\n", time, location); - sf_tty_data_printf(gsmPara); - - switch(location) - { - case FTP_ATQICSGP: - if(SF_STRSTR(pPara->Sim4gApn, APN_4G_VERIZON)) - { - pdpIndex = V_PDP_INDEX; - SF_SPRINTF(gsmPara,"AT+QICSGP=%d\r", V_PDP_INDEX); - location = FTP_ATQICSGP1; - } - else if(SF_STRSTR(pPara->Sim4gApn, APN_4G_ATT)) - { - pdpIndex = A_PDP_INDEX; - SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",A_PDP_INDEX, pPara->Sim4gApn,pPara->Sim4gUserName,pPara->Sim4gPassword); - location = FTP_ATQFTPCFG0; - } - else - { - pdpIndex = E_PDP_INDEX; - SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",E_PDP_INDEX, pPara->Sim4gApn,pPara->Sim4gUserName,pPara->Sim4gPassword); - location = FTP_ATQFTPCFG0; - } - - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - - break; - - case FTP_ATQICSGP1: - if(SF_STRSTR(gsmPara, "OK")) - { - if(SF_STRSTR(gsmPara, "+QICSGP: 0") || SF_STRSTR(gsmPara, "+QICSGP: 1,\"\"")) - { - SF_SPRINTF(gsmPara, "AT+QICSGP=%d,1,\"%s\",\"%s\",\"%s\",1\r",V_PDP_INDEX, pPara->Sim4gApn,pPara->Sim4gUserName,pPara->Sim4gPassword); - } - else - { - SF_SPRINTF(gsmPara, "AT\r"); - } - - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - location = FTP_ATQFTPCFG0; - } - break; - - case FTP_ATQFTPCFG0: - if(SF_STRSTR(gsmPara, "OK")) - { - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"contextid\",%d\r", pdpIndex); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - location++; - } - break; - - case FTP_ATQFTPCFG1: - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"account\",\"%s\",\"%s\"\r",pPara->FtpUserName,pPara->FtpPassWord); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - #if SF_NEW_AT_FLOW - location = FTP_QSSLCFG0; - #else - location = FTP_ATQFTPCFG2; - #endif - break; - - case FTP_ATQFTPCFG2: - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"filetype\",0\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - location++; - break; - - case FTP_ATQFTPCFG3: - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"transmode\",1\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - location=FTP_QSSLCFG0; - break; - - case FTP_QSSLCFG0: - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"restenable\",0\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - location++; - break; - - case FTP_QSSLCFG1: - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"ssltype\",2\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - location++; - break; - - case FTP_QSSLCFG2: - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"sslctxid\",1\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - #if SF_NEW_AT_FLOW - if(sf_pdp_flg_get()) - { - location = FTP_ATQFTPCFG5; - } - else - { - location = FTP_ATQQIACT; - } - #else - location = FTP_QSSLCFG3; - #endif - break; - - case FTP_QSSLCFG3: - SF_SPRINTF(gsmPara, "AT+QSSLCFG=\"ciphersuite\",1,0xffff\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - location++; - break; - - case FTP_QSSLCFG4: - SF_SPRINTF(gsmPara, "AT+QSSLCFG=\"seclevel\",1,0\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - location++; - break; - - case FTP_QSSLCFG5: - SF_SPRINTF(gsmPara, "AT+QSSLCFG=\"sslversion\",1,4\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - if(sf_pdp_flg_get()) - { - location = FTP_ATQFTPOPEN; - } - else - { - location = FTP_ATQQIACT; - } - break; - - case FTP_ATQQIACT: - if(SF_STRSTR(gsmPara, "OK")) - { - SF_SPRINTF(gsmPara, "AT+QIACT=%d\r", pdpIndex); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - location = FTP_ATQFTPCFG4; - calltime = 0; - printf("calltime=%d\n",calltime); - appTimeDelayMs(1000); - } - break; - - case FTP_ATQFTPCFG4: - if(SF_STRSTR(gsmPara, "OK")) - { - sf_pdp_flg_set(1); - calltime=0; - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"rsptimeout\",30\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - location=FTP_ATQFTPOPEN; - } - else if(SF_STRSTR(gsmPara,"ERROR")) - { - calltime++; - printf("calltime++=%d\n",calltime); - - if(calltime<6) - { - SF_SPRINTF(gsmPara, "AT+QIACT=%d\r", pdpIndex); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - appTimeDelayMs(1800); - } - else - { - sf_error_log((SINT8 *)"[ERROR]FTP AT+QIACT over try 6 times"); - location=FTP_JPG0; - calltime=0; - } - } - break; - - case FTP_ATQFTPCFG5: - SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"rsptimeout\",30\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - location=FTP_ATQFTPOPEN; - break; - - case FTP_ATQFTPOPEN: - if(SF_STRSTR(gsmPara, "OK")) - { - sf_pdp_flg_set(1); - location = FTP_ATQFTPCFG; - calltime=0; - SF_SPRINTF(gsmPara, "AT+QFTPOPEN=\"%s\",%s\r",pPara->FtpIp,pPara->FtpPort); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - } - - break; - - case FTP_ATQFTPCFG: - if(SF_STRSTR(gsmPara, "+QFTPOPEN:")) - { - if(SF_STRSTR(gsmPara, "+QFTPOPEN: 0")) - { - ftpOpenOk = SUCCESS; - location = FTP_CLOSE; - } - else - { - sf_error_log((SINT8 *)gsmPara); - sf_error_log((SINT8 *)"FTP Open Failed."); - location = FTP_JPG0; - } - } - else if(SF_STRSTR(gsmPara, "+CME ERROR")) - { - sf_error_log((SINT8 *)gsmPara); - sf_error_log((SINT8 *)"FTP Open error."); - location = FTP_JPG0; - } - break; - - case FTP_CLOSE: - SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - location = FTP_JPG0; - break; - - case FTP_JPG0: - - calltime=0; - SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpIndex); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - sf_pdp_flg_set(0); - location = FTP_JPG1; - break; - - case FTP_JPG1: - if(SF_STRSTR(gsmPara, "OK")) - { - sts = SF_FTP_SUCCESS; - } - else - { - calltime++; - if(calltime % 10) - { - SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpIndex); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); - SF_CHECK_RETURN_STATUS(ttyRet, sts, SF_FTP_ERROR_AT_TIMEOUT); - sf_pdp_flg_set(0); - } - } - break; - } - + timeout = 100; + } + else if((2 == puiPara->SendPicSize) && (((puiPara->CamMode == SF_CAM_MODE_PHOTO) || (puiPara->CamMode == SF_CAM_MODE_PHOTO_VIDEO)) && (puiPara->SendPhotoSwitch == 1))) //pic(+video) + { + timeout = 100; } - if(ftpOpenOk == FAIL) - { - sf_error_log((SINT8 *)"connect ftps fail\n"); - } + ret = sf_ftp_config(ssl, gprsMode, timeout); - FtpOpenOk = ftpOpenOk; - #endif - return ftpOpenOk; + ret = sf_ftp_stop(ssl, gprsMode); + + //SF_FTP_CONNECT_END: + printf("[%s:%d]ret:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret); + return ret; } @@ -2547,7 +2266,7 @@ UINT32 sf_camera_ota_ftp(void) time = 250; calltime = 0; SF_SPRINTF(gsmPara, "AT\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } else @@ -2569,7 +2288,7 @@ UINT32 sf_camera_ota_ftp(void) { case CAMERA_OTA_FTP_FRIST: SF_SPRINTF(gsmPara, "AT+QFDEL=\"*\"\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = OTA_FTP_QICSGP; @@ -2597,7 +2316,7 @@ UINT32 sf_camera_ota_ftp(void) location=CAMERA_OTA_FTP_QIACT; } - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } @@ -2615,7 +2334,7 @@ UINT32 sf_camera_ota_ftp(void) SF_SPRINTF(gsmPara, "AT\r"); } - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = CAMERA_OTA_FTP_QIACT; } @@ -2635,7 +2354,7 @@ UINT32 sf_camera_ota_ftp(void) location = CAMERA_OTA_FTP_QFTPCFG1; } - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); calltime=0; } @@ -2647,7 +2366,7 @@ UINT32 sf_camera_ota_ftp(void) { sf_pdp_flg_set(1); SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"contextid\",%d\r", pdpInedx); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = CAMERA_OTA_FTP_QFTPCFG2; calltime=0; @@ -2658,7 +2377,7 @@ UINT32 sf_camera_ota_ftp(void) if(calltime < 6) { SF_SPRINTF(gsmPara, "AT+QIACT=%d\r", pdpInedx); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); appTimeDelayMs(1800); } @@ -2667,9 +2386,9 @@ UINT32 sf_camera_ota_ftp(void) location = CAMERA_OTA_FTP_QIDEACT; calltime=0; errorCode = SF_OTA_ERROR_QIACT; - sf_error_log((SINT8 *)"[ERROR]CAMERA_OTA_FTP QIACT over try 6 times"); + SLOGE((SINT8 *)"[ERROR]CAMERA_OTA_FTP QIACT over try 6 times"); SF_STRCPY(gsmPara, "AT\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } } @@ -2680,7 +2399,7 @@ UINT32 sf_camera_ota_ftp(void) //if(SF_STRSTR(gsmPara, "OK")) { SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"account\",\"%s\",\"%s\"\r", ftpUsername, ftpPassword); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = CAMERA_OTA_FTP_QFTPCFG3; } @@ -2690,7 +2409,7 @@ UINT32 sf_camera_ota_ftp(void) //if(SF_STRSTR(gsmPara, "OK")) { SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"filetype\",1\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = CAMERA_OTA_FTP_QFTPCFG4; } @@ -2701,7 +2420,7 @@ UINT32 sf_camera_ota_ftp(void) //if(SF_STRSTR(gsmPara, "OK")) { SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"transmode\",1\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location=CAMERA_OTA_FTP_QFTPCFG5; } @@ -2712,7 +2431,7 @@ UINT32 sf_camera_ota_ftp(void) //if(SF_STRSTR(gsmPara, "OK")) { SF_SPRINTF(gsmPara, "AT+QFTPCFG=\"restenable\",0\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location=CAMERA_OTA_FTP_QFTPOPEN; } @@ -2723,7 +2442,7 @@ UINT32 sf_camera_ota_ftp(void) if(SF_STRSTR(gsmPara, "OK")) { SF_SPRINTF(gsmPara, "AT+QFTPOPEN=\"%s\",%s\r", ftpIp, ftpPort); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = CAMERA_OTA_FTP_QFTPNLST; } @@ -2736,7 +2455,7 @@ UINT32 sf_camera_ota_ftp(void) if(SF_STRSTR(gsmPara, "+QFTPOPEN: 0")) { SF_SPRINTF(gsmPara, "AT+QFTPNLST=\"%s\",\"COM:\"\r", CAM_OTA_DIR); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = CAMERA_OTA_FTP_QFTPGETCFG; } @@ -2744,9 +2463,9 @@ UINT32 sf_camera_ota_ftp(void) { location = CAMERA_OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_OPEN; - sf_error_log((SINT8 *)"CAMERA_OTA_FTP Open Failed."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP Open Failed."); SF_STRCPY(gsmPara, "AT\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } } @@ -2754,9 +2473,9 @@ UINT32 sf_camera_ota_ftp(void) { location = CAMERA_OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_OPEN; - sf_error_log((SINT8 *)"CAMERA_OTA_FTP QFTPOPEN CME ERROR."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP QFTPOPEN CME ERROR."); SF_STRCPY(gsmPara, "AT\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } @@ -2769,12 +2488,12 @@ UINT32 sf_camera_ota_ftp(void) { #if SF_4G_USB_NET_DOWNLOAD SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = CAMERA_OTA_FTP_QIDEACT; #else SF_SPRINTF(gsmPara, "AT+QFTPGET=\"%s/%s\",\"%s\"\r", CAM_OTA_DIR, SF_FW_CFG_FILE_NAME, SF_FW_CFG_FILE_NAME); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = CAMERA_OTA_FTP_QFTPGETBRN; calltime = 0; @@ -2784,9 +2503,9 @@ UINT32 sf_camera_ota_ftp(void) { location = CAMERA_OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_NLST; - sf_error_log((SINT8 *)"CAMERA_OTA_FTP NO NEED UPDATA FILE."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP NO NEED UPDATA FILE."); SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } } @@ -2794,9 +2513,9 @@ UINT32 sf_camera_ota_ftp(void) { location = CAMERA_OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_NLST; - sf_error_log((SINT8 *)"CAMERA_OTA_FTP QFTPNLST CME ERROR."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP QFTPNLST CME ERROR."); SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } @@ -2808,7 +2527,7 @@ UINT32 sf_camera_ota_ftp(void) if(SF_STRSTR(gsmPara, "+QFTPGET: 0")) { SF_SPRINTF(gsmPara, "AT+QFTPGET=\"%s/%s\",\"%s\"\r", CAM_OTA_DIR, SF_FW_FILE_NAME, SF_FW_FILE_NAME); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = CAMERA_OTA_FTP_QFTPCLOSE; } @@ -2816,9 +2535,9 @@ UINT32 sf_camera_ota_ftp(void) { location = CAMERA_OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_GET; - sf_error_log((SINT8 *)"CAMERA_OTA_FTP GET CFG FILE FAIL."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP GET CFG FILE FAIL."); SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } @@ -2829,9 +2548,9 @@ UINT32 sf_camera_ota_ftp(void) location= CAMERA_OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_GET; calltime = 0; - sf_error_log((SINT8 *)"CAMERA_OTA_FTP QFTPGET CME ERROR."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP QFTPGET CME ERROR."); SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } else @@ -2844,9 +2563,9 @@ UINT32 sf_camera_ota_ftp(void) location= CAMERA_OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_GET; calltime = 0; - sf_error_log((SINT8 *)"CAMERA_OTA_FTP GET CFG FILE TIMEOUT."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP GET CFG FILE TIMEOUT."); SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } } @@ -2859,7 +2578,7 @@ UINT32 sf_camera_ota_ftp(void) if(SF_STRSTR(gsmPara, "+QFTPGET: 0")) { SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = CAMERA_OTA_FTP_QIDEACT; } @@ -2867,9 +2586,9 @@ UINT32 sf_camera_ota_ftp(void) { location = CAMERA_OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_GET; - sf_error_log((SINT8 *)"CAMERA_OTA_FTP GET BRN FILE FAIL."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP GET BRN FILE FAIL."); SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } @@ -2880,9 +2599,9 @@ UINT32 sf_camera_ota_ftp(void) location= CAMERA_OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_GET; calltime = 0; - sf_error_log((SINT8 *)"CAMERA_OTA_FTP QFTPGET CME ERROR."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP QFTPGET CME ERROR."); SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } else @@ -2896,9 +2615,9 @@ UINT32 sf_camera_ota_ftp(void) location= CAMERA_OTA_FTP_QIDEACT; errorCode = SF_OTA_ERROR_FTP_GET; calltime = 0; - sf_error_log((SINT8 *)"CAMERA_OTA_FTP GET BRN FILE TIMEOUT."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP GET BRN FILE TIMEOUT."); SF_SPRINTF(gsmPara, "AT+QFTPCLOSE\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } } @@ -2910,7 +2629,7 @@ UINT32 sf_camera_ota_ftp(void) { calltime = 0; SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpInedx); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); sf_pdp_flg_set(0); @@ -2939,7 +2658,7 @@ UINT32 sf_camera_ota_ftp(void) if (sf_4g_usb_net_ftp_download(transfer) != 1) { printf("download cfg file err\n"); - sf_error_log((SINT8 *)"download cfg file err\n"); + SLOGE((SINT8 *)"download cfg file err\n"); errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; location = CAMERA_OTA_FTP_END; break; @@ -2951,7 +2670,7 @@ UINT32 sf_camera_ota_ftp(void) if (sf_4g_usb_net_ftp_download(transfer) != 1) { printf("download brn file err\n"); - sf_error_log((SINT8 *)"download brn file err\n"); + SLOGE((SINT8 *)"download brn file err\n"); errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; location = CAMERA_OTA_FTP_END; } @@ -2961,7 +2680,7 @@ UINT32 sf_camera_ota_ftp(void) } #else SF_SPRINTF(gsmPara, "AT+QFLST=\"*\"\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = CAMERA_OTA_FTP_DOWNLOAD_CFG; calltime = 0; @@ -2973,7 +2692,7 @@ UINT32 sf_camera_ota_ftp(void) if(calltime < 6) { SF_SPRINTF(gsmPara, "AT+QIDEACT=%d\r", pdpInedx); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); appTimeDelayMs(1800); sf_pdp_flg_set(0); @@ -2983,9 +2702,9 @@ UINT32 sf_camera_ota_ftp(void) location = CAMERA_OTA_FTP_END; calltime=0; errorCode = SF_OTA_ERROR_QIDEACT; - sf_error_log((SINT8 *)"[ERROR]OTA_FTP QIDEACT over try 6 times"); + SLOGE((SINT8 *)"[ERROR]OTA_FTP QIDEACT over try 6 times"); SF_STRCPY(gsmPara, "AT\r"); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); } } @@ -3022,7 +2741,7 @@ UINT32 sf_camera_ota_ftp(void) if((brnFileSize < cfgFileSize) || (brnFileSize == 0)) { - sf_error_log((SINT8 *)"CAMERA_OTA_FTP QFLST FILE SIZE ERROR."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP QFLST FILE SIZE ERROR."); location = CAMERA_OTA_FTP_END; errorCode = OTA_ERROR_FTP_DOWNLOAD; break; @@ -3037,28 +2756,28 @@ UINT32 sf_camera_ota_ftp(void) printf("download %s to DSP size=%d\n", SF_FW_CFG_FILE_NAME, DownloadFileSize); DownloadFrom4gFlag = TRUE; SF_SPRINTF(gsmPara, "AT+QFDWL=\"%s\"\r", SF_FW_CFG_FILE_NAME); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = CAMERA_OTA_FTP_DOWNLOAD_BRN; } else { printf("memory malloc fial\n"); - sf_error_log((SINT8 *)"CAMERA_OTA_FTP DOWNLOAD CFG NO MEMORY ERROR."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP DOWNLOAD CFG NO MEMORY ERROR."); location = CAMERA_OTA_FTP_END; errorCode = OTA_ERROR_FTP_DOWNLOAD; } } else { - sf_error_log((SINT8 *)"CAMERA_OTA_FTP QFLST NULL ERROR."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP QFLST NULL ERROR."); location = CAMERA_OTA_FTP_END; errorCode = OTA_ERROR_FTP_DOWNLOAD; } } else if(SF_STRSTR(gsmPara, "+CME ERROR")) { - sf_error_log((SINT8 *)"OTA_FTP QFOPEN CME ERROR."); + SLOGE((SINT8 *)"OTA_FTP QFOPEN CME ERROR."); location = CAMERA_OTA_FTP_END; errorCode = OTA_ERROR_FTP_DOWNLOAD; } @@ -3080,7 +2799,7 @@ UINT32 sf_camera_ota_ftp(void) if(pTemp == NULL) { printf("download cfg file err\n"); - sf_error_log((SINT8 *)"download cfg file err\n"); + SLOGE((SINT8 *)"download cfg file err\n"); location = CAMERA_OTA_FTP_END; errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; break; @@ -3098,7 +2817,7 @@ UINT32 sf_camera_ota_ftp(void) if(pTemp3 == NULL) { printf("download cfg file err\n"); - sf_error_log((SINT8 *)"download cfg file err\n"); + SLOGE((SINT8 *)"download cfg file err\n"); location = CAMERA_OTA_FTP_END; errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; break; @@ -3111,7 +2830,7 @@ UINT32 sf_camera_ota_ftp(void) if(DownloadFileSize != fileSize) { printf("download cfg file size err\n"); - sf_error_log((SINT8 *)"download cfg file size err\n"); + SLOGE((SINT8 *)"download cfg file size err\n"); location = CAMERA_OTA_FTP_END; errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; break; @@ -3127,14 +2846,14 @@ UINT32 sf_camera_ota_ftp(void) rxFileSize = 0; DownloadFrom4gFlag = TRUE; SF_SPRINTF(gsmPara, "AT+QFDWL=\"%s\"\r", SF_FW_FILE_NAME); - ttyRet = sf_4g_send_data(gsmPara, SF_STRLEN(gsmPara)); + ttyRet = sf_hal_ttyusb2_write(gsmPara, SF_STRLEN(gsmPara)); SF_CHECK_RETURN_OTA(ttyRet, sts, OTA_FAIL, errorCode, SF_GPRS_MODULE_ERROR_WRITE); location = CAMERA_OTA_FTP_SAVE_BRN; } else { printf("save cfg file err\n"); - sf_error_log((SINT8 *)"save cfg file err\n"); + SLOGE((SINT8 *)"save cfg file err\n"); location = CAMERA_OTA_FTP_END; errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; } @@ -3150,7 +2869,7 @@ UINT32 sf_camera_ota_ftp(void) { DownloadFrom4gFlag = FALSE; DownloadIndex = 0; - sf_error_log((SINT8 *)"CAMERA_OTA_FTP DOWNLOAD CFG TO DSP TIMEOUT."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP DOWNLOAD CFG TO DSP TIMEOUT."); location= CAMERA_OTA_FTP_END; errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; calltime = 0; @@ -3172,7 +2891,7 @@ UINT32 sf_camera_ota_ftp(void) if(pTemp == NULL) { printf("download brn file err\n"); - sf_error_log((SINT8 *)"download brn file err\n"); + SLOGE((SINT8 *)"download brn file err\n"); location = CAMERA_OTA_FTP_END; errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; break; @@ -3186,7 +2905,7 @@ UINT32 sf_camera_ota_ftp(void) if(pTemp3 == NULL) { printf("download brn file err\n"); - sf_error_log((SINT8 *)"download brn file err\n"); + SLOGE((SINT8 *)"download brn file err\n"); location = CAMERA_OTA_FTP_END; errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; break; @@ -3199,7 +2918,7 @@ UINT32 sf_camera_ota_ftp(void) if(DownloadFileSize != fileSize) { printf("download brn file size err\n"); - sf_error_log((SINT8 *)"download brn file size err\n"); + SLOGE((SINT8 *)"download brn file size err\n"); location = CAMERA_OTA_FTP_END; errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; break; @@ -3214,7 +2933,7 @@ UINT32 sf_camera_ota_ftp(void) else { printf("save brn file err\n"); - sf_error_log((SINT8 *)"save brn file err\n"); + SLOGE((SINT8 *)"save brn file err\n"); errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; location = CAMERA_OTA_FTP_END; } @@ -3231,7 +2950,7 @@ UINT32 sf_camera_ota_ftp(void) { DownloadFrom4gFlag = FALSE; DownloadIndex = 0; - sf_error_log((SINT8 *)"CAMERA_OTA_FTP S BRN TO DSP TIMEOUT."); + SLOGE((SINT8 *)"CAMERA_OTA_FTP S BRN TO DSP TIMEOUT."); location= CAMERA_OTA_FTP_END; errorCode = SF_OTA_ERROR_FTP_DOWNLOAD; calltime = 0; @@ -3342,7 +3061,8 @@ SINT32 sf_concentrated_ftp_send(void) sf_4G_signal_level_get(pPara->NetGeneration,sf_get_cq_signal(),&csqlevel); sendStartTime = sf_sys_os_utime_get()/1000; - + + SF_CONCENTRATED_MODULE_REBOOT://Restart the module once. ret1 = sf_ftp_config(ssl, gprsMode, timeout); if(SF_SUCCESS == ret1) @@ -3352,8 +3072,6 @@ SINT32 sf_concentrated_ftp_send(void) snprintf((char *)ftpFileName, sizeof(ftpFileName), "%s", pThumbFileCfg->stfileattr[piccount].thumbfileName); snprintf((char *)filePath, sizeof(filePath), "%s", pThumbFileCfg->stfileattr[piccount].thumbfilePath); - SF_CONCENTRATED_MODULE_REBOOT://Restart the module once. - sf_set_del_flag(FALSE); ret1 = sf_quectel_upload_file_to_module(filePath, ftpFileName); @@ -3395,6 +3113,7 @@ SINT32 sf_concentrated_ftp_send(void) goto SF_CONCENTRATED_RE; } else if(1 == sendFailFlag){ + sendFailFlag++; sendEndTime = sf_sys_os_utime_get()/1000; pSifarPara->picSendTimeCount +=sendEndTime - sendStartTime; pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; @@ -3473,6 +3192,410 @@ SF_CONCENTRATED_END: } } +/************************************************* + Function: sf_concentrated_ftp_send + Description: ftp send. + Input: 1:send pic/video. 2:send dr. + Output: N/A + Return: 0:success; else:fail; + Others: N/A +*************************************************/ +SINT32 sf_hd_ftp_send(void) +{ + SINT32 ret1 = SF_SUCCESS; //0:success; else:fail; + SINT32 ret2 = SF_SUCCESS; //0:success; else:fail; + UINT8 ssl = 0; + UINT8 gprsMode = 0; + UINT8 timeout = 100; + UINT8 piccount = 1; + UINT8 SendFileTotal = 0; + UINT8 battery = 0; + UIMenuStoreInfo *pPara = sf_app_ui_para_get(); + SF_PDT_PARAM_STATISTICS_S *pSifarPara = sf_statistics_param_get(); + SF_HDFILE_ATTR_S* fileCfg = sf_file_hd_cfg_get(); + + printf("[%s:%d] s\n", __FUNCTION__, __LINE__); + SendFileTotal = fileCfg->filecnt; + ssl = ((2 == pPara->FtpSwitch) ? 1 : 0); + gprsMode = 0;//puiPara->GprsMode; + printf("[%s:%d] ssl:%d,GprsMode:%d SendFileTotal:%d\n", __FUNCTION__, __LINE__, ssl, gprsMode, SendFileTotal); + + UINT8 ftpFileName[64] = { 0 }; + UINT8 filePath[64] = { 0 }; + UINT8 CamNameStr[64] = {0}; + char cameraID[64] = { 0 }; + + SINT32 ret = SF_SUCCESS; + + UINT8 csqlevel = 0; + UINT8 sendFailFlag = 0; + UINT8 sendAlreadyFlag = 0; + UINT8 timeoutCnt = 0; + SINT64 sendStartTime = 0; + SINT64 sendEndTime = 0; + + sf_set_send_hd(0); + sf_custom_str_get(CamNameStr); + sf_4G_signal_level_get(pPara->NetGeneration,sf_get_cq_signal(),&csqlevel); + + sendStartTime = sf_sys_os_utime_get()/1000; + + SF_HD_MODULE_REBOOT://Restart the module once. + ret1 = sf_ftp_config(ssl, gprsMode, timeout); + + if(SF_SUCCESS == ret1) + { + while((sf_app_while_flag()) && (((piccount+1) <= SendFileTotal)) && ((pPara->GprsMode == 1) || ((pSifarPara->subscribeSendCnt < SUBSCRIBE_SEND_MAX_NUM) && (pPara->GprsMode != 1)))) + { + snprintf((char *)ftpFileName, sizeof(ftpFileName), "W%03d%04d.JPG", fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey); + snprintf((char *)filePath, sizeof(filePath), "%s/%s", SF_HD_DIR, ftpFileName); + + sf_set_del_flag(FALSE); + ret1 = sf_quectel_upload_file_to_module(filePath, ftpFileName); + + if(SF_UPLOAD_ERROR_RETRY == ret1) + { + printf("[%s:%d] PIC SF_UPLOAD_ERROR_RETRY\n", __FUNCTION__, __LINE__); + ret1 = sf_ftp_config(ssl, gprsMode, timeout); + + if(ret1 == SF_SUCCESS) + { + ret1 = sf_quectel_upload_file_to_module(filePath, ftpFileName); + } + } + battery = sf_app_get_battery(); + memset(cameraID, '\0', sizeof(cameraID)); + memset(ftpFileName, '\0', sizeof(ftpFileName)); + memset(filePath, '\0', sizeof(filePath)); + + snprintf(cameraID, sizeof(cameraID), "%s-%d-%d-%s-", pPara->ModuleImei, battery, csqlevel, CamNameStr); + snprintf((char *)ftpFileName, sizeof(ftpFileName), "%sHD-W%03d%04d.JPG", cameraID, fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey); + + snprintf((char *)filePath, sizeof(filePath), "UFS:/W%03d%04d.JPG", fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey); + + printf("%s:%d ftpFileName:%s filePath:%s\n", __FUNCTION__, __LINE__, ftpFileName, filePath); + + if(ret1 == SF_SUCCESS) + { + SF_HD_RE://Try again once + ret1 = sf_ftp_send(ftpFileName, filePath, timeout); + + if(SF_SUCCESS != ret1) + { + printf("%s:%d err ret: [0x%08X] ftpFileName:%s filePath:%s\n", __FUNCTION__, __LINE__, ret, ftpFileName, filePath); + if(!sendFailFlag){ + sendFailFlag++; + goto SF_HD_RE; + } + else if(1 == sendFailFlag){ + sendFailFlag++; + sendEndTime = sf_sys_os_utime_get()/1000; + pSifarPara->picSendTimeCount +=sendEndTime - sendStartTime; + pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; + if(sf_ttyusb_restart() != SUCCESS) + { + printf("%s:%d restart tty usb err\n", __FUNCTION__, __LINE__); + SLOGI("Concentrated Send MODULE REBOOT error\n"); + goto SF_HD_END; + } + + if(sf_module_reboot_reg_net() != SUCCESS) + { + printf("%s:%d restart net err\n", __FUNCTION__, __LINE__); + SLOGI("Concentrated Send MODULE REBOOT Net error\n"); + goto SF_HD_END; + } + + goto SF_HD_MODULE_REBOOT; + } + timeoutCnt++; + goto SF_HD_END; + } + else { + sendFailFlag = 0; + piccount++; + pSifarPara->subscribeSendCnt++; + sendAlreadyFlag++; + } + } + else{ + piccount++; + } + if(battery <= 0) + { + goto SF_HD_END; + } + } + } + +SF_HD_END: + + sendEndTime = sf_sys_os_utime_get()/1000; + pSifarPara->picSendTimeCount +=sendEndTime - sendStartTime; + //pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; + printf("[%s:%d] : sendStartTime:%d sendEndTime:%d\n\n", __FUNCTION__, __LINE__, sendStartTime, sendEndTime); + + if(!(((piccount+1) <= SendFileTotal) && ((pSifarPara->picSendMax < pPara->SendMaxNum) || (pPara->SendMaxNum == 0)))) + { + sf_delete_send_flie_list(); + } + + if(ret1 != SF_FTP_ERROR_TERM) + { + ret2 = sf_ftp_stop(ssl, gprsMode); + } + + #if SF_TEST_ERROR_CODE + sf_set_code_err_flag(0); + #endif + if(SendFileTotal) + { + SLOGI("Concentrated Send end.\n"); + pSifarPara->picSendCount += (piccount+1); + pSifarPara->sendThumbnailCount += (piccount+1); + pSifarPara->picSendSucessCount += sendAlreadyFlag; + pSifarPara->picSendFailCount += ((SendFileTotal + 1) - sendAlreadyFlag); + //pSifarPara->sendThumbnailFailCount += ((piccount + 1) - sendAlreadyFlag); + pSifarPara->picSendTimeoutCount += timeoutCnt; + } + printf("[%s:%d]ret1:[0x%08X],ret2:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret1, ret2); + + if(ret1 != SF_SUCCESS) + { + return ret1; + } + else + { + return ret2; + } +} + +/************************************************* + Function: sf_video_find_file + Description: find video + Input: dir key, file key + Output: file name + Return: file size + Others: N/A +*************************************************/ +UINT32 sf_video_find_file(UINT16 dirKey, UINT16 fileKey, UINT8 *destFname) +{ + UINT32 fileIndex = 0; + UINT32 fileSize = 0; + UINT8 i = 0; + UINT8 fname[50] = {0}; + //UINT8 srcFname[50] = {0}; + + fileIndex = dirKey * 10000 + fileKey + 1; + + for(i = 0; i < 3; i++) + { + dirKey = fileIndex / 10000; + fileKey = fileIndex % 10000; + SF_SPRINTF(fname, "%s/%03dMEDIA/%s%04d.MP4", SF_DCIM_DIR, dirKey, DCF_FILE_NAME, fileKey); + + fileSize = sf_get_file_size(fname); + printf("find video:%s size=%d\n", fname, fileSize); + + if(fileSize != 0) + { + SF_STRCPY(destFname, fname); + break; + } + fileIndex++; + } + return fileSize; +} +/************************************************* + Function: sf_video_ftp_send + Description: ftp send. + Input: 1:send pic/video. 2:send dr. + Output: N/A + Return: 0:success; else:fail; + Others: N/A +*************************************************/ +SINT32 sf_video_ftp_send(void) +{ + SINT32 ret1 = SF_SUCCESS; //0:success; else:fail; + SINT32 ret2 = SF_SUCCESS; //0:success; else:fail; + UINT8 ssl = 0; + UINT8 gprsMode = 0; + UINT8 timeout = 100; + UINT8 piccount = 0; + UINT8 SendFileTotal = 0; + UINT8 battery = 0; + UIMenuStoreInfo *pPara = sf_app_ui_para_get(); + SF_PDT_PARAM_STATISTICS_S *pSifarPara = sf_statistics_param_get(); + SF_HDFILE_ATTR_S* fileCfg = sf_file_video_cfg_get(); + + printf("[%s:%d] s\n", __FUNCTION__, __LINE__); + SendFileTotal = fileCfg->filecnt; + ssl = ((2 == pPara->FtpSwitch) ? 1 : 0); + gprsMode = 0;//puiPara->GprsMode; + printf("[%s:%d] ssl:%d,GprsMode:%d SendFileTotal:%d\n", __FUNCTION__, __LINE__, ssl, gprsMode, SendFileTotal); + + UINT8 ftpFileName[64] = { 0 }; + UINT8 filePath[64] = { 0 }; + UINT8 CamNameStr[64] = {0}; + char cameraID[64] = { 0 }; + + SINT32 ret = SF_SUCCESS; + + UINT8 csqlevel = 0; + UINT8 sendFailFlag = 0; + UINT8 sendAlreadyFlag = 0; + UINT8 timeoutCnt = 0; + SINT64 sendStartTime = 0; + SINT64 sendEndTime = 0; + UINT32 size = 0; + + sf_set_send_video(0); + sf_custom_str_get(CamNameStr); + sf_4G_signal_level_get(pPara->NetGeneration,sf_get_cq_signal(),&csqlevel); + + sendStartTime = sf_sys_os_utime_get()/1000; + + SF_VIDEO_MODULE_REBOOT://Restart the module once. + ret1 = sf_ftp_config(ssl, gprsMode, timeout); + + if(SF_SUCCESS == ret1) + { + while((sf_app_while_flag()) && (((piccount+1) <= SendFileTotal)) && ((pPara->GprsMode == 1) || ((pSifarPara->subscribeVideoSendCnt < SUBSCRIBE_VIDEO_SEND_MAX_NUM) && (pPara->GprsMode != 1)))) + { + snprintf((char *)ftpFileName, sizeof(ftpFileName), "W%03d%04d.MP4", fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey); + //snprintf((char *)filePath, sizeof(filePath), "%s/%s", SF_HD_DIR, ftpFileName); + size = sf_video_find_file(fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey,filePath); + if(size == 0) + { + pSifarPara->videoSendCount--; + break; + } + + sf_set_del_flag(FALSE); + ret1 = sf_quectel_upload_file_to_module(filePath, ftpFileName); + + if(SF_UPLOAD_ERROR_RETRY == ret1) + { + printf("[%s:%d] PIC SF_UPLOAD_ERROR_RETRY\n", __FUNCTION__, __LINE__); + ret1 = sf_ftp_config(ssl, gprsMode, timeout); + + if(ret1 == SF_SUCCESS) + { + ret1 = sf_quectel_upload_file_to_module(filePath, ftpFileName); + } + } + battery = sf_app_get_battery(); + memset(cameraID, '\0', sizeof(cameraID)); + memset(ftpFileName, '\0', sizeof(ftpFileName)); + memset(filePath, '\0', sizeof(filePath)); + + snprintf(cameraID, sizeof(cameraID), "%s-%d-%d-%s-", pPara->ModuleImei, battery, csqlevel, CamNameStr); + snprintf((char *)ftpFileName, sizeof(ftpFileName), "%s-W%03d%04d.MP4", cameraID, fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey); + + snprintf((char *)filePath, sizeof(filePath), "UFS:/W%03d%04d.MP4", fileCfg->stfileattr[piccount].dirKey, fileCfg->stfileattr[piccount].fileKey); + + printf("%s:%d ftpFileName:%s filePath:%s\n", __FUNCTION__, __LINE__, ftpFileName, filePath); + + if(ret1 == SF_SUCCESS) + { + SF_VIDEO_RE://Try again once + ret1 = sf_ftp_send(ftpFileName, filePath, timeout); + + if(SF_SUCCESS != ret1) + { + printf("%s:%d err ret: [0x%08X] ftpFileName:%s filePath:%s\n", __FUNCTION__, __LINE__, ret, ftpFileName, filePath); + if(!sendFailFlag){ + sendFailFlag++; + goto SF_VIDEO_RE; + } + else if(1 == sendFailFlag){ + sendFailFlag++; + sendEndTime = sf_sys_os_utime_get()/1000; + pSifarPara->picSendTimeCount +=sendEndTime - sendStartTime; + pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; + if(sf_ttyusb_restart() != SUCCESS) + { + printf("%s:%d restart tty usb err\n", __FUNCTION__, __LINE__); + SLOGI("Concentrated Send MODULE REBOOT error\n"); + goto SF_VIDEO_END; + } + + if(sf_module_reboot_reg_net() != SUCCESS) + { + printf("%s:%d restart net err\n", __FUNCTION__, __LINE__); + SLOGI("Concentrated Send MODULE REBOOT Net error\n"); + goto SF_VIDEO_END; + } + + goto SF_VIDEO_MODULE_REBOOT; + } + timeoutCnt++; + goto SF_VIDEO_END; + } + else { + sendFailFlag = 0; + piccount++; + pSifarPara->subscribeVideoSendCnt++; + sendAlreadyFlag++; + } + } + else{ + piccount++; + } + if(battery <= 0) + { + goto SF_VIDEO_END; + } + } + } + +SF_VIDEO_END: + + sendEndTime = sf_sys_os_utime_get()/1000; + pSifarPara->videoSendTimeCount +=sendEndTime - sendStartTime; + //pSifarPara->sendThumbnailTimeCount += sendEndTime - sendStartTime; + printf("[%s:%d] : sendStartTime:%d sendEndTime:%d\n\n", __FUNCTION__, __LINE__, sendStartTime, sendEndTime); + + if(ret1 != SF_FTP_ERROR_TERM) + { + ret2 = sf_ftp_stop(ssl, gprsMode); + } + + #if SF_TEST_ERROR_CODE + sf_set_code_err_flag(0); + #endif + if(SendFileTotal) + { + SLOGI("Send end.\n"); + pSifarPara->videoSendSucessCount += sendAlreadyFlag; + pSifarPara->videoSendFailCount += ((SendFileTotal + 1) - sendAlreadyFlag); + pSifarPara->picSendTimeoutCount += timeoutCnt; + + } + printf("[%s:%d]ret1:[0x%08X],ret2:[0x%08X]\n\n", __FUNCTION__, __LINE__, ret1, ret2); + + if(ret1 != SF_SUCCESS) + { + return ret1; + } + else + { + return ret2; + } +} + +/************************************************* + Function: sf get ftp open + Description: get ftp open flag + Input: N/A + Output: N/A + Return: 0:SUCCESS, errcode:FAIL + Others: N/A +*************************************************/ +SINT32 sf_get_ftp_open_flag(void) +{ + return FtpOpenOk; +} #ifdef __cplusplus #if __cplusplus } diff --git a/code/application/source/sf_app/code/source/4gMng/sf_module.c b/code/application/source/sf_app/code/source/4gMng/sf_module.c index 360e4b832..663f0ae5d 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_module.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_module.c @@ -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 } diff --git a/code/application/source/sf_app/code/source/4gMng/sf_opera_adapt.c b/code/application/source/sf_app/code/source/4gMng/sf_opera_adapt.c index f6cd73c0b..fbc72bfc9 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_opera_adapt.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_opera_adapt.c @@ -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 @@ -1254,7 +1254,8 @@ UINT16 sf_auto_operation_adaptation(SF_CHAR *operatorName, UIMenuStoreInfo *sim_ strcpy(puiPara->IP, "inetproxy.tdc.dk"); strcpy(puiPara->PORT, "8080"); strcpy(puiPara->USERNAME, "\0"); - strcpy(puiPara->PASSWORD, "\0"); + strcpy(puiPara->PASSWORD, "\0"); + #endif } else if (strncmp(operatorName, "26801", 5) == 0) //Portugal vodafone diff --git a/code/application/source/sf_app/code/source/4gMng/sf_sms.c b/code/application/source/sf_app/code/source/4gMng/sf_sms.c index 93083533e..3afc88e45 100644 --- a/code/application/source/sf_app/code/source/4gMng/sf_sms.c +++ b/code/application/source/sf_app/code/source/4gMng/sf_sms.c @@ -37,6 +37,11 @@ #include "sf_device.h" #include "sf_storeMng.h" #include "sf_commMng.h" +#include +#include +#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,12 +2113,44 @@ 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__); - while(pList != NULL) - { - printf("ID:%d f:%d,%d\n", i++, pList->dirKey, pList->fileKey); - pList = pList->pNext; + 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; +} \ No newline at end of file diff --git a/code/application/source/sf_app/code/source/app/sf_app.c b/code/application/source/sf_app/code/source/app/sf_app.c index 9ed92892b..658a91203 100644 --- a/code/application/source/sf_app/code/source/app/sf_app.c +++ b/code/application/source/sf_app/code/source/app/sf_app.c @@ -50,7 +50,7 @@ #include #include "sf_keymng.h" #include "sf_wifi_svr.h" - +#include "sf_battery.h" //#include //#include //#include @@ -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,13 +163,18 @@ 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(); printf("[%s:%d] CamMode:%d\n", __FUNCTION__, __LINE__,puiPara->CamMode); @@ -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 - app_RegisterNet_start(); + 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) diff --git a/code/application/source/sf_app/code/source/app/sf_common.c b/code/application/source/sf_app/code/source/app/sf_common.c index 4a3d0107e..6be03c971 100644 --- a/code/application/source/sf_app/code/source/app/sf_common.c +++ b/code/application/source/sf_app/code/source/app/sf_common.c @@ -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); } @@ -663,8 +705,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) { @@ -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 } diff --git a/code/application/source/sf_app/code/source/app/sf_device.c b/code/application/source/sf_app/code/source/app/sf_device.c index 21eaf942a..97874e713 100644 --- a/code/application/source/sf_app/code/source/app/sf_device.c +++ b/code/application/source/sf_app/code/source/app/sf_device.c @@ -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 @@ -360,59 +360,65 @@ SINT32 app_led_net_reg_stop(SINT32 s32ret) UIMenuStoreInfo *puiPara = sf_app_ui_para_get(); UINT8 netSearchStep = sf_get_netsearch_step(); - if(s32ret == SF_SUCCESS) { - UINT8 signalLevel = 0; - sf_4G_signal_level_get(puiPara->NetGeneration,sf_get_cq_signal(),&signalLevel); - MLOGI("signalLevel = %d\n",signalLevel); - sf_app_cq_signal_to_cardv(); + if(s32ret == SF_SUCCESS) { + UINT8 signalLevel = 0; + sf_4G_signal_level_get(puiPara->NetGeneration,sf_get_cq_signal(),&signalLevel); + MLOGI("signalLevel = %d\n",signalLevel); + sf_app_cq_signal_to_cardv(); if(netSearchStep == GPRS_SEARCH_STEP_LOGIN_FAILED) - { + { sf_sys_status_led_set(SF_LED_SYS_STATE_SERVER_FAIL); - } + } else { - switch(signalLevel) - { + switch(signalLevel) + { case 1: sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_1); break; - case 2: - sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_2); - break; - case 3: - sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_3); - break; - case 4: - sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_4); - break; - default: + case 2: + sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_2); + break; + case 3: + sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_3); + break; + case 4: + sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_4); + break; + default: sf_sys_status_led_set(SF_LED_SYS_STATE_GPRS_SIGNAL_0); - break; - } + break; + } } - } - else if(s32ret == SF_4G_ERROR_NO_SIMCARD \ - || s32ret == SF_4G_ERROR_NO_SUPPOET \ - || s32ret == SF_APP_ERROR_NO_SUPPOET) - { + } + else if(s32ret == SF_4G_ERROR_NO_SIMCARD \ + || s32ret == SF_4G_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); - } - else if(s32ret == SF_HTTP_ERROR_REQUEST) { - sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR); - } - else if(s32ret == SF_TTY_ERROR_OPEN) - { - 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_HTTP_ERROR_REQUEST) { + sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR); + } + else if(s32ret == SF_TTY_ERROR_OPEN) + { sf_sys_status_led_set(SF_LED_SYS_STATE_SIM_ERROR); sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR); } - else { - sf_sys_status_led_set(SF_LED_SYS_STATE_ERROR); - } - + 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); + } + else { + 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) diff --git a/code/application/source/sf_app/code/source/app/sf_service.c b/code/application/source/sf_app/code/source/app/sf_service.c index 7b4246564..aaaf204fb 100644 --- a/code/application/source/sf_app/code/source/app/sf_service.c +++ b/code/application/source/sf_app/code/source/app/sf_service.c @@ -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->NeedTimeSyncStartUp = 1; - // avoid always A mode power on - pCustomerParam->NetWorkNeedSearch = 0; - // printf("[%s:%d]NeedTimeSyncStartUp=%d\n", __FUNCTION__, __LINE__, - // pCustomerParam->NeedTimeSyncStartUp); + 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 } diff --git a/code/application/source/sf_app/code/source/app/sf_system.c b/code/application/source/sf_app/code/source/app/sf_system.c index 4c80cddf0..8cd8845af 100644 --- a/code/application/source/sf_app/code/source/app/sf_system.c +++ b/code/application/source/sf_app/code/source/app/sf_system.c @@ -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,95 +112,40 @@ void app_poweroff_time_clear(void) } static void* auto_poweroff_thread(void * arg) { + UINT8 pwroffcnt = 0; SF_MESSAGE_BUF_S stMessageBuf = {0}; - while(AutoPoweroffTskCfg.IsRun) - { + SINT32 isUsb = sf_usb_IsInsert(); + if(isUsb) + { + sf_set_pir_statu_flag(FALSE); + return NULL; + } + if(sf_get_fw_update()) + return NULL; - if(bUpdateEnble >= 1 && bUpdateEnble < 6) - { - bUpdateEnble++; - } - else if(bUpdateEnble >= 6) { - app_led_sd_status_return(); - bUpdateEnble = 0; - } - -// 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; - } - + while(AutoPoweroffTskCfg.IsRun) + { + //if(sf_get_pir_statu_flag()) + { + pwroffcnt++; - if(AutoPowerOffTime < 180) - { - - UINT8 temp = 0; - temp = sf_4G_status_get(); - - - if((temp == SF_4G_SENDING) || (temp == SF_4G_SEARCHING)) - AutoPowerOffTime = 0; - else - AutoPowerOffTime++; - - - } - else if(AutoPowerOffTime == 180) - { - 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; - stMessageBuf.cmdId = CMD_POWEROFF; - sf_com_message_send_to_app(&stMessageBuf); - continue; - } - 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); - } + if(pwroffcnt == 1) + { + sf_sys_status_led_set(SF_LED_SYS_STATE_GOING_TO_PIR); + } + else if(pwroffcnt == 6) + { + 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; + stMessageBuf.arg1 = APP_POWER_OFF_APO; + sf_com_message_send_to_cardv(&stMessageBuf); + return NULL; + } + } + sleep(1); + } AutoPowerOffTime = 0; return NULL; @@ -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 } diff --git a/rtos/code/application/source/cardv/SrcCode/Gx/GxPower/sf_battery.c b/code/application/source/sf_app/code/source/battery/sf_battery.c similarity index 76% rename from rtos/code/application/source/cardv/SrcCode/Gx/GxPower/sf_battery.c rename to code/application/source/sf_app/code/source/battery/sf_battery.c index d84744e9e..1bbadc592 100644 --- a/rtos/code/application/source/cardv/SrcCode/Gx/GxPower/sf_battery.c +++ b/code/application/source/sf_app/code/source/battery/sf_battery.c @@ -19,40 +19,43 @@ * **************************************************************************/ -#include #include #include #include #include +//#include #include #include +#include #include -#include #include #include #include #include -#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 #include #include #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; @@ -207,7 +228,7 @@ UINT32 sf_battery_adc_value_get_once(void) } else { - if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS) + if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS) { _BatVoltageVal = sf_battery_voltage_convert(15, 100, batAdc); //_BatVoltageVal += 1; @@ -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,57 +745,84 @@ 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_get_night_led_flag()) - { - sf_ir_led_set(0, 0, 0, 0); - } + if(sf_LatestBattLevel == SF_BATT_LEVEL_0) + { + if(sf_app_get_night_led_flag()) + { + //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. //gModuleSleep = 0; sf_set_module_sleep_flag(0); - if(battEmpty == 0) - { - battEmpty = 1; - printf("[%s:%d]power off because low battery\n", __FUNCTION__, __LINE__); + if(battEmpty == 0) + { + 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 diff --git a/code/application/source/sf_app/code/source/commMng/sf_share_mem.c b/code/application/source/sf_app/code/source/commMng/sf_share_mem.c index 3b61525e0..c64086c26 100644 --- a/code/application/source/sf_app/code/source/commMng/sf_share_mem.c +++ b/code/application/source/sf_app/code/source/commMng/sf_share_mem.c @@ -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 } diff --git a/code/application/source/sf_app/code/source/devMng/sf_ledmng.c b/code/application/source/sf_app/code/source/devMng/sf_ledmng.c index ba36bb381..4cca2b627 100644 --- a/code/application/source/sf_app/code/source/devMng/sf_ledmng.c +++ b/code/application/source/sf_app/code/source/devMng/sf_ledmng.c @@ -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); diff --git a/code/application/source/sf_app/code/source/fileMng/sf_file.c b/code/application/source/sf_app/code/source/fileMng/sf_file.c index 7e16b9932..54fd4cbb4 100644 --- a/code/application/source/sf_app/code/source/fileMng/sf_file.c +++ b/code/application/source/sf_app/code/source/fileMng/sf_file.c @@ -24,6 +24,7 @@ #include #include #include +#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 diff --git a/code/application/source/sf_app/code/source/fileMng/sf_fileMng.c b/code/application/source/sf_app/code/source/fileMng/sf_fileMng.c index d04169081..10e109757 100644 --- a/code/application/source/sf_app/code/source/fileMng/sf_fileMng.c +++ b/code/application/source/sf_app/code/source/fileMng/sf_fileMng.c @@ -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 } diff --git a/code/application/source/sf_app/code/source/gpio/sf_hal_gpio.c b/code/application/source/sf_app/code/source/gpio/sf_hal_gpio.c index 624622d61..f219ee990 100644 --- a/code/application/source/sf_app/code/source/gpio/sf_hal_gpio.c +++ b/code/application/source/sf_app/code/source/gpio/sf_hal_gpio.c @@ -23,6 +23,7 @@ #include "sf_hal_gpio.h" #include +#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 } diff --git a/code/application/source/sf_app/code/source/logMng/sf_log.c b/code/application/source/sf_app/code/source/logMng/sf_log.c index 542ecdc01..aaa24dff6 100644 --- a/code/application/source/sf_app/code/source/logMng/sf_log.c +++ b/code/application/source/sf_app/code/source/logMng/sf_log.c @@ -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 }; diff --git a/code/application/source/sf_app/code/source/paramMng/sf_param_common.c b/code/application/source/sf_app/code/source/paramMng/sf_param_common.c index 4ff400907..8b47c6334 100644 --- a/code/application/source/sf_app/code/source/paramMng/sf_param_common.c +++ b/code/application/source/sf_app/code/source/paramMng/sf_param_common.c @@ -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,7 +956,92 @@ 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; } diff --git a/code/lib/source/sifar/code/source/common/sf_pc_tool.c b/code/application/source/sf_app/code/source/pc_tool/sf_pc_tool.c similarity index 100% rename from code/lib/source/sifar/code/source/common/sf_pc_tool.c rename to code/application/source/sf_app/code/source/pc_tool/sf_pc_tool.c diff --git a/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c b/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c index 1be6b3646..28b36dfd8 100644 --- a/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c +++ b/code/application/source/sf_app/code/source/storeMng/sf_storeMng.c @@ -393,8 +393,17 @@ SINT32 sf_sd_status_set(SF_SD_STATUS_E enStatus) *************************************************/ UINT32 sf_delete_send_flie_list(void) { - printf("delete %s\n", SF_SEND_LIST_DIR); - sf_file_remove(SF_THUMB_SEND_LIST); + 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; } diff --git a/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu.c b/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu.c index ead0026bd..fd459fe77 100644 --- a/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu.c +++ b/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu.c @@ -36,7 +36,10 @@ #include "sf_message_queue.h" #include "sf_commu_mcu.h" #include - +#include "kwrap/flag.h" +#include "kwrap/debug.h" +#include "kwrap/util.h" +#include #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); } - sf_set_power_off_flag(1); + 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 } diff --git a/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu_reg.c b/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu_reg.c index 64585f469..e2f7c6381 100644 --- a/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu_reg.c +++ b/code/application/source/sf_app/code/source/systemMng/sf_commu_mcu_reg.c @@ -29,7 +29,7 @@ #include "sf_commu_mcu_reg.h" #include #include - +#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; diff --git a/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c b/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c index 0d0c10440..f621301b1 100644 --- a/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c +++ b/code/application/source/sf_app/code/source/wifi/sf_wifi_svr.c @@ -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) - { - CamPara->imageSize = 0; - } - else if(puiPara->ImgSize == 3) - { - CamPara->imageSize = 1; - } - else if(puiPara->ImgSize == 4) - { - CamPara->imageSize = 2; - } - else - { - CamPara->imageSize = 2; - } - + if(PHOTO_SIZE_16M == puiPara->ImgSize) + { + CamPara->imageSize = 0; + } + else if(PHOTO_SIZE_12M == puiPara->ImgSize) + { + CamPara->imageSize = 1; + } + 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 } } } diff --git a/code/hdal/vendor/output/libvendor_ai2_pub.a b/code/hdal/vendor/output/libvendor_ai2_pub.a index a0d0c2b2e..cf9183ea3 100644 Binary files a/code/hdal/vendor/output/libvendor_ai2_pub.a and b/code/hdal/vendor/output/libvendor_ai2_pub.a differ diff --git a/code/hdal/vendor/output/libvendor_ai2_pub2.a b/code/hdal/vendor/output/libvendor_ai2_pub2.a index 9c7b0cbc4..1c5c00993 100644 Binary files a/code/hdal/vendor/output/libvendor_ai2_pub2.a and b/code/hdal/vendor/output/libvendor_ai2_pub2.a differ diff --git a/code/lib/source/sifar/Makefile b/code/lib/source/sifar/Makefile index dcafad7f4..6f2ab65bf 100755 --- a/code/lib/source/sifar/Makefile +++ b/code/lib/source/sifar/Makefile @@ -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 \ @@ -93,7 +90,10 @@ SRC = \ $(APP_DIR)/source/sf_app/code/source/wifi/sf_svr_send.c \ $(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 \ diff --git a/code/lib/source/sifar/code/include/sf_common.h b/code/lib/source/sifar/code/include/sf_common.h index 02a16b785..1a2c5548c 100644 --- a/code/lib/source/sifar/code/include/sf_common.h +++ b/code/lib/source/sifar/code/include/sf_common.h @@ -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 diff --git a/code/lib/source/sifar/code/include/sf_inc.h b/code/lib/source/sifar/code/include/sf_inc.h index 3556ede12..aa1e31d70 100644 --- a/code/lib/source/sifar/code/include/sf_inc.h +++ b/code/lib/source/sifar/code/include/sf_inc.h @@ -3,14 +3,14 @@ #include #include -#include -#include -#include -#include -#include +//#include +//#include +//#include +//#include +//#include #include #include -#include +//#include #include //#include //#include @@ -21,6 +21,6 @@ #include #include #include - +#include #endif diff --git a/code/lib/source/sifar/code/include/sf_mcu.h b/code/lib/source/sifar/code/include/sf_mcu.h index 271e3c776..872c4b3f7 100644 --- a/code/lib/source/sifar/code/include/sf_mcu.h +++ b/code/lib/source/sifar/code/include/sf_mcu.h @@ -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 diff --git a/code/lib/source/sifar/code/source/common/sf_battery.c b/code/lib/source/sifar/code/source/common/Bak_battery similarity index 94% rename from code/lib/source/sifar/code/source/common/sf_battery.c rename to code/lib/source/sifar/code/source/common/Bak_battery index 8d4ab825f..840877f85 100644 --- a/code/lib/source/sifar/code/source/common/sf_battery.c +++ b/code/lib/source/sifar/code/source/common/Bak_battery @@ -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); @@ -205,7 +205,7 @@ UINT32 sf_battery_adc_value_get_once(void) } else { - if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS) + if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS) { _BatVoltageVal = sf_battery_voltage_convert(15, 100, batAdc); //_BatVoltageVal += 1; @@ -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,39 +708,40 @@ 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_get_night_led_flag()) - { - //sf_ir_led_set(0, 0, 0, 0); - } + if(sf_LatestBattLevel == SF_BATT_LEVEL_0) + { + if(sf_get_night_led_flag()) + { + sf_ir_led_set(0, 0, 0, 0); + } //the Module not need sleep. //gModuleSleep = 0; sf_set_module_sleep_flag(0); - if(battEmpty == 0) - { - 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 - } - } + if(battEmpty == 0) + { + 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 + } + } else if(sf_LatestBattLevel == SF_BATT_LEVEL_1) { if((sf_battery_value_get(sf_get_night_led_flag()) < 10)/* && (sf_led_get(SF_LED_BAT1) != SF_LED_STATE_SLOW_FLASHING)*/) @@ -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 diff --git a/code/lib/source/sifar/code/source/common/sf_battrery.o b/code/lib/source/sifar/code/source/common/sf_battrery.o deleted file mode 100644 index 3e0647e89..000000000 Binary files a/code/lib/source/sifar/code/source/common/sf_battrery.o and /dev/null differ diff --git a/code/lib/source/sifar/code/source/common/sf_common.c b/code/lib/source/sifar/code/source/common/sf_common.c index 06ae7bf34..5d3572ff2 100644 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -53,7 +53,7 @@ #include "GxTime.h" #include "UIFlowPhoto/UIFlowPhotoFuncs.h" #include "UIFlowMovie/UIFlowMovieFuncs.h" - +#include "UIApp/Transcode/UIAppTranscode.h" #include #include #include @@ -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,8 +1892,12 @@ void* sf_cardv_message_thread(void *argv) break; case CMD_SD: sf_cardv_proccess_cmd_sd(&stMessagebuf); - break; default: - break; + break; + case CMD_POWEROFF: + sf_cardv_proccess_cmd_poweroff(&stMessagebuf); + break; + default: + break; } } } @@ -1808,4 +2012,253 @@ void sf_cardv_set_mcu_rtc_flag(void) stMessageBuf.arg1 = SF_MCU_CMD_MCU_RTC; 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; } \ No newline at end of file diff --git a/code/lib/source/sifar/code/source/mcu/sf_commu_mcu.c b/code/lib/source/sifar/code/source/mcu/sf_commu_mcu.c index a7426e9d2..a9d0e7ffe 100644 --- a/code/lib/source/sifar/code/source/mcu/sf_commu_mcu.c +++ b/code/lib/source/sifar/code/source/mcu/sf_commu_mcu.c @@ -162,7 +162,7 @@ int sf_commu_mcu_open(void) printf("Open %s error!\n", SERIAL_DEVICE_PATH); ret = -1; return ret; - } + } else { printf("Open %s success!\n", SERIAL_DEVICE_PATH); diff --git a/code/lib/source/sifar/code/source/module/sf_sim.c b/code/lib/source/sifar/code/source/module/sf_sim.c index 449b44992..7b234cd7a 100644 --- a/code/lib/source/sifar/code/source/module/sf_sim.c +++ b/code/lib/source/sifar/code/source/module/sf_sim.c @@ -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); } diff --git a/code/lib/source/sifar/code/source/module/sf_tcp.o b/code/lib/source/sifar/code/source/module/sf_tcp.o new file mode 100644 index 000000000..ff8d3e7e0 Binary files /dev/null and b/code/lib/source/sifar/code/source/module/sf_tcp.o differ diff --git a/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S530/nvt-evb.dtb b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S530/nvt-evb.dtb new file mode 100644 index 000000000..52205426a Binary files /dev/null and b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S530/nvt-evb.dtb differ diff --git a/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S530/nvt-evb.tmp.dts b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S530/nvt-evb.tmp.dts new file mode 100644 index 000000000..3c2dee5f4 --- /dev/null +++ b/configs/Linux/cfg_565_HUNTING_EVB_LINUX_4G_S530/nvt-evb.tmp.dts @@ -0,0 +1,1181 @@ +# 1 "nvt-evb.dts" +# 1 "" +# 1 "" +# 1 "nvt-evb.dts" + + + + + + + +/dts-v1/; +# 1 "/home/payton/S530/BSP/linux-kernel/include/dt-bindings/gpio/nvt-gpio.h" 1 +# 13 "/home/payton/S530/BSP/linux-kernel/include/dt-bindings/gpio/nvt-gpio.h" +# 1 "/home/payton/S530/BSP/linux-kernel/include/dt-bindings/gpio/gpio.h" 1 +# 14 "/home/payton/S530/BSP/linux-kernel/include/dt-bindings/gpio/nvt-gpio.h" 2 +# 10 "nvt-evb.dts" 2 +# 1 "nvt-peri.dtsi" 1 +# 10 "nvt-peri.dtsi" +# 1 "nvt-basic.dtsi" 1 +# 9 "nvt-basic.dtsi" +# 1 "/home/payton/S530/BSP/linux-kernel/include/dt-bindings/interrupt-controller/arm-gic.h" 1 +# 9 "/home/payton/S530/BSP/linux-kernel/include/dt-bindings/interrupt-controller/arm-gic.h" +# 1 "/home/payton/S530/BSP/linux-kernel/include/dt-bindings/interrupt-controller/irq.h" 1 +# 10 "/home/payton/S530/BSP/linux-kernel/include/dt-bindings/interrupt-controller/arm-gic.h" 2 +# 10 "nvt-basic.dtsi" 2 + +/ { + model = "Novatek NA51089"; + compatible = "novatek,na51089", "nvt,ca9"; + interrupt-parent = <&gic>; + #address-cells = <1>; + #size-cells = <1>; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0x0>; + next-level-cache = <&L2>; + clock-frequency = <960000000>; + }; + }; + + cg@f0020000 { + compatible = "nvt,core_clk"; + reg = <0xf0020000 0x1000>; + }; + + + periph_clk: periph_clk { + compatible = "nvt,periph_clk"; + #clock-cells = <0>; + clock-output-names = "periph_clk"; + }; + + global_timer@ffd00200 { + compatible = "arm,cortex-a9-global-timer"; + reg = <0xffd00200 0x20>; + interrupts = <1 11 0xf01>; + clocks = <&periph_clk>; + }; + + private_timer@ffd00600 { + compatible = "arm,cortex-a9-twd-timer"; + reg = <0xffd00600 0x20>; + interrupts = <1 13 0xf01>; + clocks = <&periph_clk>; + }; + + pmu { + compatible = "arm,cortex-a9-pmu"; + interrupts = <0 112 4>; + interrupt-affinity = <&cpu0>; + }; + + L2: cache-controller@ffe00000 { + compatible = "arm,pl310-cache"; + reg = <0xffe00000 0x1000>; + interrupts = <0 96 4>; + cache-unified; + arm,shared-override; + cache-level = <2>; + arm,data-latency = <2 2 2>; + arm,tag-latency = <2 2 2>; + }; + + gic: interrupt-controller@0xffd00000 { + compatible = "arm,cortex-a9-gic"; + #interrupt-cells = <3>; + interrupt-controller; + reg = <0xffd01000 0x1000>, + <0xffd00100 0x1000>; + }; + + scu: snoop-control-unit@0xffd00000 { + compatible = "arm,cortex-a9-scu"; + reg = <0xffd00000 0x100>; + }; +}; +# 11 "nvt-peri.dtsi" 2 + +/ { + chosen { + bootargs = " "; + }; + + aliases { + mmc0 = &mmc0; + mmc1 = &mmc1; + }; + + uart@f0290000 { + compatible = "ns16550a"; + reg = <0xf0290000 0x1000>; + interrupts = <0 43 4>; + baud = <115200>; + reg-shift = <2>; + reg-io-width = <4>; + no-loopback-test = <1>; + clock-frequency = <24000000>; + fifo-size = <64>; + uart_id = <0>; + }; + + uart@f0300000 { + compatible = "ns16550a"; + reg = <0xf0300000 0x1000>; + interrupts = <0 44 4>; + baud = <115200>; + reg-shift = <2>; + reg-io-width = <4>; + no-loopback-test = <1>; + clock-frequency = <48000000>; + fifo-size = <64>; + hw_flowctrl = <0>; + rx_trig_level = <3>; + uart_id = <1>; + }; + + uart@f0310000 { + compatible = "ns16550a"; + reg = <0xf0310000 0x1000>; + interrupts = <0 45 4>; + baud = <115200>; + reg-shift = <2>; + reg-io-width = <4>; + no-loopback-test = <1>; + clock-frequency = <48000000>; + fifo-size = <64>; + hw_flowctrl = <0>; + rx_trig_level = <3>; + uart_id = <2>; + }; + + kdrv_rpc: cc@f0090000 { + compatible = "kdrv_rpc"; + reg = <0xf0090000 0x300>; + interrupts = <0 59 4>; + }; + + mmc0: mmc@f0420000 { + compatible = "nvt,nvt_mmc"; + reg = <0xf0420000 0x1000>; + interrupts = <0 30 4>; + max-frequency = <48000000>; + voltage-switch = <0>; + max-voltage = <3300>; + bus-width = <4>; + neg-sample-edge = <0>; + driving = <15 15 15 20 15 15 25 25 25 25 25 25>; + cd_gpio = <(9) 0x0 0x0>; + card_power_gpio = <(7 + 0x20) 0x0>; + + + }; + + mmc1: mmc@f0500000 { + compatible = "nvt,nvt_mmc2"; + reg = <0xf0500000 0x1000>; + interrupts = <0 31 4>; + max-frequency = <48000000>; + voltage-switch = <0>; + max-voltage = <3300>; + bus-width = <4>; + neg-sample-edge = <0>; + driving = <15 8 8 20 8 8 20 8 8 20 8 8>; + cd_gpio = <0 0x0 0x1>; + + + + }; + + nand: nand@f0400000 { + #address-cells = <2>; + #size-cells = <2>; + compatible = "nvt,nvt_spinand"; + reg = <0xf0400000 0x1000>; + interrupts = <0 29 4>; + clock-frequency = <96000000>; + nvt-devname = "spi_nand.0"; + }; + + nor: nor@f0400000 { + #address-cells = <2>; + #size-cells = <2>; + compatible = "nvt,nvt_spinor"; + reg = <0xf0400000 0x1000>; + interrupts = <0 29 4>; + clock-frequency = <120000000>; + nvt-devname = "spi_nor.0"; + trace-stdtable = <0>; + }; + + gpio: gpio@f0070000 { + compatible = "nvt,nvt_gpio"; + reg = <0xf0070000 0x10000>; + interrupts = <0 24 4>; + #gpio-cells = <2>; + }; + + eth@f02b0000 { + compatible = "nvt,synopsys_eth"; + reg = <0xf02b0000 0x3800>; + interrupts = <0 34 4>; + sp-clk = <0>; + ref-clk-out = <0>; + }; + + phy@f02b3800 { + compatible = "nvt,eth_phy"; + reg = <0xf02b3800 0x400>; + }; + + wdt@f0050000 { + compatible = "nvt,nvt_wdt"; + reg = <0xf0050000 0x10000>; + interrupts = <0 57 4>; + }; + + pwm: pwm@f0210000 { + compatible = "nvt,nvt_kdrv_pwm"; + reg = <0xf0210000 0x2000>; + interrupts = <0 26 4>; + }; + + adc@f0260000 { + compatible = "nvt,nvt_adc"; + reg = <0xf0260000 0x1000>; + interrupts = <0 47 4>; + #io-channel-cells = <1>; + }; + + rtc@f0060000 { + compatible = "nvt,nvt_rtc"; + reg = <0xf0060000 0x100>; + interrupts = <0 56 4>; + }; + + drtc@f00b0000 { + compatible = "nvt,nvt_drtc"; + reg = <0xf00b0000 0x100>; + }; + + crypto: crypto@f0620000 { + compatible = "nvt,nvt_crypto"; + reg = <0xf0620000 0x100>; + interrupts = <0 38 4>; + mclk = <1>; + }; + + hash: hash@f0670000 { + compatible = "nvt,nvt_hash"; + reg = <0xf0670000 0x100>; + interrupts = <0 28 4>; + mclk = <1>; + }; + + rsa: rsa@f06a0000 { + compatible = "nvt,nvt_rsa"; + reg = <0xf06a0000 0x100>; + interrupts = <0 20 4>; + mclk = <1>; + }; + + top: top@f0010000 { + compatible = "nvt,nvt_top"; + reg = <0xf0010000 0x2000 + 0xf0030000 0x2000 + 0xf0070000 0x10000>; + }; + + sie@f0c00000 { + compatible = "nvt,drv_sie"; + reg = <0xf0c00000 0x900 + 0xf0d20000 0x900 + 0xF0D30000 0x900>; + interrupts = <0 1 4 + 0 2 4 + 0 3 4>; + + }; + + tge@f0cc0000 { + compatible = "nvt,kdrv_tge"; + reg = <0xf0cc0000 0x150>; + interrupts = <0 22 4>; + }; + + rhe@f0ce0000 { + compatible = "nvt,kdrv_rhe"; + reg = <0xf0ce0000 0x900>; + interrupts = <0 13 4>; + }; + + ime@f0c40000 { + compatible = "nvt,kdrv_ime"; + reg = <0xf0c40000 0x1000>; + interrupts = <0 6 4>; + }; + + ife2@f0d00000 { + compatible = "nvt,kdrv_ife2"; + reg = <0xf0d00000 0x100>; + interrupts = <0 9 4>; + }; + + ise@f0c90000 { + compatible = "nvt,kdrv_ise"; + reg = <0xf0c90000 0x100>; + interrupts = <0 21 4 + 0 85 4>; + }; + + ipe@f0c30000 { + compatible = "nvt,kdrv_ipe"; + reg = <0xf0c30000 0x900>; + interrupts = <0 5 4>; + }; + + ife@f0c70000 { + compatible = "nvt,kdrv_ife"; + reg = <0xf0c70000 0x800>; + interrupts = <0 8 4>; + }; + + vpe@f0cd0000 { + compatible = "nvt,kdrv_vpe"; + reg = <0xf0cd0000 0x1040>; + interrupts = <0 62 4>; + }; + + ai@f0c60000 { + compatible = "nvt,kdrv_ai"; + reg = <0xf0c60000 0x23c + 0xf0d50000 0x114 + 0xf0cb0000 0x22c>; + interrupts = <0 14 4 + 0 13 4 + 0 11 4>; + clock-frequency = <600000000 480000000 600000000>; + }; + + md@f0c10000 { + compatible = "nvt,kdrv_md"; + reg = <0xf0c10000 0x150>; + interrupts = <0 46 4>; + clock-frequency = <240000000>; + }; + dis@f0c50000 { + compatible = "nvt,kdrv_dis"; + reg = <0xf0c50000 0x114>; + interrupts = <0 10 4>; + }; + + coe@f0a11000 { + compatible = "nvt,nvt_coe"; + reg = <0xf0a11000 0x2c0>; + }; + + dce@f0c20000 { + compatible = "nvt,kdrv_dce"; + reg = <0xf0c20000 0x650>; + interrupts = <0 7 4>; + }; + + ive@f0d70000 { + compatible = "nvt,kdrv_ive"; + reg = <0xf0d70000 0x6c>; + interrupts = <0 53 4>; + }; + + sde@f0d90000 { + compatible = "nvt,kdrv_sde"; + reg = <0xf0d90000 0x90>; + interrupts = <0 74 4>; + }; + + ide@f0800000 { + compatible = "nvt,nvt_ide"; + reg = <0xf0800000 0x1000>; + interrupts = <0 48 4>; + }; + + dsi@f0840000 { + compatible = "nvt,nvt_dsi"; + reg = <0xf0840000 0x1000>; + interrupts = <0 50 4>; + }; + + csi@f0280000 { + compatible = "nvt,nvt_csi"; + reg = <0xf0280000 0x100 + 0xf0330000 0x100>; + interrupts = <0 54 4 + 0 55 4>; + }; + + lvds@f0270000 { + compatible = "nvt,nvt_lvds"; + reg = <0xF0270000 0x200 + 0xF0370000 0x200>; + interrupts = <0 54 4 + 0 55 4>; + }; + + senphy@f06b0000 { + compatible = "nvt,nvt_senphy"; + reg = <0xF06B0000 0x100>; + }; + + ssenif@f0xx0000 { + compatible = "nvt,nvt_ssenif"; + reg = <0xF02C0000 0x2000>; + interrupts = <0 61 4>; + }; + + sif@f0240000 { + compatible = "nvt,nvt_sif"; + reg = <0xf0240000 0x200>; + interrupts = <0 40 4>; + clock-frequency = <1000000>; + }; + + graphic@f0c80000 { + compatible = "nvt,nvt_graphic"; + reg = <0xF0C80000 0x300 + 0xF0D10000 0x100>; + interrupts = <0 18 4 + 0 19 4>; + }; + + affine@f0ca0000 { + compatible = "nvt,nvt_affine"; + reg = <0xF0CA0000 0x100>; + interrupts = <0 52 4>; + }; + + h26x@f0a10000 { + compatible = "nvt,nvt_h26x"; + reg = <0xf0a10000 0xa00>; + interrupts = <0 16 4>; + power_saving = <0>; + }; + + timer@f0040000 { + compatible = "nvt,nvt_timer"; + reg = <0xf0040000 0x300>; + interrupts = <0 0 4>; + }; + + eac@f0640000 { + compatible = "nvt,nvt_eac"; + reg = <0xF0640000 0x200>; + }; + + jpg@f0a00000 { + compatible = "nvt,nvt_jpg"; + reg = <0xf0a00000 0x100>; + interrupts = <0 17 4>; + }; + + nvt_usb2host@f0600000 { + compatible = "nvt,ehci-nvtivot"; + reg = <0xf0600000 0x10000>; + interrupts = <0 27 4>; + }; + + nvt_usb2dev@f0600000 { + compatible = "nvt,fotg200_udc"; + reg = <0xf0600000 0x10000>; + interrupts = <0 27 4>; + }; + + nvt_usb_chrg@f0600000 { + compatible = "nvt,nvt_usb_chrgdet"; + reg = <0xf0600000 0x10000>; + }; + + dai@f0630000 { + compatible = "nvt,nvt_dai"; + reg = <0xF0630000 0xbc>; + interrupts = <0 15 4>; + }; + + rotate@f0cf0000 { + compatible = "nvt,nvt_rotation"; + reg = <0xF0CF0000 0x100>; + interrupts = <0 81 4>; + }; + + drvdump@0 { + compatible = "nvt,nvt_drvdump"; + }; + + dsp@f1430000 { + compatible = "nvt,nvt_dsp"; + reg = <0xF1430000 0x200 + 0xF2000000 0x1000000 + 0xF1440000 0x200 + 0xF3000000 0x1000000>; + interrupts = <0 76 4 + 0 77 4>; + }; + + spi0: spi@f0230000 { + compatible = "nvt,nvt_spi"; + reg = <0xf0230000 0x10000>; + interrupts = <0 35 4>; + dma-support = <0>; + nvt-devname = <0>; + }; + + spi1: spi@f0320000 { + compatible = "nvt,nvt_spi"; + reg = <0xf0320000 0x10000>; + interrupts = <0 36 4>; + dma-support = <0>; + nvt-devname = <1>; + }; + + spi2: spi@f0340000 { + compatible = "nvt,nvt_spi"; + reg = <0xf0340000 0x10000>; + interrupts = <0 37 4>; + dma-support = <0>; + nvt-devname = <2>; + }; + + sdp@f0390000 { + compatible = "nvt,nvt_sdp"; + reg = <0xf0390000 0x28>; + interrupts = <0 12 4>; + }; + + tse@f0650000 { + compatible = "nvt,nvt_tse"; + reg = <0xF0650000 0x90>; + interrupts = <0 23 4>; + }; + + remote@f0250000 { + compatible = "nvt,nvt_remote"; + reg = <0xf0250000 0x28>; + interrupts = <0 25 4>; + }; + + rng: rng@f0680000 { + compatible = "nvt,nvt_rng"; + reg = <0xf0680000 0x100>; + }; + + nvt_arb@f0000000 { + compatible = "nvt,nvt_arb"; + reg = <0xF0000000 0xA000 + 0xF0FE0000 0x300>; + interrupts = <0 33 4>; + }; + + nvt_otp@f0660000 { + compatible = "nvt,nvt_otp"; + reg = <0xF0660000 0x70>; + }; + + kdrv_ipp { + clock-frequency = <240000000>; + }; + + uvcp: uvcp@f0690000 { + compatible = "nvt,nvt_uvcp"; + reg = <0xf0690000 0x200>; + interrupts = <0 59 4>; + }; + pll_preset@0 { + pll3{pll_config = <3 0 0>;}; + pll4{pll_config = <4 0 0>;}; + pll5{pll_config = <5 297000000 1>;}; + pll6{pll_config = <6 0 0>;}; + pll7{pll_config = <7 0 0>;}; + pll8{pll_config = <8 0 0>;}; + pll9{pll_config = <9 0 0>;}; + pll11{pll_config = <11 0 0>;}; + pll12{pll_config = <12 0 1>;}; + }; +}; +# 11 "nvt-evb.dts" 2 +# 1 "nvt-top.dtsi" 1 +&top { + sdio{pinmux = <0x5>;}; + sdio2{pinmux = <0x5>;}; + sdio3{pinmux = <0x0>;}; + nand{pinmux = <0x5>;}; + sensor{pinmux = <0x0>;}; + sensor2{pinmux = <0x0>;}; + mipi_lvds{pinmux = <0x0>;}; + i2c{pinmux = <0x40>;}; + sif{pinmux = <0x0>;}; + uart{pinmux = <0x1021>;}; + spi{pinmux = <0x0>;}; + sdp{pinmux = <0x0>;}; + remote{pinmux = <0x0>;}; + pwm{pinmux = <0x8000>;}; + pwm2{pinmux = <0x000000>;}; + ccnt{pinmux = <0x0>;}; + audio{pinmux = <0x0>;}; + lcd{pinmux = <0x0>;}; + tv{pinmux = <0x0>;}; + eth{pinmux = <0x0>;}; + misc{pinmux = <0x0>;}; +}; +# 12 "nvt-evb.dts" 2 +# 1 "nvt-i2c.dtsi" 1 + + + + + + + +/ { + i2c0: i2c@f0220000 { compatible = "nvt,nvt_i2c"; reg = <0xf0220000 0x100>; interrupts = <0 41 4>; clock-frequency = <1000000>; id = <0>; }; + i2c1: i2c2@f0350000 { compatible = "nvt,nvt_i2c"; reg = <0xf0350000 0x100>; interrupts = <0 42 4>; clock-frequency = <1000000>; id = <1>; }; + i2c2: i2c3@f03a0000 { compatible = "nvt,nvt_i2c"; reg = <0xf03a0000 0x100>; interrupts = <0 60 4>; clock-frequency = <50000>; id = <2>; }; +}; +# 13 "nvt-evb.dts" 2 +# 1 "nvt-gpio.dtsi" 1 +&top { +# 201 "nvt-gpio.dtsi" + pgpio11{gpio_config = <(11 + 0x20) 1>;}; + + pgpio2{gpio_config = <(2 + 0x20) 1>;}; +}; +# 14 "nvt-evb.dts" 2 +# 1 "nvt-peri-dev.dtsi" 1 +# 11 "nvt-peri-dev.dtsi" +&i2c0 { + #address-cells = <1>; + #size-cells = <0>; + + + + + + +}; + +&i2c1 { + #address-cells = <1>; + #size-cells = <0>; +}; + +&i2c2 { + #address-cells = <1>; + #size-cells = <0>; +}; + +&spi0 { + status = "okay"; + #address-cells = <1>; + #size-cells = <0>; +# 44 "nvt-peri-dev.dtsi" +}; + +&spi1 { + status = "okay"; +}; + +&spi2 { + status = "okay"; +}; +# 15 "nvt-evb.dts" 2 +# 1 "nvt-audio.dtsi" 1 + + + + + + + +/ { + audio@1 { type = "none"; i2s_ctrl = <0>; sif_channel = <0>; gpio_cold_reset = <0>; gpio_data = <0>; gpio_clk = <0>; gpio_cs = <0>; adc_zero = <0>; }; + audio@2 { type = "embedded"; i2s_ctrl = <4>; sif_channel = <0>; gpio_cold_reset = <0>; gpio_data = <0>; gpio_clk = <0>; gpio_cs = <0>; adc_zero = <0>; }; +}; +# 16 "nvt-evb.dts" 2 +# 1 "nvt-display.dtsi" 1 + + + + + + + +# 1 "/home/payton/S530/BSP/linux-kernel/include/dt-bindings/pinctrl/nvt_lcd.h" 1 +# 9 "nvt-display.dtsi" 2 +# 25 "nvt-display.dtsi" +/ { + display { type = "lcd"; lcd_ctrl = <1>; sif_channel = <4>; gpio_cs = <(7 + 0x20)>; gpio_clk = <(8 + 0x20)>; gpio_data = <(9 + 0x20)>; }; + logo { enable = <1>; lcd_type = <5>; lcd_rotate = <270>; lcd_reset = <(1 + 0x60)>; lcd_bl_gpio = <(11 + 0x20) 1>; lcd_power = <(8 + 0x20) 1>;}; +}; +# 17 "nvt-evb.dts" 2 +# 1 "nvt-media.dtsi" 1 +# 10 "nvt-media.dtsi" +# 1 "nvt-basic.dtsi" 1 +# 11 "nvt-basic.dtsi" +/ { + model = "Novatek NA51089"; + compatible = "novatek,na51089", "nvt,ca9"; + interrupt-parent = <&gic>; + #address-cells = <1>; + #size-cells = <1>; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0x0>; + next-level-cache = <&L2>; + clock-frequency = <960000000>; + }; + }; + + cg@f0020000 { + compatible = "nvt,core_clk"; + reg = <0xf0020000 0x1000>; + }; + + + periph_clk: periph_clk { + compatible = "nvt,periph_clk"; + #clock-cells = <0>; + clock-output-names = "periph_clk"; + }; + + global_timer@ffd00200 { + compatible = "arm,cortex-a9-global-timer"; + reg = <0xffd00200 0x20>; + interrupts = <1 11 0xf01>; + clocks = <&periph_clk>; + }; + + private_timer@ffd00600 { + compatible = "arm,cortex-a9-twd-timer"; + reg = <0xffd00600 0x20>; + interrupts = <1 13 0xf01>; + clocks = <&periph_clk>; + }; + + pmu { + compatible = "arm,cortex-a9-pmu"; + interrupts = <0 112 4>; + interrupt-affinity = <&cpu0>; + }; + + L2: cache-controller@ffe00000 { + compatible = "arm,pl310-cache"; + reg = <0xffe00000 0x1000>; + interrupts = <0 96 4>; + cache-unified; + arm,shared-override; + cache-level = <2>; + arm,data-latency = <2 2 2>; + arm,tag-latency = <2 2 2>; + }; + + gic: interrupt-controller@0xffd00000 { + compatible = "arm,cortex-a9-gic"; + #interrupt-cells = <3>; + interrupt-controller; + reg = <0xffd01000 0x1000>, + <0xffd00100 0x1000>; + }; + + scu: snoop-control-unit@0xffd00000 { + compatible = "arm,cortex-a9-scu"; + reg = <0xffd00000 0x100>; + }; +}; +# 11 "nvt-media.dtsi" 2 + +/ { + nvtmpp { + compatible = "nvt,nvtmpp"; + }; + + isf_stream { + compatible = "nvt,isf_stream"; + }; + + isf_flow { + compatible = "nvt,isf_flow"; + }; + + isf_vdocap { + compatible = "nvt,isf_vdocap"; + }; + + isf_vdoprc { + compatible = "nvt,isf_vdoprc"; + }; + + isf_dummy { + compatible = "nvt,isf_dummy"; + }; + + isf_vdoenc { + compatible = "nvt,isf_vdoenc"; + }; + + isf_vdodec { + compatible = "nvt,isf_vdodec"; + }; + + isf_vdoout { + compatible = "nvt,isf_vdoout"; + }; + + dispobj { + compatible = "nvt,nvt_dispobj"; + }; + + dispdev { + compatible = "nvt,nvt_dispdev"; + }; + + audio { + compatible = "nvt,nvt_audio"; + }; + + msdcnvt { + compatible = "nvt,msdcnvt"; + }; + + msdcnvt_adj { + compatible = "nvt,msdcnvt_adj"; + }; + + msdcnvt_custom_si { + compatible = "nvt,msdcnvt_custom_si"; + }; + + wavstudio { + compatible = "nvt,wavstudio"; + }; + + isf_audenc { + compatible = "nvt,isf_audenc"; + }; + + isf_auddec { + compatible = "nvt,isf_auddec"; + }; + + isf_audcap { + compatible = "nvt,isf_audcap"; + }; + + isf_audout { + compatible = "nvt,isf_audout"; + }; + + nvt_ipc { + compatible = "nvt,nvt_ipc"; + }; +}; +# 18 "nvt-evb.dts" 2 +# 1 "nvt-mem-tbl.dtsi" 1 + + + + + + +/ { + + nvt_memory_cfg { + #address-cells = <1>; + #size-cells = <1>; + dram { reg = <0x00000000 0x08000000>; }; + shmem{ reg = <0x00007E00 0x00000200>; }; + loader { reg = <0x01000000 0x00080000>; }; + fdt { reg = <0x01800000 0x00040000>; }; + rtos { reg = <0x01840000 0x00FC0000>; }; + linuxtmp{ reg = <0x02800000 0x04000000>; }; + uboot{ reg = <0x06800000 0x01640000>; }; + logo-fb{ reg = <0x07E40000 0x001C0000>; }; + }; + + + memory { device_type = "memory"; reg = <0x00000000 0x01800000 0x02000000 0x01600000>; }; + + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + }; + + + + + + + libc-heap { size = <0x00200000>; }; + + hdal-memory { + #address-cells = <1>; + #size-cells = <1>; + media { reg = <0x03600000 0x04A00000>; }; + }; + + hdal-maxpath-cfg { + + vdocap_active_list = <1 0 0 0 0 0 0 0>; + vdoprc_maxdevice = <2>; + vdoenc_maxpath = <4>; + vdodec_maxpath = <3>; + vdoout_maxdevice = <1>; + adocap_maxdevice = <1>; + adoout_maxdevice = <2>; + adoenc_maxpath = <1>; + adodec_maxpath = <1>; + + gfx_maxjob = <2>; + + stamp_maximg = <9>; + + vdoprc_maxstamp = <4 4>; + + vdoprc_maxmask = <4 4>; + vdoenc_maxstamp = <9 9>; + vdoenc_maxmask = <0 64>; + vdoout_maxstamp = <0 16>; + vdoout_maxmask = <0 64>; + }; +}; +# 19 "nvt-evb.dts" 2 +# 1 "nvt-storage-partition.dtsi" 1 + + + + + + + +&nor { + partition_loader { label = "loader"; reg = <0x0 0x0000000 0x0 0x10000>; }; + partition_fdt { label = "fdt"; reg = <0x0 0x10000 0x0 0x10000>; }; + partition_fdt.restore { label = "fdt.restore"; reg = <0x0 0x20000 0x0 0x10000>; }; + partition_fdt.app { label = "fdt.app"; reg = <0x0 0x30000 0x0 0x20000>; }; + partition_uboot { label = "uboot"; reg = <0x0 0x50000 0x0 0xA0000>; }; + partition_uenv { label = "uenv"; reg = <0x0 0xF0000 0x0 0x10000>; }; + partition_kernel { label = "kernel"; reg = <0x0 0x100000 0x0 0x290000>; }; + partition_rootfs { label = "rootfs"; reg = <0x0 0x390000 0x0 0x3E0000>; }; + partition_rootfs1 { label = "rootfs1"; reg = <0x0 0x770000 0x0 0xB00000>; }; + partition_rtos { label = "rtos"; reg = <0x0 0x1270000 0x0 0x900000>; }; + partition_app { label = "app"; reg = <0x0 0x1B70000 0x0 0x50000>; }; + partition_sys { label = "sys"; reg = <0x0 0x1CC0000 0x0 0x10000>; }; + partition_all { label = "all"; reg = <0x0 0x0000000 0x0 0x2000000>; }; +}; +# 20 "nvt-evb.dts" 2 +# 1 "nvt-info.dtsi" 1 + + + + + + + +/ { + nvt_info { + BIN_NAME = "FW98565A"; + BIN_NAME_T = "FW98565T"; + RTOS_APP_MAIN = "cardv"; + + EMBMEM_BLK_SIZE = "0x10000"; +# 24 "nvt-info.dtsi" + EMBMEM = "EMBMEM_SPI_NOR"; +# 34 "nvt-info.dtsi" + FW_TYPE = "FW_TYPE_PARTIAL"; + + + + + + UI_STYLE = "UI_STYLE_LVGL"; + + + + + + NVT_CFG_APP_EXTERNAL = "hostapd wireless_tool iperf-3 wpa_supplicant dhd_priv"; + + NVT_CFG_APP = "mem cardv memcpy isp_demon sf_app"; + + NVT_ROOTFS_ETC = ""; + + NVT_BINARY_FILE_STRIP = "yes"; + + NVT_CFG_KERNEL_CFG = "na51089_evb_cardv_defconfig_release"; + + NVT_MAKE_POST = "make_post.sh"; + + NVT_SAMPLES_INSTALL = "DISABLE"; + + NVT_CFG_UBOOT_CFG = ""; + + + + + + + + NVT_LINUX_SMP = "NVT_LINUX_SMP_OFF"; + + + + + + + + NVT_CHIP_ID = "CHIP_NA51089"; + + + + + + + + NVT_LINUX_COMPRESS = "NVT_LINUX_COMPRESS_GZ"; + + + + + + + + NVT_DEFAULT_NETWORK_BOOT_PROTOCOL = "NVT_DEFAULT_NETWORK_BOOT_PROTOCOL_STATIC_IP"; +# 103 "nvt-info.dtsi" + NVT_ROOTFS_TYPE = "NVT_ROOTFS_TYPE_RAMDISK"; +# 113 "nvt-info.dtsi" + LCD1 = "disp_if8b_lcd1_psd200_st7789v"; +# 126 "nvt-info.dtsi" + SENSOR1 = "sen_os05b10"; + SENSOR1_CFG = "sen_os05b10_565"; + SENSOR2 = "sen_off"; + SENSOR2_CFG = "sen_off"; + + + + + + NVT_ROOTFS_RW_PART_EN = "NVT_ROOTFS_RW_PART_EN_ON"; + + + + + + + NVT_ETHERNET = "NVT_ETHERNET_NONE"; +# 151 "nvt-info.dtsi" + NVT_SDIO_WIFI = "NVT_SDIO_WIFI_RTK"; + + + + + + NVT_USB_WIFI = "NVT_USB_WIFI_NONE"; + + + + + + NVT_USB_4G = "NVT_USB_4G_NONE"; + + + + + + + WIFI_RTK_MDL = "WIFI_RTK_MDL_8189"; + + + + + + + + WIFI_BRCM_MDL = "WIFI_BRCM_MDL_43456c5_ampk6256c5"; + + + + + + + WIFI_NVT_MDL = "WIFI_NVT_MDL_18211"; + + + + + + + NVT_CURL_SSL = "NVT_CURL_SSL_OPENSSL"; +# 201 "nvt-info.dtsi" + NVT_UBOOT_ENV_IN_STORG_SUPPORT = "NVT_UBOOT_ENV_IN_STORG_SUPPORT_OFF"; + + + + + + + TOUCH = "TOUCH_OFF"; + + + + + + + UBOOT_ONLY_LOAD_LINUX = "UBOOT_ONLY_LOAD_LINUX_ON"; + + }; +}; +# 21 "nvt-evb.dts" 2 +# 1 "nvt-nvtpack.dtsi" 1 + + + + + + + +&nor { + + + + + nvtpack { + ver = "NVTPACK_FW_INI_16072017"; + method = <1>; + index { + id0 { partition_name = "loader"; source_file = ""; }; + id1 { partition_name = "fdt"; source_file = "nvt-evb.bin"; }; + id2 { partition_name = "fdt.restore"; source_file = ""; }; + id3 { partition_name = "fdt.app"; source_file = "../application.bin"; }; + id4 { partition_name = "uboot"; source_file = "u-boot.bin"; }; + id5 { partition_name = "uenv"; source_file = ""; }; + id6 { partition_name = "kernel"; source_file = "uImage.bin"; }; + id7 { partition_name = "rootfs"; source_file = "rootfs.ramdisk.bin"; }; + id8 { partition_name = "rootfs1"; source_file = "rootfs_1.squash.bin"; }; + id9 { partition_name = "rtos"; source_file = "../rtos-main.bin"; }; + id10 { partition_name = "app"; source_file = "appfs.cardv.jffs2.nor.bin"; }; + id11 { partition_name = "sys"; source_file = ""; }; + }; + }; +}; +# 21 "nvt-evb.dts" 2 diff --git a/loader/ARC/Lib/Release/Ctrl_Flow.a b/loader/ARC/Lib/Release/Ctrl_Flow.a new file mode 100644 index 000000000..165664bf9 Binary files /dev/null and b/loader/ARC/Lib/Release/Ctrl_Flow.a differ diff --git a/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/bl_func.o b/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/bl_func.o new file mode 100644 index 000000000..fb274ccc8 Binary files /dev/null and b/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/bl_func.o differ diff --git a/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/bl_u2.o b/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/bl_u2.o new file mode 100644 index 000000000..72f9d8559 Binary files /dev/null and b/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/bl_u2.o differ diff --git a/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/main.o b/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/main.o new file mode 100644 index 000000000..af3ea2456 Binary files /dev/null and b/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/main.o differ diff --git a/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/nand_ids.o b/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/nand_ids.o new file mode 100644 index 000000000..99eb239bf Binary files /dev/null and b/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/nand_ids.o differ diff --git a/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/spi_nor_ids.o b/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/spi_nor_ids.o new file mode 100644 index 000000000..6161e8c58 Binary files /dev/null and b/loader/LibExt/LIBExt_src/Ctrl_Flow/Ctrl_Flow_Data/Release/ObjectCode/spi_nor_ids.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/LD98565A.bin b/loader/Project/Model/Loader565_Data/Release/LD98565A.bin new file mode 100755 index 000000000..eaaf07da2 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/LD98565A.bin differ diff --git a/loader/Project/Model/Loader565_Data/Release/Loader565.axf b/loader/Project/Model/Loader565_Data/Release/Loader565.axf new file mode 100755 index 000000000..f20b50033 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/Loader565.axf differ diff --git a/loader/Project/Model/Loader565_Data/Release/Loader565.sym b/loader/Project/Model/Loader565_Data/Release/Loader565.sym new file mode 100644 index 000000000..085844acc --- /dev/null +++ b/loader/Project/Model/Loader565_Data/Release/Loader565.sym @@ -0,0 +1,377 @@ +00000068 A _loader_dram_text_size +000000b8 A _loader_data_size +00000388 A _loader_exec_size +000024d8 A _loader_exec_compress_load_base +01000000 T _internal_strg_param_start +01000000 T _loader_exec_compres_start +01000000 t prj_isFastbootKeyPressed +01000010 t prj_checkCardExist +01000024 t prj_isSpecialKeyPressed +01000058 T debug_disable_msg +01000064 T prj_main +01000164 T gpio_getPin +0100018c T Dec2HexStr +010001c4 T Dec2HexStr2Bytes +01000224 T utl_memset +0100027e T utl_memcpy +010002f4 T strlen +01000308 T strnlen +01000322 T strncpy +0100033e T strncmp +01000362 T strchr +0100037e T memcmp +0100039e T strcmp +010003b8 T memchr +0100044c t bl_decompress_rtos +01000474 t bl_get_partition_fdt_offset.part.1 +010004d0 t bl_load_rtos_from_non_nvtpack.isra.4.constprop.13 +010005bc t bl_get_fdt_nvt_memory_cfg_property.constprop.15 +01000628 t bl_get_fdt_cfg +01000784 t bl_update_loader_flag +01000844 t bl_entry_boot +010008d8 t bl_boot_teeos +01000920 t bl_get_fdt_partition_property +01000970 t bl_get_partition +01000a6c t bl_load_uboot_from_flash +01000c20 T bl_flash_open +01000c94 T bl_chk_valid_all_in_one +01000cb8 T bl_chk_fdt +01000d8c T bl_chk_uboot +01000db4 t bl_load_uboot_from_all_in_one +01000ed8 T bl_copy_fdt_to_fdt_addr +01000f20 t bl_load_fdt_from_flash.constprop.9 +01000fc0 T bl_boot_uboot +010010b4 T bl_process_all_in_one +01001364 T bl_read_rtos_addr +01001384 T bl_mainFlow +01001dc0 T loader_setUpdateFwName +01001dd4 T loader_setUpdateLdrName +01001de8 T loader_setRunFwName +01001dfc T loader_setVersion +01001e0c T loader_installSpecialKeyCB +01001e1c T loader_installCardDetectCB +01001e2c T loader_installFastbootKeyCB +01001e3c T loader_setStorageIntType +01001e50 t nvtpack_get_uitron_offset +01001ec4 T nvtpack_calc_nvt_sum +01001ee8 T nvtpack_getver +01001f70 T nvtpack_verify +01002060 T nvtpack_get_partition +01002140 T fdt_check_header +01002190 T fdt_offset_ptr +010021c0 T fdt_next_tag +0100226c T _fdt_check_node_offset +01002294 T _fdt_check_prop_offset +010022bc T fdt_next_node +01002330 T fdt_first_subnode +0100235e T fdt_next_subnode +01002394 t _fdt_offset_ptr +010023b0 t _fdt_mem_rsv +010023cc t _nextprop +01002404 T fdt_string +01002412 T fdt_num_mem_rsv +01002438 T fdt_subnode_offset_namelen +010024c0 T fdt_subnode_offset +010024de T fdt_get_name +01002520 T fdt_first_property_offset +01002538 T fdt_next_property_offset +01002550 T fdt_get_property_by_offset +01002580 T fdt_get_property_namelen +010025f4 T fdt_get_property +01002620 T fdt_getprop_namelen +01002638 T fdt_getprop_by_offset +01002660 T fdt_getprop +0100268c T fdt_get_alias_namelen +010026bc T fdt_path_offset +0100274c T fdt_check_full +01002818 t cpu_l2_cache_wait_sync_done +0100282c T cpu_invalidateDCacheBlock +01002880 T cpu_cleanDCacheBlock +010028c4 T cpu_cleanInvalidateDCache +010028e4 T CPUflushReadCache +01002922 T CPUflushWriteCache +0100294c t SMHostSendCommand +01002968 t flash_close +010029a0 t flash_getBlockSize +010029aa t flash_setReservedAreaMaxBlockNumber +010029b0 t flash_getTotalSize +010029c0 t flash_installAccessCB +010029d0 t flash_installIdentifyCB +010029e0 t flash_setConfig +010029fc t flash_setFrequency +01002a7c t SMHostGetStatus.constprop.3 +01002a98 t spiflash_waitReady +01002adc t spi_nor_send_cmd +01002b08 t spiflash_enableWriteLatch +01002b14 t sm_card_host_setup_address_cycle.constprop.5 +01002b2c t spiFlash_eraseSector +01002b74 t spiflash_setStatus +01002bb8 t flash_setReservedBadBlockNumber +01002bc0 t flash_open +01002f10 t spiFlash_write +01003148 t flash_writePartition +01003170 t flash_writeSectors +01003184 t flash_readSectors +01003458 T nor_get_storage_object +0100346c t SDHostGetStatus +01003494 t SDHostDataCommand +0100353c t SDHostSimpleCommand +010035bc t CardReadSector +0100367c T card_open +010038e0 T card_close +01003900 T card_get_type +01003908 T dma_get_dram_capacity +01003930 T quary_secure_boot +0100396c t fat_getclusterstatus +01003a90 t fat_getnextcluster +01003bc8 t fat_getmaxclusternumber +01003bf4 t fat_getnextdir_entry +01003c2c t fat_getfirstdir_entry +01003c54 t fat_getdir_sectornumber +01003c84 T fat_regfilesystem +01003ca8 T fat_internal_mount_partition +01004010 T fat_internal_initFAT +010040ac T fat_internal_open_rootfile +01004350 T fat_internal_read_rootfile +010043ec T fat_internal_close_rootfile +0100440c T fat_initFAT +01004424 T fat_open_rootfile +0100443c T fat_read_rootfile +01004454 T fat_close_rootfile +01004468 T atoi +01004494 t .udivsi3_skip_div0_test +01004494 T __aeabi_uidiv +01004494 T __udivsi3 +01004680 T __aeabi_uidivmod +010046a0 T __aeabi_idiv +010046a0 T __divsi3 +010046a8 t .divsi3_skip_div0_test +010048c0 T __aeabi_idivmod +010048e0 W __aeabi_idiv0 +010048e0 W __aeabi_ldiv0 +010048e4 T __aeabi_uldivmod +01004920 T __popcountsi2 +01004968 T __udivmoddi4 +01004a90 t __set_usb_suspend_veneer +01004a98 t __debug_msg_veneer +01004aa0 t __debug_err_var_veneer +01004aa8 t __UTL_getDrvTmpBufferAddress_from_thumb +01004ab0 t __rom_efuse_read_from_thumb +01004ab8 t __timer_delay_veneer +01004ac0 t __fLib_PutSerialChar_veneer +01004ac8 t __utl_is_sram_fw_from_thumb +01004ad0 t __CPUInvalidateICacheAll_veneer +01004ad8 t __UTL_setDrvTmpBufferAddress_from_thumb +01004ae0 t __utl_get_bootsrc_veneer +01004ae8 t __rom_LZ_Uncompress_from_thumb +01004af0 t __cpu_cleanInvalidateDCacheAll_veneer +01004af8 t __debug_err_veneer +01004b00 t __fLib_PutSerialStr_veneer +01004b08 t __debug_msg_var_veneer +01004b10 T _loader_exec_compres_end +010055ac r GUID_FW2 +010055bc r GUID_FW +010055cc r GUID_RES +01005860 T _loader_dram_text_start_base +01005860 T load_dram_scan +010058c0 t __debug_msg_veneer +010058c8 D _image_general_var_base +010058c8 D _load_general_var_base +010058c8 D _loader_data_start_base +010058c8 d nodeoffset.5193 +010058cc d nodeoffset_nvt_memory_cfg.5116 +010058d0 d RWErrorMsg +010058e0 d g_uiStartBlkUpdateFW +010058e4 d UPDATE_LOADER_NAME +010058f1 d UPDATE_FW_NAME +010058fe d RUN_FW_NAME +0100590b d LoaderErrorMsg +01005921 d FWErrorMsg +01005933 d RECOVERY_FW_NAME +01005940 d guiSpiClkDiv +01005944 D spi_nor +0100597c d uiBufAddr +01005980 D _image_general_var_limit +010059c0 B _image_general_zi_zi_base +010059c0 B gStr +010059d0 b gStorageIntType +010059d4 b g_dram_partition +01005a54 b g_uiVersion +01005a58 B int_strg_obj +01005a60 b g_emb_uboot +01005a80 B rom_lzma_inflate +01005a84 b g_is_flash_open +01005a88 b g_emb_teeos +01005aa8 b g_rtos_load_addr +01005aac b g_rtos_target_addr +01005ab0 b g_rtos_size +01005ab8 b g_emb_rtos +01005ad8 b gRecoveryTriggerCallBack +01005adc b gSpecialKeyCallBack +01005ae0 b gCardDetectCallBack +01005ae4 b gFastbootKeyCallBack +01005ae8 B BaseOfStack +01005aec B TopOfStack +01005af0 B lzma_temp_buffer +01015af0 b uiSpiFlashSize +01015af4 b gSpiProgramCallBack +01015af8 b gSpiIdentifyCallBack +01015afc b bQuadConfigured +01015b00 b uiQuadReadType +01015b04 b bSupportEWSR +01015b05 b bDualRead +01015b08 b b_support_RDCR +01015b0c b bQuadEnabled +01015b10 b SDContext +01015b40 b FileSys +01015d00 b vBitMapBuf +01016500 b ui32FATPages +01016504 b RootFileHandle +01016540 b TempBuf +01016740 b uiBufSize +01016744 b dbg_count +01016748 b gFatAccessCallBack +01016780 b vFatBuf +01036780 B emuCommonBuf +01036794 B currentPtr +01038000 B _ttb +0103c000 B _ttb_lv2 +0103c400 A __common_base +0103c400 A __common_limit +0103c400 A _image_general_zi_zi_limit +0103c400 B _image_load_reset_base +0103c400 B _image_load_reset_length +0103c400 B _image_load_reset_zi_base +0103c400 B _image_load_reset_zi_limit +0103c400 B _load_load_reset_base +0103c400 B _loader_heap_base +0117c400 B _stack_start +f07c0000 t PowerOnReset +f07c0000 T _load_BOOT_EXEC_start_base +f07c0004 t LDRAlign +f07c0008 t CompressBase +f07c000c t CalibrationDutyReg +f07c0010 t DDR_PARAM0 +f07c0014 t DDR_PARAM1 +f07c0018 t DDR_PARAM2 +f07c001c t DDR_PARAM3 +f07c0020 t DDR_PARAM4 +f07c0024 t LOADER_SIZE +f07c0028 T __start +f07c002c T _load_BOOT_EXEC_end_base +f07c0030 D ConfigRamTab +f07c0030 D _load_LOADER_CONFIGRAM_start_base +f07c0070 D LoaderInternalInfo +f07c0070 D _load_LOADER_CONFIGRAM_FREQ_PARAM_start_base +f07c0070 D _load_LOADER_CONFIGRAM_end_base +f07c0090 D _load_LOADER_CONFIGRAM_FREQ_PARAM_end_base +f07c0300 R g_dma_config_setting +f07c0368 R config_dram1_tbl_2_start_base +f07c0368 R g_dma_config_setting_2 +f07c0500 T _load_core2_entry_program_start_base +f07c051c t timer_init +f07c053c t wait_interrupt +f07c05e8 T _load_core2_entry_program_end_base +f07c0600 T _load_LOADER_REMAP_start_base +f07c0600 t _start +f07c0620 t _undefined_instruction +f07c0624 t _software_interrupt +f07c0628 t _prefetch_abort +f07c062c t _data_abort +f07c0630 t _irq +f07c0634 t _fiq +f07c0638 T start +f07c06fc t clearbss +f07c0710 t wait_hvy_load +f07c0730 t invTlb +f07c0768 t way_loop +f07c076c t set_loop +f07c07ec t way_loop_L2 +f07c0824 t init_ttb_dram_c1 +f07c0844 t init_ttb_so +f07c08a8 t enable_L1 +f07c0904 t INT_LOOP +f07c0908 T rom_efuse_read +f07c091c T rom_debug_msg +f07c0930 T rom_debug_msg_var +f07c0944 T rom_debug_msg_err +f07c0958 T rom_LZ_Uncompress +f07c096c T rom_Dec2HexStr +f07c0980 t false_reset +f07c09c0 t exp_halt +f07c09c4 t undefined_instruction +f07c0a08 t software_interrupt +f07c0a4c t prefetch_abort +f07c0a90 t data_abort +f07c0ad4 t irq +f07c0ad8 t fiq +f07c0b48 T EXP_Handler +f07c0b48 t EXP_LOOP +f07c0b48 T _load_LOADER_REMAP_end_base +f07c0b48 T _load_vector_exp_table_start_base +f07c0b50 T _load_vector_exp_table_end_base +f07c0b50 t apply_driving_calibration +f07c0b70 t duty_calibration.constprop.1 +f07c0d10 t issue_load_mode.constprop.2 +f07c0d2c T disable_rom_wdt +f07c0d70 T rom_memcpy +f07c0d8c T config_dma +f07c1b20 T set_usb_suspend +f07c1bec T uart0_obj +f07c1bf8 T uart1_obj +f07c1c04 T serial_putc +f07c1c20 T serial2_getc +f07c1c3c T serial2_putc +f07c1c58 T serial_getc +f07c1c74 T uart_openSystemUART +f07c1cd0 T serial_init +f07c1cdc T uart_openSystemUART2 +f07c1d3c T serial2_init +f07c1d48 T uart_getChar_polling +f07c1d78 T uart_chkChar +f07c1d98 T uart_getStr_polling +f07c1df4 T uart_getBinary +f07c1e0c T get_uart_object +f07c1e3c t m_console +f07c1e40 t debug_put_string +f07c1e68 T debug_set_console +f07c1e7c T debug_err +f07c1e94 T debug_err_var +f07c1ecc T debug_dump_addr +f07c1f38 T g_uiDrvTmpBuffer +f07c1f3c T bitCount +f07c1f4c T UTL_setDrvTmpBufferAddress +f07c1f64 T UTL_getDrvTmpBufferAddress +f07c1f7c T UTL_canUpdateSecKey +f07c1fa8 T utl_is_sram_fw +f07c1fc8 T utl_test_checksum +f07c2068 T utl_dram_protect_enable +f07c209c T utl_dram_protect_disable +f07c20b4 T utl_dram_protect_check +f07c20d8 T utl_get_bootsrc +f07c20ec T utl_get_chipversion +f07c2100 t ____popcountsi2_veneer +f07c2108 t __Dec2HexStr_veneer +f07c2150 t _loader_exec_start_base +f07c2150 T main +f07c2254 T rtc_chkS3boot_init +f07c22b0 T rtc_chkS3boot_wait_init +f07c22d0 T rtc_chkS3boot +f07c2308 T timer_delay +f07c2320 T CPUInvalidateICacheAll +f07c2338 T _cache_clean_d_cache_all +f07c2380 T _cache_invalidate_data_cache_all +f07c23c8 T cpu_invalidateDCacheAll +f07c23e2 T _cache_clean_invalidate_d_cache_All +f07c2430 T cpu_cleanInvalidateDCacheAll +f07c2450 T fLib_PutSerialChar +f07c246c T fLib_PutSerialStr +f07c2480 T debug_msg +f07c248a T debug_msg_var +f07c24b8 t __bl_mainFlow_veneer +f07c24c0 t __Dec2HexStr_veneer +f07c24c8 t __CPUflushReadCache_veneer +f07c24d0 t __bl_read_rtos_addr_veneer +f07c24d8 A _loader_exec_compress_load_cpu_addr +f07c24d8 T _loader_exec_end_base +f07c7d38 A _loader_dram_text_cpu_addr diff --git a/loader/Project/Model/Loader565_Data/Release/Loader565.txt b/loader/Project/Model/Loader565_Data/Release/Loader565.txt new file mode 100644 index 000000000..1cb4ee2cb --- /dev/null +++ b/loader/Project/Model/Loader565_Data/Release/Loader565.txt @@ -0,0 +1,511 @@ + +Loader565_Data/Release/Loader565.axf: file format elf32-littlearm +Loader565_Data/Release/Loader565.axf +architecture: arm, flags 0x00000112: +EXEC_P, HAS_SYMS, D_PAGED +start address 0xf07c0028 + +Program Header: +0x70000001 off 0x00024b10 vaddr 0x01004b10 paddr 0x00006fe8 align 2**2 + filesz 0x00000008 memsz 0x00000008 flags r-- + LOAD off 0x00010000 vaddr 0xf07c0000 paddr 0x00000000 align 2**16 + filesz 0x000024d8 memsz 0x000024d8 flags rwx + LOAD off 0x00020000 vaddr 0x01000000 paddr 0x000024d8 align 2**16 + filesz 0x00005984 memsz 0x00005984 flags rwx + LOAD off 0x000259c0 vaddr 0x010059c0 paddr 0x00007ec0 align 2**16 + filesz 0x00000000 memsz 0x00176a40 flags rw- +private flags = 5000200: [Version5 EABI] [soft-float ABI] + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .BOOT_EXEC 0000002c f07c0000 00000000 00010000 2**2 + CONTENTS, ALLOC, LOAD, CODE + 1 .LOADER_CONFIGRAM 00000060 f07c0030 00000030 00010030 2**2 + CONTENTS, ALLOC, LOAD, DATA + 2 .LOADER_CONFIGRAM2 000000d0 f07c0300 00000300 00010300 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 3 .LOADER_CORE2_ENTRY_PROGRAM 000000e8 f07c0500 00000500 00010500 2**2 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 4 .LOADER_REMAP 00001b50 f07c0600 00000600 00010600 2**3 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 5 .LOADER_EXEC 00000388 f07c2150 00002150 00012150 2**3 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 6 .text 00004b10 01000000 000024d8 00020000 2**3 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 7 .ARM.exidx 00000008 01004b10 00006fe8 00024b10 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 8 .rodata 00000d48 01004b18 00006ff0 00024b18 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 9 .dram_text 00000068 01005860 00007d38 00025860 2**3 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 10 .data 000000b8 010058c8 00007da0 000258c8 2**2 + CONTENTS, ALLOC, LOAD, DATA + 11 .dummy 00000004 01005980 00007e58 00025980 2**0 + CONTENTS, ALLOC, LOAD, DATA + 12 .bss 00036a40 010059c0 00007ec0 000259c0 2**6 + ALLOC + 13 .loader_heap 00140000 0103c400 0003e900 000259c0 2**0 + ALLOC + 14 .comment 00000074 00000000 00000000 00025984 2**0 + CONTENTS, READONLY + 15 .ARM.attributes 00000037 00000000 00000000 000259f8 2**0 + CONTENTS, READONLY + 16 .debug_frame 000000c0 00000000 00000000 00025a30 2**2 + CONTENTS, READONLY, DEBUGGING + 17 .debug_line 00000d87 00000000 00000000 00025af0 2**0 + CONTENTS, READONLY, DEBUGGING + 18 .debug_info 000029b1 00000000 00000000 00026877 2**0 + CONTENTS, READONLY, DEBUGGING + 19 .debug_abbrev 00000475 00000000 00000000 00029228 2**0 + CONTENTS, READONLY, DEBUGGING + 20 .debug_aranges 000000c0 00000000 00000000 000296a0 2**3 + CONTENTS, READONLY, DEBUGGING + 21 .debug_loc 000001df 00000000 00000000 00029760 2**0 + CONTENTS, READONLY, DEBUGGING + 22 .debug_str 0000120b 00000000 00000000 0002993f 2**0 + CONTENTS, READONLY, DEBUGGING +SYMBOL TABLE: +f07c0000 l d .BOOT_EXEC 00000000 .BOOT_EXEC +f07c0030 l d .LOADER_CONFIGRAM 00000000 .LOADER_CONFIGRAM +f07c0300 l d .LOADER_CONFIGRAM2 00000000 .LOADER_CONFIGRAM2 +f07c0500 l d .LOADER_CORE2_ENTRY_PROGRAM 00000000 .LOADER_CORE2_ENTRY_PROGRAM +f07c0600 l d .LOADER_REMAP 00000000 .LOADER_REMAP +f07c2150 l d .LOADER_EXEC 00000000 .LOADER_EXEC +01000000 l d .text 00000000 .text +01004b10 l d .ARM.exidx 00000000 .ARM.exidx +01004b18 l d .rodata 00000000 .rodata +01005860 l d .dram_text 00000000 .dram_text +010058c8 l d .data 00000000 .data +01005980 l d .dummy 00000000 .dummy +010059c0 l d .bss 00000000 .bss +0103c400 l d .loader_heap 00000000 .loader_heap +00000000 l d .comment 00000000 .comment +00000000 l d .ARM.attributes 00000000 .ARM.attributes +00000000 l d .debug_frame 00000000 .debug_frame +00000000 l d .debug_line 00000000 .debug_line +00000000 l d .debug_info 00000000 .debug_info +00000000 l d .debug_abbrev 00000000 .debug_abbrev +00000000 l d .debug_aranges 00000000 .debug_aranges +00000000 l d .debug_loc 00000000 .debug_loc +00000000 l d .debug_str 00000000 .debug_str +00000000 l df *ABS* 00000000 Loader565_Data/Release/ObjectLds/Reset_560/reset.o +f07c0000 l .BOOT_EXEC 00000000 PowerOnReset +f07c0004 l .BOOT_EXEC 00000000 LDRAlign +f07c0008 l .BOOT_EXEC 00000000 CompressBase +f07c000c l .BOOT_EXEC 00000000 CalibrationDutyReg +f07c0010 l .BOOT_EXEC 00000000 DDR_PARAM0 +f07c0014 l .BOOT_EXEC 00000000 DDR_PARAM1 +f07c0018 l .BOOT_EXEC 00000000 DDR_PARAM2 +f07c001c l .BOOT_EXEC 00000000 DDR_PARAM3 +f07c0020 l .BOOT_EXEC 00000000 DDR_PARAM4 +f07c0024 l .BOOT_EXEC 00000000 LOADER_SIZE +00000000 l df *ABS* 00000000 configramLZ.c +00000000 l df *ABS* 00000000 configramFreqParam.c +00000000 l df *ABS* 00000000 config_dram1_tbl.c +00000000 l df *ABS* 00000000 config_dram1_2_tbl.c +00000000 l df *ABS* 00000000 Loader565_Data/Release/ObjectLds/Reset_560/core2_entry.o +f07c053c l .LOADER_CORE2_ENTRY_PROGRAM 00000000 wait_interrupt +f07c051c l .LOADER_CORE2_ENTRY_PROGRAM 00000000 timer_init +00000000 l df *ABS* 00000000 Loader565_Data/Release/ObjectLds/Remap_LZ565/doremapLZ565.o +f07c0600 l .LOADER_REMAP 00000000 _start +f07c0980 l .LOADER_REMAP 00000000 false_reset +f07c0620 l .LOADER_REMAP 00000000 _undefined_instruction +f07c0624 l .LOADER_REMAP 00000000 _software_interrupt +f07c0628 l .LOADER_REMAP 00000000 _prefetch_abort +f07c062c l .LOADER_REMAP 00000000 _data_abort +f07c0630 l .LOADER_REMAP 00000000 _irq +f07c0634 l .LOADER_REMAP 00000000 _fiq +f07c09c4 l .LOADER_REMAP 00000000 undefined_instruction +f07c0a08 l .LOADER_REMAP 00000000 software_interrupt +f07c0a4c l .LOADER_REMAP 00000000 prefetch_abort +f07c0a90 l .LOADER_REMAP 00000000 data_abort +f07c0ad4 l .LOADER_REMAP 00000000 irq +f07c0ad8 l .LOADER_REMAP 00000000 fiq +f07c06fc l .LOADER_REMAP 00000000 clearbss +f07c0710 l .LOADER_REMAP 00000000 wait_hvy_load +f07c0730 l .LOADER_REMAP 00000000 invTlb +f07c0768 l .LOADER_REMAP 00000000 way_loop +f07c076c l .LOADER_REMAP 00000000 set_loop +f07c07ec l .LOADER_REMAP 00000000 way_loop_L2 +f07c0824 l .LOADER_REMAP 00000000 init_ttb_dram_c1 +f07c0844 l .LOADER_REMAP 00000000 init_ttb_so +f07c08a8 l .LOADER_REMAP 00000000 enable_L1 +f07c0904 l .LOADER_REMAP 00000000 INT_LOOP +f07c09c0 l .LOADER_REMAP 00000000 exp_halt +00000000 l df *ABS* 00000000 Loader565_Data/Release/ObjectLds/Reset_560/exp.o +f07c0b48 l .LOADER_REMAP 00000000 EXP_LOOP +00000000 l df *ABS* 00000000 configDDR.c +f07c0b50 l F .LOADER_REMAP 00000020 apply_driving_calibration +f07c0b70 l F .LOADER_REMAP 000001a0 duty_calibration.constprop.1 +f07c0d10 l F .LOADER_REMAP 0000001c issue_load_mode.constprop.2 +00000000 l df *ABS* 00000000 fuart.c +00000000 l df *ABS* 00000000 debug.c +f07c1e40 l F .LOADER_REMAP 00000028 debug_put_string +f07c1e3c l O .LOADER_REMAP 00000004 m_console +00000000 l df *ABS* 00000000 global.c +00000000 l df *ABS* 00000000 main.c +00000000 l df *ABS* 00000000 rtc.c +00000000 l df *ABS* 00000000 Timer.c +00000000 l df *ABS* 00000000 Cache.c +01002818 l F .text 00000014 cpu_l2_cache_wait_sync_done +00000000 l df *ABS* 00000000 prj_main.c +01000000 l F .text 00000010 prj_isFastbootKeyPressed +01000010 l F .text 00000012 prj_checkCardExist +01000024 l F .text 00000034 prj_isSpecialKeyPressed +00000000 l df *ABS* 00000000 gpio.c +00000000 l df *ABS* 00000000 utility.c +00000000 l df *ABS* 00000000 string.c +00000000 l df *ABS* 00000000 bl_func.c +0100044c l F .text 00000026 bl_decompress_rtos +01000474 l F .text 0000005c bl_get_partition_fdt_offset.part.1 +010004d0 l F .text 000000ec bl_load_rtos_from_non_nvtpack.isra.4.constprop.13 +010005bc l F .text 0000006c bl_get_fdt_nvt_memory_cfg_property.constprop.15 +01000628 l F .text 0000015c bl_get_fdt_cfg +01000784 l F .text 000000c0 bl_update_loader_flag +01000844 l F .text 00000094 bl_entry_boot +010008d8 l F .text 00000048 bl_boot_teeos +01000920 l F .text 00000050 bl_get_fdt_partition_property +01000970 l F .text 000000fc bl_get_partition +01000a6c l F .text 000001b4 bl_load_uboot_from_flash +01000db4 l F .text 00000124 bl_load_uboot_from_all_in_one +01000f20 l F .text 000000a0 bl_load_fdt_from_flash.constprop.9 +010058c8 l O .data 00000004 nodeoffset.5193 +010058cc l O .data 00000004 nodeoffset_nvt_memory_cfg.5116 +010058d0 l O .data 0000000e RWErrorMsg +010058e0 l O .data 00000004 g_uiStartBlkUpdateFW +010058e4 l O .data 0000000d UPDATE_LOADER_NAME +010058f1 l O .data 0000000d UPDATE_FW_NAME +010058fe l O .data 0000000d RUN_FW_NAME +0100590b l O .data 00000016 LoaderErrorMsg +01005921 l O .data 00000012 FWErrorMsg +01005933 l O .data 0000000d RECOVERY_FW_NAME +010059d0 l O .bss 00000001 gStorageIntType +010059d4 l O .bss 00000080 g_dram_partition +01005a54 l O .bss 00000004 g_uiVersion +01005a60 l O .bss 00000020 g_emb_uboot +01005a84 l O .bss 00000001 g_is_flash_open +01005a88 l O .bss 00000020 g_emb_teeos +01005aa8 l O .bss 00000004 g_rtos_load_addr +01005aac l O .bss 00000004 g_rtos_target_addr +01005ab0 l O .bss 00000004 g_rtos_size +01005ab8 l O .bss 00000020 g_emb_rtos +01005ad8 l O .bss 00000004 gRecoveryTriggerCallBack +01005adc l O .bss 00000004 gSpecialKeyCallBack +01005ae0 l O .bss 00000004 gCardDetectCallBack +01005ae4 l O .bss 00000004 gFastbootKeyCallBack +00000000 l df *ABS* 00000000 nvtpack.c +01001e50 l F .text 00000074 nvtpack_get_uitron_offset +010055ac l O .rodata 00000010 GUID_FW2 +010055bc l O .rodata 00000010 GUID_FW +010055cc l O .rodata 00000010 GUID_RES +00000000 l df *ABS* 00000000 fdt.c +00000000 l df *ABS* 00000000 fdt_ro.c +01002394 l F .text 0000001c _fdt_offset_ptr +010023b0 l F .text 0000001c _fdt_mem_rsv +010023cc l F .text 00000038 _nextprop +00000000 l df *ABS* 00000000 spi.c +0100294c l F .text 0000001c SMHostSendCommand +01002968 l F .text 00000038 flash_close +010029a0 l F .text 0000000a flash_getBlockSize +010029aa l F .text 00000006 flash_setReservedAreaMaxBlockNumber +010029b0 l F .text 00000010 flash_getTotalSize +010029c0 l F .text 00000010 flash_installAccessCB +010029d0 l F .text 00000010 flash_installIdentifyCB +010029e0 l F .text 0000001c flash_setConfig +010029fc l F .text 00000080 flash_setFrequency +01002a7c l F .text 0000001c SMHostGetStatus.constprop.3 +01002a98 l F .text 00000044 spiflash_waitReady +01002adc l F .text 0000002c spi_nor_send_cmd +01002b08 l F .text 0000000c spiflash_enableWriteLatch +01002b14 l F .text 00000018 sm_card_host_setup_address_cycle.constprop.5 +01002b2c l F .text 00000048 spiFlash_eraseSector +01002b74 l F .text 00000044 spiflash_setStatus +01002bb8 l F .text 00000006 flash_setReservedBadBlockNumber +01002bc0 l F .text 00000350 flash_open +01002f10 l F .text 00000238 spiFlash_write +01003148 l F .text 00000028 flash_writePartition +01003170 l F .text 00000012 flash_writeSectors +01003184 l F .text 000002d4 flash_readSectors +01005940 l O .data 00000004 guiSpiClkDiv +01015af0 l O .bss 00000004 uiSpiFlashSize +01015af4 l O .bss 00000004 gSpiProgramCallBack +01015af8 l O .bss 00000004 gSpiIdentifyCallBack +01015afc l O .bss 00000001 bQuadConfigured +01015b00 l O .bss 00000004 uiQuadReadType +01015b04 l O .bss 00000001 bSupportEWSR +01015b05 l O .bss 00000001 bDualRead +01015b08 l O .bss 00000004 b_support_RDCR +01015b0c l O .bss 00000001 bQuadEnabled +00000000 l df *ABS* 00000000 SDIO1.c +0100346c l F .text 00000028 SDHostGetStatus +01003494 l F .text 000000a8 SDHostDataCommand +0100353c l F .text 00000080 SDHostSimpleCommand +010035bc l F .text 000000c0 CardReadSector +01015b10 l O .bss 00000008 SDContext +00000000 l df *ABS* 00000000 cc.c +00000000 l df *ABS* 00000000 efuse.c +00000000 l df *ABS* 00000000 fat.c +0100396c l F .text 00000124 fat_getclusterstatus +01003a90 l F .text 00000138 fat_getnextcluster +01003bc8 l F .text 0000002c fat_getmaxclusternumber +01003bf4 l F .text 00000038 fat_getnextdir_entry +01003c2c l F .text 00000028 fat_getfirstdir_entry +01003c54 l F .text 00000030 fat_getdir_sectornumber +01016780 l O .bss 00020000 vFatBuf +0100597c l O .data 00000004 uiBufAddr +01015b40 l O .bss 00000198 FileSys +01015d00 l O .bss 00000800 vBitMapBuf +01016500 l O .bss 00000004 ui32FATPages +01016504 l O .bss 00000014 RootFileHandle +01016540 l O .bss 00000200 TempBuf +01016740 l O .bss 00000004 uiBufSize +01016744 l O .bss 00000004 dbg_count +01016748 l O .bss 00000004 gFatAccessCallBack +00000000 l df *ABS* 00000000 stdlib.c +00000000 l df *ABS* 00000000 _udivsi3.o +01004494 l .text 00000000 .udivsi3_skip_div0_test +00000000 l *ABS* 00000000 shift +00000000 l df *ABS* 00000000 _divsi3.o +010046a8 l .text 00000000 .divsi3_skip_div0_test +00000000 l *ABS* 00000000 shift +00000000 l df *ABS* 00000000 _dvmd_tls.o +00000000 l df *ABS* 00000000 _aeabi_uldivmod.o +00000000 l df *ABS* 00000000 libgcc2.c +00000000 l df *ABS* 00000000 libgcc2.c +00000000 l df *ABS* 00000000 boot_load.c +00000000 l df *ABS* 00000000 +f07c7da0 l *ABS* 00000000 _loader_data_cpu_addr +f07c2150 l *ABS* 00000000 _loader_exec_cpu_addr +f07c2150 l .LOADER_EXEC 00000000 _loader_exec_start_base +01004a90 l F .text 00000008 __set_usb_suspend_veneer +01004a98 l F .text 00000008 __debug_msg_veneer +01004aa0 l F .text 00000008 __debug_err_var_veneer +01004aa8 l F .text 00000008 __UTL_getDrvTmpBufferAddress_from_thumb +01004ab0 l F .text 00000008 __rom_efuse_read_from_thumb +01004ab8 l F .text 00000008 __timer_delay_veneer +01004ac0 l F .text 00000008 __fLib_PutSerialChar_veneer +01004ac8 l F .text 00000008 __utl_is_sram_fw_from_thumb +01004ad0 l F .text 00000008 __CPUInvalidateICacheAll_veneer +01004ad8 l F .text 00000008 __UTL_setDrvTmpBufferAddress_from_thumb +01004ae0 l F .text 00000008 __utl_get_bootsrc_veneer +01004ae8 l F .text 00000008 __rom_LZ_Uncompress_from_thumb +01004af0 l F .text 00000008 __cpu_cleanInvalidateDCacheAll_veneer +01004af8 l F .text 00000008 __debug_err_veneer +01004b00 l F .text 00000008 __fLib_PutSerialStr_veneer +01004b08 l F .text 00000008 __debug_msg_var_veneer +010058c0 l F .dram_text 00000008 __debug_msg_veneer +f07c24b8 l F .LOADER_EXEC 00000008 __bl_mainFlow_veneer +f07c24c0 l F .LOADER_EXEC 00000008 __Dec2HexStr_veneer +f07c24c8 l F .LOADER_EXEC 00000008 __CPUflushReadCache_veneer +f07c24d0 l F .LOADER_EXEC 00000008 __bl_read_rtos_addr_veneer +f07c2100 l F .LOADER_REMAP 00000008 ____popcountsi2_veneer +f07c2108 l F .LOADER_REMAP 00000008 __Dec2HexStr_veneer +f07c20ec g F .LOADER_REMAP 00000010 utl_get_chipversion +0100443c g F .text 00000018 fat_read_rootfile +f07c2068 g F .LOADER_REMAP 00000034 utl_dram_protect_enable +f07c2450 g F .LOADER_EXEC 0000001c fLib_PutSerialChar +01002190 g F .text 0000002e fdt_offset_ptr +01000d8c g F .text 00000028 bl_chk_uboot +000000b8 g *ABS* 00000000 _loader_data_size +f07c0d2c g F .LOADER_REMAP 00000044 disable_rom_wdt +f07c2308 g F .LOADER_EXEC 00000018 timer_delay +01003458 g F .text 00000014 nor_get_storage_object +f07c1b20 g F .LOADER_REMAP 00000024 set_usb_suspend +01001e1c g F .text 00000010 loader_installCardDetectCB +01000000 g .text 00000000 _loader_exec_compres_start +01002620 g F .text 00000018 fdt_getprop_namelen +01002520 g F .text 00000018 fdt_first_property_offset +f07c1fc8 g F .LOADER_REMAP 000000a0 utl_test_checksum +f07c0b50 g .LOADER_REMAP 00000000 _load_vector_exp_table_end_base +0100282c g F .text 00000054 cpu_invalidateDCacheBlock +0103c400 g *ABS* 00000000 __common_base +010025f4 g F .text 0000002c fdt_get_property +010026bc g F .text 0000008e fdt_path_offset +01005af0 g O .bss 00010000 lzma_temp_buffer +01001dfc g F .text 00000010 loader_setVersion +f07c0944 g F .LOADER_REMAP 00000000 rom_debug_msg_err +f07c0030 g .LOADER_CONFIGRAM 00000000 _load_LOADER_CONFIGRAM_start_base +f07c0300 g O .LOADER_CONFIGRAM2 00000068 g_dma_config_setting +01001dd4 g F .text 00000014 loader_setUpdateLdrName +f07c1d48 g F .LOADER_REMAP 00000030 uart_getChar_polling +00000068 g *ABS* 00000000 _loader_dram_text_size +01003900 g F .text 00000008 card_get_type +f07c0500 g .LOADER_CORE2_ENTRY_PROGRAM 00000000 _load_core2_entry_program_start_base +0103c400 g *ABS* 00000000 __common_limit +01036794 g O .bss 00000004 currentPtr +f07c2320 g F .LOADER_EXEC 00000018 CPUInvalidateICacheAll +010043ec g F .text 00000020 fat_internal_close_rootfile +f07c2254 g F .LOADER_EXEC 0000005c rtc_chkS3boot_init +f07c1bf8 g O .LOADER_REMAP 0000000c uart1_obj +01003930 g F .text 0000003c quary_secure_boot +f07c22b0 g F .LOADER_EXEC 00000020 rtc_chkS3boot_wait_init +f07c0070 g .LOADER_CONFIGRAM 00000000 _load_LOADER_CONFIGRAM_end_base +010048e4 g F .text 00000000 .hidden __aeabi_uldivmod +01004494 g F .text 000001ec .hidden __udivsi3 +f07c2480 g F .LOADER_EXEC 0000000a debug_msg +f07c1e7c g F .LOADER_REMAP 00000018 debug_err +f07c248a g F .LOADER_EXEC 0000002a debug_msg_var +010001c4 g F .text 00000060 Dec2HexStr2Bytes +01002880 g F .text 00000044 cpu_cleanDCacheBlock +01002438 g F .text 00000088 fdt_subnode_offset_namelen +01004968 g F .text 00000128 .hidden __udivmoddi4 +01000164 g F .text 00000026 gpio_getPin +01000fc0 g F .text 000000f4 bl_boot_uboot +01002412 g F .text 00000026 fdt_num_mem_rsv +f07c0958 g F .LOADER_REMAP 00000000 rom_LZ_Uncompress +01002550 g F .text 00000030 fdt_get_property_by_offset +f07c1c3c g F .LOADER_REMAP 0000001c serial2_putc +01000cb8 g F .text 000000d4 bl_chk_fdt +01001e2c g F .text 00000010 loader_installFastbootKeyCB +01000ed8 g F .text 00000048 bl_copy_fdt_to_fdt_addr +f07c0070 g O .LOADER_CONFIGRAM 00000020 LoaderInternalInfo +f07c1f4c g F .LOADER_REMAP 00000018 UTL_setDrvTmpBufferAddress +f07c0600 g .LOADER_REMAP 00000000 _load_LOADER_REMAP_start_base +010058c8 g .data 00000000 _load_general_var_base +f07c1e68 g F .LOADER_REMAP 00000014 debug_set_console +f07c1e94 g F .LOADER_REMAP 00000038 debug_err_var +01000308 g F .text 0000001a strnlen +01000058 g F .text 0000000c debug_disable_msg +01002660 g F .text 0000002c fdt_getprop +f07c0b48 g .LOADER_REMAP 00000000 EXP_Handler +01036780 g O .bss 00000014 emuCommonBuf +f07c1c74 g F .LOADER_REMAP 0000005c uart_openSystemUART +01001e3c g F .text 00000014 loader_setStorageIntType +0100367c g F .text 00000264 card_open +0103c400 g .loader_heap 00000000 _image_load_reset_zi_base +01005aec g O .bss 00000004 TopOfStack +01004920 g F .text 00000048 .hidden __popcountsi2 +01000224 g F .text 0000005a utl_memset +01005860 g .dram_text 00000000 _loader_dram_text_start_base +010046a0 g F .text 00000000 .hidden __aeabi_idiv +01002294 g F .text 00000028 _fdt_check_prop_offset +010010b4 g F .text 000002b0 bl_process_all_in_one +f07c0028 g .BOOT_EXEC 00000000 __start +010040ac g F .text 000002a4 fat_internal_open_rootfile +010024c0 g F .text 0000001e fdt_subnode_offset +01001de8 g F .text 00000014 loader_setRunFwName +010003b8 g F .text 00000094 memchr +0100274c g F .text 000000cc fdt_check_full +f07c05e8 g .LOADER_CORE2_ENTRY_PROGRAM 00000000 _load_core2_entry_program_end_base +f07c0b48 g .LOADER_REMAP 00000000 _load_LOADER_REMAP_end_base +01001384 g F .text 00000a3c bl_mainFlow +0100235e g F .text 00000036 fdt_next_subnode +f07c002c g .BOOT_EXEC 00000000 _load_BOOT_EXEC_end_base +f07c1c04 g F .LOADER_REMAP 0000001c serial_putc +f07c0368 g O .LOADER_CONFIGRAM2 00000068 g_dma_config_setting_2 +01003ca8 g F .text 00000368 fat_internal_mount_partition +0100033e g F .text 00000024 strncmp +01001dc0 g F .text 00000014 loader_setUpdateFwName +01005860 g F .dram_text 0000005c load_dram_scan +01000322 g F .text 0000001c strncpy +f07c0090 g .LOADER_CONFIGRAM 00000000 _load_LOADER_CONFIGRAM_FREQ_PARAM_end_base +f07c091c g F .LOADER_REMAP 00000000 rom_debug_msg +01004010 g F .text 0000009c fat_internal_initFAT +0103c400 g .loader_heap 00000000 _loader_heap_base +f07c20d8 g F .LOADER_REMAP 00000014 utl_get_bootsrc +f07c0d70 g F .LOADER_REMAP 0000001c rom_memcpy +0100037e g F .text 00000020 memcmp +01002538 g F .text 00000018 fdt_next_property_offset +f07c24d8 g .LOADER_EXEC 00000000 _loader_exec_end_base +010048e0 w F .text 00000004 .hidden __aeabi_ldiv0 +01003c84 g F .text 00000024 fat_regfilesystem +01002580 g F .text 00000074 fdt_get_property_namelen +010038e0 g F .text 00000020 card_close +0103c400 g .loader_heap 00000000 _image_load_reset_length +f07c22d0 g F .LOADER_EXEC 00000038 rtc_chkS3boot +f07c2380 g F .LOADER_EXEC 00000048 _cache_invalidate_data_cache_all +f07c0000 g .BOOT_EXEC 00000000 _load_BOOT_EXEC_start_base +01001e0c g F .text 00000010 loader_installSpecialKeyCB +f07c7d38 g *ABS* 00000000 _loader_dram_text_cpu_addr +f07c0368 g .LOADER_CONFIGRAM2 00000000 config_dram1_tbl_2_start_base +f07c2150 g F .LOADER_EXEC 00000104 main +f07c096c g F .LOADER_REMAP 00000000 rom_Dec2HexStr +01001ee8 g F .text 00000088 nvtpack_getver +0100226c g F .text 00000028 _fdt_check_node_offset +01001ec4 g F .text 00000022 nvtpack_calc_nvt_sum +f07c1c20 g F .LOADER_REMAP 0000001c serial2_getc +01004494 g F .text 00000000 .hidden __aeabi_uidiv +f07c1df4 g F .LOADER_REMAP 00000018 uart_getBinary +0100440c g F .text 00000018 fat_initFAT +01004454 g F .text 00000014 fat_close_rootfile +f07c1f38 g O .LOADER_REMAP 00000004 g_uiDrvTmpBuffer +010028e4 g F .text 0000003e CPUflushReadCache +f07c1d3c g F .LOADER_REMAP 0000000a serial2_init +010058c8 g .data 00000000 _loader_data_start_base +f07c23e2 g F .LOADER_EXEC 0000004e _cache_clean_invalidate_d_cache_All +010046a0 g F .text 00000220 .hidden __divsi3 +f07c0030 g O .LOADER_CONFIGRAM 00000040 ConfigRamTab +f07c0070 g .LOADER_CONFIGRAM 00000000 _load_LOADER_CONFIGRAM_FREQ_PARAM_start_base +010059c0 g .bss 00000000 _image_general_zi_zi_base +0100039e g F .text 0000001a strcmp +f07c0d8c g F .LOADER_REMAP 00000d94 config_dma +f07c1cd0 g F .LOADER_REMAP 0000000a serial_init +01001364 g F .text 00000020 bl_read_rtos_addr +f07c1ecc g F .LOADER_REMAP 0000006c debug_dump_addr +0117c400 g .loader_heap 00000000 _stack_start +010028c4 g F .text 00000020 cpu_cleanInvalidateDCache +f07c2338 g F .LOADER_EXEC 00000048 _cache_clean_d_cache_all +f07c24d8 g *ABS* 00000000 _loader_exec_compress_load_cpu_addr +f07c1bec g O .LOADER_REMAP 0000000c uart0_obj +01002140 g F .text 00000050 fdt_check_header +f07c1d98 g F .LOADER_REMAP 0000005c uart_getStr_polling +f07c246c g F .LOADER_EXEC 00000014 fLib_PutSerialStr +01002060 g F .text 000000e0 nvtpack_get_partition +010024de g F .text 00000042 fdt_get_name +01002922 g F .text 0000002a CPUflushWriteCache +01038000 g .bss 00000000 _ttb +f07c1e0c g F .LOADER_REMAP 00000030 get_uart_object +01002330 g F .text 0000002e fdt_first_subnode +01005980 g .data 00000000 _image_general_var_limit +f07c0908 g F .LOADER_REMAP 00000000 rom_efuse_read +f07c1cdc g F .LOADER_REMAP 00000060 uart_openSystemUART2 +0100027e g F .text 00000076 utl_memcpy +0103c400 g .loader_heap 00000000 _image_load_reset_base +f07c1fa8 g F .LOADER_REMAP 00000020 utl_is_sram_fw +010022bc g F .text 00000074 fdt_next_node +01004680 g F .text 00000020 .hidden __aeabi_uidivmod +f07c23c8 g F .LOADER_EXEC 0000001a cpu_invalidateDCacheAll +000024d8 g *ABS* 00000000 _loader_exec_compress_load_base +01000000 g .text 00000000 _internal_strg_param_start +01005944 g O .data 00000038 spi_nor +01000c20 g F .text 00000074 bl_flash_open +01003908 g F .text 00000028 dma_get_dram_capacity +f07c209c g F .LOADER_REMAP 00000018 utl_dram_protect_disable +01004424 g F .text 00000018 fat_open_rootfile +010059c0 g O .bss 00000009 gStr +01000064 g F .text 00000100 prj_main +f07c1c58 g F .LOADER_REMAP 0000001c serial_getc +01002404 g F .text 0000000e fdt_string +f07c1f3c g F .LOADER_REMAP 00000010 bitCount +f07c2430 g F .LOADER_EXEC 0000001e cpu_cleanInvalidateDCacheAll +0103c400 g .loader_heap 00000000 _load_load_reset_base +f07c0638 g .LOADER_REMAP 00000000 start +010021c0 g F .text 000000ac fdt_next_tag +01004468 g F .text 0000002c atoi +010048e0 w F .text 00000004 .hidden __aeabi_idiv0 +0100268c g F .text 00000030 fdt_get_alias_namelen +0103c000 g .bss 00000000 _ttb_lv2 +f07c1d78 g F .LOADER_REMAP 00000020 uart_chkChar +f07c1f7c g F .LOADER_REMAP 0000002c UTL_canUpdateSecKey +00000388 g *ABS* 00000000 _loader_exec_size +f07c1f64 g F .LOADER_REMAP 00000018 UTL_getDrvTmpBufferAddress +010002f4 g F .text 00000014 strlen +01005a58 g O .bss 00000004 int_strg_obj +0100018c g F .text 00000038 Dec2HexStr +f07c0930 g F .LOADER_REMAP 00000000 rom_debug_msg_var +01000362 g F .text 0000001c strchr +01005a80 g O .bss 00000004 rom_lzma_inflate +01004350 g F .text 0000009c fat_internal_read_rootfile +01004b10 g .text 00000000 _loader_exec_compres_end +f07c20b4 g F .LOADER_REMAP 00000024 utl_dram_protect_check +010048c0 g F .text 00000020 .hidden __aeabi_idivmod +01002638 g F .text 00000028 fdt_getprop_by_offset +0103c400 g .loader_heap 00000000 _image_load_reset_zi_limit +01000c94 g F .text 00000024 bl_chk_valid_all_in_one +010058c8 g .data 00000000 _image_general_var_base +0103c400 g *ABS* 00000000 _image_general_zi_zi_limit +01005ae8 g O .bss 00000004 BaseOfStack +f07c0b48 g .LOADER_REMAP 00000000 _load_vector_exp_table_start_base +01001f70 g F .text 000000f0 nvtpack_verify + + diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectCode/prj_main.o b/loader/Project/Model/Loader565_Data/Release/ObjectCode/prj_main.o new file mode 100644 index 000000000..b71826b70 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectCode/prj_main.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectCode/uart_upgrade.o b/loader/Project/Model/Loader565_Data/Release/ObjectCode/uart_upgrade.o new file mode 100644 index 000000000..0c9cf7b01 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectCode/uart_upgrade.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectCode/usb_update.o b/loader/Project/Model/Loader565_Data/Release/ObjectCode/usb_update.o new file mode 100644 index 000000000..ba01d800f Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectCode/usb_update.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Common_exFAT/Common_exFAT.a b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Common_exFAT/Common_exFAT.a new file mode 100755 index 000000000..c09b57a54 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Common_exFAT/Common_exFAT.a differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Common_exFAT/global.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Common_exFAT/global.o new file mode 100644 index 000000000..ef0b9a007 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Common_exFAT/global.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Ctrl_Flow/Ctrl_Flow.a b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Ctrl_Flow/Ctrl_Flow.a new file mode 100755 index 000000000..02f1628d2 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Ctrl_Flow/Ctrl_Flow.a differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Ctrl_Flow/main.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Ctrl_Flow/main.o new file mode 100644 index 000000000..af3ea2456 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Ctrl_Flow/main.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Debug/Debug.a b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Debug/Debug.a new file mode 100755 index 000000000..8b277f0dd --- /dev/null +++ b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Debug/Debug.a @@ -0,0 +1 @@ +! diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Debug/debug.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Debug/debug.o new file mode 100644 index 000000000..868702b2c Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Debug/debug.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Driver/Driver.a b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Driver/Driver.a new file mode 100755 index 000000000..d58ec9fbc Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Driver/Driver.a differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Driver/fuart.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Driver/fuart.o new file mode 100644 index 000000000..5f014d7ef Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Driver/fuart.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Driver/rtc.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Driver/rtc.o new file mode 100644 index 000000000..5dbd34425 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Driver/rtc.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/LDS_LZ_R.lds b/loader/Project/Model/Loader565_Data/Release/ObjectLds/LDS_LZ_R.lds new file mode 100644 index 000000000..331fba883 --- /dev/null +++ b/loader/Project/Model/Loader565_Data/Release/ObjectLds/LDS_LZ_R.lds @@ -0,0 +1,172 @@ +/* Linker script for malta + * + * Version: Sourcery G++ Lite 4.3-221 + * Support: https://support.codesourcery.com/GNUToolchain/ + * + * Copyright (c) 2007, 2008, 2009 CodeSourcery, Inc. + * + * The authors hereby grant permission to use, copy, modify, distribute, + * and license this software and its documentation for any purpose, provided + * that existing copyright notices are retained in all copies and that this + * notice is included verbatim in any distributions. No written agreement, + * license, or royalty fee is required for any of the authorized uses. + * Modifications to this software may be copyrighted by their authors + * and need not follow the licensing terms described here, provided that + * the new terms are clearly indicated on the first page of each file where + * they apply. + * */ + +/* Rule: + * 1. to use .o in project layer just type the .o name with file extension. (UiFlow.o) + * 2. to use .o in library layer have to add prefix module name. (Loader565_Data/Release/ObjectLds/DscSystem/SysTask.o) + * */ + +OUTPUT_ARCH(arm) +ENTRY(__start) +SEARCH_DIR(.) + +SECTIONS +{ + .BOOT_EXEC 0xF07C0000|0x00000000: + AT (0) + { + _load_BOOT_EXEC_start_base = .; + KEEP(Loader565_Data/Release/ObjectLds/Reset_560/reset.o(.data*)); + Loader565_Data/Release/ObjectLds/Reset_560/reset.o(.text*); + _load_BOOT_EXEC_end_base = .; + } + .LOADER_CONFIGRAM (0xF07C0000|0x00000000) + 0x30: + AT (0x30) + { + _load_LOADER_CONFIGRAM_start_base = .; + KEEP(Loader565_Data/Release/ObjectLds/Remap_LZ565/configramLZ.o(.data*)); + _load_LOADER_CONFIGRAM_end_base = .; + _load_LOADER_CONFIGRAM_FREQ_PARAM_start_base = .; + KEEP(Loader565_Data/Release/ObjectLds/Reset_560/configramFreqParam.o(.data*)); + _load_LOADER_CONFIGRAM_FREQ_PARAM_end_base = .; + } + .LOADER_CONFIGRAM2 (0xF07C0000|0x00000000) + 0x300: + AT (0x300) + { + KEEP(Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_tbl.o(.rodata*)); + config_dram1_tbl_2_start_base = .; + KEEP(Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_2_tbl.o(.rodata*)); + } + .LOADER_CORE2_ENTRY_PROGRAM (0xF07C0000|0x00000000) + 0x500: + AT (0x500) + { + _load_core2_entry_program_start_base = .; + KEEP(Loader565_Data/Release/ObjectLds/Reset_560/core2_entry.o(.text)); + _load_core2_entry_program_end_base = .; + } + .LOADER_REMAP (0xF07C0000|0x00000000) + 0x600: + AT (0x600) + { + _load_LOADER_REMAP_start_base = .; + Loader565_Data/Release/ObjectLds/Remap_LZ565/doremapLZ565.o(.text*); + _load_LOADER_REMAP_end_base = .; + _load_vector_exp_table_start_base = .; + KEEP(Loader565_Data/Release/ObjectLds/Reset_560/exp.o(.text*)); + _load_vector_exp_table_end_base = .; + KEEP(Loader565_Data/Release/ObjectLds/Reset_560/configDDR.o(.text*)); + KEEP(Loader565_Data/Release/ObjectLds/Reset_560/configDDR.o(.rodata*)); + KEEP(Loader565_Data/Release/ObjectLds/Driver/fuart.o(.text* .data* .rodata*)); + KEEP(Loader565_Data/Release/ObjectLds/Debug/debug.o (.text* .data* .bss*)); + KEEP(Loader565_Data/Release/ObjectLds/Common_exFAT/global.o (.text* .data* .bss* .rodata*)); + . = ALIGN(4); /* This is MUST. Ensure section size is word aligned. */ + } + + . = ALIGN(4); + .LOADER_EXEC ADDR(.LOADER_REMAP) + SIZEOF(.LOADER_REMAP) : + AT (LOADADDR(.LOADER_REMAP) + SIZEOF(.LOADER_REMAP)) + { + _loader_exec_start_base = .; + KEEP(Loader565_Data/Release/ObjectLds/Ctrl_Flow/main.o(.part1*)); + KEEP(Loader565_Data/Release/ObjectLds/Driver/rtc.o(.part1*)); + * (.part1) + _loader_exec_end_base = .; + } + _loader_exec_cpu_addr = LOADADDR(.LOADER_EXEC) + ADDR(.BOOT_EXEC); + _loader_exec_size = SIZEOF(.LOADER_EXEC); + + . = ALIGN(4); + .text 0x1000000: + AT (LOADADDR(.LOADER_EXEC) + SIZEOF(.LOADER_EXEC)) + { + _loader_exec_compres_start = .; + _internal_strg_param_start = .; + *(.text*) + _loader_exec_compres_end = .; + } + _loader_exec_compress_load_base = LOADADDR(.text); + _loader_exec_compress_load_cpu_addr = LOADADDR(.text) + ADDR(.BOOT_EXEC); + .ARM.exidx : + { + *(.ARM.exidx*) + *(.gnu.linkonce.armexidx.*) + } + . = ALIGN(4); + .rodata : + { + *(.rodata*) + . = ALIGN(8); /* This is MUST. Ensure ro size is 2 word aligned. */ + } + .dram_text : + AT (LOADADDR(.rodata) + SIZEOF(.rodata)) + { + _loader_dram_text_start_base = .; + * (.dram_text) + } + _loader_dram_text_cpu_addr = LOADADDR(.dram_text) + ADDR(.BOOT_EXEC); + _loader_dram_text_size = SIZEOF(.dram_text); + .data : + AT (LOADADDR(.dram_text) + SIZEOF(.dram_text)) + { + _loader_data_start_base = .; + _load_general_var_base = .; + _image_general_var_base = .; + *(.data*) + _image_general_var_limit = .; + } + _loader_data_cpu_addr = LOADADDR(.data) + ADDR(.BOOT_EXEC); + _loader_data_size = SIZEOF(.data); + .dummy : { LONG (0x00000000) } + . = ALIGN(4); + .got : { *(.got) } + . = ALIGN(4); + .bss : { /* locate bss at DRAM end */ + _image_general_zi_zi_base = .; + *(.bss) + . = ALIGN(0x4000); + _ttb = .; + . = . + 0x4000; + . = ALIGN(0x400); + _ttb_lv2 = .; + . = . + 0x400; + } + .common : + { + __common_base = ABSOLUTE(.); + /* collect "small" un-initialized global data (mark "C" in sym file) */ + *(.scommon*) + /* collect "large" un-initialized global data (mark "B" in sym file) */ + *(COMMON) + __common_limit = ABSOLUTE(.); + } + . = ALIGN(64); + _image_general_zi_zi_limit = ABSOLUTE(.); + _load_load_reset_base = .; + _image_load_reset_base = .; + _image_load_reset_length = .; + _image_load_reset_zi_base = .; + _image_load_reset_zi_limit = .; + . = ALIGN(64); + .loader_heap : + { + _loader_heap_base = .; + . += 0xA0000 + 0x20000 + 0x80000; + } + . = ALIGN(64); + _stack_start = .; + +} diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Remap_LZ565/Remap_LZ565.a b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Remap_LZ565/Remap_LZ565.a new file mode 100755 index 000000000..8b277f0dd --- /dev/null +++ b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Remap_LZ565/Remap_LZ565.a @@ -0,0 +1 @@ +! diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Remap_LZ565/configramLZ.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Remap_LZ565/configramLZ.o new file mode 100644 index 000000000..5872e1e02 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Remap_LZ565/configramLZ.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Remap_LZ565/doremapLZ565.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Remap_LZ565/doremapLZ565.o new file mode 100644 index 000000000..a83895168 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Remap_LZ565/doremapLZ565.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/Reset_560.a b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/Reset_560.a new file mode 100755 index 000000000..fc6735b54 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/Reset_560.a differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/configDDR.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/configDDR.o new file mode 100644 index 000000000..b3a88e576 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/configDDR.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_2_tbl.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_2_tbl.o new file mode 100644 index 000000000..7838cbe60 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_2_tbl.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_tbl.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_tbl.o new file mode 100644 index 000000000..772f1f10f Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_tbl.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/configramFreqParam.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/configramFreqParam.o new file mode 100644 index 000000000..7377fa70c Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/configramFreqParam.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/core2_entry.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/core2_entry.o new file mode 100644 index 000000000..9fa24ee2a Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/core2_entry.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/exp.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/exp.o new file mode 100644 index 000000000..60be624a5 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/exp.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/reset.o b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/reset.o new file mode 100644 index 000000000..74745f4f8 Binary files /dev/null and b/loader/Project/Model/Loader565_Data/Release/ObjectLds/Reset_560/reset.o differ diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/ld_ext.d b/loader/Project/Model/Loader565_Data/Release/ObjectLds/ld_ext.d new file mode 100644 index 000000000..ad6db6c7a --- /dev/null +++ b/loader/Project/Model/Loader565_Data/Release/ObjectLds/ld_ext.d @@ -0,0 +1,98 @@ +Loader565_Data/Release/ObjectLds/Reset_560/Reset_560.a:../../ARC/Lib/Release/Reset_560.a + @echo Copying ObjectLds: $(notdir $@) + @rm -rf $(dir $@) + @mkdir -p $(dir $@) + cp $< $@ + chmod 777 $@ + @echo Extracting: Loader565_Data/Release/ObjectLds/Reset_560/reset.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/reset.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/reset.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Reset_560/reset.o) Loader565_Data/Release/ObjectLds/Reset_560/reset.o; + @echo Extracting: Loader565_Data/Release/ObjectLds/Reset_560/configramFreqParam.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/configramFreqParam.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/configramFreqParam.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Reset_560/configramFreqParam.o) Loader565_Data/Release/ObjectLds/Reset_560/configramFreqParam.o; + @echo Extracting: Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_tbl.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_tbl.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_tbl.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_tbl.o) Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_tbl.o; + @echo Extracting: Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_2_tbl.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_2_tbl.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_2_tbl.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_2_tbl.o) Loader565_Data/Release/ObjectLds/Reset_560/config_dram1_2_tbl.o; + @echo Extracting: Loader565_Data/Release/ObjectLds/Reset_560/core2_entry.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/core2_entry.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/core2_entry.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Reset_560/core2_entry.o) Loader565_Data/Release/ObjectLds/Reset_560/core2_entry.o; + @echo Extracting: Loader565_Data/Release/ObjectLds/Reset_560/exp.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/exp.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/exp.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Reset_560/exp.o) Loader565_Data/Release/ObjectLds/Reset_560/exp.o; + @echo Extracting: Loader565_Data/Release/ObjectLds/Reset_560/configDDR.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/configDDR.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Reset_560/configDDR.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Reset_560/configDDR.o) Loader565_Data/Release/ObjectLds/Reset_560/configDDR.o; + +Loader565_Data/Release/ObjectLds/Remap_LZ565/Remap_LZ565.a:../../ARC/Lib/Release/Remap_LZ565.a + @echo Copying ObjectLds: $(notdir $@) + @rm -rf $(dir $@) + @mkdir -p $(dir $@) + cp $< $@ + chmod 777 $@ + @echo Extracting: Loader565_Data/Release/ObjectLds/Remap_LZ565/configramLZ.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Remap_LZ565/configramLZ.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Remap_LZ565/configramLZ.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Remap_LZ565/configramLZ.o) Loader565_Data/Release/ObjectLds/Remap_LZ565/configramLZ.o; + @echo Extracting: Loader565_Data/Release/ObjectLds/Remap_LZ565/doremapLZ565.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Remap_LZ565/doremapLZ565.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Remap_LZ565/doremapLZ565.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Remap_LZ565/doremapLZ565.o) Loader565_Data/Release/ObjectLds/Remap_LZ565/doremapLZ565.o; + +Loader565_Data/Release/ObjectLds/Driver/Driver.a:../../ARC/Lib/Release/Driver.a + @echo Copying ObjectLds: $(notdir $@) + @rm -rf $(dir $@) + @mkdir -p $(dir $@) + cp $< $@ + chmod 777 $@ + @echo Extracting: Loader565_Data/Release/ObjectLds/Driver/fuart.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Driver/fuart.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Driver/fuart.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Driver/fuart.o) Loader565_Data/Release/ObjectLds/Driver/fuart.o; + @echo Extracting: Loader565_Data/Release/ObjectLds/Driver/rtc.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Driver/rtc.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Driver/rtc.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Driver/rtc.o) Loader565_Data/Release/ObjectLds/Driver/rtc.o; + +Loader565_Data/Release/ObjectLds/Debug/Debug.a:../../ARC/Lib/Release/Debug.a + @echo Copying ObjectLds: $(notdir $@) + @rm -rf $(dir $@) + @mkdir -p $(dir $@) + cp $< $@ + chmod 777 $@ + @echo Extracting: Loader565_Data/Release/ObjectLds/Debug/debug.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Debug/debug.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Debug/debug.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Debug/debug.o) Loader565_Data/Release/ObjectLds/Debug/debug.o; + +Loader565_Data/Release/ObjectLds/Common_exFAT/Common_exFAT.a:../../ARC/Lib/Release/Common_exFAT.a + @echo Copying ObjectLds: $(notdir $@) + @rm -rf $(dir $@) + @mkdir -p $(dir $@) + cp $< $@ + chmod 777 $@ + @echo Extracting: Loader565_Data/Release/ObjectLds/Common_exFAT/global.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Common_exFAT/global.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Common_exFAT/global.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Common_exFAT/global.o) Loader565_Data/Release/ObjectLds/Common_exFAT/global.o; + +Loader565_Data/Release/ObjectLds/Ctrl_Flow/Ctrl_Flow.a:../../ARC/Lib/Release/Ctrl_Flow.a + @echo Copying ObjectLds: $(notdir $@) + @rm -rf $(dir $@) + @mkdir -p $(dir $@) + cp $< $@ + chmod 777 $@ + @echo Extracting: Loader565_Data/Release/ObjectLds/Ctrl_Flow/main.o + $(AR) x $@ $(notdir Loader565_Data/Release/ObjectLds/Ctrl_Flow/main.o) + $(AR) d $@ $(notdir Loader565_Data/Release/ObjectLds/Ctrl_Flow/main.o) + mv $(notdir Loader565_Data/Release/ObjectLds/Ctrl_Flow/main.o) Loader565_Data/Release/ObjectLds/Ctrl_Flow/main.o; + diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/ld_lib.txt b/loader/Project/Model/Loader565_Data/Release/ObjectLds/ld_lib.txt new file mode 100644 index 000000000..cd1a6d1da --- /dev/null +++ b/loader/Project/Model/Loader565_Data/Release/ObjectLds/ld_lib.txt @@ -0,0 +1 @@ +Loader565_Data/Release/ObjectLds/Reset_560/Reset_560.a Loader565_Data/Release/ObjectLds/Remap_LZ565/Remap_LZ565.a Loader565_Data/Release/ObjectLds/Driver/Driver.a Loader565_Data/Release/ObjectLds/Debug/Debug.a Loader565_Data/Release/ObjectLds/Common_exFAT/Common_exFAT.a Loader565_Data/Release/ObjectLds/Ctrl_Flow/Ctrl_Flow.a \ No newline at end of file diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/ld_lib_ban.txt b/loader/Project/Model/Loader565_Data/Release/ObjectLds/ld_lib_ban.txt new file mode 100644 index 000000000..284bcdff6 --- /dev/null +++ b/loader/Project/Model/Loader565_Data/Release/ObjectLds/ld_lib_ban.txt @@ -0,0 +1 @@ +../../ARC/Lib/Release/Reset_560.a ../../ARC/Lib/Release/Remap_LZ565.a ../../ARC/Lib/Release/Driver.a ../../ARC/Lib/Release/Debug.a ../../ARC/Lib/Release/Common_exFAT.a ../../ARC/Lib/Release/Ctrl_Flow.a \ No newline at end of file diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/libs.txt b/loader/Project/Model/Loader565_Data/Release/ObjectLds/libs.txt new file mode 100644 index 000000000..0dd96a5bf --- /dev/null +++ b/loader/Project/Model/Loader565_Data/Release/ObjectLds/libs.txt @@ -0,0 +1 @@ +../../ARC/Lib/Release/Ctrl_Flow.a ../../ARC/Lib/Release/nvtpack.a ../../ARC/Lib/Release/Compress.a ../../ARC/Lib/Release/STRGINT_EMMC.a ../../ARC/Lib/Release/Driver.a ../../ARC/Lib/Release/fdt.a ../../ARC/Lib/Release/CA9.a ../../ARC/Lib/Release/Debug.a ../../ARC/Lib/Release/STRGINT_SpiFlash.a ../../ARC/Lib/Release/STRGINT_NandSpi.a ../../ARC/Lib/Release/STRGEXT_Sdio1.a ../../ARC/Lib/Release/Remap_LZ565.a ../../ARC/Lib/Release/Reset_560.a ../../ARC/Lib/Release/Common_exFAT.a diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/objs.txt b/loader/Project/Model/Loader565_Data/Release/ObjectLds/objs.txt new file mode 100644 index 000000000..48f1cae48 --- /dev/null +++ b/loader/Project/Model/Loader565_Data/Release/ObjectLds/objs.txt @@ -0,0 +1 @@ +Loader565_Data/Release/ObjectCode/prj_main.o Loader565_Data/Release/ObjectCode/usb_update.o Loader565_Data/Release/ObjectCode/uart_upgrade.o diff --git a/loader/Project/Model/Loader565_Data/Release/ObjectLds/replace.lds b/loader/Project/Model/Loader565_Data/Release/ObjectLds/replace.lds new file mode 100644 index 000000000..7f47599f2 --- /dev/null +++ b/loader/Project/Model/Loader565_Data/Release/ObjectLds/replace.lds @@ -0,0 +1,172 @@ +/* Linker script for malta + * + * Version: Sourcery G++ Lite 4.3-221 + * Support: https://support.codesourcery.com/GNUToolchain/ + * + * Copyright (c) 2007, 2008, 2009 CodeSourcery, Inc. + * + * The authors hereby grant permission to use, copy, modify, distribute, + * and license this software and its documentation for any purpose, provided + * that existing copyright notices are retained in all copies and that this + * notice is included verbatim in any distributions. No written agreement, + * license, or royalty fee is required for any of the authorized uses. + * Modifications to this software may be copyrighted by their authors + * and need not follow the licensing terms described here, provided that + * the new terms are clearly indicated on the first page of each file where + * they apply. + * */ + +/* Rule: + * 1. to use .o in project layer just type the .o name with file extension. (UiFlow.o) + * 2. to use .o in library layer have to add prefix module name. (DscSystem/SysTask.o) + * */ + +OUTPUT_ARCH(arm) +ENTRY(__start) +SEARCH_DIR(.) + +SECTIONS +{ + .BOOT_EXEC 0xF07C0000|0x00000000: + AT (0) + { + _load_BOOT_EXEC_start_base = .; + KEEP(Reset_560/reset.o(.data*)); + Reset_560/reset.o(.text*); + _load_BOOT_EXEC_end_base = .; + } + .LOADER_CONFIGRAM (0xF07C0000|0x00000000) + 0x30: + AT (0x30) + { + _load_LOADER_CONFIGRAM_start_base = .; + KEEP(Remap_LZ565/configramLZ.o(.data*)); + _load_LOADER_CONFIGRAM_end_base = .; + _load_LOADER_CONFIGRAM_FREQ_PARAM_start_base = .; + KEEP(Reset_560/configramFreqParam.o(.data*)); + _load_LOADER_CONFIGRAM_FREQ_PARAM_end_base = .; + } + .LOADER_CONFIGRAM2 (0xF07C0000|0x00000000) + 0x300: + AT (0x300) + { + KEEP(Reset_560/config_dram1_tbl.o(.rodata*)); + config_dram1_tbl_2_start_base = .; + KEEP(Reset_560/config_dram1_2_tbl.o(.rodata*)); + } + .LOADER_CORE2_ENTRY_PROGRAM (0xF07C0000|0x00000000) + 0x500: + AT (0x500) + { + _load_core2_entry_program_start_base = .; + KEEP(Reset_560/core2_entry.o(.text)); + _load_core2_entry_program_end_base = .; + } + .LOADER_REMAP (0xF07C0000|0x00000000) + 0x600: + AT (0x600) + { + _load_LOADER_REMAP_start_base = .; + Remap_LZ565/doremapLZ565.o(.text*); + _load_LOADER_REMAP_end_base = .; + _load_vector_exp_table_start_base = .; + KEEP(Reset_560/exp.o(.text*)); + _load_vector_exp_table_end_base = .; + KEEP(Reset_560/configDDR.o(.text*)); + KEEP(Reset_560/configDDR.o(.rodata*)); + KEEP(Driver/fuart.o(.text* .data* .rodata*)); + KEEP(Debug/debug.o (.text* .data* .bss*)); + KEEP(Common_exFAT/global.o (.text* .data* .bss* .rodata*)); + . = ALIGN(4); /* This is MUST. Ensure section size is word aligned. */ + } + + . = ALIGN(4); + .LOADER_EXEC ADDR(.LOADER_REMAP) + SIZEOF(.LOADER_REMAP) : + AT (LOADADDR(.LOADER_REMAP) + SIZEOF(.LOADER_REMAP)) + { + _loader_exec_start_base = .; + KEEP(Ctrl_Flow/main.o(.part1*)); + KEEP(Driver/rtc.o(.part1*)); + * (.part1) + _loader_exec_end_base = .; + } + _loader_exec_cpu_addr = LOADADDR(.LOADER_EXEC) + ADDR(.BOOT_EXEC); + _loader_exec_size = SIZEOF(.LOADER_EXEC); + + . = ALIGN(4); + .text 0x1000000: + AT (LOADADDR(.LOADER_EXEC) + SIZEOF(.LOADER_EXEC)) + { + _loader_exec_compres_start = .; + _internal_strg_param_start = .; + *(.text*) + _loader_exec_compres_end = .; + } + _loader_exec_compress_load_base = LOADADDR(.text); + _loader_exec_compress_load_cpu_addr = LOADADDR(.text) + ADDR(.BOOT_EXEC); + .ARM.exidx : + { + *(.ARM.exidx*) + *(.gnu.linkonce.armexidx.*) + } + . = ALIGN(4); + .rodata : + { + *(.rodata*) + . = ALIGN(8); /* This is MUST. Ensure ro size is 2 word aligned. */ + } + .dram_text : + AT (LOADADDR(.rodata) + SIZEOF(.rodata)) + { + _loader_dram_text_start_base = .; + * (.dram_text) + } + _loader_dram_text_cpu_addr = LOADADDR(.dram_text) + ADDR(.BOOT_EXEC); + _loader_dram_text_size = SIZEOF(.dram_text); + .data : + AT (LOADADDR(.dram_text) + SIZEOF(.dram_text)) + { + _loader_data_start_base = .; + _load_general_var_base = .; + _image_general_var_base = .; + *(.data*) + _image_general_var_limit = .; + } + _loader_data_cpu_addr = LOADADDR(.data) + ADDR(.BOOT_EXEC); + _loader_data_size = SIZEOF(.data); + .dummy : { LONG (0x00000000) } + . = ALIGN(4); + .got : { *(.got) } + . = ALIGN(4); + .bss : { /* locate bss at DRAM end */ + _image_general_zi_zi_base = .; + *(.bss) + . = ALIGN(0x4000); + _ttb = .; + . = . + 0x4000; + . = ALIGN(0x400); + _ttb_lv2 = .; + . = . + 0x400; + } + .common : + { + __common_base = ABSOLUTE(.); + /* collect "small" un-initialized global data (mark "C" in sym file) */ + *(.scommon*) + /* collect "large" un-initialized global data (mark "B" in sym file) */ + *(COMMON) + __common_limit = ABSOLUTE(.); + } + . = ALIGN(64); + _image_general_zi_zi_limit = ABSOLUTE(.); + _load_load_reset_base = .; + _image_load_reset_base = .; + _image_load_reset_length = .; + _image_load_reset_zi_base = .; + _image_load_reset_zi_limit = .; + . = ALIGN(64); + .loader_heap : + { + _loader_heap_base = .; + . += 0xA0000 + 0x20000 + 0x80000; + } + . = ALIGN(64); + _stack_start = .; + +} diff --git a/loader/Project/Model/Src/prj_main.c b/loader/Project/Model/Src/prj_main.c index 342dbb886..15add37aa 100755 --- a/loader/Project/Model/Src/prj_main.c +++ b/loader/Project/Model/Src/prj_main.c @@ -36,9 +36,10 @@ /* S530*/ #elif (MODEL == MODEL_S530) #define GPIO_KEY_TEST S_GPIO_6 +#define GPIO_ISP_KEY_DET C_GPIO_4 #define GPIO_FASTBOOT_KEY GPIO_KEY_TEST #define GPIO_SPECIAL_KEY GPIO_KEY_TEST - +#define GPIO_SPECIAL_KEY2 GPIO_ISP_KEY_DET /* Unknown */ #else #error "Unknown Model" @@ -94,9 +95,23 @@ static BOOL prj_isSpecialKeyPressed(void) // Add the necessary code.. // if (gpio_getPin(P_GPIO_8) && gpio_getPin(P_GPIO_9)) { + /*if (!gpio_getPin(GPIO_SPECIAL_KEY)) { + debug_msg("GPIO_SPECIAL_KEY 0\r\n"); + }else{ + debug_msg("GPIO_SPECIAL_KEY 1\r\n"); + } + if((gpio_getPin(GPIO_SPECIAL_KEY2))){ + debug_msg("GPIO_SPECIAL_KEY2 1\r\n"); + }else{ + debug_msg("GPIO_SPECIAL_KEY2 0\r\n"); + }*/ + if (!gpio_getPin(GPIO_SPECIAL_KEY)) { return TRUE; - } else { + } + else if(!(gpio_getPin(GPIO_SPECIAL_KEY2))){ + return TRUE; + }else { return FALSE; } //return TRUE; @@ -163,7 +178,6 @@ _THUMB2 void prj_main(void) debug_msg("."); debug_msg(Dec2HexStr2Bytes((LoaderInternalInfo[1] >> 16) & 0xFF)); debug_msg("\r\n"); - // Print project layer info if((LoaderInternalInfo[6] & 0x100000) == 0x100000) { if(gpio_getPin((((LoaderInternalInfo[6]>>12)&0x7)*32) + ((LoaderInternalInfo[6]>>15)&0x1f))) { diff --git a/rtos/BSP/u-boot/include/configs/nvt-na51089-evb.h b/rtos/BSP/u-boot/include/configs/nvt-na51089-evb.h index 5e064da43..8b7654332 100755 --- a/rtos/BSP/u-boot/include/configs/nvt-na51089-evb.h +++ b/rtos/BSP/u-boot/include/configs/nvt-na51089-evb.h @@ -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 diff --git a/rtos/code/application/source/cardv/Makefile b/rtos/code/application/source/cardv/Makefile index 9b0a2c2fb..2bc2b4a3d 100644 --- a/rtos/code/application/source/cardv/Makefile +++ b/rtos/code/application/source/cardv/Makefile @@ -408,7 +408,6 @@ SRC += \ ./SrcCode/Gx/GxPower/GxTime.c \ ./SrcCode/Gx/GxPower/GxPower.c \ ./SrcCode/Gx/GxPower/GxPower_cmd.c \ - ./SrcCode/Gx/GxPower/sf_battery.c \ ./SrcCode/Gx/GxPower/GxPowerVerInfo.c \ ./SrcCode/Gx/GxSound/sxsound/PlaySoundAPI.c \ ./SrcCode/Gx/GxSound/sxsound/PlaySoundTsk.c \ diff --git a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxHunting.c b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxHunting.c index 7bddfee8a..23cdaeb52 100644 --- a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxHunting.c +++ b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/DxHunting.c @@ -25,6 +25,7 @@ #include "PrjInc.h" #if HUNTING_CAMERA_MCU == ENABLE #include +#include "sys_fastboot.h" #endif #define IRLED_CTRL_BY_PWM ENABLE//DISABLE// @@ -160,7 +161,6 @@ UINT32 DrvGPIO_GetPhotoMovieModeFromMonitor(void) //sf_mcu_power_on_para_get(SF_MCU_POWERON); //sf_mcu_wdg_set(5); //sf_mcu_reg_set(SF_MCU_CTRL_MODULE_PIR, 1); - switch(value) { case PWR_OFF: @@ -169,6 +169,8 @@ UINT32 DrvGPIO_GetPhotoMovieModeFromMonitor(void) case PWR_ON_SETUP: #if SF_IQ_TEST == DISABLE case PWR_ON_AUTO: + //fastboot_msg_en(ENABLE); + //Delay_DelayMs(300); case PWR_ON_SMS: case PWR_ON_DAILY_REPORT: case PWR_ON_GPRS_INIT://A @@ -319,7 +321,7 @@ void DrvGPIO_IRLed_Turn_Onoff(BOOL onoff) CHKPNT; //printf("%s:%d e\n", __FUNCTION__, __LINE__); } - else + else { //CHKPNT; pwm_pwm_disable(IRLED_PWMID); diff --git a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/IOCfg.c b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/IOCfg.c index a672f9e64..80bce0167 100755 --- a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/IOCfg.c +++ b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/IOCfg.c @@ -19,7 +19,6 @@ #include "DrvExt.h" #include "IOCfg.h" #include "IOInit.h" - /////////////////////////////////////////////////////////////////////////////// #define __MODULE__ DxDrv #define __DBGLVL__ 2 // 0=FATAL, 1=ERR, 2=WRN, 3=UNIT, 4=FUNC, 5=IND, 6=MSG, 7=VALUE, 8=USER @@ -158,14 +157,14 @@ void Dx_InitIO(void) // Config IO for external device Dx_Open(Dx_GetObject(DX_CLASS_POWER_EXT)); MCUCtrl_Open(); #endif -gpio_setDir(GPIO_IR_LED_PWR, GPIO_DIR_OUTPUT); -gpio_clearPin(GPIO_IR_LED_PWR); + gpio_setDir(GPIO_IR_LED_PWR, GPIO_DIR_OUTPUT); + gpio_clearPin(GPIO_IR_LED_PWR); -gpio_setDir(GPIO_IRCUT_MEN1, GPIO_DIR_OUTPUT); -gpio_clearPin(GPIO_IRCUT_MEN1); + gpio_setDir(GPIO_IRCUT_MEN1, GPIO_DIR_OUTPUT); + gpio_clearPin(GPIO_IRCUT_MEN1); -gpio_setDir(GPIO_IRCUT_MEN2, GPIO_DIR_OUTPUT); -gpio_clearPin(GPIO_IRCUT_MEN2); + gpio_setDir(GPIO_IRCUT_MEN2, GPIO_DIR_OUTPUT); + gpio_clearPin(GPIO_IRCUT_MEN2); } diff --git a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/Source.mk b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/Source.mk index 88c2b4ea5..adcc3c34c 100755 --- a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/Source.mk +++ b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/Source.mk @@ -11,7 +11,6 @@ DX_SRC = \ ./SrcCode/Dx/$(MODEL)/IOCfg.c \ ./SrcCode/Dx/$(MODEL)/DxUsb.c \ ./SrcCode/Dx/$(MODEL)/DxHunting.c \ - ./SrcCode/Dx/$(MODEL)/sf_led.c \ # ./SrcCode/Dx/$(MODEL)/DxCamera_Sensor.c \ # ./SrcCode/Dx/$(MODEL)/DxCfg.c diff --git a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/sf_led.c b/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/sf_led.c deleted file mode 100755 index e08aede18..000000000 --- a/rtos/code/application/source/cardv/SrcCode/Dx/565_HUNTING_EVB_LINUX_4G_S530/sf_led.c +++ /dev/null @@ -1,45 +0,0 @@ -/************************************************************************** - * - * Copyright (c) 2009-2023 by SiFar Technology, Inc. - * - * This software is copyrighted by and is the property of SiFar - * Technology, Inc.. All rights are reserved by SiFar Technology, Inc.. - * This software may only be used in accordance with the corresponding - * license agreement. Any unauthorized use, duplication, distribution, - * or disclosure of this software is expressly forbidden. - * - * This Copyright notice MUST not be removed or modified without prior - * written consent of SiFar Technology, Inc.. - * - * SiFar Technology, Inc. reserves the right to modify this software without notice. - * - * Author: Payton - * Ver: 1.0.0 2023.01.29 - * Description: - * -**************************************************************************/ - -#include -#include -#include -#include "DxOutput.h" -#include "DxCfg.h" -#include "IOCfg.h" -#include "DxHunting.h" -#include "kwrap/type.h" -#include -#include "modelext_info.h" -#include "DrvExt.h" -#include "PrjInc.h" -#include - - -void sf_trigger_time_led_cb(UINT32 cnt) -{ - printf("[%s:%d] led\n", __FUNCTION__, __LINE__); - gpio_direction_output(GPIO_GREEN_LED, 1); - gpio_set_value(GPIO_GREEN_LED, cnt); -} - - - diff --git a/rtos/code/application/source/cardv/SrcCode/Dx/include/sf_led.h b/rtos/code/application/source/cardv/SrcCode/Dx/include/sf_led.h deleted file mode 100755 index e18e6950a..000000000 --- a/rtos/code/application/source/cardv/SrcCode/Dx/include/sf_led.h +++ /dev/null @@ -1,26 +0,0 @@ -/************************************************************************** - * - * Copyright (c) 2009-2023 by SiFar Technology, Inc. - * - * This software is copyrighted by and is the property of SiFar - * Technology, Inc.. All rights are reserved by SiFar Technology, Inc.. - * This software may only be used in accordance with the corresponding - * license agreement. Any unauthorized use, duplication, distribution, - * or disclosure of this software is expressly forbidden. - * - * This Copyright notice MUST not be removed or modified without prior - * written consent of SiFar Technology, Inc.. - * - * SiFar Technology, Inc. reserves the right to modify this software without notice. - * - * Author: Payton - * Ver: 1.0.0 2023.01.29 - * Description: - * -**************************************************************************/ - - -void sf_trigger_time_led_cb(UINT32 cnt); -void sf_trigger_time_led_cb_init(void); - - diff --git a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h index fd9837c32..4a552b353 100644 --- a/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h +++ b/rtos/code/application/source/cardv/SrcCode/PrjCfg_HUNTING_S530.h @@ -98,7 +98,7 @@ #define POWERON_TRACE DISABLE //stop and wait for user enter cmd: "dsc boot" #define POWERON_BOOT_REPORT ENABLE #define POWERON_FAST_BOOT DISABLE -#define POWERON_FAST_BOOT_MSG DISABLE // disable boot msg for fast boot, but hard to debug +#define POWERON_FAST_BOOT_MSG ENABLE // disable boot msg for fast boot, but hard to debug #define POWERON_FAST_CPU2_BOOT DISABLE #define POWERON_FAST_RECORD DISABLE #define POWERON_FAST_WIFI DISABLE //NOTE: need to enable POWERON_FAST_CPU2_BOOT too @@ -938,7 +938,7 @@ #define STOP_REC_BK DISABLE #define NMEDIAPLAY_FUNC DISABLE // switch SMediaPlay and NMediaPlay flow, use NMediaPlay when DISABLE to be set. #define HUNTING_CAMERA_MODEL ENABLE -#define HUNTING_CAMERA_SYS_PARTITION_NAME sys +#define HUNTING_CAMERA_SYS_PARTITION_NAME sys #define HUNTING_CAMERA_BOOT_LINUX ENABLE #define HUNTING_CAMERA_MCU ENABLE #define HUNTING_CAMERA_4G ENABLE @@ -954,7 +954,8 @@ #define HUNTING_MCU_UART ENABLE #define HUNTING_IR_LED_940 ENABLE #define SF_EXIF_MN_BUF_SIZE 256 -#define SF_BASE_VERSION "7MD4RCwD6T2" +#define SF_BASE_VERSION "7MD4RCwD6T4" +#define HW_S530 1 #define SF_TRIGGER_TIME_TEST DISABLE #define SF_IQ_TEST DISABLE diff --git a/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c b/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c index f73c7d3b6..7886aa314 100644 --- a/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c +++ b/rtos/code/application/source/cardv/SrcCode/System/rtos-main.c @@ -86,6 +86,7 @@ #if HUNTING_CAMERA_MCU == ENABLE #include #include "sf_led.h" +#include "sf_battery.h" #endif //dis @@ -389,6 +390,13 @@ static void mcu_task(void) sf_mcu_wdg_set(5); sf_mcu_reg_set(SF_MCU_CTRL_MODULE_PIR, 1); + //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); + + sf_battery_thread_init(); + //vos_util_delay_ms(15); //if(sf_is_night_mode(1) !=TRUE) //{ diff --git a/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c b/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c index 9c9a212b8..94918ec2d 100755 --- a/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c +++ b/rtos/code/application/source/cardv/SrcCode/System/sys_linuxboot.c @@ -22,7 +22,9 @@ #include #include #include "DxHunting.h" - +#if HUNTING_CAMERA_MCU == ENABLE +#include "sf_mcu.h" +#endif #define CFG_BOOTARG_EXTRA_MAX_LEN 0x100 /* for init.d script parsing by (dmesg | grep xxx) */ #define CFG_INDEP_RAMDISK ENABLE @@ -837,7 +839,11 @@ void linuxboot_set_extra_bootarg(char* bootarg) static int make_bootargs(LINUXTMP_PARTITION *p_linuxtmp, unsigned int bootts_begin) { //static char bootargs[] = "root=/dev/ram0 rootfstype=ramfs rdinit=/linuxrc bootts=568047,1720128 resume_addr=0x00007e88 user_debug=0xff"; - +#if HUNTING_CAMERA_MCU == ENABLE + char PowerOnModeStr[32] = {'\0'}; + snprintf(PowerOnModeStr, sizeof(PowerOnModeStr), "Mode=%d",sf_get_power_on_mode()); + linuxboot_set_extra_bootarg(PowerOnModeStr); +#endif p_linuxtmp->bootargs_addr = p_linuxtmp->tmp_curr; p_linuxtmp->bootargs_size = CFG_BOOTARG_MAX_LEN + CFG_BOOTARG_EXTRA_MAX_LEN; p_linuxtmp->tmp_curr += p_linuxtmp->bootargs_size; diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c index a74a92b85..7d0cffb44 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/MovieFast/MovieFast.c @@ -31,6 +31,7 @@ #include "flow_boot_linux.h" #include "DxHunting.h" #include "flow_preview.h" +#include #if defined(_UI_STYLE_LVGL_) #include "flow_lvgl.h" @@ -75,10 +76,10 @@ static DCF_HANDLE g_dcf_hdl = 0; static ID MOVIEFAST_FLG_ID = 0; static UINT32 g_moviefast_tsk_run = 1; static UINT32 g_moviefast_poweroff_tsk_run = 1; -static UINT32 g_MovieFast_InitCommonMemFinish=0; static THREAD_HANDLE g_moviefast_tsk_id = 0; static THREAD_HANDLE g_moviefast_power_off_tsk_id = 0; static BOOL g_bIsRecStatus = FALSE; +static VOS_TICK g_rec_start_tick = 0; //local function @@ -103,6 +104,27 @@ static void MovieFast_Close(void); rowrc.max_p_qp = 51; hd_videoenc_set(path_id, HD_VIDEOENC_PARAM_OUT_ROW_RC, &rowrc); } +static VOID MovieFast_Set_RecStartTick(VOS_TICK tick) +{ + g_rec_start_tick = tick; +} + +static BOOL MovieFast_Get_RecStartTick(VOS_TICK* tick) +{ + if(tick == NULL){ + DBG_ERR("tick can't be null!\n"); + return FALSE; + } + + if(g_rec_start_tick == 0){ + DBG_ERR("rec start tick is invalid!\n"); + return FALSE; + } + + *tick = g_rec_start_tick; + + return TRUE; +} static ER MovieFast_InstallID(void) { @@ -130,7 +152,7 @@ static THREAD_RETTYPE MovieFast_PowerOffTsk(void) while(g_moviefast_poweroff_tsk_run) { if(TRUE == flow_preview_get_stop_flag()){ - DBG_ERR("Stop!!!!!!!!!!!!!!!!!\n"); + DBG_WRN("detected stop signal, power off ...\n"); break; } @@ -181,6 +203,48 @@ static THREAD_RETTYPE MovieFast_CmdTsk(void) THREAD_RETURN(0); } +#if POWERON_BOOT_REPORT == ENABLE + +/******************************************************************** + * extern PhotoFast function + *********************************************************************/ +extern UINT32 PhotoFast_GetTriggerFrmCnt(VOID); +extern BOOL PhotoFast_GetTick(UINT32 cnt, VOS_TICK* tick); +extern void PhotoFast_TriggerFrm_Dump(void); + +static void MovieFast_PV_ChangeMode_Dump(void) +{ + VOS_TICK rec_start_tick; + + if(MovieFast_Get_RecStartTick(&rec_start_tick) == TRUE){ + + UINT32 cnt = PhotoFast_GetTriggerFrmCnt(); + VOS_TICK trig_tick; + + if(PhotoFast_GetTick(cnt, &trig_tick) == TRUE){ + + DBG_DUMP("\n\n**********************************************************\n" + " P + V Change mode: %lu ms\n" + "**********************************************************\n", + vos_perf_duration(trig_tick, rec_start_tick) / 1000 + ); + } + } +} + +static void MovieFast_PV_Info_Dump(void) +{ + + + /* report trigger speed */ + PhotoFast_TriggerFrm_Dump(); + + /* report P + V change mode speed */ + MovieFast_PV_ChangeMode_Dump(); +} + +#endif + static void MovieFast_ShutDown(void) { UINT8 mode = DrvGPIO_GetPhotoMovieModeFromMonitor(); @@ -201,8 +265,7 @@ static void MovieFast_ShutDown(void) vos_perf_list_dump(); if(mode == DX_HUNTING_MODE_PHOTO_MOVIE){ - extern void PhotoFast_TriggerFrm_Dump(void); - PhotoFast_TriggerFrm_Dump(); + MovieFast_PV_Info_Dump(); } #endif @@ -232,8 +295,7 @@ static void MovieFast_ShutDown(void) vos_perf_list_dump(); if(mode == DX_HUNTING_MODE_PHOTO_MOVIE){ - extern void PhotoFast_TriggerFrm_Dump(void); - PhotoFast_TriggerFrm_Dump(); + MovieFast_PV_Info_Dump(); } #endif @@ -552,7 +614,6 @@ static void MovieFast_SetRecInfoByUISetting(void) } } - static void MovieFast_OnRecStart(void) { UINT32 i, mask; @@ -656,7 +717,6 @@ static void MovieFast_OnRecStart(void) { // start clone path first due to some functions (such as 2v1a need this procedure) if (clone_rec_mask & mask) { - vos_perf_list_mark("sie_vd", __LINE__, 5); ImageApp_MovieMulti_SetParam(gMovie_Clone_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_WRITE_BLKSIZE, 0x200000); ImageApp_MovieMulti_SetParam(gMovie_Clone_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_BUFRESSEC, uifile_buffer_reserved_sec); //ImageApp_MovieMulti_RecStart(gMovie_Clone_Info[i].rec_id); @@ -671,10 +731,7 @@ static void MovieFast_OnRecStart(void) } if (movie_rec_mask & mask) { - #if SF_TRIGGER_TIME_TEST == ENABLE && HUNTING_CAMERA_MCU == ENABLE - sf_trigger_time_led_cb(1); - #endif - vos_perf_list_mark("sie_vd", __LINE__, 6); + ImageApp_MovieMulti_SetParam(gMovie_Rec_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_WRITE_BLKSIZE, 0x200000); ImageApp_MovieMulti_SetParam(gMovie_Rec_Info[i].rec_id, MOVIEMULTI_PARAM_FILE_BUFRESSEC, uifile_buffer_reserved_sec); //ImageApp_MovieMulti_RecStart(gMovie_Rec_Info[i].rec_id); @@ -688,9 +745,17 @@ static void MovieFast_OnRecStart(void) #endif } + #if SF_TRIGGER_TIME_TEST == ENABLE && HUNTING_CAMERA_MCU == ENABLE + sf_trigger_time_led_cb(1); + #endif + + VOS_TICK rec_start_tick; + vos_perf_mark(&rec_start_tick); + MovieFast_Set_RecStartTick(rec_start_tick); + mask <<= 1; } - //nvt_cmdsys_runcmd("venc info"); + nvt_cmdsys_runcmd("venc info"); } static void MovieFast_OnRecStop(void) @@ -881,29 +946,32 @@ int MovieFast_GetWaterLogoSource(const UINT32 recWidth,WATERLOGO_BUFFER *waterSr THREAD_RETTYPE MovieFast_InitFileNamingThread(void *arg) { - if(fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK){ - goto EXIT; + if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_PHOTO_MOVIE ){ + + if(fastboot_wait_done_timeout(BOOT_INIT_FILESYSOK, FASTBOOT_WAIT_FILESYS_TIMEOUT_MS) != E_OK){ + goto EXIT; + } + + DCF_InstallID(); + + DCF_OPEN_PARM dcfParm = { + .Drive = 'A', + .WorkbuffAddr = mempool_dcf, + .WorkbuffSize = POOL_SIZE_DCF_BUFFER, + }; + g_dcf_hdl = DCF_Open(&dcfParm); + + DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FOLDER, TRUE); + DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FILE, TRUE); + DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); + DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); + DCF_SetDirFreeChars(DCF_DIR_NAME); + DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); + DCF_ScanObj(); + + fastboot_set_done(BOOT_INIT_FILENAMINGOK); } - DCF_InstallID(); - - DCF_OPEN_PARM dcfParm = { - .Drive = 'A', - .WorkbuffAddr = mempool_dcf, - .WorkbuffSize = POOL_SIZE_DCF_BUFFER, - }; - g_dcf_hdl = DCF_Open(&dcfParm); - - DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FOLDER, TRUE); - DCF_SetParm(DCF_PRMID_REMOVE_DUPLICATE_FILE, TRUE); - DCF_SetParm(DCF_PRMID_SET_VALID_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_MP4|DCF_FILE_TYPE_MOV); - DCF_SetParm(DCF_PRMID_SET_DEP_FILE_FMT, DCF_FILE_TYPE_JPG|DCF_FILE_TYPE_WAV|DCF_FILE_TYPE_MPO); - DCF_SetDirFreeChars(DCF_DIR_NAME); - DCF_SetFileFreeChars(DCF_FILE_TYPE_ANYFORMAT, DCF_FILE_NAME); - DCF_ScanObj(); - - fastboot_set_done(BOOT_INIT_FILENAMINGOK); - EXIT: THREAD_RETURN(0); } @@ -927,21 +995,7 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) DBG_FUNC("\r\n"); Movie_CommPoolInit(); - g_MovieFast_InitCommonMemFinish = 1; -/* -#if (defined(_sen_os05a10_) || defined(_sen_imx335_)) - SysSetFlag(FL_MOVIE_SIZE, MOVIE_SIZE_FRONT_2560x1440P30); -#elif (defined(_sen_imx290_) || defined(_sen_imx291_)) - SysSetFlag(FL_MOVIE_SIZE, MOVIE_SIZE_FRONT_1920x1080P30); -#else - SysSetFlag(FL_MOVIE_SIZE, MOVIE_SIZE_FRONT_2560x1440P30); -#endif - - SysSetFlag(FL_MOVIE_TIMELAPSE_REC, MOVIE_TIMELAPSEREC_OFF); - SysSetFlag(FL_MovieAudioRec, MOVIE_AUD_REC_ON); - SysSetFlag(FL_MOVIE_CYCLIC_REC, MOVIE_CYCLICREC_1MIN); - */ MovieFast_SetRecInfoByUISetting(); Set_NIGHTMODE(0, 1); Set_AEMODE(0); @@ -1021,12 +1075,11 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PRARM_FILEDB_MAX_MUM, 5000); - MOVIEMULTI_IPL_SIZE_INFO ipl_size={{2560,1440},30}; + MOVIEMULTI_IPL_SIZE_INFO ipl_size={{2560,1440}, 30}; ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_USER_IMG_SIZE, (UINT32)&ipl_size); ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1 , MOVIEMULTI_PARAM_IPL_FORCED_IMG_SIZE, MOVIE_IPL_SIZE_USER); - #if (ANR_FUNC == ENABLE) HD_AUDIOCAP_ANR audio_cfg_param = {0}; @@ -1039,9 +1092,10 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_AUD_ACAP_ANR, (UINT32)&audio_cfg_param); #endif + setet_preset_param(); + ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_FILE_USE_FILEDB, FALSE); ImageApp_MovieMulti_SetParam(_CFG_REC_ID_1, MOVIEMULTI_PARAM_FILE_CB_CLOSED_FILE_INFO, TRUE); - setet_preset_param(); ImageApp_MovieMulti_Open(); for (i = 0; i < SENSOR_CAPS_COUNT; i++) { @@ -1067,8 +1121,6 @@ THREAD_RETTYPE MovieFast_InitMovieModeThread(void *arg) MovieFast_InstallID(); vos_util_delay_ms(132); - //Set_AEMODE(1); - //vos_util_delay_ms(500); if ((g_moviefast_power_off_tsk_id = vos_task_create(MovieFast_PowerOffTsk, 0, "MovieFastPwrTsk", PRI_MOVIEFAST_CMDTSK, STKSIZE_MOVIEFAST_CMDTSK)) == 0) { DBG_ERR("MovieFast_PowerOffTsk create failed.\r\n"); diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c index 3695fd40a..8f5953cf7 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFast.c @@ -86,7 +86,7 @@ static MEM_RANGE g_photo_fast_fdb_pool = { static CHAR g_photo_fast_write_file_Path[NMC_TOTALFILEPATH_MAX_LEN] = {0}; static INT32 g_photo_fast_id_mapping[PHOTO_CAP_ID_MAX] = {-1,-1}; static PHOTO_FILENAME_CB *g_fpPhotoFastFileNameCB = NULL; -static DCF_HANDLE g_dcf_hdl = -1; +static DCF_HANDLE g_dcf_hdl = 0; static HD_PATH_ID g_video_enc_path[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0}; static UINT32 g_bVideoEncPathStart[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0}; static HD_VIDEOENC_BUFINFO g_enc_buf_info[PHOTO_ENC_JPG_TYPE_MAX_ID] = {0}; @@ -724,12 +724,16 @@ INT32 PhotoFast_FileNaming_Open(void) INT32 PhotoFast_FileNaming_Close(void) { - if(g_dcf_hdl >= 0){ - DCF_Close(g_dcf_hdl); - g_dcf_hdl = -1; + if(DrvGPIO_GetPhotoMovieModeFromMonitor() != DX_HUNTING_MODE_PHOTO_MOVIE ){ + + if(g_dcf_hdl >= 0){ + DCF_Close(g_dcf_hdl); + g_dcf_hdl = -1; + } + + DCF_UnInstallID(); } - DCF_UnInstallID(); return 0; } @@ -870,7 +874,12 @@ INT32 PhotoFast_WriteFile(UINT32 Addr, UINT32 Size, UINT32 Fmt, UINT32 uiPathId) #if HUNTING_CAMERA_MCU == ENABLE char tmp[NMC_TOTALFILEPATH_MAX_LEN] = {'\0'}; - sprintf(tmp, "W%03ld%04ld.JPG", nextFolderID, nextFileID); + char str1[5] = { 0 }; + char str2[5] = { 0 }; + memcpy(str1, FilePath + 8, 3); + memcpy(str2, FilePath + 21, 4); + sprintf(tmp, "W%s%s.JPG", str1, str2); + //sprintf(tmp, "W%03ld%04ld.JPG", nextFolderID, nextFileID); strncpy(g_photo_fast_write_file_Path, tmp, sizeof(g_photo_fast_write_file_Path) - 1); DBG_IND("last send file:%s\r\n", tmp); #else diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastCapDateImprint.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastCapDateImprint.c index fcb88e503..df7c1ff20 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastCapDateImprint.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastCapDateImprint.c @@ -442,35 +442,34 @@ void PhotoFastCapDateImprint_UninitBuff(void) INT32 PhotoFastCapDateImprint_GenYuvData(HD_VIDEO_FRAME *pDstImg) { - HD_VIDEO_FRAME src_img; -// VF_GFX_COPY param_img = {0}, - VF_GFX_COPY param_text = {0}; + HD_VIDEO_FRAME src_img; +// VF_GFX_COPY param_img = {0}, + VF_GFX_COPY param_text = {0}; + UINT32 target_ofs_x, target_ofs_y; -// lv_user_font_conv(&stamp_img.draw_cfg, &stamp_img.mem_cfg); +// lv_user_font_conv(&stamp_img.draw_cfg, &stamp_img.mem_cfg); // -// lv_user_font_conv_cfg_to_hd_frame( -// &stamp_img.draw_cfg, -// &stamp_img.mem_cfg, -// stamp_img.buff_size.width, -// stamp_img.buff_size.height, -// &src_img -// ); +// lv_user_font_conv_cfg_to_hd_frame( +// &stamp_img.draw_cfg, +// &stamp_img.mem_cfg, +// stamp_img.buff_size.width, +// stamp_img.buff_size.height, +// &src_img +// ); // -// memset(¶m_img, 0, sizeof(param_img)); -// param_img.src_img = src_img; -// param_img.src_region.x = 0; -// param_img.src_region.y = 0; -// param_img.src_region.w = src_img.dim.w; -// param_img.src_region.h = src_img.dim.h; -// param_img.dst_img = *pDstImg; -// param_img.dst_pos.x = 0; -// param_img.dst_pos.y = 0; -// param_img.alpha = 255; -// param_img.colorkey = CKEY; -// param_img.engine = 0; -// vf_gfx_copy(¶m_img); - - printf("[%s:%d] s\n",__FUNCTION__,__LINE__); +// memset(¶m_img, 0, sizeof(param_img)); +// param_img.src_img = src_img; +// param_img.src_region.x = 0; +// param_img.src_region.y = 0; +// param_img.src_region.w = src_img.dim.w; +// param_img.src_region.h = src_img.dim.h; +// param_img.dst_img = *pDstImg; +// param_img.dst_pos.x = 0; +// param_img.dst_pos.y = 0; +// param_img.alpha = 255; +// param_img.colorkey = CKEY; +// param_img.engine = 0; +// vf_gfx_copy(¶m_img); /* select font by image width */ @@ -481,34 +480,59 @@ INT32 PhotoFastCapDateImprint_GenYuvData(HD_VIDEO_FRAME *pDstImg) stamp_text.draw_cfg.string.font = (lv_font_t *) lv_plugin_get_font(FONT)->font; #endif - stamp_text.draw_cfg.string.text = PhotoFast_InitStrBuf(); - - lv_user_font_conv_calc_buffer_size(&stamp_text.draw_cfg, &stamp_text.buff_size); - lv_user_font_conv(&stamp_text.draw_cfg, &stamp_text.mem_cfg); + stamp_text.draw_cfg.string.text = PhotoFast_InitStrBuf(); + + lv_user_font_conv_calc_buffer_size(&stamp_text.draw_cfg, &stamp_text.buff_size); + lv_user_font_conv(&stamp_text.draw_cfg, &stamp_text.mem_cfg); - lv_user_font_conv_cfg_to_hd_frame( - &stamp_text.draw_cfg, - &stamp_text.mem_cfg, - stamp_text.buff_size.width, - stamp_text.buff_size.height, - &src_img - ); + lv_user_font_conv_cfg_to_hd_frame( + &stamp_text.draw_cfg, + &stamp_text.mem_cfg, + stamp_text.buff_size.width, + stamp_text.buff_size.height, + &src_img + ); - memset(¶m_text, 0, sizeof(param_text)); - param_text.src_img = src_img; - param_text.src_region.x = 0; - param_text.src_region.y = 0; - param_text.src_region.w = src_img.dim.w; - param_text.src_region.h = src_img.dim.h; - param_text.dst_img = *pDstImg; - param_text.dst_pos.x = param_text.dst_img.dim.w - param_text.src_img.dim.w - (param_text.src_img.dim.h); - param_text.dst_pos.y = param_text.dst_img.dim.h - param_text.src_img.dim.h - (param_text.src_img.dim.h); + memset(¶m_text, 0, sizeof(param_text)); + param_text.src_img = src_img; + param_text.src_region.x = 0; + param_text.src_region.y = 0; + param_text.src_region.w = src_img.dim.w; + param_text.src_region.h = src_img.dim.h; + param_text.dst_img = *pDstImg; - param_text.alpha = 255; - param_text.colorkey = CKEY; - param_text.engine = 0; - vf_gfx_copy(¶m_text); - printf("[%s:%d] e\n",__FUNCTION__,__LINE__); + target_ofs_x = param_text.src_img.dim.w + param_text.src_img.dim.h; + target_ofs_y = param_text.src_img.dim.h + param_text.src_img.dim.h; + + /********************************************************** + * bounds checking + **********************************************************/ + if(param_text.dst_img.dim.w >= target_ofs_x){ + param_text.dst_pos.x = param_text.dst_img.dim.w - target_ofs_x; + } + else if(param_text.dst_img.dim.w >= param_text.src_img.dim.w){ + param_text.dst_pos.x = param_text.dst_img.dim.w - param_text.src_img.dim.w; + } + else{ + DBG_WRN("stamp width(%lu) exceed slice width\n", target_ofs_x); + return E_OK; + } + + if(param_text.dst_img.dim.h >= target_ofs_y){ + param_text.dst_pos.y = param_text.dst_img.dim.h - target_ofs_y; + } + else if(param_text.dst_img.dim.h >= param_text.src_img.dim.h){ + param_text.dst_pos.y = param_text.dst_img.dim.h - param_text.src_img.dim.h; + } + else{ + DBG_WRN("stamp height + padding (%lu) exceed slice height\n", target_ofs_y); + return E_OK; + } + + param_text.alpha = 255; + param_text.colorkey = CKEY; + param_text.engine = 0; + vf_gfx_copy(¶m_text); return E_OK; } diff --git a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c index 8b2e751b4..0b5e2b604 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c +++ b/rtos/code/application/source/cardv/SrcCode/UIApp/PhotoFast/PhotoFastSliceEncode.c @@ -27,6 +27,7 @@ * independent thumbnail *********************************************************************************/ +#define PHOTOFAST_FAST_CLOSE 1 #define PHOTOFAST_SLICE_ENC_DBG_DUMP 0 #define PHOTOFAST_SLICE_ENC_DBG_PRIMARY_YUV 0 @@ -486,7 +487,11 @@ static INT32 PhotoFast_SliceEncode_Alloc_Buffer(PhotoFast_MEM_Info* info, char* void *va_ptr; HD_COMMON_MEM_DDR_ID ddr_id = DDR_ID0; +#if PHOTOFAST_FAST_CLOSE + if ((ret = hd_common_mem_alloc("NVTMPP_TEMP", &info->pa, (void **)&va_ptr, info->blk_size, ddr_id)) != HD_OK) { +#else if ((ret = hd_common_mem_alloc(name, &info->pa, (void **)&va_ptr, info->blk_size, ddr_id)) != HD_OK) { +#endif DBG_ERR("hd_common_mem_alloc failed(%d)\r\n", ret); return E_SYS; } @@ -1726,10 +1731,8 @@ typedef struct { lfqueue_t* queue23; /* shared with CB2 */ } PhotoFast_SliceEncode_CB3_Param; -//static PhotoFast_SliceEncode_Task_Param task1_param = {0}; static PhotoFast_SliceEncode_Task_Param task2_param = {0}; static PhotoFast_SliceEncode_Task_Param task3_param = {0}; -//static PhotoFast_SliceEncode_CB1_Param cb1_param = {0}; static PhotoFast_SliceEncode_CB2_Param cb2_param = {0}; static PhotoFast_SliceEncode_CB3_Param cb3_param = {0}; static lfqueue_t queue12 = {0}; @@ -2060,7 +2063,6 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) INT32 ret = E_OK; PhotoFast_SliceEncode_CB3_Param* param = NULL; PhotoFast_SliceEncode_Queue23_Param* queue_ele_in = NULL; -// PHOTO_CAP_CBMSG_FP PhotoCapMsgCb = (PHOTO_CAP_CBMSG_FP)Photo_CaptureCB; if(!user_data){ DBG_ERR("user_data can't be null!\n"); @@ -2121,7 +2123,7 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) snprintf(tmp, sizeof(tmp), "%s%s", PHOTO_THUMB_PATH, file_path + length - 12); /* DCF 8.3 naming rule */ snprintf(tmp + strlen(tmp) - 3, sizeof(tmp), "%s", "JPG"); #endif - DBG_DUMP("PHOTO THUMB %s\n", tmp); + DBG_IND("PHOTO THUMB %s\n", tmp); FST_FILE fp = FileSys_OpenFile(tmp, FST_OPEN_ALWAYS | FST_OPEN_WRITE); @@ -2133,9 +2135,8 @@ INT32 PhotoFast_SliceEncode_CB3(void* user_data) snprintf(tmp, sizeof(tmp), "%s/%s", SF_SEND_LIST_DIR, file_path); /* DCF 8.3 naming rule */ snprintf(tmp2, sizeof(tmp2), "%s", file_path); /* DCF 8.3 naming rule */ sf_file_thumb_cfg_fill(tmp, tmp2, queue_ele_in->jpg_thumb_size, SF_FILE_TYPE_PIC_SMALL); - DBG_DUMP("PHOTO THUMB %s \n %s\n %s\n", tmp, tmp2,file_path); - - printf("%s:%d thumbfileSize:%d thumbfileName:%s thumbfilePath:%s\n", __FUNCTION__, __LINE__,queue_ele_in->jpg_thumb_size,tmp2,tmp); + DBG_IND("PHOTO THUMB %s \n %s\n %s\n", tmp, tmp2,file_path); + DBG_IND("%s:%d thumbfileSize:%d thumbfileName:%s thumbfilePath:%s\n", __FUNCTION__, __LINE__,queue_ele_in->jpg_thumb_size,tmp2,tmp); #endif } @@ -2212,23 +2213,32 @@ VOID PhotoFast_SliceEncode2_Close(VOID) DBG_DUMP("PhotoFast_SliceEncode2_Close\n"); /* stop cmd */ -// set_flg(task1_param.flag_id, FLG_PHOTO_FAST_SLICE_ENC_CMD_STOP); set_flg(task2_param.flag_id, FLG_PHOTO_FAST_SLICE_ENC_CMD_STOP); + +#if !PHOTOFAST_FAST_CLOSE set_flg(task3_param.flag_id, FLG_PHOTO_FAST_SLICE_ENC_CMD_STOP); +#endif /* check stopped */ -// wai_flg(&flag, task1_param.flag_id, FLG_PHOTO_FAST_SLICE_ENC_STA_STOPPED, TWF_ORW); wai_flg(&flag, task2_param.flag_id, FLG_PHOTO_FAST_SLICE_ENC_STA_STOPPED, TWF_ORW); + +#if !PHOTOFAST_FAST_CLOSE wai_flg(&flag, task3_param.flag_id, FLG_PHOTO_FAST_SLICE_ENC_STA_STOPPED, TWF_ORW); +#endif DBG_DUMP("slice encode finished\n"); lfqueue_destroy(&queue12); - lfqueue_destroy(&queue23); -// PhotoFast_SliceEncode_Uninit_Flag(&task1_param.flag_id); +#if !PHOTOFAST_FAST_CLOSE + lfqueue_destroy(&queue23); +#endif + PhotoFast_SliceEncode_Uninit_Flag(&task2_param.flag_id); + +#if !PHOTOFAST_FAST_CLOSE PhotoFast_SliceEncode_Uninit_Flag(&task3_param.flag_id); +#endif } INT32 PhotoFast_SliceEncode2_Open( @@ -2249,40 +2259,6 @@ INT32 PhotoFast_SliceEncode2_Open( goto EXIT; } - /*************************************************************************************** - * task1 - ***************************************************************************************/ - -// memset(&task1_param, 0, sizeof(PhotoFast_SliceEncode_Task_Param)); -// memset(&cb1_param, 0, sizeof(PhotoFast_SliceEncode_CB1_Param)); -// -// -// if(PhotoFast_SliceEncode_Init_Flag(&(task1_param.flag_id), "slice_enc_flag1") != E_OK){ -// goto EXIT; -// } -// -// task1_param.callback = PhotoFast_SliceEncode_CB1; -// task1_param.user_data = &cb1_param; -// task1_param.run = 0; -// task1_param.is_running = 0; -// task1_param.task_id = vos_task_create(_PhotoFast_SliceEncode_Worker, &task1_param, "slice_enc_tsk1", 9, 2048); -// if(!task1_param.task_id){ -// DBG_ERR("create task1 failed!\n"); -// ret = E_SYS; -// goto EXIT; -// } -// -// cb1_param.max_cnt = max_cnt; -// cb1_param.cnt = 0; -// cb1_param.queue12 = &queue12; -// -// cb1_param.period = 1000 / max_cnt; /* average ms in one second */ -//// cb1_param.period = 1000; -// -// DBG_DUMP("resume task1\n"); -// task1_param.run = 1; -// vos_task_resume(task1_param.task_id); - /*************************************************************************************** * task2 ***************************************************************************************/ @@ -2339,18 +2315,15 @@ INT32 PhotoFast_SliceEncode2_Open( cb3_param.max_cnt = max_cnt; cb3_param.cnt = 0; cb3_param.queue23 = &queue23; - DBG_DUMP("resume task3\n"); task3_param.run = 1; vos_task_resume(task3_param.task_id); /* start cmd */ -// set_flg(task1_param.flag_id, FLG_PHOTO_FAST_SLICE_ENC_CMD_START); set_flg(task2_param.flag_id, FLG_PHOTO_FAST_SLICE_ENC_CMD_START); set_flg(task3_param.flag_id, FLG_PHOTO_FAST_SLICE_ENC_CMD_START); /* check started */ -// wai_flg(&flag, task1_param.flag_id, FLG_PHOTO_FAST_SLICE_ENC_STA_STARTED, TWF_ORW); wai_flg(&flag, task2_param.flag_id, FLG_PHOTO_FAST_SLICE_ENC_STA_STARTED, TWF_ORW); wai_flg(&flag, task3_param.flag_id, FLG_PHOTO_FAST_SLICE_ENC_STA_STARTED, TWF_ORW); diff --git a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h index a1a32be0d..e5fdb479a 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h +++ b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIInfo.h @@ -778,6 +778,7 @@ enum _PHOTO_SIZE { #if PHOTO_PREVIEW_SLICE_ENC_FUNC || POWERON_FAST_SLICE_ENC PHOTO_SIZE_40M, #endif + PHOTO_SIZE_32M, PHOTO_SIZE_24M, PHOTO_SIZE_16M, PHOTO_SIZE_12M, diff --git a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIMovieMapping.c b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIMovieMapping.c index 952fc588f..42ddd8609 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIMovieMapping.c +++ b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIMovieMapping.c @@ -275,7 +275,7 @@ static MOVIE_SIZE_ITEM g_MovieSizeTable[] = { [MOVIE_SIZE_1920x1080P25] = { {1920, 1080, 25, 104857/*262144 2M = 2*1024*1024/8 */, MEDIAREC_DAR_DEFAULT, IMAGERATIO_16_9}, {1, 3, 36, 8, -8, 0}, - {1, 4, 25, 104857/*262144 2M = 2*1024*1024/8 */, 25, 26, 15, 50, 26, 15, 50, 20, 1, 8, 4}, + {1, 4, 25, 104857/*262144 2M = 2*1024*1024/8 */, 125, 26, 15, 50, 26, 15, 50, 20, 1, 8, 4}, }, [MOVIE_SIZE_1280x720P25] = { diff --git a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIPhotoMapping.c b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIPhotoMapping.c index dfe0be4a8..e5388cbeb 100644 --- a/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIPhotoMapping.c +++ b/rtos/code/application/source/cardv/SrcCode/UIWnd/LVGL_SPORTCAM/UIInfo/UIPhotoMapping.c @@ -33,6 +33,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 diff --git a/rtos/code/application/source/cardv/SrcCode/Gx/include/sf_battery.h b/rtos/code/driver/na51089/include/sf_battery.h old mode 100755 new mode 100644 similarity index 69% rename from rtos/code/application/source/cardv/SrcCode/Gx/include/sf_battery.h rename to rtos/code/driver/na51089/include/sf_battery.h index 1e87a3303..11cd9b50c --- a/rtos/code/application/source/cardv/SrcCode/Gx/include/sf_battery.h +++ b/rtos/code/driver/na51089/include/sf_battery.h @@ -5,6 +5,12 @@ typedef signed int SINT32; +typedef enum { + SF_POWER_TYPE_DC = (unsigned char)0x01, + SF_POWER_TYPE_LI_POLYER, + SF_POWER_TYPE_AA +} SF_POWERTYPE_E; + UINT32 sf_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, UINT32 adcVal); UINT32 sf_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UINT32 volt); UINT32 sf_get_max_value(UINT32 *_ValueList); @@ -19,6 +25,12 @@ 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); +BOOL sf_is_battery_low(UINT8 refresh, UINT8 nightMode); #endif diff --git a/rtos/code/driver/na51089/include/sf_led.h b/rtos/code/driver/na51089/include/sf_led.h new file mode 100755 index 000000000..76aaed83f --- /dev/null +++ b/rtos/code/driver/na51089/include/sf_led.h @@ -0,0 +1,118 @@ +/************************************************************************** + * + * Copyright (c) 2009-2023 by SiFar Technology, Inc. + * + * This software is copyrighted by and is the property of SiFar + * Technology, Inc.. All rights are reserved by SiFar Technology, Inc.. + * This software may only be used in accordance with the corresponding + * license agreement. Any unauthorized use, duplication, distribution, + * or disclosure of this software is expressly forbidden. + * + * This Copyright notice MUST not be removed or modified without prior + * written consent of SiFar Technology, Inc.. + * + * SiFar Technology, Inc. reserves the right to modify this software without notice. + * + * Author: Payton + * Ver: 1.0.0 2023.01.29 + * Description: + * +**************************************************************************/ +#include "UIInfo/UIInfo.h" + +void sf_trigger_time_led_cb(UINT32 cnt); +void sf_trigger_time_led_cb_init(void); + + + +typedef enum LedId_e +{ + #if HW_S530 + SF_LED_STATUS_R, + SF_LED_STATUS_G, + SF_LED_SD_G, + SF_LED_SD_R, + SF_LED_WIFI, + SF_LED_BAT1, + SF_LED_BAT2, + SF_LED_BAT3, + SF_LED_BAT4, + SF_LED_SIG1_R, + SF_LED_SIG1_G, + SF_LED_SIG2, + SF_LED_SIG3, + SF_LED_SIG4, + #endif + SF_LED_BUSY, + SF_LED_ALL, +}LedId_t; + +typedef enum Ledstate_e +{ + SF_LED_STATE_OFF, + SF_LED_STATE_ON, + SF_LED_STATE_SLOW_FLASHING,/*0.5s*/ + SF_LED_STATE_FLASHING, /*1s*/ +}Ledstate_t; + +typedef enum LedSysState_e +{ + SF_LED_SYS_STATE_ERROR, + SF_LED_SYS_STATE_NORMAL, + SF_LED_SYS_STATE_UPDATE, + SF_LED_SYS_STATE_SENDING, + SF_LED_SYS_STATE_SEND_FAIL, + SF_LED_SYS_STATE_SEND_SUCCESS, + SF_LED_SYS_STATE_SD_NORMAL,/*6*/ + SF_LED_SYS_STATE_SD_ERROR, + SF_LED_SYS_STATE_SD_FULL, + SF_LED_SYS_STATE_SD_FORMAT_START, + SF_LED_SYS_STATE_SD_FORMAT_SUCCESS, + SF_LED_SYS_STATE_SD_FORMAT_FAIL, + SF_LED_SYS_STATE_SD_FORMAT_EXIT, + SF_LED_SYS_STATE_WIFI_DISCONNECT,/*13*/ + SF_LED_SYS_STATE_WIFI_CONNECTED, + SF_LED_SYS_STATE_BAT_0,/*15*/ + SF_LED_SYS_STATE_BAT_1, + SF_LED_SYS_STATE_BAT_2, + SF_LED_SYS_STATE_BAT_3, + SF_LED_SYS_STATE_BAT_4, + /*SF_LED_SYS_STATE_BAT_LOW,*/ + SF_LED_SYS_STATE_GPRS_NO_SIGNAL,/*20*/ + SF_LED_SYS_STATE_GPRS_SIGNAL_0, + SF_LED_SYS_STATE_GPRS_SIGNAL_1, + SF_LED_SYS_STATE_GPRS_SIGNAL_2, + SF_LED_SYS_STATE_GPRS_SIGNAL_3, + SF_LED_SYS_STATE_GPRS_SIGNAL_4, + SF_LED_SYS_STATE_GPRS_SEARCH,/*26*/ + SF_LED_SYS_STATE_SIM_ERROR, + SF_LED_SYS_STATE_SERVER_FAIL, + SF_LED_SYS_STATE_DEBUG_ON, + SF_LED_SYS_STATE_DEBUG_OFF, + SF_LED_SYS_STATE_RESET, + SF_LED_SYS_STATE_USB_IN, + SF_LED_SYS_STATE_GOING_TO_PIR, + SF_LED_SYS_STATE_EXIT_GO_TO_PIR, + SF_LED_SYS_STATE_POWER_OFF, + SF_LED_SYS_STATE_PIR_DETECT,/*36*/ + SF_LED_SYS_STATE_PIR_NOT_DETECT, + SF_LED_SYS_STATE_BAT_0_SLOW, +}LedSysState_t; + +typedef struct LedInfo_s +{ + LedId_t ledId; + Ledstate_t ledstate; + UINT16 times; + UINT32 gpioNum; +}LedInfo_t; + + + +void sf_led_init(void); +void sf_led_go_to_pir(BOOL mode); +UINT8 sf_led_set(LedId_t ledId, Ledstate_t ledstate); +Ledstate_t sf_led_get(LedId_t ledId); +void sf_sys_status_led_set(LedSysState_t ledSysStateId); +void sf_trigger_time_led_cb(UINT32 cnt); +void sf_led_stop(void); \ No newline at end of file diff --git a/rtos/code/driver/na51089/source/mcu/Makefile b/rtos/code/driver/na51089/source/mcu/Makefile index 85a72425b..fec2f225c 100755 --- a/rtos/code/driver/na51089/source/mcu/Makefile +++ b/rtos/code/driver/na51089/source/mcu/Makefile @@ -1,3 +1,5 @@ +include $(NVT_PRJCFG_MODEL_CFG) + MODULE_NAME = sifar # DIRs VOS_DRIVER_DIR = $(NVT_VOS_DIR)/drivers @@ -28,7 +30,22 @@ EXTRA_INCLUDE += -I$(VOS_INC_PATH) \ -I$(INCLUDE_DIR) \ -I$(INCLUDE_DIR) \ -I$(CARDV_SOURCE_DIR)/Gx/include \ + -I$(CARDV_SOURCE_DIR)/FastFlow \ -I$(CARDV_SOURCE_LVGL_SPORTCAM_DIR) \ + -I$(APP_DIR)/source/cardv/SrcCode \ + -I$(APP_DIR)/source/cardv/SrcCode/Startup \ + -I$(APP_DIR)/source/cardv/SrcCode/System \ + -I$(APP_DIR)/source/cardv/SrcCode/Dx/include \ + -I$(APP_DIR)/source/cardv/SrcCode/Gx/include \ + -I$(APP_DIR)/source/cardv/SrcCode/Compatible \ + -I$(APP_DIR)/source/cardv/SrcCode/Dx/$(MODEL)\ + -I$(NVT_HDAL_DIR)/include \ + -I$(NVT_HDAL_DIR)/drivers/k_flow/include \ + -I$(KDRV_DIR)/source/kdrv_gfx2d/kdrv_affine/include \ + -I$(NVT_HDAL_DIR)/vendor/media/include \ + -I$(NVT_HDAL_DIR)/vendor/common/include \ + -I$(NVT_HDAL_DIR)/vendor/isp/include \ + -I$(NVT_HDAL_DIR)/vendor/isp/drivers/include \ -I$(VOS_KWRAP_INC_PATH) .PHONY: modules modules_install clean @@ -91,6 +108,8 @@ SRC = \ sf_i2c_driver.c \ sf_sd_common.c \ sf_commu_mcu.c \ + sf_led.c \ + sf_battery.c \ sf_mcu.c copy = if [ ! -z "$(1)" -a "$(1)" != " " ]; then cp -avf $(1) $(2); fi diff --git a/rtos/code/driver/na51089/source/mcu/sf_battery.c b/rtos/code/driver/na51089/source/mcu/sf_battery.c new file mode 100644 index 000000000..843cdc29c --- /dev/null +++ b/rtos/code/driver/na51089/source/mcu/sf_battery.c @@ -0,0 +1,1274 @@ +/************************************************************************** + * + * Copyright (c) 2009-2018 by SiFar Technology, Inc. + * + * This software is copyrighted by and is the property of SiFar + * Technology, Inc.. All rights are reserved by SiFar Technology, Inc.. + * This software may only be used in accordance with the corresponding + * license agreement. Any unauthorized use, duplication, distribution, + * or disclosure of this software is expressly forbidden. + * + * This Copyright notice MUST not be removed or modified without prior + * written consent of SiFar Technology, Inc.. + * + * SiFar Technology, Inc. reserves the right to modify this software without notice. + * + * Author: Payton + * Ver: 1.0.0 2023.02.14 + * Description: mcu code + * +**************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include "PrjInc.h" +#include "IOCfg.h" +#include "DxHunting.h" +#include "sf_led.h" +#include "flow_preview.h" + +/* +#include "NvtUser/NvtUser.h" +#include "AppControl/AppControl.h" +#include "comm/hwclock.h" +#include +#include +#include +#include "UIInfo/UIInfo.h" +#include "IOCfg.h" +*/ + +#if HUNTING_CAMERA_MCU == ENABLE + +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; +UINT8 needCheckFirst = TRUE; +UINT32 DcVoltageVal = 0; +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 + Description: battery voltage convert + Input: resistanceGnd:Grounding terminal resistance,resistanceVin:Input resistance,adcVal:adc val + Output: N/A + Return: Volt * 10 + Others: N/A +*************************************************/ +UINT32 sf_battery_voltage_convert(UINT32 resistanceGnd, UINT32 resistanceVin, UINT32 adcVal) +{ + UINT32 volt = 0; + + /*511 * (detected voltage) / (SARADC reference voltage) + DC input voltage x resistanceGnd/(resistanceGnd + resistanceVin) = detected voltage, + SARADC reference voltage:1.8V + */ + + volt = 25 * adcVal * (resistanceGnd + resistanceVin) / resistanceGnd / 512; + + return volt; +} + +UINT32 sf_battery_convert_to_adc(UINT32 resistanceGnd, UINT32 resistanceVin, UINT32 volt) +{ + UINT32 adcVal = 0; + + adcVal = volt * resistanceGnd * 512 / 25 / (resistanceGnd + resistanceVin); + + return adcVal; +} + +UINT32 sf_get_max_value(UINT32 *_ValueList) +{ + UINT8 readBatCnt = 0; + UINT32 MaxValue = 0; + + for(readBatCnt = 0; readBatCnt < 5; readBatCnt++) /*get max value of 5 times.*/ + { + MaxValue = (MaxValue > _ValueList[readBatCnt]? MaxValue : _ValueList[readBatCnt]); + } + + return MaxValue; +} + +void sf_adc_init(void) +{ + + if (adc_open(ADC_CH_VOLDET_BATTERY) != 0) { + printf("sf_adc_init 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 + Description: get battery adc only once + Input: N/A + Output: N/A + Return: SUCCESS/FAIL + Others: N/A +*************************************************/ +UINT32 sf_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); + vos_util_delay_ms(1); + } + + 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_us(500); + vos_util_delay_ms(1); + + *pval = adc_readData(0); + //printf("[%s:%d] *pval:%d\n", __FUNCTION__, __LINE__,*pval); + getAdcFlg = 0; + return SUCCESS; + +} + +/************************************************* + Function: sf_battery_adc_value_get_once + Description: get battery adc only once + Input: N/A + Output: N/A + Return: SUCCESS/FAIL + Others: N/A +*************************************************/ +UINT32 sf_battery_adc_value_get_once(void) +{ + UINT32 batAdc = 0; + static UINT8 getBatAdcFlg = 0; + + if(getBatAdcFlg) + { + return SUCCESS; + } + + getBatAdcFlg = 1; + + if(sf_adc_value_get(SF_ADC_DC, &batAdc) == SUCCESS) + { + _DcVoltageVal = sf_battery_voltage_convert(10, 100, batAdc); + + if(sf_adc_value_get(SF_ADC_LI, &batAdc) == SUCCESS) + { + _LiPolymerVoltageVal = sf_battery_voltage_convert(15, 100, batAdc); + + if(_LiPolymerVoltageVal > SF_LI_IN_VOLATAGE) + { + getBatAdcFlg = 0; + return SUCCESS; + } + else + { + if(sf_adc_value_get(SF_ADC_BATT, &batAdc) == SUCCESS) + { + _BatVoltageVal = sf_battery_voltage_convert(15, 100, batAdc); + //_BatVoltageVal += 1; + + getBatAdcFlg = 0; + return SUCCESS; + } + else + { + getBatAdcFlg = 0; + printf("%s:%d [ERR] failed !!!\n", __FUNCTION__, __LINE__); + return FAIL; + } + } + } + else + { + getBatAdcFlg = 0; + printf("%s:%d [ERR] failed !!!\n", __FUNCTION__, __LINE__); + return FAIL; + } + + + } + else + { + getBatAdcFlg = 0; + printf("%s:%d [ERR] failed !!!\n", __FUNCTION__, __LINE__); + return FAIL; + } +} + +#if HW_S530 + +/************************************************* + 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_battery_level_update(void) +{ + UINT8 batteryVal = 0; + UINT8 batteryLevel = SF_BATT_LEVEL_0; + + batteryVal = sf_battery_value_get(sf_get_night_led_flag()); + + 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; +} + + +#else +/************************************************* + 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_battery_level_update(void) +{ + UINT8 batteryVal = 0; + UINT8 batteryLevel = SF_BATT_LEVEL_0; + + if(sf_get_night_led_flag()) + { + return; + } + + if(IsPowerDcIn == 0) + { + batteryVal = BatVoltageVal; + + if(SysGetFlag(BatteryType) == SF_BATT_ALKALINE) + { + if(batteryVal >= 106) + { + batteryLevel = SF_BATT_LEVEL_5; + } + else if(batteryVal >= 102) + { + batteryLevel = SF_BATT_LEVEL_4; + } + else if(batteryVal >= 97) + { + batteryLevel = SF_BATT_LEVEL_3; + } + else if(batteryVal >= 90) + { + batteryLevel = SF_BATT_LEVEL_2; + } + else if(batteryVal >= 75) + { + batteryLevel = SF_BATT_LEVEL_1; + } + else + { + batteryLevel = SF_BATT_LEVEL_0; + } + } + else if(SysGetFlag(BatteryType) == SF_BATT_NI_MH) + { + if(batteryVal >= 103) + { + batteryLevel = SF_BATT_LEVEL_5; + } + else if(batteryVal >= 101) + { + batteryLevel = SF_BATT_LEVEL_4; + } + else if(batteryVal >= 100) + { + batteryLevel = SF_BATT_LEVEL_3; + } + else if(batteryVal >= 97) + { + batteryLevel = SF_BATT_LEVEL_2; + } + else if(batteryVal >= 75) + { + batteryLevel = SF_BATT_LEVEL_1; + } + else + { + batteryLevel = SF_BATT_LEVEL_0; + } + } + else if(SysGetFlag(BatteryType) == SF_BATT_LI) //5.8CG Li Battery + { + if(batteryVal >= 122) + { + batteryLevel = SF_BATT_LEVEL_5; + } + else if(batteryVal >= 120) + { + batteryLevel = SF_BATT_LEVEL_4; + } + else if(batteryVal >= 117) + { + batteryLevel = SF_BATT_LEVEL_3; + } + else if(batteryVal >= 110) + { + batteryLevel = SF_BATT_LEVEL_2; + } + else if(batteryVal >= 80) + { + batteryLevel = SF_BATT_LEVEL_1; + } + else + { + batteryLevel = SF_BATT_LEVEL_0; + } + } + } + else + { + batteryLevel = SF_BATT_LEVEL_5; + } + + sf_LatestBattLevel = batteryLevel; + + if(SysGetFlag(BatteryLogSwitch)) + { + printf("battery levle=%d\n", sf_LatestBattLevel); + } +} +#endif +/************************************************* + Function: sf_check_low_battery + Description: check is low battery in auto mode. + Output: N/A + Return: TRUE/FALSE + Others: N/A +*************************************************/ +BOOL sf_check_low_battery(void) +{ + UINT8 lowCompareVal = 0; + BOOL ret = FALSE; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + + if(sf_is_usb_flag()) + { + return FALSE; + } + + sf_battery_level_update(); + + if(sf_get_night_led_flag()) + { + if(puiPara->BatteryType == SF_BATT_ALKALINE) + { + lowCompareVal = 69; + } + else if(puiPara->BatteryType == SF_BATT_NI_MH) + { + lowCompareVal = 71; + } + } + else + { + if(puiPara->BatteryType == SF_BATT_ALKALINE) + { + lowCompareVal = 80; + } + else if(puiPara->BatteryType == SF_BATT_NI_MH) + { + lowCompareVal = 80; + } + else + { + lowCompareVal = 80; + } + } + + if((IsPowerDcIn == 0) && (BatVoltageVal < lowCompareVal)) + { + ret = TRUE; + } + else + { + ret = FALSE; + } + + return ret; +} + +/****************************************************** + Function: sf_battery_adc_value_get + Description: auto mode:take the maximum of 5 times; + manual mode:take the average of 10 times; + Input: N/A + Output: N/A + Return: SUCCESS/FAIL + Others: N/A + *******************************************************/ +signed int sf_battery_adc_value_get(void) +{ + UINT8 readBatCnt = 0; + + UINT32 dcTemp = 0; + UINT32 batTemp = 0; + UINT32 dcValueList[12] = { 0 }; + UINT32 batValueList[12] = { 0 }; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + + SINT32 ret = FAIL; + + if((sf_get_mode_flag() == 0) || (needCheckFirst == TRUE)) + { + //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. + { + if(sf_battery_adc_value_get_once() == SUCCESS) + { + dcValueList[readBatCnt] = _DcVoltageVal; + + if(puiPara->BatteryLogSwitch) + { + printf("%s:%d [%d]DC ADC Value=%lu,After Convert:%lu(%lu.%luV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_battery_convert_to_adc(10, 100, dcValueList[readBatCnt]), + dcValueList[readBatCnt], dcValueList[readBatCnt] / 10, dcValueList[readBatCnt] % 10); + } + + if(_LiPolymerVoltageVal) + { + batValueList[readBatCnt] = _LiPolymerVoltageVal; + + if(puiPara->BatteryLogSwitch) + { + printf("%s:%d [%d]Li Battery ADC Value=%lu,After Convert:%lu(%lu.%luV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_battery_convert_to_adc(15, 100, batValueList[readBatCnt]), + batValueList[readBatCnt], batValueList[readBatCnt] / 10, batValueList[readBatCnt] % 10); + } + } + else + { + batValueList[readBatCnt] = _BatVoltageVal; + + if(puiPara->BatteryLogSwitch) + { + printf("%s:%d [%d]Other Battery ADC Value=%lu,After Convert:%lu(%lu.%luV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_battery_convert_to_adc(15, 100, batValueList[readBatCnt]), + batValueList[readBatCnt], batValueList[readBatCnt] / 10, batValueList[readBatCnt] % 10); + } + } + + //appTimeDelayMs(50); + readBatCnt++; + } + } + + DcVoltageVal = sf_get_max_value(dcValueList); + + if(_LiPolymerVoltageVal) + { + LiPolymerVoltageVal = sf_get_max_value(batValueList); + BatVoltageVal = 0; + } + else + { + BatVoltageVal = sf_get_max_value(batValueList); + LiPolymerVoltageVal = 0; + } + + if(DcVoltageVal >= SF_DC_IN_VOLATAGE) + { + IsPowerDcIn = 1; + } + else + { + IsPowerDcIn = 0; + } + + //if(puiPara->BatteryLogSwitch) + { + printf("\n[max]DC,After Convert:(%lu.%luV),Is Dc In=%s\n", DcVoltageVal / 10, DcVoltageVal % 10, IsPowerDcIn == 1? "Yes" : "No"); + + if(LiPolymerVoltageVal) + { + printf("[max]Li Battery,After Convert:(%lu.%luV)\n\n", LiPolymerVoltageVal / 10, LiPolymerVoltageVal % 10); + } + else + { + printf("[max]Other Battery,After Convert:(%lu.%luV)\n\n", BatVoltageVal / 10, BatVoltageVal % 10); + } + } + + ret = SUCCESS; + } + else + { + for(readBatCnt = 0; readBatCnt < 10;) //get average value of 10 times. + { + if(sf_battery_adc_value_get_once() == SUCCESS) + { + dcValueList[readBatCnt] = _DcVoltageVal; + + if(_LiPolymerVoltageVal) + { + batValueList[readBatCnt] = _LiPolymerVoltageVal; + } + else + { + batValueList[readBatCnt] = _BatVoltageVal; + } + + dcTemp += dcValueList[readBatCnt]; + batTemp += batValueList[readBatCnt]; + + readBatCnt++; + vos_util_delay_ms(100); + + if(readBatCnt >= SF_READ_BAT_MAX) + { + _DcVoltageVal = dcTemp / SF_READ_BAT_MAX; + + if(_LiPolymerVoltageVal) + { + _LiPolymerVoltageVal = batTemp / SF_READ_BAT_MAX; + } + else + { + _BatVoltageVal = batTemp / SF_READ_BAT_MAX; + } + } + } + } + + ret = SUCCESS; + } + + return ret; +} + +/************************************************* + Function: sf_battery_level_polling + Description: polling battery level + Input: N/A + Output: N/A + Return: N/A + Others: N/A +*************************************************/ +void sf_battery_level_polling(void) +{ + UINT16 readBatCnt = 0; + UINT32 dcTemp = 0; + UINT32 batTemp = 0; + UINT32 dcValueList[12] = { 0 }; + UINT32 batValueList[12] = { 0 }; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + static UINT32 prePowerDcStatus = 0; + + //signed int ret = FALSE; + + static UINT32 battEmpty = 0; + + for(readBatCnt = 0; readBatCnt < 10;) //get average value of 10 times. + { + if(sf_battery_adc_value_get() == SUCCESS) + { + dcValueList[readBatCnt] = _DcVoltageVal; + + if(puiPara->BatteryLogSwitch) + { + printf("%s:%d [%d]DC ADC Value=%lu,After Convert:%lu(%lu.%luV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_battery_convert_to_adc(10, 130, dcValueList[readBatCnt]), + dcValueList[readBatCnt], dcValueList[readBatCnt] / 10, dcValueList[readBatCnt] % 10); + } + + if(_LiPolymerVoltageVal) + { + batValueList[readBatCnt] = _LiPolymerVoltageVal; + + if(puiPara->BatteryLogSwitch) + { + printf("%s:%d [%d]Li Battery ADC Value=%lu,After Convert:%lu(%lu.%luV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_battery_convert_to_adc(15, 130, batValueList[readBatCnt]), + batValueList[readBatCnt], batValueList[readBatCnt] / 10, batValueList[readBatCnt] % 10); + } + } + else + { + batValueList[readBatCnt] = _BatVoltageVal; + + if(puiPara->BatteryLogSwitch) + { + printf("%s:%d [%d]Other Battery ADC Value=%lu,After Convert:%lu(%lu.%luV)\n", __FUNCTION__, __LINE__, readBatCnt + 1, sf_battery_convert_to_adc(15, 130, batValueList[readBatCnt]), + batValueList[readBatCnt], batValueList[readBatCnt] / 10, batValueList[readBatCnt] % 10); + } + } + + dcTemp += dcValueList[readBatCnt]; + batTemp += batValueList[readBatCnt]; + + readBatCnt++; + + if(readBatCnt >= SF_READ_BAT_MAX) + { + _DcVoltageVal = dcTemp / SF_READ_BAT_MAX; + + if(_LiPolymerVoltageVal) + { + _LiPolymerVoltageVal = batTemp / SF_READ_BAT_MAX; + } + else + { + _BatVoltageVal = batTemp / SF_READ_BAT_MAX; + } + + DcVoltageVal = _DcVoltageVal; + LiPolymerVoltageVal = _LiPolymerVoltageVal; + BatVoltageVal = _BatVoltageVal; + + if(DcVoltageVal >= SF_DC_IN_VOLATAGE) + { + IsPowerDcIn = 1; + } + else + { + IsPowerDcIn = 0; + } + + if(puiPara->BatteryLogSwitch) + { + printf("\n[average]DC,After Convert:(%lu.%luV),Is Dc In=%s\n", DcVoltageVal / 10, DcVoltageVal % 10, IsPowerDcIn == 1? "Yes" : "No"); + + if(LiPolymerVoltageVal) + { + printf("[average]Li Battery,After Convert:(%lu.%luV)\n\n", LiPolymerVoltageVal / 10, LiPolymerVoltageVal % 10); + } + else + { + printf("[average]Other Battery,After Convert:(%lu.%luV)\n\n", BatVoltageVal / 10, BatVoltageVal % 10); + } + } + } + } + } + + sf_battery_level_update(); + + //ret = sf_check_low_battery(); + + if(puiPara->BatteryLogSwitch) + { + printf("[%s:%d]batTempLevel=%lu,sf_LatestBattLevel=%d\n", __FUNCTION__, __LINE__, 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(sf_LatestBattLevel == SF_BATT_LEVEL_0) + { + if(sf_get_night_led_flag()) + { + sf_ir_led_set(0, 0, 0, 0); + //pwm_pwm_disable(IRLED_PWMID); + //printf("%s:%d \n", __FUNCTION__, __LINE__); + } + + //the Module not need sleep. + //gModuleSleep = 0; + sf_set_module_sleep_flag(0); + + if(battEmpty == 0) + { + 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 + } + } + else if(sf_LatestBattLevel == SF_BATT_LEVEL_1) + { + if((sf_battery_value_get(sf_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_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) +{ + THREAD_ENTRY(); + printf("[%s:%d] s\n", __FUNCTION__, __LINE__); + + if(sf_is_battery_low(1, 0) == 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 + sf_set_power_off_flag(1); + flow_preview_set_stop_flag(TRUE); + + } + else { + while(sf_while_flag()) + { + sf_battery_level_polling(); + } + } + printf("[%s:%d] e \n", __FUNCTION__, __LINE__); + THREAD_RETURN(0); +} + + +void sf_battery_thread_init(void) +{ + static UINT8 dofirst = 1; + printf("[%s:%d] s\n", __FUNCTION__, __LINE__); + if(!dofirst) + return; + dofirst = 0; + sf_adc_init(); + VK_TASK_HANDLE s_handle_batt = 0; + + vos_flag_create(&FLG_ID_SF_BSTTERY, NULL, "FLG_ID_SF_BSTTERY"); + /*thread creat*/ + s_handle_batt = vos_task_create(sf_battery_check_thread, NULL, "sf_battery_check_thread", 25, 2048); + 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; +} + +/************************************************* + Function: sf_battery_level_get + Description: get battery level + Input: N/A + Output: N/A + Return: SUCCESS/FAIL + Others: N/A +*************************************************/ +UINT32 sf_battery_level_get(void) +{ + return (UINT32)sf_LatestBattLevel; +} + + +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% + Input: nightMode or no + Output: N/A + Return: battery value x% + Others: N/A +*************************************************/ +UINT8 sf_battery_value_get(UINT8 nightMode) +{ + UINT8 value = 0; + UINT8 batteryVal = 0; + + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + if(IsPowerDcIn == 0) + { + //printf("BatMedian:%d\n", BatMedian); + if(LiPolymerVoltageVal) + { + batteryVal = LiPolymerVoltageVal; + + if(batteryVal < 65) + { + if(nightMode && (batteryVal >= 43)) + value = 1; + else + value = 0; + } + else if(batteryVal < 71) + { + value = 1; + } + else if(batteryVal < 72) + { + value = 10; + } + else if(batteryVal < 73) + { + value = 20; + } + else if(batteryVal < 74) + { + value = 30; + } + else if(batteryVal < 75) + { + value = 40; + } + else if(batteryVal < 76) + { + value = 50; + } + else if(batteryVal < 77) + { + value = 60; + } + else if(batteryVal < 78) + { + value = 70; + } + else if(batteryVal < 79) + { + value = 80; + } + else if(batteryVal < 81) + { + value = 90; + } + else + { + value = 100; + } + } + else + { + batteryVal = BatVoltageVal; + + if(puiPara->BatteryType == SF_BATT_ALKALINE) //ALK + { + if(batteryVal < 62) + { + if(nightMode && (batteryVal >= 43)) + value = 1; + else + value = 0; + } + else if(batteryVal < 65) + { + value = 1; + } + else if(batteryVal < 69) + { + value = 10; + } + else if(batteryVal < 71) + { + value = 20; + } + else if(batteryVal < 72) + { + value = 30; + } + else if(batteryVal < 73) + { + value = 40; + } + else if(batteryVal < 75) + { + value = 50; + } + else if(batteryVal < 76) + { + value = 60; + } + else if(batteryVal < 78) + { + value = 70; + } + else if(batteryVal < 80) + { + value = 80; + } + else if(batteryVal < 83) + { + value = 90; + } + else + { + value = 100; + } + } + else if(puiPara->BatteryType == SF_BATT_NI_MH) //NIH + { + if(batteryVal < 60) + { + if(nightMode && (batteryVal >= 43)) + value = 1; + else + value = 0; + } + else if(batteryVal < 61) + { + value = 1; + } + else if(batteryVal < 62) + { + value = 10; + } + else if(batteryVal < 64) + { + value = 20; + } + else if(batteryVal < 65) + { + value = 30; + } + else if(batteryVal < 67) + { + value = 40; + } + else if(batteryVal < 68) + { + value = 50; + } + else if(batteryVal < 70) + { + value = 60; + } + else if(batteryVal < 71) + { + value = 70; + } + else if(batteryVal < 73) + { + value = 80; + } + else if(batteryVal < 75) + { + value = 90; + } + else + { + value = 100; + } + } + else + { + if(batteryVal < 62) + { + if(nightMode && (batteryVal >= 43)) + value = 1; + else + value = 0; + } + else if(batteryVal < 75) + { + value = 1; + } + else if(batteryVal < 80) + { + value = 10; + } + else if(batteryVal < 82) + { + value = 20; + } + else if(batteryVal < 83) + { + value = 30; + } + else if(batteryVal < 84) + { + value = 40; + } + else if(batteryVal < 86) + { + value = 50; + } + else if(batteryVal < 91) + { + value = 60; + } + else if(batteryVal < 92) + { + value = 70; + } + else if(batteryVal < 93) + { + value = 80; + } + else if(batteryVal < 94) + { + value = 90; + } + else + { + value = 100; + } + } + } + } + else + { + value = 100; + } + + 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_is_battery_low + Description: Judge whether the power is low + Input: refresh:refresh ADC acquisition or no, + nightMode:day or night + Output: N/A + Return: TRUE/FALSE + Others: N/A +*************************************************/ +BOOL sf_is_battery_low(UINT8 refresh, UINT8 nightMode) +{ + UINT8 batteryVal = 0; + UINT8 batteryLevel = 0; + + if(refresh) + { + sf_battery_adc_value_get(); + //printf("DC=%d Custom=%d bat=%d\n", dcValue, CustomValue, batli8v); + } + + batteryVal = sf_battery_value_get(nightMode); + + if(!sf_get_mode_flag()) + { + 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; + } + + if(batteryVal == 0) + return TRUE; + + return FALSE; +} +/************************************************* + 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) +{ + if(sf_battery_adc_value_get() == SUCCESS) + { + if(sf_is_battery_low(0, 0) == 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 + sf_set_power_off_flag(1); + flow_preview_set_stop_flag(TRUE); + 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=%lu Li=%lu Bat=%lu\n", DcVoltageVal, LiPolymerVoltageVal, BatVoltageVal); + + if(sf_battery_value_get(0) < 40) + { + printf("low battery, no update\n"); + + return FALSE; + } + + return TRUE; +} + + +#endif diff --git a/rtos/code/driver/na51089/source/mcu/sf_led.c b/rtos/code/driver/na51089/source/mcu/sf_led.c new file mode 100755 index 000000000..970194978 --- /dev/null +++ b/rtos/code/driver/na51089/source/mcu/sf_led.c @@ -0,0 +1,637 @@ +/************************************************************************** + * + * Copyright (c) 2009-2023 by SiFar Technology, Inc. + * + * This software is copyrighted by and is the property of SiFar + * Technology, Inc.. All rights are reserved by SiFar Technology, Inc.. + * This software may only be used in accordance with the corresponding + * license agreement. Any unauthorized use, duplication, distribution, + * or disclosure of this software is expressly forbidden. + * + * This Copyright notice MUST not be removed or modified without prior + * written consent of SiFar Technology, Inc.. + * + * SiFar Technology, Inc. reserves the right to modify this software without notice. + * + * Author: Payton + * Ver: 1.0.0 2023.01.29 + * Description: + * +**************************************************************************/ + +#include +#include +#include +//#include "DxOutput.h" +//#include "DxCfg.h" +#include "IOCfg.h" +#include "DxHunting.h" +#include "kwrap/type.h" +#include +#include "modelext_info.h" +#include "DrvExt.h" +#include "PrjInc.h" +#include +#include "sf_mcu.h" + +void sf_trigger_time_led_cb(UINT32 cnt) +{ + printf("[%s:%d] led\n", __FUNCTION__, __LINE__); + gpio_direction_output(GPIO_GREEN_LED, 1); + gpio_set_value(GPIO_GREEN_LED, cnt); +} + +#if 1 + +VK_TASK_HANDLE ledTskId; + +//static BOOL isIrLedOn = FALSE; +static BOOL isGoToPir = FALSE; +static unsigned char isLedExit = 1; + +static BOOL isUsbIn = FALSE; +#if HW_S530 +VK_TASK_HANDLE ledRunningTskId; + +static BOOL isRunningLedOn = FALSE; +static UINT8 FormatSdFlag = 0; +#endif + +LedInfo_t LedInfo[SF_LED_ALL] = { + /* ledId, ledstate, times, gpioNum */ + #if HW_S530 + {SF_LED_STATUS_R, SF_LED_STATE_OFF, 0, DSI_GPIO_8}, + {SF_LED_STATUS_G, SF_LED_STATE_OFF, 0, DSI_GPIO_9}, + {SF_LED_SD_G, SF_LED_STATE_OFF, 0, DSI_GPIO_7}, + {SF_LED_SD_R, SF_LED_STATE_OFF, 0, DSI_GPIO_4}, + {SF_LED_WIFI, SF_LED_STATE_OFF, 0, DSI_GPIO_6}, + {SF_LED_BAT1, SF_LED_STATE_OFF, 0, DSI_GPIO_5}, + {SF_LED_BAT2, SF_LED_STATE_OFF, 0, DSI_GPIO_2}, + {SF_LED_BAT3, SF_LED_STATE_OFF, 0, DSI_GPIO_3}, + {SF_LED_BAT4, SF_LED_STATE_OFF, 0, DSI_GPIO_0}, + {SF_LED_SIG1_R, SF_LED_STATE_OFF, 0, DSI_GPIO_10}, + {SF_LED_SIG1_G, SF_LED_STATE_OFF, 0, DSI_GPIO_1}, + {SF_LED_SIG2, SF_LED_STATE_OFF, 0, L_GPIO_1}, + {SF_LED_SIG3, SF_LED_STATE_OFF, 0, L_GPIO_0}, + {SF_LED_SIG4, SF_LED_STATE_OFF, 0, P_GPIO_8}, + #endif + {SF_LED_BUSY, SF_LED_STATE_OFF, 0, P_GPIO_10}, +}; + +//ID FLG_ID_SF_LED = 0; + +// Flag +//#define FLG_SF_LED_IDLE FLGPTN_BIT(0) +//#define FLG_SF_LED FLGPTN_BIT(1) +//#define FLG_SF_LED_ALL 0xFFFFFFFF + +static void sf_led_on(LedId_t ledId) +{ + //gpio_setPin(LedInfo[ledId].gpioNum); + //printf("[%s:%d] gpioNum:%d ledId:%d\n", __FUNCTION__, __LINE__,LedInfo[ledId].gpioNum,ledId); + gpio_set_value(LedInfo[ledId].gpioNum, SF_LED_STATE_ON); +} + + +static void sf_led_off(LedId_t ledId) +{ + //gpio_clearPin(LedInfo[ledId].gpioNum); + //printf("[%s:%d] gpioNum:%d ledId:%d\n", __FUNCTION__, __LINE__,LedInfo[ledId].gpioNum,ledId); + gpio_set_value(LedInfo[ledId].gpioNum, SF_LED_STATE_OFF); +} +#if HW_S530 +void sf_set_runningLed(BOOL status) +{ + isRunningLedOn = status; +} + +THREAD_RETTYPE sf_runningLed_thread(void *arg) +{ + THREAD_ENTRY(); + UINT8 run = 0; + UINT8 time = 0; + + while(isLedExit) + { + if(isRunningLedOn) + { + time++; + + if(time == 50) + { + time = 0; + + switch(run) + { + case 0: + sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF); + run++; + break; + + case 1: + sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF); + run++; + break; + + case 2: + sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF); + run++; + break; + + case 3: + sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG3, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF); + run++; + break; + + case 4: + sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG3, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG4, SF_LED_STATE_ON); + run = 0; + break; + } + } + } + else + { + run = 0; + time = 0; + } + vos_util_delay_ms(10); + } + + printf("[%s:%d] e \n", __FUNCTION__, __LINE__); + THREAD_RETURN(0); + +} +#endif + + +THREAD_RETTYPE sf_led_thread(void *arg) +{ + THREAD_ENTRY(); + 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); + gpio_direction_output(LedInfo[i].gpioNum,GPIO_DIR_OUTPUT); + //gpio_direction_output(LedInfo[i].gpioNum, GPIO_DIR_OUTPUT); + gpio_set_value(LedInfo[i].gpioNum, LedInfo[i].ledstate); + } + + //FLGPTN FlgPtn; + printf("[%s:%d] s\n", __FUNCTION__, __LINE__); + while(isLedExit) + { + + for(i = 0; i < SF_LED_ALL; i++) + { + if(isUsbIn) + { + if((SF_LED_BUSY == i)/* || (i == SF_LED_STATUS_G)*/) + { + sf_led_on(LedInfo[i].ledId); + } + else + { + sf_led_off(LedInfo[i].ledId); + } + } + else if(isGoToPir) + { + if(i < SF_LED_BUSY) + { + sf_led_off(LedInfo[i].ledId); + } + else + { + if(LedInfo[i].times == 0) + { + sf_led_off(LedInfo[i].ledId); + } + else if(LedInfo[i].times == 25) //50*10ms + { + sf_led_on(LedInfo[i].ledId); + } + else if(LedInfo[i].times == 50) //100*10ms + { + sf_led_off(LedInfo[i].ledId); + LedInfo[i].times = 0; + } + LedInfo[i].times++; + } + } + else if(LedInfo[i].ledstate == SF_LED_STATE_OFF) + { + sf_led_off(LedInfo[i].ledId); + } + else if(LedInfo[i].ledstate == SF_LED_STATE_ON) + { + sf_led_on(LedInfo[i].ledId); + } + #if HW_S530 + else if(LedInfo[i].ledstate == SF_LED_STATE_SLOW_FLASHING) + { + if(LedInfo[i].times == 0) + { + sf_led_on(LedInfo[i].ledId); + } + else if(LedInfo[i].times == 50) //50*10ms + { + sf_led_off(LedInfo[i].ledId); + } + else if(LedInfo[i].times == 100) //100*10ms + { + sf_led_on(LedInfo[i].ledId); + LedInfo[i].times = 0; + } + LedInfo[i].times++; + } + else if(LedInfo[i].ledstate == SF_LED_STATE_FLASHING) + { + if(LedInfo[i].times == 0) + { + sf_led_on(LedInfo[i].ledId); + } + else if(LedInfo[i].times == 25) //25*10ms + { + sf_led_off(LedInfo[i].ledId); + } + else if(LedInfo[i].times == 50) //50*10ms + { + sf_led_on(LedInfo[i].ledId); + LedInfo[i].times = 0; + } + LedInfo[i].times++; + } + #endif + } + vos_util_delay_ms(10); + } + + printf("[%s:%d] e \n", __FUNCTION__, __LINE__); + THREAD_RETURN(0); + +} + + +UINT8 sf_led_set(LedId_t ledId, Ledstate_t ledstate) +{ + UINT8 i = 0; + + if(ledId == SF_LED_ALL) + { + /*printf("led id:ALL, state:%d\n", ledstate);*/ + for(i = 0; i < SF_LED_ALL; i++) + { + LedInfo[i].ledstate = ledstate; + LedInfo[i].times = 0; + } + return 0; + } + else if(ledId < SF_LED_ALL) + { + /*printf("led id:%d, state:%d\n", ledId,ledstate);*/ + LedInfo[ledId].ledstate = ledstate; + LedInfo[ledId].times = 0; + return 0; + } + else + { + return 1; + } +} + + +Ledstate_t sf_led_get(LedId_t ledId) +{ + return LedInfo[ledId].ledstate; +} + + +void sf_led_init(void) +{ + UINT8 i = 0; + static UINT8 dofirst = 1; + printf("[%s:%d] s\n", __FUNCTION__, __LINE__); + UINT8 startup = sf_get_power_on_mode(); + if(((PWR_ON_SETUP != startup) && (PWR_ON_AUTO != startup) && (PWR_ON_USB != startup))) + return; + + if(!dofirst) + 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); + gpio_direction_output(LedInfo[i].gpioNum, GPIO_DIR_OUTPUT); + gpio_set_value(LedInfo[i].gpioNum, LedInfo[i].ledstate); + } + + //vos_flag_create(&FLG_ID_SF_LED, NULL, "FLG_ID_SF_LED"); + /*thread creat*/ + ledTskId = vos_task_create(sf_led_thread, NULL, "sf_led_thread", 25, 2048); + vos_task_resume(ledTskId); + #if HW_S530 + /*thread creat*/ + ledRunningTskId = vos_task_create(sf_runningLed_thread, NULL, "sf_runningLed_thread", 25, 2048); + vos_task_resume(ledRunningTskId); + #endif + printf("[%s:%d] e SF_LED_ALL:%d\n", __FUNCTION__, __LINE__,SF_LED_ALL); +} + +void sf_led_stop(void) +{ + printf("[%s:%d] e\n", __FUNCTION__, __LINE__); +} + + +void sf_sys_status_led_set(LedSysState_t ledSysStateId) +{ + UINT8 startup = sf_get_power_on_mode(); + if(((PWR_ON_SETUP != startup) && (PWR_ON_AUTO != startup) && (PWR_ON_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); + switch(ledSysStateId) + { + #if HW_S530 + case SF_LED_SYS_STATE_ERROR: + sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_OFF); + sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_FLASHING); + break; + + case SF_LED_SYS_STATE_NORMAL: + sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_ON); + sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_UPDATE: + sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_FLASHING); + sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_SENDING: + sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_SLOW_FLASHING); + sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_OFF); + break; + case SF_LED_SYS_STATE_SEND_FAIL: + sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_OFF); + sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_ON); + break; + + case SF_LED_SYS_STATE_SEND_SUCCESS: + sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_ON); + sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_SD_NORMAL: + sf_led_set(SF_LED_SD_G, SF_LED_STATE_ON); + sf_led_set(SF_LED_SD_R, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_SD_ERROR: + sf_led_set(SF_LED_SD_G, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SD_R, SF_LED_STATE_ON); + break; + + case SF_LED_SYS_STATE_SD_FULL: + sf_led_set(SF_LED_SD_G, SF_LED_STATE_ON); + sf_led_set(SF_LED_SD_R, SF_LED_STATE_ON); + break; + + case SF_LED_SYS_STATE_SD_FORMAT_START: + FormatSdFlag = 1; + sf_led_set(SF_LED_BUSY, SF_LED_STATE_OFF); + sf_set_runningLed(0); + break; + + case SF_LED_SYS_STATE_SD_FORMAT_SUCCESS: + FormatSdFlag = 2; + break; + + case SF_LED_SYS_STATE_SD_FORMAT_FAIL: + FormatSdFlag = 3; + break; + + case SF_LED_SYS_STATE_SD_FORMAT_EXIT: + FormatSdFlag = 0; + sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON); + //sf_set_runningLed(0); + break; + + case SF_LED_SYS_STATE_WIFI_DISCONNECT: + sf_led_set(SF_LED_WIFI, SF_LED_STATE_SLOW_FLASHING); + break; + + case SF_LED_SYS_STATE_WIFI_CONNECTED: + sf_led_set(SF_LED_WIFI, SF_LED_STATE_ON); + break; + + case SF_LED_SYS_STATE_BAT_0: + sf_led_set(SF_LED_BAT1, SF_LED_STATE_FLASHING); + sf_led_set(SF_LED_BAT2, SF_LED_STATE_OFF); + sf_led_set(SF_LED_BAT3, SF_LED_STATE_OFF); + sf_led_set(SF_LED_BAT4, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_BAT_1: + sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON); + sf_led_set(SF_LED_BAT2, SF_LED_STATE_OFF); + sf_led_set(SF_LED_BAT3, SF_LED_STATE_OFF); + sf_led_set(SF_LED_BAT4, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_BAT_2: + sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON); + sf_led_set(SF_LED_BAT2, SF_LED_STATE_ON); + sf_led_set(SF_LED_BAT3, SF_LED_STATE_OFF); + sf_led_set(SF_LED_BAT4, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_BAT_3: + sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON); + sf_led_set(SF_LED_BAT2, SF_LED_STATE_ON); + sf_led_set(SF_LED_BAT3, SF_LED_STATE_ON); + sf_led_set(SF_LED_BAT4, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_BAT_4: + sf_led_set(SF_LED_BAT1, SF_LED_STATE_ON); + sf_led_set(SF_LED_BAT2, SF_LED_STATE_ON); + sf_led_set(SF_LED_BAT3, SF_LED_STATE_ON); + sf_led_set(SF_LED_BAT4, SF_LED_STATE_ON); + break; + + case SF_LED_SYS_STATE_GPRS_NO_SIGNAL: + sf_set_runningLed(0); + sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_GPRS_SIGNAL_0: + sf_set_runningLed(0); + sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_GPRS_SIGNAL_1: + sf_set_runningLed(0); + sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_GPRS_SIGNAL_2: + sf_set_runningLed(0); + sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_GPRS_SIGNAL_3: + sf_set_runningLed(0); + sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG3, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_GPRS_SIGNAL_4: + sf_set_runningLed(0); + sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG2, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG3, SF_LED_STATE_ON); + sf_led_set(SF_LED_SIG4, SF_LED_STATE_ON); + break; + + case SF_LED_SYS_STATE_GPRS_SEARCH: + sf_set_runningLed(1); + break; + + case SF_LED_SYS_STATE_SIM_ERROR: + sf_set_runningLed(0); + sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_FLASHING); + sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_SERVER_FAIL: + sf_set_runningLed(0); + sf_led_set(SF_LED_SIG1_R, SF_LED_STATE_SLOW_FLASHING); + sf_led_set(SF_LED_SIG1_G, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG2, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG3, SF_LED_STATE_OFF); + sf_led_set(SF_LED_SIG4, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_DEBUG_ON: + sf_led_set(SF_LED_SD_G, SF_LED_STATE_FLASHING); + sf_led_set(SF_LED_SD_R, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_DEBUG_OFF: + sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_ON); + sf_led_set(SF_LED_STATUS_R, SF_LED_STATE_ON); + break; + + case SF_LED_SYS_STATE_RESET: + sf_set_runningLed(0); + sf_led_set(SF_LED_ALL, SF_LED_STATE_ON); + break; + + case SF_LED_SYS_STATE_USB_IN: + sf_set_runningLed(0); + sf_led_set(SF_LED_ALL, SF_LED_STATE_OFF); + sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON); + sf_led_set(SF_LED_STATUS_G, SF_LED_STATE_ON); + isUsbIn = TRUE; + break; + #endif + //#if HW_S510 + // case SF_LED_SYS_STATE_UPDATE: + // sf_led_set(SF_LED_BUSY, SF_LED_STATE_SLOW_FLASHING); + // break; + //#endif + + case SF_LED_SYS_STATE_GOING_TO_PIR: + isGoToPir = TRUE; + sf_led_set(SF_LED_BUSY, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_EXIT_GO_TO_PIR: + isGoToPir = FALSE; + sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON); + break; + + case SF_LED_SYS_STATE_POWER_OFF: + #if HW_S530 + sf_set_runningLed(0); + #endif + sf_led_set(SF_LED_ALL, SF_LED_STATE_OFF); + isGoToPir = FALSE; + break; + + case SF_LED_SYS_STATE_PIR_DETECT: + sf_led_set(SF_LED_BUSY, SF_LED_STATE_OFF); + break; + + case SF_LED_SYS_STATE_PIR_NOT_DETECT: + sf_led_set(SF_LED_BUSY, SF_LED_STATE_ON); + break; + case SF_LED_SYS_STATE_BAT_0_SLOW: + sf_led_set(SF_LED_BAT1, SF_LED_STATE_SLOW_FLASHING); + sf_led_set(SF_LED_BAT2, SF_LED_STATE_OFF); + sf_led_set(SF_LED_BAT3, SF_LED_STATE_OFF); + sf_led_set(SF_LED_BAT4, SF_LED_STATE_OFF); + break; + + default: + break; + } + +} + + +#endif + diff --git a/rtos/code/driver/na51089/source/mcu/sf_mcu.c b/rtos/code/driver/na51089/source/mcu/sf_mcu.c index 1fd215a0f..388c85afa 100644 --- a/rtos/code/driver/na51089/source/mcu/sf_mcu.c +++ b/rtos/code/driver/na51089/source/mcu/sf_mcu.c @@ -45,7 +45,7 @@ static UINT8 POWEROFF = 0; static BOOL ConfigureModeFlag = 0; /* 0: HTC Mode, 1: Nomal Mode */ static UINT8 AeNightMode = 0; /* 0:day 1:night */ //#define printf(fmt, args...) printk(fmt , ## args) -static UINT32 simCardInsert=0; +static UINT32 simCardInsert=1; static UINT8 gModuleSleep = 1; static UINT32 SmsCheck = 0; //static SF_CAMERA_CMD_S CameraCmd = {0}; @@ -588,6 +588,15 @@ UINT8 sf_mcu_wdg_set(UINT8 value) return SUCCESS; } +void sf_set_sim_insert(UINT32 sim) +{ + simCardInsert = sim; +} + +UINT32 sf_get_sim_insert(void) +{ + return simCardInsert; +} #if defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_) @@ -1335,24 +1344,25 @@ UINT8 sf_mcu_analog_pir_sen_convert(UINT8 pirs) Return: N/A Others: N/A *************************************************/ - UINT8 sf_mcu_reg_set(MCUParam_t attrId, UINT8 val) { - UINT8 mcuReg[REG_SIZE] = {0}; - UINT8 mcuData[REG_SIZE] = {0}; - UINT8 i = 0; - //UINT8 j = 0; - UINT8 temp = 0; - UINT8 paraSyncFlag = 0; - UINT8 gpsAlwaysFlag = 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; + //unsigned char dailyReportFlag = 1; + unsigned char paraSyncFlag = 0; + unsigned char gpsAlwaysFlag = 0; + //unsigned char DigPirPulseCount = 0; + //unsigned char DigPirWindowTime = 0; + UIMenuStoreInfo *puiPara = sf_ui_para_get(); + //SF_PARA_TIME_S date = { 0 }; UINT8 PowerOnMode = 0; signed int isUsb = 0; signed int isCard = 0; signed int isCardFull = 0; - printf("Firmware compile time:%s %s VER:%s\n", __DATE__, __TIME__,SF_BASE_VERSION); - printf("%s:%d start mode = %d IRSHTTER = %d\n", __FUNCTION__, __LINE__ , sf_get_power_on_mode(), IRSHTTER); - UIMenuStoreInfo *puiPara = sf_ui_para_get(); - + if(attrId != SF_MCU_CTRL_MODULE_PIR)//AND LDS SECTION_01 loading order. { isUsb = sf_is_usb_flag(); @@ -1361,21 +1371,26 @@ UINT8 sf_mcu_reg_set(MCUParam_t attrId, UINT8 val) PowerOnMode = sf_get_power_on_mode(); } - if (attrId > SF_MCU_PARAM_MAX) + sf_set_sim_insert(1);//Remove hardware detection SIM card + printf("Firmware compile time:%s %s VER:%s\n", __DATE__, __TIME__,SF_BASE_VERSION); + printf("%s:%d DailyReportSwitch=%d %02d:%02d\n",__FUNCTION__,__LINE__, puiPara->DailyReportSwitch, puiPara->DailyReportTime2.Hour, puiPara->DailyReportTime2.Min); + printf("%s:%d isUsb = %d isCard = %d isCardFull = %d val = %d simCardInsert = %ld start mode = %d\n",__FUNCTION__,__LINE__, isUsb, isCard, isCardFull, val, simCardInsert, PowerOnMode); + + if (attrId > SF_MCU_PARAM_MAX) { - printf("attrId ERROR!\n"); - return FAIL; + printf("attrId ERROR!\n"); + return -1; } - printf("sf_mcu_reg_set attrId=%d val=%d\n", attrId, val); - if(attrId == SF_MCU_POWEROFF) { - if((simCardInsert) && (1 == puiPara->NeedTimeSyncStartUp)) - { - paraSyncFlag = 1; - } + //printf("SynMcuSet = %x\n", statisPara->SynMcuSet); + printf("NeedTimeSyncStartUp = %d\n", puiPara->NeedTimeSyncStartUp); + if(puiPara->NeedTimeSyncStartUp == 1) + { + paraSyncFlag = 1; + } #if 0 struct tm ctv = {0}; ctv = hwclock_get_time(TIME_ID_CURRENT); @@ -1394,22 +1409,20 @@ UINT8 sf_mcu_reg_set(MCUParam_t attrId, UINT8 val) mcuReg[i] = SF_RTC_SEC; mcuData[i++] = ctv.tm_sec; #endif - gpsAlwaysFlag = 0; - if((1 == puiPara->GpsSwitch) && (puiPara->GpsNumber)) - { - gpsAlwaysFlag=1; - }else - { - gpsAlwaysFlag=0; - } - - if(puiPara->PirSensitivity){ - temp = 0x01; - }else{ - temp = 0x00; - } + if((puiPara->GpsSwitch == 1) && (puiPara->GpsNumber)) + { + gpsAlwaysFlag=1; + } + else + { + gpsAlwaysFlag=0; + } + if(puiPara->PirSensitivity) + temp = 0x01; + else + temp = 0x00; if(1 == puiPara->TimelapseSwitch) { @@ -1446,13 +1459,17 @@ UINT8 sf_mcu_reg_set(MCUParam_t attrId, UINT8 val) if(puiPara->TimeSend2Switch == 1) temp |= 0x40; - + if(gpsAlwaysFlag && simCardInsert) temp |= 0x80; + temp |= 0x10; + mcuReg[i] = FUNCTION_SWTICH0; mcuData[i++] = temp; + temp = 0; + if(puiPara->TimelapseSwitch) { mcuReg[i] = TIMELAPSE_HOUR; @@ -1460,12 +1477,13 @@ UINT8 sf_mcu_reg_set(MCUParam_t attrId, UINT8 val) mcuReg[i] = TIMELAPSE_MINUTE; mcuData[i++] = puiPara->TimelapseTime.Min; mcuReg[i] = TIMELAPSE_SEC; - + if((puiPara->TimelapseSwitch) && (puiPara->TimelapseTime.Hour == 0) && (puiPara->TimelapseTime.Min == 0) && (puiPara->TimelapseTime.Sec == 0)) mcuData[i++] = 5; else - mcuData[i++] = puiPara->TimelapseTime.Sec; - }else + mcuData[i++] = puiPara->TimelapseTime.Sec; + } + else { mcuReg[i] = TIMELAPSE_HOUR; mcuData[i++] = 0; @@ -1474,342 +1492,347 @@ UINT8 sf_mcu_reg_set(MCUParam_t attrId, UINT8 val) mcuReg[i] = TIMELAPSE_SEC; mcuData[i++] = 0; } - + if(puiPara->PirDelaySwitch) - { - mcuReg[i] = PIR_DELAY_HOUR; - mcuData[i++] = puiPara->PirDelayTime.Hour; - mcuReg[i] = PIR_DELAY_MINUTE; - mcuData[i++] = puiPara->PirDelayTime.Min; - mcuReg[i] = PIR_DELAY_SEC; - mcuData[i++] = puiPara->PirDelayTime.Sec; - }else - { - mcuReg[i] = PIR_DELAY_HOUR; - mcuData[i++] = 0; - mcuReg[i] = PIR_DELAY_MINUTE; - mcuData[i++] = 0; - mcuReg[i] = PIR_DELAY_SEC; - mcuData[i++] = 0; - } + { + mcuReg[i] = PIR_DELAY_HOUR; + mcuData[i++] = puiPara->PirDelayTime.Hour; + mcuReg[i] = PIR_DELAY_MINUTE; + mcuData[i++] = puiPara->PirDelayTime.Min; + mcuReg[i] = PIR_DELAY_SEC; + mcuData[i++] = puiPara->PirDelayTime.Sec; + } + else + { + mcuReg[i] = PIR_DELAY_HOUR; + mcuData[i++] = 0; + mcuReg[i] = PIR_DELAY_MINUTE; + mcuData[i++] = 0; + mcuReg[i] = PIR_DELAY_SEC; + mcuData[i++] = 0; + } if(paraSyncFlag) { mcuReg[i] = TIME_SYNC_HOUR; mcuData[i++] = 0; mcuReg[i] = TIME_SYNC_MINUTE; - mcuData[i++] = 0; - mcuReg[i] = TIME_SYNC_SEC; mcuData[i++] = 1; + mcuReg[i] = TIME_SYNC_SEC; + mcuData[i++] = 30; } - + if(puiPara->DailyReportSwitch) { mcuReg[i] = DAILY_REPORT_HOUR; mcuData[i++] = puiPara->DailyReportTime2.Hour; mcuReg[i] = DAILY_REPORT_MINUTE; mcuData[i++] = puiPara->DailyReportTime2.Min; - }else + } + else { mcuReg[i] = DAILY_REPORT_HOUR; mcuData[i++] =0; mcuReg[i] = DAILY_REPORT_MINUTE; mcuData[i++] =0; } - - mcuReg[i] = DAILY_SEND1_HOUR; + mcuReg[i] = DAILY_SEND1_HOUR; mcuData[i++] = puiPara->TimeSend1.Hour; mcuReg[i] = DAILY_SEND1_MINUTE; mcuData[i++] = puiPara->TimeSend1.Min; - mcuReg[i] = DAILY_SEND2_HOUR; + mcuReg[i] = DAILY_SEND2_HOUR; mcuData[i++] = puiPara->TimeSend2.Hour; mcuReg[i] = DAILY_SEND2_MINUTE; mcuData[i++] = puiPara->TimeSend2.Min; - - mcuReg[i] = ANALOG_PIR_SENSITIVITY; + + mcuReg[i] = ANALOG_PIR_SENSITIVITY; temp = sf_mcu_analog_pir_sen_convert(puiPara->PirSensitivity); - - //hybrid mode 4G module keep sleep + //hybrid mode 4G module keep sleep if(((puiPara->NetWorkNeedSearch) != 3) && simCardInsert && gModuleSleep) - { - //bit 5-bit 6, daily mode 0, hybrid mode 1, instant mode 2 + { + //bit 5-bit 6, daily mode 0, hybrid mode 1, instant mode 2 if(((puiPara->GprsMode) == 1) || (paraSyncFlag)) - { - temp |= 0x40; - }else{ + { + temp |= 0x40; + } + else + { if (((puiPara->GprsMode) == 2) && isSignalReady && (GPRS_ERRNO == 0)) - temp |= 0x20; - - //sf_pdp_flg_set(0); - } + temp |= 0x20; + + //sf_pdp_flg_set(0); + } } - + if((PowerOnMode == PWR_ON_AUTO) || (PowerOnMode == PWR_ON_SETUP) || (PowerOnMode == PWR_ON_GPRS_INIT) || ((PowerOnMode == PWR_ON_DAILY_REPORT) /*&& (drNoResetTimeSync != SF_TRUE)*/)) + { + temp |= 0x10; /*bit4 rest*/ + } if(((puiPara->GprsSwitch) && (simCardInsert) && ((puiPara->SendType) == 0)) || (paraSyncFlag)) { - temp |= 0x80; - }else{ - //sf_pdp_flg_set(0); - } + temp |= 0x80; + } + else + { + //sf_pdp_flg_set(0); + } + + mcuData[i++] = temp; - mcuData[i++] = temp; - - mcuReg[i] = DIGITAL_PIR_SENSITIVITY; + mcuReg[i] = DIGITAL_PIR_SENSITIVITY; mcuData[i++] = (puiPara->DigitPirSensitivity);//PirDigtSensRegValue[SysGetFlag(PirSensitivity)]; - mcuReg[i] = DIGITAL_PIR_CFG; + mcuReg[i] = DIGITAL_PIR_CFG; mcuData[i++] = ((puiPara->DigitPirWindowTime) << 4) | (puiPara->DigitPirCnt); - //mcuData[i++] = (PirDigtSensRegValue[SysGetFlag(PirSensitivity)] <= 10 ? 1 : 0); + //mcuData[i++] = (PirDigtSensRegValue[SysGetFlag(PirSensitivity)] <= 10 ? 1 : 0); - //DSP busy/idle + //DSP busy/idle mcuReg[i] = DSP_BUSY_STATUS; mcuData[i++] = 0; - - mcuReg[i] = SF_SYS_STATUS; + + mcuReg[i] = SF_SYS_STATUS; mcuData[i++] = isUsb << 2 | isCardFull << 1 | isCard << 0; - - mcuReg[i] = POWEROFF_TYPE; - temp = 0; - + + mcuReg[i] = POWEROFF_TYPE; + temp = 0; + if(simCardInsert && (puiPara->NetWorkNeedSearch) - && ((PowerOnMode == PWR_ON_AUTO) || (PowerOnMode == PWR_ON_SETUP) || (PowerOnMode == PWR_ON_DAILY_REPORT))){/* SET->ON, OFF->ON*/ - temp = 1; - }else if(SmsCheck){ - temp = 2; - } - - mcuData[i++] = (0) << 7 | (val == APP_POWER_OFF_BATT_EMPTY) << 6 | (val == APP_POWER_OFF_APO) << 6 | temp; - - //battery recovery - mcuReg[i] = VBAT_RECOVER_VAL; - mcuData[i++] = SF_BATT_RECOVERY; - + && ((PowerOnMode == PWR_ON_AUTO) || (PowerOnMode == PWR_ON_SETUP) || (PowerOnMode == PWR_ON_DAILY_REPORT)))/* SET->ON, OFF->ON*/ + temp = 1; + else if(SmsCheck) + temp = 2; + + //if (!(sf_get_pir_statu_flag() || (PowerOnMode == PWR_ON_AUTO))) + temp |= (val == APP_POWER_OFF_BATT_EMPTY) << 6; + + mcuData[i++] = (val==APP_POWER_OFF_APO)<<7 | temp; + + //battery recovery + mcuReg[i] = VBAT_RECOVER_VAL; + mcuData[i++] = SF_BATT_RECOVERY; + if(puiPara->WorkTime1Switch) - { - mcuReg[i] = WORKTIME1_SWITCH; - mcuData[i++] = 0xFF; + { + mcuReg[i] = WORKTIME1_SWITCH; + mcuData[i++] = 0xFF; - mcuReg[i] = WORKTIME1_START_HOUR; - mcuData[i++] = puiPara->WorkTime[0].StartTime.Hour; - mcuReg[i] = WORKTIME1_START_MINUTE; - mcuData[i++] = puiPara->WorkTime[0].StartTime.Min; + mcuReg[i] = WORKTIME1_START_HOUR; + mcuData[i++] = puiPara->WorkTime[0].StartTime.Hour; + mcuReg[i] = WORKTIME1_START_MINUTE; + mcuData[i++] = puiPara->WorkTime[0].StartTime.Min; - mcuReg[i] = WORKTIME1_STOP_HOUR; - mcuData[i++] = puiPara->WorkTime[0].StopTime.Hour; - mcuReg[i] = WORKTIME1_STOP_MINUTE; - mcuData[i++] = puiPara->WorkTime[0].StopTime.Min; - }else - { - mcuReg[i] = WORKTIME1_SWITCH; - mcuData[i++] = 0; + mcuReg[i] = WORKTIME1_STOP_HOUR; + mcuData[i++] = puiPara->WorkTime[0].StopTime.Hour; + mcuReg[i] = WORKTIME1_STOP_MINUTE; + mcuData[i++] = puiPara->WorkTime[0].StopTime.Min; + } + else + { + mcuReg[i] = WORKTIME1_SWITCH; + mcuData[i++] = 0; - mcuReg[i] = WORKTIME1_START_HOUR; - mcuData[i++] = 0; - mcuReg[i] = WORKTIME1_START_MINUTE; - mcuData[i++] = 0; + mcuReg[i] = WORKTIME1_START_HOUR; + mcuData[i++] = 0; + mcuReg[i] = WORKTIME1_START_MINUTE; + mcuData[i++] = 0; - mcuReg[i] = WORKTIME1_STOP_HOUR; - mcuData[i++] = 0; - mcuReg[i] = WORKTIME1_STOP_MINUTE; - mcuData[i++] = 0; - } + mcuReg[i] = WORKTIME1_STOP_HOUR; + mcuData[i++] = 0; + mcuReg[i] = WORKTIME1_STOP_MINUTE; + mcuData[i++] = 0; + } if(puiPara->WorkTime2Switch) - { - mcuReg[i] = WORKTIME2_SWITCH; - mcuData[i++] = 0xFF; + { + mcuReg[i] = WORKTIME2_SWITCH; + mcuData[i++] = 0xFF; - mcuReg[i] = WORKTIME2_START_HOUR; - mcuData[i++] = puiPara->WorkTime[1].StartTime.Hour; - mcuReg[i] = WORKTIME2_START_MINUTE; - mcuData[i++] = puiPara->WorkTime[1].StartTime.Min; + mcuReg[i] = WORKTIME2_START_HOUR; + mcuData[i++] = puiPara->WorkTime[1].StartTime.Hour; + mcuReg[i] = WORKTIME2_START_MINUTE; + mcuData[i++] = puiPara->WorkTime[1].StartTime.Min; - mcuReg[i] = WORKTIME2_STOP_HOUR; - mcuData[i++] = puiPara->WorkTime[1].StopTime.Hour; - mcuReg[i] = WORKTIME2_STOP_MINUTE; - mcuData[i++] = puiPara->WorkTime[1].StopTime.Min; - }else{ - mcuReg[i] = WORKTIME2_SWITCH; - mcuData[i++] = 0; + mcuReg[i] = WORKTIME2_STOP_HOUR; + mcuData[i++] = puiPara->WorkTime[1].StopTime.Hour; + mcuReg[i] = WORKTIME2_STOP_MINUTE; + mcuData[i++] = puiPara->WorkTime[1].StopTime.Min; + } + else + { + mcuReg[i] = WORKTIME2_SWITCH; + mcuData[i++] = 0; - mcuReg[i] = WORKTIME2_START_HOUR; - mcuData[i++] = 0; - mcuReg[i] = WORKTIME2_START_MINUTE; - mcuData[i++] = 0; + mcuReg[i] = WORKTIME2_START_HOUR; + mcuData[i++] = 0; + mcuReg[i] = WORKTIME2_START_MINUTE; + mcuData[i++] = 0; - mcuReg[i] = WORKTIME2_STOP_HOUR; - mcuData[i++] = 0; - mcuReg[i] = WORKTIME2_STOP_MINUTE; - mcuData[i++] = 0; - } + mcuReg[i] = WORKTIME2_STOP_HOUR; + mcuData[i++] = 0; + mcuReg[i] = WORKTIME2_STOP_MINUTE; + mcuData[i++] = 0; + } - if(((puiPara->GpsSwitch) || (puiPara->FristSendDailyAndGps)) && (sf_get_mode_flag() || paraSyncFlag)) - { - mcuReg[i] = GPS_POWER_TIMER_CLEAR; - mcuData[i++] = 1; - mcuReg[i] = GPS_POWER_CTRL; - mcuData[i++] = 1; - } - else - { - mcuReg[i] = GPS_POWER_CTRL; - mcuData[i++] = 0; - } + if(((puiPara->GpsSwitch) || (puiPara->FristSendDailyAndGps)) && (((sf_get_mode_flag())) || paraSyncFlag)) + { + mcuReg[i] = GPS_POWER_TIMER_CLEAR; + mcuData[i++] = 1; + mcuReg[i] = GPS_POWER_CTRL; + mcuData[i++] = 1; + } + else + { + mcuReg[i] = GPS_POWER_CTRL; + mcuData[i++] = 0; + } - temp = 0; + temp = 0; if((puiPara->TimeSend3Switch) == 1) - temp |= 0x01; + temp |= 0x01; if((puiPara->TimeSend4Switch) == 1) - temp |= 0x02; + temp |= 0x02; - mcuReg[i] = FUNCTION_SWTICH1; - mcuData[i++] = temp; + mcuReg[i] = FUNCTION_SWTICH1; + mcuData[i++] = temp; - mcuReg[i] = DAILY_SEND3_HOUR; + mcuReg[i] = DAILY_SEND3_HOUR; mcuData[i++] = puiPara->TimeSend3.Hour; mcuReg[i] = DAILY_SEND3_MINUTE; mcuData[i++] = puiPara->TimeSend3.Min; - mcuReg[i] = DAILY_SEND4_HOUR; + mcuReg[i] = DAILY_SEND4_HOUR; mcuData[i++] = puiPara->TimeSend4.Hour; mcuReg[i] = DAILY_SEND4_MINUTE; mcuData[i++] = puiPara->TimeSend4.Min; - } - else if(attrId == SF_MCU_CTRL_MODULE_PIR) - { - mcuReg[i] = ANALOG_PIR_SENSITIVITY; + }else if(attrId == SF_MCU_CTRL_MODULE_PIR){ + mcuReg[i] = ANALOG_PIR_SENSITIVITY; temp = (puiPara->PirSensitivity);//sf_mcu_analog_pir_sen_convert(SysGetFlag(DigPirSensitivity)); - + if(puiPara->GprsMode)//hybrid mode 4G module keep sleep { - temp |= 0x40; + temp |= 0x40; } - + if((puiPara->GprsSwitch) && (val == 1)) { - temp |= 0x80; - }else - { - //sf_pdp_flg_set(0); - } + temp |= 0x80; + } + else + { + //sf_pdp_flg_set(0); + } - mcuData[i++] = temp; + mcuData[i++] = temp; - if(ConfigureModeFlag) - { - mcuReg[i] = DIGITAL_PIR_SENSITIVITY; + if(ConfigureModeFlag) + { + mcuReg[i] = DIGITAL_PIR_SENSITIVITY; mcuData[i++] = (puiPara->DigitPirSensitivity);//PirDigtSensRegValue[SysGetFlag(PirSensitivity)]; mcuReg[i] = DIGITAL_PIR_CFG; mcuData[i++] = ((puiPara->DigitPirWindowTime) << 4) | (puiPara->DigitPirCnt); - } + } if(((puiPara->GpsSwitch) || (puiPara->FristSendDailyAndGps)) && (ConfigureModeFlag || paraSyncFlag)) - { - mcuReg[i] = GPS_POWER_TIMER_CLEAR; - mcuData[i++] = 1; - mcuReg[i] = GPS_POWER_CTRL; - mcuData[i++] = 1; - }else - { - mcuReg[i] = GPS_POWER_CTRL; - mcuData[i++] = 0; - } - } - else if(attrId == SF_MCU_PARA) - { - mcuReg[i] = ANALOG_PIR_SENSITIVITY; - + { + mcuReg[i] = GPS_POWER_TIMER_CLEAR; + mcuData[i++] = 1; + mcuReg[i] = GPS_POWER_CTRL; + mcuData[i++] = 1; + } + else + { + mcuReg[i] = GPS_POWER_CTRL; + mcuData[i++] = 0; + } + }else if(attrId == SF_MCU_PARA){ + mcuReg[i] = ANALOG_PIR_SENSITIVITY; + temp = (puiPara->PirSensitivity);//sf_mcu_analog_pir_sen_convert(puiPara->PirSensitivity); - + if((puiPara->GprsMode) && (gModuleSleep == 1))//hybrid mode 4G module keep sleep - { - temp |= 0x40; - } + { + temp |= 0x40; + } if((puiPara->GprsSwitch) && (simCardInsert)) - { - temp |= 0x80; - }else - { - //sf_pdp_flg_set(0); - } + { + temp |= 0x80; + } + else + { + //sf_pdp_flg_set(0); + } - mcuData[i++] = temp; - - printf("[%s:%d] temp:0x%02x GprsSwitch:%d simCardInsert:%lu\n", __FUNCTION__, __LINE__, temp, puiPara->GprsSwitch, simCardInsert); + mcuData[i++] = temp; + + printf("[%s:%d] temp:0x%02x GprsSwitch:%d simCardInsert:%lu\n", __FUNCTION__, __LINE__, temp, puiPara->GprsSwitch, simCardInsert); mcuReg[i] = DIGITAL_PIR_SENSITIVITY; mcuData[i++] = (puiPara->DigitPirSensitivity);//PirDigtSensRegValue[SysGetFlag(PirSensitivity)]; - mcuReg[i] = DIGITAL_PIR_CFG; + mcuReg[i] = DIGITAL_PIR_CFG; mcuData[i++] = ((puiPara->DigitPirWindowTime) << 4) | (puiPara->DigitPirCnt); - mcuReg[i] = SF_SYS_STATUS; + mcuReg[i] = SF_SYS_STATUS; mcuData[i++] = (puiPara->CamArmDiable) << 6 | isUsb << 2 | isCardFull << 1 | isCard << 0; if(((puiPara->GpsSwitch) || (puiPara->FristSendDailyAndGps)) && (ConfigureModeFlag || paraSyncFlag)) - { - mcuReg[i] = GPS_POWER_TIMER_CLEAR; - mcuData[i++] = 1; - mcuReg[i] = GPS_POWER_CTRL; - mcuData[i++] = 1; - }else - { - mcuReg[i] = GPS_POWER_CTRL; - mcuData[i++] = 0; - } - } - else if(attrId == SF_MCU_RESET_MODULE) - { - mcuReg[i] = SF_SYS_STATUS; + { + mcuReg[i] = GPS_POWER_TIMER_CLEAR; + mcuData[i++] = 1; + mcuReg[i] = GPS_POWER_CTRL; + mcuData[i++] = 1; + } + else + { + mcuReg[i] = GPS_POWER_CTRL; + mcuData[i++] = 0; + } + }else if(attrId == SF_MCU_RESET_MODULE){ + mcuReg[i] = SF_SYS_STATUS; mcuData[i++] = (puiPara->CamArmDiable) << 6 | isUsb << 2 | isCardFull << 1 | isCard << 0 | 0x10; - //sf_pdp_flg_set(0); - } - else if(attrId == SF_MCU_SOFT_UPDATE) - { - mcuReg[i] = SF_SYS_STATUS; - - if(val == 1) - { + //sf_pdp_flg_set(0); + }else if(attrId == SF_MCU_SOFT_UPDATE){ + mcuReg[i] = SF_SYS_STATUS; + + if(val == 1) + { mcuData[i++] = (puiPara->CamArmDiable) << 6 | isUsb << 2 | isCardFull << 1 | isCard << 0 | 0x08; - } - else - { + } + else + { mcuData[i++] = (puiPara->CamArmDiable) << 6 | isUsb << 2 | isCardFull << 1 | isCard << 0; - } - } - else if(attrId == SF_MCU_POWER_RESTART) - { - mcuReg[i] = SF_SYS_STATUS; + } + }else if(attrId == SF_MCU_POWER_RESTART){ + mcuReg[i] = SF_SYS_STATUS; mcuData[i++] = (puiPara->CamArmDiable) << 6 | isUsb << 2 | isCardFull << 1 | isCard << 0 | 0x20; - } - else if(attrId == SF_MCU_PIR_RESTART) - { - mcuReg[i] = SF_SYS_STATUS; + }else if(attrId == SF_MCU_PIR_RESTART){ + mcuReg[i] = SF_SYS_STATUS; mcuData[i++] = (puiPara->CamArmDiable) << 6 | isUsb << 2 | isCardFull << 1 | isCard << 0 | 0x80; - } - - mcuReg[i] = DSP_WRITE_FLG; //MCU set end - mcuData[i++] = 1; - printf("[%s:%d] mcuData[%d]0x%02x\n", __FUNCTION__, __LINE__, (i - 1), mcuData[(i - 1)]); + } + + mcuReg[i] = DSP_WRITE_FLG; //MCU set end + mcuData[i++] = 1; + //printf("[%s:%d] mcuData[%d]0x%02x\n", __FUNCTION__, __LINE__, (i - 1), mcuData[(i - 1)]); #if 0 - if((attrId == SF_MCU_POWEROFF) && puiPara->DebugMode && IS_CARD_EXIST) - { - for(j = 0; j < i; j++) - { - printf("W_addr[%2d]=0x%02x\n",mcuReg[j],mcuData[j]); - } - - sf_debug_save_log(); - } + if((attrId == SF_MCU_POWEROFF) && puiPara->DebugMode && IS_CARD_EXIST) + { + for(j = 0; j < i; j++) + { + printf("W_addr[%2d]=0x%02x\n",mcuReg[j],mcuData[j]); + } + + sf_debug_save_log(); + } #endif - sf_mcu_write_multi(mcuReg, mcuData, i); - return SUCCESS; + sf_mcu_write_multi(mcuReg, mcuData, i); + return SUCCESS; } + #endif BOOL sf_get_mode_flag(void) @@ -2146,6 +2169,9 @@ void sf_add_file_name_to_send_list(char *sendfname) printf("Add %s to send.List\n", sendfname); if(0 == puiPara->SendType){ snprintf(sendListName, sizeof(sendListName), "%s", SF_THUMB_SEND_AUTO); + if (FileSys_DeleteFile(sendListName) != FST_STA_OK) { + DBG_IND("Ignore deleting file.\r\n"); + } }else { snprintf(sendListName, sizeof(sendListName), "%s", SF_THUMB_SEND_LIST); }