115 lines
4.2 KiB
C#
115 lines
4.2 KiB
C#
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();
|
|
}
|
|
}
|
|
} |