From fb3e1b90f6277ca110fceda39115442dff2386ab Mon Sep 17 00:00:00 2001 From: penglei <1624952103@qq.com> Date: Mon, 14 Oct 2024 11:09:59 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E6=94=B9=E6=8C=87=E5=8D=97=E9=92=88?= =?utf8?q?=E6=96=87=E4=BB=B6=E5=AD=98=E5=82=A8=EF=BC=8C=E6=94=B9=E4=B8=BA?= =?utf8?q?=E6=B6=88=E6=81=AF=E9=98=9F=E5=88=97=E5=AE=9E=E7=8E=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../drivers/peripheral/mag/mmc5603/mmc5603_hal.h | 3 +++ .../peripheral/mag/mmc5603/mmc5603_main.c | 16 +++++++++------- .../drivers/peripheral/mag/service/mag_service.c | 4 +++- .../utils/custom_fileoperate_service.c | 7 +++++++ code/sdk/drivers/peripheral/utils/custom_utils.h | 3 +++ 5 files changed, 25 insertions(+), 8 deletions(-) diff --git a/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_hal.h b/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_hal.h index 8f769a5f9..9f72a3ea4 100644 --- a/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_hal.h +++ b/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_hal.h @@ -25,6 +25,9 @@ int mmc5603_stop(void); int mmc5603_check(void); int mmc5603_start(void); +int mmc5603_savePara_infile(void); +int mmc5603_readPara_infile(void); + #ifdef __cplusplus #if __cplusplus } diff --git a/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c b/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c index 44e3cf1bb..e1fafe86e 100644 --- a/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c +++ b/code/sdk/drivers/peripheral/mag/mmc5603/mmc5603_main.c @@ -92,7 +92,9 @@ int mmc5603_start(void) // } // } - if(ReadPara_infile(saveData,4)==1) + // if(ReadPara_infile(saveData,4)==1) + + // if(mmc5603_readPara_infile()==1) { for(i=0;i<4;i++) { @@ -271,7 +273,7 @@ int SavePara(float *p) #define MMC_DATA_PATH "/user/userdata/mmc_para.bin" -int SavePara_infile(void) +int mmc5603_savePara_infile(void) { FILE * fp = fopen(MMC_DATA_PATH,"wb"); size_t ret = 0; @@ -293,7 +295,7 @@ int SavePara_infile(void) return 1; } -int ReadPara_infile(float *p,uint32_t len) +int mmc5603_readPara_infile(void) { FILE * fp = fopen(MMC_DATA_PATH,"rb"); if(fp==NULL) @@ -302,14 +304,14 @@ int ReadPara_infile(float *p,uint32_t len) return -1; } - size_t ret =fread(p,sizeof(float),len,fp); - if(ret != len) + size_t ret =fread(saveData,sizeof(float),4,fp); + if(ret != 4) { 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]); + for(int i = 0; i < 4 ; i++) + PRINT("read p[%d] : %f \r\n",i,saveData[i]); fclose(fp); return 1; } diff --git a/code/sdk/drivers/peripheral/mag/service/mag_service.c b/code/sdk/drivers/peripheral/mag/service/mag_service.c index 1730b9ad2..e542d3bf8 100644 --- a/code/sdk/drivers/peripheral/mag/service/mag_service.c +++ b/code/sdk/drivers/peripheral/mag/service/mag_service.c @@ -163,6 +163,7 @@ static void mag_service_check_task(void const *arg) mmc5603_check(); }else if (mail.comm.app == MAG_SERVICE_CMD_START_CHECK){ uapi_dev_runtime_set_mmc_status(1); + do_custom_fileoperate_service_check_msg(CUSTOM_FILEOPERATE_MSG_TYPE_MMCDATA_READ, NULL, 0); mmc5603_start(); LOS_Mdelay(20); mag_service_running_stat = true; @@ -170,7 +171,8 @@ static void mag_service_check_task(void const *arg) mag_service_timer_start_check(MAG_CHECK_MS); }else if (mail.comm.app == MAG_SERVICE_CMD_STOP_CHECK){ uapi_dev_runtime_set_mmc_status(0); - SavePara_infile(); + // SavePara_infile(); + do_custom_fileoperate_service_check_msg(CUSTOM_FILEOPERATE_MSG_TYPE_MMCDATA_SAVE, NULL, 0); mag_service_running_stat = false; osTimerStop(g_mag_service_timer); mmc5603_stop(); diff --git a/code/sdk/drivers/peripheral/utils/custom_fileoperate_service.c b/code/sdk/drivers/peripheral/utils/custom_fileoperate_service.c index 6727198f1..9c81cc6ae 100644 --- a/code/sdk/drivers/peripheral/utils/custom_fileoperate_service.c +++ b/code/sdk/drivers/peripheral/utils/custom_fileoperate_service.c @@ -43,6 +43,7 @@ #include "sleep/include/SleepModelC.h" +#include "mmc5603_hal.h" typedef struct { uint8_t cmd; @@ -129,6 +130,12 @@ static void custom_fileoperate_service_check_task(void const *arg) case CUSTOM_FILEOPERATE_MSG_TYPE_NAPDATA_READ: custom_read_nap_data(); break; + case CUSTOM_FILEOPERATE_MSG_TYPE_MMCDATA_SAVE: + mmc5603_savePara_infile(); + break; + case CUSTOM_FILEOPERATE_MSG_TYPE_MMCDATA_READ: + mmc5603_readPara_infile(); + break; default: PRINT("Unknown CUSTOM_FILE_OPERATE_MSG cmd 0x%02X \r\n", mail.cmd); break; diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.h b/code/sdk/drivers/peripheral/utils/custom_utils.h index 99a43ed0a..67d3e1e49 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.h +++ b/code/sdk/drivers/peripheral/utils/custom_utils.h @@ -243,6 +243,9 @@ errcode_t do_custom_cmd_service_check_msg(int cmd, void *params, int paramlen); #define CUSTOM_FILEOPERATE_MSG_TYPE_SLEEPDATA_READ 0x07 //读取睡眠时间 #define CUSTOM_FILEOPERATE_MSG_TYPE_NAPDATA_READ 0x08 //读取小睡数据 +#define CUSTOM_FILEOPERATE_MSG_TYPE_MMCDATA_SAVE 0x09 //存储指南针数据 +#define CUSTOM_FILEOPERATE_MSG_TYPE_MMCDATA_READ 0x0A //读取指南针数据 + errcode_t uapi_custom_fileoperate_service_init(void); errcode_t do_custom_fileoperate_service_check_msg(int cmd, void *params, int paramlen); -- 2.17.1