【发布时间】:2020-11-12 10:08:51
【问题描述】:
我尝试发送一些十六进制值(与 asci 字符混合)。
我喜欢拥有的东西: send_string = {0x2d, 0x2e, 0x01,..., "你好"}
我能得到什么: send_string="0x2d0x2e0x10...你好"
脚本:
#!/bin/bash
#USB device path
USBDEV=/dev/ttyUSB0
#disable DTR
stty -F $USBDEV -hupcl
#set baud
stty -F $USBDEV 9600
pattern1=0x2d
pattern2=0x2e
adr=0x01
cmd=0x21
nl=0x0a
end=0x00
txt1="Hallo"
txt2="Bye"
string=$(echo ${pattern1}${pattern2}${adr}${cmd}"test"${nl}"haha"${end})
#string=$(echo \0x2e\0x2d\0x01\0x21"test"\0x0a"haha"\0x00)
echo $string
echo $string >> $USBDEV
exit 0
输出
0x2d0x2e0x010x21test0x0ahaha0x00
问题
vars pattern1, pattern2, adr, ... 的十六进制值应作为非 ASCI 字符存储在字符串中。
如果字符串按照我的需要准备,输出必须有非 asci 字符。但它没有。
我尝试了一些方法,但都只是感到困惑。
【问题讨论】:
标签: linux bash serial-port hex non-ascii-characters