-
大小: 0.60M文件類型: .7z金幣: 1下載: 0 次發(fā)布日期: 2024-06-16
- 語(yǔ)言: C#
- 標(biāo)簽: 串口調(diào)試??助手??調(diào)試??代碼??
資源簡(jiǎn)介
很優(yōu)秀的串口調(diào)試助手代碼
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
namespace?MySSCOM
{
????internal?class?CheckTransportProtocol
????{
????????private?uint?Checksum
????????{
????????????get
????????????{
????????????????return?this.checksum;
????????????}
????????????set
????????????{
????????????????this.checksum?=?value;
????????????}
????????}
????????public?List?ArrByte
????????{
????????????get
????????????{
????????????????return?this.arrByte;
????????????}
????????????set
????????????{
????????????????this.arrByte?=?value;
????????????}
????????}
????????public?CheckTransportProtocol()
????????{
????????????this.arrByte?=?new?List();
????????}
????????private?void?xorChecksum()
????????{
????????????if?(this.arrByte.Capacity?==?0)
????????????{
????????????????return;
????????????}
????????????this.Checksum?=?0u;
????????????byte?b?=?(byte)(this.arrByte[0]?^?this.arrByte[1]);
????????????for?(int?i?=?2;?i?????????????{
????????????????b?^=?this.arrByte[i];
????????????}
????????????this.Checksum?=?(uint)b;
????????}
????????private?void?sumChecksum()
????????{
????????????if?(this.arrByte.Capacity?==?0)
????????????{
????????????????return;
????????????}
????????????this.Checksum?=?0u;
????????????byte?b?=?0;
????????????for?(int?i?=?0;?i?????????????{
????????????????b?+=?this.arrByte[i];
????????????}
????????????b?=?(byte)(256?-?(int)b?%?256);
????????????this.Checksum?=?(uint)b;
????????}
????????private?void?crc8Checksum()
????????{
????????????if?(this.arrByte.Capacity?==?0)
????????????{
????????????????return;
????????????}
????????????this.Checksum?=?0u;
????????????byte?b?=?0;
????????????for?(int?i?=?0;?i?????????????{
????????????????b?=?this.CRC8Table[(int)(b?^?this.arrByte[i])];
????????????}
????????????this.Checksum?=?(uint)b;
????????}
????????private?void?crc16Checksum()
????????{
????????????if?(this.arrByte.Capacity?==?0)
????????????{
????????????????return;
????????????}
????????????this.Checksum?=?0u;
????????????byte?b?=?byte.MaxValue;
????????????byte?b2?=?byte.MaxValue;
????????????for?(int?i?=?0;?i?????????????{
????????????????int?num?=?(int)(b2?^?this.arrByte[i]);
????????????????b2?=?(byte)(b?^?this.auchCRCHi[num]);
????????????????b?=?this.auchCRCLo[num];
????????????}
????????????this.Checksum?+=?(uint)b2;
????????????this.Checksum?<<=?8;
????????????this.Checksum?+=?(uint)b;
????????}
????????public?uint?calculateChecksum(int?checkType)
????????{
????????????switch?(checkType)
????????????{
????????????????case?1:
????????????????????this.Checksum?=?0u;
????????????????????break;
????????????????case?2:
????????????????????this.xorChecksum();
????????????????????break;
????????????????case?3:
????????????????????this.sumChecksum();
????????????????????break;
????????????????case?4:
???
評(píng)論
共有 條評(píng)論