common/Ui/TestConsole/Program.cs
2026-04-23 17:50:07 +02:00

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);
}
}
}