MXC-A36-Demo/Demo/lv_user_code/basic/lv_common_function.c

1433 lines
34 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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;
}
/* <20><><EFBFBD>ݲ<EFBFBD><DDB2>չ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
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