使用Bash通过串口进行通信

时间:2013-03-29 15:44:31

标签: bash serial-port

我正在尝试使用支票扫描仪将图像文件传输到我的Mac(该公司仅提供Windows驱动程序)。我有技术手册,它指定了可以发送到设备的所有命令,我首先尝试最基本的命令(闪烁LED,打印序列号等)。

我已经能够使用“串行工具”成功与设备通信,但我正在尝试使用bash来更好地控制输入/输出并最终编写自动脚本。

在阅读了其他一些帖子并尝试了几件事之后,到目前为止我已经尝试过了: 使用stty命令和各种标志打开端口,例如:
stty -f /dev/tty.usbserial-A5002TeW speed 9600 cs8 cread clocal
stty -f /dev/tty.usbserial-A5002TeW raw speed 9600 -cstopb -parity -echo

尝试通过echo发送命令:
echo $'LE 100\cM\cJ' > /dev/tty.usbserial-A5002TeW
- 注意串行设备是通过USB适配器连接的,但在我为其安装了正确的驱动程序后,它作为常规串行设备响应(至少在串行工具中)。
- 我正在尝试使用\ cM \ cJ字符,因为因为该设备是供Windows机箱使用的,我想我应该使用它们的控制代码,我尝试了多种代码排列。

问题: 无论发生什么事情,设备都不会响应(没有闪烁的LED灯,没有输出等),我的bash shell会挂起,直到我停止它(^ C)。我知道我可以使用Python库,我可能最终会这样做,但我想至少看一下bash shell的一些基本功能。

1 个答案:

答案 0 :(得分:0)

另一个选择是尝试通过在Mac上的VM中安装Windows来使其在VM(VirtualBox,Fusion,Parallels等)下运行。

最麻烦的解决方案,因为你必须一直重启,双启动你的Mac到Windows。

最后,我的iPhone上有一个应用程序来自我的银行机构,只需使用手机中的相机拍摄支票的正面和背面,他们就会接受这种方式。这可能是一种选择。