返回顶部
首页 > 资讯 > 后端开发 > Python >python进行crc校验的方法小感
  • 697
分享到

python进行crc校验的方法小感

方法pythoncrc 2023-01-31 02:01:08 697人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

import serial import re import time ''' 读卡器操作类:        ''' class reader():

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 = '0001020304050607080900102030405060708090'):
        num = (len(data)+1)/2
        datalist = []
        for i in range(num):
            string = data[(0+i*2):(2+i*2)]
            datalist.append(string)
        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









if __name__ == '__main__':
    if reader.com_detect():
        a = 0
        for i in range(1000):
            start = time.clock()
            for i in range(100):
                reader._crc1()
            end = time.clock()
            a = a + end - start
        print a


        a = 0
        for i in range(1000):
            start = time.clock()
            for i in range(100):
                reader._crc2()
            end = time.clock()
            a = a + end - start
        print a


        a = 0
        for i in range(1000):
            start = time.clock()
            for i in range(100):
                reader._crc3()
            end = time.clock()
            a = a + end - start
        print a
    else:

        print 'no com found'


输出的时间:crc1:1.76726367849
                        crc2:1.41187894711
                        crc3:1.80825700785

第一种方法快于第三种慢于第二种

--结束END--

本文标题: python进行crc校验的方法小感

本文链接: https://lsjlt.com/news/185402.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python进行crc校验的方法小感
    import serial import re import time ''' 读卡器操作类:        ''' class reader():...
    99+
    2023-01-31
    方法 python crc
  • C#实现的4种常用数据校验方法小结(CRC校验,LRC校验,BCC校验,累加和校验)
    CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)...
    99+
    2024-04-02
  • SpringBoot进行参数校验的方法详解
    目录介绍1.SpringBoot中集成参数校验1.1引入依赖1.2定义参数实体类1.3定义校验类进行测试1.4打开接口文档模拟提交数据2.参数异常加入全局异常处理器3.自定义参数校验...
    99+
    2024-04-02
  • CRC校验原理及C语言实现的方法是什么
    这篇“CRC校验原理及C语言实现的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“CRC校验原理及C语言实现的方法是...
    99+
    2023-07-05
  • win7 CRC校验错误 文件已损坏的修复办法
    更急人的是找了几个下载点下下来的都是一样的东西。难道这次又要出钱去买了到先前那个买过课程的网站上去看了一下 ,还找不到那门课程,其他网站又太贵。哎!难道免费午餐和廉价午餐都没有了绝望之余,到论坛上发帖求助,有一位热心网友...
    99+
    2023-05-25
    win7 CRC校验错误 校验 CRC 办法 修复
  • 使用@Valid+BindingResult进行controller参数校验方式
    目录@Valid+BindingResult进行controller参数校验Controller层方法的参数校验全局统一异常拦截器@Valid+BindingResult进行cont...
    99+
    2024-04-02
  • Python如何进行数据指纹MD5校验对比
    Python如何进行数据指纹MD5校验对比,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python3—数据指纹MD5校验与对比MD5消息摘要算法(英语:MD5...
    99+
    2023-06-02
  • 如何进行C++代码的数据校验?
    如何进行C++代码的数据校验在编写C++代码时,数据校验是非常重要的一环。通过对用户输入的数据进行校验,可以增强程序的健壮性和安全性。本文将介绍一些常见的数据校验方法和技巧,帮助读者有效地进行C++代码的数据校验。输入数据类型检查在对用户输...
    99+
    2023-11-04
    跨平台 数据校验 C++代码
  • Java增加自定义注解进行校验入参的方法是什么
    这篇文章主要介绍“Java增加自定义注解进行校验入参的方法是什么”,在日常操作中,相信很多人在Java增加自定义注解进行校验入参的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java增加自定义注解...
    99+
    2023-07-06
  • python银行卡号码校验Luhn模10算法
    目录一、银行卡号码的校验规则二、生成符合Luhn规则的银行卡号测试数据思路:实现代码:三、小结相关资料有时候在网上办理一些业务时有些需要填写银行卡号码,当胡乱填写时会立即报错,但是并...
    99+
    2024-04-02
  • django免除csrf校验的方法
    免除csrf校验 在django中默认启动csrf校验,当用户发起post请求时,必须携带csrf_token参数。如果不想使用csrf校验时,可以使用以下方式免除校验。以下方式都...
    99+
    2024-04-02
  • python银行卡号码校验Luhn算法怎么用
    今天小编给大家分享一下python银行卡号码校验Luhn算法怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、银行卡号...
    99+
    2023-06-30
  • 如何进行SpringBoot开发的集成参数校验
    这期内容当中小编将会给大家带来有关如何进行SpringBoot开发的集成参数校验,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。对于 web服务来说,为防止非法参数对业务造...
    99+
    2024-04-02
  • SpringBoot参数校验的方法总结
    目录一、前言二、注解介绍三、添加依赖四、创建用于校验的实体类五、写一个测试用的接口六、在实体类中添加注解七、在 controller 方法中添加 Validated 注解八、添加全局...
    99+
    2024-04-02
  • Angular模板表单的校验方法
    本篇内容介绍了“Angular模板表单的校验方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本文实例为大...
    99+
    2024-04-02
  • Python 使用@property对属性进行数据规范性校验的实现
    在绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单,但是,没办法检查参数,导致可以把成绩随便改: s = Student() s.score = 9999 这显然不合...
    99+
    2024-04-02
  • 使用自定义注解进行restful请求参数的校验方式
    目录自定义注解进行restful请求参数的校验1、首先我们使用@interface定义一个注解2、实现注解实现类(和@interface定义的注解在同一个包下)3、在需要校验的对象的...
    99+
    2024-04-02
  • javascript怎么实现进行客户端数据的校验
    这篇文章主要讲解了“javascript怎么实现进行客户端数据的校验”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“javascript怎么实现进行客户端数据的校验”吧!脚本代码:<scrip...
    99+
    2023-06-03
  • Spring Boot项目传参校验的方法
    这篇文章主要讲解了“Spring Boot项目传参校验的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Boot项目传参校验的方法”吧!场景还原简单业务场...
    99+
    2023-06-29
  • ElementPlus表单rules校验的方法步骤
    目录前言方法步骤闲谈前言 element中Form表单验证有两种方式,一种是写在data中,另外一种是直接在表单中标签里面添加即可。 方法步骤 1. 给表单添加 :rules=&ld...
    99+
    2023-05-15
    elementplus表单校验 element 表单校验 elementplus表单rules校验
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作