1 Star 0 Fork 3

杜森 / serial-tester

forked from Linux-APP / serial-tester 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

serial-tester

介绍

一款Linux下的串口设备测试程序:

  1. 接收测试
  2. 发送测试
  3. 回环测试
  4. 对话测试
  5. 压力测试(尚未完成)

怎么编译

$ git clone --recurse-submodules https://gitee.com/Linux-APP-chuckie/serial-tester.git
$ cd serial-tester
$ make

使用说明

$ LANG=zh_CN.UTF8 ./serial-tester

serial-tester V1.0.3,Linux下的串口测试程序,构建于 May 14 2023 21:52:19。
在运行本程序前,你可能需要将你的用户名通过命令
'sudo usermod -a -G dialout $USER' 添加到'dialout'用户组下,
或者通过'sudo'提权运行本程序(sudo ./serial-tester)
否则程序无法获取访问串口设备的权限。


USAGE: ./serial-tester <mode> [option] [arg], optional mode:
        normal: Normal mode
        recv  : Receive only mode
        send  : Send only mode
        loop  : Loopback mode
        stress: Stress test mode
    Refer to following helps.


./serial-tester normal [option] <arg>
      正常模式,类似于minicom基本功能,在控制台下实时收发数据。

    --device,-F <arg>
      指定串口设备,例如'/dev/ttyUSB0'

    --options,-o <arg>
      设置串口设备参数,参数格式: [baudrate[,data bits[,parity[,stop bits[,hardware flow]]]]]
      baudrate :  默认值为115200。
      data bits:  可选值为5~8,默认为8。
      parity   :  可选值'o','O','e','E','N','n', 默认为'n'
      stop bits:  可选值为1~2, 默认为1。
      hw flow  :  硬件流控开关。可选值为'on'/'off',默认为'off'

    --rs485,-R <arg>
      启用RS485模式,并设置RS485参数。参数格式: [delay before send[,delay after send[,level on sending]]]
      delay before send: 发送前提前使能RTS的时间,毫秒单位
      delay after send : 发送后延迟关闭RTS的时间,毫秒单位
      level on sending : 控制发送的RTS电平,可选值0-1。

    e.g.
       Normal模式,并设置串口参数为115200,8,n,1 关闭流控:
        ./serial-tester normal -F /dev/ttyS0 -o 115200,8,n,1,off


./serial-tester recv [option] <arg>
      仅接收模式,仅接收数据并打印输出或者保存到文件中。

    --device,-F <arg>
      指定串口设备,例如'/dev/ttyUSB0'

    --options,-o <arg>
      设置串口设备参数,参数格式: [baudrate[,data bits[,parity[,stop bits[,hardware flow]]]]]
      baudrate :  默认值为115200。
      data bits:  可选值为5~8,默认为8。
      parity   :  可选值'o','O','e','E','N','n', 默认为'n'
      stop bits:  可选值为1~2, 默认为1。
      hw flow  :  硬件流控开关。可选值为'on'/'off',默认为'off'

    --rs485,-R <arg>
      启用RS485模式,并设置RS485参数。参数格式: [delay before send[,delay after send[,level on sending]]]
      delay before send: 发送前提前使能RTS的时间,毫秒单位
      delay after send : 发送后延迟关闭RTS的时间,毫秒单位
      level on sending : 控制发送的RTS电平,可选值0-1。

    --dump,-D <arg>
      输打印输出模式。可选值:0/none/n,1/ascii/a,2/hex/h。
      0/none/n : 不打印输出,默认值。
      1/ascii/a:打印字符串。
      2/hex/h  :打印十六进制。

    --file,-f <arg>
      指定文件保存接收数据。

    --max-len,-l <arg>
      指定接收数据的最大长度(字节),<=0 表示一直接收。

    e.g.
       1. 仅接收数据并打印输出到控制台,指定最大接收长度为4K字节:
        ./serial-tester recv -F /dev/ttyS0 -o 115200,8,n,1,off -l 4096 -D ascii
       2. 仅接收数据并保存到文件中:
        ./serial-tester recv -F /dev/ttyS0 -o 115200,8,n,1,off -f recv.txt


./serial-tester send [option] <arg>
      仅发送模式,发送文件。若未指定发送文件,将会随机生成数据后发送。

    --device,-F <arg>
      指定串口设备,例如'/dev/ttyUSB0'

    --options,-o <arg>
      设置串口设备参数,参数格式: [baudrate[,data bits[,parity[,stop bits[,hardware flow]]]]]
      baudrate :  默认值为115200。
      data bits:  可选值为5~8,默认为8。
      parity   :  可选值'o','O','e','E','N','n', 默认为'n'
      stop bits:  可选值为1~2, 默认为1。
      hw flow  :  硬件流控开关。可选值为'on'/'off',默认为'off'

    --rs485,-R <arg>
      启用RS485模式,并设置RS485参数。参数格式: [delay before send[,delay after send[,level on sending]]]
      delay before send: 发送前提前使能RTS的时间,毫秒单位
      delay after send : 发送后延迟关闭RTS的时间,毫秒单位
      level on sending : 控制发送的RTS电平,可选值0-1。

    --dump,-D <arg>
      输打印输出模式。可选值:0/none/n,1/ascii/a,2/hex/h。
      0/none/n : 不打印输出,默认值。
      1/ascii/a:打印字符串。
      2/hex/h  :打印十六进制。

    --file,-f <arg>
      指定待发送文件。

    --max-len,-l <arg>
      指定发送数据的最大长度(字节),<=0 表示一直发送。该值在'-f'选项有效时会被忽略。

    --block,-B <arg>
      指定单次发送数据块的大小,可选值为1~64*1024,默认值为1024。

    --interval,-i <arg>
      指定发送间隔,单位毫秒,可选值:0~60*1000;0表示无间隔发送,默认0。

    e.g.
       1. 随机生成数据发送,并在控制台输出已发送数据:
        ./serial-tester send -F /dev/ttyS0 -o 115200,8,n,1,off -l 4096 -D hex
       2. 发送文件中的数据:
        ./serial-tester send -F /dev/ttyS0 -o 115200,8,n,1,off -f sent.dat


./serial-tester loop [option] <arg>
      回环模式,接收数据并回送出去同时将接收数据打印输出或者保存到文件中。

    --device,-F <arg>
      指定串口设备,例如'/dev/ttyUSB0'

    --options,-o <arg>
      设置串口设备参数,参数格式: [baudrate[,data bits[,parity[,stop bits[,hardware flow]]]]]
      baudrate :  默认值为115200。
      data bits:  可选值为5~8,默认为8。
      parity   :  可选值'o','O','e','E','N','n', 默认为'n'
      stop bits:  可选值为1~2, 默认为1。
      hw flow  :  硬件流控开关。可选值为'on'/'off',默认为'off'

    --rs485,-R <arg>
      启用RS485模式,并设置RS485参数。参数格式: [delay before send[,delay after send[,level on sending]]]
      delay before send: 发送前提前使能RTS的时间,毫秒单位
      delay after send : 发送后延迟关闭RTS的时间,毫秒单位
      level on sending : 控制发送的RTS电平,可选值0-1。

    --dump,-D <arg>
      输打印输出模式。可选值:0/none/n,1/ascii/a,2/hex/h。
      0/none/n : 不打印输出,默认值。
      1/ascii/a:打印字符串。
      2/hex/h  :打印十六进制。

    --file,-f <arg>
      指定文件保存接收数据。

    --max-len,-l <arg>
      指定接收数据的最大长度(字节),<=0 表示一直接收。

    --block,-B <arg>
      指定单次发送数据块的大小,可选值为1~64*1024,默认值为1024。

    --interval,-i <arg>
      指定发送间隔,单位毫秒,可选值:0~60*1000;0表示无间隔发送,默认0。

    e.g.
       1. 接收数据并回传数据,同时打印输出到控制台,指定最大接收长度为4K字节:
        ./serial-tester loop -F /dev/ttyS0 -o 115200,8,n,1,off -l 4096 -D ascii
       2. 接收数据并回传数据,同时保存到文件中:
        ./serial-tester loop -F /dev/ttyS0 -o 115200,8,n,1,off -f recv.txt
  1. normal/普通模式

此模式下类似于minicom/picocom,实时收发数据.

  1. recv/接收模式

此模式下仅接收数据,如果开启了-D选项,会输出接收到的数据到屏幕,此模式还支持如下选项:

  • --max-len,-l 最大读取字节数,默认为0(一直读取)。若设置该参数,则读取指定字节数的数据后自动退出。
  • --file,-f 保存接收到的数据到指定文件
  1. send/发送模式

此模式下仅发送数据,如果开启了-D选项,会输出已发送的数据到屏幕,此模式还支持如下选项:

  • -B 一次发送数据的大小(1-64*1024字节),默认1024字节。
  • -i 两次发送之间的间隔,以百毫秒为单位,默认为0,也就是无间隔。
  • --max-len,-l 最大发送字节数,默认为0(一直发送)。若设置该参数,则发送指定字节数的数据后自动退出。
  • --file,-f 从指定文件读取数据并发送,发送完成自动退出。
  1. loop/回环模式

从模式下自动将接收到的数据回传给发送者,如果开启了-D选项,会输出接收/发送的数据到屏幕,此模式还支持如下选项:

  • --max-len,-l 最大读取字节数,默认为0(一直读取)。若设置该参数,则读取指定字节数的数据后自动退出。
  • --file,-f 保存接收到的数据到指定文件
  • -B 一次发送数据的大小(1-64*1024字节),默认1024字节。
  • -i 两次发送之间的间隔,以百毫秒为单位,默认为0,也就是无间隔。
MIT License Copyright (c) 2023 chuckie Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

一款Linux下的串口设备测试程序,支持RS232/RS485/RS422: 1. normal模式,简单的类似于minicom功能,在命令行下即发即收测试,用于简单测试。 2. send only模式,测试发送功能。 3. read only模式,测试串口接收功能。 4. auto模式,自动模式,自动发送接收到的数据 5. loop模式,回环测试,将串口收发短接自动发送接收数据并校验正确性 展开 收起
C
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C
1
https://gitee.com/dooson/serial-tester.git
git@gitee.com:dooson/serial-tester.git
dooson
serial-tester
serial-tester
master

搜索帮助