菜农Python菜鸟学习笔记class学习

#! -*- coding:utf-8 -*-
#Python菜鸟类学习
#菜农HotPower@163.com 2019.4.16
class HotCRC(object):
    def __init__(self):
        self.polystr = "CRC16L_1021_FFFF_0000"
        self.polynomial = "CRC16=X16+X12+X5+1"
        self.bits = 16 
        self.dir = 1
        self.init = 0xFFFF
        self.poly = 0x1021
        self.xorout = 0x0000
    def getPoly(self):
        return self.poly
    def inttohex(self, val, size):
        return "{:>0{}X}".format(val, size)[-size:]
    def hextoint(self, string):
        return int(string, 16)
    def getcrcformat(self, crcstr, index = 0):
        rstr = ""
        cstr = crcstr.split("_")
        l = len(cstr)
        if (l == 4) and (index < l):
            rstr = cstr[index]
        return rstr
    def getcrcbits(self, crcstr):
        bits = 0
        cstr = crcstr.split("_")
        if len(cstr) == 4:
            cstr = cstr[0]
            if cstr[:3] == "CRC" and (cstr[-1] == "L" or cstr[-1] == "R"):
                bits = int(cstr[3:-1])
        return bits
    def getcrcdir(self, crcstr):
        dir = ""
        cstr = crcstr.split("_")
        if len(cstr) == 4:
            dir = cstr[0][-1]
        return dir
        
crc = HotCRC()
print(crc.inttohex(crc.poly, 4))
crcstr = "CRC16R_8005_0000_FFFF"
print(crc.inttohex(0x123,2))
print(crc.hextoint("123"))
print(crc.getcrcformat(crcstr))
print(crc.getcrcformat(crcstr, 1))
print(crc.getcrcbits(crcstr))
print(crc.getcrcdir(crcstr))

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值