首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Python串口与USB仪器(AlphaLab高斯计)通信的问题

通过Python串口与USB仪器(AlphaLab高斯计)通信的问题
EN

Stack Overflow用户
提问于 2019-07-02 10:22:59
回答 1查看 81关注 0票数 0

我正在尝试通过AlphaLabs GM-2 Gaussmeter (https://www.alphalabinc.com/product/gm2/)的串口与python进行通信。高斯计是一种非常简单的设备,它只在前面板上显示所测量磁场的数字值。我们希望能达到这一点,因为我们可以读取测量结果,并绘制它与时间的关系图。

目前,我们在与设备的通信中遇到了问题,希望能得到一些帮助!我一直在尝试遵循他们的系统数据采集手册(https://www.alphalabinc.com/wp-content/uploads/2018/02/alphaapp_comm_protocol.pdf)...但是,我们肯定遇到了一个很大的障碍。

根据手册,如果我想向设备发送ID_METER_PROP命令,我需要向设备提供命令字节: 0x01,后跟“其内容无关紧要的5个字节”。这应该会给我们一个ASCII块,后跟一个终止字节或一个字节,表示有更多的数据。

从我们的代码中,我们可以得到一个ASCII块,后跟这个“确认字节”(表示它们是从高斯测量仪发送的更多数据……)但是我们似乎不能通过程序来接收这些数据。一旦我们调用这个程序它就会冻结高斯计。就像它试图发送更多数据,但就是不能。

谢谢你的建议!

我试着联系了Alpha实验室的技术支持,但遗憾的是,除了他们预制的GUI之外,他们无法提供任何编码帮助。

‘python

代码语言:javascript
复制
# Define the command to send to the device
command = serial.to_bytes([0x01, 0x03, 0x03, 0x03, 0x03, 0x03])
#print(command)

# Send command to device and save its return
ret=gaussmeter.getIdentification(command)
print(ret) # print return variable


#-----
#Defined Function getIdentification for reference
#-----
    def getIdentification(self, command):
        time.sleep(self.DEFAULT_SLEEP_TIME)
        self.port.write(command)
        identification = self.port.read(self.DEFAULT_READ_SIZE)
        test = self.port.read(self.DEFAULT_READ_SIZE)
        return identification, test

“”“

上面的代码输出:(b':METER_NAME=GM2_GAUS\x08',b'')

'\x08是上面和手册中定义的‘确认字节’。调用此代码会冻结高斯计设备,重置它的唯一方法是拔出它,然后再插回。

我们期望看到手册中定义的更多设备ASCII设置,并且我们绝对不期望设备会崩溃

EN

回答 1

Stack Overflow用户

发布于 2019-07-02 10:40:29

首先,我认为你应该在调用write之后调用sleep

文档说,如果你得到了那个“确认字节”,你应该重复这个过程。

因此,您发送命令,读取,如果收到确认字节,则重复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56844522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档