背景:如果你想,跳到问题部分
我正在testing设备的前端工作。 前端的目的是使编写长的testing脚本更容易。 几乎让它们更具人性化可读性。
设备将使用Prologix GPIB-USB控制器进行testing(参见prologix.biz)。 我们在http://heliosoph.mit-links.info/gpib-on-debian-linux-the-easy-way/上find了一个教程,并完成了所有的步骤,并且工作正常!
由于我们还没有testing设备,所以我们想使用openpty在Python中编写一个模拟器。 我们有GPIB-USB控制器,只是没有连接到那个。 我将仿真器作为GPIB-USB的完美替代品。 这意味着我将按照“Debian上的GPIB …”教程(上面)进行操作,并得到我编程模拟器返回的输出。 input和输出的操作与教程只读取/写入pty设备(即/ dev / pts / 2)而不是tty(即/ dev / ttyUSB0)的方式相同。
如果没有指定文件,为什么不grep工作?
终止webpack-dev-server后执行bash
计算滚动总量的吞吐量
现在仿真器工作了,我们想写一个可以用来写脚本的前端。 我们的目标是创build一种当我们调用一个函数时写一堆命令的macros观系统。
问题:存在使用模拟器和设备
我正在使用下面的Python函数来读取,写入和打开tty / pty设备,但是如果我只是在bash中使用echo和cat,我得不到相同的结果。
tty = os.open(tty_path,os.O_RDWR) os.read(tty,100) os.write(tty,"++ver")
例如,我希望以下是相同的
$ cat < /dev/pty/2 & # According to the tutorial,this must be run in parallel $ echo "++ver" > /dev/pty/2 Prologix GPIB Version 1.2.3.4 ...
和
tty = os.open("/dev/pyt/2",os.o_RDWR) os.read(tty,100) # In separate Thread to be run in parallel os.write(tty,"++ver") # in main thread
输出是非常不同的,请解释为什么以及如何修复它。
完整的代码在这里: http : //pastebin.com/PWVsMjD7
Git bash无法访问新机上的主目录
如何杀死由kill或kill -9脚本启动的进程产生的所有subprocess
如何使用sedreplace退格字符( b)?
好吧,我问得太快了。 我希望有人从这个自我回答中受益。
因此,这可以从仿真器和实际设备读取和写入。 我不完全确定为什么,并希望得到一个解释,但是这在所有的测试中都起作用
import serial class VISA: def __init__(self,tty_name): self.ser = serial.Serial() self.ser.port = tty_name # If it breaks try the below #self.serConf() # Uncomment lines here till it works self.ser.open() self.ser.flushinput() self.ser.flushOutput() self.addr = None self.setAddress(0) def cmd(self,cmd_str): self.ser.write(cmd_str + "n") sleep(0.5) return self.ser.readline() def serConf(self): self.ser.baudrate = 9600 self.ser.bytesize = serial.EIGHTBITS self.ser.parity = serial.PARITY_NONE self.ser.stopbits = serial.STOPBITS_ONE self.ser.timeout = 0 # Non-Block reading self.ser.xonxoff = False # disable Software Flow Control self.ser.rtscts = False # disable (RTS/CTS) flow Control self.ser.dsrdtr = False # disable (DSR/DTR) flow Control self.ser.writeTimeout = 2 def close(self): self.ser.close()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。