From bfca2354c76f34ca0feab74d91c1348448a268c8 Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Wed, 19 Jun 2024 11:44:03 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96=E6=8C=87=E5=8D=97=E9=92=88?= =?utf8?q?=E6=A0=A1=E5=87=86=E6=95=B0=E6=8D=AE=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../drivers/peripheral/mag/mmc5603/MMC5603.h | 2 ++ .../peripheral/mag/mmc5603/mmc5603_main.c | 21 ++++++++++--------- .../peripheral/mag/service/mag_service.c | 5 +++++ .../peripheral/mag/service/mag_service.h | 1 + .../drivers/peripheral/utils/custom_utils.c | 4 ++++ 5 files changed, 23 insertions(+), 10 deletions(-) diff --git a/code/sdk/drivers/peripheral/mag/mmc5603/MMC5603.h b/code/sdk/drivers/peripheral/mag/mmc5603/MMC5603.h index 9a751aca2..4ce9511e3 100644 --- a/code/sdk/drivers/peripheral/mag/mmc5603/MMC5603.h +++ b/code/sdk/drivers/peripheral/mag/mmc5603/MMC5603.h @@ -125,5 +125,7 @@ void MMC5603_GetData(float *mag_out); void MMC5603_GETID(unsigned char *id); +int SavePara_infile(void); + #endif diff --git a/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c b/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c index 55846fa10..187b61538 100644 --- a/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c +++ b/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c @@ -272,25 +272,24 @@ int SavePara(float *p) #define MMC_DATA_PATH "/user/userdata/mmc_para" -int SavePara_infile(float *p,uint32_t len) +int SavePara_infile(void) { - for(int i = 0; i < len ; i++) - PRINT("p[%d] : %f \r\n",i,p[i]); FILE * fp = fopen(MMC_DATA_PATH,"wb"); - int ret = 0; + size_t ret = 0; if(fp==NULL) { PRINT("open %s failed\n",MMC_DATA_PATH); return -1; } - ret = fwrite(p,1,len,fp); - if(ret==0) + ret = fwrite(g_MagPara,sizeof(float),4,fp); + if(ret != 4) { PRINT("fwrite failed %d\n",ret); return -1; } - + for(int i = 0; i < 4 ; i++) + PRINT("write p[%d] : %f \r\n",i,g_MagPara[i]); fclose(fp); return 1; } @@ -304,15 +303,18 @@ int ReadPara_infile(float *p,uint32_t len) return -1; } - int ret =fread(p,1,len,fp); - if(ret==0) + size_t ret =fread(p,sizeof(float),len,fp); + if(ret != len) { PRINT("fread failed %d\n",ret); return -1; } + for(int i = 0; i < len ; i++) + PRINT("read p[%d] : %f \r\n",i,p[i]); fclose(fp); return 1; } + /* Convert the sensor coordinate to right-front-up coordinate system; */ void acc_coordinate_raw_to_real(int layout, float *in, float *out) @@ -439,7 +441,6 @@ int mag_service_get_iAccuracy(void) int mmc5603_stop(void) { - SavePara_infile(g_MagPara,4); MMC5603_Disable(); return 0; } diff --git a/code/sdk/drivers/peripheral/mag/service/mag_service.c b/code/sdk/drivers/peripheral/mag/service/mag_service.c index eb749521f..1d3dcf6f5 100644 --- a/code/sdk/drivers/peripheral/mag/service/mag_service.c +++ b/code/sdk/drivers/peripheral/mag/service/mag_service.c @@ -173,7 +173,12 @@ static void mag_service_check_task(void const *arg) LOS_Mdelay(20); // uapi_pm_remove_sleep_veto(PM_ID_SCREEN); + }else if (mail.comm.app == MAG_SERVICE_CMD_SAVE_CHECK){ + if(SavePara_infile() != 1) + PRINT("mag save data failed !!! \r\n"); } + + } } void create_mag_queue(void) diff --git a/code/sdk/drivers/peripheral/mag/service/mag_service.h b/code/sdk/drivers/peripheral/mag/service/mag_service.h index 62bbe0e2d..04ccfe36a 100644 --- a/code/sdk/drivers/peripheral/mag/service/mag_service.h +++ b/code/sdk/drivers/peripheral/mag/service/mag_service.h @@ -22,6 +22,7 @@ extern "C" { #define MAG_SERVICE_CMD_START_CHECK 0x12 #define MAG_SERVICE_CMD_STOP_CHECK 0x13 +#define MAG_SERVICE_CMD_SAVE_CHECK 0x14 errcode_t uapi_mag_service_init(void); void uapi_mag_service_deinit(void); diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.c b/code/sdk/drivers/peripheral/utils/custom_utils.c index 81f6dc7ef..291f3a654 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils.c @@ -48,6 +48,7 @@ #include "custom_utils.h" #include "cywee_service.h" #include "microtar.h" +#include "mag_service.h" errcode_t uapi_create_osThread_custom(app_task_definition_t *task_cfg) { @@ -147,6 +148,9 @@ void shutdown_reboot_prejobs_task(void) //保存步数 do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SAVE_DATA,NULL); + //保存磁力计数据 + do_mag_service_check_msg(MAG_SERVICE_CMD_SAVE_CHECK); + addressbookTowrite(); dial_file_save(); -- 2.17.1