You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- using System;
- using System.Collections.Generic;
- using System.Text;
-
- namespace JT809.Protocol.JT809Extensions
- {
- public static partial class JT809BinaryExtensions
- {
- public static Encoding encoding;
-
- private const ushort cnCRC_CCITT = 0x1021; //CRC校验多项式
-
- private static ulong[] CRC = new ulong[256]; //建立CRC16表
-
- static JT809BinaryExtensions()
- {
- Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
- encoding = Encoding.GetEncoding("GBK");
- ushort i, j;
- ushort nData;
- ushort nAccum;
- for (i = 0; i < 256; i++)
- {
- nData = (ushort)(i << 8);
- nAccum = 0;
- for (j = 0; j < 8; j++)
- {
- if (((nData ^ nAccum) & 0x8000) > 0)
- nAccum = (ushort)((nAccum << 1) ^ cnCRC_CCITT);
- else
- nAccum <<= 1;
- nData <<= 1;
- }
- CRC[i] = (ulong)nAccum;
- }
- }
- }
- }
|