diff --git a/code/lib/source/sifar/code/include/sf_common.h b/code/lib/source/sifar/code/include/sf_common.h index 4223c03af..dd1600191 100755 --- a/code/lib/source/sifar/code/include/sf_common.h +++ b/code/lib/source/sifar/code/include/sf_common.h @@ -216,4 +216,7 @@ void sf_set_wifi_en(UINT32 cnt); void sf_set_bt_en(UINT32 cnt); void sf_dev_en(void); BOOL sf_cmd_lpa_test(unsigned char argc, char **argv); +unsigned long sf_usb_insmod_start(void); +int sf_cardv_init_start(void); +void sf_cardv_set_battery_level(unsigned long Val); #endif diff --git a/code/lib/source/sifar/code/include/sf_mcu.h b/code/lib/source/sifar/code/include/sf_mcu.h index ee55375ae..caf5159e7 100644 --- a/code/lib/source/sifar/code/include/sf_mcu.h +++ b/code/lib/source/sifar/code/include/sf_mcu.h @@ -413,5 +413,6 @@ void sf_set_ae_night_mode(UINT8 isNightMode); UINT32 sf_get_send_pic_sieze(void); void sf_mcu_version_get(UINT8 *mcuVer); BOOL sf_is_night_mode(BOOL isRefresh); +extern void* sf_usb_insmod_thread(void *arg); #endif diff --git a/code/lib/source/sifar/code/source/common/sf_common.c b/code/lib/source/sifar/code/source/common/sf_common.c index cc2e8b20a..3a4b60477 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -65,8 +65,8 @@ #include "sf_4g_lpa.h" #include #include -#include - +// #include +#include "SF_SysStrgMng.h" BOOL isGoing2PowerOff = FALSE; UINT16 AutoOfftime = 0; @@ -142,6 +142,18 @@ static SF_THREAD_S LoadParaTskCfg = .IsRun = 0, .TskId = -1, }; + +static SF_THREAD_S UsbmodTskCfg = +{ + .IsRun = 0, + .TskId = -1, +}; + +static SF_THREAD_S ShareMemTskCfg = +{ + .IsRun = 0, + .TskId = -1, +}; int sf_pir_statu_read(void) { static UINT8 state = 0; @@ -1405,6 +1417,7 @@ BOOL sf_cmd_fw_upgrade(unsigned char argc, char **argv) printf("[%s:%d] s\n", __FUNCTION__, __LINE__); BKG_PostEvent(NVTEVT_BKW_CAMERA_FW_UPGRADE); printf("[%s:%d] e\n", __FUNCTION__, __LINE__); + return TRUE; } BOOL sf_cmd_switch_esim(unsigned char argc, char **argv) { @@ -2790,6 +2803,7 @@ void sf_save_camera_info(void) void* sf_cardv_wifi_thread(void *arg) { /*wifi init*/ + sf_load_wifi_ko(); UINet_AppIpc_Init(); sf_net_wifi_init(NET_AP_MODE, NET_AUTH_WPA2); WifiTskCfg.IsRun = 0; @@ -3528,14 +3542,15 @@ void sf_set_net_generation(UINT8 value) void* sf_cardv_load_menu_info_thread(void *arg) { - vos_perf_list_mark(__func__, __LINE__, 0); + // vos_perf_list_mark(__func__, __LINE__, 0); SLOGI("thread run\n"); LoadParaTskCfg.IsRun = 1; Load_MenuInfo(); + sf_dev_en(); SLOGI("thread end\n"); LoadParaTskCfg.IsRun = 0; - vos_perf_list_mark(__func__, __LINE__, 0); + // vos_perf_list_mark(__func__, __LINE__, 0); return NULL; } UINT32 sf_cardv_load_menu_info_start(void) @@ -3646,6 +3661,8 @@ void sf_dev_en(void) { UIMenuStoreInfo *puiPara = sf_ui_para_get(); UINT8 startup = sf_cardv_convert_power_on_mode(); + BOOL inUsb = GxUSB_GetIsUSBPlug(); + printf("[%s:%d] s\n", __FUNCTION__, __LINE__); if(SF_MCU_STARTUP_ONKEY == startup) @@ -3660,7 +3677,7 @@ void sf_dev_en(void) } } - if((SF_MCU_STARTUP_NORMAL != startup) && (SF_MCU_STARTUP_OFF != startup)) + if((TRUE != inUsb) && (SF_MCU_STARTUP_NORMAL != startup) && (SF_MCU_STARTUP_OFF != startup)) { if(puiPara->GprsSwitch) { @@ -3679,4 +3696,91 @@ BOOL sf_cmd_lpa_test(unsigned char argc, char **argv) sf_com_message_send_to_app(&stMessageBuf); return TRUE; -} \ No newline at end of file +} + +unsigned long sf_usb_insmod_start(void) +{ + unsigned long ret = SF_FAILURE; + if(UsbmodTskCfg.IsRun) + { + SLOGE("thread has already run !!!\n"); + return SF_FAILURE; + } + UsbmodTskCfg.IsRun = 1; + SLOGI("thread run\n"); + ret = pthread_create(&UsbmodTskCfg.TskId, NULL, sf_usb_insmod_thread, NULL); + if(ret != SF_SUCCESS) + { + MLOGD("thread creat fail!\n"); + return ret; + } + return SF_SUCCESS; +} + +void* sf_cardv_init_thread(void *arg) +{ + SLOGI("thread run\n"); + ShareMemTskCfg.IsRun = 1; + sf_share_mem_file_init(); + if(SF_SUCCESS == sf_com_message_cardv_init()) + { + printf("create message successs!!!!\n"); + } + if(SF_SUCCESS == sf_com_message_app_init()) + { + printf("create cardv message successs!!!!\n"); + } + sf_cardv_message_thread_init(); + + SF_StrgInit(); + SLOGI("thread s1\n"); + +#if USE_MMC_DEV_CHECK + sf_mmc_dev_check_start(); +#endif + + BOOL inUsb = GxUSB_GetIsUSBPlug(); + + SF_MESSAGE_BUF_S stMessageBuf = {0}; + + if(TRUE != inUsb) + { + stMessageBuf.arg1 = SF_MCU_CMD_POWERON; + stMessageBuf.cmdId = CMD_MCU; + sf_com_message_send_to_app(&stMessageBuf); + + stMessageBuf.arg1 = SF_DEV_CMD_TEMPER; + stMessageBuf.cmdId = CMD_DEV; + sf_com_message_send_to_app(&stMessageBuf); + } + + ShareMemTskCfg.IsRun = 0; + SLOGI("thread end\n"); + return NULL; +} + +int sf_cardv_init_start(void) +{ + int ret = 1; + if(ShareMemTskCfg.IsRun) + { + SLOGE("thread has already run !!!\n"); + return 1; + } + ret = pthread_create(&ShareMemTskCfg.TskId, NULL, sf_cardv_init_thread, NULL); + if(ret != SF_SUCCESS) + { + MLOGD("thread creat fail!\n"); + return ret; + } + return SF_SUCCESS; + +} +void sf_cardv_set_battery_level(unsigned long Val) +{ + batteryVal = (Val>>18) & 0x7F;//0~100 + batteryType = (Val>>16) & 0x03; + powerVal = Val & 0xFF; + sf_cardv_battery_level_update(batteryVal); + // MLOGI("batteryVal:%d batteryType:%d powerVal:%d p:%d\n",batteryVal, batteryType, powerVal,Val); +}