diff --git a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c index 15cdfc886..78e10f4aa 100755 --- a/code/application/source/cardv/SrcCode/System/SysMain_Exe.c +++ b/code/application/source/cardv/SrcCode/System/SysMain_Exe.c @@ -244,7 +244,7 @@ INT32 System_OnBoot(VControl *pCtrl, UINT32 paramNum, UINT32 *paramArray) #if HUNTING_CAMERA_MCU == ENABLE sf_cardv_para_check_start(); - sf_cardv_wifi_start(); + //sf_cardv_wifi_start(); #endif #if (UCTRL_FUNC) 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 8a2f476b0..1f7a5afc7 100755 --- a/code/application/source/sf_app/code/source/app/sf_device.c +++ b/code/application/source/sf_app/code/source/app/sf_device.c @@ -645,12 +645,50 @@ BOOL sf_system_check_bt_ko(void) } } +BOOL sf_system_check_firmware_class_ko(void) +{ + char command[30] = "lsmod | grep firmware_class"; + FILE *fp = popen(command, "r"); + char result[256]; + fgets(result, sizeof(result), fp); + pclose(fp); + if (result[0] == '\0') { + MLOGI("rtk_btusb module is not loaded.\n"); + return FALSE; + } else { + MLOGI("rtk_btusb module is loaded.\n"); + return TRUE; + } +} + BOOL sf_load_bt_ko(void) { BOOL ret2 = TRUE; int ret = 0; + UINT8 i = 0; char cmd[70] = {'\0'}; MLOGI("start.\n"); + if (sf_system_check_bt_ko() == TRUE) + { + return ret2; + } + + for (i = 0; i < 50; i++) + { + if (sf_system_check_firmware_class_ko() == TRUE) + { + break; + } + else + { + if(49 == i) + { + MLOGE("blue setup fall!!\n"); + return FALSE; + } + usleep(500 * 1000); + } + } snprintf(cmd, sizeof(cmd), "insmod %s/kernel/drivers/bluetooth/rtk_btusb.ko", driver_path_prefix); ret = system(cmd); //ret = system("modprobe rtk_btusb"); 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 b9bd02196..f118a83a0 100755 --- a/code/application/source/sf_app/code/source/app/sf_system.c +++ b/code/application/source/sf_app/code/source/app/sf_system.c @@ -1334,6 +1334,22 @@ void sf_do_4g_upgrade_thread(void) } } +/************************************************* + Function: sf_wifi_start_to_cardv + Description: wifi on + Input: N/A + Output: N/A + Return: N/A + Others: N/A +*************************************************/ +void sf_wifi_start_to_cardv(void) +{ + SF_MESSAGE_BUF_S stMessageBuf = {0}; + SLOGI(" CMD_WIFI SF_WIFI_CMD_START\n"); + stMessageBuf.cmdId = CMD_WIFI; + stMessageBuf.arg1 = SF_WIFI_CMD_START; + sf_com_message_send_to_cardv(&stMessageBuf); +} void* sf_app_load_ko_thread(void *arg) { @@ -1344,7 +1360,8 @@ void* sf_app_load_ko_thread(void *arg) if(PWR_ON_SETUP == sf_poweron_type_get()) { - sf_load_bt_ko(); + //sf_load_bt_ko(); + sf_wifi_start_to_cardv(); } /*if((SF_MCU_STARTUP_NORMAL != sf_poweron_type_get()) && (0 == sf_get_fw_update())) { diff --git a/code/application/source/sf_app/code/source/sf_blue/src/sf_blue_hal.c b/code/application/source/sf_app/code/source/sf_blue/src/sf_blue_hal.c index c61b8b139..213785baa 100644 --- a/code/application/source/sf_app/code/source/sf_blue/src/sf_blue_hal.c +++ b/code/application/source/sf_app/code/source/sf_blue/src/sf_blue_hal.c @@ -130,6 +130,8 @@ static void *sf_bluetooth_piscan_task(void *arg) { UINT8 i = 0; sf_bluetooth_power_enable(); + sf_load_bt_ko(); + usleep(100 * 1000); //system("export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/misc:/customer/rocus/lib"); //system("adduser messagebus"); @@ -159,7 +161,7 @@ static void *sf_bluetooth_piscan_task(void *arg) } else { - if(39 == 1) + if(1 == i) { sf_load_bt_ko(); } 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 d514b6745..90815ec55 100755 --- 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 @@ -2764,7 +2764,7 @@ void sf_wifi_hw_init(void) } else { - //ret = system("modprobe 8723du"); + ret = system("modprobe 8723du"); } //sleep(2); ret = system("ifconfig lo 127.0.0.1"); 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 9d38ea064..1ac0b1e18 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -1850,7 +1850,7 @@ static SINT32 sf_cardv_proccess_cmd_wifi(SF_MESSAGE_BUF_S *pMessageBuf) switch(pMessageBuf->arg1) { case SF_WIFI_CMD_START: - if((0 == sf_get_mcu_update_flag()) && (0 == sf_get_fw_update()) && (sf_get_mode_flag())) + //if((0 == sf_get_mcu_update_flag()) && (0 == sf_get_fw_update()) && (sf_get_mode_flag())) sf_cardv_wifi_start(); break; @@ -2778,10 +2778,6 @@ void sf_save_camera_info(void) void* sf_cardv_wifi_thread(void *arg) { /*wifi init*/ - sf_cardv_set_wifi_en(1); - usleep(200*1000); - system("modprobe 8723du"); - usleep(200*1000); UINet_AppIpc_Init(); sf_net_wifi_init(NET_AP_MODE, NET_AUTH_WPA2); WifiTskCfg.IsRun = 0; @@ -2792,8 +2788,9 @@ UINT32 sf_cardv_wifi_start(void) { SINT32 ret = 1; UIMenuStoreInfo *puiPara = sf_ui_para_get(); + SLOGI("thread run\n"); - if((0 == sf_get_mcu_update_flag()) && (0 == sf_get_fw_update()) && (sf_get_mode_flag()) && (puiPara->WifiSwitch)) + if((0 == sf_is_usb_flag()) && (0 == sf_get_mcu_update_flag()) && (0 == sf_get_fw_update()) && (sf_get_mode_flag()) && (puiPara->WifiSwitch)) { if(WifiTskCfg.IsRun) {