#define __MMI_PEDOMETER_STEP_AND_GOAL_STYLE__
+#define __MMI_SLEEP_FUNCTION_SUPPORT__
+#define __MMI_CUSTOM_HENGAI_SLEEP__
+
#define __MMI_CUSTOM_HENGAI_HEALTH__
#define __MMI_CUSTOM_HENGAI_TCMS__
#ifdef __MMI_CUSTOM_HENG_AI__
#define __MMI_REMIND_WAKE_UP_SUPPORT__
#define __MMI_SLEEP_FUNCTION_SUPPORT__
+#define __MMI_CUSTOM_HENGAI_SLEEP__
#endif
#endif
#ifdef __MMI_CUSTOM_HENG_AI__
#define NV_SECTION_UI_HENG_AI_WAKE_RING_TYPE_LEN (sizeof(nv_watch_switch_t))
+#endif
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
#define NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION_LEN (sizeof(nv_watch_heng_ai_sleep_activation_t))
#endif
#ifdef __MMI_CUSTOM_HENGAI_HEALTH__
#endif
#ifdef __MMI_CUSTOM_HENG_AI__
#define NV_SECTION_UI_HENG_AI_WAKE_RING_TYPE_FILE "ui_heng_ai_wake_ring_type.nv"
+#endif
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
#define NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION_FILE "ui_heng_ai_sleep_activation.nv"
#endif
#ifdef __MMI_CUSTOM_HENGAI_HEALTH__
#ifdef __MMI_CUSTOM_HENG_AI__
case NV_SECTION_UI_HENG_AI_WAKE_RING_TYPE:
return (NV_SECTION_LEN(NV_SECTION_UI_HENG_AI_WAKE_RING_TYPE));
+ #endif
+ #ifdef __MMI_CUSTOM_HENGAI_SLEEP__
case NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION:
return (NV_SECTION_LEN(NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION));
#endif
#ifdef __MMI_CUSTOM_HENG_AI__
case NV_SECTION_UI_HENG_AI_WAKE_RING_TYPE:
return (NV_SECTION_FILE_PATH(NV_SECTION_UI_HENG_AI_WAKE_RING_TYPE));
+ #endif
+ #ifdef __MMI_CUSTOM_HENGAI_SLEEP__
case NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION:
return (NV_SECTION_FILE_PATH(NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION));
#endif
#ifdef __MMI_REMIND_DRINK_SUPPORT__
nv_watch_remind_drink_t * remind_drink_data;
#endif
-#ifdef __MMI_CUSTOM_HENG_AI__
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
nv_watch_heng_ai_sleep_activation_t * heng_ai_sleep_activation;
#endif
#ifdef __MMI_CUSTOM_HENGAI_HEALTH__
memset(mmi_switch_data, 0x0, SectionLen);
TempData = (char *)mmi_switch_data;
break;
+ #endif
+ #ifdef __MMI_CUSTOM_HENGAI_SLEEP__
case NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION:
heng_ai_sleep_activation = lv_mem_alloc(SectionLen);
memset(heng_ai_sleep_activation, 0x0, SectionLen);
} __packed nv_watch_not_clean_data_t;
-#ifdef __MMI_CUSTOM_HENG_AI__
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
typedef struct
{
uint8_t is_activated; // 0-not activated; 1-activated
#endif
#ifdef __MMI_CUSTOM_HENG_AI__
NV_SECTION_UI_HENG_AI_WAKE_RING_TYPE, // nv_watch_switch_t
+#endif
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
NV_SECTION_UI_HENG_AI_SLEEP_ACTIVATION, // nv_watch_heng_ai_sleep_activation_t
#endif
#ifdef __MMI_CUSTOM_HENGAI_HEALTH__
#ifdef __MMI_CUSTOM_HENG_AI__
#include "heng_ai.c"
+#endif
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
#include "heng_ai_sleep_activation.c"
#endif
#ifdef __MMI_CUSTOM_HENGAI_HEALTH__
#ifdef __MMI_CUSTOM_HENG_AI__
#include "heng_ai.h"
+#endif
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
#include "heng_ai_sleep_activation.h"
#endif
#ifdef __MMI_CUSTOM_HENGAI_HEALTH__
#include "lv_watch.h"
-#ifdef __MMI_CUSTOM_HENG_AI__
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
#include "../../../../product/craneg_modem/cust/heng_ai_sleep/inc/lib_sleep.h"
#include "../../../lv_ex_conf.h"
#endif
-#ifdef __MMI_CUSTOM_HENG_AI__
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
void mmi_hengai_sleep_activation_nv_read(void);
#endif
// hengai sleep
- #ifdef __MMI_CUSTOM_HENG_AI__
+ #ifdef __MMI_CUSTOM_HENGAI_SLEEP__
mmi_hengai_sleep_activation_check_action();
#endif
mmi_protocol_fzd_send_without_data(action);
uos_sleep(10);
- char * number = (char *)lv_mem_alloc(next_buff_len + 1);
+ char * number = (char *)lv_mem_alloc(NV_CONTACTS_MAX_NUMBER_LEN);
if(NULL == number)
{
PROTOCOL_DEBUG_PRINTF("[@CHENG_DEBUG][%s][%d]: \n", __FUNCTION__, __LINE__);
return false;
}
- _lv_memset_00(number, next_buff_len + 1);
- _lv_memcpy(number, next_buff, next_buff_len + 1);
- //phone_voice_call_req(number);
+ _lv_memset_00(number, NV_CONTACTS_MAX_NUMBER_LEN);
+ _lv_memcpy(number, next_buff, ((NV_CONTACTS_MAX_NUMBER_LEN > next_buff_len) ? next_buff_len : NV_CONTACTS_MAX_NUMBER_LEN - 1));
+ phone_voice_call_req(number);
return result;
}
nv_watch_remind_drink_t t_data = {0};
char * temp_ptr = NULL;
- temp_ptr = km_strtok_r(NULL, "-", &next_buff);
+ // compatible '-' & ','
+ if(NULL != strchr(next_buff, '-'))
+ {
+ temp_ptr = km_strtok_r(NULL, "-", &next_buff);
+ }
+ else
+ {
+ temp_ptr = km_strtok_r(NULL, ",", &next_buff);
+ }
t_data.hour_value = atoi(temp_ptr);
temp_ptr = next_buff;
return result;
}
+#endif
-
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
// [*HENGAI_ACTIVATION, name, model, firm, sensor,fs, sinklib_version, request_code]
bool mmi_protocol_fzd_action_hengai_activation(char * req_code)
{
MMI_FZD_SERVER_SET_HENG_AI_WAKE_NOW,
MMI_FZD_SERVER_SET_HENG_AI_WAKE_RING_TYPE,
MMI_FZD_SERVER_SET_HENG_AI_WARNING,
+#endif
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
MMI_FZD_ACTION_HENGAI_ACTIVATION,
MMI_FZD_ACTION_HENGAI_ACTIVATION_FEEDBACK,
MMI_FZD_ACTION_HENGAI_SLEEP_DATA,
bool mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WAKE_NOW(unsigned char * next_buff, unsigned int next_buff_len);
bool mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WAKE_RING_TYPE(unsigned char * next_buff, unsigned int next_buff_len);
bool mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WARNING(unsigned char * next_buff, unsigned int next_buff_len);
+#endif
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
bool mmi_protocol_fzd_action_hengai_activation(char * req_code);
bool mmi_protocol_fzd_parse_ACTION_HENGAI_ACTIVATION(unsigned char * next_buff, unsigned int next_buff_len);
bool mmi_protocol_fzd_action_hengai_activation_feedback(void);
{MMI_FZD_SERVER_SET_HENG_AI_WAKE_NOW, "HENG_AI_WAKE_NOW"},
{MMI_FZD_SERVER_SET_HENG_AI_WAKE_RING_TYPE, "HENG_AI_WAKE_RING_TYPE"},
{MMI_FZD_SERVER_SET_HENG_AI_WARNING, "HENGAI_WARNING"},
+ #endif
+ #ifdef __MMI_CUSTOM_HENGAI_SLEEP__
{MMI_FZD_ACTION_HENGAI_ACTIVATION, "HENGAI_ACTIVATION"},
{MMI_FZD_ACTION_HENGAI_ACTIVATION_FEEDBACK, "HENGAI_ACTIVATION_FEEDBACK"},
{MMI_FZD_ACTION_HENGAI_SLEEP_DATA, "HENGAI_SLEEP_DATA"},
case MMI_FZD_SERVER_SET_HENG_AI_WARNING:
mmi_protocol_fzd_parse_SERVER_SET_HENG_AI_WARNING(next_buff, next_buff_len);
break;
+ #endif
+ #ifdef __MMI_CUSTOM_HENGAI_SLEEP__
case MMI_FZD_ACTION_HENGAI_ACTIVATION:
mmi_protocol_fzd_parse_ACTION_HENGAI_ACTIVATION(next_buff, next_buff_len);
break;
static void mmi_watch_get_sleep_data_start(void)
{
-#ifdef __MMI_CUSTOM_HENG_AI__
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
mmi_hengai_get_sleep_data_start();
#endif
static void mmi_watch_get_sleep_data_stop(void)
{
-#ifdef __MMI_CUSTOM_HENG_AI__
+#ifdef __MMI_CUSTOM_HENGAI_SLEEP__
mmi_hengai_get_sleep_data_stop();
#endif