/* -------------------------------------------------------------------------- */
HANDLE_JUMP_OTA_VIEW, //处理跳转ota界面
HAND_SCHEDULE_REMINDER_NOTIFY, // 日程提醒通知
+ HAND_TASK_REMINDER_NOTIFY, // 任务提醒通知
MAX_NUM_HANDLER,
} UiServiceMsgId;
// 消息处理程序的函数原型
static void HandleJumpOtaView(Request *request);
static void HandScheduleReminderNotify(Request *request);
-
+static void HandTaskReminderNotify(Request *request);
// 消息处理程序项数组(每个消息类型对应一个处理函数,函数名以 Handle 开头)
MsgHandlerEntry msgHandlers[] = {
{HANDLE_JUMP_OTA_VIEW, HandleJumpOtaView},
- {HAND_SCHEDULE_REMINDER_NOTIFY,HandScheduleReminderNotify}
+ {HAND_SCHEDULE_REMINDER_NOTIFY,HandScheduleReminderNotify},
+ {HAND_TASK_REMINDER_NOTIFY,HandTaskReminderNotify}
+
};
/* -------------------------------------------------------------------------- */
void ScreenTurnOn(int32_t timeout)
}
/* -------------------------------------------------------------------------- */
+// 处理跳转ota界面
void HandleJumpOtaView(Request *request)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleJumpOtaView msg_id = %d",request->msgId);
}
}
+// 日程提醒通知
void HandScheduleReminderNotify(Request *request)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_UI_SERVICE, "HandScheduleReminderNotify msg_id = %d",request->msgId);
int status = *(int *)request->data;
}
+// 任务提醒通知
+void HandTaskReminderNotify(Request *request)
+{
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_UI_SERVICE, "HandTaskReminderNotify msg_id = %d",request->msgId);
+ int status = *(int *)request->data;
+}
/* -------------------------------------------------------------------------- */
#ifdef __cplusplus
}
return ERRCODE_SUCC;
}
+/* AT^LN_SCHEDULE_REMINDER_CFG[=scheduleName] */
+static uint32_t ln_schedule_reminder_cfg_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
+{
+ const char *defaultName = "七点起床";
+ const char *name = defaultName;
+ const char *deviceId = uapi_ln_get_device_id();
+
+ if (para != NULL && paraLen > 0) {
+ uint8_t argv[LN_MAX_ARGC][LN_MAX_ARGV_LEN] = {0};
+ uint32_t argc = 0;
+ (void)ConvertCmdToParam(para, paraLen, argv, &argc);
+ if (argc >= 1) { name = (const char*)argv[0]; }
+ }
+
+ const char *id = (deviceId && deviceId[0]) ? deviceId : "DEVICE_LOCAL";
+
+ char *json = (char*)malloc(512);
+ if (json == NULL) {
+ printf("[LN][SCHEDULE_REMINDER_CFG] OOM\n");
+ return ERRCODE_FAIL;
+ }
+ int n = snprintf(json, 512,
+ "{\n"
+ " \"deviceId\": \"%s\",\n"
+ " \"timestamp\": %u,\n"
+ " \"messageId\": \"at_msg\",\n"
+ " \"command\": \"ScheduleReminderConfig\",\n"
+ " \"data\": {\n"
+ " \"scheduleName\": \"%s\"\n"
+ " }\n"
+ "}\n",
+ id, 0U, name);
+ if (n <= 0 || n >= 512) {
+ free(json);
+ printf("[LN][SCHEDULE_REMINDER_CFG] build json failed\n");
+ return ERRCODE_FAIL;
+ }
+
+ ln_parse_schedule_reminder_config(json, n);
+
+ printf("[LN][SCHEDULE_REMINDER_CFG] ok, scheduleName=%s\n", name);
+
+ free(json);
+ return ERRCODE_SUCC;
+}
+
static const at_cmd_table_t g_ln_api_cmd[] = {
/* ----------------------------------- VAD ---------------------------------- */
{(char *)"AT^VAD_INIT", vad_init, (char *)"初始化 VAD"},
/* UI相关at */
{(char *)"AT^LN_UI_OTA_STATUS", ln_ui_ota_status_at, (char *)"推送OTA升级状态: AT^LN_UI_OTA_STATUS=0、1、2、3、4"},
{(char *)"AT^LN_UI_OTA_PROGRESS", ln_ui_ota_progress_at, (char *)"推送OTA升级进度: AT^LN_UI_OTA_PROGRESS=100"},
- {(char *)"AT^LN_SCHEDULE_REMINDER", ln_schedule_reminder_at, (char *)"测试解析日程提醒JSON: AT^LN_SCHEDULE_REMINDER[=scheduleName,reminderContent] "},
+ {(char *)"AT^LN_SCHEDULE_REMINDER", ln_schedule_reminder_at, (char *)"日程提醒: AT^LN_SCHEDULE_REMINDER[=scheduleName,reminderContent]"},
+ {(char *)"AT^LN_SCHEDULE_REMINDER_CFG", ln_schedule_reminder_cfg_at, (char *)"日程提醒配置: AT^LN_SCHEDULE_REMINDER_CFG[=scheduleName]"},
};
g_schedule_reminder.enableVibration = 0;
}
+void ln_clear_schedule_reminder_config(void)
+{
+ if (g_schedule_reminder_config.scheduleName)
+ {
+ free(g_schedule_reminder_config.scheduleName);
+ g_schedule_reminder_config.scheduleName = NULL;
+ }
+}
+
/* 解析日程提醒信息 */
void ln_parse_schedule_reminder(const char *json_buf, int json_len)
{
printf("[SCHEDULE_REMINDER_CONFIG] parsed successfully:\n");
printf(" scheduleName: %s\n", g_schedule_reminder_config.scheduleName ? g_schedule_reminder_config.scheduleName : "");
+ // 推送任务提醒通知
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[SCHEDULE_REMINDER_CONFIG] push task reminder notification\n");
+ push_task_reminder_notification(g_schedule_reminder_config.scheduleName);
+
// 清理资源
cJSON_Delete(root);
free(text);
+ ln_clear_schedule_reminder_config();
}
\ No newline at end of file
SendMsgToUIService(HAND_SCHEDULE_REMINDER_NOTIFY, 0,(void *)payload, (int32_t)strlen(payload));
}
+// 推送任务提醒通知
+void push_task_reminder_notification(const char *scheduleName)
+{
+ printf("scheduleName:%s\r\n",scheduleName);
+ SendMsgToUIService(HAND_TASK_REMINDER_NOTIFY, 0,(void *)scheduleName, (int32_t)strlen(scheduleName));
+}
+
+
#ifdef __cplusplus
};
#endif
\ No newline at end of file
void do_restore_factory_setting(void);
// 推送日程提醒通知
void push_schedule_reminder_notification(const char *title, const char *content);
-
+// 推送任务提醒
+void push_task_reminder_notification(const char *scheduleName);
#ifdef __cplusplus
}
#endif