以编程方式与OS X或Linux中的串行端口通话

我有一个Prolite LED标志,我喜欢设置显示apache日志和其他有趣的统计滚动search查询。 问题是,我的G5没有串口,所以我必须使用USB串口encryption狗。 它显示为/dev/cu.usbserial和/dev/tty.usbserial。

当我这样做的时候,一切似乎都是h </s>的:

stty -f /dev/cu.usbserial speed 9600 baud; lflags: -icanon -isig -iexten -echo iflags: -icrnl -ixon -ixany -imaxbel -brkint oflags: -opost -onlcr -oxtabs cflags: cs8 -parenb 

当我使用串口工具与它交谈时,所有东西都可以工作。

如果我运行这段代码而上面提到的串口工具,everthing也可以。 但是,只要我断开连接工具,连接就会丢失。

 #!/usr/bin/python import serial ser = serial.Serial('/dev/cu.usbserial', 9600, timeout=10) ser.write("<ID01><PA> \r\n") read_chars = ser.read(20) print read_chars ser.close() 

所以问题是,在没有串口工具的情况下,需要执行什么样的磁贴才能开始与串口通话? 这是一个权限问题? 另外,/dev/cu.usbserial和/dev/tty.usbserial有什么区别?


不,没有序列号。 问题是,即使使用sudo运行python脚本,问题仍然存在,并且只有在我提到的gui工具中打开连接时,问题才会通过。

/dev/cu.xxxxx是“标注”设备,这是您建立到串行设备的连接并开始与之通话时所使用的设备。 /dev/tty.xxxxx是“dialin”设备,用于监视例如传真监听器等来电的端口。

你有没有试过看图形用户界面和串口之间的流量,看是否有某种特殊的命令被发送? 也只是好奇,Python是发送ASCII而不是UTF-8或别的东西吗? 我问的原因是因为我注意到了你的引用字符串的变化,在一些语言中,实际上是ASCII和UTF-8之间的区别。