修改bug
authorazao <821478748@qq.com>
Fri, 27 Feb 2026 03:45:01 +0000 (11:45 +0800)
committerazao <821478748@qq.com>
Fri, 27 Feb 2026 03:45:01 +0000 (11:45 +0800)
2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py

index c5ea7e0..7fe1bfe 100644 (file)
@@ -1003,6 +1003,7 @@ class AI_dev(Abstract):
         self.KeyAI_long_press = 0
         self.KeySos_long_press = 0
         self.KeyAI_press = 0
+        self.last_ai_key_time = 0#让ai按键不要频繁调用
         if self.is_wdt == 1:
             self.wdt = WDT(30) #开启看门狗
         # self.wdt_timer = osTimer()
@@ -1322,20 +1323,20 @@ class AI_dev(Abstract):
         interval = 0
 
         try:
-            # 1. 按键电平判断(硬件低电平按下,根据实际调整)
+            #按键电平判断
             press_level = 0
             current_level = self.pwk_key.read_level()
             if current_level != press_level:
                 return  # 非按下状态,直接返回
 
-            # 2. 消抖处理
+            #消抖处理
             current_time = utime.ticks_ms()
             if utime.ticks_diff(current_time, self.last_key_time) < self.key_debounce_interval:
                 return
             self.last_key_time = current_time  # 更新最后按键时间
             print("pwk 按键按下")
 
-            # 3. 仅处理"按下瞬间"事件(避免重复触发)
+            #仅处理"按下瞬间"事件(避免重复触发)
             if len(args) < 2:
                 print("args参数不足,跳过")
                 return
@@ -1343,7 +1344,7 @@ class AI_dev(Abstract):
             if self.pwk_key_status != 1:
                 return
 
-            # 4. 双击计数逻辑
+            #双击计数逻辑
             self.pwk_press_count += 1
             current_time = utime.ticks_ms()
 
@@ -1364,7 +1365,7 @@ class AI_dev(Abstract):
                 # 计算两次按下间隔
                 interval = utime.ticks_diff(current_time, self.pwk_first_press_time)
                 
-                # 2.1 符合双击阈值:执行双击逻辑
+                #符合双击阈值:执行双击逻辑
                 if interval <= self.double_click_threshold:
                     self.pwk_key_timer.stop()  # 停止长按定时器(关键:避免触发长按)
                     self.pwk_key_double_press() # 执行双击业务
@@ -1374,7 +1375,7 @@ class AI_dev(Abstract):
                     self.pwk_key_press = 0
                     self.pwk_key_timer_count = 0
 
-                # 2.2 间隔过长:视为新的第一次按下
+                #间隔过长:视为新的第一次按下
                 else:
                     self.pwk_first_press_time = current_time  # 更新首次按下时间
                     self.pwk_press_count = 1                  # 重置为第一次按下
@@ -1449,6 +1450,17 @@ class AI_dev(Abstract):
     def keyAI_extint_cb(self,args):#call 2
         try:
             #print("AI_btn:keyAI_extint_cb{}".format(args[1]))
+            #定义最短触发间隔
+            MIN_TRIGGER_INTERVAL = 100  # 可根据需求调整,单位ms
+            #记录上次按键触发时间(初始化放类的__init__里:self.last_ai_key_time = 0)
+            current_time = utime.ticks_ms()  # 获取当前毫秒时间
+            #重复按下,直接返回
+            if utime.ticks_diff(current_time, self.last_ai_key_time) < MIN_TRIGGER_INTERVAL:
+                print("AI按键触发过频,忽略本次操作")
+                return
+            #更新上次触发时间
+            self.last_ai_key_time = current_time
+
             self.KeyAI_status = int(args[1])
             if self.KeyAI_status == 0:
                 self.KeyAI_status = 1
@@ -3536,7 +3548,7 @@ class AI_VC(Abstract):
         
         if self.VC_mode == 1: #长按对话模式 接收到蓝牙耳机按键事件
             
-            tts_str = "请您按住中间的按钮开始讲话,讲完松开即可 "
+            tts_str = "请您按住圆形的按钮开始讲话,讲完松开即可 "
             EventMesh.publish("play_tts",[tts_str,1])
             return
         # if dev_type == "7PIN":
@@ -3617,7 +3629,7 @@ class AI_VC(Abstract):
                 if dev_type == "7PIN_BK_EU":
                     self.AI_TTS_str = "Please press and hold the button to speak. "
                 else:
-                    self.AI_TTS_str = "请您按住中间的按钮开始讲话,讲完松开即可 "
+                    self.AI_TTS_str = "请您按住圆形的按钮开始讲话,讲完松开即可 "
                 EventMesh.publish("publish_AI_btnInfo",{"func":self.AI_VC_start})
                 pass
                 
@@ -5830,7 +5842,7 @@ class AI_VC(Abstract):
             return
         print("kws_even_cb")
         if self.VC_mode == 1: 
-            tts_str = "请您按住中间的按钮开始讲话,讲完松开即可 "
+            tts_str = "请您按住圆形的按钮开始讲话,讲完松开即可 "
             EventMesh.publish("play_tts",[tts_str,1]) 
             return
         if self.VC_mode == 0: