我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python进行crc校验的方法小感

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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 = '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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python进行crc校验的方法小感

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python进行crc校验的方法小感

import serialimport reimport time'''读卡器操作类:     '''class reader():    baud_rate = 115200    device_name = ''    timeout
2023-01-31

CRC校验原理及C语言实现的方法是什么

这篇“CRC校验原理及C语言实现的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“CRC校验原理及C语言实现的方法是
2023-07-05

Java增加自定义注解进行校验入参的方法是什么

这篇文章主要介绍“Java增加自定义注解进行校验入参的方法是什么”,在日常操作中,相信很多人在Java增加自定义注解进行校验入参的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java增加自定义注解
2023-07-06

利用Python生成文件md5校验值函数的方法

前言 在linux有个命令叫做md5sum,能生成文件的md5值,一般情况下都会将结果记录到一个文件中用于校验使用,比如会这样使用:[crazyant@localhost PythonMd5]$ more sample_file www.
2022-06-04

python中快速进行多个字符替换的方法小结

先给出结论:要替换的字符数量不多时,可以直接链式replace()方法进行替换,效率非常高;如果要替换的字符数量较多,则推荐在 for 循环中调用 replace() 进行替换。可行的方法: 1. 链式replace()string.rep
2022-06-04

谈谈Python进行验证码识别的一些想法

用python加“验证码”为关键词在baidu里搜一下,可以找到很多关于验证码识别的文章。我大体看了一下,主要方法有几类:一类是通过对图片进行处理,然后利用字库特征匹配的方法,一类是图片处理后建立字符对应字典,还有一类是直接利用ocr模块进
2022-06-04

Python执行时间的计算方法小结

首先说一下我遇到的坑,生产上遇到的问题,我调度Python脚本执行并监控这个进程,python脚本运行时间远远大于python脚本中自己统计的程序执行时间。 监控python脚本执行的时间是36个小时,而python脚本中统计自己执行的时间
2022-06-04

python进行内存管理的方法示例

这篇文章给大家分享的是有关python进行内存管理的方法示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码格式
2023-06-14

Python进行数据提取的方法总结

准备工作首先是准备工作,导入需要使用的库,读取并创建数据表取名为loandata。import numpy as np import pandas as pd loandata=pd.DataFrame(pd.read_excel('loa
2022-06-04

python中有哪些进行比较的方法

python中有哪些进行比较的方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、说明比较操作符in和not in检查一个值是否在一个序列中出现。操作符is和is not比较
2023-06-15

在Django中进行用户注册和邮箱验证的方法

本文主要介绍我在利用Django写文章时,采用的注册方法。首先说一下整体逻辑思路:处理用户注册数据,产生token,生成验证URL,发送验证邮件,用户登录网址,进行验证,验证处理。具体步骤:1、添加用户在Django中自带的User表中,有
2022-06-04

python中执行DOS命令的3种方法小

1. 使用os.system("cmd")特点是执行的时候程序会打出cmd在Linux上执行的信息。import osos.system("ls")  2. 使用Popen模块产生新的process现在大部分人都喜欢使用Popen。Pope
2023-01-31

如何进行对Python操作方法的说明

今天就跟大家聊聊有关如何进行对Python操作方法的说明,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍
2023-06-17

Python进行文件处理的方法是什么

这篇文章主要介绍“Python进行文件处理的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python进行文件处理的方法是什么”文章能帮助大家解决问题。1.文件介绍python操作文件1.
2023-07-05

使用JWT在PHP API接口中进行身份验证的方法

在 Web 开发中,最常见的需求之一就是用户身份验证。为了实现安全的身份验证,Web 开发者可以依赖于许多不同的机制。其中一种很受欢迎的方法是 JSON Web Tokens(JWT),它提供了一种基于令牌的身份验证方法。在本文中,我们将
使用JWT在PHP API接口中进行身份验证的方法
2024-01-22

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录