123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace DWZB_Agv_Agreement.Agv_Agreement
- {
- public static class DataHandleHelper
- {
- public static bool Verify_PackageHeadCRC(byte[] btArr)
- {
- try
- {
- byte[] pckHead = new byte[9];
- Array.Copy(btArr, pckHead, pckHead.Length);
- byte[] pckHeadCRC = new byte[8];
- Array.Copy(pckHead, pckHeadCRC, pckHeadCRC.Length);
- if (Get_CustomCRC(pckHeadCRC) == pckHead[^1])
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- catch
- {
- return false;
- }
- }
- public static bool Verify_DataMsgCRC(byte[] btArr)
- {
- try
- {
- byte[] pckHead = new byte[9];
- Array.Copy(btArr, pckHead, pckHead.Length);
- byte[] dataLenBt = new byte[4];
- Array.Copy(btArr, 2, dataLenBt, 0, dataLenBt.Length);
- Array.Reverse(dataLenBt);
- int dataLen = BitConverter.ToInt32(dataLenBt, 0);
- byte[] dataBtArr = new byte[dataLen];
- Array.Copy(btArr, 9, dataBtArr, 0, dataLen);
- if (Get_CustomCRC(dataBtArr) == pckHead[^2])
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- catch
- {
- return false;
- }
- }
- public static byte Get_CustomCRC(byte[] dataBtArr)
- {
- int data_Xor = 0;
- for (int i = 0; i < dataBtArr.Length; i++)
- {
- data_Xor ^= dataBtArr[i];
- }
- return Convert.ToByte(data_Xor);
- }
- public static byte[] ReverseBtyArr(byte[] btArr)
- {
- Array.Reverse(btArr);
- return btArr;
- }
- }
- }
|