Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion tyutool/ai_debug/ser_debug.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ def __init__(self, port, baud, save,
'1': {'name': 'dump_ref.pcm',
'file': None, 'active': False, 'length': 0},
'2': {'name': 'dump_aec.pcm',
'file': None, 'active': False, 'length': 0},
'3': {'name': 'dump_kws.pcm',
'file': None, 'active': False, 'length': 0},
'4': {'name': 'dump_vad.pcm',
'file': None, 'active': False, 'length': 0}
}
self.current_dump_channel = None
Expand Down Expand Up @@ -133,6 +137,13 @@ def send_command(self, cmd):
return False
return True

def send_echo(self, message):
if not message:
self.logger.warning(f"Invalid message")
return

self.send_command(f"echo {message}")

def start_dump(self, channel, prefix=""):
if channel not in self.dump_files:
self.logger.warning(f"Invalid channel: {channel}")
Expand Down Expand Up @@ -195,6 +206,8 @@ def show_help(self):
print("dump 0 - Dump microphone channel")
print("dump 1 - Dump reference channel")
print("dump 2 - Dump AEC channel")
print("dump 3 - Dump KWS channel")
print("dump 4 - Dump VAD channel")
print("bg 0 - white noise")
print("bg 1 - 1K-0dB (bg 1 1000)")
print("bg 2 - sweep frequency constantly")
Expand All @@ -210,6 +223,7 @@ def show_help(self):
print("alg get <para> \
- Get audio algorithm parameters (e.g.: alg get aec_ec_depth)")
print("alg dump - Dump audio algorithm parameters")
print("echo <info> - Send message")
print("quit - Exit the program")
pass

Expand All @@ -224,11 +238,16 @@ def process_input_cmd(self, cmd):
return True

# Dump
if cmd in ['dump 0', 'dump 1', 'dump 2']:
if cmd in ['dump 0', 'dump 1', 'dump 2', 'dump 3', 'dump 4']:
channel = cmd.split()[1]
self.start_dump(channel)
return True

elif cmd.startswith('echo'):
message = cmd.split()[1]
self.send_echo(message)
return True

# Check [alg set] params
elif cmd.startswith('alg set '):
parts = cmd.split()
Expand Down
44 changes: 44 additions & 0 deletions tyutool/cli/cli_ai_debug.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# -*- coding: utf-8 -*-

import sys
import time
import click
import threading

Expand Down Expand Up @@ -134,9 +135,52 @@ def ser_auto_cli(port, baud, save):
pass


@click.command()
@click.option('-p', '--port',
type=str, required=False,
help="Target port")
@click.option('-b', '--baud',
type=int, default=460800,
help="Uart baud rate")
@click.option('-w', '--wait',
type=int, default=5,
help="wait for recvice uart dump.")
@click.option('-s', '--save',
type=str, default="ser_ai_debug",
help="Save assets to catalog.")
@click.argument('cmd_args', nargs=-1, required=True)

def ser_cli_cmd(port, baud, save, wait, cmd_args):
logger = get_logger()
logger.debug(f"port: {port}")
logger.debug(f"baud: {baud}")
logger.debug(f"save: {save}")
logger.debug(f"wait: {wait}")
logger.debug(f"cmd: {cmd_args}")

monitor = SerAIDebugMonitor(port, baud, save, logger, gui_mode=False)

if not monitor.open_port():
return

# 启动读取线程
monitor.start_reading()

# 输入命令,
cmd = " ".join(cmd_args)
print(cmd)
monitor.process_input_cmd("".join(cmd))
if cmd in ['dump 0', 'dump 1', 'dump 2', 'dump 3', 'dump 4']:
time.sleep(wait)
monitor.stop_reading()
monitor.close_port()
pass


CLIS = {
"web": web_cli,
"ser": ser_cli,
"ser_cmd": ser_cli_cmd,
"ser_auto": ser_auto_cli,
}

Expand Down
6 changes: 6 additions & 0 deletions tyutool/gui/ser_debug/ser_debug_ui.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,12 @@ def serDebugUiSetup(self):
self.ui.pushButtonSDDump2.clicked.connect(
lambda: self.pushButtonSDCmdClicked("dump 2")
)
self.ui.pushButtonSDDump3.clicked.connect(
lambda: self.pushButtonSDCmdClicked("dump 3")
)
self.ui.pushButtonSDDump4.clicked.connect(
lambda: self.pushButtonSDCmdClicked("dump 4")
)
self.ui.pushButtonSDBg0.clicked.connect(
lambda: self.pushButtonSDCmdClicked("bg 0")
)
Expand Down
30 changes: 30 additions & 0 deletions tyutool/gui/ui_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -560,6 +560,34 @@ def setupUi(self, MainWindow):

self.verticalLayout_11.addLayout(self.horizontalLayout_17)

self.horizontalLayout_50 = QHBoxLayout()
self.horizontalLayout_50.setObjectName(u"horizontalLayout_50")
self.pushButtonSDDump3 = QPushButton(self.scrollAreaWidgetContents)
self.pushButtonSDDump3.setObjectName(u"pushButtonSDDump3")
self.pushButtonSDDump3.setStyleSheet(u"text-align: left;\n"
"padding-left: 10px;\n"
"padding-top: 4px;\n"
"padding-bottom: 4px;")

self.horizontalLayout_50.addWidget(self.pushButtonSDDump3)


self.verticalLayout_11.addLayout(self.horizontalLayout_50)

self.horizontalLayout_51 = QHBoxLayout()
self.horizontalLayout_51.setObjectName(u"horizontalLayout_51")
self.pushButtonSDDump4 = QPushButton(self.scrollAreaWidgetContents)
self.pushButtonSDDump4.setObjectName(u"pushButtonSDDump4")
self.pushButtonSDDump4.setStyleSheet(u"text-align: left;\n"
"padding-left: 10px;\n"
"padding-top: 4px;\n"
"padding-bottom: 4px;")

self.horizontalLayout_51.addWidget(self.pushButtonSDDump4)


self.verticalLayout_11.addLayout(self.horizontalLayout_51)

self.horizontalLayout_18 = QHBoxLayout()
self.horizontalLayout_18.setObjectName(u"horizontalLayout_18")
self.pushButtonSDBg0 = QPushButton(self.scrollAreaWidgetContents)
Expand Down Expand Up @@ -1187,6 +1215,8 @@ def retranslateUi(self, MainWindow):
self.pushButtonSDDump0.setText(QCoreApplication.translate("MainWindow", u"dump: microphone channel", None))
self.pushButtonSDDump1.setText(QCoreApplication.translate("MainWindow", u"dump: reference channel", None))
self.pushButtonSDDump2.setText(QCoreApplication.translate("MainWindow", u"dump: AEC channel", None))
self.pushButtonSDDump3.setText(QCoreApplication.translate("MainWindow", u"dump: KWS channel", None))
self.pushButtonSDDump4.setText(QCoreApplication.translate("MainWindow", u"dump: VAD channel", None))
self.pushButtonSDBg0.setText(QCoreApplication.translate("MainWindow", u"play: white noise", None))
self.pushButtonSDBg1.setText(QCoreApplication.translate("MainWindow", u"play: 1K-0dB", None))
self.pushButtonSDBg2.setText(QCoreApplication.translate("MainWindow", u"play: sweep frequency constantly", None))
Expand Down
2 changes: 1 addition & 1 deletion tyutool/util/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import socket

TYUTOOL_ROOT = os.path.dirname(os.path.abspath(sys.argv[0]))
TYUTOOL_VERSION = "2.1.0"
TYUTOOL_VERSION = "2.2.0"


def tyutool_env():
Expand Down