{
if (init_falg == false)
{
- // #if defined(SUPPORT_CAT1_SERVICE) || defined(SUPPORT_PPP_SERVICE)
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandlePowerKey: restart_time_sync");
- // restart_time_sync();
- // #endif
cat1_gettime();
//发送获取绑定用户ID
do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_GET_USER_ID, NULL, 0);
// 获取一下OTA 是否有最新版本
// 需要是绑定状态才更新
- if(bind_status == true)
- {
+ // if(bind_status == true)
+ // {
ota_update_boot();
- }
- ThunderBirdMainView *view = ThunderBirdMainView::GetInstance();
- if (view) {
- int16_t currentView = view->GetCurrentView();
- int16_t currentSubView = view->GetCurrentSubView();
-
- // 检查是否在对话界面
- if (currentView == THUNDERBIRD_DIALOGUEVIEW && (currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING || currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING)) {
- // 检查是否是在对话模式进入时因为WebSocket未连接而显示的提醒
- do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_INIT, NULL, 0);
- ThunderBirdPresenter *presenter = ThunderBirdPresenter::GetInstance();
- if (presenter && presenter->isDialogueing) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[定时器] WebSocket连接成功,隐藏网络断开提醒,进入对话模式");
- // 隐藏提醒界面
- if(ThunderBirdReminderView::GetInstance())
- {
- ThunderBirdReminderView::GetInstance()->HideAll();
- }
- // 如果在对话界面,初始化音频
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[定时器] WebSocket连接成功,在对话界面,初始化音频");
-
- }
- }
- }
+ // }
+ //未绑定状态,联网隐藏网络断开提醒
+ // if(bind_status == false)
+ // {
+ // ThunderBirdMainView *view = ThunderBirdMainView::GetInstance();
+ // if (view) {
+ // int16_t currentView = view->GetCurrentView();
+ // int16_t currentSubView = view->GetCurrentSubView();
+
+ // // 检查是否在对话界面
+ // if (currentView == THUNDERBIRD_DIALOGUEVIEW && (currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING || currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING)) {
+ // // 检查是否是在对话模式进入时因为WebSocket未连接而显示的提醒
+ // do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_INIT, NULL, 0);
+ // ThunderBirdPresenter *presenter = ThunderBirdPresenter::GetInstance();
+ // if (presenter && presenter->isDialogueing) {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[定时器] WebSocket连接成功,隐藏网络断开提醒,进入对话模式");
+ // // 隐藏提醒界面
+ // if(ThunderBirdReminderView::GetInstance())
+ // {
+ // ThunderBirdReminderView::GetInstance()->HideAll();
+ // }
+ // // 如果在对话界面,初始化音频
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[定时器] WebSocket连接成功,在对话界面,初始化音频");
+ // }
+ // }
+ // }
+ // }
#if JUHEPINGTAI
uapi_init_all_websocket_servers();
uapi_start_all_websocket_servers(0); // 连接服务器
#endif
-
+ //VAD认证
do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_VAD_AUTH, NULL, 0);
// 更新设备状态
UpdateDeviceStatus();
- // 处理OTA倒计时定时器
- // if (m_otaCountdownActive) {
- // if (m_otaCountdownValue <= 0) {
- // // OTA倒计时结束,停止定时器并开始OTA
- // m_otaCountdownActive = false;
- // m_otaCountdownValue = 0;
-
- // // 自动跳转到开始OTA界面
- // do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_OTA_DOWNLOAD, NULL, 0);
- // ThunderBirdMainView::GetInstance()->ChangeView(THUNDERBIRD_OTAVIEW, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATING);
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OTA countdown completed, starting OTA");
- // } else {
- // // 更新倒计时值
- // m_otaCountdownValue--;
-
- // // 更新UI显示
- // if (ThunderBirdOtaView::GetInstance()) {
- // ThunderBirdOtaView::GetInstance()->UpdateCountdown(m_otaCountdownValue);
- // }
- // WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OTA countdown: %d", m_otaCountdownValue);
- // }
- // }
-
-
-
- // 处理计数定时器
+ // 定时器到时处理
if (m_countUpActive) {
if (m_countUpValue >= m_countUpTarget) {
// 计数完成,停止定时器
// 检查是否是聆听界面超时,需要自动跳转到状态界面
if (currentView == THUNDERBIRD_DIALOGUEVIEW &&
- currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING) {
+ (currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING || currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING)) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "聆听界面超时,自动跳转到说话界面");
- view->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
- ThunderBirdDialogueView::GetInstance()->DialogueFirst = true;
- ln_ws_end_audio_chat();//结束对话
- // 退出对话模式时恢复表情
- AI_ForceInterrupt();
- ln_ws_send_voice_chat_interrupt("退出对话");
- do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_DEINIT, NULL, 0);
- ThunderBirdPresenter::GetInstance()->SetDialogueing(false);
- ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON); // 关闭屏幕常亮
- ThunderBirdModel::GetInstance()->HighFrequence();//恢复视频帧率
- ThunderBirdModel::GetInstance()->OnExitDialogueMode();
- }
- //检查是否是播放界面超时,需要自动跳转到状态界面
- else if (currentView == THUNDERBIRD_DIALOGUEVIEW &&
- currentSubView == ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_SPEAKING) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "播放界面超时,自动跳转到状态界面");
- view->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
+ if(bind_status == true)
+ {
+ view->ChangeView(currentView, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW);
+ }
+ else
+ {
+ view->ChangeView(currentView, THUNDERBIRD_GUIDEVIEW, ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_5);
+ }
ThunderBirdDialogueView::GetInstance()->DialogueFirst = true;
ln_ws_end_audio_chat();//结束对话
// 退出对话模式时恢复表情
case ThunderBirdGuideView::THUNDERBIRD_GUIDEVIEW_5:
// THUNDERBIRD_GUIDEVIEW_5 按音量+键跳转到对话界面并开启对话
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "THUNDERBIRD_GUIDEVIEW_5: 进入对话模式");
+
+ int wsState = ln_ws_get_connection_state();
+ bool wsConnected = (wsState == 2); // WS_STATE_CONNECTED = 2
+ if (!wsConnected) {
+ // 不满足条件,显示提示并设置2秒定时器自动隐藏
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "进入对话模式条件不满足: wsConnected=%d", wsConnected);
+ // 先切换到提醒视图
+ ThunderBirdModel::GetInstance()->StartReminderHideTimer(2000);
+ ThunderBirdMainView::GetInstance()->ChangeThunderBirdReminderView(THUNDERBIRD_REMINDERVIEW);
+ ThunderBirdReminderView *reminderView = ThunderBirdReminderView::GetInstance();
+ if (reminderView) {
+ if (!wsConnected) {
+ // WebSocket未连接,显示网络断开提醒
+ reminderView->Show(ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_NETWORK_DISCONNECT);
+ reminderView->dialogue_unnetwork();
+ }
+ // 显示后再设置2秒定时器自动隐藏提示
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdReminderView::GetInstance() returned NULL");
+ }
+ return; // 不满足条件,不进入对话模式
+ }
+
ThunderBirdMainView::GetInstance()->ChangeView(THUNDERBIRD_GUIDEVIEW, THUNDERBIRD_DIALOGUEVIEW, ThunderBirdDialogueView::THUNDERBIRD_DIALOGUEVIEW_LISTENING);
isDialogueing = true;
- // 进入对话模式时记录当前表情
- ThunderBirdModel::GetInstance()->OnEnterDialogueMode();
+ //未绑定状态,联网隐藏网络断开提醒
// 开始对话
do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_AUDIO_INIT, NULL, 0);
// ln_ws_start_audio_chat(LN_AUDIO_CHAT_VOICE_CHAT_REQUEST);
*/
void ThunderBirdPresenter::HandleFuncKeyLongPress(void)
{
- // #if defined(SUPPORT_CAT1_SERVICE) || defined(SUPPORT_PPP_SERVICE)
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HandleFuncKeyLongPress: restart_time_sync");
- // restart_time_sync();
- // #endif
- cat1_gettime();
+ // cat1_gettime();
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ThunderBirdPresenter::HandleFuncKeyLongPress - FUNC key long press detected");
// 长按FUNC键2秒的处理逻辑
// 检查WebSocket连接状态和VAD认证状态
int wsState = ln_ws_get_connection_state();
bool wsConnected = (wsState == 2); // WS_STATE_CONNECTED = 2
- bool vadEnabled = ln_ws_is_vad_server_enabled();
+ // bool vadEnabled = ln_ws_is_vad_server_enabled();
if (!wsConnected) {