laatzen/Common/CommonConsole/Program.cs
2025-09-11 11:51:07 +02:00

127 lines
6.1 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 Common.Hardware.SIRT;
using System;
using System.Linq;
namespace CommonConsole
{
public static class Program
{
public static void Main2(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;
//}
}
internal enum FDRMask
{
LOG_ALARM_STATE = 1 << 0, // 0x00000001, //!< AlarmState (16 bits)
LOG_BILLING_COUNTER = 1 << 1, // 0x00000002, //!< BillingCounter
LOG_REVERSE_COUNTER = 1 << 2, // 0x00000004, //!< Backward or ReverseCounter
LOG_MAX_FLOW_VAL = 1 << 3, // 0x00000008, //!< Value of MaxFlow
LOG_MAX_FLOW_TIME = 1 << 4, // 0x00000010, //!< Date/Time of MaxFlow
LOG_PEAK_FLOW_VAL = 1 << 5, // 0x00000020, //!< Value of PeakFlow
LOG_PEAK_FLOW_TIME = 1 << 6, // 0x00000040, //!< Date/Time of PeakFlow
LOG_CUR_FLOW_VAL = 1 << 7, // 0x00000080, //!< Current Flow Value (Average of Period)
LOG_BROKEN_PIPE_FLOW_VAL = 1 << 8, // 0x00000100, //!< Value of BrokenPipe
LOG_BROKEN_PIPE_FLOW_TIME = 1 << 9, // 0x00000200, //!< Date/Time of BrokenPipe
LOG_MIN_FLOW_VAL = 1 << 10, // 0x00000400, //!< Value of FlowMin
LOG_MIN_FLOW_TIME = 1 << 11, // 0x00000800, //!< Date/Time of FlowMin
LOG_FORWARD_COUNTER = 1 << 12, // 0x00001000, //!< ForwardCounter
LOG_MIN_PRESS_VAL = 1 << 13, // 0x00010000, //!< Pressure Minimum
LOG_MIN_PRESS_TIME = 1 << 14, // 0x00020000, //!< Pressure Minimum Time
LOG_MAX_PRESS_VAL = 1 << 15, // 0x00040000, //!< Pressure Maximum
LOG_MAX_PRESS_TIME = 1 << 16, // 0x00080000, //!< Pressure Maximum Time
LOG_MIN_TEMP_VAL = 1 << 17, // 0x00100000, //!< Temperature Minimum
LOG_MIN_TEMP_TIME = 1 << 18, // 0x00200000, //!< Temperature Minimum
LOG_MAX_TEMP_VAL = 1 << 19, // 0x00400000, //!< Temperature Maximum
LOG_MAX_TEMP_TIME = 1 << 20, // 0x00800000, //!< Temperature Maximum
LOG_CUR_PRESS_VAL = 1 << 21, // 0x01000000, //!< Pressure Current Value
LOG_CUR_TEMP_VAL = 1 << 22, // 0x02000000, //!< Temperature Current Value
LOG_EXT_ALARM_STATE = 1 << 23, // 0x04000000,    //<! Extended Alarm Status
};
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
};
public static void Main()
{
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))}");
}
}
}