#include "securec.h"
#include "broadcast_service.h"
#include "broadcast_feature.h"
-#include "service_id_define.h"
-#include "samgr_lite.h"
-#include "thread_adapter.h"
-#include "graphic_service.h"
-
-
-
-#include "ConfigModel.h"
-#ifdef SUPPORT_CAT1_SERVICE
-#include "cat1_server.h"
-#endif
-// #include "TraingCardPresenter.h"
-#include "../../../../../../zhihui/drivers/vibrator/service/vibrator_service.h"
-#include "../../../../../../zhihui/config/include/ConfigModelC.h"
-#include "../../../../../../zhihui/utils/custom_runtime.h"
-
-#ifdef FD230
-#include "uiservice/include/ui_service.h"
-#include "TraingModel.h"
-#include "WeatherModel.h"
-#include "SleepModel.h"
-#include "CodedLockModel.h"
-#include "alarm/include/AlarmClockModelC.h"
-#include "goal_notification.h"
-#include "transmitting.h"
-#include "ScheduleData.h"
-#include "font/ui_font.h"
-#include "font/base_font.h"
-#include "common/typed_text.h"
-#include "health_service.h"
-#include "AlipayC.h"
-#include "PlayersModelC.h"
-#include "LanguageInit.h"
-#include "phoneaddressmodel.h"
-#include "AlmmgrAlarmClockManage.h"
-#include "AlarmClockTimerConfig.h"
-#include "AlarmClockManage.h"
-#include "SetDialModel.h"
-#include "AiVoiceModel.h"
-#include "SleepModel.h"
-#include "BluetoothModel.h"
-#include "MusicPlayerModel.h"
-#include "UiConfig.h"
-
-#endif
+#include "bleEvent.h"
+#include "bleInstruct.h"
+#include "blepath.h"
+#include "cJSON.h"
+#include "unistd.h"
+#include "dirent.h"
+#include "custom_utils.h"
+// #include "cywee_hal.h"
+// #include "font/base_font.h"
+// #include "uicomponents/UIComponents.h"
+//#define APP_DOWNLOAD_DIAL_PATH "/user/dial/offline_dial" /*表盘市场安装路径*/
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif /* __cplusplus */
#endif /* __cplusplus */
-#include "custom_utils.h"
-#include "pinctrl.h"
-#include "debug_print.h"
-#include "soc_osal.h"
-#include "tcxo.h"
-#include "irmalloc.h"
-#include "errcode.h"
-#include "common_def.h"
-
-#include "chip_core_irq.h"
-#include "chip_io.h"
-#include "gpio.h"
-#include "pm_veto.h"
-#include "cywee_service.h"
-#include "rtc.h"
-#include "timer.h"
-#include "systick.h"
-#include "cmsis_os2.h"
-#include "los_printf.h"
-
-#include "custom_utils.h"
-#include "string.h"
-#include "bleService.h"
-#ifdef BLE_INSTRUCT
-#include "bleInstruct.h"
-#endif
-
-#include <cywee_hal.h>
+// #define DIAL_DATA_DIR "/user/dial/offline_dial"
+// #ifdef FD230
-#include <dirent.h>
-#include <ppg_service.h>
-#include "power_display_service.h"
-#include "alipay_feature.h"
+#define DIAL_DATA_DIR NULL
-// #include "font/base_font.h"
-// #include "uicomponents/UIComponents.h"
+#define TAR_PATH EXC_TAR_PATH
-//#define APP_DOWNLOAD_DIAL_PATH "/user/dial/offline_dial" /*表盘市场安装路径*/
-#define DIAL_DATA_DIR APP_DOWNLOAD_DIAL_PATH
+#define ADDRESS_BOOK_PATH "/user/userdata/addressbook.bin"
-// #define DIAL_DATA_DIR "/user/dial/offline_dial"
-#ifdef FD230
+#if 1
-uint16_t get_str_nodisplay_number(char *str, uint32_t max_len) {
- uint32_t j = 0;
- uint32_t letter = 0;
- if (str == nullptr) {
- return 0;
- }
- uint16_t nodisplay_numberlen=0;
-
- while (str[j] != '\0')
- {
- int i = j;
- letter = OHOS::TypedText::GetUTF8Next(str, j, j);
- int len = j - i;
- OHOS::UIFont *fontEngine = OHOS::UIFont::GetInstance();
- OHOS::GlyphPathData path;
- if (!fontEngine->GetGlyphPathData(letter, 0, path))
- {
- if(nodisplay_numberlen==0 && i!=0)
- {
- return 0;
- }
- nodisplay_numberlen+=len;
-
- }
- else
- {
- return nodisplay_numberlen;
- }
- }
- // printf("%s\r\n", str_);
-}
+bleInstruct_t_ bleInstruct_t;
char * get_dial_path(void)
{
+
return DIAL_DATA_DIR;
}
uint8_t get_dial_num()
{
- return OHOS::SetDialModel::GetInstance().GetDialCount();
+ return bleInstruct_t.get_dial_num_cb();
}
bool ble_is_Alipay_bind(void)
{
- return is_Alipay_bind();
+ // return is_Alipay_bind();
+ return false;
}
void set_ota_upgrade(void)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OTA_UPGRADE,1);
+ bleInstruct_t.set_ota_upgrade_cb();
}
void test_paly(uint8_t falg)
{
+}
- if(falg)
- {
-#ifdef SINGLE_USER_PARTITION
- testPlayerStart_("/user/music/ring/ring.mp3");
-#else
- testPlayerStart_("/music/ring/ring.mp3");
-#endif
- }
- else
- {
- AlarmPlayerStop_();
- }
-}
bool get_training_spead_path(char *path ,uint32_t time,uint32_t max_len)
{
- std::string str = OHOS::TraingModel::GetInstance()->GetPaceTablePath(time);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"get_training_spead:%s\r\n",str.c_str());
- if(str.length()<=3)
- {
- return false;
- }
- memcpy_s(path,max_len,str.c_str(),str.length());
- return true;
-
+ return bleInstruct_t.get_training_spead_path_cb(path,time,max_len);
}
bool get_training_heart_path(char *path ,uint32_t time,uint32_t max_len)
{
- std::string str = OHOS::TraingModel::GetInstance()->GetHeartTablePath(time);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"get_training_heart:%s\r\n",str.c_str());
- if(str.length()<=3)
- {
- return false;
- }
- memcpy_s(path,max_len,str.c_str(),str.length());
- return true;
+
+ return bleInstruct_t.get_training_heart_path_cb(path,time,max_len);
}
void ble_sos_data_save(void)
{
- OHOS::SOS_number_save();
+ bleInstruct_t.ble_sos_data_save_cb();
}
void ble_SOS_data_init(void)
{
- OHOS::SOS_number_init();
+ bleInstruct_t.ble_SOS_data_init_cb();
}
void ota_updata_init(void)
{
- OHOS::get_updatafail_data();
+ bleInstruct_t.ota_updata_init_cb();
}
uint8_t * ble_get_sos_all_data_malloc(uint32_t *len)
{
- uint8_t count= OHOS ::get_sos_number_count();
- if(count==0)
- return NULL;
-
- uint8_t *data=(uint8_t *)malloc(1+count*(sizeof(OHOS::sos_number_t)+3));
- if(data==NULL)
- {
- return NULL;
- }
- data[0]=count;
- uint32_t offset=1;
-
- for(int i=0;i<count;i++)
- {
- char name[NAME_LEN]={0};
- uint8_t sex= OHOS::get_sos_name_and_sex(i,name);
- char number[NUMBER_LEN]={0};
- memcpy_s((void *)number,NUMBER_LEN,(void *)OHOS::get_sos_number(i),NUMBER_LEN);
- data[offset]=sex;
- offset++;
- data[offset]=osal_strlen(name);
- offset++;
- memcpy_s((void *)&data[offset],NAME_LEN,name,osal_strlen(name));
- offset+=osal_strlen(name);
-
- data[offset]=osal_strlen(number);
- offset++;
- memcpy_s((void *)&data[offset],NUMBER_LEN,number,osal_strlen(number));
- offset+=osal_strlen(number);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"sex:%d,name:%d,%s,number:%d,%s\r\n",sex,osal_strlen(name),name,osal_strlen(number),number);
- }
- *len=offset;
-
- return data;
+ return bleInstruct_t.ble_get_sos_all_data_malloc_cb(len);
}
-
+#define before_file_day 30
//sos
void ble_sos_number_clean(void)
{
- OHOS::sos_number_clean();
+ return bleInstruct_t.ble_sos_number_clean_cb();
}
bool ble_add_sos_number(uint8_t sex,char *name,char *number)
{
- return OHOS::add_sos_number(sex,name,number);
+ return bleInstruct_t.ble_add_sos_number_cb(sex,name,number);
}
-
-#define before_file_day 30
-
-
void ble_Alipayunbind(void)
{
- const alipay_svr_api_t *alipay_api = alipay_svr_get_api();
- alipay_api->remove_bind();
+ // const alipay_svr_api_t *alipay_api = alipay_svr_get_api();
+ // alipay_api->remove_bind();
}
void get_music_path(char *buf,uint8_t max_len)
{
- std::string path= OHOS::MusicPlayerModel::GetInstance().GetMusicPlayPath();
- memcpy_s(buf,max_len,path.c_str(),path.length());
+ return bleInstruct_t.get_music_path_cb(buf,max_len);
}
bool is_first_pair(void)
{
- return OHOS::ConfigModel::GetInstance()->GetisFirstTimeStart();
+ return bleInstruct_t.is_first_pair_cb();
}
bool Ble_Set_ScheduleInfo(uint8_t id,uint32_t timetamp_begin,uint32_t timetamp_end,char *title,char *data,bool is_end)
{
-
- // OHOS::ScheduleRevData info_;
- ScheduleRevData info_;
-
- info_.topic.clear();
- info_.content.clear();
- info_.topic.append(title,strlen(title));
- info_.content.append(data,strlen(data));
-
- time_t currtime=timetamp_begin;
- struct tm *timeinfo;
- timeinfo = localtime(&currtime);
-
- int y=timeinfo->tm_year+ 1900;
- int m=timeinfo->tm_mon+1;
- int d=timeinfo->tm_mday;
- int h=timeinfo->tm_hour;
- int min=timeinfo->tm_min;
- char day_buf[24]={0};
- sprintf_s(day_buf,24,"%d/%d",m,d);
- info_.date.clear();
- info_.date.append(day_buf,strlen(day_buf));
-
- currtime=timetamp_end;
- timeinfo = localtime(&currtime);
-
- int h_=timeinfo->tm_hour;
- int min_=timeinfo->tm_min;
- char time_buf[24]={0};
- sprintf_s(time_buf,24,"%02d:%02d-%02d:%02d",h,min,h_,min_);
- info_.time.clear();
- info_.time.append(time_buf,strlen(time_buf));
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"///////////////////日程数据////////////////////\r\n");
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"date:%s\r\n",info_.date.c_str());
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"time:%s\r\n",info_.time.c_str());
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"titel:%s\r\n",info_.topic.c_str());
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"content:%s\r\n",info_.content.c_str());
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"//////////////////////////////////////////////\r\n");
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"delete_before_file now day%d %d %d\r\n ",y,m,d);
-
- // OHOS::C_ScheduleSetByApp(&info_, id - 1, is_end);
- C_ScheduleSetByApp(&info_, id-1, is_end);
-
- if(is_end)
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"////////////////////结束///////////////////\r\n");
- return true;
+ return bleInstruct_t.Ble_Set_ScheduleInfo_cb( id, timetamp_begin, timetamp_end,title,data, is_end);
}
//在此处实现,给UI回复消息。
void ble_app_reply(bool data)
{
- bool state = data;
- SendMsgToUIService(UI_AI_JUMP_TO_LISTENING_VIEW, 0, &state, sizeof(bool));
+ return bleInstruct_t.ble_app_reply(data);
}
void ble_connect_ok(void)
{
- SendMsgToUIService(PHONE_CONNECTED_TO_UI, 0, nullptr, 0);
+ return bleInstruct_t.ble_connect_ok();
}
void ble_disconnect_ok(void)
{
- SendMsgToUIService(PHONE_DISCONNECTED_TO_UI, 0, nullptr, 0);
+ return bleInstruct_t.ble_disconnect_ok();
}
void hand_watch_first_time_Paired(void)
{
- SendMsgToUIService(UI_HAND_WATCH_FIRST_PAIRED, 0, nullptr, 0);
+ return bleInstruct_t.hand_watch_first_time_Paired();
}
void ble_set_ai_Question_str(char *buf)
{
- OHOS::AiVoiceModel::GetInstance().SetUserQuestionStr(std::string(buf));
+ return bleInstruct_t.ble_set_ai_Question_str(buf);
}
void ble_set_ai_Answer_str(char *buf,uint8_t type)
{
- OHOS::AiVoiceModel::GetInstance().SetAiAnswerStrStr(std::string(buf),type);
+ return bleInstruct_t.ble_set_ai_Answer_str(buf,type);
}
char* ble_get_ai_audio_path_str(void)
{
- return (char *)OHOS::AiVoiceModel::GetInstance().GetAIAudioPath().c_str();
+ return bleInstruct_t.ble_get_ai_audio_path_str();
}
void ble_set_pair(uint8_t falg)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_BLE_IOS_OR_ANDROID,falg);
- return;
+ return bleInstruct_t.ble_set_pair(falg);
}
uint8_t get_ble_pair(void)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_BLE_IOS_OR_ANDROID);
-
+ return bleInstruct_t.get_ble_pair();
}
uint8_t get_br_is_pair(void)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_BR_PAIR);
+ return bleInstruct_t.get_br_is_pair();
}
void set_br_pair(uint8_t data)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_BR_PAIR,data);
- return;
+ return bleInstruct_t.set_br_pair(data);
}
bool get_lcd_state(void)
{
- const power_display_svr_api_t *display_api = power_display_svr_get_api();
- if (display_api->get_screen_state() != SCREEN_ON)
- return false;
- else
- return true;
+ return bleInstruct_t.get_lcd_state();
}
uint8_t ble_get_heart_data()
{
- OHOS::HeartRateData data;
- OHOS::HealthService ::GetInstance()->ReadHeartRateData(data);
- uint8_t heart=0;
- heart=data.Heart;
- return heart;
+ return bleInstruct_t.ble_get_heart_data();
}
uint8_t ble_get_oxygen_data()
{
- OHOS::BloodOxygenData *data=(OHOS::BloodOxygenData*)malloc(sizeof(OHOS::BloodOxygenData));
- data=OHOS::HealthService ::GetInstance()->ReadBloodOxygenData();
- uint8_t spo2=0;
- if(data==NULL)
- spo2=0;
- else
- spo2=data->SPO2;
-
- free(data);
- return spo2;
+ return bleInstruct_t.ble_get_oxygen_data();
}
cJSON* ble_get_recs_data()
{
- cJSON* data_arryJSON = cJSON_CreateArray();
- struct Trainingdata * data=NULL;
- int i=0;
- //char file_path[128] = {0};
- char timeday[12] = {0};
- uapi_get_YYMMDD_Time_extend(timeday, '_',0);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"%s\r\n",timeday);
- //sprintf(file_path, "%s%s.bin", TRAINING_PATH_BLE, timeday);
-
- while(data=read_Trainingdata_data(timeday, i))
- {
- cJSON* itemJSON = cJSON_CreateObject();
- if(data!=NULL)
- {
- cJSON_AddNumberToObject(itemJSON, "src", data->src);
- cJSON_AddNumberToObject(itemJSON,"bt",data->bt);
- cJSON_AddNumberToObject(itemJSON,"ty",data->ty);
- cJSON_AddNumberToObject(itemJSON,"st",data->st);
- cJSON_AddNumberToObject(itemJSON,"sp",data->sp);
- cJSON_AddNumberToObject(itemJSON,"tgt",data->tgt);
- cJSON_AddNumberToObject(itemJSON,"tg",data->tg);
- cJSON_AddNumberToObject(itemJSON,"pg",data->pg);
- cJSON_AddNumberToObject(itemJSON,"du",data->du);
- cJSON_AddNumberToObject(itemJSON,"ca",data->ca);
- cJSON_AddNumberToObject(itemJSON,"di",data->di);
- cJSON_AddNumberToObject(itemJSON,"hr",data->hr);
- cJSON_AddNumberToObject(itemJSON,"stp",data->stp);
- cJSON_AddNumberToObject(itemJSON,"ti",data->ti);
- cJSON_AddNumberToObject(itemJSON,"cir",data->cir);
- cJSON_AddNumberToObject(itemJSON, "alt", data->alt);
- cJSON_AddNumberToObject(itemJSON,"apc",data->apc);
- cJSON_AddNumberToObject(itemJSON,"fpc",data->fpc);
- cJSON_AddNumberToObject(itemJSON,"spc",data->spc);
- cJSON_AddNumberToObject(itemJSON,"std",data->std);
- cJSON_AddNumberToObject(itemJSON,"cdc",data->cdc);
-
- cJSON_AddItemReferenceToArray(data_arryJSON,itemJSON);
- free(data);
- data=NULL;
- }
- else{
- break;
- }
- i++;
- }
- return data_arryJSON;
+ return bleInstruct_t.ble_get_recs_data();
}
//通过时间戳获取训练数据
cJSON* ble_get_Trainingdata_by_timetamp(uint32_t timetamp)
{
- struct Trainingdata * data=NULL;
- int i=0;
-
- time_t currtime=timetamp;
- struct tm *timeinfo;
- timeinfo = localtime(&currtime);
- int y=timeinfo->tm_year+ 1900;
- int m=timeinfo->tm_mon+1;
- int d=timeinfo->tm_mday;
- int h=timeinfo->tm_hour;
- int min=timeinfo->tm_min;
-
- char timeday[24]={0};
- sprintf_s(timeday,24,"%d_%02d_%02d",y,m,d);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"%s\r\n",timeday);
-
- while(data=read_Trainingdata_data(timeday, i))
- {
- if(data!=NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"%d,%d\r\n",timetamp,data->st);
- int time_error= timetamp>data->st ? timetamp-data->st:data->st-timetamp;
- if(time_error<=2)
- {
- cJSON* itemJSON = cJSON_CreateObject();
-
- cJSON_AddNumberToObject(itemJSON, "src", data->src);
- cJSON_AddNumberToObject(itemJSON,"bt",data->bt);
- cJSON_AddNumberToObject(itemJSON,"ty",data->ty);
- cJSON_AddNumberToObject(itemJSON,"st",data->st);
- cJSON_AddNumberToObject(itemJSON,"sp",data->sp);
- cJSON_AddNumberToObject(itemJSON,"tgt",data->tgt);
- cJSON_AddNumberToObject(itemJSON,"tg",data->tg);
- cJSON_AddNumberToObject(itemJSON,"pg",data->pg);
- cJSON_AddNumberToObject(itemJSON,"du",data->du);
- cJSON_AddNumberToObject(itemJSON,"ca",data->ca);
- cJSON_AddNumberToObject(itemJSON,"di",data->di);
- cJSON_AddNumberToObject(itemJSON,"hr",data->hr);
- cJSON_AddNumberToObject(itemJSON,"stp",data->stp);
- cJSON_AddNumberToObject(itemJSON,"ti",data->ti);
- cJSON_AddNumberToObject(itemJSON,"cir",data->cir);
- cJSON_AddNumberToObject(itemJSON, "alt", data->alt);
- cJSON_AddNumberToObject(itemJSON,"apc",data->apc);
- cJSON_AddNumberToObject(itemJSON,"fpc",data->fpc);
- cJSON_AddNumberToObject(itemJSON,"spc",data->spc);
- cJSON_AddNumberToObject(itemJSON,"std",data->std);
- cJSON_AddNumberToObject(itemJSON,"cdc",data->cdc);
- free(data);
- return itemJSON;
- }
-
- free(data);
- data=NULL;
- }
- else{
- break;
- }
- i++;
- }
- return NULL;
-}
-Tag_Trailer_t Mp3Trailer;
-Tag_ID3V2_TAG_T TAG_T;
-
-void Tag_read_ID3V2( FILE *fp)
-{
-// Get Header
- fseek(fp,10,SEEK_CUR);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Tag_read_ID2V3\r\n");
-
- for(int i=7;i>0;i--)
- {
- memset_s(&TAG_T,sizeof(TAG_T),0,sizeof(TAG_T));
- uint32_t size =fread(TAG_T.ID,4,1,fp);
-
- if(strcmp("TPE1",TAG_T.ID)==0)
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Header :%d %s\r\n",size,TAG_T.ID);
-
-
- fread(TAG_T.Size,4,1,fp);
- size = TAG_T.Size[0]*0x100000000 + TAG_T.Size[1]*0x10000+ TAG_T.Size[2]*0x100 +TAG_T.Size[3];
-
- if(strcmp("TPE1",TAG_T.ID)==0)
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Size :%d\r\n",size);
-
-
- fread(TAG_T.Flags,2,1,fp);
-
- char buf[124]={0};
- if(strcmp("TPE1",TAG_T.ID)==0)
- {
-
- fread(Mp3Trailer.Artist,1,size,fp);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"data : %s\r\n",Mp3Trailer.Artist);
- }
- else
- {
- if(size>=128)
- {
- fseek(fp,size,SEEK_CUR);
- }
- else
- {
- fread(buf,1,size,fp);
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"data : %s\r\n",buf);
- }
- }
- }
- return;
-
-}
-
-
-bool delete_MP3_file_By_ID(uint16_t id)
-{
- char dir_path[128]={0};
- get_music_path(dir_path,128);
- char file_path[512];
- std::string realname =OHOS::MusicPlayerModel::GetInstance().getRealMusicNameById(id);
- sprintf_s(file_path,512,"%s/%s",dir_path,realname.c_str());
-
- int ret= remove(file_path);
- if(ret==0)
- {
- return true;
- }
- else
- {
- return false;
- }
-
-}
-
-char * dir_to_json_buf_malloc_(uint8_t type)
-{
- char dir_path[128]={0};
- type=2;
- switch (type)
- {
- case 2: //
- get_music_path(dir_path,128);
- break;
- case 3: //
- sprintf_s(dir_path,64,"%s","user/dial/offline_dial");
- return NULL;
-
- default:
- break;
- }
- cJSON *dataJSON = cJSON_CreateObject();
- cJSON* data_arryJSON = cJSON_CreateArray();
-
- int size=OHOS::MusicPlayerModel::GetInstance().getIdToMusicNameMapNumber();
- for(int i=0;i<size;i++)
- {
- char file_path[512];
- int file_size;
- std::string realname =OHOS::MusicPlayerModel::GetInstance().getRealMusicNameById(i);
- sprintf_s(file_path,512,"%s/%s",dir_path,realname.c_str());
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"%s\r\n",file_path);
- FILE * fp = fopen(file_path,"rb+");
- if(fp==NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," fopen fail %s\r\n",file_path);
- return NULL;
- }
- if (fp != NULL)
- {
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- file_size = ftell(fp); // 获取当前文件指针位置,即文件大小
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
-
- fclose(fp);
- }
- std::string showname =OHOS::MusicPlayerModel::GetInstance().getShowMusicNameById(i);
- cJSON* itemJSON = cJSON_CreateObject();
- cJSON_AddNumberToObject(itemJSON,"uid",i);
- cJSON_AddStringToObject(itemJSON,"name",showname.c_str());
- cJSON_AddNumberToObject(itemJSON,"size",file_size);;
- cJSON_AddItemReferenceToArray(data_arryJSON,itemJSON);
- }
- cJSON_AddNumberToObject(dataJSON,"type",2);
- cJSON_AddItemToObject(dataJSON,"list",data_arryJSON);
- char *json_format = cJSON_PrintUnformatted(dataJSON);
- int pSize = cJSON_GetArraySize(dataJSON);
- cJSON_Delete(dataJSON);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"mp3 :%s\r\n",json_format);
- return json_format;
-
-}
-
-
-
-
-uint8_t ble_AT_add_nap_data(uint16_t time)
-{
- OHOS::NAP_T data;
- data.total_time=time;
- uint32_t creationTime;
- int ret =uapi_get_timestampe_ss(&creationTime);
- data.fall_asleep_timestamp=creationTime-60*60;
- data.wake_up_timestamp=creationTime;
- set_nap_data(&data);
-}
-
-uint8_t ble_get_sleep_data(uint32_t file_size,uint8_t day_,uint8_t *data)
-{
- char dir_path[64]={0};
- char day[12]={0};
- uapi_get_YYMMDD_Time_extend(day,'\0', day_);
- sprintf_s(dir_path,64,SLEEP_DIR_PATH,day);
-
- uint32_t offset=0;
- uint8_t sleep_count=1;
-
- {
- char file_path[128]={0};
- sprintf_s(file_path,128,"%s/%s",dir_path,"nap.bin");
-
- FILE * fp = fopen(file_path,"rb+");
- if(fp==NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," fopen fail %s\r\n",file_path);
- }
- else
- {
- uint16_t sleep_file_size=0;
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- sleep_file_size = ftell(fp); // 获取当前文件指针位置,即文件大小
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
-
- int mod_value=0;
- mod_value=sleep_file_size%14;
- if(mod_value!=0)
- return 0;
- uint8_t nap_count=sleep_file_size/14;
-
- sleep_count=nap_count+1;
-
- uint16_t read_size =fread(data,1,sleep_file_size,fp);
- offset+=read_size;
- fclose(fp);
- }
- }
- {
- char file_path[128]={0};
- sprintf_s(file_path,128,"%s/%s",dir_path,"sleep_time.bin");
- FILE * fp = fopen(file_path,"rb+");
- if(fp)
- {
- uint16_t sleep_file_size=0;
-
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- sleep_file_size = ftell(fp); // 获取当前文件指针位置,即文件大小
- sleep_file_size++;
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
-
- memcpy(data+offset,&sleep_file_size,2);
- *(data+offset+2)=sleep_count;
- sleep_count++;
- uint16_t read_size =fread(data+offset+3,1,sleep_file_size,fp);
-
- if((read_size+1)!=sleep_file_size)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," fread fail read_size:%d!= sleep_file_size:%d \r\n",read_size,sleep_file_size);
- }
-
- fclose(fp);
- char file_path[128]={0};
- sprintf_s(file_path,128,"%s/%s",dir_path,"sleep_status.bin");
- fp = fopen(file_path,"rb+");
- sleep_file_size=0;
- if(fp)
- {
- fseek(fp, 0, SEEK_END);
- sleep_file_size = ftell(fp);
- fseek(fp, 0, SEEK_SET);
- uint16_t read_size_status =fread(data+offset+3+read_size,1,sleep_file_size,fp);
- read_size+=read_size_status;
- read_size+=1;
- memcpy(data+offset,&read_size,2);
- fclose(fp);
-
- }
- offset+=read_size;
- offset+=3;
- }
- }
-
- return offset;
-}
-
-
-
-
-uint8_t ble_get_sleep_data_dir(uint32_t *file_size,uint8_t day_)
-{
- char dir_path[64]={0};
- char day[12]={0};
- uapi_get_YYMMDD_Time_extend(day,'\0', day_);
- sprintf_s(dir_path,64,SLEEP_DIR_PATH,day);
-
- struct DIR *dir;
- struct dirent *ent;
-
- uint8_t file_count=0;
-
- if ((dir = opendir(dir_path)) != NULL)
- {
- while ((ent = readdir(dir)) != NULL)
- {
- std::string fileName = ent->d_name;
- if (fileName != "." && fileName != "..")
- {
-
- if (ent->d_type == DT_REG || ent->d_type == DT_UNKNOWN ) // 普通文件
- {
-
- if(fileName=="sleep_time.bin")
- {
- char file_path[128]={0};
- sprintf_s(file_path,128,"%s/%s",dir_path,ent->d_name);
-
- FILE * fp = fopen(file_path,"rb+");
- if(fp==NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," fopen fail %s\r\n",file_path);
- return file_count;
- }
-
- if (fp != NULL)
- {
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- *file_size += ftell(fp)+3; // 获取当前文件指针位置,即文件大小
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- fclose(fp);
- }
- file_count++;
- }
- else if (fileName=="sleep_status.bin")
- {
- char file_path[128]={0};
- sprintf_s(file_path,128,"%s/%s",dir_path,ent->d_name);
- FILE * fp = fopen(file_path,"rb+");
- if(fp==NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," fopen fail %s\r\n",file_path);
- return file_count;
- }
- if (fp != NULL)
- {
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- *file_size += ftell(fp); // 获取当前文件指针位置,即文件大小
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- fclose(fp);
- }
- }
- else if(fileName=="nap.bin")
- {
- char file_path[128]={0};
- sprintf_s(file_path,128,"%s/%s",dir_path,ent->d_name);
-
- FILE * fp = fopen(file_path,"rb+");
- if(fp==NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," fopen fail %s\r\n",file_path);
- return file_count;
- }
- uint32_t size=0;
- if (fp != NULL)
- {
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- size= ftell(fp); // 获取当前文件指针位置,即文件大小
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- fclose(fp);
- }
- int mod_value=0;
-
- mod_value=size%14;
- if(mod_value!=0)
- return 0;
-
- uint8_t nap_count=size/14;
- *file_size+=nap_count*14;
-
- file_count+=nap_count;
- }
-
- }
- }
- else if (ent->d_type == DT_DIR) // 目录
- {
- continue;
- }
- }
- }
- else
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," opendir fail %s\r\n",dir_path);
- return file_count;
- }
- closedir(dir);
-
- return file_count;
-}
-
-void ble_set_password(uint8_t falg, char * data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD_SWITCH,falg);
- p_ConfigModel->set_condigData_String(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD,data);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"设置手表密码 %d %s \r\n",falg, data);
-
- /*更新model密码配置*/
- if(falg == 0)
- {
- //更新手表状态
- GraphicService::GetInstance()->PostGraphicEvent(
- std::bind(&OHOS::CodedLockModel::BleUnlock, OHOS::CodedLockModel::GetInstance()));
- }
- OHOS::CodedLockModel::GetInstance()->SetUserPassWord(data);
-
- return;
-}
-
-uint8_t ble_get_password(void)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- std::string str =p_ConfigModel->get_configData_string(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD);
- uint8_t falg =p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD_SWITCH);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"获取手表密码 %d %s \r\n",falg,str.c_str());
-
- return falg;
-
-}
-
-void set_sedent_param( msg_sedent_set_param_info_t * data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_SWITCH,data->sedent_on);
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_REMINDERTIME,data->sedent_time );
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_INTERVAL,data->frequenc);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data->sedent_on);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"久坐提醒时间段:%d\r\n",data->sedent_time);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"久坐提醒时间间隔(单位小时):%d\r\n",data->frequenc);
-
- set_sedentary_data();
- return;
-}
-
-
-void get_sedent_param( msg_sedent_set_param_info_t * data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- data->sedent_on = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_SWITCH);
-
- data->sedent_time = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_REMINDERTIME);
-
- data->frequenc = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_INTERVAL);
- return;
-}
-
-bool check_dial_freespace(uint16_t id,uint32_t dial_size) {
- return OHOS::SetDialModel::GetInstance().CheckDialDownload(id,dial_size);
-}
-
-void ble_get_dial_path(char * buf,uint16_t id)
-{
- char *path= (char*)OHOS::SetDialModel::GetInstance().GetSaveDir(id,0).c_str();
- memcpy(buf,path,strlen(path)+1);
- return;
-}
-
-void ble_save_dial_custom(msg_recv_custom_dial_info_t *data)
-{
- OHOS:: DialLayout info;
- info.dialId=data->dial_uid;
- info.batteryDisplay=data->battery;
- info.timeDisplay=data->time;
- info.colorTypeSet=data->time_font;
- OHOS::SetDialModel::GetInstance().saveDialConfig(info);
-}
-
-void ble_set_dial_by_id_(uint16_t id)
-{
- // printf("ble_set_dial_by_id_ %d\n",id);
- OHOS::SetDialModel::GetInstance().UpdateDialSetting(id);
-
-}
-void ble_set_dial_by_id(uint16_t id)
-{
- // printf("ble_set_dial_by_id %d\n",id);
- GraphicService::GetInstance()->PostGraphicEvent(
- std::bind(ble_set_dial_by_id_ ,id));
-}
-
-void ble_get_custom_dial(uint16_t id,char *buf)
-{
- const char *name=OHOS::SetDialModel::GetInstance().GetCustomName(id).c_str();
- memset_s(buf,32,0,32);
- memcpy_s(buf,32,name,strlen(name));
-}
-uint16_t ble_get_dial_id(void)
-{
- uint16_t id= OHOS::SetDialModel::GetInstance().GetCurrentDialID();
- return id;
-}
-
-
-
-bool ble_is_dial_install_by_id(uint16_t id)
-{
- return OHOS::SetDialModel::GetInstance().IsDialInstalled(id);
-}
-
-int ble_get_dial_num(void)
-{
- return OHOS::SetDialModel::GetInstance().GetDialCount();
-}
-
-void ble_delete_dial_(uint16_t id)
-{
- OHOS::SetDialModel::GetInstance().UninstallDial(id);
-}
-
-bool ble_delete_dial(uint16_t id)
-{
-
- if(id==OHOS::SetDialModel::GetInstance().GetCurrentDialID())
- return false;
- else
- {
- switch (id) {
- case OHOS::DEFAULT_DIAL_ID:
- case OHOS::MAX_DEFAULT_DIAL_ID:
- case OHOS::DEFAULT_DIAL_ID_0:
- case OHOS::DEFAULT_DIAL_ID_1:
- case OHOS::DEFAULT_DIAL_ID_2:
- case OHOS::DEFAULT_DIAL_ID_3:
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
- "UninstallDial: Default dial %d cannot be uninstalled", id);
- return false;
- }
- GraphicService::GetInstance()->PostGraphicEvent(
- std::bind(ble_delete_dial_,id));
- return true;
- }
-
-}
-
-int get_all_dial_id( char * buf,uint16_t MAX_LEN)
-{
- return OHOS::SetDialModel::GetInstance().GetAllDialIDs(buf,MAX_LEN);
-}
-
-bool dial_file_save(void )
-{
- return OHOS::SetDialModel::GetInstance().saveDialfile();
-}
-
-void install_Register_dial_( char * name,uint16_t id)
-{
- OHOS::SetDialModel::GetInstance().RegisterDial(id,name,0);
-
-}
-void install_Register_dial( char * name,uint16_t id)
-{
- GraphicService::GetInstance()->PostGraphicEvent(
- std::bind(install_Register_dial_,name ,id));
- return ;
-
-}
-
-#include "cywee_ble_Service.h"
-
-void delete_before_file(uint8_t type)
-{
- time_t currtime;
- struct tm *timeinfo;
- time(&currtime);
- timeinfo = localtime(&currtime);
-
- int y=timeinfo->tm_year+ 1900;
- int m=timeinfo->tm_mon+1;
- int d=timeinfo->tm_mday;
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"delete_before_file now day%d %d %d\r\n ",y,m,d);
-
- char path_[64]={0};
-
- switch (type)
- {
- case 0x43: //同步步数历史数据
- sprintf_s(path_,64,"%s",GOAL_DATA_CONFIG_DIR_STEP);
- break;
- case 0x44://同步燃脂时间数据
- sprintf_s(path_,64,"%s",GOAL_DATA_CONFIG_DIR_FAT);
- break;
- case 0x45://同步站立历史数据
- sprintf_s(path_,64,"%s",GOAL_DATA_CONFIG_DIR_STAND);
- break;
- case 0x46://同步卡路里历史数据
- sprintf_s(path_,64,"%s",GOAL_DATA_CONFIG_DIR_CALORIES);
- break;
- case 0x47://同步距离历史数据
- sprintf_s(path_,64,"%s",GOAL_DATA_CONFIG_DIR_DISTANCE);
- break;
- default:
- break;
- }
-
-
- struct DIR *dir;
- struct dirent *ent;
-
-
- if ((dir = opendir(path_)) != NULL)
- {
- while ((ent = readdir(dir)) != NULL)
- {
- std::string fileName = ent->d_name;
- if (fileName != "." && fileName != "..")
- {
-
- if (ent->d_type == DT_REG || ent->d_type == DT_UNKNOWN ) // 普通文件
- {
- int flag=0;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"%s\r\n",fileName.c_str());
- int y_;
- int m_;
- int d_;
-
- for(int i=0;i<fileName.length();i++)
- {
- int data=0;
-
- data=atoi(fileName.c_str()+i);
- if(data>0)
- {
-
- if(flag==0)
- {
- i=i+4;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"data %d\r\n",data);
- y_=y-data;
- flag++;
- }
- else if (flag==1)
- {
- i=i+2;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"data %d\r\n",data);
- m_=m-data;
- flag++;
- }
- else if (flag==2)
- {
- i=i+2;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"data %d\r\n",data);
- d_=d-data;
- flag++;
- }
-
-
- }
- }
-
- if((y_*24+m_)*30+d_>before_file_day)
- {
- char path_remove[64]={0};
- sprintf_s(path_remove,64,"%s/%s",path_,fileName.c_str());
- remove(path_remove);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"succ remove %s\r\n ",path_remove);
- }
- else
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"is 30d %d\r\n ",(y_*24+m_)*30+d_);
- }
-
- }
- }
- else if (ent->d_type == DT_DIR) // 目录
- {
- continue;
- }
- }
- }
- else
- {
-
- return ;
- }
- closedir(dir);
-
-
-
-
-}
-
-char * ble_sywee_history(uint8_t day,uint16_t *len ,uint8_t type)
-{
- char path_[64]={0};
- char timeday[12] = {0};
- uapi_get_YYMMDD_Time_extend(timeday, '_',day);
- uint8_t day_now_data_size=0;
- switch (type)
- {
- case 0x43: //同步步数历史数据
- sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_PATH,timeday);
- day_now_data_size=8;
- break;
- case 0x44://同步燃脂时间数据
- sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_FAT_PATH,timeday);
- day_now_data_size=6;
- break;
- case 0x45://同步站立历史数据
- sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_STAND_DATA_PATH,timeday);
- day_now_data_size=4;
- break;
- case 0x46://同步卡路里历史数据
- sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_CALORIES_PATH,timeday);
- day_now_data_size=8;
- break;
- case 0x47://同步距离历史数据
- sprintf_s(path_,64,"%s%s.bin",CWM_HISTORY_DATA_DISTANCE_PATH,timeday);
- day_now_data_size=8;
- break;
- default:
- break;
- }
- if(day!=0)
- {
- day_now_data_size=0;
- }
- FILE * fp = fopen(path_,"rb+");
- uint32_t size=0;
- if(fp==NULL)
- {
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," fopen type %d %s fail\r\n",type,path_);
- if(day==0)
- {
- goto DAY_IS_0;
- }
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," fopen type %d %s fail\r\n",type,path_);
- return NULL;
- }
-
- if (fp != NULL)
- {
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- size = ftell(fp); // 获取当前文件指针位置,即文件大小
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- }
-
-
- DAY_IS_0:
-
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"size %d \r\n",size);
- char * buf=(char *)malloc(size+day_now_data_size);
- if(buf==NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"malloc fail\r\n");
- return buf;
- }
- if(fp)
- {
- uint32_t ret= fread(buf,1,size,fp);
- fclose(fp);
- }
-
- if(day==0)
- {
- time_t currtime;
- uint32_t creationTime=0;
- int ret = uapi_get_timestampe_ss(&creationTime);
-
- int32_t value=0;
- int16_t value_16=0;
- float f_value=0;
-
- struct tm *timeinfo;
- time(&currtime);
- timeinfo = localtime(&currtime);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"localtime %d",timeinfo->tm_min);
- creationTime=creationTime-(timeinfo->tm_min*60)-(timeinfo->tm_sec);
-
- switch (type)
- {
- case 0x43: //同步步数历史数据
-
- if( get_now_hour_data(&value,CYWEE_SAVE_DATA_STEP))
- {
- if(value>0)
- {
- memcpy(buf+size,&creationTime,4);
- size+=4;
- memcpy(buf+size,&value,4);
- size+=4;
- }
- }
-
- break;
- case 0x44://同步燃脂时间数据
- if(get_now_hour_data(&value_16,CYWEE_SAVE_DATA_FAT))
- {
- if(value_16>0)
- {
- memcpy(buf+size,&creationTime,4);
- size+=4;
- int16 temp_value= (value_16);
- memcpy(buf+size,&(temp_value),2);
- size+=2;
- }
- }
-
- break;
- case 0x45://同步站立历史数据
-
- // if(get_stand_falg())
- // {
- // memcpy(buf+size,&creationTime,4);
- // size+=4;
- // }
-
- break;
- case 0x46://同步卡路里历史数据
- if(get_now_hour_data(&f_value,CYWEE_SAVE_DATA_CALORIES))
- {
- if(f_value>0)
- {
- memcpy(buf+size,&creationTime,4);
- size+=4;
- memcpy(buf+size,&f_value,4);
- size+=4;
- }
- }
-
- break;
- case 0x47://同步距离历史数据
- if(get_now_hour_data(&f_value,CYWEE_SAVE_DATA_DISTANCE))
- {
- if(f_value>0)
- {
- memcpy(buf+size,&creationTime,4);
- size+=4;
- memcpy(buf+size,&f_value,4);
- size+=4;
- }
- }
-
- break;
- default:
- break;
- }
-
- }
-
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"fread %d \r\n",ret);
- for(int i=0;i<size;i++)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," %02X",(uint8_t)buf[i]);
- }
- *len=size;
- if(buf && size==0)
- {
- free(buf);
- buf=NULL;
- }
-
- return buf;
-}
-
-
-
-
-
-void ble_set_sleep_remind(msg_get_sleep_param_info_t data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data.schedule);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP,data.schedule);
- //if(data.schedule)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data.bedtime_hour);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data.bedtime_min);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_BEDTIME,data.bedtime_hour<<16|data.bedtime_min);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data.waketime_hour);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data.waketime_min);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_GET_UP,data.waketime_hour<<16|data.waketime_min);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"睡前提醒 %d\r\n",data.bedtime_alarm);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_REMIND,data.bedtime_alarm);
-
- //更新睡眠配置
- OHOS::SleepModel::GetInstance().set_sleep_goal();
- set_sleep_and_wake_time();
- //OHOS::clean_sleep_file(); //重设睡眠时间段 删除历史文件
- get_sleep_time_notify();
- }
- 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::CONFIGMODEL_ITEM_SLEEP);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data->schedule);
-
- uint32_t bedtime= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_BEDTIME);
- data->bedtime_hour=bedtime>>16;
- data->bedtime_min=bedtime&0x00ff;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data->bedtime_hour);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data->bedtime_min);
-
- uint32_t wakettime= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_GET_UP);
- data->waketime_hour=wakettime>>16;
- data->waketime_min=wakettime&0x00ff;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data->waketime_hour);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data->waketime_min);
-
- data->bedtime_alarm= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_REMIND);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"睡前提醒 %d\r\n",data->bedtime_alarm);
-
- return;
-}
-
-
-
-
-
-void ble_set_drink_remind(msg_drink_info_t data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data.drink_on);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK,data.drink_on);
- if(data.drink_on)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标:%d\r\n",data.goal);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_GOAL,data.goal);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data.time_start);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_START,data.time_start);
- if(data.drink_on==2)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data.time_end);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_END,data.time_end);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"频率:%d\r\n",data.freq);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_FREQ,data.freq);
- }
- }
- set_drinkreminder_data();/*更新喝水提醒时间*/
- 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::CONFIGMODEL_ITEM_DRINK);
- if(data->drink_on)
- data->drink_on=1;
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data->drink_on);
-
- return;
-}
-
-// 闹钟数据:
-// {
-// //"code":1,
-// "alarms":
-// [
-// {
-// "id":0,
-// "repeat":[0],
-// "hour":10,
-// "minute":0,
-// "enable":1
-static const char *alarmName[6] = {"clock1", "clock2", "clock3", "clock4", "clock5", "clock6"}; // 闹钟名字的最大个数为6
-
-void ble_delet_all_AlarmInfo(void)
-{
- AlarmClockManagement data;
- if( 0==AlmmgrGetManagement(&data))
- {
-
- for(int i=0;i<EVENT_ALARM_CLOCK_MAX;i++)
- {
- delete_alarm_id(i);//将指定id的闹钟标记为已删除状态
- if(data.eventAlarmInfo[i].alarmClockId==i && data.eventAlarmInfo[i].alarmType==TYPE_EVENT_ALARM_CLOCK)
- AlmmgrDeleteAlarmClock(&data.eventAlarmInfo[i]);
- }
- }
-}
-
-void ble_SetAlarmInfo(uint32_t time_hour, uint32_t time_min, uint8_t week,uint8_t id,uint8_t enable)
-{
- // OHOS::uapi_connect_pbap_pce();
-
- AlarmClockInfo eventAlarmInfo;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmInfo!");
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "hour = %u, minute = %u", time_hour, time_min);
- eventAlarmInfo.alarmTime = ((time_hour << 16) | time_min); // 闹钟时间数据的小时位右边16位
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewAlarmTime eventAlarmInfo.alarm_time = %u",
- eventAlarmInfo.alarmTime);
- eventAlarmInfo.alarmClockId = id;
- eventAlarmInfo.alarmClockEnable = enable;
- eventAlarmInfo.alarmType = 1;
- eventAlarmInfo.delayNum = 0;
- eventAlarmInfo.nameLen = strlen(alarmName[id]);
- eventAlarmInfo.index = id;
- eventAlarmInfo.repeatPeriod = week;
- if (strcpy_s(eventAlarmInfo.alarmClockName, strlen(alarmName[id]) + 1,
- alarmName[id]) != 0) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmInfo copy alarmname error!");
- return;
- }
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewAlarmTime clock name = %s, id = %u",
- eventAlarmInfo.alarmClockName, eventAlarmInfo.alarmClockId);
-
- if ( id+1 >= AlmmgrGetEventAlarmCnt()) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek new time!");
- int ret = AlmmgrAddAlarmClock(&eventAlarmInfo);
- set_alarm_id(id);//将指定id的闹钟标记为已设置状态
- } else {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek modify time!");
- AlmmgrUpdataAlarmClock(&eventAlarmInfo);
- }
-}
-
-void ble_AlarmClock_refresh(void)
-{
- SendMsgToUIService(UI_UPDATE_ALARM_INFO, 0, nullptr, 0);
-}
-
-
-char * struct_to_json_buf_malloc_Alarm(void)
-{
- AlarmClockManagement data;
- cJSON *dataJSON = cJSON_CreateObject();
- cJSON* data_arryJSON = cJSON_CreateArray();
-
- if( 0==AlmmgrGetManagement(&data))
- {
-
-
- for(int i=0;i<EVENT_ALARM_CLOCK_MAX;i++)
- {
- if(data.eventAlarmInfo[i].alarmClockId==i && data.eventAlarmInfo[i].alarmType==TYPE_EVENT_ALARM_CLOCK)
- {
- cJSON* itemJSON = cJSON_CreateObject();
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"闹钟数据:%d\r\n",data.eventAlarmInfo[i].alarmClockId);
- cJSON_AddNumberToObject(itemJSON,"id",data.eventAlarmInfo[i].alarmClockId);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"闹钟使能:%d\r\n",data.eventAlarmInfo[i].alarmClockEnable);
- cJSON_AddNumberToObject(itemJSON,"enable",data.eventAlarmInfo[i].alarmClockEnable);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"闹钟重复:%d\r\n",data.eventAlarmInfo[i].repeatPeriod);
- int anNum[7] = {0};
- int repeatPeriod_num=0;
- for(int j=0 ; j<7;j++)
- {
- if(data.eventAlarmInfo[i].repeatPeriod & 0b00000001<<j)
- {
- if(j==0)
- {
- anNum[repeatPeriod_num]=7;
- }
- else
- {
- anNum[repeatPeriod_num]=j;
- }
-
-
- repeatPeriod_num++;
- }
- }
- if(repeatPeriod_num==0)
- {
- repeatPeriod_num=1;
- }
- cJSON* repeatPeriod= cJSON_CreateIntArray(anNum,repeatPeriod_num);
-
- cJSON_AddItemToObject(itemJSON,"repeat",repeatPeriod);
-
-
- uint8_t refreshHour = data.eventAlarmInfo[i].alarmTime >> 16; // 闹钟存储小时位需要右移16位
-
- uint8_t refreshMin = data.eventAlarmInfo[i].alarmTime & 0x00FF; // 得出闹钟时间的分钟位需要将左置位16位清零
-
- cJSON_AddNumberToObject(itemJSON,"hour",refreshHour);
-
- cJSON_AddNumberToObject(itemJSON,"minute",refreshMin);
-
- cJSON_AddItemReferenceToArray(data_arryJSON,itemJSON);
-
- }
-
- //cJSON_AddNumberToObject(itemJSON,"src",data->src);
- }
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"闹钟数据:%d\r\n",data.alarmTime);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"闹钟数据:%d\r\n",data.repeatPeriod);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"闹钟数据:%d\r\n",data.alarmClockEnable);
- // i++;
- }
- else
- {
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"获取闹钟失败\r\n");
- }
-
- cJSON_AddItemToObject(dataJSON,"alarms",data_arryJSON);
-
- char *json_format = cJSON_PrintUnformatted(dataJSON);
-
- int pSize = cJSON_GetArraySize(dataJSON);
- cJSON_Delete(dataJSON);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"闹钟数据 :%s\r\n",json_format);
- return json_format;
-}
-
-char * struct_to_json_buf_malloc_(uint8_t day)
-{
- cJSON *dataJSON = cJSON_CreateObject();
- cJSON* data_arryJSON = cJSON_CreateArray();
- struct Trainingdata * data=NULL;
- int i=0;
- //char file_path[128] = {0};
- char timeday[12] = {0};
- uapi_get_YYMMDD_Time_extend(timeday, '_',day);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"%s\r\n",timeday);
- //sprintf(file_path, "%s%s.bin", TRAINING_PATH_BLE, timeday);
-
- while(data=read_Trainingdata_data(timeday, i))
- {
- cJSON* itemJSON = cJSON_CreateObject();
- if(data!=NULL)
- {
- cJSON_AddNumberToObject(itemJSON,"src",data->src);
- cJSON_AddNumberToObject(itemJSON,"bt",data->bt);
- cJSON_AddNumberToObject(itemJSON,"ty",data->ty);
- cJSON_AddNumberToObject(itemJSON,"st",data->st);
- cJSON_AddNumberToObject(itemJSON,"sp",data->sp);
- cJSON_AddNumberToObject(itemJSON,"tgt",data->tgt);
- cJSON_AddNumberToObject(itemJSON,"tg",data->tg);
- cJSON_AddNumberToObject(itemJSON,"pg",data->pg);
- cJSON_AddNumberToObject(itemJSON,"du",data->du);
- cJSON_AddNumberToObject(itemJSON,"ca",data->ca);
- cJSON_AddNumberToObject(itemJSON,"di",data->di);
- cJSON_AddNumberToObject(itemJSON,"hr",data->hr);
- cJSON_AddNumberToObject(itemJSON,"stp",data->stp);
- cJSON_AddNumberToObject(itemJSON,"ti",data->ti);
- cJSON_AddNumberToObject(itemJSON,"cir",data->cir);
- cJSON_AddNumberToObject(itemJSON,"alt",data->alt);
- cJSON_AddNumberToObject(itemJSON,"apc",data->apc);
- cJSON_AddNumberToObject(itemJSON,"fpc",data->fpc);
- cJSON_AddNumberToObject(itemJSON,"spc",data->spc);
- cJSON_AddNumberToObject(itemJSON,"std",data->std);
- cJSON_AddNumberToObject(itemJSON,"cdc",data->cdc);
-
- cJSON_AddItemReferenceToArray(data_arryJSON,itemJSON);
- free(data);
- data=NULL;
- }
- else{
- break;
- }
- i++;
- }
- cJSON_AddItemToObject(dataJSON,"recs",data_arryJSON);
-
- char *json_format = cJSON_PrintUnformatted(dataJSON);
-
- int pSize = cJSON_GetArraySize(dataJSON);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"训练历史数据:%s\r\n",json_format);
- cJSON_Delete(dataJSON);
- return json_format;
-}
-
-#define TAR_PATH EXC_TAR_PATH
-
-
-static uint8_t Calculate_CRC_file(char *path)//
-{
- uint8_t crcbuf = 0;
- uint8_t lrcValue = 0x00;
- lrcValue = calculate_lrc_file(path);
-
- crcbuf = get_crc_from_lrc(lrcValue);
- return crcbuf;
-}
-
-static uint8_t file_count=0;
-
-static uint8_t file_index=1;
-
-void get_tar_dir_file_count(void)
-{
- char dir_path[128]={0};
- sprintf_s(dir_path,128,"%s",TAR_PATH);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"TAR_PATH %s\r\n",dir_path);
- struct DIR *dir;
- struct dirent *ent;
-
-
- file_count=0;
-
- if ((dir = opendir(dir_path)) != NULL)
- {
- while ((ent = readdir(dir)) != NULL)
- {
- std::string fileName = ent->d_name;
-
- if (fileName != "." && fileName != "..")
- {
-
- if (ent->d_type == DT_REG || ent->d_type == DT_UNKNOWN ) // 普通文件
- {
- //if(strstr(fileName.c_str(),".tar"))
- file_count++;
-
- }
- }
- else if (ent->d_type == DT_DIR) // 目录
- {
- continue;
- }
- }
- closedir(dir);
- }
- else
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"enenenenen \r\n");
- }
- file_index=1;
- return;
-}
-
-uint32_t tar_rmove(char *tar_path)
-{
-
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"remove %s\r\n",tar_path);
- if(0==remove(tar_path))
- return 1;
- else
- return 0;
-}
-
-char * tar_dir_to_json_buf_malloc_(char* file_name,uint32_t *file_size)
-{
- char dir_path[256]={0};
- sprintf_s(dir_path,256,"%s",TAR_PATH);
-
- cJSON *dataJSON = cJSON_CreateObject();
- cJSON* data_arryJSON = cJSON_CreateArray();
-
- struct DIR *dir;
- struct dirent *ent;
-
- if ((dir = opendir(dir_path)) != NULL)
- {
- while ((ent = readdir(dir)) != NULL)
- {
- std::string fileName = ent->d_name;
-
- if (fileName != "." && fileName != "..")
- {
- if (ent->d_type == DT_REG || ent->d_type == DT_UNKNOWN ) // 普通文件
- {
-
- //*file_size=ent->d_reclen;
- char file_path[300]={0};
- sprintf_s(file_path,256,"%s/%s",TAR_PATH,ent->d_name);
-
- FILE * fp = fopen(file_path,"rb+");
- if(fp==NULL)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP," fopen fail %s\r\n",file_path);
- return NULL;
- }
- if (fp != NULL)
- {
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- *file_size = ftell(fp); // 获取当前文件指针位置,即文件大小
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- }
- fclose(fp);
-
-
- memcpy(file_name,file_path,strlen(file_path));
- uint8_t crc= Calculate_CRC_file(file_name);
-
- cJSON* itemJSON = cJSON_CreateObject();
-
- cJSON_AddNumberToObject(itemJSON,"index",file_index);
- cJSON_AddNumberToObject(itemJSON,"count",file_count);
-
- cJSON_AddNumberToObject(itemJSON,"crc",crc);
-
- cJSON_AddStringToObject(itemJSON,"name",fileName.c_str());
- cJSON_AddNumberToObject(itemJSON,"size",*file_size);
-
- char *json_format = cJSON_PrintUnformatted(itemJSON);
-
- int pSize = cJSON_GetArraySize(dataJSON);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"文件数据:%s\r\n",json_format);
- cJSON_Delete(dataJSON);
- file_index++;
-
- return json_format;
-
- //cJSON_AddItemReferenceToArray(data_arryJSON,itemJSON);
-
- }
- else if (ent->d_type == DT_DIR) // 目录
- {
- continue;
- }
-
- }
-
- }
- closedir(dir);
- }
- else
- {
-
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"opendir fail\r\n");
- }
- cJSON_Delete(dataJSON);
- cJSON_Delete(data_arryJSON);
-
- return NULL;
-}
-
-
-
-
-
-
-void add_addressbookToRead(char *data)
-{
- if(data == NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Error: data is NULL\n");
- return;
- }
-
- char *name = NULL;
- char *phone = NULL;
- name = strtok(data, ",");
-
- if(name == NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Error: Unable to get name\n");
- return;
- }
-
- phone = strtok(NULL, ",");
-
- if(phone == NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Error: Unable to get phone number\n");
- return;
- }
-
- PRINT("phone : %s \r\n", phone);
- OHOS::add_addressbook_by_AT(name, phone);
- return;
-}
-
-static uint32_t languaage_id=0;
-void set_languaage(uint32_t id)
-{//OHOS:: language language;
- languaage_id=id;
- SendMsgToUIService(UI_UPDATE_LANGUAGE, 0, &languaage_id, sizeof(uint32_t));
-}
-
-char *addressbook(void)//获取通讯录保存文件地址路径
-{
- return ADDRESS_BOOK_PATH;
-}
-
-void addressbookToRead(char *buf)//转化用于·c文件
-{
- if(buf!=NULL)
- OHOS::read_addressbook_to_struct(buf);
- else
- OHOS::read_addressbook_bin_file();
- return;
-}
-
-void addressbookTowrite(void)//转化用于·c文件
-{
- OHOS::write_addressbook_bin_flle();
- return;
-}
-
-// struct Weather_data
-// {
-// int humidity;
-// char* windScale;
-// char* textNight;
-// int uvIndex;
-// int temp;
-// int iconNight;
-// };
-uint8_t ble_falg=0;
-
-void set_user_data(msg_user_info_t *data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"高:%d\r\n",data->height);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_HEIGHT,data->height);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"重:%d\r\n",data->weight);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_WEIGHT,data->weight);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"性别:%d\r\n",data->gender);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_SEX,data->gender);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"年纪:%d\r\n",data->age);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_AGE,data->age);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标步数:%d\r\n",data->target_step);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT,data->target_step);
-
- //目标站立
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标站立 %d\r\n",data->target_stand);
- if(data->target_stand)
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES,data->target_stand);
- //目标燃脂
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标燃脂 %d\r\n",data->fat_time);
- if(data->fat_time)
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION,data->fat_time);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标卡路里 %d\r\n",data->fat_time);
- if(data->calorie)
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES,data->calorie);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标距离 %d\r\n",data->fat_time);
- if(data->distance)
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE,data->distance);
-
- do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SET_USER_INFO, NULL);
-
- // app端不修改手表端时间显示
- // if(data->timeformat==0)
- // p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_24HOUR,24);
- // else
- // p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_24HOUR,12);
-
-
-
-
-
- SendMsgToUIService(UI_UPDATE_GOAL, 0, nullptr, 0);
-
-}
-
-int get_goal_stepcount(void)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT);
-}
-int get_goal_caloriescount(void)//获取运动目标卡路里
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES);
-}
-int get_goal_discount(void)//获取运动目标卡路里
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE);
-}
-int get_vibrationremiander(void)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->GetVibrationReminder();
-}
-
-int get_SilentMode(void)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->GetSilentMode();
-}
-void set_quick_auxiliary_paramters(uint8_t id)//设置快捷辅助功能参数id
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_QUICK_AUXILIARY_PARAMETERS,id);
-}
-int get_quick_auxiliary_paramters(void)//获取快捷辅助功能参数id
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_QUICK_AUXILIARY_PARAMETERS);
-}
-void set_goal_stepcount(uint32_t step)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT,step);
- return ;
-}
-void set_goal_caloriescount(uint32_t kcal)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES,kcal);
-
-
- return ;
-}
-void set_notify_switch(bool on)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_NOTIFY,on);
- return ;
-}
-bool get_notify_switch(void)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_NOTIFY);
-}
-
-uint8_t get_other_goal_notify_switch(void)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_OTHER);
-}
-
-
-uint8_t get_step_goal_notify_switch(void)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEP);
-}
-
-
-
-void set_goal_discount(uint32_t dis)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE,dis);
- return ;
-}
-void set_goal_durationcount(uint32_t time)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION,time);
- return ;
-}
-int get_goal_durationcount(void)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION);
-}
-void set_goal_standupcount(uint32_t time)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES,time);
- return ;
-}
-int get_goal_standupcount(void)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES);
-}
-
-void set_vibrationremiander(uint8_t falg)//设置震动模式
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->SetVibrationReminder(falg);
- // uapi_vibrationModeSet(falg);
- ui_api_vibrate_once_func();
- SendMsgToUIService(UI_UPDATE_VIBRATION_MODE,0,nullptr,0);
- return ;
-}
-
-void set_SilentMode(uint8_t falg)//设置静音模式
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->SetSilentMode(falg);
- SendMsgToUIService(UI_UPDATE_SILENT_MODE,0,nullptr,0);
- return;
-}
-/*设置自动获取实时数据开关*/
-void set_traning_updata_auto(uint8_t traingauto)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_TRANING_AUTO,traingauto);
- return;
-}
-
-void set_goal_other_notification(uint8_t data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_OTHER,data);
- if(data==1)
- {
- OHOS::set_Is_show_flag(1,OHOS::GOAL_CALOREIE);
- OHOS::set_Is_show_flag(1,OHOS::GOAL_STAND);
- OHOS::set_Is_show_flag(1,OHOS::GOAL_FAT);
- OHOS::set_Is_show_flag(1,OHOS::GOAL_DISTANCE);
-
- }
-
- SendMsgToUIService(UI_UPDATE_GOAL, 0, nullptr, 0);
-
- return;
-}
-
-void set_goal_step_notification(uint8_t data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEP,data);
- if(data==1)
- {
- OHOS::set_Is_show_flag(1,OHOS::GOAL_STEP);
- }
-
- SendMsgToUIService(UI_UPDATE_GOAL, 0, nullptr, 0);
- return;
-}
-
-
-
-
-
-/*设置获取实时数据频率*/
-void set_traning_updata_freq(uint8_t freq)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_TRANING_FREQ,freq);
- return;
-}
-
-/*设置最大心率提醒*/
-void set_traning_heart_max(uint8_t data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- OHOS::TraingModel::GetInstance()->SetMaxHeart(data);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_TRAINING_HEART_MAX,data);
- return;
-}
-void set_brigthness(uint8_t data) //设置屏幕亮度
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- const uint8_t minbrightness =51;
- const uint8_t maxbrightness =0xff;
- if(data<=minbrightness)
- data = minbrightness;
- else if(data >= maxbrightness)
- data = maxbrightness;
- p_ConfigModel->SetBrightness(data);
- uapi_setScreenBrightness(data);
- SendMsgToUIService(UI_UPDATE_BRIGHTNESS_VALUE,0,nullptr,0);
- return;
-}
-void Set_DmpChangeMode(int state)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->SetDmpChangeMode(state);
-}
-
-void Set_heart_cmd(msg_get_heart_set_param_info_t *data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_DETECTED,data->frequence);
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_REMIND,data->remind_on);
- if(data->remind_on)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"set_condigData_Int data->max_min %d\r\n",data->max_min);
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN,data->max_min);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE,data->heart);
- }
-
-}
-
-
-void Get_heart_cmd(msg_get_heart_set_param_info_t *data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- data->frequence = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_DETECTED);
- data->remind_on = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_REMIND);
- data->max_min= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Get_heart_cmd data->max_min %d\r\n",data->max_min);
- data->heart = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE);
-
-}
-
-void Set_oxygen_cmd(msg_get_spo2_set_param_info_t *data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_DETECTED,data->frequence);
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_REMIND,data->remind_on);
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_THRESHOLD_VALUE,data->spo2);
-
-
-}
-
-void Get_oxygen_cmd(msg_get_spo2_set_param_info_t *data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- data->frequence = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_DETECTED);
- data->remind_on = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_REMIND);
- data->spo2= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_THRESHOLD_VALUE);
-}
-
-int Get_DmpChangeMode(void)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->GetDmpChangeMode();
-}
-int get_brigthness(void) //获取屏幕亮度
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- return p_ConfigModel->GetBrightness();
-}
-void set_ScreenDuration(int data) //设置亮屏时长
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->SetScreenDuration(data);
- uapi_setScreenDuration(data);
- SendMsgToUIService(UI_UPDATE_SCREEN_DURATION,0,nullptr,0);
- return;
-}
-
-int get_ScreenDuration(void) //获取亮屏时长
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- return p_ConfigModel->GetScreenDuration();
-}
-void Set_RaiseToWake(bool value) //抬婉亮屏开关
-{
- if(uapi_sleep_mode_flag_get())
- {
- return;
- }
-
- mmi_flip_wrist_switch_set(value);
- if(true == value)
- {
- uapi_take_to_wake(1);
- }
- else
- {
- uapi_take_to_wake(0);
- }
-
- SendMsgToUIService(UI_UPDATE_RAISETOBRIGHTNESS,0,nullptr,0);
- return;
-}
-
-int Get_RaiseToWake(void) //获取抬婉亮屏开关
-{
- return mmi_flip_wrist_switch_get();
-}
-void Set_SystemVolume(int value) //设置系统音量
-{
- uapi_systemVolumeSet(value);
- SendMsgToUIService(UI_UPDATE_SYSTEM_VOLUME,0,nullptr,0);
- return;
-}
-
-int Get_SystemVolume(void) //获取系统音量
-{
- return uapi_systemVolumeGet();
-}
-void Set_CallVolume(int value) //设置通话音量
-{
- uapi_callVolumeSet(value);
- SendMsgToUIService(UI_UPDATE_CALL_VOLUME,0,nullptr,0);
- return;
-}
-
-int Get_CallVolume(void) //获取通话音量
-{
- return uapi_callVolumeGet();
-}
-
-uint8_t ble_is_ready(void)
-{
- return ble_falg;
-}
-
-uint8_t ble_is_connect_ready(void)
-{
- return Bleconnect;
-}
-
-void set_ble_falg(bool falg)
-{
- ble_falg=falg;
-}
-
-void get_health_HEART_data_path(char *path, uint8_t day,uint16_t max_size)
-{
-
- char timeday[12] = {0};
- uapi_get_YYMMDD_Time_extend(timeday,'\0',day);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"%s\r\n",timeday);
-
- sprintf_s(path,max_size,"%s%s.bin",OHOS::GET_HEALTH_JSON_PATH_C_STR_HEART(),timeday);
-
- return ;
-}
-
-
-void get_health_OXYGEN_data_path(char *path, uint8_t day,uint16_t max_size)
-{
-
- char timeday[12] = {0};
- uapi_get_YYMMDD_Time_extend(timeday,'\0',day);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"%s\r\n",timeday);
-
- sprintf_s(path,max_size,"%s%s.bin",OHOS::GET_HEALTH_JSON_PATH_C_STR_OXYGEN(),timeday);
- return ;
-}
-
-void set_weather_now_data(int humidity, char* windScale, char* textNight,int uvIndex,int temp,int iconNight)
-{
- //UpdateWeatherViewData();
- return OHOS::UI_set_weather_now_data(humidity, windScale, textNight,uvIndex,temp,iconNight);
-}
-
-void set_weather_address_data(int lat, char* atm, char* city,char* subLocality,int lon)
-{
- return OHOS::UI_set_weather_address_data(lat, atm, city,subLocality,lon);
-}
-// struct ONE_DAY_DATA
-// {
-// int tempMin;
-// int iconDay;
-// int fxDate;
-// char textDay[16];
-// int tempMax;
-// };
-
-void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char *textDay,int count)
-{
- OHOS::ONE_DAY_DATA data_t;
-
- data_t.tempMin=tempMin;
- data_t.iconDay=iconDay;
- data_t.fxDate=fxDate;
- data_t.tempMax=tempMax;
- memset((void*)data_t.textDay,0,weather_short_len);
- strcpy_s(data_t.textDay,weather_short_len,textDay);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"set_weather_one_data %d\n",count);
- return UI_set_weather_seven_day_data(data_t ,count);
-}
-
-
-void ble_UpdateMainWeatherData(void)
-{
- SendMsgToUIService(UI_UPDATE_WEATHER_DATA,0,nullptr,0);
-}
-
-void ble_add_message_index(uint32_t old_index)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- old_index++;
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_MESSAGE_INDEX,old_index);
-}
-
-uint32_t ble_get_message_index()
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_MESSAGE_INDEX);
-}
-void SendDtfmStrNumberToCat1(char ch) // ble发送单个字符到CAT1 DTMF功能
-{
- #ifdef SUPPORT_CAT1_SERVICE
- send_dtfm_number_toCat1(ch);
- #endif
-}
-
-void ble_mp3_list_update(void)
-{
- SendMsgToUIService(UI_UPDATE_MUSIC_PLAYER_LIST,0,nullptr,0);
-}
-
-bool IS_free_save_Mp3(uint32_t size)
-{
- return canSyncMusic(size);
-}
-#else
-
-uint16_t get_str_nodisplay_number(char *str, uint32_t max_len) {
-
-
- return 0;
-
-}
-
-
-char * get_dial_path(void)
-{
- return DIAL_DATA_DIR;
-}
-
-errcode_t get_dial_file_path(char* input_dialname ,uint32_t input_size, char* output_file_path , uint32_t max_output_size)
-{
- if(input_dialname == NULL || output_file_path == NULL)
- {
- return ERRCODE_FAIL;
- }
-
- int ret = sprintf_s(output_file_path,max_output_size,"%s/%s.bin",DIAL_DATA_DIR,input_dialname);
- if (ret < 0)
- return ERRCODE_FAIL;
-
- return ERRCODE_SUCC;
-}
-
-
-
-uint8_t get_dial_num()
-{
-
- return 0;
-}
-
-bool ble_is_Alipay_bind(void)
-{
- return true;
-}
-
-void set_ota_upgrade(void)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OTA_UPGRADE,1);
-}
-
-void test_paly(uint8_t falg)
-{
-
-}
-bool get_training_spead_path(char *path ,uint32_t time,uint32_t max_len)
-{
-
- return true;
-
-}
-
-
-bool get_training_heart_path(char *path ,uint32_t time,uint32_t max_len)
-{
-
- return true;
-}
-
-
-void ble_sos_data_save(void)
-{
-
-}
-
-void ble_SOS_data_init(void)
-{
-}
-
-void ota_updata_init(void)
-{
-
-}
-
-
-uint8_t * ble_get_sos_all_data_malloc(uint32_t *len)
-{
-
- return NULL;
-}
-
-//sos
-void ble_sos_number_clean(void)
-{
-
-}
-
-bool ble_add_sos_number(uint8_t sex,char *name,char *number)
-{
-
- return true;
-}
-
-
-#define before_file_day 30
-
-
-void ble_Alipayunbind(void)
-{
- const alipay_svr_api_t *alipay_api = alipay_svr_get_api();
- alipay_api->remove_bind();
-}
-
-
-void get_music_path(char *buf,uint8_t max_len)
-{
-
-}
-
-bool is_first_pair(void)
-{
- return OHOS::ConfigModel::GetInstance()->GetisFirstTimeStart();
-}
-
-
-bool Ble_Set_ScheduleInfo(uint8_t id,uint32_t timetamp_begin,uint32_t timetamp_end,char *title,char *data,bool is_end)
-{
-
-
- return true;
-}
-
-
-
-//在此处实现,给UI回复消息。
-void ble_app_reply(bool data)
-{
-
-}
-
-
-void ble_connect_ok(void)
-{
-
-}
-
-void ble_disconnect_ok(void)
-{
-}
-
-void hand_watch_first_time_Paired(void)
-{
-}
-
-void ble_set_ai_Question_str(char *buf)
-{
-}
-
-void ble_set_ai_Answer_str(char *buf,uint8_t type)
-{
-}
-
-char* ble_get_ai_audio_path_str(void)
-{
- return NULL;
-}
-
-void ble_set_pair(uint8_t falg)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_BLE_IOS_OR_ANDROID,falg);
- return;
-}
-
-uint8_t get_ble_pair(void)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_BLE_IOS_OR_ANDROID);
-
-}
-
-uint8_t get_br_is_pair(void)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_BR_PAIR);
-}
-
-void set_br_pair(uint8_t data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_BR_PAIR,data);
- return;
-}
-
-bool get_lcd_state(void)
-{
- const power_display_svr_api_t *display_api = power_display_svr_get_api();
- if (display_api->get_screen_state() != SCREEN_ON)
- return false;
- else
- return true;
-}
-
-uint8_t ble_get_heart_data()
-{
- uint8_t heart=0;
- return heart;
-}
-
-uint8_t ble_get_oxygen_data()
-{
- return 0;
-}
-
-
-cJSON* ble_get_recs_data()
-{
-
- return NULL;
-}
-
-//通过时间戳获取训练数据
-cJSON* ble_get_Trainingdata_by_timetamp(uint32_t timetamp)
-{
-
- return NULL;
-}
-Tag_Trailer_t Mp3Trailer;
-Tag_ID3V2_TAG_T TAG_T;
-
-void Tag_read_ID3V2( FILE *fp)
-{
-// Get Header
- fseek(fp,10,SEEK_CUR);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Tag_read_ID2V3\r\n");
-
- for(int i=7;i>0;i--)
- {
- memset_s(&TAG_T,sizeof(TAG_T),0,sizeof(TAG_T));
- uint32_t size =fread(TAG_T.ID,4,1,fp);
-
- if(strcmp("TPE1",TAG_T.ID)==0)
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Header :%d %s\r\n",size,TAG_T.ID);
-
-
- fread(TAG_T.Size,4,1,fp);
- size = TAG_T.Size[0]*0x100000000 + TAG_T.Size[1]*0x10000+ TAG_T.Size[2]*0x100 +TAG_T.Size[3];
-
- if(strcmp("TPE1",TAG_T.ID)==0)
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Size :%d\r\n",size);
-
-
- fread(TAG_T.Flags,2,1,fp);
-
- char buf[124]={0};
- if(strcmp("TPE1",TAG_T.ID)==0)
- {
-
- fread(Mp3Trailer.Artist,1,size,fp);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"data : %s\r\n",Mp3Trailer.Artist);
- }
- else
- {
- if(size>=128)
- {
- fseek(fp,size,SEEK_CUR);
- }
- else
- {
- fread(buf,1,size,fp);
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"data : %s\r\n",buf);
- }
- }
- }
- return;
-
+ return bleInstruct_t .ble_get_Trainingdata_by_timetamp(timetamp);
}
-
-bool delete_MP3_file_By_ID(uint16_t id)
-{
-
- return true;
-
-
+bool delete_MP3_file_By_ID(uint16_t id)
+{
+ return bleInstruct_t .delete_MP3_file_By_ID(id);
}
-char * dir_to_json_buf_malloc_(uint8_t type)
+char * dir_to_json_buf_malloc(uint8_t type)
{
-
- return NULL;
-
+ return bleInstruct_t .dir_to_json_buf_malloc(type);
}
uint8_t ble_AT_add_nap_data(uint16_t time)
{
- return 0;
+ return bleInstruct_t .ble_AT_add_nap_data(time);
}
uint8_t ble_get_sleep_data(uint32_t file_size,uint8_t day_,uint8_t *data)
{
-
- return 0;
+ return bleInstruct_t .ble_get_sleep_data(file_size,day_,data);
}
uint8_t ble_get_sleep_data_dir(uint32_t *file_size,uint8_t day_)
{
- char dir_path[64]={0};
- char day[12]={0};
- uapi_get_YYMMDD_Time_extend(day,'\0', day_);
- sprintf_s(dir_path,64,SLEEP_DIR_PATH,day);
-
- struct DIR *dir;
- struct dirent *ent;
-
-
- uint8_t file_count=0;
-
- if ((dir = opendir(dir_path)) != NULL)
- {
- while ((ent = readdir(dir)) != NULL)
- {
- std::string fileName = ent->d_name;
- if (fileName != "." && fileName != "..")
- {
-
- if (ent->d_type == DT_REG || ent->d_type == DT_UNKNOWN ) // 普通文件
- {
-
- if(fileName=="sleep_time.bin")
- {
- char file_path[128]={0};
- sprintf_s(file_path,128,"%s/%s",dir_path,ent->d_name);
-
- FILE * fp = fopen(file_path,"rb+");
- if(fp==NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," fopen fail %s\r\n",file_path);
- return file_count;
- }
-
- if (fp != NULL)
- {
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- *file_size += ftell(fp)+3; // 获取当前文件指针位置,即文件大小
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- fclose(fp);
- }
- file_count++;
- }
- else if (fileName=="sleep_status.bin")
- {
- char file_path[128]={0};
- sprintf_s(file_path,128,"%s/%s",dir_path,ent->d_name);
- FILE * fp = fopen(file_path,"rb+");
- if(fp==NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," fopen fail %s\r\n",file_path);
- return file_count;
- }
- if (fp != NULL)
- {
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- *file_size += ftell(fp); // 获取当前文件指针位置,即文件大小
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- fclose(fp);
- }
- }
- else if(fileName=="nap.bin")
- {
- char file_path[128]={0};
- sprintf_s(file_path,128,"%s/%s",dir_path,ent->d_name);
-
- FILE * fp = fopen(file_path,"rb+");
- if(fp==NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," fopen fail %s\r\n",file_path);
- return file_count;
- }
- uint32_t size=0;
- if (fp != NULL)
- {
- fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
- size= ftell(fp); // 获取当前文件指针位置,即文件大小
- fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
- fclose(fp);
- }
- int mod_value=0;
-
- mod_value=size%14;
- if(mod_value!=0)
- return 0;
-
- uint8_t nap_count=size/14;
- *file_size+=nap_count*14;
-
- file_count+=nap_count;
- }
-
- }
- }
- else if (ent->d_type == DT_DIR) // 目录
- {
- continue;
- }
- }
- }
- else
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP," opendir fail %s\r\n",dir_path);
- return file_count;
- }
- closedir(dir);
-
- return file_count;
+ return bleInstruct_t .ble_get_sleep_data_dir(file_size,day_);
}
void ble_set_password(uint8_t falg, char * data)
{
-
+ return bleInstruct_t .ble_set_password(falg,data);
}
uint8_t ble_get_password(void)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- std::string str =p_ConfigModel->get_configData_string(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD);
- uint8_t falg =p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_PASSWORD_SWITCH);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"获取手表密码 %d %s \r\n",falg,str.c_str());
-
- return falg;
-
+ return bleInstruct_t .ble_get_password();
}
-void set_sedent_param( msg_sedent_set_param_info_t * data)
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_SWITCH,data->sedent_on);
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_REMINDERTIME,data->sedent_time );
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_INTERVAL,data->frequenc);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data->sedent_on);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"久坐提醒时间段:%d\r\n",data->sedent_time);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"久坐提醒时间间隔(单位小时):%d\r\n",data->frequenc);
-
- set_sedentary_data();
- return;
-}
+// void set_sedent_param(msg_sedent_set_param_info_t * data)
+// {
+// return bleInstruct_t .set_sedent_param(data);
+// }
void get_sedent_param( msg_sedent_set_param_info_t * data)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- data->sedent_on = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_SWITCH);
-
- data->sedent_time = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_REMINDERTIME);
-
- data->frequenc = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SEDENTARY_INTERVAL);
- return;
+
+ return bleInstruct_t.get_sedent_param(data);
}
bool check_dial_freespace(uint16_t id,uint32_t dial_size) {
- return false;
+ return bleInstruct_t.check_dial_freespace(id,dial_size);
}
void ble_get_dial_path(char * buf,uint16_t id)
{
+ return bleInstruct_t.ble_get_dial_path(buf,id);
}
void ble_save_dial_custom(msg_recv_custom_dial_info_t *data)
{
-
+ return bleInstruct_t.ble_save_dial_custom(data);
}
-void ble_set_dial_by_id_(uint16_t id)
-{
-
+// void ble_set_dial_by_id_(uint16_t id)
+// {
+// return bleInstruct_t.ble_set_dial_by_id_(id);
-}
+// }
void ble_set_dial_by_id(uint16_t id)
{
-
+ // printf("ble_set_dial_by_id %d\n",id);
+ return bleInstruct_t.ble_set_dial_by_id(id);
}
void ble_get_custom_dial(uint16_t id,char *buf)
{
-
+ return bleInstruct_t.ble_get_custom_dial(id,buf);
}
+
uint16_t ble_get_dial_id(void)
{
-
- return 0;
-
+ return bleInstruct_t.ble_get_dial_id();
}
bool ble_is_dial_install_by_id(uint16_t id)
{
-
- return false;
-
+ return bleInstruct_t.ble_is_dial_install_by_id(id);
}
int ble_get_dial_num(void)
{
-
- return 1;
-
+ return bleInstruct_t.ble_get_dial_num();
}
-void ble_delete_dial_(uint16_t id)
-{
-
-}
+// void ble_delete_dial_(uint16_t id)
+// {
+// return bleInstruct_t.ble_delete_dial_(id);
+// }
bool ble_delete_dial(uint16_t id)
{
- return false;
-
+ return bleInstruct_t.ble_delete_dial(id);
+
}
int get_all_dial_id( char * buf,uint16_t MAX_LEN)
{
-
-return 0;
-
+ return bleInstruct_t.get_all_dial_id(buf,MAX_LEN);
}
bool dial_file_save(void )
{
-
- return true;
-
+ return bleInstruct_t.dial_file_save();
}
-void install_Register_dial_( char * name,uint16_t id)
-{
-
+// void install_Register_dial_( char * name,uint16_t id)
+// {
+// return bleInstruct_t.install_Register_dial_(name,id);
-}
+// }
void install_Register_dial( char * name,uint16_t id)
{
-
- return ;
+ return bleInstruct_t.install_Register_dial(name,id);
}
-#include "cywee_ble_Service.h"
+// #include "cywee_ble_Service.h"
void delete_before_file(uint8_t type)
{
- time_t currtime;
+ #ifdef CYWEE_SPORT
+ time_t currtime;
struct tm *timeinfo;
time(&currtime);
timeinfo = localtime(&currtime);
}
closedir(dir);
-
+ #endif
}
char * ble_sywee_history(uint8_t day,uint16_t *len ,uint8_t type)
{
- char path_[64]={0};
+ #ifdef CYWEE_SPORT
+ char path_[64]={0};
char timeday[12] = {0};
uapi_get_YYMMDD_Time_extend(timeday, '_',day);
uint8_t day_now_data_size=0;
}
return buf;
-}
-
-
-
+ #endif
+ return NULL;
+}
void ble_set_sleep_remind(msg_get_sleep_param_info_t data)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data.schedule);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP,data.schedule);
- //if(data.schedule)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data.bedtime_hour);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data.bedtime_min);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_BEDTIME,data.bedtime_hour<<16|data.bedtime_min);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data.waketime_hour);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data.waketime_min);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_GET_UP,data.waketime_hour<<16|data.waketime_min);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"睡前提醒 %d\r\n",data.bedtime_alarm);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_REMIND,data.bedtime_alarm);
-
- //更新睡眠配置
- #ifdef FD230
- OHOS::SleepModel::GetInstance().set_sleep_goal();
- #endif
-
- }
- return;
+ return bleInstruct_t.ble_set_sleep_remind(data);
}
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::CONFIGMODEL_ITEM_SLEEP);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data->schedule);
-
- uint32_t bedtime= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_BEDTIME);
- data->bedtime_hour=bedtime>>16;
- data->bedtime_min=bedtime&0x00ff;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data->bedtime_hour);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data->bedtime_min);
-
- uint32_t wakettime= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_GET_UP);
- data->waketime_hour=wakettime>>16;
- data->waketime_min=wakettime&0x00ff;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data->waketime_hour);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data->waketime_min);
-
- data->bedtime_alarm= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SLEEP_REMIND);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"睡前提醒 %d\r\n",data->bedtime_alarm);
-
- return;
+ return bleInstruct_t.ble_get_sleep_remind(data);
}
void ble_set_drink_remind(msg_drink_info_t data)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data.drink_on);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK,data.drink_on);
- if(data.drink_on)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标:%d\r\n",data.goal);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_GOAL,data.goal);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开始时间:%d\r\n",data.time_start);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_START,data.time_start);
- if(data.drink_on==2)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"结束时间:%d\r\n",data.time_end);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_END,data.time_end);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"频率:%d\r\n",data.freq);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_DRINK_FREQ,data.freq);
- }
- }
- set_drinkreminder_data();/*更新喝水提醒时间*/
- return;
+
+ return bleInstruct_t.ble_set_drink_remind(data);
}
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::CONFIGMODEL_ITEM_DRINK);
- if(data->drink_on)
- data->drink_on=1;
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"开关:%d\r\n",data->drink_on);
- return;
+ return bleInstruct_t.ble_get_drink_remind(data);
}
// 闹钟数据:
void ble_delet_all_AlarmInfo(void)
{
-
+ return bleInstruct_t.ble_delet_all_AlarmInfo();
}
void ble_SetAlarmInfo(uint32_t time_hour, uint32_t time_min, uint8_t week,uint8_t id,uint8_t enable)
{
-
+ // OHOS::uapi_connect_pbap_pce();
+ return bleInstruct_t.ble_SetAlarmInfo(time_hour,time_min,week,id,enable);
+
}
void ble_AlarmClock_refresh(void)
{
+ // SendMsgToUIService(UI_UPDATE_ALARM_INFO, 0, nullptr, 0);
}
char * struct_to_json_buf_malloc_Alarm(void)
{
-
- return NULL;
+ return bleInstruct_t.struct_to_json_buf_malloc_Alarm();
}
char * struct_to_json_buf_malloc_(uint8_t day)
{
- return NULL;
+ return bleInstruct_t.struct_to_json_buf_malloc_(day);
}
#define TAR_PATH EXC_TAR_PATH
static uint8_t Calculate_CRC_file(char *path)//
{
- uint8_t crcbuf = 0;
+uint8_t crcbuf = 0;
uint8_t lrcValue = 0x00;
lrcValue = calculate_lrc_file(path);
-
- crcbuf = get_crc_from_lrc(lrcValue);
+
+crcbuf = get_crc_from_lrc(lrcValue);
return crcbuf;
}
{
//*file_size=ent->d_reclen;
- char file_path[256]={0};
+ char file_path[300]={0};
sprintf_s(file_path,256,"%s/%s",TAR_PATH,ent->d_name);
FILE * fp = fopen(file_path,"rb+");
char *json_format = cJSON_PrintUnformatted(itemJSON);
int pSize = cJSON_GetArraySize(dataJSON);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"文件数据:%s\r\n",json_format);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"文件数据:%s\r\n",json_format);
cJSON_Delete(dataJSON);
file_index++;
}
else
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"opendir fail\r\n");
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"opendir fail\r\n");
}
+ cJSON_Delete(dataJSON);
+ cJSON_Delete(data_arryJSON);
+
return NULL;
}
-void add_addressbookToRead(char *data)
-{
- if(data == NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Error: data is NULL\n");
- return;
- }
-
- char *name = NULL;
- char *phone = NULL;
- name = strtok(data, ",");
-
- if(name == NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Error: Unable to get name\n");
- return;
- }
-
- phone = strtok(NULL, ",");
- if(phone == NULL)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Error: Unable to get phone number\n");
- return;
- }
- PRINT("phone : %s \r\n", phone);
- return;
+void add_addressbookToRead(char *data)
+{
+
+ return bleInstruct_t.add_addressbookToRead(data);
}
static uint32_t languaage_id=0;
void set_languaage(uint32_t id)
{//OHOS:: language language;
-
+ languaage_id=id;
+ // SendMsgToUIService(UI_UPDATE_LANGUAGE, 0, &languaage_id, sizeof(uint32_t));
}
char *addressbook(void)//获取通讯录保存文件地址路径
{
- #ifdef FD230
return ADDRESS_BOOK_PATH;
- #endif
- return NULL;
}
void addressbookToRead(char *buf)//转化用于·c文件
{
-
+ return bleInstruct_t.addressbookToRead(buf);
}
void addressbookTowrite(void)//转化用于·c文件
{
+ return bleInstruct_t.addressbookTowrite();
}
uint8_t ble_falg=0;
void set_user_data(msg_user_info_t *data)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"高:%d\r\n",data->height);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_HEIGHT,data->height);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"重:%d\r\n",data->weight);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_WEIGHT,data->weight);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"性别:%d\r\n",data->gender);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_SEX,data->gender);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"年纪:%d\r\n",data->age);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_CUSTOM_DATA_AGE,data->age);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标步数:%d\r\n",data->target_step);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT,data->target_step);
+ return bleInstruct_t.set_user_data(data);
- //目标站立
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标站立 %d\r\n",data->target_stand);
- if(data->target_stand)
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES,data->target_stand);
- //目标燃脂
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标燃脂 %d\r\n",data->fat_time);
- if(data->fat_time)
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION,data->fat_time);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标卡路里 %d\r\n",data->fat_time);
- if(data->calorie)
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES,data->calorie);
-
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"目标距离 %d\r\n",data->fat_time);
- if(data->distance)
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE,data->distance);
-
- do_cywee_service_check_msg(CYWEE_SERVICE_CMD_SET_USER_INFO, NULL);
-
}
int get_goal_stepcount(void)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT);
+ return bleInstruct_t.get_goal_stepcount();
}
int get_goal_caloriescount(void)//获取运动目标卡路里
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES);
+ return bleInstruct_t.get_goal_caloriescount();
}
int get_goal_discount(void)//获取运动目标卡路里
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE);
+ return bleInstruct_t.get_goal_discount();
}
int get_vibrationremiander(void)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->GetVibrationReminder();
+ return bleInstruct_t.get_vibrationremiander();
}
int get_SilentMode(void)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->GetSilentMode();
+ return bleInstruct_t.get_SilentMode();
}
void set_quick_auxiliary_paramters(uint8_t id)//设置快捷辅助功能参数id
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_QUICK_AUXILIARY_PARAMETERS,id);
+ return bleInstruct_t.set_quick_auxiliary_paramters(id);
}
int get_quick_auxiliary_paramters(void)//获取快捷辅助功能参数id
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_QUICK_AUXILIARY_PARAMETERS);
+ return bleInstruct_t.get_quick_auxiliary_paramters();
}
void set_goal_stepcount(uint32_t step)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEPCOUNT,step);
- return ;
+ return bleInstruct_t.set_goal_stepcount(step);
}
void set_goal_caloriescount(uint32_t kcal)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_CALORIES,kcal);
-
-
- return ;
+ return bleInstruct_t.set_goal_caloriescount(kcal);
}
void set_notify_switch(bool on)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_NOTIFY,on);
- return ;
+ return bleInstruct_t.set_notify_switch(on);
}
bool get_notify_switch(void)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_NOTIFY);
+ return bleInstruct_t.get_notify_switch();
}
uint8_t get_other_goal_notify_switch(void)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_OTHER);
+ return bleInstruct_t.get_other_goal_notify_switch();
}
uint8_t get_step_goal_notify_switch(void)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STEP);
+ return bleInstruct_t.get_step_goal_notify_switch();
}
void set_goal_discount(uint32_t dis)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DISTANCE,dis);
- return ;
+ return bleInstruct_t.set_goal_discount(dis);
}
void set_goal_durationcount(uint32_t time)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION,time);
- return ;
+ return bleInstruct_t.set_goal_durationcount(time);
}
int get_goal_durationcount(void)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_DURATION);
+ return bleInstruct_t.get_goal_durationcount();
}
void set_goal_standupcount(uint32_t time)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES,time);
- return ;
+ return bleInstruct_t.set_goal_standupcount(time);
}
int get_goal_standupcount(void)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES);
+ return bleInstruct_t.get_goal_standupcount();
}
void set_vibrationremiander(uint8_t falg)//设置震动模式
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->SetVibrationReminder(falg);
- // uapi_vibrationModeSet(falg);
- ui_api_vibrate_once_func();
-
- return ;
+ return bleInstruct_t.set_vibrationremiander(falg);
}
void set_SilentMode(uint8_t falg)//设置静音模式
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->SetSilentMode(falg);
-
- return;
+ return bleInstruct_t.set_SilentMode(falg);
}
/*设置自动获取实时数据开关*/
void set_traning_updata_auto(uint8_t traingauto)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_TRANING_AUTO,traingauto);
- return;
+ return bleInstruct_t.set_traning_updata_auto(traingauto);
}
void set_goal_other_notification(uint8_t data)
{
+ return bleInstruct_t.set_goal_other_notification(data);
}
void set_goal_step_notification(uint8_t data)
{
-
+ return bleInstruct_t.set_goal_step_notification(data);
}
+
+
+
+
/*设置获取实时数据频率*/
void set_traning_updata_freq(uint8_t freq)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_TRANING_FREQ,freq);
- return;
+ return bleInstruct_t.set_traning_updata_freq(freq);
}
/*设置最大心率提醒*/
void set_traning_heart_max(uint8_t data)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_TRAINING_HEART_MAX,data);
- return;
+ return bleInstruct_t.set_traning_heart_max(data);
}
void set_brigthness(uint8_t data) //设置屏幕亮度
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- const uint8_t minbrightness =51;
- const uint8_t maxbrightness =0xff;
- if(data<=minbrightness)
- data = minbrightness;
- else if(data >= maxbrightness)
- data = maxbrightness;
- p_ConfigModel->SetBrightness(data);
- uapi_setScreenBrightness(data);
- return;
+ return bleInstruct_t.set_brigthness(data);
}
void Set_DmpChangeMode(int state)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->SetDmpChangeMode(state);
+ return bleInstruct_t.Set_DmpChangeMode(state);
}
void Set_heart_cmd(msg_get_heart_set_param_info_t *data)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_DETECTED,data->frequence);
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_REMIND,data->remind_on);
- if(data->remind_on)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"set_condigData_Int data->max_min %d\r\n",data->max_min);
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN,data->max_min);
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE,data->heart);
- }
+ return bleInstruct_t.Set_heart_cmd(data);
}
void Get_heart_cmd(msg_get_heart_set_param_info_t *data)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- data->frequence = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_DETECTED);
- data->remind_on = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_REMIND);
- data->max_min= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_MAX_MIN);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"Get_heart_cmd data->max_min %d\r\n",data->max_min);
- data->heart = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_HEARTRATE_THRESHOLD_VALUE);
+ return bleInstruct_t.Get_heart_cmd(data);
}
void Set_oxygen_cmd(msg_get_spo2_set_param_info_t *data)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_DETECTED,data->frequence);
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_REMIND,data->remind_on);
-
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_THRESHOLD_VALUE,data->spo2);
-
-
+ return bleInstruct_t.Set_oxygen_cmd(data);
}
void Get_oxygen_cmd(msg_get_spo2_set_param_info_t *data)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- data->frequence = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_DETECTED);
- data->remind_on = p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_REMIND);
- data->spo2= p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_OXYGEN_THRESHOLD_VALUE);
+ return bleInstruct_t.Get_oxygen_cmd(data);
}
int Get_DmpChangeMode(void)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->GetDmpChangeMode();
+ return bleInstruct_t.Get_DmpChangeMode();
}
int get_brigthness(void) //获取屏幕亮度
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- return p_ConfigModel->GetBrightness();
+ return bleInstruct_t.get_brigthness();
}
void set_ScreenDuration(int data) //设置亮屏时长
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- p_ConfigModel->SetScreenDuration(data);
- uapi_setScreenDuration(data);
- return;
+ return bleInstruct_t.set_ScreenDuration(data);
}
int get_ScreenDuration(void) //获取亮屏时长
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
-
- return p_ConfigModel->GetScreenDuration();
+ return bleInstruct_t.get_ScreenDuration();
}
void Set_RaiseToWake(bool value) //抬婉亮屏开关
{
- if(uapi_sleep_mode_flag_get())
- {
- return;
- }
-
- mmi_flip_wrist_switch_set(value);
- if(true == value)
- {
- uapi_take_to_wake(1);
- }
- else
- {
- uapi_take_to_wake(0);
- }
-
- return;
+ return bleInstruct_t.Set_RaiseToWake(value);
}
int Get_RaiseToWake(void) //获取抬婉亮屏开关
{
- return mmi_flip_wrist_switch_get();
+ return bleInstruct_t.Get_RaiseToWake();
}
void Set_SystemVolume(int value) //设置系统音量
{
- uapi_systemVolumeSet(value);
- return;
+ return bleInstruct_t.Set_SystemVolume(value);
}
int Get_SystemVolume(void) //获取系统音量
{
- return uapi_systemVolumeGet();
+ return bleInstruct_t.Get_SystemVolume();
}
void Set_CallVolume(int value) //设置通话音量
{
- uapi_callVolumeSet(value);
- return;
+ return bleInstruct_t.Set_CallVolume(value);
}
int Get_CallVolume(void) //获取通话音量
{
- return uapi_callVolumeGet();
+ return bleInstruct_t.Get_CallVolume();
}
uint8_t ble_is_ready(void)
return ble_falg;
}
-uint8_t ble_is_connect_ready(void)
-{
- return Bleconnect;
-}
-
void set_ble_falg(bool falg)
{
ble_falg=falg;
void get_health_HEART_data_path(char *path, uint8_t day,uint16_t max_size)
{
-
+
+ return bleInstruct_t.get_health_HEART_data_path(path,day,max_size);
}
void get_health_OXYGEN_data_path(char *path, uint8_t day,uint16_t max_size)
{
+ return bleInstruct_t.get_health_OXYGEN_data_path(path,day,max_size);
}
void set_weather_now_data(int humidity, char* windScale, char* textNight,int uvIndex,int temp,int iconNight)
{
-
+ //UpdateWeatherViewData();
+ return bleInstruct_t.set_weather_now_data(humidity,windScale,textNight,uvIndex,temp,iconNight);
}
void set_weather_address_data(int lat, char* atm, char* city,char* subLocality,int lon)
{
-
+ return bleInstruct_t.set_weather_address_data(lat,atm,city,subLocality,lon);
}
+// struct ONE_DAY_DATA
+// {
+// int tempMin;
+// int iconDay;
+// int fxDate;
+// char textDay[16];
+// int tempMax;
+// };
-void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char *textDay,int x)
+void set_weather_one_data(int tempMin, int iconDay,int fxDate, int tempMax, char *textDay,int count)
{
-
+ return bleInstruct_t.set_weather_one_data(tempMin,iconDay,fxDate,tempMax,textDay,count);
}
+
void ble_UpdateMainWeatherData(void)
{
-
+ // SendMsgToUIService(UI_UPDATE_WEATHER_DATA,0,nullptr,0);
}
-
void ble_add_message_index(uint32_t old_index)
{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- old_index++;
- p_ConfigModel->set_condigData_Int(OHOS::ConfigModel::CONFIGMODEL_ITEM_MESSAGE_INDEX,old_index);
+ return bleInstruct_t.ble_add_message_index(old_index);
}
-uint32_t ble_get_message_index()
-{
- OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
- return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_MESSAGE_INDEX);
-}
void SendDtfmStrNumberToCat1(char ch) // ble发送单个字符到CAT1 DTMF功能
{
- send_dtfm_number_toCat1(ch);
+ #ifdef SUPPORT_CAT1_SERVICE
+ // send_dtfm_number_toCat1(ch);
+ #endif
}
void ble_mp3_list_update(void)
{
+ // SendMsgToUIService(UI_UPDATE_MUSIC_PLAYER_LIST,0,nullptr,0);
}
bool IS_free_save_Mp3(uint32_t size)
{
- return true;
+ return bleInstruct_t.IS_free_save_Mp3(size);
}
+
+
+
#endif
#ifdef __cplusplus
#if __cplusplus
\r
#include "bts_le_gap.h"\r
#include "bts_br_gap.h"\r
-#include "battery_hal.h"\r
+// #include "battery_hal.h"\r
#include "bleService.h"\r
#include "alipay_feature.h"\r
-#include "alipay_bluetooth.h"\r
+// #include "alipay_bluetooth.h"\r
#include "bts_a2dp_sink.h"\r
#include "osal_timer.h"\r
#include "bleEvent.h"\r
#ifdef SUPPORT_HID_SERVICE\r
#include "hidService.h"\r
#endif\r
+#ifdef FACTORYTEST_SERVICE\r
#include "factorytestService.h"\r
-#include "ppgBleService.h"\r
+#endif\r
+\r
+// #include "ppgBleService.h"\r
+\r
#include "build_version.h"\r
#include "custom_runtime.h"\r
#include "custom_utils.h"\r
#define BLE_ZHIHUI_OTA_ID 0x2ae6\r
#define BLE_ZHIHUI_OTA_REPLY_ID 0x2ae7\r
\r
+#define BLE_ZHIHUI_AI_ID 0x2ae8\r
+\r
#define BLE_CHARACTERISTIC_RECV_ID 0x2ae5\r
#define BLE_CHARACTERISTIC_SNED_SHORT_ID 0x2ae3\r
\r
uint16_t data2ae0Cmd = 0;//OTA\r
uint16_t data2ae6Cmd = 0;//自定义OTA \r
uint16_t data2ae7Cmd = 0;//自定义OTA \r
-\r
+uint16_t data2ae8Cmd = 0;//AI\r
\r
#define handle_max_len 40\r
\r
BLE_CHARACTERISTIC_SNED_ANDRIOD_ID_PROPERTIES = GATT_CHARACTER_PROPERTY_BIT_WRITE|GATT_CHARACTER_PROPERTY_BIT_WRITE_NO_RSP,\r
BLE_CHARACTERISTIC_READ_BATTERY_ID_PROPERTIES = GATT_CHARACTER_PROPERTY_BIT_READ|GATT_CHARACTER_PROPERTY_BIT_NOTIFY,\r
BLE_ZHIHUI_OTA_ID_ID_PROPERTIES=GATT_CHARACTER_PROPERTY_BIT_WRITE|GATT_CHARACTER_PROPERTY_BIT_WRITE_NO_RSP,\r
-\r
+ BLE_ZHIHUI_AI_ID_ID_PROPERTIES=GATT_CHARACTER_PROPERTY_BIT_NOTIFY|GATT_CHARACTER_PROPERTY_BIT_WRITE_NO_RSP|GATT_CHARACTER_PROPERTY_BIT_WRITE|GATT_CHARACTER_PROPERTY_BIT_READ,\r
BLE_ZHIHUI_OTA_REPLY_ID_PROPERTIES=GATT_CHARACTER_PROPERTY_BIT_NOTIFY|GATT_CHARACTER_PROPERTY_BIT_WRITE_NO_RSP|GATT_CHARACTER_PROPERTY_BIT_WRITE|GATT_CHARACTER_PROPERTY_BIT_READ,\r
};\r
static uint8_t ble_adv_falg = 0;\r
}\r
}\r
\r
+static void srv_ble_add_Zhihui_AI(uint8_t server_id,uint16_t srv_handle)\r
+{\r
+ errcode_t ret = 0;\r
+ static uint8_t battery_point_val[] = {0x00, 0x00};\r
+ gatts_add_chara_info_t character;\r
+ gatts_add_desc_info_t descriptor;\r
+\r
+ bts_data_to_uuid_len2(BLE_ZHIHUI_AI_ID, &character.chara_uuid);\r
+ character.permissions = GATT_ATTRIBUTE_PERMISSION_READ | GATT_ATTRIBUTE_PERMISSION_WRITE;\r
+ character.properties = BLE_ZHIHUI_AI_ID_ID_PROPERTIES;\r
+ character.value_len = (uint16_t)sizeof(battery_point_val);\r
+ character.value = battery_point_val;\r
+\r
+ ret = gatts_add_characteristic(server_id, srv_handle, &character);\r
+ if (ret != ERRCODE_SUCC) {\r
+ // ALIPAY_PRINT_ERR(0, "gatts_add_characteristic fail, ret:%u.\r\n", ret);\r
+ }\r
+ bts_data_to_uuid_len2(BLE_UUID_CLIENT_CHARACTERISTIC_CONF, &descriptor.desc_uuid);\r
+ descriptor.permissions = GATT_ATTRIBUTE_PERMISSION_WRITE;\r
+ descriptor.value_len = (uint16_t)sizeof(battery_point_val);\r
+ descriptor.value = battery_point_val;\r
+ \r
+ ret = gatts_add_descriptor(server_id, srv_handle, &descriptor);\r
+ if (ret != ERRCODE_SUCC) {\r
+ // ALIPAY_PRINT_ERR(0, "gatts_add_descriptor fail, ret:%u.\r\n", ret);\r
+ }\r
+\r
+ bts_data_to_uuid_len2(BLE_UUID_USER_CHARACTERISTIC_CONF, &descriptor.desc_uuid);\r
+ descriptor.permissions = GATT_ATTRIBUTE_PERMISSION_WRITE | GATT_ATTRIBUTE_PERMISSION_READ;;\r
+ descriptor.value_len = (uint16_t)sizeof(battery_point_val);\r
+ descriptor.value = battery_point_val;\r
+ \r
+ ret = gatts_add_descriptor(server_id, srv_handle, &descriptor);\r
+ if (ret != ERRCODE_SUCC) {\r
+ // ALIPAY_PRINT_ERR(0, "gatts_add_descriptor fail, ret:%u.\r\n", ret);\r
+ }\r
+}\r
+\r
+\r
//用于adnriod发送消息添加特征值和描述符\r
static void srv_ble_add_chart_decr_andriod(uint8_t server_id,uint16_t srv_handle)\r
{ \r
static uint8_t g_alipay_character_buf[256] = {0};\r
static void alipay_add_chart_decr_recv_cmd1(uint8_t server_id,uint16_t srv_handle)\r
{\r
+ #ifdef AILPAY_SUPPORT\r
errcode_t ret = 0;\r
// uint16_t id = ALIPAYY_CHARACTERISTIC_ID;\r
gatts_add_chara_info_t character;\r
if (ret != ERRCODE_SUCC) {\r
ALIPAY_PRINT_ERR(0, "gatts_add_descriptor second fail, ret:%u.\r\n", ret);\r
}\r
+ #endif\r
}\r
\r
\r
uint16_t uuid_tmp = *((uint16_t*)uuid->uuid);\r
uuid_tmp = SWAP_U16(uuid_tmp);\r
if ( uuid_tmp == BLE_SERVICE_UUID \r
- || uuid_tmp == BLE_UUID_HUMAN_INTERFACE_DEVICE \r
+\r
+ // || uuid_tmp == BLE_UUID_HUMAN_INTERFACE_DEVICE \r
+#ifdef FACTORYTEST_SERVICE\r
|| uuid_tmp == BLE_UUID_ATE_FACTORYTEST_SERVICE \r
+#endif\r
+#ifdef PPG_SERVICE_SUPPORT\r
|| uuid_tmp == BLE_UUID_PPG_BLE_SERVICE \r
- || uuid_tmp == ALIPAYY_SERVICE_ID\r
+#endif\r
+\r
+ // || uuid_tmp == ALIPAYY_SERVICE_ID\r
#ifdef SUPPORT_AT_CYWEE\r
|| uuid_tmp == BLE_UUID_CYWEE_REPORT_SERVICE\r
#endif\r
bt_uuid_t ble_service_uuid = {0};\r
bts_data_to_uuid_len2(BLE_SERVICE_UUID, &ble_service_uuid);\r
\r
- bt_uuid_t hid_service_uuid = {0};\r
- bts_data_to_uuid_len2(BLE_UUID_HUMAN_INTERFACE_DEVICE, &hid_service_uuid);\r
+ // bt_uuid_t hid_service_uuid = {0};\r
+ // bts_data_to_uuid_len2(BLE_UUID_HUMAN_INTERFACE_DEVICE, &hid_service_uuid);\r
\r
- // bt_uuid_t alipay_service_uuid = {0};\r
- // bts_data_to_uuid_len2(ALIPAYY_SERVICE_ID, &alipay_service_uuid);//0x3802\r
+ // // bt_uuid_t alipay_service_uuid = {0};\r
+ // // bts_data_to_uuid_len2(ALIPAYY_SERVICE_ID, &alipay_service_uuid);//0x3802\r
\r
+#ifdef FACTORYTEST_SERVICE\r
bt_uuid_t factory_service_uuid = {0};\r
bts_data_to_uuid_len2(BLE_UUID_ATE_FACTORYTEST_SERVICE, &factory_service_uuid);\r
-\r
+#endif\r
+#ifdef PPG_SERVICE_SUPPORT\r
bt_uuid_t ppg_service_uuid = {0};\r
bts_data_to_uuid_len2(BLE_UUID_PPG_BLE_SERVICE, &ppg_service_uuid);\r
+#endif\r
\r
\r
#ifdef SUPPORT_AT_CYWEE\r
srv_ble_add_chart_decr_long_cmd(server_id,srv_handle);\r
srv_ble_add_chart_decr_recv_cmd(server_id,srv_handle);\r
srv_ble_add_chart_decr_Zhihui_ota(server_id,srv_handle);\r
+ srv_ble_add_Zhihui_AI(server_id,srv_handle);\r
+ \r
+ // srv_ble_add_chart_decr_Zhihui_AI(server_id,srv_handle);\r
srv_ble_add_ZHIHUIOTA_REPLY_chart_decr_recv_cmd(server_id,srv_handle);\r
gatts_start_service(server_id, srv_handle);\r
}\r
- if (ble_gatts_cmp_uuid(uuid, &hid_service_uuid) == true){\r
- ble_hid_add_characters_and_descriptors(server_id, srv_handle);\r
- ret = gatts_start_service(server_id, srv_handle);\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "hid service svr_ble_bt_gatts_service_add_cb ret:%d\r\n",ret);\r
- }\r
+\r
+ // if (ble_gatts_cmp_uuid(uuid, &hid_service_uuid) == true){\r
+ // ble_hid_add_characters_and_descriptors(server_id, srv_handle);\r
+ // ret = gatts_start_service(server_id, srv_handle);\r
+ // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "hid service svr_ble_bt_gatts_service_add_cb ret:%d\r\n",ret);\r
+ // }\r
+#ifdef FACTORYTEST_SERVICE\r
if (ble_gatts_cmp_uuid(uuid, &factory_service_uuid) == true){\r
ble_factorytest_add_characters_and_descriptors(server_id,srv_handle);\r
ret = gatts_start_service(server_id, srv_handle);\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "factorytest service svr_ble_bt_gatts_service_add_cb ret:%d\r\n",ret);\r
}\r
-\r
+#endif\r
+#ifdef PPG_SERVICE_SUPPORT\r
if (ble_gatts_cmp_uuid(uuid, &ppg_service_uuid) == true){\r
ble_ppgtest_add_characters_and_descriptors(server_id,srv_handle);\r
ret = gatts_start_service(server_id, srv_handle);\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ppg ble service svr_ble_bt_gatts_service_add_cb ret:%d\r\n",ret);\r
}\r
-\r
+#endif\r
#ifdef SUPPORT_AT_CYWEE\r
if (ble_gatts_cmp_uuid(uuid, &cywee_ble_service_uuid) == true){\r
ble_cywee_add_characters_and_descriptors(server_id,srv_handle);\r
\r
bt_uuid_t chara_uuid_data_2ae2 = {0};\r
bts_data_to_uuid_len2(BLE_CHARACTERISTIC_READ_BATTERY_ID, &chara_uuid_data_2ae2);\r
-\r
+#ifdef FACTORYTEST_SERVICE\r
bt_uuid_t hid_report_uuid_2a4d = {0};\r
bts_data_to_uuid_len2(BLE_UUID_REPORT, &hid_report_uuid_2a4d);\r
-\r
+#endif\r
bt_uuid_t hid_report_uuid_2ae6 = {0};\r
bts_data_to_uuid_len2(BLE_ZHIHUI_OTA_ID, &hid_report_uuid_2ae6);\r
\r
bt_uuid_t chara_uuid_data_2ae7 = {0};\r
bts_data_to_uuid_len2(BLE_ZHIHUI_OTA_REPLY_ID, &chara_uuid_data_2ae7);\r
\r
+ bt_uuid_t chara_uuid_data_2ae8 = {0};\r
+ bts_data_to_uuid_len2(BLE_ZHIHUI_AI_ID, &chara_uuid_data_2ae8);\r
+\r
+ if(ble_gatts_cmp_uuid(uuid, &chara_uuid_data_2ae8))\r
+ {\r
+ if(data2ae8Cmd==0)\r
+ {\r
+ data2ae8Cmd=result->value_handle;\r
+ }\r
+ Is_value_handle[handle_num]=result->value_handle;\r
+ handle_num++;\r
+ }\r
+\r
if(ble_gatts_cmp_uuid(uuid, &chara_uuid_data_2ae7))\r
{\r
if(data2ae7Cmd==0)\r
{\r
data2ae7Cmd=result->value_handle;\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "data2ae7Cmd");\r
}\r
Is_value_handle[handle_num]=result->value_handle;\r
handle_num++;\r
handle_num++;\r
// = result->value_handle;\r
}\r
+ #ifdef FACTORYTEST_SERVICE\r
if (ble_gatts_cmp_uuid(uuid, &hid_report_uuid_2a4d) == true) {\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "result->hid_report_uuid_2a4d %d\r\n",result->value_handle);\r
if(g_hid_server_handle == 0){\r
ble_factorytest_store_ota_recv_handle(result->value_handle) ;\r
// }\r
}\r
-\r
+ #endif\r
+ #ifdef FACTORYTEST_SERVICE\r
bt_uuid_t factorytest_ota_report_uuid = {0};\r
bts_data_to_uuid_len2(BLE_UUID_OTA_RX, &factorytest_ota_report_uuid);\r
\r
ble_factorytest_store_ota_report_handle(result->value_handle);\r
// }\r
}\r
+ #endif \r
\r
-\r
+#ifdef PPG_SERVICE_SUPPORT\r
bt_uuid_t ppgtest_report_uuid = {0};\r
bts_data_to_uuid_len2(BLE_UUID_PPG_NOTIFY, &ppgtest_report_uuid);\r
if (ble_gatts_cmp_uuid(uuid, &ppgtest_report_uuid) == true) {\r
handle_num++;\r
ble_ppgtest_store_report_handle(result->value_handle);\r
}\r
- \r
+#endif\r
#ifdef SUPPORT_AT_CYWEE\r
bt_uuid_t cywee_report_uuid = {0};\r
bts_data_to_uuid_len2(BLE_UUID_CYWEE_RX, &cywee_report_uuid);\r
data_info.value = data;\r
data_info.value_len = data_len;\r
if (g_ble_conn_id == 0)\r
- return 0;\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_ble_conn_id");\r
+ // return 0;\r
+ }\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_ble_conn_id %d g_ble_conn_id %d",g_ble_server_id,g_ble_conn_id);\r
+ errcode_t ret = gatts_notify_indicate(g_ble_server_id, g_ble_conn_id, &data_info);\r
+ if(ret!=ERRCODE_SUCC)\r
+ {\r
+ msleep(50);\r
+ ret=gatts_notify_indicate(g_ble_server_id, g_ble_conn_id, &data_info);\r
+ if(ret!=ERRCODE_SUCC)\r
+ {\r
+ msleep(100);\r
+ ret=gatts_notify_indicate(g_ble_server_id, g_ble_conn_id, &data_info);\r
+\r
+ if(ret!=ERRCODE_SUCC)\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gatts_notify_indicate ret:0x%x. serverid:%u,conn_id:%u,handle:%u.data_len:%d", ret, g_ble_server_id,\r
+ g_ble_conn_id, g_ble_server_handle,data_len);\r
+ }\r
+ }\r
+ return ret; \r
+}\r
+\r
+errcode_t svr_ble_bt_gatts_noyify_AI(uint8_t *data, uint16_t data_len)//这里是设备数据上报给app手机端\r
+{\r
+ gatts_ntf_ind_t data_info;\r
+ data_info.attr_handle = data2ae8Cmd;\r
+ data_info.value = data;\r
+ data_info.value_len = data_len;\r
+ if (g_ble_conn_id == 0)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_ble_conn_id");\r
+ // return 0;\r
+ }\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_ble_conn_id %d g_ble_conn_id %d",g_ble_server_id,g_ble_conn_id);\r
errcode_t ret = gatts_notify_indicate(g_ble_server_id, g_ble_conn_id, &data_info);\r
if(ret!=ERRCODE_SUCC)\r
{\r
ret=gatts_notify_indicate(g_ble_server_id, g_ble_conn_id, &data_info);\r
\r
if(ret!=ERRCODE_SUCC)\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "gatts_notify_indicate ret:0x%x. serverid:%u,conn_id:%u,handle:%u.data_len:%d", ret, g_ble_server_id,\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gatts_notify_indicate ret:0x%x. serverid:%u,conn_id:%u,handle:%u.data_len:%d", ret, g_ble_server_id,\r
g_ble_conn_id, g_ble_server_handle,data_len);\r
}\r
}\r
#ifdef SUPPORT_HID_SERVICE\r
// ble_hid_server_init();\r
#endif\r
+ #ifdef AILPAY_SUPPORT\r
svr_alipay_bluetooth_init(g_ble_server_id);\r
+ #endif\r
\r
ble_factory_server_init(g_ble_server_id);\r
\r
return;\r
}\r
\r
+static unsigned long g_ble_Ai_record_queue = 0xFFFFFFFF;\r
+static uint8_t g_ble_Ai_record_queue_created = 0;\r
+\r
+void create_Ai_record_queue(void)\r
+{\r
+ if (osal_msg_queue_create("Ai_record_queue", BLESRV_APP_BOARD_MSG_COUNT, &g_ble_Ai_record_queue,\r
+ 0, MAX_BUF_LEN) != ERRCODE_SUCC)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"[blesrv][service] app create mail fail g_blesrv_queue:%d\n",g_ble_Ai_record_queue);\r
+ g_ble_Ai_record_queue_created = 0;\r
+ }else{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"[blesrv][service] app create mail success g_blesrv_queue:%d\n",g_ble_Ai_record_queue);\r
+ g_ble_Ai_record_queue_created = 1;\r
+ }\r
+\r
+}\r
+\r
+\r
+#define Ai_TEST 0\r
+static uint32_t AI_data_count=0;\r
+\r
+\r
+static uint8_t AI_interval=5;\r
+\r
+void set_AI_interval(uint8_t data)\r
+{\r
+ AI_interval=data;\r
+}\r
+\r
+void send_Ai_record(uint16_t len,uint8_t *data,uint32_t count)\r
+{\r
+ uint8_t ai_buf[SDK_BLE_MTU_MAX]={0};\r
+ if(count)\r
+ {\r
+ \r
+ memcpy_s(ai_buf,SDK_BLE_MTU_MAX,&count,4);\r
+ memcpy_s(&ai_buf[4],SDK_BLE_MTU_MAX-4,data,len);\r
+ len+=4;\r
+ }\r
+ else\r
+ {\r
+ memcpy_s(ai_buf,SDK_BLE_MTU_MAX,data,len);\r
+ }\r
+ \r
+ svr_ble_bt_gatts_noyify_AI(ai_buf,len);\r
+\r
+ LOS_Msleep(AI_interval+get_ble_interval());\r
+}\r
+\r
+\r
+static void blesrvAi_send_service_task(void const *arg)\r
+{\r
+ unused(arg);\r
+ int32_t ret;\r
+ blesrv_custom_cmd_t mail={0};\r
+ uint32_t msgsize = MAX_BUF_LEN;\r
+\r
+ #if Ai_TEST\r
+ FILE* fp= fopen("user/airecord.pcm","wb+");\r
+ #endif\r
+ while (1)\r
+ {\r
+ ret = osal_msg_queue_read_copy(g_ble_Ai_record_queue, (void *)&mail, &msgsize,\r
+ OSAL_MSGQ_WAIT_FOREVER);\r
+ if (ret != OSAL_SUCCESS)\r
+ {\r
+ continue;\r
+ }\r
+ \r
+\r
+ uint8_t *p_msgbuf = (mail.msg_data);\r
+ uint16_t server_handle = mail.service_handle;\r
+ uint32_t msg_len = mail.msg_len;\r
+\r
+ if(server_handle==1 || server_handle==2)\r
+ {\r
+ AI_data_count=0;\r
+ }\r
+ else\r
+ {\r
+ AI_data_count++;\r
+ }\r
+\r
+ #if Ai_TEST\r
+ fwrite(fp,1,mail.msg_len,mail.msg_data);\r
+ #endif\r
+ // if(get_ble_connect())\r
+ \r
+\r
+ if(mail.msg_data && mail.msg_len!=0)\r
+ send_Ai_record(mail.msg_len,mail.msg_data,AI_data_count);\r
+ \r
+\r
+ if(mail.msg_data)\r
+ {\r
+ free(mail.msg_data);\r
+ mail.msg_data = NULL;\r
+ }\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"ble_recv:end\r\n");\r
+ }\r
+}\r
+\r
+\r
+static blesrv_custom_cmd_t g_blesrv_mail={0};\r
+\r
+errcode_t uapi_Ai_send_service_init(void)\r
+{\r
+\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"uapi_blesrv_service_init !\r\n");\r
+ app_task_definition_t taskcfg = {0};\r
+ taskcfg.create_queue_handle = create_Ai_record_queue;\r
+ taskcfg.attr.name = "Ai_record_queue_service";\r
+ taskcfg.attr.priority = osPriorityNormal;\r
+ // taskcfg.attr.stack_size = BLESRV_APP_BOARD_TASK_SIZE;\r
+ taskcfg.attr.stack_size = 0x1500;\r
+ taskcfg.func = blesrvAi_send_service_task;\r
+ taskcfg.use_mem = USE_EXTEND_MEM;\r
+\r
+ g_blesrv_mail.msg_len=0;\r
+ g_blesrv_mail.msg_data=NULL;\r
+\r
+\r
+ errcode_t ret = uapi_create_osThread_custom(&taskcfg);\r
+ if (ret != ERRCODE_SUCC)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"create blesrv_service failed %d!\r\n", ret);\r
+ return ERRCODE_FAIL;\r
+ }\r
+\r
+ return ERRCODE_SUCC;\r
+}\r
+\r
+\r
+uint32_t send_msg_data_into_Ai_msg_queue_count=0;\r
+\r
+\r
+void AI_data_assembly(uint8_t type,uint8_t *buf,uint8_t aitype)\r
+{\r
+ \r
+ memset_s(buf,ble_nus_max_data_len,0,19);\r
+ // 设置消息头部信息\r
+ buf[0] = 0x72; // 消息头\r
+ buf[1] = 0x08; // 类型\r
+ if(type)\r
+ buf[2] = 0x01; // 类型ID\r
+ else\r
+ buf[2] = 0x02; // 类型ID\r
+ uint32_t temp_data=1;\r
+ memcpy(buf + 3, &temp_data, 4); // 总包数\r
+ memcpy(buf + 7, &temp_data, 4); // 总数据长度\r
+ memcpy(buf + 11, &temp_data, 4); // 数据包ID\r
+ memcpy(buf + 15, &temp_data, 2); // 包数据长度\r
+ \r
+ buf[17] = aitype;\r
+ buf[18] = Calculate_CRC_AI(buf,18);; // 计算CRC\r
+}\r
+\r
+static uint8_t g_blesrv_mail_flag=0;\r
+\r
+\r
+\r
+int send_msg_data_into_Ai_msg_queue(void *buff,uint16_t len,uint8_t type)\r
+{\r
+ blesrv_custom_cmd_t blesrv_mail={0};\r
+ uint32_t ret ;\r
+ if( g_blesrv_queue_created == 0) return ERRCODE_FAIL;\r
+ if (buff == NULL) return ERRCODE_FAIL;\r
+\r
+ uint32_t sendlen = sizeof(blesrv_custom_cmd_t);\r
+ uint32_t singlebuflen= ble_nus_max_data_len-20;\r
+ blesrv_mail.msg_data=0;\r
+\r
+ if(len<=singlebuflen)\r
+ {\r
+ if(type==1)\r
+ {\r
+ blesrv_mail.service_handle = 1;\r
+ blesrv_mail.msg_len = len;\r
+ blesrv_mail.msg_data = (uint8_t*)malloc(len);\r
+\r
+ if(blesrv_mail.msg_data==NULL)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ memcpy_s((void *)(blesrv_mail.msg_data),len,buff,len);\r
+\r
+ ret = osal_msg_queue_write_copy(g_ble_Ai_record_queue, (void *)&blesrv_mail, sendlen , 0);\r
+ if (ret != OSAL_SUCCESS)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"len<=singlebuflen Error blesrv Check send failed! err=0x%X %d! \r\n", ret,send_msg_data_into_Ai_msg_queue_count);\r
+ }\r
+\r
+ if(g_blesrv_mail.msg_data)\r
+ {\r
+ free(g_blesrv_mail.msg_data);\r
+ g_blesrv_mail.msg_data=NULL;\r
+ g_blesrv_mail.msg_len=0;\r
+ }\r
+ return OSAL_SUCCESS;\r
+\r
+ }\r
+ else if(type==2)\r
+ {\r
+\r
+ blesrv_custom_cmd_t blesrv_mail_end={0};\r
+\r
+ if(g_blesrv_mail.msg_len!=0 && g_blesrv_mail.msg_data!=NULL)\r
+ {\r
+ blesrv_mail_end.msg_len=g_blesrv_mail.msg_len;\r
+ blesrv_mail_end.msg_data=malloc(g_blesrv_mail.msg_len);\r
+ if(blesrv_mail_end.msg_data==NULL)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+\r
+ memcpy_s( blesrv_mail_end.msg_data,singlebuflen,g_blesrv_mail.msg_data,g_blesrv_mail.msg_len);\r
+ free(g_blesrv_mail.msg_data);\r
+ g_blesrv_mail.msg_data=NULL;\r
+ g_blesrv_mail.msg_len=0;\r
+\r
+ ret = osal_msg_queue_write_copy(g_ble_Ai_record_queue, (void *)&blesrv_mail_end, sendlen , 0);\r
+ if (ret != OSAL_SUCCESS)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"len<=singlebuflen Error blesrv Check send failed! err=0x%X %d! \r\n", ret,send_msg_data_into_Ai_msg_queue_count);\r
+ }\r
+ }\r
+ \r
+\r
+ blesrv_mail.service_handle = 2;\r
+ blesrv_mail.msg_len = len;\r
+ blesrv_mail.msg_data = (uint8_t*)malloc(len);\r
+\r
+ if(blesrv_mail.msg_data==NULL)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ memcpy_s((void *)(blesrv_mail.msg_data),len,buff,len);\r
+\r
+ ret = osal_msg_queue_write_copy(g_ble_Ai_record_queue, (void *)&blesrv_mail, sendlen , 0);\r
+ if (ret != OSAL_SUCCESS)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"len<=singlebuflen Error blesrv Check send failed! err=0x%X %d! \r\n", ret,send_msg_data_into_Ai_msg_queue_count);\r
+ }\r
+ return OSAL_SUCCESS;\r
+ }\r
+ //以下为文件数据处理\r
+ if(g_blesrv_mail.msg_len+len<singlebuflen)\r
+ {\r
+ if (g_blesrv_mail.msg_len!=0 || g_blesrv_mail.msg_data!=NULL)\r
+ {\r
+ // g_blesrv_mail.msg_data=realloc( g_blesrv_mail.msg_data,g_blesrv_mail.msg_len+len);\r
+ uint8_t* temp_g_blesrv_mail_msg_data=malloc(g_blesrv_mail.msg_len+len);\r
+ if(temp_g_blesrv_mail_msg_data==NULL)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ memcpy_s(temp_g_blesrv_mail_msg_data+ g_blesrv_mail.msg_len,singlebuflen,buff,len);\r
+ memcpy_s(temp_g_blesrv_mail_msg_data,singlebuflen,g_blesrv_mail.msg_data,g_blesrv_mail.msg_len);\r
+\r
+ free(g_blesrv_mail.msg_data);\r
+ g_blesrv_mail.msg_data=temp_g_blesrv_mail_msg_data;\r
+ g_blesrv_mail.msg_len+=len;\r
+ }\r
+ else\r
+ {\r
+ g_blesrv_mail.msg_data=malloc(len);\r
+ if(g_blesrv_mail.msg_data==NULL)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+\r
+ memcpy_s(g_blesrv_mail.msg_data+ g_blesrv_mail.msg_len,singlebuflen,buff,len);\r
+ g_blesrv_mail.msg_len=len;\r
+ }\r
+ \r
+ \r
+ return OSAL_SUCCESS;\r
+ }\r
+ else if(g_blesrv_mail.msg_len+len==singlebuflen)\r
+ {\r
+ // g_blesrv_mail.msg_data=realloc( g_blesrv_mail.msg_data,g_blesrv_mail.msg_len+len);\r
+\r
+ blesrv_mail.msg_len = singlebuflen;\r
+ blesrv_mail.msg_data = (uint8_t*)malloc(singlebuflen);\r
+ if(blesrv_mail.msg_data==NULL)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+\r
+ memcpy_s( blesrv_mail.msg_data,singlebuflen,g_blesrv_mail.msg_data,g_blesrv_mail.msg_len);\r
+ memcpy_s( blesrv_mail.msg_data+ g_blesrv_mail.msg_len,singlebuflen,buff,len);\r
+\r
+ g_blesrv_mail.msg_len=0;\r
+ free( g_blesrv_mail.msg_data);\r
+ g_blesrv_mail.msg_data=NULL;\r
+\r
+ ret = osal_msg_queue_write_copy(g_ble_Ai_record_queue, (void *)&blesrv_mail, sendlen , 0);\r
+ if (ret != OSAL_SUCCESS)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"len<=singlebuflen Error blesrv Check send failed! err=0x%X %d! \r\n", ret,send_msg_data_into_Ai_msg_queue_count);\r
+ }\r
+ return OSAL_SUCCESS; \r
+\r
+ }\r
+ else\r
+ {\r
+ if(g_blesrv_mail.msg_len!=0 && g_blesrv_mail.msg_data!=NULL)\r
+ {\r
+ blesrv_mail.msg_len=g_blesrv_mail.msg_len;\r
+ blesrv_mail.msg_data=malloc(g_blesrv_mail.msg_len);\r
+ if(blesrv_mail.msg_data==NULL)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ \r
+ memcpy_s( blesrv_mail.msg_data,singlebuflen,g_blesrv_mail.msg_data,g_blesrv_mail.msg_len);\r
+ free(g_blesrv_mail.msg_data);\r
+\r
+ ret = osal_msg_queue_write_copy(g_ble_Ai_record_queue, (void *)&blesrv_mail, sendlen , 0);\r
+ if (ret != OSAL_SUCCESS)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"len<=singlebuflen Error blesrv Check send failed! err=0x%X %d! \r\n", ret,send_msg_data_into_Ai_msg_queue_count);\r
+ }\r
+\r
+ }\r
+ \r
+ g_blesrv_mail.msg_len=len;\r
+ g_blesrv_mail.msg_data=malloc(len);\r
+ memcpy_s( g_blesrv_mail.msg_data,singlebuflen,buff,len);\r
+ \r
+ \r
+ return OSAL_SUCCESS; \r
+ }\r
+\r
+ }\r
+ else\r
+ {\r
+ uint8_t count=len/singlebuflen;\r
+ if(len%singlebuflen)\r
+ {\r
+ count++;\r
+ }\r
+ uint16_t residue_len=len;\r
+ for(int i=0;i<count;i++)\r
+ {\r
+ blesrv_mail.service_handle = 0;\r
+ if(residue_len>=singlebuflen)\r
+ {\r
+ blesrv_mail.msg_len = singlebuflen;\r
+ blesrv_mail.msg_data = (uint8_t*)malloc(singlebuflen);\r
+ \r
+ if(blesrv_mail.msg_data==NULL)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ memcpy_s((void *)(blesrv_mail.msg_data),singlebuflen,buff+i*singlebuflen,singlebuflen);\r
+ residue_len-=singlebuflen;\r
+ }\r
+ else if(len%singlebuflen)\r
+ {\r
+ blesrv_mail.msg_len = len%singlebuflen;\r
+ blesrv_mail.msg_data = (uint8_t*)malloc( len%singlebuflen);\r
+ \r
+ if(blesrv_mail.msg_data==NULL)\r
+ {\r
+ return ERRCODE_FAIL;\r
+ }\r
+ memcpy_s((void *)(blesrv_mail.msg_data),len%singlebuflen,buff+i*singlebuflen,len%singlebuflen);\r
+ }\r
+ \r
+\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"g_blesrv_queue:%d ble_recv:mail.msg_data %X %02X %02X %02X msg_data:%02X %02X %02X\r\n",\r
+ g_ble_Ai_record_queue,\r
+ blesrv_mail.msg_data,\r
+ blesrv_mail.msg_data[0],\r
+ blesrv_mail.msg_data[1],\r
+ blesrv_mail.msg_data[2],\r
+ msg_data[0],\r
+ msg_data[1],\r
+ msg_data[2]\r
+ );\r
+ ret = osal_msg_queue_write_copy(g_ble_Ai_record_queue, (void *)&blesrv_mail, sendlen , 0);\r
+ if (ret != OSAL_SUCCESS)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"else Error blesrv Check send failed! err=0x%X %d %d! \r\n", ret,send_msg_data_into_Ai_msg_queue_count,len);\r
+ }\r
+ }\r
+ }\r
+ \r
+ \r
+ return ret;\r
+}\r
+\r
+\r
\r
#ifdef __cplusplus\r
}\r