From: hcj_ <1224667075@qq.com> Date: Wed, 8 May 2024 00:41:33 +0000 (+0800) Subject: 喝水及睡眠协议对接 X-Git-Tag: release_V1.2.70_20241020_135402~1113^2~13 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=264914761dce334f95e564cbd596c10086b6ae3c;p=mirrors%2FFD230.git 喝水及睡眠协议对接 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h b/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h index 0e8465a7d..8e05cdb68 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h @@ -81,6 +81,19 @@ namespace OHOS CONFIFMOFEL_ITEM_NOTIFY,//消息通知开关 + //喝水提醒相关 + CONFIFMOFEL_ITEM_DRINK,//开关 0 关闭 1开始 2间隔提醒 + CONFIFMOFEL_ITEM_DRINK_GOAL,//目标。ml + CONFIFMOFEL_ITEM_DRINK_START,//提醒开始时间 int类型 前16位小时,后16位分钟 + CONFIFMOFEL_ITEM_DRINK_END,//提醒结束时间 int类型 前16位小时,后16位分钟 + CONFIGMODEL_ITEM_DRINK_FREQ,//提醒频率 0:30分钟1:1小时2:2小时 3:3小时 + + //睡眠提醒相关 + CONFIFMOFEL_ITEM_SLEEP, //开关 + CONFIFMOFEL_ITEM_SLEEP_BEDTIME,//就寝时间 + CONFIFMOFEL_ITEM_SLEEP_GET_UP,//起床时间 + CONFIFMOFEL_ITEM_SLEEP_REMIND,//提前20分钟提醒开关 + CONFIGMODEL_ITEM_MAX, } ; @@ -233,6 +246,16 @@ namespace OHOS {ConfigDataType::DATATYPE_INT, "HeartRateDetected", "0" },// CONFIFMOFEL_ITEM_HEARTRATE_DETECTED//心率周期检测频率 {ConfigDataType::DATATYPE_INT, "HeartRateMax", "0" },// CONFIFMOFEL_ITEM_HEARTRATE_MAX//最大心率 {ConfigDataType::DATATYPE_INT, "HeartRateMin", "0" },// CONFIFMOFEL_ITEM_HEARTRATE_MIN//最小心率 + + {ConfigDataType::DATATYPE_BOOL, "NOTIFY", "false" },// CONFIFMOFEL_ITEM_HEARTRATE_MIN//最小心率 + + {ConfigDataType::DATATYPE_INT, "drink", "0" },// CONFIFMOFEL_ITEM_DRINK,//开关 0 关闭 1开始 2间隔提醒 + {ConfigDataType::DATATYPE_INT, "drinkgoal", "0" },// CONFIFMOFEL_ITEM_DRINK_GOAL,//目标。ml + {ConfigDataType::DATATYPE_INT, "drinkstart", "0" }, // CONFIFMOFEL_ITEM_DRINK_START,//提醒开始时间 int类型 前16位小时,后16位分钟 + {ConfigDataType::DATATYPE_INT, "drinkend", "0" }, // CONFIFMOFEL_ITEM_DRINK_END,//提醒结束时间 int类型 前16位小时,后16位分钟 + {ConfigDataType::DATATYPE_INT, "drinkfreq", "0" }, // CONFIGMODEL_ITEM_DRINK_FREQ,//提醒频率 + + }; ConfigModel(); // 私有构造函数,确保无法在外部实例化 ConfigModel(const ConfigModel &) = delete; // 禁止拷贝构造 diff --git a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp index 0a75eb428..1eafb5828 100644 --- a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp +++ b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp @@ -57,6 +57,97 @@ extern "C" { #include "bleService.h" #include "bletest.h" +void ble_set_sleep_remind(msg_get_sleep_param_info_t data) +{ + OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance(); + printf("开关:%d\r\n",data.schedule); + p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIFMOFEL_ITEM_SLEEP,data.schedule); + if(data.schedule) + { + + printf("开始时间:%d\r\n",data.bedtime_hour); + printf("开始时间:%d\r\n",data.bedtime_min); + p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIFMOFEL_ITEM_SLEEP_BEDTIME,data.bedtime_hour<<16|data.bedtime_min); + + printf("结束时间:%d\r\n",data.waketime_hour); + printf("结束时间:%d\r\n",data.waketime_min); + p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIFMOFEL_ITEM_SLEEP_GET_UP,data.waketime_hour<<16|data.waketime_min); + + printf("睡前提醒 %d\r\n",data.bedtime_alarm); + p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIFMOFEL_ITEM_SLEEP_REMIND,data.bedtime_alarm); + + + } + return; +} + + +void ble_get_sleep_remind(msg_get_sleep_param_info_t *data) +{ + OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance(); + + data->schedule = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIFMOFEL_ITEM_SLEEP); + printf("开关:%d\r\n",data->schedule); + + uint32_t bedtime= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIFMOFEL_ITEM_SLEEP_BEDTIME); + data->bedtime_hour=bedtime>>16; + data->bedtime_min=bedtime&0x00ff; + printf("开始时间:%d\r\n",data->bedtime_hour); + printf("开始时间:%d\r\n",data->bedtime_min); + + uint32_t wakettime= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIFMOFEL_ITEM_SLEEP_GET_UP); + data->waketime_hour=bedtime>>16; + data->waketime_min=bedtime&0x00ff; + printf("结束时间:%d\r\n",data->waketime_hour); + printf("结束时间:%d\r\n",data->waketime_min); + + data->bedtime_alarm= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIFMOFEL_ITEM_SLEEP_REMIND); + + printf("睡前提醒 %d\r\n",data->bedtime_alarm); + + return; +} + + + + + +void ble_set_drink_remind(msg_drink_info_t data) +{ + OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance(); + printf("开关:%d\r\n",data.drink_on); + p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIFMOFEL_ITEM_DRINK,data.drink_on); + if(data.drink_on) + { + printf("目标:%d\r\n",data.goal); + p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIFMOFEL_ITEM_DRINK_GOAL,(double)data.goal); + printf("开始时间:%d\r\n",data.time_start); + p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIFMOFEL_ITEM_DRINK_START,data.time_start); + if(data.drink_on==2) + { + printf("结束时间:%d\r\n",data.time_end); + p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIFMOFEL_ITEM_DRINK_END,data.time_end); + printf("频率:%d\r\n",data.freq); + p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_FREQ,data.freq); + + } + } + return; +} + +void ble_get_drink_remind(msg_drink_info_t *data) +{ + OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance(); + data->drink_on = p_ConfigModel-> get_configData_int(OHOS::ConfigModel::CONFIFMOFEL_ITEM_DRINK); + if(data->drink_on) + data->drink_on=1; + printf("开关:%d\r\n",data->drink_on); + + return; +} + + + // 闹钟数据: // { //     //"code":1, @@ -280,9 +371,8 @@ void add_addressbookToRead(char *data) } void set_languaage(uint32_t id) -{ - OHOS:: language language; - language.ChangeLanguage(id); +{//OHOS:: language language; + OHOS::language::GetInstance()->ChangeLanguage(id); } char *addressbook(void)//获取通讯录保存文件地址路径 diff --git a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.h b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.h index 6d5cd6552..4812dff72 100644 --- a/code/sdk/application/wearable/service/ble_service/blemoder/bletest.h +++ b/code/sdk/application/wearable/service/ble_service/blemoder/bletest.h @@ -80,6 +80,16 @@ struct message_infor_t struct ancs_data_info_t message_t[MAX_MESSAGE_NUM]; }; +typedef struct +{ + //对应数据的指令类型 + uint32_t drink_on;//0 关闭 1 开启 + uint32_t goal; + uint32_t time_start; + uint32_t time_end; + uint32_t freq; +}msg_drink_info_t; + void read_message_data(void);//读内存信息数据开机读一次 struct message_infor_t *get_message_info(void); void set_weather_now_data(int humidity, char* windScale, char* textNight,int uvIndex,int temp,int iconNight); @@ -159,6 +169,14 @@ void ble_SetAlarmInfo(uint32_t time_hour, uint32_t time_min, uint8_t week,uint8_ void ble_delet_all_AlarmInfo(void); +void ble_set_drink_remind(msg_drink_info_t); + +void ble_get_drink_remind(msg_drink_info_t *data); + + +void ble_get_sleep_remind(msg_get_sleep_param_info_t *data); + +void ble_set_sleep_remind(msg_get_sleep_param_info_t data); #ifdef __cplusplus #if __cplusplus } diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c index f3ebc1c4d..15c405354 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.c @@ -1726,7 +1726,44 @@ void GetSpo2SetParamCmd(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *total } -void GetDrinkSetParamCmd(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//获取喝水提醒s设置 +void SetsleepSetParamCmd(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//设置睡眠 +{ + uint32_t tmp = 1; + uint16_t tmp_data = 1; + uint8_t sendBuf[19]; + memset(sendBuf,0,19); + sendBuf[0] = 0x72; + sendBuf[1] = 0x02; + sendBuf[2] = 0x15; + memcpy(sendBuf+3,&tmp,4); + memcpy(sendBuf+7,&tmp,4); + memcpy(sendBuf+11,&tmp,4); + memcpy(sendBuf+15,&tmp_data,2); + + if(Check_CRC(crcnum,len,crcvalue)) + { + msg_get_sleep_param_info_t sleep_info; + sleep_info.schedule = crcnum[0]; + sleep_info.bedtime_hour= crcnum[1]; + sleep_info.bedtime_min= crcnum[2]; + sleep_info.waketime_hour= crcnum[3]; + sleep_info.waketime_min= crcnum[4]; + sleep_info.bedtime_alarm= crcnum[5]; + ble_set_sleep_remind(sleep_info); + + sendBuf[17] = 1; + sendBuf[18] = Calculate_CRC(sendBuf,18); + sendBleData(sendBuf,19); + } + else + { + sendBuf[17] = 0; + sendBuf[18] = Calculate_CRC(sendBuf,18); + sendBleData(sendBuf,19); + } +} + +void SetDrinkSetParamCmd(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *totalData,uint8_t crcvalue)//获取喝水提醒s设置 { uint32_t tmp = 1; uint16_t tmp_data = 1; @@ -1742,30 +1779,22 @@ void GetDrinkSetParamCmd(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t *tota if(Check_CRC(crcnum,len,crcvalue)) { - ble_recv_msg_callback_t func = ble_recv_get_send_msg_callback_func(); - msg_drink_set_param_info_t drink_info; - if(func != NULL) - { - func(READ_FLASH_DATA,SET_DRINK_PARAM_CMD,&drink_info,sizeof(msg_drink_set_param_info_t)); - }//读设备内存 - printf("drink_info:%d %d %d\r\n",drink_info.drink_on,drink_info.alarm_mode,drink_info.start_hour); + msg_drink_info_t drink_info; drink_info.drink_on = crcnum[0]; - if(drink_info.drink_on == 0){ - drink_info.drink_on = 0; - }else{ - drink_info.drink_on = crcnum[0]; - drink_info.alarm_mode = crcnum[1]; - drink_info.target_drink = crcnum[2]+crcnum[3]*256; - drink_info.start_hour = crcnum[4]; - drink_info.startt_min = crcnum[5]; - drink_info.end_hour = crcnum[6]; - drink_info.end_min = crcnum[7]; - drink_info.frequenc = crcnum[8]; + if(crcnum[1]) + { + drink_info.drink_on=2; } - if(func != NULL) + // drink_info.drink_on = crcnum[1]; + drink_info.goal = crcnum[2]+crcnum[3]*256; + drink_info.time_start = crcnum[4]<<16|crcnum[5]; + if(crcnum[1]) { - func(WRITE_FLASH_DATA,SET_DRINK_PARAM_CMD,&drink_info,sizeof(msg_drink_set_param_info_t)); + drink_info.time_end = crcnum[6]<<16|crcnum[7]; + drink_info.freq = crcnum[8]; + } + ble_set_drink_remind(drink_info); sendBuf[17] = 1; sendBuf[18] = Calculate_CRC(sendBuf,18); @@ -2132,7 +2161,10 @@ void type2AE4Data(uint8_t *buf_cmd,uint8_t *data,uint16_t datalen,uint8_t *total GetSpo2SetParamCmd(typeID,data,datalen,totalData,crcvalue); break; case SET_DRINK_PARAM_CMD://app下发的喝水提醒设置 - GetDrinkSetParamCmd(typeID,data,datalen,totalData,crcvalue); + SetDrinkSetParamCmd(typeID,data,datalen,totalData,crcvalue); + break; + case SET_SLEEP_PARAM_CMD://app下发的喝水提醒设置 + SetsleepSetParamCmd(typeID,data,datalen,totalData,crcvalue); break; case SET_STEP_TARGET_CMD://app下发的步数目标设置 SetsteptargetParamCmd(typeID,data,datalen,totalData,crcvalue); @@ -3195,13 +3227,9 @@ static void GetDrinkParamCmd(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t * memcpy(value+15,&tmp_data,2); if(1) { - msg_drink_param_info_t drink_on_t; - memset(&drink_on_t,0,sizeof(msg_drink_param_info_t)); - ble_recv_msg_callback_t func = ble_recv_get_send_msg_callback_func(); - if(func != NULL){ - func(READ_FLASH_DATA,cmd,&drink_on_t,sizeof(msg_drink_param_info_t)); - } - value[17] = drink_on_t.drink_on;// + msg_drink_info_t drink_on_; + ble_get_drink_remind(&drink_on_); + value[17] = drink_on_.drink_on;// value[18] = Calculate_CRC(value,18); sendBleData(value,19); } @@ -3344,12 +3372,16 @@ static void GetSleepParamCmd(uint16_t cmd,uint8_t *crcnum,uint16_t len,uint8_t * memcpy(value+15,&tmp_data,2); if(1) { - uint8_t sleepTime = 0;//作息时间设定 0关闭 1开启 - uint8_t bedTimeHour = 0;//就寝时间 - uint8_t bedTimeMin = 0;//就寝时间 - uint8_t wakeTimeHour = 0;//起床时间 - uint8_t wakeTimeMin = 0;//起床时间 - uint8_t bedTimeOn = 0;//就寝前20分钟提醒时间 + msg_get_sleep_param_info_t data; + + ble_get_sleep_remind(&data); + uint8_t sleepTime = data.schedule;//作息时间设定 0关闭 1开启 + uint8_t bedTimeHour = data.bedtime_hour;//就寝时间 + uint8_t bedTimeMin = data.bedtime_min;//就寝时间 + uint8_t wakeTimeHour = data.waketime_hour;//起床时间 + uint8_t wakeTimeMin = data.waketime_min;//起床时间 + uint8_t bedTimeOn = data.bedtime_alarm;//就寝前20分钟提醒时间 + value[17] = sleepTime; value[18] = bedTimeHour; value[19] = bedTimeMin; @@ -4013,7 +4045,7 @@ void type2AE3Data(uint8_t *cmd_buf ,uint8_t *data,uint16_t datalen,uint8_t *tota case KM_MILE_CMD://app设置手表公英制单位 GetMetricCmd(cmd,data,datalen,totaldata,crcvalue); break; - case SLEEP_SET_CMD://app获取睡眠设置 + case SLEEP_GET_CMD://app获取睡眠设置 GetSleepParamCmd(cmd,data,datalen,totaldata,crcvalue); break; case DELETE_ALL_DILA_CMD://app所有表盘UID diff --git a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h index 7a2cb60be..1854046fd 100644 --- a/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h +++ b/code/sdk/application/wearable/service/ble_service/bleservice/bleEvent.h @@ -73,7 +73,7 @@ void cameram_send_data(void); #define RESET_WATCH_CMD 0x0126 //重新启动 #define POWER_OFF_CMD 0x0127 //关机 #define KM_MILE_CMD 0x0128 //公英制 -#define SLEEP_SET_CMD 0x0129 //app获取睡眠设置 +#define SLEEP_GET_CMD 0x0129 //app获取睡眠设置 #define DELETE_ALL_DILA_CMD 0x012A //删除所有表盘 #define GET_TARGET_STEP_CMD 0x012B //目标步数设置 #define GET_OTHER_TARGET_CMD 0x012C //其他目标设置 @@ -512,6 +512,7 @@ TYPE:02 #define SET_WATCH_HR_SET_PARAM_CMD 0x0212 //app发送心率设置参数 #define SET_WATCH_SPO2_SET_PARAM_CMD 0x0213 //app发送血氧设置参数 #define SET_DRINK_PARAM_CMD 0x0214 //app发送喝水提醒设置 +#define SET_SLEEP_PARAM_CMD 0x0215 //app发送睡眠设置 #define SET_STEP_TARGET_CMD 0x0216 //app发送步数目标 #define SET_OTHER_TARGET_CMD 0x0217 //app发送其他目标 #define SET_WEATHER_DATA_CMD 0x0220 //发送天气数据 @@ -541,6 +542,7 @@ typedef struct uint16_t fat_time;//燃脂时间目标 uint8_t target_stand;//目标站立 uint8_t timeformat;//时间制 0 24小时制 1 12小时制 + }msg_user_info_t;//获取用户信息 身高体重 /******************************************