From: snickersun Date: Tue, 19 May 2026 11:01:28 +0000 (+0800) Subject: 取消指令调试日志 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=715cf786df1ade622ceb94a233f21d9df29314e6;p=mirrors%2FASR1603_G5.git 取消指令调试日志 --- diff --git a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py index 8329c4fe..84012050 100644 --- a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py +++ b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/ai_VC.py @@ -5201,10 +5201,6 @@ class AI_VC(Abstract): usys.print_exception(e) #配置词 self.commands_mode = 2 #=1用大模型判断命令,=0用服务器本地插件判断命令 =2用设备本地判断方式 - try: - self._vc_intent_selftest_once() - except Exception as e: - usys.print_exception(e) self.commands = [] if self.VC_TTS_volume == None: self.VC_TTS_volume = 100 @@ -7522,50 +7518,9 @@ class AI_VC(Abstract): def check_text_server(self,cmd): return -1 - def _vc_cmd_diag(self, tag, text): - """本地指令诊断日志(保留,便于确认表驱动匹配情况)。""" - try: - print("[VC][cmd] {} type={} len={} repr={}".format( - tag, type(text).__name__, len(text) if text else 0, repr(text)[:72])) - if vc_text_intent is None: - print("[VC][cmd] {} vc_text_intent import=None".format(tag)) - return - nt = vc_text_intent.normalize_vc_command_text(text) - print("[VC][cmd] {} norm_len={} norm_repr={}".format(tag, len(nt), repr(nt)[:72])) - if nt: - print("[VC][cmd] {} find 查询={} 信号={} 版本={}".format( - tag, nt.find("查询"), nt.find("信号"), nt.find("版本"))) - for rule in vc_text_intent._INTENT_RULES: - if rule.get("id") == "query_signal": - subs = rule.get("all", ()) - if subs: - kw = subs[0] - print("[VC][cmd] {} rule_kw0 repr={} kw_in_norm={}".format( - tag, repr(kw), nt.find(kw))) - break - except Exception as e: - usys.print_exception(e) - - def _vc_intent_selftest_once(self): - if getattr(self, "_vc_intent_selftest_done", 0): - return - self._vc_intent_selftest_done = 1 - try: - print("[VC][cmd] selftest start") - if vc_text_intent is None: - print("[VC][cmd] selftest FAIL vc_text_intent=None") - return - sample = "查询信号" - r = vc_text_intent.match_vc_command(sample, {}) - print("[VC][cmd] selftest sample={} match={}".format(repr(sample), r)) - self._vc_cmd_diag("selftest", sample) - except Exception as e: - usys.print_exception(e) - def _apply_vc_text_intent(self, text, cmd, llm_style_tts): """表驱动文本意图(vc_text_intent)。未命中返回 None;命中返回 0/1/-1。""" if vc_text_intent is None: - print("[VC][cmd] vc_text_intent is None") return None try: try: @@ -7577,15 +7532,11 @@ class AI_VC(Abstract): usys.print_exception(e) return None if not r: - print("[VC][cmd] match_vc_command r is None") - self._vc_cmd_diag("match_fail", text) return None - print("[VC][cmd] match intent={}".format(r.get("intent"))) return self._apply_vc_text_intent_matched(r, cmd, llm_style_tts) def _apply_vc_text_intent_matched(self, r, cmd, llm_style_tts): if r.get("needs_payload") and cmd is None: - print("[VC][cmd] needs_payload skip intent={}".format(r.get("intent"))) return None it = r["intent"] if r.get("tts"): @@ -7946,19 +7897,14 @@ class AI_VC(Abstract): def check_text(self, text): print("check_text:len:{}".format(len(text))) - self._vc_cmd_diag("check_text_in", text) if len(text) > 60: - print("[VC][cmd] check_text skip len>60") return -1 try: if not isinstance(text, str): - print("[VC][cmd] check_text skip not str type={}".format(type(text).__name__)) return -1 ret = self._apply_vc_text_intent(text, None, False) if ret is not None: - print("[VC][cmd] check_text table ret={}".format(ret)) return ret - print("[VC][cmd] check_text no_match ret=-1") except Exception as e: usys.print_exception(e) return -1 diff --git a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/default_config.py b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/default_config.py index 4360c218..d26ea6f3 100644 --- a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/default_config.py +++ b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/default_config.py @@ -1,193 +1,193 @@ -# -*- coding: utf-8 -*- -# k8 产品 — 设备侧默认配置(编译期 freeze 进固件) -# -# 加载优先级(vc_config.py): -# 1) usr/default_config.py(现场覆盖) -# 2) 本文件(由 new_clean.bat 按 product_k8.ini 的 DEV_TYPE 拷贝到 core/default_config.py) -# -# 约定:仅放「机型/产品差异」常量,勿放运行态变量。 - -# ============================================================================= -# 1. 产品与区域 -# ============================================================================= - -# 硬件平台类型(与 products/configs// 目录名一致) -DEV_TYPE = "7PIN" - -# 文案/逻辑用语言(如 zh / en) -LANG = "zh" - -# 设备鉴权(device_res_author:HMAC 签名与 AES 加解密)产品名“小量博士” -PRODUCT_PID = "DieBeXahZHLrjSnORbgN" -PRODUCT_KEY = "FuXG4ptpGbzvKbdB4vpUypisbENgy2nB" # 32 字节,运行时转为 bytes - -# ============================================================================= -# 2. GPIO 引脚 -# ============================================================================= - -# --- 2.1 三色 LED(Pin 属性名字符串,vc_config 转为 Pin.GPIOxx)--- -LED_GPIO = ("GPIO36", "GPIO44", "GPIO43") # (R, G, B) - -# 点亮电平:False=高电平亮;True=低电平亮;仅某路反相用 LED_ACTIVE_LOW_RGB -LED_ACTIVE_LOW = False -LED_ACTIVE_LOW_RGB = None # 例 (True, False, False) 仅红灯反相 - -# --- 2.2 按键 ExtInt --- -EXTINT_AI_GPIO = "GPIO22" # AI 键 -PWK_KEY_GPIO = "GPIO26" # 电源键(短按/双击切模式等) - -# btn_device_ec800m:扩展按键(本机型未用) -BTN_WECHAT_GPIO = None -BTN_SOS_GPIO = None - -# --- 2.3 马达(motor.py / motorEventManager)--- -MOTOR_PIN_GPIO = "GPIO20" # None 表示无马达 -MOTOR_TICK_MS = 100 -MOTOR_ACTIVE_LOW = False -MOTOR_BOOT_VIBRATE_MS = 200 # 开机震动时长(ms) - -# --- 2.4 蓝牙电源 / 音频 IIS(本机型关闭)--- -BT_POWER_MOTOR_ENABLED = False -PIN_BT_ON_GPIO = None -PIN_MOT_GPIO = None -AUDIO_QDAI_CFG = None # 非 None 时调用 audio.set_qdai_cfg(...) - -# --- 2.5 蓝牙↔4G 唤醒(本机型关闭)--- -BT_WAKEUP_4G_ENABLED = False -EXTINT_WAKEUP_CTA1_GPIO = None -PIN_WAKEUP_BT_GPIO = None - -# ============================================================================= -# 3. LED 灯效策略(AI_led / ai_VC,对齐交互规范) -# ============================================================================= - -# 正常待机 idle:off=灭灯(REQ-BAT-01);green_blink=旧工程绿灯慢闪 -LED_IDLE_MODE = "off" - -# green_blink 模式下的亮/灭时长(ms);LED_IDLE_MODE=off 时不生效 -LED_IDLE_GREEN_BLINK_MS = 1000 -LED_IDLE_GREEN_BLINK_OFF_MS = 2000 - -# LLM 思考阶段:flicker_blue_green | open_red_green -THINKING_LED_MODE = "flicker_blue_green" - -# 收到 vad.active 是否强制回蓝灯(长对话) -VAD_ACTIVE_BLUE_LED = True - -# 收音 listening:长对话蓝慢闪(1000ms)、单对话蓝快闪(250ms) 由 VC_mode 在 AI_led 内切换,无需本文件单独配置 - -# ============================================================================= -# 4. 电池与硬件状态(AI_hw_status / AI_dev) -# ============================================================================= - -HW_STATUS_PERIOD_MS = 10000 -SIGNAL_WEAK_CSQ = 10 # 0≤CSQ<此值 → signal=weak(REQ-ERR-02) - -# SoC 百分比门限(OCV 模式,对齐 REQ-BAT-02/03) -BATTERY_LOW_SOC_PERCENT = 30 -BATTERY_EMPTY_SOC_PERCENT = 10 -BATTERY_LOW_WARN_INTERVAL_MS = 300000 # 低电语音间隔 5min -BATTERY_EMPTY_FLASH_COUNT = 3 -BATTERY_EMPTY_FLASH_PERIOD_MS = 500 # 空电红快闪约 2 次/秒 - -# 电压门限(mV):充满 / 低电 / 空电(与 get_battery、simple 模式共用) -USE_SIMPLE_VBATT_THRESH = False # True 时忽略 BATTERY_OCV_MAP,仅用三档电压 -VBATT_CHARGE_FULL_MV = 4290 -VBATT_LOW_MV = 3699 -VBATT_EMPTY_MV = 3629 - -# 开路电压(mV)→SoC(%) 插值表;None 则用 ai_VC 内置默认表 -BATTERY_OCV_MAP = { - 4290: 100, 4237: 95, 4179: 90, 4123: 85, 4070: 80, 4020: 75, 3963: 70, 3919: 65, 3882: 60, 3847: 55, - 3818: 50, 3794: 45, 3772: 40, 3752: 35, 3733: 30, 3716: 25, 3699: 20, 3677: 15, 3652: 10, 3629: 5, 3400: 0, -} - -# ============================================================================= -# 5. 可选外设与协议 -# ============================================================================= - -GNSS_ENABLED = False # 无 GNSS 硬件时 False,避免 import quecgnss -UART_SUPPORTED = False -BT_OTA_ENABLED = False -UPLOAD_START_TONE_ENABLED = False # 开始上传语音时是否播成功提示音 - -# ============================================================================= -# 6. 按键逻辑(AI_dev / btn_device) -# ============================================================================= - -KEY_RELEASE_DEBOUNCE_COUNT = 5 -AI_LONG_PRESS_POWER_OFF_ENABLED = False # AI 键长按 8s 关机 -SOS_ENABLED = False # AI 长按 3s SOS、板载 SOS 入口 - -# ============================================================================= -# 7. VC 会话 / WebSocket / 空闲与休眠 -# ============================================================================= - -# 语音 WS 路径段(无首尾斜杠);完整 URL 见 default_srv.AMP_SERVER + 文首拼接说明 -VC_WS_PATH = "vc/agent" -VC_WS_PING_INTERVAL_SEC = 55 # 文本 ping 间隔,过大影响保活,过小费电 - -# 长对话:无有效业务下行累计达此秒数结束会话(代码最小 5) -VC_IDLE_AUTO_CLOSE_SEC = 20 -VC_IDLE_AUTO_CLOSE_SEC_PTT = 0 # 单对话预留,当前与 idle 统一处理 - -# 业务 idle 达此秒数触发深睡断开(最小 10;ENABLE=0 关闭) -VC_IDLE_DEEP_SLEEP_SEC = 60 -VC_IDLE_DEEP_SLEEP_ENABLE = 1 - -VAD_SILENCE_DEFAULT = 300 # VAD 静音阈值(ms) - -# ============================================================================= -# 8. 语音对话 / TTS / 智能体 -# ============================================================================= - -POWER_ON_TONE_ENABLED = True -POWER_ON_TONE_DEFAULT = "你好,我来了" - -VC_TTS_VOICE_TYPE_DEFAULT = None # dict 或 None -VC_TTS_VOICE_KEY_DEFAULT = None # 如 "男" / "ç«¥" - -DIALOG_BOT_OPTION = None # {"bot_id", "workflow_id", "use_workflow"} -VC_BOT_ID = "7462617881076351002" -VC_WORKFLOW_ID = "7462621757327196187" -DIALOG_PROVIDER_DEFAULT = None -KEYWORDS_FROM_VOICE_TYPE = False - -BT_VOICE_FEATURES_ENABLED = False - -# ============================================================================= -# 9. 本地指令与固定话术 -# ============================================================================= - -# protocol.ai_cmd_handle:云端 NLP 扩展(会议纪要 / 实时翻译 / 历史留言) -NLP_EXTENDED_CMDS = False - -CMD_TOGGLE_MODE_TO_PTT_TTS = "已切换到单对话模式" -CMD_TOGGLE_MODE_TO_LONG_TTS = "已切换到长对话模式" -POWEROFF_CMD_CLOSE_ONLY = False # 「关机」指令仅 Close,不真断电 - -KWS_PTT_HINT = "请您按住圆形的按钮开始讲话,讲完松开即可 " -PTT_HINT = "请您按住圆形的按钮开始讲话,讲完松开即可 " - -# ============================================================================= -# 10. 按键音 / 开录音 / PTT 时序(k8:开录仅以灯提示,不播专用开录音) -# ============================================================================= - -KEY_PRESS_TONE_FILE = None # AI 短按操作音;None=不播 -KEY_PRESS_TONE_DELAY_MS = 300 - -RECORD_START_TONE_FILE = None # 单对话长按开录提示音;None=仅蓝快闪 -RECORD_START_TONE_GAP_MS = 180 - -PTT_RELEASE_END_SPEECH_DELAY_MS = 200 # 松手后发 audio.completed 前延迟 -PTT_CANCEL_WAIT_MS = 2500 # 打断后等 canceled 最长时间 -PTT_POST_MUTE_MS = 30 # 本地硬静音后 codec 收尾 - -# ============================================================================= -# 11. 调试开关(量产可全 False) -# ============================================================================= - -LED_DEBUG = True -LED_STATE_DEBUG = True -KEY_LED_DEBUG = True +# -*- coding: utf-8 -*- +# k8 产品 — 设备侧默认配置(编译期 freeze 进固件) +# +# 加载优先级(vc_config.py): +# 1) usr/default_config.py(现场覆盖) +# 2) 本文件(由 new_clean.bat 按 product_k8.ini 的 DEV_TYPE 拷贝到 core/default_config.py) +# +# 约定:仅放「机型/产品差异」常量,勿放运行态变量。 + +# ============================================================================= +# 1. 产品与区域 +# ============================================================================= + +# 硬件平台类型(与 products/configs// 目录名一致) +DEV_TYPE = "7PIN" + +# 文案/逻辑用语言(如 zh / en) +LANG = "zh" + +# 设备鉴权(device_res_author:HMAC 签名与 AES 加解密)产品名“小量博士” 、“浪漫挂坠” +PRODUCT_PID = "cqxJZi5CNgzjS3mX21Zw" +PRODUCT_KEY = "uKLrChwrxA1LklgBc3VwawYjUkbT3BgX" # 32 字节,运行时转为 bytes + +# ============================================================================= +# 2. GPIO 引脚 +# ============================================================================= + +# --- 2.1 三色 LED(Pin 属性名字符串,vc_config 转为 Pin.GPIOxx)--- +LED_GPIO = ("GPIO36", "GPIO44", "GPIO43") # (R, G, B) + +# 点亮电平:False=高电平亮;True=低电平亮;仅某路反相用 LED_ACTIVE_LOW_RGB +LED_ACTIVE_LOW = False +LED_ACTIVE_LOW_RGB = None # 例 (True, False, False) 仅红灯反相 + +# --- 2.2 按键 ExtInt --- +EXTINT_AI_GPIO = "GPIO22" # AI 键 +PWK_KEY_GPIO = "GPIO26" # 电源键(短按/双击切模式等) + +# btn_device_ec800m:扩展按键(本机型未用) +BTN_WECHAT_GPIO = None +BTN_SOS_GPIO = None + +# --- 2.3 马达(motor.py / motorEventManager)--- +MOTOR_PIN_GPIO = "GPIO20" # None 表示无马达 +MOTOR_TICK_MS = 100 +MOTOR_ACTIVE_LOW = False +MOTOR_BOOT_VIBRATE_MS = 200 # 开机震动时长(ms) + +# --- 2.4 蓝牙电源 / 音频 IIS(本机型关闭)--- +BT_POWER_MOTOR_ENABLED = False +PIN_BT_ON_GPIO = None +PIN_MOT_GPIO = None +AUDIO_QDAI_CFG = None # 非 None 时调用 audio.set_qdai_cfg(...) + +# --- 2.5 蓝牙↔4G 唤醒(本机型关闭)--- +BT_WAKEUP_4G_ENABLED = False +EXTINT_WAKEUP_CTA1_GPIO = None +PIN_WAKEUP_BT_GPIO = None + +# ============================================================================= +# 3. LED 灯效策略(AI_led / ai_VC,对齐交互规范) +# ============================================================================= + +# 正常待机 idle:off=灭灯(REQ-BAT-01);green_blink=旧工程绿灯慢闪 +LED_IDLE_MODE = "off" + +# green_blink 模式下的亮/灭时长(ms);LED_IDLE_MODE=off 时不生效 +LED_IDLE_GREEN_BLINK_MS = 1000 +LED_IDLE_GREEN_BLINK_OFF_MS = 2000 + +# LLM 思考阶段:flicker_blue_green | open_red_green +THINKING_LED_MODE = "flicker_blue_green" + +# 收到 vad.active 是否强制回蓝灯(长对话) +VAD_ACTIVE_BLUE_LED = True + +# 收音 listening:长对话蓝慢闪(1000ms)、单对话蓝快闪(250ms) 由 VC_mode 在 AI_led 内切换,无需本文件单独配置 + +# ============================================================================= +# 4. 电池与硬件状态(AI_hw_status / AI_dev) +# ============================================================================= + +HW_STATUS_PERIOD_MS = 10000 +SIGNAL_WEAK_CSQ = 10 # 0≤CSQ<此值 → signal=weak(REQ-ERR-02) + +# SoC 百分比门限(OCV 模式,对齐 REQ-BAT-02/03) +BATTERY_LOW_SOC_PERCENT = 30 +BATTERY_EMPTY_SOC_PERCENT = 10 +BATTERY_LOW_WARN_INTERVAL_MS = 300000 # 低电语音间隔 5min +BATTERY_EMPTY_FLASH_COUNT = 3 +BATTERY_EMPTY_FLASH_PERIOD_MS = 500 # 空电红快闪约 2 次/秒 + +# 电压门限(mV):充满 / 低电 / 空电(与 get_battery、simple 模式共用) +USE_SIMPLE_VBATT_THRESH = False # True 时忽略 BATTERY_OCV_MAP,仅用三档电压 +VBATT_CHARGE_FULL_MV = 4290 +VBATT_LOW_MV = 3699 +VBATT_EMPTY_MV = 3629 + +# 开路电压(mV)→SoC(%) 插值表;None 则用 ai_VC 内置默认表 +BATTERY_OCV_MAP = { + 4290: 100, 4237: 95, 4179: 90, 4123: 85, 4070: 80, 4020: 75, 3963: 70, 3919: 65, 3882: 60, 3847: 55, + 3818: 50, 3794: 45, 3772: 40, 3752: 35, 3733: 30, 3716: 25, 3699: 20, 3677: 15, 3652: 10, 3629: 5, 3400: 0, +} + +# ============================================================================= +# 5. 可选外设与协议 +# ============================================================================= + +GNSS_ENABLED = False # 无 GNSS 硬件时 False,避免 import quecgnss +UART_SUPPORTED = False +BT_OTA_ENABLED = False +UPLOAD_START_TONE_ENABLED = False # 开始上传语音时是否播成功提示音 + +# ============================================================================= +# 6. 按键逻辑(AI_dev / btn_device) +# ============================================================================= + +KEY_RELEASE_DEBOUNCE_COUNT = 5 +AI_LONG_PRESS_POWER_OFF_ENABLED = False # AI 键长按 8s 关机 +SOS_ENABLED = False # AI 长按 3s SOS、板载 SOS 入口 + +# ============================================================================= +# 7. VC 会话 / WebSocket / 空闲与休眠 +# ============================================================================= + +# 语音 WS 路径段(无首尾斜杠);完整 URL 见 default_srv.AMP_SERVER + 文首拼接说明 +VC_WS_PATH = "vc/agent" +VC_WS_PING_INTERVAL_SEC = 55 # 文本 ping 间隔,过大影响保活,过小费电 + +# 长对话:无有效业务下行累计达此秒数结束会话(代码最小 5) +VC_IDLE_AUTO_CLOSE_SEC = 20 +VC_IDLE_AUTO_CLOSE_SEC_PTT = 0 # 单对话预留,当前与 idle 统一处理 + +# 业务 idle 达此秒数触发深睡断开(最小 10;ENABLE=0 关闭) +VC_IDLE_DEEP_SLEEP_SEC = 60 +VC_IDLE_DEEP_SLEEP_ENABLE = 1 + +VAD_SILENCE_DEFAULT = 300 # VAD 静音阈值(ms) + +# ============================================================================= +# 8. 语音对话 / TTS / 智能体 +# ============================================================================= + +POWER_ON_TONE_ENABLED = True +POWER_ON_TONE_DEFAULT = "你好,我来了" + +VC_TTS_VOICE_TYPE_DEFAULT = None # dict 或 None +VC_TTS_VOICE_KEY_DEFAULT = None # 如 "男" / "ç«¥" + +DIALOG_BOT_OPTION = None # {"bot_id", "workflow_id", "use_workflow"} +VC_BOT_ID = "7462617881076351002" +VC_WORKFLOW_ID = "7462621757327196187" +DIALOG_PROVIDER_DEFAULT = None +KEYWORDS_FROM_VOICE_TYPE = False + +BT_VOICE_FEATURES_ENABLED = False + +# ============================================================================= +# 9. 本地指令与固定话术 +# ============================================================================= + +# protocol.ai_cmd_handle:云端 NLP 扩展(会议纪要 / 实时翻译 / 历史留言) +NLP_EXTENDED_CMDS = False + +CMD_TOGGLE_MODE_TO_PTT_TTS = "已切换到单对话模式" +CMD_TOGGLE_MODE_TO_LONG_TTS = "已切换到长对话模式" +POWEROFF_CMD_CLOSE_ONLY = False # 「关机」指令仅 Close,不真断电 + +KWS_PTT_HINT = "请您按住圆形的按钮开始讲话,讲完松开即可 " +PTT_HINT = "请您按住圆形的按钮开始讲话,讲完松开即可 " + +# ============================================================================= +# 10. 按键音 / 开录音 / PTT 时序(k8:开录仅以灯提示,不播专用开录音) +# ============================================================================= + +KEY_PRESS_TONE_FILE = None # AI 短按操作音;None=不播 +KEY_PRESS_TONE_DELAY_MS = 300 + +RECORD_START_TONE_FILE = None # 单对话长按开录提示音;None=仅蓝快闪 +RECORD_START_TONE_GAP_MS = 180 + +PTT_RELEASE_END_SPEECH_DELAY_MS = 200 # 松手后发 audio.completed 前延迟 +PTT_CANCEL_WAIT_MS = 2500 # 打断后等 canceled 最长时间 +PTT_POST_MUTE_MS = 30 # 本地硬静音后 codec 收尾 + +# ============================================================================= +# 11. 调试开关(量产可全 False) +# ============================================================================= + +LED_DEBUG = True +LED_STATE_DEBUG = True +KEY_LED_DEBUG = True HW_STATUS_DEBUG = True \ No newline at end of file diff --git a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/versions.py b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/versions.py index 58b983c3..d6f94455 100644 --- a/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/versions.py +++ b/2.sdk/project/7PIN_1_5/sdk/services/microPython/ports/quectel/core/versions.py @@ -1,3 +1,3 @@ -Product_Name="k8_jswm" +Product_Name="k8" Version="V1.2" -Build_Time="2026-05-19 18:04:57" +Build_Time="2026-05-19 18:50:27"