crc16

package
v1.0.10005 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2022 License: Apache-2.0 Imports: 3 Imported by: 2

Documentation

Index

Constants

View Source
const Size = 2

大小

Variables

View Source
var (
	// "CRC-16/IBM" x16 + x15 + x2 + 1
	CRC16_IBM = Params{0x8005, 0x0000, true, true, 0x0000}
	// "CRC-16/ARC"
	CRC16_ARC = Params{0x8005, 0x0000, true, true, 0x0000}
	// "CRC-16/AUG-CCITT"
	CRC16_AUG_CCITT = Params{0x1021, 0x1D0F, false, false, 0x0000}
	// "CRC-16/BUYPASS"
	CRC16_BUYPASS = Params{0x8005, 0x0000, false, false, 0x0000}
	// "CRC-16/CCITT" x16 + x15 + x2 + 1
	CRC16_CCITT = Params{0x1021, 0x0000, true, true, 0x0000}
	// "CRC-16/CCITT-FALSE" x16 + x15 + x2 + 1
	CRC16_CCITT_FALSE = Params{0x1021, 0xFFFF, false, false, 0x0000}
	// "CRC-16/CDMA2000"
	CRC16_CDMA2000 = Params{0xC867, 0xFFFF, false, false, 0x0000}
	// "CRC-16/DDS-110"
	CRC16_DDS_110 = Params{0x8005, 0x800D, false, false, 0x0000}
	// "CRC-16/DECT-R"
	CRC16_DECT_R = Params{0x0589, 0x0000, false, false, 0x0001}
	// "CRC-16/DECT-X"
	CRC16_DECT_X = Params{0x0589, 0x0000, false, false, 0x0000}
	// "CRC-16/DNP" x16 + x13 + x12 + x11 + x10 + x8 + x6 + x5 + x2 + 1
	CRC16_DNP = Params{0x3D65, 0x0000, true, true, 0xFFFF}
	// "CRC-16/EN-13757"
	CRC16_EN_13757 = Params{0x3D65, 0x0000, false, false, 0xFFFF}
	// "CRC-16/GENIBUS"
	CRC16_GENIBUS = Params{0x1021, 0xFFFF, false, false, 0xFFFF}
	// "CRC-16/MAXIM" x16 + x15 + x2 + 1
	CRC16_MAXIM = Params{0x8005, 0x0000, true, true, 0xFFFF}
	// "CRC-16/MCRF4XX"
	CRC16_MCRF4XX = Params{0x1021, 0xFFFF, true, true, 0x0000}
	// "CRC-16/RIELLO"
	CRC16_RIELLO = Params{0x1021, 0xB2AA, true, true, 0x0000}
	// "CRC-16/T10-DIF"
	CRC16_T10_DIF = Params{0x8BB7, 0x0000, false, false, 0x0000}
	// "CRC-16/TELEDISK"
	CRC16_TELEDISK = Params{0xA097, 0x0000, false, false, 0x0000}
	// "CRC-16/TMS37157"
	CRC16_TMS37157 = Params{0x1021, 0x89EC, true, true, 0x0000}
	// "CRC-16/USB" x16 + x15 + x2 + 1
	CRC16_USB = Params{0x8005, 0xFFFF, true, true, 0xFFFF}
	// "CRC-16/CRC-A"
	CRC16_CRC_A = Params{0x1021, 0xC6C6, true, true, 0x0000}
	// "CRC-16/KERMIT"
	CRC16_KERMIT = Params{0x1021, 0x0000, true, true, 0x0000}
	// "CRC-16/MODBUS" x16 + x15 + x2 + 1
	CRC16_MODBUS = Params{0x8005, 0xFFFF, true, true, 0x0000}
	// "CRC-16/X-25" x16 + x15 + x2 + 1
	CRC16_X_25 = Params{0x1021, 0xFFFF, true, true, 0xFFFF}
	// "CRC-16/XMODEM" x16 + x15 + x2 + 1
	CRC16_XMODEM = Params{0x1021, 0x0000, false, false, 0x0000}
	// "CRC-16/XMODEM2" x16 + x15 + x2 + 1
	CRC16_XMODEM2 = Params{0x8408, 0x0000, true, true, 0x0000}
)

类型列表

Functions

func Checksum

func Checksum(data []byte, params Params) uint16

生成

func ChecksumARC added in v1.0.10002

func ChecksumARC(data []byte) uint16

生成 ARC

func ChecksumAUG_CCITT added in v1.0.10002

func ChecksumAUG_CCITT(data []byte) uint16

生成 AUG_CCITT

func ChecksumBUYPASS

func ChecksumBUYPASS(data []byte) uint16

生成 BUYPASS

func ChecksumCCITT

func ChecksumCCITT(data []byte) uint16

生成 CCITT

func ChecksumCCITT_FALSE

func ChecksumCCITT_FALSE(data []byte) uint16

生成 CCITT_FALSE

func ChecksumCDMA2000 added in v1.0.10002

func ChecksumCDMA2000(data []byte) uint16

生成 CDMA2000

func ChecksumCRC_A added in v1.0.10002

func ChecksumCRC_A(data []byte) uint16

生成 CRC_A

func ChecksumDDS_110 added in v1.0.10002

func ChecksumDDS_110(data []byte) uint16

生成 DDS_110

func ChecksumDECT_R added in v1.0.10002

func ChecksumDECT_R(data []byte) uint16

生成 DECT_R

func ChecksumDECT_X added in v1.0.10002

func ChecksumDECT_X(data []byte) uint16

生成 DECT_X

func ChecksumDNP

func ChecksumDNP(data []byte) uint16

生成 DNP

func ChecksumGENIBUS added in v1.0.10002

func ChecksumGENIBUS(data []byte) uint16

生成 GENIBUS

func ChecksumIBM added in v1.0.10002

func ChecksumIBM(data []byte) uint16

生成 IBM

func ChecksumKERMIT added in v1.0.10002

func ChecksumKERMIT(data []byte) uint16

生成 KERMIT

func ChecksumMAXIM added in v1.0.10002

func ChecksumMAXIM(data []byte) uint16

生成 MAXIM

func ChecksumMCRF4XX added in v1.0.10002

func ChecksumMCRF4XX(data []byte) uint16

生成 MCRF4XX

func ChecksumMODBUS

func ChecksumMODBUS(data []byte) uint16

生成 MODBUS

func ChecksumRIELLO added in v1.0.10002

func ChecksumRIELLO(data []byte) uint16

生成 RIELLO

func ChecksumT10_DIF added in v1.0.10002

func ChecksumT10_DIF(data []byte) uint16

生成 T10_DIF

func ChecksumTELEDISK added in v1.0.10002

func ChecksumTELEDISK(data []byte) uint16

生成 TELEDISK

func ChecksumTMS37157 added in v1.0.10002

func ChecksumTMS37157(data []byte) uint16

生成 TMS37157

func ChecksumUSB added in v1.0.10002

func ChecksumUSB(data []byte) uint16

生成 USB

func ChecksumXMODEM

func ChecksumXMODEM(data []byte) uint16

生成 XMODEM

func ChecksumXMODEM2 added in v1.0.10002

func ChecksumXMODEM2(data []byte) uint16

生成 XMODEM2

func ChecksumX_25

func ChecksumX_25(data []byte) uint16

生成 X_25

func ToBinString

func ToBinString(data uint16) string

输出二进制字符

func ToHexString

func ToHexString(data uint16) string

输出四位 16 进制字符

func ToReverseHexBinString

func ToReverseHexBinString(data uint16) string

输出二进制字符,高低字节对调

func ToReverseHexString

func ToReverseHexString(data uint16) string

输出四位 16 进制字符,高低字节对调

Types

type CRC added in v1.0.10005

type CRC struct {
	// contains filtered or unexported fields
}

表格

func NewCRC added in v1.0.10005

func NewCRC(params ...Params) *CRC

构造函数

func NewCRC16

func NewCRC16(params ...Params) *CRC

构造函数

func (*CRC) Checksum added in v1.0.10005

func (this *CRC) Checksum(data []byte) uint16

Checksum LSB-MSB,即低字节在前 Modbus,即高字节在前

func (*CRC) Complete added in v1.0.10005

func (this *CRC) Complete(crc uint16) uint16

完成

func (*CRC) GetParams added in v1.0.10005

func (this *CRC) GetParams() Params

获取参数

func (*CRC) GetTable added in v1.0.10005

func (this *CRC) GetTable() [256]uint16

获取数据

func (*CRC) Init added in v1.0.10005

func (this *CRC) Init() uint16

初始值

func (*CRC) MakeTable added in v1.0.10005

func (this *CRC) MakeTable() *CRC

生成数值

func (*CRC) Update added in v1.0.10005

func (this *CRC) Update(crc uint16, data []byte) uint16

更新

func (*CRC) WithParams added in v1.0.10005

func (this *CRC) WithParams(params Params) *CRC

设置参数

func (*CRC) WithTable added in v1.0.10005

func (this *CRC) WithTable(table [256]uint16) *CRC

设置数据

type Hash16

type Hash16 interface {
	hash.Hash
	Sum16() uint16
}

crc16 hash

func NewCRC16Hash

func NewCRC16Hash(params Params) Hash16

构造函数

func NewHash

func NewHash(crc *CRC) Hash16

构造函数

type Params

type Params struct {
	// 生成项的简写,以16进制表示。
	// 例如:CRC-32 即是0x04C11DB7,
	// 忽略了最高位的"1",即完整的生成项是0x104C11DB7。
	Poly uint16

	// 这是算法开始时寄存器(crc)的初始化预置值,十六进制表示。
	Init uint16

	// 待测数据的每个字节是否按位反转,True或False。
	RefIn bool

	// 在计算后之后,异或输出之前,整个数据是否按位反转,True或False。
	RefOut bool

	// 计算结果与此参数异或后得到最终的CRC值。
	XorOut uint16
}

参数 NAME:参数模型名称。 WIDTH:宽度,即CRC比特数。位数为:16

Jump to

Keyboard shortcuts

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