From f7a938c3742d585af98cbd6507dd76be038cc47f Mon Sep 17 00:00:00 2001 From: xiaojiazhu Date: Mon, 11 Dec 2023 16:59:16 +0800 Subject: [PATCH] Fixed bug number 10369. --- .../UIFlowPhoto/UIFlowPhotoEventCallback.c | 22 ++++++++++++++++++- .../sf_app/code/include/sf_commu_mcu_reg.h | 5 +++++ .../sf_app/code/include/sf_param_enum.h | 1 + .../sf_app/code/source/app/sf_service.c | 4 ++++ .../code/source/systemMng/sf_commu_mcu_reg.c | 8 +++++++ .../lib/source/sifar/code/include/sf_common.h | 12 ++++++++++ .../sifar/code/source/common/sf_common.c | 13 +++++++++++ 7 files changed, 64 insertions(+), 1 deletion(-) 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 ec0bec668..ac77f7893 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 @@ -633,7 +633,26 @@ const int EMPTY_IMAGE = 0; lv_obj_set_hidden(image_4g_scr_uiflowphoto, false); lv_plugin_img_set_src(image_4g_scr_uiflowphoto, res[index]); } - +static void update_gps_status(void) +{ + SF_GPS_STATUS_E status = sf_cardv_get_gps_status(); + switch (status) + { + case SF_GPS_SEARCHING_START: + { + lv_obj_set_hidden(label_sim_scr_uiflowphoto, false); + lv_label_set_text(label_sim_scr_uiflowphoto, "GPS searching..."); + break; + } + case SF_GPS_SEARCHING_STOP: + { + lv_obj_set_hidden(label_sim_scr_uiflowphoto, true); + break; + } + default: + break; + } +} static void update_camera_message(void) { UIMenuStoreInfo *puiPara = sf_ui_para_get(); @@ -854,6 +873,7 @@ static void update_icons(void) update_wifi(); update_bluetooth(); update_camera_mode(); + update_gps_status(); } static void FlowPhoto_InitStartupFuncs(void) 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 c8d9c3260..168b4f990 100755 --- 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 @@ -357,6 +357,11 @@ void sf_set_module_sleep_flag(UINT8 flag); UINT8 sf_get_module_sleep_flag(void); int sf_app_while_flag(void); void sf_set_sim_insert(INT32 sim); + #define GPS_SEARCHING_START 0 + #define GPS_SEARCHING_STOP 1 + #define GPS_SEARCHING_SUCCESSFUL 2 + #define GPS_SEARCHING_FAILED 3 +void sf_set_gps_status(const short status); void sf_set_usb_init(int flag); UINT32 sf_get_sim_insert(void); int sf_get_signal_ready(void); 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 b7e85f84e..0e39a30f5 100755 --- a/code/application/source/sf_app/code/include/sf_param_enum.h +++ b/code/application/source/sf_app/code/include/sf_param_enum.h @@ -486,6 +486,7 @@ typedef enum sf_PARA_MESSAGE_TYPE_E SF_PARA_CMD_SIMISINSERT = 0x1F06, SF_PARA_CMD_ISESIM = 0x1F07, SF_PARA_CMD_USB_INIT = 0x1F08, + SF_PARA_CMD_GPS_STATUS = 0X1F09, }SF_PARA_MESSAGE_TYPE_E; typedef enum sf_WIFI_MESSAGE_TYPE_E 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 2aa9aeb10..57cd8d71f 100755 --- a/code/application/source/sf_app/code/source/app/sf_service.c +++ b/code/application/source/sf_app/code/source/app/sf_service.c @@ -2162,6 +2162,7 @@ SINT32 open_gps(const SINT32 utc) { //UIMenuStoreInfo *pCustomerParam = sf_app_ui_para_get(); //SINT32 s32ret = 0; + sf_set_gps_status(GPS_SEARCHING_START); SF_PARA_TIME_S current_time = { 0, 0, 0, 0, 0, 0}; sf_get_ntp(utc, ¤t_time); #define NTP_TIME_LENGTH 32 @@ -2184,6 +2185,7 @@ int get_gps_location(void) GpsLocation location; memset(&location, 0, sizeof(GpsLocation)); location = gps_get_location(); + sf_set_gps_status(GPS_SEARCHING_STOP); if (strlen(location.latitude) > 0 && strlen(location.longitude) > 0) { LogInfo("Get gps location!\n"); @@ -2193,8 +2195,10 @@ int get_gps_location(void) strcpy(pCustomerParam->Latitude, location.latitude); LogInfo("location.Longitude = %s\n", pCustomerParam->Longitude); LogInfo("location.Latitude = %s\n", pCustomerParam->Latitude); + // sf_set_gps_status(GPS_SEARCHING_SUCCESSFUL); return GPS_GET_SUCCEED; } + // sf_set_gps_status(GPS_SEARCHING_FAILED); return GPS_GET_FAILED; } void keep_get_gps_location(const SF_GPS_PARAM param) 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 72d48d6d5..96ff79bde 100755 --- 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 @@ -1241,6 +1241,14 @@ void sf_set_sim_insert(INT32 sim) simCardInsert = sim; } +void sf_set_gps_status(const short status) +{ + SF_MESSAGE_BUF_S stMessageBuf = {0}; + stMessageBuf.arg2 = status; + stMessageBuf.arg1 = SF_PARA_CMD_GPS_STATUS; + stMessageBuf.cmdId = CMD_PARA; + sf_com_message_send_to_cardv(&stMessageBuf); +} void sf_set_usb_init(int flag) { SF_MESSAGE_BUF_S stMessageBuf = {0}; diff --git a/code/lib/source/sifar/code/include/sf_common.h b/code/lib/source/sifar/code/include/sf_common.h index 45d43c7bb..4e52744da 100755 --- a/code/lib/source/sifar/code/include/sf_common.h +++ b/code/lib/source/sifar/code/include/sf_common.h @@ -23,6 +23,16 @@ typedef enum sfBLE_STATUS_E SF_BLE_BUTT, } SF_BLE_STATUS_E; +typedef enum sfGPS_STATUS_E +{ + SF_GPS_SEARCHING_UNKNOW = -1, + SF_GPS_SEARCHING_START, + SF_GPS_SEARCHING_STOP, + SF_GPS_SEARCHING_SUCCESSFUL, + SF_GPS_SEARCHING_FAILED, + SF_GPS_SEARCHING_END, +} SF_GPS_STATUS_E; + typedef enum{ FILE_SENDING_GUI_START_SENDING = 0, FILE_SENDING_GUI_STOP_SENDING, @@ -114,6 +124,8 @@ BOOL sf_is_movie_preview(void); BOOL sf_is_cap_preview(void); BOOL sf_is_preview(void); short sf_cardv_get_cq_signal(void); +void sf_cardv_set_gps_status(const SF_GPS_STATUS_E status); +const SF_GPS_STATUS_E sf_cardv_get_gps_status(void); void sf_cardv_4G_status_set(UINT8 status); UINT8 sf_cardv_4G_status_get(void); void sf_cardv_set_sim_insert(INT8 sim); 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 dc720e73e..51ac69fd1 100755 --- a/code/lib/source/sifar/code/source/common/sf_common.c +++ b/code/lib/source/sifar/code/source/common/sf_common.c @@ -99,6 +99,7 @@ static SINT32 WifiSocket = 0; static UINT8 UiparaFlag = 0; static SF_BLE_STATUS_E BleStatus = SF_BLE_OK; static UINT8 McuUpdateFlag = 0; +static SF_GPS_STATUS_E gGpsSearching = SF_GPS_SEARCHING_UNKNOW; static SF_THREAD_S UpgradeTskParam = { @@ -1526,6 +1527,15 @@ short sf_cardv_get_cq_signal(void) { return cq_Signal; } +void sf_cardv_set_gps_status(const SF_GPS_STATUS_E status) +{ + printf("sf_cardv_set_gps_status = %d\n", status); + gGpsSearching = status; +} +const SF_GPS_STATUS_E sf_cardv_get_gps_status(void) +{ + return gGpsSearching; +} /************************************************* Function: sf_cardv_adc_value_get @@ -1765,6 +1775,9 @@ static SINT32 sf_cardv_proccess_cmd_para_update(SF_MESSAGE_BUF_S *pMessageBuf) break; case SF_PARA_CMD_USB_INIT: sf_cardv_set_usb_init(pMessageBuf->arg2); + break; + case SF_PARA_CMD_GPS_STATUS: + sf_cardv_set_gps_status(pMessageBuf->arg2); break; default: break;