我有一台仪器(Vötsch气候室VT 4002)通过TCP / IP和pyVISA连接作为SOCKET,我可以使用* 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发送命令的替代方法?