From c56ffb1f6ba8f166c54618b7c0a483d8d1f5650a Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E8=83=A1=E4=BC=A0=E5=86=9B?= <1224667075@qq.com> Date: Tue, 6 Aug 2024 11:01:09 +0000 Subject: [PATCH] Merge #654 into sdk602patch0626 from refs/changes/654/head MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Code review from 胡传军 * refs/changes/654/head: (8 commits squashed) - 增加cat1 DTMF服务 - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into 0626 - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into 0626 - 修复通讯录错误添加BUG - 合并 - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into 0626 - 修复数据同步出现0 bug - Merge branch 'sdk602patch0626' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into 0626 Signed-off-by: aliyun8003852482 <1224667075@qq.com> Reviewed-by: snickersun@163.com Merged-by: snickersun@163.com CR-link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/654 --- .../drivers/peripheral/cywee/Inc/cywee_hal.h | 2 +- .../peripheral/cywee/src/board_yh601s.c | 47 ++++++++++++++----- 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h b/code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h index ac2d9c56d..ad6b1fbed 100644 --- a/code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h +++ b/code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h @@ -40,7 +40,7 @@ extern void CWM_OS_free(void *ptr); extern void CWM_OS_saveData(int* data, uint32_t len,uint8_t type); extern void CWM_OS_OneHourAgo_saveData(void* data, uint32_t len,uint8_t type); -extern void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len,uint8_t type); +extern void CWM_OS_saveData_history(void* new_data,void *history ,uint32_t len,uint8_t type); extern void CWM_OS_saveData_STAND_history(uint8_t *falg,uint32_t len); extern uint8_t get_stand_count(void); extern void CWM_OS_restoreData(int* data, uint32_t len,uint8_t type); diff --git a/code/sdk/drivers/peripheral/cywee/src/board_yh601s.c b/code/sdk/drivers/peripheral/cywee/src/board_yh601s.c index 791174cba..ef4196205 100644 --- a/code/sdk/drivers/peripheral/cywee/src/board_yh601s.c +++ b/code/sdk/drivers/peripheral/cywee/src/board_yh601s.c @@ -387,7 +387,7 @@ void CWM_OS_OneHourAgo_saveData(void* data, uint32_t len,uint8_t type){ -void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len,uint8_t type){ +void CWM_OS_saveData_history(void* new_data,void *history ,uint32_t len,uint8_t type){ struct stat info; @@ -402,19 +402,33 @@ void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len,uint8_t ty char timeday[12] = {0}; uapi_get_YYMMDD_Time(timeday, '_'); + int i_data=0; + float f_data=0; + uint16_t i_data_16=0; + switch (type) { case CYWEE_DATA_CALORIES: - sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_CALORIES_PATH,timeday); + sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_CALORIES_PATH,timeday); + + f_data=*(float*)new_data-*(float*)history; + break; case CYWEE_DATA_STEP: sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_PATH,timeday); + + i_data= *(int*)new_data-*(int*)history;//新数据减去旧数据,作为这一个小时的值 + break; case CYWEE_DATA_DISTANCE: sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_DISTANCE_PATH,timeday); + f_data=*(float*)new_data-*(float*)history; + break; case CYWEE_DATA_FAT: sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_FAT_PATH,timeday); + i_data_16= *(uint16_t*)new_data-*(uint16_t*)history;//新数据减去旧数据,作为这一个小时的值 + break; default: @@ -423,18 +437,19 @@ void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len,uint8_t ty CWM_OS_dbgPrintf(" save path %s \n",path_); - int data= *new_data-*history;//新数据减去旧数据,作为这一个小时的值 - if(data<0) + + if(i_data<0 || f_data<0 ||i_data_16<0) { - data=0; - *history=0; + i_data=0; + f_data=0; + *(int*)history=0; } - if(data==0) + if(i_data==0 && f_data==0 && i_data_16==0) { return; } - + FILE * fp = fopen(path_,"ab+"); if(fp==NULL) { @@ -458,7 +473,12 @@ void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len,uint8_t ty } #ifndef ONE_TIME_CONUT_TOTAL - ret =fwrite(&data,1,len,fp); + if(i_data) + ret =fwrite(&i_data,1,len,fp); + else if(i_data_16) + ret =fwrite(&i_data_16,1,len,fp); + else if(f_data) + ret =fwrite(&f_data,1,len,fp); #else ret =fwrite(new_data,1,len,fp); #endif @@ -466,9 +486,12 @@ void CWM_OS_saveData_history(int* new_data,int *history ,uint32_t len,uint8_t ty { CWM_OS_dbgPrintf("fwrite failed %d\n",ret); } - CWM_OS_dbgPrintf("fwrite data %d\n",data); - - *history=*new_data; + if(i_data) + *(int*)history=*(int*)new_data; + else if(i_data_16) + *(uint16_t*)history=*(uint16_t*)new_data; + else if(f_data) + *(float*)history=*(float*)new_data; fclose(fp); } -- 2.17.1