crc8

package
v1.0.10003 Latest Latest
Warning

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

Go to latest
Published: Jul 15, 2022 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const Size = 1

大小

Variables

View Source
var (
	// "CRC-8" x8 + x2 + x + 1
	CRC8 = Params{0x07, 0x00, false, false, 0x00}
	// "CRC-8/CDMA2000"
	CRC8_CDMA2000 = Params{0x9B, 0xFF, false, false, 0x00}
	// "CRC-8/DARC"
	CRC8_DARC = Params{0x39, 0x00, true, true, 0x00}
	// "CRC-8/DVB-S2"
	CRC8_DVB_S2 = Params{0xD5, 0x00, false, false, 0x00}
	// "CRC-8/EBU"
	CRC8_EBU = Params{0x1D, 0xFF, true, true, 0x00}
	// "CRC-8/I-CODE"
	CRC8_I_CODE = Params{0x1D, 0xFD, false, false, 0x00}
	// "CRC-8/ITU" 	x8 + x2 + x + 1
	CRC8_ITU = Params{0x07, 0x00, false, false, 0x55}
	// "CRC-8/MAXIM" x8 + x5 + x4 + 1
	CRC8_MAXIM = Params{0x31, 0x00, true, true, 0x00}
	// "CRC-8/ROHC" x8 + x2 + x + 1
	CRC8_ROHC = Params{0x07, 0xFF, true, true, 0x00}
	// "CRC-8/WCDMA"
	CRC8_WCDMA = Params{0x9B, 0x00, true, true, 0x00}
)

类型列表

Functions

func Checksum

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

生成

func ChecksumCDMA2000 added in v1.0.10002

func ChecksumCDMA2000(data []byte) uint8

生成 CDMA2000

func ChecksumCRC8

func ChecksumCRC8(data []byte) uint8

生成 CRC8

func ChecksumDARC added in v1.0.10002

func ChecksumDARC(data []byte) uint8

生成 DARC

func ChecksumDVB_S2 added in v1.0.10002

func ChecksumDVB_S2(data []byte) uint8

生成 DVB_S2

func ChecksumEBU added in v1.0.10002

func ChecksumEBU(data []byte) uint8

生成 EBU

func ChecksumITU

func ChecksumITU(data []byte) uint8

生成 ITU

func ChecksumI_CODE added in v1.0.10002

func ChecksumI_CODE(data []byte) uint8

生成 I_CODE

func ChecksumMAXIM

func ChecksumMAXIM(data []byte) uint8

生成 MAXIM

func ChecksumROHC

func ChecksumROHC(data []byte) uint8

生成 ROHC

func ChecksumWCDMA added in v1.0.10002

func ChecksumWCDMA(data []byte) uint8

生成 WCDMA

func ToBinString

func ToBinString(data uint8) string

输出二进制字符

func ToHexString

func ToHexString(data uint8) string

输出两位 16 进制字符

func ToReverseHexBinString

func ToReverseHexBinString(data uint8) string

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

func ToReverseHexString

func ToReverseHexString(data uint8) string

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

Types

type Hash8 added in v1.0.10002

type Hash8 interface {
	hash.Hash
	Sum8() uint8
}

crc8 hash

func NewCRC8Hash added in v1.0.10002

func NewCRC8Hash(params Params) Hash8

Hash

func NewHash added in v1.0.10002

func NewHash(table *Table) Hash8

构造函数

type Params

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

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

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

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

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

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

type Table

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

表格

func NewCRC8

func NewCRC8(params ...Params) *Table

构造函数

func NewTable

func NewTable(params ...Params) *Table

构造函数

func (*Table) Checksum

func (this *Table) Checksum(data []byte) uint8

Checksum

func (*Table) Complete

func (this *Table) Complete(crc uint8) uint8

完成

func (*Table) GetData

func (this *Table) GetData() [256]uint8

获取数据

func (*Table) GetParams

func (this *Table) GetParams() Params

获取参数

func (*Table) Init

func (this *Table) Init() uint8

初始值

func (*Table) MakeData

func (this *Table) MakeData() *Table

生成数值

func (*Table) Update

func (this *Table) Update(crc uint8, data []byte) uint8

更新

func (*Table) WithData

func (this *Table) WithData(data [256]uint8) *Table

设置数据

func (*Table) WithParams

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

设置参数

Jump to

Keyboard shortcuts

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