#!/bin/bash

# 串口设备路径（根据实际情况修改）
SERIAL_DEVICE="/dev/ttyUSB0"
BAUD_RATE="9600"

# 检查是否指定了串口设备
if [ "$1" != "" ]; then
    SERIAL_DEVICE="$1"
fi

# 检查串口设备是否存在
if [ ! -e "$SERIAL_DEVICE" ]; then
    echo "Error: Serial device $SERIAL_DEVICE not found"
    echo "Available serial devices:"
    ls /dev/tty* | grep -E "tty(USB|ACM|S)"
    exit 1
fi

echo "Testing serial device: $SERIAL_DEVICE"
echo "======================================"

# 使用stty设置串口参数，使用cat读取响应
setup_serial() {
    stty -F $SERIAL_DEVICE $BAUD_RATE cs8 -cstopb -parenb -icanon min 1 time 1
}

# 发送命令函数
send_command() {
    local command="$1"
    echo "Sending: $command"
    echo -e "$command\r" > $SERIAL_DEVICE
    
    # 等待并读取响应
    sleep 0.5
    echo -n "Response: "
    timeout 1 cat $SERIAL_DEVICE || echo "No response"
    echo "----------------------------------------"
}

# 设置串口
setup_serial

# 运行测试
echo "Starting basic tests..."

send_command "HELP"
send_command "STATUS"
send_command "POWER 1"
send_command "STATUS"
send_command "POWER 2"
send_command "STATUS"
send_command "PC"
send_command "STATUS"
send_command "VERSATILE 1"
send_command "STATUS"
send_command "OFF"
send_command "STATUS"
send_command "help"
send_command "power 1"

echo "Tests completed"