crc

package module
v0.0.0-...-ffa73ef Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2022 License: AGPL-3.0 Imports: 3 Imported by: 0

README

CRC

Documentation

Index

Constants

View Source
const (
	CRC_4_ITU                = "CRC-4/ITU"
	CRC_4_ITU_ALIAS          = "CRC-4-ITU"
	CRC_5_EPC                = "CRC-5/EPC"
	CRC_5_EPC_ALIAS          = "CRC-5-EPC"
	CRC_5_ITU                = "CRC-5/ITU"
	CRC_5_ITU_ALIAS          = "CRC-5-ITU"
	CRC_5_USB                = "CRC-5/USB"
	CRC_5_USB_ALIAS          = "CRC-5-USB"
	CRC_6_ITU                = "CRC-6/ITU"
	CRC_6_ITU_ALIAS          = "CRC-6-ITU"
	CRC_7_MMC                = "CRC-7/MMC"
	CRC_7_MMC_ALIAS          = "CRC-7-MMC"
	CRC_8                    = "CRC-8"
	CRC_8_ALIAS              = "CRC-8"
	CRC_8_ITU                = "CRC-8/ITU"
	CRC_8_ITU_ALIAS          = "CRC-8-ITU"
	CRC_8_ROHC               = "CRC-8/ROHC"
	CRC_8_ROHC_ALIAS         = "CRC-8-ROHC"
	CRC_8_MAXIM              = "CRC-8/MAXIM"
	CRC_8_MAXIM_ALIAS        = "CRC-8-MAXIM"
	CRC_16_IBM               = "CRC-16/IBM"
	CRC_16_IBM_ALIAS         = "CRC-16-IBM"
	CRC_16_MAXIM             = "CRC-16/MAXIM"
	CRC_16_MAXIM_ALIAS       = "CRC-16-MAXIM"
	CRC_16_USB               = "CRC-16/USB"
	CRC_16_USB_ALIAS         = "CRC-16-USB"
	CRC_16_MODBUS            = "CRC-16/MODBUS" // width: 16; poly: x16+x15+x2+1 正序: 0x8005,逆序: 0xA001; init: 0xFFFF; xorout: 0x0000; 结果低位在前(左),高位在后(右)
	CRC_16_MODBUS_ALIAS      = "CRC-16-MODBUS" // width: 16; poly: x16+x15+x2+1 正序: 0x8005,逆序: 0xA001; init: 0xFFFF; xorout: 0x0000; 结果低位在前(左),高位在后(右)
	CRC_16_CCITT             = "CRC-16/CCITT"
	CRC_16_CCITT_ALIAS       = "CRC-16-CCITT"
	CRC_16_CCITT_FALSE       = "CRC-16/CCITT-FALSE"
	CRC_16_CCITT_FALSE_ALIAS = "CRC-16-CCITT-FALSE"
	CRC_16_X25               = "CRC-16/X25"
	CRC_16_X25_ALIAS         = "CRC-16-X25"
	CRC_16_XMODEM            = "CRC-16/XMODEM"
	CRC_16_XMODEM_ALIAS      = "CRC-16-XMODEM"
	CRC_16_XMODEM2           = "CRC-16/XMODEM2"
	CRC_16_XMODEM2_ALIAS     = "CRC-16-XMODEM2"
	CRC_16_DNP               = "CRC-16/DNP"
	CRC_16_DNP_ALIAS         = "CRC-16-DNP"
	CRC_32                   = "CRC-32"
	CRC_32_ALIAS             = "CRC-32"
	CRC_32_C                 = "CRC-32/C"
	CRC_32_C_ALIAS           = "CRC-32-C"
	CRC_32_KOOPMAN           = "CRC-32/KOOPMAN"
	CRC_32_KOOPMAN_ALIAS     = "CRC-32-KOOPMAN"
	CRC_32_MPEG_2            = "CRC-32/MPEG-2"
	CRC_32_MPEG_2_ALIAS      = "CRC-32-MPEG-2"
	CRC_64_ISO               = "CRC-64/ISO"
	CRC_64_ISO_ALIAS         = "CRC-64-ISO"
	CRC_64_ECMA              = "CRC-64/ECMA"
	CRC_64_ECMA_ALIAS        = "CRC-64-ECMA"
)
View Source
const (
	REF_4BIT  reflectedMode = 4
	REF_5BIT  reflectedMode = 5
	REF_6BIT  reflectedMode = 6
	REF_7BIT  reflectedMode = 7
	REF_8BIT  reflectedMode = 8
	REF_16BIT reflectedMode = 16
	REF_24BIT reflectedMode = 24
	REF_32BIT reflectedMode = 32
)

Variables

This section is empty.

Functions

func ReflectedData

func ReflectedData(raw uint32, reflected reflectedMode) (result uint32)

Types

type CRC

type CRC struct {
	Name    string        `mapstructure:"name" json:"name" yaml:"name" toml:"name" validate:"required"`         // 参数模型名称
	Width   byte          `mapstructure:"width" json:"width" yaml:"width" toml:"width" validate:"required"`     // 位宽,即CRC比特数
	Poly    uint32        `mapstructure:"poly" json:"poly" yaml:"poly" toml:"poly" validate:"required"`         // 多项式,以16进制表示
	Init    uint32        `mapstructure:"init" json:"init" yaml:"init" toml:"init" validate:"required"`         // 寄存器(crc)的初始化预置值,十六进制表示
	Refin   bool          `mapstructure:"refin" json:"refin" yaml:"refin" toml:"refin" validate:""`             // 待测数据的每个字节是否按位反转
	Refout  bool          `mapstructure:"refout" json:"refout" yaml:"refout" toml:"refout" validate:""`         // 在计算后之后,异或输出之前,整个数据是否按位反转
	Refmode reflectedMode `mapstructure:"refmode" json:"refmode" yaml:"refmode" toml:"refmode" validate:""`     // 按位翻转模式
	Xorout  uint32        `mapstructure:"xorout" json:"xorout" yaml:"xorout" toml:"xorout" validate:"required"` // 计算结果与此参数异或后得到最终的CRC值
	Alias   string        `mapstructure:"alias" json:"alias" yaml:"alias" toml:"alias" validate:""`             // 别名及其应用范围
}

func NewCRC

func NewCRC(name string, refin bool, refout bool, refmode reflectedMode, alias string) *CRC

func (*CRC) CalculateCRC

func (crc *CRC) CalculateCRC(raw []byte) (result uint32)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL