首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

python进行crc校验的方法

import serial import re import time ''' 读卡器操作类: ''' class reader():     baud_rate = 115200     device_name = ''     timeout = 1     ser = None     @staticmethod     def opencom(device_name):         try:             reader.ser = serial.Serial(reader.device_name,reader.baud_rate,timeout = reader.timeout)             return True         except Exception, e:             return False     @staticmethod     def com_detect():         reader.device_name = '/dev/ttyUSB0'         if reader.opencom(reader.device_name):             return True         else:             reader.device_name = '/dev/ttyUSB1'             if reader.opencom(reader.device_name):                 return True              else:                 reader.device_name = '/dev/ttyUSB2'                 if reader.opencom(reader.device_name):                     return True                  else:                     reader.device_name = 'COM2'                     if reader.opencom(reader.device_name):                         return True                      else:                         return False     @staticmethod     def _crc1(data = '0001020304050607080900102030405060708090'):         datalist = re.findall(r'(.{2})',data)          crcnum = 0         for i in datalist:             try:                 num = int(i,16)                 crcnum = crcnum ^ num             except Exception, e:                 return 'error of change2int '         crcstr = format(crcnum,'x')         return crcstr     @staticmethod     def _crc2(data = '0001020304050607080900102030405060708090'):         num = (len(data)+1)/2          crcnum = 0          for i in range(num):             try:                 num = int(data[:2],16)                 crcnum = crcnum ^ num                 data = data[2:]             except Exception, e:                 return 'error of change2int '         crcstr = format(crcnum,'x')         return crcstr     @staticmethod     def _crc3(data = '0001020304050607080900102030405060

01
领券