在python中将数据打包到COM(串口)

时间:2017-10-31 08:38:16

标签: python packages crc

所以,我有一个自定义计算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 前两个字节是头部的CRC,然后是5个字节的头部,其中最后两个字节是数据的CRC,然后是7个字节是数据,我需要像这样接收答案(39 6d 00 20)。

但我无法理解如何打包我的数据并将其发送到串口以接收内容。

1 个答案:

答案 0 :(得分:0)

首先,您需要调用函数def__getcrc(self, buf)来获取程序的返回值。 像这样(它在最底层):

__getcrc(num-self-here, number-buf-here)

我把 num-self-here number-buf-here 放在一起,因为我并不完全了解你的程序是做什么的。

希望它对你有所帮助。