硬件


用于监听RS232线缆信号的控制器

产品特点:

● 监听RS232线缆的TXD/RXD信号
● 按超时间隔自动分包
● USB Type-C接口

接线方式:

● 两个公母DB9分别接上下行电缆
● USB接口接PC

软件

串口通讯常见问题
C语言编程常见问题

串口指令:

监听指令:
=>sniff --help
usage: sniff [-C] [-b ] [-i ]
options:
 -C/--ascii      ascii mode
 -b/--baudrate   default 9600
 -i/--interval   default 1(tick)
=> 

示例:

修改波特率115200bps(默认9600)后开始监听:
=>sniff -b 115200
0:02:43.216>2A49444E3F0A
0:02:43.224<4B4F524144204B4133303035502056352E3520534E3A31363037323637300A
0:02:43.268>5354415455533F0A
0:02:43.280<020A
0:02:43.296>56534554313A352E30300A49534554313A352E30300A4F5554310A56534554313F0A
0:02:43.336<30352E30300A
0:02:43.348>49534554313F0A
0:02:43.356<352E3030300A
0:02:43.368>564F5554313F0A
0:02:43.380<30322E38380A
0:02:43.392>494F5554313F0A
0:02:43.404<302E3035360A
0:02:43.416>564F5554313F0A
0:02:43.428<30322E38380A
0:02:43.440>494F5554313F0A
0:02:43.448<302E3035360A
0:02:43.460>564F5554313F0A
0:02:43.472<30352E30300A
0:02:43.484>494F5554313F0A
...
RXD/TXD按指定的超时间隔分包并以HEX格式实时打印出来, 时间戳和数据间的分隔符箭头表示上下行方向。
配合ShellLab上位机软件可以实现实时的数据解析和可视化。

Shell Lab 测试台软件


USB虚拟串口驱动(Windows)


应用

在Shell Lab软件中监听并记录成文件下载
# runs in ShellLab Testbench Application
# rs232 sniff and log to file
ts = time.strftime('%y%m%d_%H%M')
LOGFILE = 'sniffer_%s.log'% ts
LOGFLUSH_PERIOD = 5  # sec
s = ShellLab(PORT)
log = None
log = open(LOGFILE,'w+')
getLogPanel(clear=True, switch=True)
s.writeLine('sniff -b 9600')
s.readLine()  # read feedback command
t0 = time.time()
while True:
    line = s.readLine()
    if line:
        logAdd(line, 'raw')
        if log:
            log.write(line)
            log.write('\n')
            if time.time() > t0:
                log.flush()
                t0 = time.time()
    else:
        time.sleep(0.1)