我有一个通过 TCP/IP 和 pyVISA 作为 SOCKET 连接的仪器(Vötsch 气候室 VT 4002),我可以使用 *IDN? 查询它。现在我需要向它发送一个包含 ASCII 182 字符和普通字符串的命令:
instr = rm.open_resource(TCPIP::...::SOCKET', read_termination='\r')
instr.write('11001'+u'\xb6')
但我得到错误:
UnicodeEncodeError; 'ascii' codec can't encode character u'\xb6' in position 5: ordinal not in range(128)
我知道ASCII值在128以上,但是怎么写到仪器上呢?甚至写正确的命令(尽管 *IDN? 查询有效)?我是python和pyVISA的新手,所以请为新手回答:)谢谢!
PS:
# -*- coding: utf-8 -*-
不工作
PPS:我认为问题在于 write() 方法总是使用 ASCII 解码。因此,无论我的字符串在 write() 方法之前采用哪种格式,都将始终解码为 ASCII(这不能用 >128 完成)。但是有没有不使用 write() 方法通过 TCP/IP 发送命令的替代方法?