77 lines
1.9 KiB
C#
77 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Xylem.Common.Hardware.WaterMeter;
|
|
using Xylem.Common.Hardware.WaterMeter.Genesis;
|
|
|
|
namespace Ui.TestConsole
|
|
{
|
|
class Program
|
|
{
|
|
|
|
|
|
static void Main(string[] args)
|
|
{
|
|
//var firstLevelByteTx = new byte[] {
|
|
// 0x5B,
|
|
// 0x0C,
|
|
// 0x00,
|
|
// 0x0A,
|
|
// 0x00,
|
|
|
|
// 0xFA,
|
|
// 0x1C,
|
|
|
|
// 0x00,
|
|
// 0x00,
|
|
// 0x32,
|
|
// 0x30,
|
|
// 0x34,
|
|
// 0x37,
|
|
// // 5B 0C00 0A00 FA1C 0000 3230 3437
|
|
//};
|
|
|
|
Byte[] GenesisDevicePcbID =
|
|
{
|
|
|
|
0x5b,0x0c,0x00,0x09,0x00
|
|
|
|
|
|
,0x00,0x00
|
|
// ,0x6e,0x35 // obs
|
|
//,0xab,0xdd //rfid
|
|
|
|
,0x0c,0x04,0x00, 0x00, 0x00, 0x00
|
|
|
|
};
|
|
|
|
var firstLevelByteTx = GenesisDevicePcbID;
|
|
|
|
|
|
var HeaderLength = 4;
|
|
var StartByteLength = 1;
|
|
//var RegisterLength = 2;
|
|
var CrcLenght = 0;
|
|
//remove StartByte CRC placeholder from CRC calculation
|
|
var crcData = new byte[(firstLevelByteTx.Length - (StartByteLength + CrcLenght))];
|
|
|
|
// Buffer.BlockCopy(firstLevelByteTx, StartByteLength, crcData, 0, HeaderLength);
|
|
var crcCopyCounter = 0;
|
|
for (; crcCopyCounter < HeaderLength; crcCopyCounter++)
|
|
{
|
|
crcData[crcCopyCounter] = firstLevelByteTx[crcCopyCounter + StartByteLength];
|
|
}
|
|
for (; crcCopyCounter < crcData.Length; crcCopyCounter++)
|
|
{
|
|
crcData[crcCopyCounter] = firstLevelByteTx[crcCopyCounter + StartByteLength + CrcLenght];
|
|
}
|
|
|
|
var calculatedCrc = Xylem.Common.Utils.Crc16Ccitt.CalculateMsb1021(crcData);
|
|
|
|
|
|
}
|
|
}
|
|
}
|