namespace CommonConsole { using Common.Hardware.Ports; using Common.Hardware.SIRT; using Common.Hardware.SIRT.Parameters; using Common.Hardware.WaterMeter.eRegister; using Common.Hardware.WaterMeter.eRegister.Features; using Common.Hardware.WaterMeter.eRegister.Models; using System; using System.Linq; using System.Threading; public class Program { //static uint oldAddress = 4291189262; //static uint newAddress = 4291189261; static uint oldAddress = 4291189262; static uint newAddress = 4291189261; static string encryptionKey = "E6C88800DEB868C0D6A84880CE982840"; static readonly ManualResetEventSlim manualResetEventSlim = new ManualResetEventSlim(); static readonly EregisterTask taskOldAddr = new EregisterTask(3000) { RequestAddress = oldAddress, ResponseAddress = newAddress, Frequency = 433, P1 = new P811 { DelPamSemi = true, WakeUpCmd = true }, // Encrypted = true, // EncryptionKey = encryptionKey.GetEncryptionKey() }; static readonly SIRTBroadcaster connection = new SIRTBroadcaster("COM6"); public static void Main() { //TX: 55-81-14-00-FF-C6-5A-0E-17-06-A8-0A-1F-AB-90-80-C1-08-24-E3-F6-3C-5F-04-3C-DF-9B-E2-38-80-51-10-F4-03-16 //RX: 0xFF, 0x11, 0xA1, 0xC4, 0xFF, 0xC6, 0x5A, 0x0E, 0x0D, 0x01, 0xE4, 0xFF, 0xC6, 0x5A, 0x0E, 0xB7, 0x00, 0xB9, 0x4C, 0xB8, 0x7F, 0x7E, 0x80, 0xC5, 0x16 var bytes = new byte[] { 0xFF, 0x11, 0xA1, 0xC4, 0xFF, 0xC6, 0x5A, 0x0E, 0x0D, 0x01, 0xE4, 0xFF, 0xC6, 0x5A, 0x0E, 0xB7, 0x00, 0xB9, 0x4C, 0xB8, 0x7F, 0x7E, 0x80, 0xC5, 0x16 }; var encryptionKeyBytes = Program.encryptionKey.GetEncryptionKey(); // var message = new SIRTMessage(responseBytes); var response = new SIRTMessage(bytes); Console.WriteLine(response); var x = response.Data.DecryptResponse(encryptionKeyBytes); Console.WriteLine(BitConverter.ToString(x)); var decrypted = response.ToByteArray().DecryptResponse(encryptionKeyBytes); response = new SIRTMessage(decrypted); Console.WriteLine(response); //taskOldAddr.Changed += Task_Changed; //taskOldAddr.Completed += Task_Completed; //connection.Activated += Connection_Activated; ////connection.Log += Console.WriteLine; //connection.Open(); //manualResetEventSlim.Wait(); //manualResetEventSlim.Reset(); //connection.Close(); ////connection.Log -= Console.WriteLine; //connection.Activated -= Connection_Activated; //taskOldAddr.Completed -= Task_Completed; //taskOldAddr.Changed -= Task_Changed; } private static void Task_Changed(EregisterTask _task) { Console.WriteLine(_task.Label); Console.WriteLine(_task.Info); Console.WriteLine($"Request addr: {_task.RequestAddress}"); Console.WriteLine($"Response addr: {_task.ResponseAddress}"); Console.WriteLine(); } private static void Connection_Activated() { Console.WriteLine($"{nameof(SIRTBroadcaster)} activated"); Console.WriteLine(); var oldAddrFeatures = new EregisterFeatures { //ChangeSensusRFEncryptionKey = new ChangeSensusRFEncryptionKey //{ // HexKey = encryptionKey //} Debug = new EregisterDebugFeatures { OpticalTelegram = new OpticalTelegram { Minutes = 1 } } }; taskOldAddr.Data = oldAddrFeatures.BuildPams().FirstOrDefault().Value; connection.EnqueueTask(taskOldAddr); } static void Task_Completed(SIRTTask task) { Console.WriteLine($"{nameof(SIRTTask)} completed"); Console.WriteLine(); manualResetEventSlim.Set(); } } }