static uint32_t ln_conversation_flag_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd);
static uint32_t ln_push_text_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd);
static uint32_t ln_timeline_status_change_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd);
+static uint32_t ln_npc_emotion_change_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd);
//恢复出厂设置相关AT命令函数声明
static uint32_t ln_factory_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd);
return ERRCODE_SUCC;
}
+/**
+ * @brief 推送NPC表情变化通知的AT命令
+ * @param para 参数字符串
+ * @param paraLen 参数长度
+ * @param strCommonCmd 命令字符串
+ * @return 错误码
+ *
+ * 用法: AT^LN_NPC_EMOTION_CHANGE=emotion
+ * AT^LN_NPC_EMOTION_CHANGE=happy
+ * AT^LN_NPC_EMOTION_CHANGE=sad
+ */
+static uint32_t ln_npc_emotion_change_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
+{
+ LN_UNUSED(strCommonCmd);
+
+ uint8_t argv[LN_MAX_ARGC][LN_MAX_ARGV_LEN] = {0};
+ uint32_t argc = 0;
+
+ // 解析参数
+ if (ConvertCmdToParam(para, paraLen, argv, &argc) != LN_SUCCESS) {
+ printf("ERROR: Failed to parse parameters\n");
+ return ERRCODE_FAIL;
+ }
+
+ if (argc < 1) {
+ printf("ERROR: Missing emotion parameter\n");
+ printf("Usage: AT^LN_NPC_EMOTION_CHANGE=emotion\n");
+ printf("Example: AT^LN_NPC_EMOTION_CHANGE=happy\n");
+ return ERRCODE_FAIL;
+ }
+
+ const char *emotion = (char*)argv[0];
+ if (emotion == NULL || strlen(emotion) == 0) {
+ printf("ERROR: Empty emotion parameter\n");
+ return ERRCODE_FAIL;
+ }
+
+ // 检查参数长度限制
+ if (strlen(emotion) > 256) {
+ printf("ERROR: Emotion too long (max 256 characters)\n");
+ return ERRCODE_FAIL;
+ }
+
+ // 推送NPC表情变化通知
+ push_npc_emotion_change_notification(emotion);
+ printf("+LN_NPC_EMOTION_CHANGE: OK\n");
+ printf("NPC emotion changed to: %s\n", emotion);
+
+ return ERRCODE_SUCC;
+}
+
/* 恢复出厂设置: AT^LN_FACTORY */
static uint32_t ln_factory_at(uint8_t *para, uint32_t paraLen, char *strCommonCmd)
{
/* 对话控制 */
{(char *)"AT^LN_CONV_FLAG", ln_conversation_flag_at, (char *)"设置对话标志: AT^LN_CONV_FLAG=1/0"},
{(char *)"AT^LN_PUSH_TEXT", ln_push_text_at, (char *)"推送文本到UI: AT^LN_PUSH_TEXT=hello world"},
+ {(char *)"AT^LN_NPC_EMOTION_CHANGE", ln_npc_emotion_change_at, (char *)"推送NPC表情变化: AT^LN_NPC_EMOTION_CHANGE=emotion"},
//恢复出厂设置
{(char *)"AT^LN_FACTORY", ln_factory_at, (char *)"恢复出厂设置: AT^LN_FACTORY"},