首页 技术分享 正文
  • 本文约1121字,阅读需6分钟
  • 1508
  • 2

Linux系统测试RS485串口

使用脚本对设备的RS485串口进行数据传输测试,并记录到日志


#!/bin/bash
# 生成包含日期的日志文件名
log_file="RS485-$(date +%Y-%m-%d).log"
#记录时间戳
timestamp=$(date +"%Y-%m-%d %H:%M:%S")
# 用于保存cat命令PID的数组
cat_pids=()
# 定义一个函数来设置tty的echo选项
function set_tty_echo {
    tty_device=$1
    stty -F "$tty_device" -echo
}
# 列出所有tty设备
tty_devices=("/dev/ttyWCH0" "/dev/ttyWCH1" "/dev/ttyWCH2" "/dev/ttyWCH3" "/dev/ttyWCH4"
             "/dev/ttyWCH5" "/dev/ttyWCH6" "/dev/ttyWCH7" "/dev/ttyWCH8" "/dev/ttyWCH9")
# 遍历tty设备,设置echo选项并启动cat命令
for tty_device in "${tty_devices[@]}"; do
    set_tty_echo "$tty_device"
    # 启动cat命令,并将其PID保存到数组中
    cat "$tty_device" >> "$log_file" &
    cat_pids+=($!)  # $! 是上一个后台命令的PID
done
echo "                                     " >>  "$log_file"
echo "=====================================" >>  "$log_file"
echo "            RS485 TEST" >> "$log_file"
echo "脚本由技术部提供,有问题请联系技术部 " >>  "$log_file"
echo "  网址:https://www.it525.com " >> "$log_file"
echo "=====================================" >>  "$log_file"
echo "                                     " >>  "$log_file"
echo "测试时间:$timestamp" >> "$log_file"
# 遍历tty设备,发送测试消息
for tty_device in "${tty_devices[@]}"; do
    echo "Test message $tty_device" > "$tty_device"
    sleep 1
done
# 脚本结束,杀死所有后台cat命令
for pid in "${cat_pids[@]}"; do
    kill "$pid" 2>/dev/null || true  # 忽略不存在的PID错误
done
echo "All cat commands have been killed."
echo "Test over ,check $log_file "



    评论
    更换验证码
    $comment['poster']
    TommyTot
    0
    92.118.88.107 ChromeWindows 10
    hi
    29 天前
    回复
    $comment['poster']
    92.118.88.107 Unknown BrowserOther
    大模型处理异常,请稍后再试,错误信息:404.
    29 天前
    回复
    友情链接