#include "cat1_server.h"
#include "cat1_pub_api.h"
#include "cat1_types.h"
+#endif
+#ifdef SUPPORT_PPP_SERVICE
+#include "ppp_api.h"
+#include "ppp_cat1_api.h"
+#include "ppp_at_handler.h"
#endif
#define JUHEPINGTAI 0
#if JUHEPINGTAI
* @brief CAT1消息回调函数,处理AT命令响应
* @note 用于处理MESSAGE_4G_AT_RECEIVED消息,解析+CESQ响应
*/
- #ifdef SUPPORT_CAT1_SERVICE
+ #if defined(SUPPORT_CAT1_SERVICE) || defined(SUPPORT_PPP_SERVICE)
extern "C" {
#endif
static errcode_t ThunderBirdModel_Cat1MsgCallback(MESSAGE_4G_T msg, void *msg_buf, uint16_t msglen)
}
return ERRCODE_SUCC;
}
- #ifdef SUPPORT_CAT1_SERVICE
+ #if defined(SUPPORT_CAT1_SERVICE) || defined(SUPPORT_PPP_SERVICE)
}
#endif
currentSubView == ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_BIND_SUCCESS) {
if (bind_status == false) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "解绑警告界面超时,恢复出厂设置");
+ AI_ForceInterrupt();
+ ln_ws_send_voice_chat_interrupt("恢复出厂设置");
+ do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0);
restore_factory_settings();
}
else {
cat1_at_cmd(cesq_cmd);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel: AT+CESQ command sent via cat1_at_cmd");
// 注意:m_rsrq和m_rsrp会在回调函数中更新,这里不设置默认值(保持上次的值)
+ #elif defined(SUPPORT_PPP_SERVICE)
+ // PPP模式下,使用ppp模块的指令获取信号强度
+ ppp_network_signal_info_t signal_info = {0};
+ ppp_error_t ret = ppp_at_get_network_signal_info(&signal_info);
+ if (ret == PPP_ERR_OK && signal_info.valid) {
+ // 更新RSRQ和RSRP值
+ m_rsrq = signal_info.rsrq;
+ m_rsrp = signal_info.rsrp;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel: Network signal info updated via ppp_at_get_network_signal_info - RSRQ=%d, RSRP=%d", m_rsrq, m_rsrp);
+ } else {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel: Failed to get network signal info via ppp_at_get_network_signal_info, ret=%d", ret);
+ // 如果获取失败,设置为无效值
+ m_rsrq = 255;
+ m_rsrp = 255;
+ }
+ // 同时调用ppp_get_network_signal_info()来更新运行时状态(用于日志输出)
+ ppp_get_network_signal_info();
#else
- // 如果没有CAT1服务,设置为无效值
+ // 如果没有CAT1服务和PPP服务,设置为无效值
m_rsrq = 255;
m_rsrp = 255;
#endif
currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING &&
m_dialogueModeFinished)
{
- ThunderBirdDialogueView::GetInstance()->UpdateDialogueText("还有什么想聊的吗?");
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackEnd: 对话模式finished且音频播放结束");
// 重置标志
m_dialogueModeFinished = false;
// 停止动效
ThunderBirdDialogueView::GetInstance()->AudioPlaybackEnd();
+ ThunderBirdDialogueView::GetInstance()->IsNormalEnd = true;
// 启动8秒定时器,时间到就退出对话
StartCountUpTimer(10);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioPlaybackEnd: 启动10秒定时器,时间到就退出对话");
void ThunderBirdModel::HandleAudioRecordingStart()
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioRecordingStart: 录音开始");
-
+ if(ThunderBirdDialogueView::GetInstance()->IsNormalEnd == false)
+ {
+ //重连
+ // ln_ws_send_voice_chat_interrupt("重连对话");
+ }
// 取消退出对话的定时器(用户开始录音,说明要继续对话)
StopCountUpTimer();
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioRecordingStart: 取消退出对话定时器");
int16_t currentSubView = view->GetCurrentSubView();
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdModel::HandleAudioRecordingStart: currentView=%d, currentSubView=%d", currentView, currentSubView);
// 如果当前在对话界面,且不在聆听状态,则跳转到聆听状态
+ //如果是哄睡界面,则不进行处理
+ if(currentView == THUNDERBIRD_LULLABYVIEW && currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_3)
+ {
+ return;
+ }
if ((currentView == THUNDERBIRD_DIALOGUEVIEW &&
currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING)
|| ThunderBirdDialogueView::GetInstance()->DialogueFirst == false) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "录音开始,跳转到聆听状态");
view->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING);
+ ThunderBirdDialogueView::GetInstance()->IsNormalEnd = false;
ThunderBirdDialogueView::GetInstance()->UpdateDialogueText("超认真聆听中");
}
// 如果当前在哄睡界面,且不在故事选择状态,则跳转到故事选择状态