在python中打包数据到COM(串口)
Packing data to COM (serial port) in python
所以,我有一个计算 CRC 的自定义方法
这里是:
class CrcCalc:
def __init__(self):
msk_11_4 = 0x0810
msk_0 = 0x0001
msk_data = 0x80
msk_15 = 0x8000
high = 1
low = 0
def __getcrc(self, buf):
msk_11_4 = 0x0810
# msk_0 = 0x0001
# msk_data = 0x80
msk_15 = 0x8000
crc = 0xffff
j=0
k = j
j += 1
for k in buf[k]:
data = buf[ord(k)]
i = 0
while i <= 7:
data << 1
crc_15 = crc & msk_15
if (data & msk_15):
flag = crc_15
flag = 0 if crc_15 == msk_15 else msk_15
else:
flag = crc_15
if (flag):
crc = ((msk_11_4 ^ crc) << 1) | 1
else:
crc << 1
return crc
我需要向串行端口发送一些数据并以字节为单位接收答案。
我要发送的数据是:90 b8 00 00 07 55 a4 7b 00 da 03 02 05 01
前两个字节是 header 的 CRC,然后 5 个字节是 header,其中最后两个字节是数据的 CRC,然后 7 个字节是数据,我需要这样接收答案( 39 6d 00 20)。
但我不明白我必须如何打包我的数据并将其发送到串口以接收一些东西。
所以首先需要调用函数def__getcrc(self, buf)
获取程序的return。
像这样(它在最底部):
__getcrc(num-self-here, number-buf-here)
我把 num-self-here 和 number-buf-here 放在这里是因为我不完全明白你的程序做了什么。
希望对你有所帮助。
所以,我有一个计算 CRC 的自定义方法
这里是:
class CrcCalc:
def __init__(self):
msk_11_4 = 0x0810
msk_0 = 0x0001
msk_data = 0x80
msk_15 = 0x8000
high = 1
low = 0
def __getcrc(self, buf):
msk_11_4 = 0x0810
# msk_0 = 0x0001
# msk_data = 0x80
msk_15 = 0x8000
crc = 0xffff
j=0
k = j
j += 1
for k in buf[k]:
data = buf[ord(k)]
i = 0
while i <= 7:
data << 1
crc_15 = crc & msk_15
if (data & msk_15):
flag = crc_15
flag = 0 if crc_15 == msk_15 else msk_15
else:
flag = crc_15
if (flag):
crc = ((msk_11_4 ^ crc) << 1) | 1
else:
crc << 1
return crc
我需要向串行端口发送一些数据并以字节为单位接收答案。
我要发送的数据是:90 b8 00 00 07 55 a4 7b 00 da 03 02 05 01 前两个字节是 header 的 CRC,然后 5 个字节是 header,其中最后两个字节是数据的 CRC,然后 7 个字节是数据,我需要这样接收答案( 39 6d 00 20)。
但我不明白我必须如何打包我的数据并将其发送到串口以接收一些东西。
所以首先需要调用函数def__getcrc(self, buf)
获取程序的return。
像这样(它在最底部):
__getcrc(num-self-here, number-buf-here)
我把 num-self-here 和 number-buf-here 放在这里是因为我不完全明白你的程序做了什么。
希望对你有所帮助。