laatzen/Common/CommonConsole/Program.cs
2025-09-25 13:39:17 +02:00

249 lines
16 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.RFTelegrams;
namespace CommonConsole
{
public static class Program
{
static void Main()
{
// Console.WriteLine(BitConverter.ToInt32(new byte[] { 0xEC, 0xFF, 0xFF, 0xFF }, 0));
SIRTServer.StartServer(Console.WriteLine, Console.WriteLine, 6, 8);
SIRTServer.StartProgramming(868, 402001154, "0E9FACC6A0E1EF1C3B27A49BAC216535");
// SIRTServer.StartProgramming(433, 412013356, "80D46C00E1BED73FE0DA85D95CA4BEE3");
}
public static void MainRF(params string[] args)
{
//var pam03 = new PAM03();
//pam03.Run("COM6", "402010030", "E6C88800DEB868C0D6A84880CE982840");
//pam03.Run("COM6", "402010027", "D9C154DC274966AB71AD5D804A322178");
//return pam03.Run("COM7", "412004190", "0E9FACC6A0E1EF1C3B27A49BAC216535");
// 10402010030 E6C88800DEB868C0D6A84880CE982840
//try
//{
// return pam03.Run("COM10", "402009768", "3CB64CBCB71F8D0F9F69FF18DF5D24D3");
//}
//catch (System.Exception e)
//{
// return -1;
//}
}
class FDRMask
{
public const byte LOG_ALARM_STATE = 0; // 0x00000001, //!< AlarmState (16 bits)
public const byte LOG_BILLING_COUNTER = 1; // 0x00000002, //!< BillingCounter
public const byte LOG_REVERSE_COUNTER = 2; // 0x00000004, //!< Backward or ReverseCounter
public const byte LOG_MAX_FLOW_VAL = 3; // 0x00000008, //!< Value of MaxFlow
public const byte LOG_MAX_FLOW_TIME = 4; // 0x00000010, //!< Date/Time of MaxFlow
public const byte LOG_PEAK_FLOW_VAL = 5; // 0x00000020, //!< Value of PeakFlow
public const byte LOG_PEAK_FLOW_TIME = 6; // 0x00000040, //!< Date/Time of PeakFlow
public const byte LOG_CUR_FLOW_VAL = 7; // 0x00000080, //!< Current Flow Value (Average of Period)
public const byte LOG_BROKEN_PIPE_FLOW_VAL = 8; // 0x00000100, //!< Value of BrokenPipe
public const byte LOG_BROKEN_PIPE_FLOW_TIME = 9; // 0x00000200, //!< Date/Time of BrokenPipe
public const byte LOG_MIN_FLOW_VAL = 10; // 0x00000400, //!< Value of FlowMin
public const byte LOG_MIN_FLOW_TIME = 11; // 0x00000800, //!< Date/Time of FlowMin
public const byte LOG_FORWARD_COUNTER = 12; // 0x00001000, //!< ForwardCounter
public const byte LOG_MIN_PRESS_VAL = 13; // 0x00010000, //!< Pressure Minimum
public const byte LOG_MIN_PRESS_TIME = 14; // 0x00020000, //!< Pressure Minimum Time
public const byte LOG_MAX_PRESS_VAL = 15; // 0x00040000, //!< Pressure Maximum
public const byte LOG_MAX_PRESS_TIME = 16; // 0x00080000, //!< Pressure Maximum Time
public const byte LOG_MIN_TEMP_VAL = 17; // 0x00100000, //!< Temperature Minimum
public const byte LOG_MIN_TEMP_TIME = 18; // 0x00200000, //!< Temperature Minimum
public const byte LOG_MAX_TEMP_VAL = 19; // 0x00400000, //!< Temperature Maximum
public const byte LOG_MAX_TEMP_TIME = 20; // 0x00800000, //!< Temperature Maximum
public const byte LOG_CUR_PRESS_VAL = 21; // 0x01000000, //!< Pressure Current Value
public const byte LOG_CUR_TEMP_VAL = 22; // 0x02000000, //!< Temperature Current Value
public const byte LOG_EXT_ALARM_STATE = 23; // 0x04000000,    //<! Extended Alarm Status
};
class AlarmMask
{
public const byte ALARM_REBOOT = 0; // immer An
public const byte ALARM_LOW_BATTERY = 1;
public const byte ALARM_VERY_LOW_BATTERY = 2; /* For consistency with st_alarm_bit_t only */
public const byte ALARM_CONFIG_ERROR = 3;
public const byte ALARM_EMPTY_PIPE = 4;
public const byte ALARM_MAGNETIC_TAMPER = 5; /* For consistency with st_alarm_bit_t only */
public const byte ALARM_REVERSE_FLOW = 6;
public const byte ALARM_SUSPECT_LEAK = 7;
public const byte ALARM_BROKEN_PIPE = 8;
public const byte ALARM_LOW_PRESSURE = 9;
public const byte ALARM_HIGH_PRESSURE = 10;
public const byte ALARM_LOW_TEMPERATURE = 11;
public const byte ALARM_HIGH_TEMPERATURE = 12;
public const byte ALARM_RADIO_ERROR = 13;
public const byte ALARM_METROLOGY_PARAMS = 14;
public const byte ALARM_METROLOGY_MEASURE = 15;
public const byte ALARM_MAX = 16;
}; // ' CSD ', IIF(i.CSD_Wert IS NULL, i.CSD_Charcode, 'mit neue konfiguration')
public static void Main1()
{
Console.WriteLine(BitConverter.ToInt32(new byte[] { 0xE9, 0xFF, 0xFF, 0xFF }, 0));
Console.WriteLine(BitConverter.ToInt32(new byte[] { 0xAD, 0xFF, 0xFF, 0xFF }, 0));
Console.WriteLine(BitConverter.ToInt32(new byte[] { 0xE6, 0xFF, 0xFF, 0xFF }, 0));
Console.WriteLine(BitConverter.ToInt32(new byte[] { 0x03, 0x00, 0x00, 0x00 }, 0));
//var alarmMask = 1 << AlarmMask.ALARM_REBOOT
// | 1 << AlarmMask.ALARM_LOW_BATTERY
// | 0 << AlarmMask.ALARM_VERY_LOW_BATTERY
// | 0 << AlarmMask.ALARM_CONFIG_ERROR
// | 1 << AlarmMask.ALARM_EMPTY_PIPE
// | 0 << AlarmMask.ALARM_MAGNETIC_TAMPER
// | 1 << AlarmMask.ALARM_REVERSE_FLOW
// | 1 << AlarmMask.ALARM_SUSPECT_LEAK
// | 1 << AlarmMask.ALARM_BROKEN_PIPE
// | 0 << AlarmMask.ALARM_LOW_PRESSURE
// | 0 << AlarmMask.ALARM_HIGH_PRESSURE
// | 0 << AlarmMask.ALARM_LOW_TEMPERATURE
// | 0 << AlarmMask.ALARM_HIGH_TEMPERATURE
// | 0 << AlarmMask.ALARM_RADIO_ERROR
// | 0 << AlarmMask.ALARM_METROLOGY_PARAMS
// | 0 << AlarmMask.ALARM_METROLOGY_MEASURE
// | 0 << AlarmMask.ALARM_MAX;
//var alarmBytes = BitConverter.GetBytes(alarmMask);
//Array.Reverse(alarmBytes);
//Console.WriteLine($"ALARM_MASK: {alarmMask} - {BitConverter.ToString(alarmBytes).Replace("-", "")}");
//var dataLogger = 1 << FDRMask.LOG_ALARM_STATE
// | 1 << FDRMask.LOG_BILLING_COUNTER
// | 0 << FDRMask.LOG_REVERSE_COUNTER
// | 0 << FDRMask.LOG_MAX_FLOW_VAL
// | 0 << FDRMask.LOG_MAX_FLOW_TIME
// | 0 << FDRMask.LOG_PEAK_FLOW_VAL
// | 0 << FDRMask.LOG_PEAK_FLOW_TIME
// | 1 << FDRMask.LOG_CUR_FLOW_VAL
// | 0 << FDRMask.LOG_BROKEN_PIPE_FLOW_VAL
// | 0 << FDRMask.LOG_BROKEN_PIPE_FLOW_TIME
// | 1 << FDRMask.LOG_MIN_FLOW_VAL
// | 0 << FDRMask.LOG_MIN_FLOW_TIME
// | 0 << FDRMask.LOG_FORWARD_COUNTER
// | 0 << FDRMask.LOG_MIN_PRESS_VAL
// | 0 << FDRMask.LOG_MIN_PRESS_TIME
// | 0 << FDRMask.LOG_MAX_PRESS_VAL
// | 0 << FDRMask.LOG_MAX_PRESS_TIME
// | 0 << FDRMask.LOG_MIN_TEMP_VAL
// | 0 << FDRMask.LOG_MIN_TEMP_TIME
// | 0 << FDRMask.LOG_MAX_TEMP_VAL
// | 0 << FDRMask.LOG_MAX_TEMP_TIME
// | 0 << FDRMask.LOG_CUR_PRESS_VAL
// | 0 << FDRMask.LOG_CUR_TEMP_VAL
// | 1 << FDRMask.LOG_EXT_ALARM_STATE;
//var dataLoggerBytes = BitConverter.GetBytes(dataLogger);
//Array.Reverse(dataLoggerBytes);
//Console.WriteLine($"DATA_LOGGER: {dataLogger} - {BitConverter.ToString(dataLoggerBytes).Replace("-", "")}");
//var fixDateReading = 1 << FDRMask.LOG_ALARM_STATE
// | 1 << FDRMask.LOG_BILLING_COUNTER
// | 0 << FDRMask.LOG_REVERSE_COUNTER
// | 0 << FDRMask.LOG_MAX_FLOW_VAL
// | 0 << FDRMask.LOG_MAX_FLOW_TIME
// | 0 << FDRMask.LOG_PEAK_FLOW_VAL
// | 0 << FDRMask.LOG_PEAK_FLOW_TIME
// | 1 << FDRMask.LOG_CUR_FLOW_VAL
// | 0 << FDRMask.LOG_BROKEN_PIPE_FLOW_VAL
// | 0 << FDRMask.LOG_BROKEN_PIPE_FLOW_TIME
// | 1 << FDRMask.LOG_MIN_FLOW_VAL
// | 0 << FDRMask.LOG_MIN_FLOW_TIME
// | 0 << FDRMask.LOG_FORWARD_COUNTER
// | 0 << FDRMask.LOG_MIN_PRESS_VAL
// | 0 << FDRMask.LOG_MIN_PRESS_TIME
// | 0 << FDRMask.LOG_MAX_PRESS_VAL
// | 0 << FDRMask.LOG_MAX_PRESS_TIME
// | 0 << FDRMask.LOG_MIN_TEMP_VAL
// | 0 << FDRMask.LOG_MIN_TEMP_TIME
// | 0 << FDRMask.LOG_MAX_TEMP_VAL
// | 0 << FDRMask.LOG_MAX_TEMP_TIME
// | 0 << FDRMask.LOG_CUR_PRESS_VAL
// | 0 << FDRMask.LOG_CUR_TEMP_VAL
// | 1 << FDRMask.LOG_EXT_ALARM_STATE;
//var fixDateReadingBytes = BitConverter.GetBytes(fixDateReading);
//Array.Reverse(fixDateReadingBytes);
//Console.WriteLine($"FDR_LOGGER: {fixDateReading} - {BitConverter.ToString(fixDateReadingBytes).Replace("-", "")}");
//var x1 = 0xD29F;
//var x2 = 0xD39F;
//Console.WriteLine(new string('=', 50));
//Console.WriteLine($"ALARM_REBOOT: [{(int)AlarmMask.ALARM_REBOOT,2}] {(x1 >> AlarmMask.ALARM_REBOOT) % 2} {(x2 >> AlarmMask.ALARM_REBOOT) % 2} ");
//Console.WriteLine($"ALARM_LOW_BATTERY: [{(int)AlarmMask.ALARM_LOW_BATTERY,2}] {(x1 >> AlarmMask.ALARM_LOW_BATTERY) % 2} {(x2 >> AlarmMask.ALARM_LOW_BATTERY) % 2} ");
//Console.WriteLine($"ALARM_VERY_LOW_BATTERY: [{(int)AlarmMask.ALARM_VERY_LOW_BATTERY,2}] {(x1 >> AlarmMask.ALARM_VERY_LOW_BATTERY) % 2} {(x2 >> AlarmMask.ALARM_VERY_LOW_BATTERY) % 2} ");
//Console.WriteLine($"ALARM_CONFIG_ERROR: [{(int)AlarmMask.ALARM_CONFIG_ERROR,2}] {(x1 >> AlarmMask.ALARM_CONFIG_ERROR) % 2} {(x2 >> AlarmMask.ALARM_CONFIG_ERROR) % 2} ");
//Console.WriteLine($"ALARM_EMPTY_PIPE: [{(int)AlarmMask.ALARM_EMPTY_PIPE,2}] {(x1 >> AlarmMask.ALARM_EMPTY_PIPE) % 2} {(x2 >> AlarmMask.ALARM_EMPTY_PIPE) % 2} ");
//Console.WriteLine($"ALARM_MAGNETIC_TAMPER: [{(int)AlarmMask.ALARM_MAGNETIC_TAMPER,2}] {(x1 >> AlarmMask.ALARM_MAGNETIC_TAMPER) % 2} {(x2 >> AlarmMask.ALARM_MAGNETIC_TAMPER) % 2} ");
//Console.WriteLine($"ALARM_REVERSE_FLOW: [{(int)AlarmMask.ALARM_REVERSE_FLOW,2}] {(x1 >> AlarmMask.ALARM_REVERSE_FLOW) % 2} {(x2 >> AlarmMask.ALARM_REVERSE_FLOW) % 2} ");
//Console.WriteLine($"ALARM_SUSPECT_LEAK: [{(int)AlarmMask.ALARM_SUSPECT_LEAK,2}] {(x1 >> AlarmMask.ALARM_SUSPECT_LEAK) % 2} {(x2 >> AlarmMask.ALARM_SUSPECT_LEAK) % 2} ");
//Console.WriteLine($"ALARM_BROKEN_PIPE: [{(int)AlarmMask.ALARM_BROKEN_PIPE,2}] {(x1 >> AlarmMask.ALARM_BROKEN_PIPE) % 2} {(x2 >> AlarmMask.ALARM_BROKEN_PIPE) % 2} ");
//Console.WriteLine($"ALARM_LOW_PRESSURE: [{(int)AlarmMask.ALARM_LOW_PRESSURE,2}] {(x1 >> AlarmMask.ALARM_LOW_PRESSURE) % 2} {(x2 >> AlarmMask.ALARM_LOW_PRESSURE) % 2} ");
//Console.WriteLine($"ALARM_HIGH_PRESSURE: [{(int)AlarmMask.ALARM_HIGH_PRESSURE,2}] {(x1 >> AlarmMask.ALARM_HIGH_PRESSURE) % 2} {(x2 >> AlarmMask.ALARM_HIGH_PRESSURE) % 2} ");
//Console.WriteLine($"ALARM_LOW_TEMPERATURE: [{(int)AlarmMask.ALARM_LOW_TEMPERATURE,2}] {(x1 >> AlarmMask.ALARM_LOW_TEMPERATURE) % 2} {(x2 >> AlarmMask.ALARM_LOW_TEMPERATURE) % 2} ");
//Console.WriteLine($"ALARM_HIGH_TEMPERATURE: [{(int)AlarmMask.ALARM_HIGH_TEMPERATURE,2}] {(x1 >> AlarmMask.ALARM_HIGH_TEMPERATURE) % 2} {(x2 >> AlarmMask.ALARM_HIGH_TEMPERATURE) % 2} ");
//Console.WriteLine($"ALARM_RADIO_ERROR: [{(int)AlarmMask.ALARM_RADIO_ERROR,2}] {(x1 >> AlarmMask.ALARM_RADIO_ERROR) % 2} {(x2 >> AlarmMask.ALARM_RADIO_ERROR) % 2} ");
//Console.WriteLine($"ALARM_METROLOGY_PARAMS: [{(int)AlarmMask.ALARM_METROLOGY_PARAMS,2}] {(x1 >> AlarmMask.ALARM_METROLOGY_PARAMS) % 2} {(x2 >> AlarmMask.ALARM_METROLOGY_PARAMS) % 2} ");
//Console.WriteLine($"ALARM_METROLOGY_MEASURE: [{(int)AlarmMask.ALARM_METROLOGY_MEASURE,2}] {(x1 >> AlarmMask.ALARM_METROLOGY_MEASURE) % 2} {(x2 >> AlarmMask.ALARM_METROLOGY_MEASURE) % 2}");
//Console.WriteLine($"ALARM_MAX: [{(int)AlarmMask.ALARM_MAX,2}] {(x1 >> AlarmMask.ALARM_MAX) % 2} {(x2 >> AlarmMask.ALARM_MAX) % 2} ");
//Console.WriteLine(int.MaxValue);
//Console.WriteLine(uint.MaxValue);
//Console.WriteLine(long.MaxValue);
}
public static void MainCSD()
{
//var alarmEnableMask = 0xD39F0000;
//var ix = 0;
//foreach (var item in Enum.GetValues(typeof(AlarmMask)).Cast<AlarmMask>().OrderBy(x => (uint)x).ToArray())
//{
// Console.WriteLine($"{item,23} = {item:X} = {(uint)item,5} = {(alarmEnableMask << ix++) & 1}");
//}
//foreach (var item in Enum.GetValues(typeof(FDRMask)).Cast<FDRMask>().OrderBy(x => x).ToArray())
//{
// Console.WriteLine($"{item} = {item:X} = {(uint)item}");
//}
//ushort value = 3;
//Console.WriteLine($"0: {value >> 0 & 1}");
//Console.WriteLine($"0: {value >> 1 & 1}");
//Console.WriteLine($"0: {value >> 2 & 1}");
//Console.WriteLine("CSD CSD 772161_MW");
//Console.WriteLine("=============================================================================");
//var alarm = AlarmMask.ALARM_REBOOT
// | AlarmMask.ALARM_EMPTY_PIPE
// | AlarmMask.ALARM_LOW_BATTERY
// | AlarmMask.ALARM_REVERSE_FLOW;
//Console.WriteLine($"CUSTOMER_AlarmVisualMask: {BitConverter.ToString(BitConverter.GetBytes((int)alarm))}");
//var dlg = FDRMask.LOG_BILLING_COUNTER
// | FDRMask.LOG_MIN_FLOW_VAL
// | FDRMask.LOG_CUR_FLOW_VAL // ... AverageFlow !?
// | FDRMask.LOG_ALARM_STATE
// | FDRMask.LOG_EXT_ALARM_STATE;
//Console.WriteLine($"PERIODICLOG_DataLogContents: {BitConverter.ToString(BitConverter.GetBytes((int)dlg))}");
//var fdr = FDRMask.LOG_BILLING_COUNTER
// | FDRMask.LOG_MIN_FLOW_VAL
// | FDRMask.LOG_CUR_FLOW_VAL // ... AverageFlow !?
// | FDRMask.LOG_ALARM_STATE
// | FDRMask.LOG_EXT_ALARM_STATE;
//Console.WriteLine($"PERIODICLOG_FixedDateReadingContents: {BitConverter.ToString(BitConverter.GetBytes((int)fdr))}");
}
}
}