namespace CommonConsole { using Common.Hardware.SIRT; using Common.Hardware.SIRT.Tasks; using Common.Hardware.WaterMeter.eRegister; using Common.Hardware.WaterMeter.eRegister.Features; using System; public static class Program { public static void Main() { SIRTLogger.State += Console.WriteLine; var sirtHub = new SIRTHub(); if (sirtHub.TryOpen("COM6", out var sirtId, out var frequency)) { SIRTLogger.State -= Console.WriteLine; SIRTLogger.Message += Console.WriteLine; Console.WriteLine($"Listening on: COM6 - {frequency} - {sirtId}"); var task = new LEDTask(frequency, 319017453) { //WakeUpCmd = true, //WakeUpModul = true, //DelPamSemi = true, Data = new byte[] { 0x1F, 0x01, 0x08, 0x43, 0x03, 0x63, 0x93, 0x73, 0x22 }, EncryptionKey = "E6C88800DEB868C0D6A84880CE982840".GetBytes(), IsEncrypted = true, }; sirtHub.Start(task); task.Wait(); Console.ReadKey(); sirtHub.Close("COM6"); } } public class LEDTask : EregisterTask { public LEDTask(int frequency, uint address) : base(frequency) { this.RequestAddress = address; } public byte P811 { get => this.p811; set => this.p811 = value; } } //internal enum AlarmMask //{ // ALARM_REBOOT = 1 << 0, // immer An // ALARM_LOW_BATTERY = 1 << 1, // ALARM_VERY_LOW_BATTERY = 1 << 2, /* For consistency with st_alarm_bit_t only */ // ALARM_CONFIG_ERROR = 1 << 3, // ALARM_EMPTY_PIPE = 1 << 4, // ALARM_MAGNETIC_TAMPER = 1 << 5, /* For consistency with st_alarm_bit_t only */ // ALARM_REVERSE_FLOW = 1 << 6, // ALARM_SUSPECT_LEAK = 1 << 7, // ALARM_BROKEN_PIPE = 1 << 8, // ALARM_LOW_PRESSURE = 1 << 9, // ALARM_HIGH_PRESSURE = 1 << 10, // ALARM_LOW_TEMPERATURE = 1 << 11, // ALARM_HIGH_TEMPERATURE = 1 << 12, // ALARM_RADIO_ERROR = 1 << 13, // ALARM_METROLOGY_PARAMS = 1 << 14, // ALARM_METROLOGY_MEASURE = 1 << 15, // ALARM_MAX = 1 << 16 //}; //internal enum FDRMask //{ // LOG_BILLING_COUNTER = 0x00000002, //!< BillingCounter // LOG_FORWARD_COUNTER = 0x00001000, //!< ForwardCounter // LOG_REVERSE_COUNTER = 0x00000004, //!< Backward or ReverseCounter // LOG_MIN_FLOW_TIME = 0x00000800, //!< Date/Time of FlowMin // LOG_MIN_FLOW_VAL = 0x00000400, //!< Value of FlowMin // LOG_BROKEN_PIPE_FLOW_TIME = 0x00000200, //!< Date/Time of BrokenPipe // LOG_BROKEN_PIPE_FLOW_VAL = 0x00000100, //!< Value of BrokenPipe // LOG_CUR_FLOW_VAL = 0x00000080, //!< Current Flow Value (Average of Period) // LOG_PEAK_FLOW_TIME = 0x00000040, //!< Date/Time of PeakFlow // LOG_PEAK_FLOW_VAL = 0x00000020, //!< Value of PeakFlow // LOG_MAX_FLOW_TIME = 0x00000010, //!< Date/Time of MaxFlow // LOG_MAX_FLOW_VAL = 0x00000008, //!< Value of MaxFlow // LOG_CUR_TEMP_VAL = 0x02000000, //!< Temperature Current Value // LOG_MAX_TEMP_TIME = 0x00800000, //!< Temperature Maximum // LOG_MAX_TEMP_VAL = 0x00400000, //!< Temperature Maximum // LOG_MIN_TEMP_TIME = 0x00200000, //!< Temperature Minimum // LOG_MIN_TEMP_VAL = 0x00100000, //!< Temperature Minimum // LOG_CUR_PRESS_VAL = 0x01000000, //!< Pressure Current Value // LOG_MAX_PRESS_TIME = 0x00080000, //!< Pressure Maximum Time // LOG_MAX_PRESS_VAL = 0x00040000, //!< Pressure Maximum // LOG_MIN_PRESS_TIME = 0x00020000, //!< Pressure Minimum Time // LOG_MIN_PRESS_VAL = 0x00010000, //!< Pressure Minimum // LOG_ALARM_STATE = 0x00000001, //!< AlarmState (16 bits) // LOG_EXT_ALARM_STATE = 0x04000000,    //