crc40

package
v1.0.10006 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: 0

Documentation

Index

Constants

View Source
const Size = 5

大小

Variables

View Source
var (
	// "CRC-40/GSM"
	CRC40_GSM = Params{0x0004820009, 0x0000000000, false, false, 0x0000000000}
)

类型列表

Functions

func Checksum

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

生成

func ChecksumGSM

func ChecksumGSM(data []byte) uint64

生成 GSM

func ToBinString

func ToBinString(data uint64) string

输出二进制字符

func ToHexString

func ToHexString(data uint64) string

输出 16 进制字符

Types

type CRC added in v1.0.10006

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

表格

func NewCRC added in v1.0.10006

func NewCRC(params ...Params) *CRC

构造函数

func NewCRC40

func NewCRC40(params ...Params) *CRC

构造函数

func (*CRC) Checksum added in v1.0.10006

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

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

func (*CRC) Complete added in v1.0.10006

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

完成

func (*CRC) GetParams added in v1.0.10006

func (this *CRC) GetParams() Params

获取参数

func (*CRC) GetTable added in v1.0.10006

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

获取数据

func (*CRC) Init added in v1.0.10006

func (this *CRC) Init() uint64

初始值

func (*CRC) MakeTable added in v1.0.10006

func (this *CRC) MakeTable() *CRC

生成数值

func (*CRC) Update added in v1.0.10006

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

更新

func (*CRC) WithParams added in v1.0.10006

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

设置参数

func (*CRC) WithTable added in v1.0.10006

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

设置数据

type Hash40

type Hash40 interface {
	hash.Hash
	Sum40() uint64
}

hash

func NewCRC40Hash

func NewCRC40Hash(params Params) Hash40

Hash

func NewHash

func NewHash(crc *CRC) Hash40

构造函数

type Params

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

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

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

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

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

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

Jump to

Keyboard shortcuts

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