我正试图从一个绝对编码器读取数据与一个USB接口使用pyserial在树莓。编码器的数据表如下。USB接口数据见第22-23页
我已经成功连接到编码器,我可以发送命令使用
port = serial.Serial("/dev/serial/by-id/usb-RLS_Merilna_tehnkis_AksIM_encoder_3454353-if00")
port.write(b"x")
其中x是为USB接口列出的任何可用命令。在
例如,port.write(b"1")
意味着启动一个单位置请求。我可以打印编码器的输出
问题是将输出转换为实际位置数据。port.write(b"1")
输出以下数据:
b'\xea\xd0\x05\x00\x00\x00\xef'
我知道第一个和最后一个字节只是页眉和页脚。字节5和6是编码器状态。字节2-4是实际位置数据。客户支持人员告诉我,我需要取字节2到4,将它们转换为32位无符号整数(转换成低位3字节),转换为浮点数,除以0xFF FF FF,再乘以360。结果是度数。在
我不知道该怎么做。有人能告诉我要写的python程序设计/函数吗。谢谢您。在
您必须使用内置
from_bytes()
方法:将打印:
^{pr2}$这是提取字节并将其转换为整数并以浮点形式缩放的方法:
输出:
^{pr2}$相关问题 更多 >
编程相关推荐