#if 0 #include "lvgl.h" #include "img_def.h" #include "lv_common_function.h" //================================================================================= // dsp dummy function enum ipc_user_msg_type_t { IPC_MSG_M3_INPUT = 12, }; typedef void (*ipc_tx_callback)(uint8_t chn); bool audio_algorithm_enable = false; void ipc_msg_with_payload_send(enum ipc_user_msg_type_t msg, void *header, uint16_t header_length, uint8_t *payload, uint16_t payload_length, ipc_tx_callback callback) { } void dsp_post_operate_to_m3(uint8_t op_cmd,uint8_t *buffer,uint16_t len) { } uint8_t *pvPortMalloc(uint32_t size) { return NULL; } void vPortFree(void *buff) { } void co_delay_100us(uint8_t delay) { } //================================================================================== #define DSP_FW_VERSION 122 extern ui_entry cont_backup; static uint8_t left_backup; //cm3 input ipc_daily_data_t sync_cm3_data; sleep_history_stru sleep_history_data = {0}; uint8_t sportheartrate_historydata[72] = {0}; uint8_t heartrate_historydata[48] = {0}; //---------------------------------------------- ancs_msg_t msglist; call_record_list_t record_list; uint8_t call_context[200]; uint8_t call_list[200]; uint8_t book_list[10][200]; //================================================================================== uint32_t CalcWeekday(stTime_type time) { char century_code, year_code, month_code, day_code; int week = 0; century_code = year_code = month_code = day_code = 0; if (time.ucMonth == 1 || time.ucMonth == 2) { century_code = (time.ucYear - 1) / 100; year_code = (time.ucYear - 1) % 100; month_code = time.ucMonth + 12; day_code = time.ucDate; } else { century_code = time.ucYear / 100; year_code = time.ucYear % 100; month_code = time.ucMonth; day_code = time.ucDate; } /* ���ݲ��չ�ʽ�������� */ week = year_code + year_code / 4 + century_code / 4 - 2 * century_code + 26 * (month_code + 1) / 10 + day_code - 1; week = week > 0 ? (week % 7) : ((week % 7) + 7); return week; } //================================================================================== __attribute__((section("resource_section"))) const pri_ui_entry style_func_arry[] = { }; __attribute__((section("resource_section"))) const uint8_t style_func_id[] = { }; //================================================================ //================================================================ bool fr_app_UI_return_flag(void) { } //------------------------------------ //void lv_ui_node_add(lv_obj_t *node_parent,lv_obj_t * obj_scroll,ui_func cur,ui_func next,bool scroll_dir) //{ // //NULL //} //=================================================================== //=================================================================== // do op & data interface here! // data // time uint16_t dsp_get_system_time_year(void) { return sync_cm3_data.time.ucYear; } uint8_t dsp_get_system_time_month(void) { return sync_cm3_data.time.ucMonth; } uint8_t dsp_get_system_time_date(void) { return sync_cm3_data.time.ucDate; } uint8_t dsp_get_system_time_week(void) { return CalcWeekday(sync_cm3_data.time); } uint8_t dsp_get_system_time_hour(void) { uint8_t cur_Hour; if (sync_cm3_data.ui_info.time_format) { if (sync_cm3_data.time.ucHour < 12) { if (sync_cm3_data.time.ucHour == 0) { cur_Hour = 12; } else { cur_Hour = sync_cm3_data.time.ucHour % 12; } } else { if (sync_cm3_data.time.ucHour == 12) cur_Hour = 12; else cur_Hour = sync_cm3_data.time.ucHour - 12; } } else { cur_Hour = sync_cm3_data.time.ucHour; } return cur_Hour; } uint8_t dsp_get_system_time_minute(void) { return sync_cm3_data.time.ucMinute; } uint8_t dsp_get_system_time_second(void) { return sync_cm3_data.time.ucSecond; } // cm3 fw version uint8_t dsp_get_system_cm3_ver(void) { return sync_cm3_data.m3_version_new; } // dsp fw version uint8_t dsp_get_system_dsp_ver(void) { return DSP_FW_VERSION; } // MAC address uint8_t *dsp_get_system_mac_address(void) { return sync_cm3_data.ble_address; } void dsp_set_system_Wirst_Awake(uint8_t state) { uint8_t data = state; dsp_post_operate_to_m3(DSP_EVT_WIRST, &data, 1); } uint8_t dsp_get_system_Wirst_Awake(void) { return sync_cm3_data.motion; } // no disturb void dsp_set_system_no_disturb(uint8_t state) { uint8_t data = state; dsp_post_operate_to_m3(DSP_EVT_DISTURB_CONTROL, &data, 1); } uint8_t dsp_get_system_no_disturb(void) { return sync_cm3_data.disturb_state; } // panel power on time void dsp_set_system_panel_on_time(uint8_t value) { } uint8_t dsp_get_system_panel_on_time(void) { return 0; } // language void dsp_set_system_language(uint8_t id) { sync_cm3_data.ui_info.ui_language = id; dsp_ipc_cmd = M3_DRIVER_DAILY_DATA; ipc_msg_with_payload_send(IPC_MSG_M3_INPUT, &dsp_ipc_cmd, 1, (uint8_t *)&sync_cm3_data, sizeof(ipc_daily_data_t), NULL); } uint8_t dsp_get_system_language(void) { return sync_cm3_data.ui_info.ui_language; } // backlight void dsp_set_system_backlight(uint8_t id) { uint8_t data = id; dsp_post_operate_to_m3(DSP_EVT_BRIGHT, &data, 1); } uint8_t dsp_get_system_backlight(void) { return sync_cm3_data.ui_info.ui_backlight_brightness; } // backlight ON static uint8_t display_on = 0; void dsp_set_system_backlight_on(uint8_t id) { display_on = id; } uint8_t dsp_get_system_backlight_on(void) { return display_on; } // clock_id void dsp_set_system_watch_face(uint8_t id) { sync_cm3_data.ui_info.ui_clock_id = id; dsp_ipc_cmd = M3_DRIVER_DAILY_DATA; ipc_msg_with_payload_send(IPC_MSG_M3_INPUT, &dsp_ipc_cmd, 1, (uint8_t *)&sync_cm3_data, sizeof(ipc_daily_data_t), NULL); } uint8_t dsp_get_system_watch_face(void) { return sync_cm3_data.ui_info.ui_clock_id; } // menu sytle void dsp_set_system_menu_style(uint8_t id) { sync_cm3_data.ui_info.ui_menu_style_id = id; dsp_ipc_cmd = M3_DRIVER_DAILY_DATA; ipc_msg_with_payload_send(IPC_MSG_M3_INPUT, &dsp_ipc_cmd, 1, (uint8_t *)&sync_cm3_data, sizeof(ipc_daily_data_t), NULL); } uint8_t dsp_get_system_menu_style(void) { return sync_cm3_data.ui_info.ui_menu_style_id; } // music void dsp_set_system_volume_media(uint8_t value) { uint8_t data = value; sync_cm3_data.bt_volume_media = value; dsp_post_operate_to_m3(DSP_EVT_SET_BT_VALUME, &data, 1); } uint8_t dsp_get_system_volume_media(void) { return sync_cm3_data.bt_volume_media; } void dsp_set_system_volume_hfp(uint8_t value) { uint8_t data = value; sync_cm3_data.bt_volume_hfp = value; dsp_post_operate_to_m3(DSP_EVT_SET_BT_VALUME, &data, 1); } uint8_t dsp_get_system_volume_hfp(void) { return sync_cm3_data.bt_volume_hfp; } void dsp_set_system_volume_tone(uint8_t value) { uint8_t data = value; sync_cm3_data.bt_volume_tone = value; dsp_post_operate_to_m3(DSP_EVT_SET_BT_VALUME, &data, 1); } uint8_t dsp_get_system_volume_tone(void) { return sync_cm3_data.bt_volume_tone; } uint8_t *dsp_get_system_music_context(void) { return NULL; } uint8_t dsp_get_system_music_state(void) { return sync_cm3_data.ui_info.ui_music_state; } // ble state uint8_t dsp_get_system_ble_state(void) { return sync_cm3_data.ble_state; } // bt state uint8_t dsp_get_system_bt_state(void) { return sync_cm3_data.bt_state; } uint8_t dsp_get_system_bt_on_off(void) { return sync_cm3_data.bt_on_off; } uint8_t dsp_get_system_ble_on_off(void) { return sync_cm3_data.ble_on_off; } // baterry uint8_t dsp_get_system_battery_state(void) { return sync_cm3_data.battery.state; } uint8_t dsp_get_system_battery_value(void) { return sync_cm3_data.battery.battery_value % 6; } uint32_t dsp_get_system_step(void) { return sync_cm3_data.step; } uint32_t dsp_get_system_calorie(void) { return sync_cm3_data.calorie; } uint32_t dsp_get_system_distance(void) { return sync_cm3_data.distance; } uint8_t dsp_get_system_hrm(void) { return sync_cm3_data.bpm; } uint8_t dsp_get_system_hrm_warning_h(void) { return sync_cm3_data.bpm_warning_h; } uint8_t dsp_get_system_hrm_warning_l(void) { return sync_cm3_data.bpm_warning_l; } uint8_t dsp_get_system_o2_sbp(void) { return sync_cm3_data.sbp; } uint8_t dsp_get_system_o2_dbp(void) { return sync_cm3_data.dbp; } uint8_t dsp_get_system_o2_spo2(void) { return sync_cm3_data.spo2; } uint8_t dsp_get_system_blood_h(void) { return sync_cm3_data.blood_h; } uint8_t dsp_get_system_blood_l(void) { return sync_cm3_data.blood_l; } uint8_t *dsp_get_system_hrm_distory(void) { return NULL; } uint8_t *dsp_get_system_sleep_distory(void) { return NULL; } uint16_t dsp_get_system_sleep_total_time(void) { return sync_cm3_data.sleep_total_time; } uint16_t dsp_get_system_sleep_d_time(void) { return sync_cm3_data.deep_sleep_time; } uint16_t dsp_get_system_sleep_l_time(void) { return sync_cm3_data.light_sleep_time; } uint8_t dsp_get_system_day1_weather_type(void) { if (sync_cm3_data.day1.type > 9) { return 0; } else return sync_cm3_data.day1.type; } int16_t centigrade2fahrenhite(int16_t centigrade_data) { return (centigrade_data * 18 + 320) / 10; } int16_t dsp_get_system_day1_weather_temp(void) { if (sync_cm3_data.ui_info.temperature_format) return centigrade2fahrenhite(sync_cm3_data.day1.cur_tempture); else return sync_cm3_data.day1.cur_tempture; } int16_t dsp_get_system_day1_weather_temp_m(void) { if (sync_cm3_data.ui_info.temperature_format) return centigrade2fahrenhite(sync_cm3_data.day1.h_tempture); else return sync_cm3_data.day1.h_tempture; } int16_t dsp_get_system_day1_weather_temp_n(void) { if (sync_cm3_data.ui_info.temperature_format) return centigrade2fahrenhite(sync_cm3_data.day1.l_tempture); else return sync_cm3_data.day1.l_tempture; } uint8_t dsp_get_system_day2_weather_type(void) { if (sync_cm3_data.day2.type > 9) { return 0; } else return sync_cm3_data.day2.type; } int16_t dsp_get_system_day2_weather_temp(void) { if (sync_cm3_data.ui_info.temperature_format) return centigrade2fahrenhite(sync_cm3_data.day2.cur_tempture); else return sync_cm3_data.day2.cur_tempture; } int16_t dsp_get_system_day2_weather_temp_m(void) { if (sync_cm3_data.ui_info.temperature_format) return centigrade2fahrenhite(sync_cm3_data.day2.h_tempture); else return sync_cm3_data.day2.h_tempture; } int16_t dsp_get_system_day2_weather_temp_n(void) { if (sync_cm3_data.ui_info.temperature_format) return centigrade2fahrenhite(sync_cm3_data.day2.l_tempture); else return sync_cm3_data.day2.l_tempture; } uint8_t dsp_get_system_day3_weather_type(void) { if (sync_cm3_data.day3.type > 9) { return 0; } else return sync_cm3_data.day3.type; } int16_t dsp_get_system_day3_weather_temp(void) { if (sync_cm3_data.ui_info.temperature_format) return centigrade2fahrenhite(sync_cm3_data.day3.cur_tempture); else return sync_cm3_data.day3.cur_tempture; } int16_t dsp_get_system_day3_weather_temp_m(void) { if (sync_cm3_data.ui_info.temperature_format) return centigrade2fahrenhite(sync_cm3_data.day3.h_tempture); else return sync_cm3_data.day3.h_tempture; } int16_t dsp_get_system_day3_weather_temp_n(void) { if (sync_cm3_data.ui_info.temperature_format) return centigrade2fahrenhite(sync_cm3_data.day3.l_tempture); else return sync_cm3_data.day3.l_tempture; } // msg uint8_t dsp_get_system_msg_total(void) { return msglist.msg_tatol; } void dsp_get_system_msg_time(uint8_t msg_id, uint8_t *buffer) { uint8_t time[32]; memset(buffer, 0, 32); memset(time, 0, 32); if (msg_id >= msglist.msg_tatol) { return; } uint8_t *p_data = &msglist.fifo[msg_id]; memcpy(buffer, p_data + 2, 15); if (buffer[0] != 0) { time[0] = buffer[0]; time[1] = buffer[1]; time[2] = buffer[2]; time[3] = buffer[3]; time[4] = '/'; time[5] = buffer[4]; time[6] = buffer[5]; time[7] = '/'; time[8] = buffer[6]; time[9] = buffer[7]; time[10] = ' '; time[11] = buffer[9]; time[12] = buffer[10]; time[13] = ':'; time[14] = buffer[11]; time[15] = buffer[12]; memcpy(buffer, time, 16); } } uint8_t dsp_get_system_msg_type(uint8_t msg_id) { uint8_t *p_data = &msglist.fifo[msg_id]; return p_data[0]; } void dsp_get_system_msg_title(uint8_t msg_id, uint8_t *buffer) { // memset(buffer, 0, 128); // printf("msg_id:%d,msg_tatol:%d\r\n",msg_id,msglist.msg_tatol); if (msg_id >= msglist.msg_tatol) { printf("get msg title error!!\r\n"); return; } uint8_t *p_data = &msglist.fifo[msg_id]; uint8_t title_len = p_data[17]; memset(buffer, 0, 128); memcpy(buffer, p_data + 18, title_len); } void dsp_get_system_msg_context(uint8_t msg_id, uint8_t *buffer) { memset(buffer, 0, 256 * 2); if (msg_id >= msglist.msg_tatol) { return; } uint8_t *p_data = &msglist.fifo[msg_id]; uint8_t title_len = p_data[17]; uint8_t context_len = p_data[17 + title_len + 1]; memcpy(buffer, p_data + 19 + title_len, context_len); } // sport uint32_t dsp_get_system_sport_time(void) { return sync_cm3_data.sport.sport_time; } uint8_t dsp_get_system_sport_type(void) { return sync_cm3_data.sport.sport_type; } uint16_t dsp_get_system_sport_speed(void) { return sync_cm3_data.sport.speed; } uint16_t dsp_get_system_sport_step(void) { return sync_cm3_data.sport.step; } uint16_t dsp_get_system_sport_carlorie(void) { return sync_cm3_data.sport.carloie; } uint16_t dsp_get_system_sport_distcace(void) { if (dsp_get_system_distance_format()) return sync_cm3_data.sport.distance * 621 / 1000; else return sync_cm3_data.sport.distance; } uint8_t dsp_get_system_sport_state(void) { return sync_cm3_data.sport.state; } uint8_t dsp_get_system_sport_hrm(void) { return sync_cm3_data.sport.hrm; } uint8_t dsp_get_system_sport_hrm_max(void) { return sync_cm3_data.sport.max_hrm; } uint8_t dsp_get_system_sport_hrm_min(void) { return sync_cm3_data.sport.min_hrm; } uint8_t dsp_get_system_sport_oxygen(void) { return sync_cm3_data.sport.oxygen; } uint8_t dsp_get_system_panel_show_time(void) { return sync_cm3_data.light_auto_close_time; } uint8_t dsp_set_system_panel_show_time(uint8_t time) { uint8_t data = time; dsp_post_operate_to_m3(DSP_EVT_LIGHT_TIME, &data, 1); } uint32_t dsp_get_system_sport_total_time(void) { return sync_cm3_data.sport.sport_total_time; } uint16_t dsp_get_system_sport_total_carlorie(void) { return sync_cm3_data.sport.total_carloie; } uint8_t dsp_get_system_sport_avg_hrm(void) { return sync_cm3_data.sport.avg_hrm; } // //===================================================================== // op // layer_page void dsp_store_ui_scene(uint8_t mode, uint8_t layer, uint8_t page, uint16_t page_cur_x, uint16_t page_cur_y) { sync_cm3_data.ui_info.ui_mode = mode; if (layer == 4) { sync_cm3_data.ui_info.layer4.ui_page_id = page; lv_log_on(" mode %d , layer 4, page %d,\n", sync_cm3_data.ui_info.ui_mode, sync_cm3_data.ui_info.layer4.ui_page_id); sync_cm3_data.ui_info.layer4.ui_page_id |= UI_LAYER_ACTIVE_TAG; sync_cm3_data.ui_info.layer4.ui_page_cur_x = page_cur_x; sync_cm3_data.ui_info.layer4.ui_page_cur_y = page_cur_y; } else if (layer == 3) { sync_cm3_data.ui_info.layer4.ui_page_id = 0; sync_cm3_data.ui_info.layer4.ui_page_cur_x = 0; sync_cm3_data.ui_info.layer4.ui_page_cur_y = 0; sync_cm3_data.ui_info.layer3.ui_page_id = page; lv_log_on(" mode %d , layer 3, page %d,\n", sync_cm3_data.ui_info.ui_mode, sync_cm3_data.ui_info.layer3.ui_page_id); sync_cm3_data.ui_info.layer3.ui_page_id |= UI_LAYER_ACTIVE_TAG; sync_cm3_data.ui_info.layer3.ui_page_cur_x = page_cur_x; sync_cm3_data.ui_info.layer3.ui_page_cur_y = page_cur_y; } else if (layer == 2) { sync_cm3_data.ui_info.layer4.ui_page_id = 0; sync_cm3_data.ui_info.layer4.ui_page_cur_x = 0; sync_cm3_data.ui_info.layer4.ui_page_cur_y = 0; sync_cm3_data.ui_info.layer3.ui_page_id = 0; sync_cm3_data.ui_info.layer3.ui_page_cur_x = 0; sync_cm3_data.ui_info.layer3.ui_page_cur_y = 0; sync_cm3_data.ui_info.layer2.ui_page_id = page; lv_log_on(" mode %d , layer 2, page %d,\n", sync_cm3_data.ui_info.ui_mode, sync_cm3_data.ui_info.layer2.ui_page_id); sync_cm3_data.ui_info.layer2.ui_page_id |= UI_LAYER_ACTIVE_TAG; sync_cm3_data.ui_info.layer2.ui_page_cur_x = page_cur_x; sync_cm3_data.ui_info.layer2.ui_page_cur_y = page_cur_y; } else if (layer == 1) { sync_cm3_data.ui_info.layer4.ui_page_id = 0; sync_cm3_data.ui_info.layer4.ui_page_cur_x = 0; sync_cm3_data.ui_info.layer4.ui_page_cur_y = 0; sync_cm3_data.ui_info.layer3.ui_page_id = 0; sync_cm3_data.ui_info.layer3.ui_page_cur_x = 0; sync_cm3_data.ui_info.layer3.ui_page_cur_y = 0; sync_cm3_data.ui_info.layer2.ui_page_id = 0; sync_cm3_data.ui_info.layer2.ui_page_cur_x = 0; sync_cm3_data.ui_info.layer2.ui_page_cur_y = 0; sync_cm3_data.ui_info.layer1.ui_page_id = page; lv_log_on(" mode %d , layer 1, page %d,\n", sync_cm3_data.ui_info.ui_mode, sync_cm3_data.ui_info.layer1.ui_page_id); sync_cm3_data.ui_info.layer1.ui_page_id |= UI_LAYER_ACTIVE_TAG; sync_cm3_data.ui_info.layer1.ui_page_cur_x = page_cur_x; sync_cm3_data.ui_info.layer1.ui_page_cur_y = page_cur_y; } dsp_ipc_cmd = M3_DRIVER_DAILY_DATA; ipc_msg_with_payload_send(IPC_MSG_M3_INPUT, &dsp_ipc_cmd, 1, (uint8_t *)&sync_cm3_data, sizeof(ipc_daily_data_t), NULL); } void dsp_set_ui_scene_default_style(uint8_t type) { sync_cm3_data.ui_info.ui_default_style = type; } uint8_t dsp_get_ui_scene_default_style(void) { return sync_cm3_data.ui_info.ui_default_style; } uint8_t dsp_get_system_panel_state(void) { return sync_cm3_data.panel_state; } uint8_t dsp_get_ui_scene_mode(void) { return sync_cm3_data.ui_info.ui_mode; } uint8_t dsp_get_ui_scene_prev_mode(void) { return sync_cm3_data.ui_info.ui_prev_mode; } uint8_t dsp_get_ui_scene_layer(void) { uint16_t layer = 0; if (sync_cm3_data.ui_info.layer4.ui_page_id & UI_LAYER_ACTIVE_TAG) { layer = 4; } else if (sync_cm3_data.ui_info.layer3.ui_page_id & UI_LAYER_ACTIVE_TAG) { layer = 3; } else if (sync_cm3_data.ui_info.layer2.ui_page_id & UI_LAYER_ACTIVE_TAG) { layer = 2; } else // if(sync_cm3_data.ui_info.layer1.ui_page_id & UI_LAYER_ACTIVE_TAG) { layer = 1; } return layer; } uint8_t dsp_get_ui_scene_page_by_layer(uint8_t layer) { uint8_t ret = 0; if (layer == 4) { ret = sync_cm3_data.ui_info.layer4.ui_page_id & (~UI_LAYER_ACTIVE_TAG); } else if (layer == 3) { ret = sync_cm3_data.ui_info.layer3.ui_page_id & (~UI_LAYER_ACTIVE_TAG); } else if (layer == 2) { ret = sync_cm3_data.ui_info.layer2.ui_page_id & (~UI_LAYER_ACTIVE_TAG); } else if (layer == 1) { ret = sync_cm3_data.ui_info.layer1.ui_page_id & (~UI_LAYER_ACTIVE_TAG); } return ret; } uint16_t dsp_get_ui_scene_cur_x(void) { uint16_t ret; if (sync_cm3_data.ui_info.layer4.ui_page_id & UI_LAYER_ACTIVE_TAG) { ret = sync_cm3_data.ui_info.layer4.ui_page_cur_x; } else if (sync_cm3_data.ui_info.layer3.ui_page_id & UI_LAYER_ACTIVE_TAG) { ret = sync_cm3_data.ui_info.layer3.ui_page_cur_x; } else if (sync_cm3_data.ui_info.layer2.ui_page_id & UI_LAYER_ACTIVE_TAG) { ret = sync_cm3_data.ui_info.layer2.ui_page_cur_x; } else // if(sync_cm3_data.ui_info.layer1.ui_page_id & UI_LAYER_ACTIVE_TAG) { ret = sync_cm3_data.ui_info.layer1.ui_page_cur_x; } return ret; } uint16_t dsp_get_ui_scene_cur_y(void) { uint16_t ret; if (sync_cm3_data.ui_info.layer4.ui_page_id & UI_LAYER_ACTIVE_TAG) { ret = sync_cm3_data.ui_info.layer4.ui_page_cur_y; } else if (sync_cm3_data.ui_info.layer3.ui_page_id & UI_LAYER_ACTIVE_TAG) { ret = sync_cm3_data.ui_info.layer3.ui_page_cur_y; } else if (sync_cm3_data.ui_info.layer2.ui_page_id & UI_LAYER_ACTIVE_TAG) { ret = sync_cm3_data.ui_info.layer2.ui_page_cur_y; } else // if(sync_cm3_data.ui_info.layer1.ui_page_id & UI_LAYER_ACTIVE_TAG) { ret = sync_cm3_data.ui_info.layer1.ui_page_cur_y; } return ret; } // end ui function void dsp_turn_on_ble(void) { } void dsp_turn_off_ble(void) { } void dsp_turn_on_bt(void) { uint8_t data = 1; dsp_post_operate_to_m3(DSP_EVT_BT_SWATCH, &data, 1); dsp_op_system_timer_delay(100); } void dsp_turn_off_bt(void) { uint8_t data = 0; dsp_post_operate_to_m3(DSP_EVT_BT_SWATCH, &data, 1); dsp_op_system_timer_delay(100); } void dsp_op_system_shut_down(void) { dsp_post_operate_to_m3(DSP_EVT_SYSTEM_SHUTDOWN, NULL, 0); } void dsp_op_system_reset(void) { dsp_post_operate_to_m3(DSP_EVT_SYSTEM_RESET, NULL, 0); } void dsp_op_system_reboot(void) { dsp_post_operate_to_m3(DSP_EVT_SYSTEM_REBOOT, NULL, 0); } void dsp_op_system_music_play(void) { uint8_t data = 1; dsp_post_operate_to_m3(DSP_EVT_MUSIC_CONTROL, &data, 1); } void dsp_op_system_music_stop(void) { uint8_t data = 0; dsp_post_operate_to_m3(DSP_EVT_MUSIC_CONTROL, &data, 1); } void dsp_op_system_music_prev(void) { uint8_t data = 2; dsp_post_operate_to_m3(DSP_EVT_MUSIC_CONTROL, &data, 1); } void dsp_op_system_music_next(void) { uint8_t data = 3; dsp_post_operate_to_m3(DSP_EVT_MUSIC_CONTROL, &data, 1); } extern bool coming_call_ok; extern bool call_flag; void dsp_op_system_call_out(uint8_t *number, uint8_t len) { coming_call_ok = true; call_flag = true; memset(call_context, 0, 200); memcpy(call_context, number, len); // sync_cm3_data.ui_info.ui_prev_mode = sync_cm3_data.ui_info.ui_mode; // dsp_ipc_cmd = M3_DRIVER_DAILY_DATA; // ipc_msg_with_payload_send(IPC_MSG_M3_INPUT, &dsp_ipc_cmd,1,(uint8_t *)&sync_cm3_data,sizeof(ipc_daily_data_t),NULL); uint8_t *buffer = pvPortMalloc(len + 3); if (buffer != NULL) { buffer[0] = 'D'; buffer[1] = 'A'; memcpy(buffer + 2, number, len + 1); // dsp_ipc_cmd = M3_DRIVER_CALLING; // ipc_msg_with_payload_send(IPC_MSG_M3_INPUT, &dsp_ipc_cmd,1,buffer,len+3,NULL); dsp_post_operate_to_m3(DSP_EVT_CALL_CONTROL, buffer, len + 3); vPortFree(buffer); } } void dsp_op_get_current_call(call_info_t *call) { if (call_context[0] > 0) { call->number_len = call_context[0]; memset(call->call_namber, 0, 32); memcpy(call->call_namber, call_context + 1, call->number_len); call->name_len = call_context[call->number_len] + 1; memset(call->call_name, 0, 128); memcpy(call->call_name, call_context + call->number_len + 1, call->name_len); } } void dsp_op_get_call_from_story(call_info_t *call, uint16_t id) { } uint8_t dsp_op_dial_from_book(uint16_t id) { uint8_t buffer[2]; buffer[0] = id >> 8; buffer[1] = id; // dsp_post_operate_to_m3(DSP_EVT_READ_PHONE_BOOK_LIST,buffer,2); // co_delay_100us(500); if (call_list[0] > 0) { memcpy(call_context, &book_list[id][0], 200); if (call_context[0] < 3) { return 0; } bool namber_is_ok = true; for (uint8_t i = 1; i <= call_context[0]; i++) { if ((call_context[i] >= '0') && (call_context[i] <= '9')) { } else if (call_context[i] == '+') // area number { } else { namber_is_ok = false; break; } } if (namber_is_ok) { coming_call_ok = true; call_flag = true; uint8_t *buffer = pvPortMalloc(call_context[0] + 3); if (buffer != NULL) { buffer[0] = 'D'; buffer[1] = 'A'; memcpy(buffer + 2, call_context, call_context[0] + 1); dsp_post_operate_to_m3(DSP_EVT_CALL_CONTROL, buffer, call_context[0] + 3); vPortFree(buffer); } return 1; } return 0; } return 0; } bool get_phone_book_flag = false; bool phone_book_is_bank_flag = true; void dsp_op_get_call_from_book(call_info_t *call, uint16_t id) { uint8_t buffer[2]; buffer[0] = id >> 8; buffer[1] = id; dsp_post_operate_to_m3(DSP_EVT_READ_PHONE_BOOK_LIST, buffer, 2); get_phone_book_flag = true; uint16_t counter = 0; while (get_phone_book_flag) { co_delay_100us(1); counter++; if (counter > 1000) break; } if (call_list[0] > 0) { call->number_len = call_list[0]; memset(call->call_namber, 0, 32); memcpy(call->call_namber, call_list + 1, call->number_len); call->name_len = call_list[call->number_len] + 1; memset(call->call_name, 0, 128); memcpy(call->call_name, call_list + call->number_len + 1, call->name_len); } } void dsp_op_sync_phone_book(void) { dsp_post_operate_to_m3(DSP_EVT_LOAD_PHONE_BOOK, NULL, 0); } uint16_t dsp_op_get_phone_book_id_offset(void) { return sync_cm3_data.phone_book_id_offset; } uint16_t dsp_op_set_phone_book_id_offset(uint16_t id_offset) { uint8_t buffer[2]; buffer[0] = id_offset >> 8; buffer[1] = id_offset; dsp_post_operate_to_m3(DSP_EVT_SET_PHONE_BOOK_ID_OFFSET, buffer, 2); // dsp_op_system_timer_delay(2000); } void dsp_op_enable_mic(void) { sync_cm3_data.audio_mic_on = 1; dsp_post_operate_to_m3(DSP_EVT_MIC_OPEN, NULL, 0); } void dsp_op_disable_mic(void) { sync_cm3_data.audio_mic_on = 0; dsp_post_operate_to_m3(DSP_EVT_MIC_MUTE, NULL, 0); } uint8_t dsp_get_system_mic_state(void) { return sync_cm3_data.audio_mic_on; } void dsp_op_set_system_alarm(_clockTime *alarm, uint8_t alarm_id) { uint8_t buffer[5]; buffer[0] = alarm_id; buffer[1] = alarm->flag; buffer[2] = alarm->hour; buffer[3] = alarm->minute; buffer[4] = alarm->weekday; sync_cm3_data.alarm[alarm_id].flag = alarm->flag; sync_cm3_data.alarm[alarm_id].hour = alarm->hour; sync_cm3_data.alarm[alarm_id].minute = alarm->minute; sync_cm3_data.alarm[alarm_id].weekday = alarm->weekday; dsp_post_operate_to_m3(DSP_EVT_ALARM, buffer, 5); } void dsp_get_system_alarm(_clockTime *alarm, uint8_t alarm_id) { alarm->flag = sync_cm3_data.alarm[alarm_id].flag; alarm->hour = sync_cm3_data.alarm[alarm_id].hour; alarm->minute = sync_cm3_data.alarm[alarm_id].minute; alarm->weekday = sync_cm3_data.alarm[alarm_id].weekday; } void dsp_op_system_call_ok(void) { coming_call_ok = true; uint8_t buffer[2]; buffer[0] = 'C'; buffer[1] = 'A'; dsp_post_operate_to_m3(DSP_EVT_CALL_CONTROL, buffer, 2); } void dsp_op_system_call_reject(void) { call_flag = false; coming_call_ok = false; uint8_t buffer[2]; buffer[0] = 'C'; buffer[1] = 'B'; dsp_post_operate_to_m3(DSP_EVT_CALL_CONTROL, buffer, 2); } void dsp_op_read_cm3_record_list(void) { dsp_ipc_cmd = M3_DRIVER_CAllLIST_INFO; ipc_msg_with_payload_send(IPC_MSG_M3_INPUT, &dsp_ipc_cmd, 1, (uint8_t *)&sync_cm3_data, sizeof(ipc_daily_data_t), NULL); get_phone_book_flag = true; uint16_t counter = 0; while (get_phone_book_flag) { co_delay_100us(1); counter++; if (counter > 1000) break; } } void dsp_op_get_call_from_record_list(call_info_t *call, uint8_t *call_context) { memcpy(call_list, call_context, CALL_NUMBER_MAX_LEN - 1); call->number_len = call_list[0]; memset(call->call_namber, 0, 32); memcpy(call->call_namber, call_list + 1, call->number_len); call->name_len = call_list[call->number_len] + 1; memset(call->call_name, 0, 128); memcpy(call->call_name, call_list + call->number_len + 1, call->name_len); } uint8_t dsp_get_system_record_total(void) { return record_list.call_record_total; } void dsp_op_sports_start(uint8_t mode) { uint8_t buffer[2]; buffer[0] = 1; // start buffer[1] = mode; dsp_post_operate_to_m3(DSP_EVT_SPORTS, buffer, 2); sync_cm3_data.sport.sport_type = mode; } void dsp_op_sports_stop(uint8_t mode) { uint8_t buffer[2]; buffer[0] = 0; // stop buffer[1] = mode; dsp_post_operate_to_m3(DSP_EVT_SPORTS, buffer, 2); } void dsp_op_sports_pause(uint8_t mode) { uint8_t buffer[2]; buffer[0] = 2; // pause buffer[1] = mode; dsp_post_operate_to_m3(DSP_EVT_SPORTS, buffer, 2); } void dsp_op_read_cm3_msg(void) { dsp_ipc_cmd = M3_DRIVER_MESSAGE_INFO; ipc_msg_with_payload_send(IPC_MSG_M3_INPUT, &dsp_ipc_cmd, 1, (uint8_t *)&sync_cm3_data, sizeof(ipc_daily_data_t), NULL); } void dsp_op_system_timer_delay(uint16_t n) { co_delay_100us(n); } void dsp_op_system_hrm_start(void) { uint8_t cmd = 1; dsp_post_operate_to_m3(DSP_EVT_HEART, &cmd, 1); } void dsp_op_system_hrm_stop(void) { uint8_t buffer[2]; buffer[0] = 0; dsp_post_operate_to_m3(DSP_EVT_HEART, buffer, 1); // buffer[0] = 0; //0 heart //1 blood //2 oxygen // buffer[1] = dsp_get_system_hrm(); // dsp_post_operate_to_m3(DSP_EVT_SYNC_HERAT_BLOOD_OXYGEN,buffer,2); } //---------------------- // new add void dsp_clear_system_light_time(void) { dsp_post_operate_to_m3(DSP_EVT_CLEAR_LIGHT_TIME, NULL, 1); } void dsp_take_picture(void) { dsp_post_operate_to_m3(DSP_EVT_CAMERA, NULL, 1); } void dsp_search_phone(void) { uint8_t data = 0x01; dsp_post_operate_to_m3(DSP_EVT_FIND, &data, 1); } void dsp_set_system_version(void) { uint8_t data[2]; data[0] = (uint8_t)DSP_FW_VERSION << 8; data[1] = (uint8_t)DSP_FW_VERSION; dsp_post_operate_to_m3(DSP_EVT_DSP_VERSION, &data, 2); } void dsp_set_system_sleep_history_cmd(void) { uint8_t data = 0x02; dsp_post_operate_to_m3(DSP_EVT_GET_HISTORY_DATA, &data, 1); } sleep_history_stru *dsp_get_system_sleep_history(void) { return &sleep_history_data; } uint8_t *dsp_get_system_sport_heartrate_history(void) { return sportheartrate_historydata; } void dsp_set_system_heartrate_history_cmd(void) { uint8_t data = 0x01; dsp_post_operate_to_m3(DSP_EVT_GET_HISTORY_DATA, &data, 1); } uint8_t *dsp_get_system_heartrate_history(void) { return heartrate_historydata; } uint16_t dsp_get_system_step_target(void) { return sync_cm3_data.steptarget; } uint8_t dsp_get_system_camera_state(void) { return sync_cm3_data.camera_state; } void dsp_set_system_low_power_state(uint8_t state) { sync_cm3_data.low_power_state = state; dsp_post_operate_to_m3(DSP_EVT_LOW_POWER_MODE, &sync_cm3_data.low_power_state, 1); } uint8_t dsp_get_system_low_power_state(void) { return sync_cm3_data.low_power_state; } void dsp_set_system_new_language(uint8_t id) { sync_cm3_data.ui_info.ui_language = id; uint8_t data = id; dsp_post_operate_to_m3(DSP_EVT_SYSTEM_LANGUAGE, &data, 1); } void dsp_set_system_countdown_timer(uint8_t cmd, uint32_t time_value) { uint8_t data[5]; data[0] = cmd; if ((cmd == 1) || (cmd == 2)) { data[1] = (uint8_t)(time_value >> 24); data[2] = (uint8_t)(time_value >> 16); data[3] = (uint8_t)(time_value >> 8); data[4] = (uint8_t)time_value; dsp_post_operate_to_m3(DSP_EVT_TIMER_TIME, &data, 5); } else { dsp_post_operate_to_m3(DSP_EVT_TIMER_TIME, &data, 1); } } uint32_t dsp_get_system_countdown_timer(void) { return sync_cm3_data.count_down_counter; } uint8_t dsp_get_system_countdown_timer_state(void) { return sync_cm3_data.count_down_counter_state; } uint8_t dsp_get_system_temperature_format(void) { return sync_cm3_data.ui_info.temperature_format; } uint8_t dsp_get_system_watch_hrm_value(void) { return sync_cm3_data.watch_hrm_value; } uint8_t dsp_get_ui_remind_index(void) { return sync_cm3_data.remind_index; } void dsp_get_system_win_title(uint8_t msg_id, uint8_t *buffer) { memset(buffer, 0, 128); uint8_t *p_data = &msglist.fifo[msg_id]; uint8_t title_len = p_data[17]; memcpy(buffer, p_data + 18, title_len); } void dsp_get_system_win_context(uint8_t msg_id, uint8_t *buffer) { memset(buffer, 0, 256 * 2); uint8_t *p_data = &msglist.fifo[msg_id]; uint8_t title_len = p_data[17]; uint8_t context_len = p_data[17 + title_len + 1]; memcpy(buffer, p_data + 19 + title_len, context_len); } void dsp_set_system_test_cmd(uint8_t cmd) { if ((cmd & 0x0f) <= 2) { dsp_post_operate_to_m3(DSP_EVT_GET_TEST_DATA, &cmd, 1); } else { uint8_t data_buff[2]; data_buff[0] = cmd & 0x7f; data_buff[1] = cmd >> 7; dsp_post_operate_to_m3(DSP_EVT_GET_TEST_DATA, &data_buff, 2); } } static uint8_t stopwatch_state; void dsp_set_system_stopwatch_status(uint8_t cmd_status) { dsp_post_operate_to_m3(DSP_EVT_WATCHSTOP_TIME, &cmd_status, 1); stopwatch_state = cmd_status; } uint8_t dsp_get_system_stopwatch_status(void) { return stopwatch_state; } uint8_t dsp_get_system_distance_format(void) { return sync_cm3_data.ui_info.distance_format; } void dsp_set_breathe_work(uint8_t breathe_work) { uint8_t data[2]; data[0] = 1; data[1] = breathe_work; dsp_post_operate_to_m3(DSP_EVT_BREATHE, &data, 2); } void dsp_breathe_state_cut(uint8_t breathe_state) { uint8_t data[2]; data[0] = breathe_state; data[1] = 0; dsp_post_operate_to_m3(DSP_EVT_BREATHE, &data, 2); } #endif