20

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

当我这样做时,一切似乎都是笨拙的:

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

当我使用串口工具与之交谈时,一切也都有效。

如果我在上面提到的串口工具的同时运行这段代码,那么一切都可以。但是,一旦我断开该工具,连接就会丢失。

#!/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 工具中打开连接,唯一可以让它通过的事情。

4

2 回答 2

5

/dev/cu.xxxxx是“标注”设备,它是您在建立与串行设备的连接并开始与之交谈时使用的设备。/dev/tty.xxxxx是“拨入”设备,用于监视端口的传入呼叫,例如传真侦听器。

于 2008-08-07T00:19:03.233 回答
0

你有没有试过观察 GUI 和串口之间的流量,看看是否有某种特殊的命令正在发送?也只是好奇,Python 发送的是 ASCII 而不是 UTF-8 或其他东西,对吗?我问的原因是因为我注意到您对字符串和某些语言的引号更改实际上是 ASCII 和 UTF-8 之间的区别。

于 2008-08-06T23:40:43.810 回答