CommonConsole - programming parameters cordonel

This commit is contained in:
Stoyan Zlatev 2025-09-01 15:08:09 +02:00
parent d7f11e65cc
commit c49e697ba4

View File

@ -1,217 +1,104 @@
namespace CommonConsole
using System;
namespace CommonConsole
{
public static class Program
{
public static int Main(params string[] args)
//public static int Main(params string[] args)
//{
// var pam03 = new PAM03();
// //return pam03.Run("COM7", "412004190", "0E9FACC6A0E1EF1C3B27A49BAC216535");
// try
// {
// return pam03.Run("COM10", "402009768", "3CB64CBCB71F8D0F9F69FF18DF5D24D3");
// }
// catch (System.Exception e)
// {
// return -1;
// }
//}
internal enum AlarmMask
{
var pam03 = new PAM03();
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
};
//return pam03.Run("COM7", "412004190", "0E9FACC6A0E1EF1C3B27A49BAC216535");
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,    //<! Extended Alarm Status
};
public static void Main()
{
Console.WriteLine("CSD CSD 772161_MW");
Console.WriteLine("=============================================================================");
try
{
return pam03.Run("COM10", "402009768", "3CB64CBCB71F8D0F9F69FF18DF5D24D3");
}
catch (System.Exception e)
{
return -1;
}
var alarm = AlarmMask.ALARM_REBOOT
| AlarmMask.ALARM_EMPTY_PIPE
| AlarmMask.ALARM_SUSPECT_LEAK
| AlarmMask.ALARM_BROKEN_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))}");
}
//public static void Main()
//{
// ////var x = (625L * 65536) | 0x80_00_00_00;
// ////Console.WriteLine((int)x);
// ////var semiBytes25747925 = new byte[] { 0x08, 0x03, 0x12, 0x6B, 0x78, 0x41, 0x00, 0x00, 0x01, 0xF4, 0x00, 0x00, 0x83, 0x0C, 0x00, 0x0F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x13, 0x01, 0x88, 0xE1, 0xD5, 0x07, 0x0E, 0x10, 0xEC, 0x56, 0x13, 0xDA, 0x4C, 0x00, 0x00, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, 0x1E, 0x00, 0x03, 0x01, 0x2F, 0xBE, 0xCA, 0x47, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xEF, 0xA6 };
// ////var semi25747925 = new SEMI(semiBytes25747925, 868, 0);
// ////var debugBytes25747925 = new byte[] { 0x0B, 0x10, 0x12, 0x6B, 0x78, 0x41, 0x00, 0x0C, 0x11, 0x0B, 0x11, 0x08, 0x04, 0x02, 0x7C, 0x4C, 0x12, 0x84, 0x15, 0x00, 0x66, 0x00, 0x35, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4A, 0x8F, 0xD2, 0x02, 0x01, 0x01, 0x16, 0x00, 0x1B, 0x02, 0x71, 0x00, 0x00, 0x82, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xA0, 0xA5 };
// ////var debug25747925 = new DEBUG(debugBytes25747925, 0);
// ////var siteUrl = "https://1xylemeur.sharepoint.com/sites/geckoSrc/customer/Pub_CSD/Forms/AllItems.aspx";
// ////var userName = "stoyan.zlatev@xylem.com";
// ////var password = "****************";
// ////var securePassword = new SecureString();
// ////foreach (var c in password)
// ////{
// //// securePassword.AppendChar(c);
// ////}
// ////using (var context = new ClientContext(siteUrl))
// ////{
// //// context.Credentials = new SharePointOnlineCredentials(userName, securePassword);
// //// var web = context.Web;
// //// context.Load(web);
// //// context.ExecuteQuery();
// //// Console.WriteLine("Site Title: " + web.Title);
// ////}
//}
//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,    //<! Extended Alarm Status
//};
//var alarm
// = FDRMask.LOG_BILLING_COUNTER
// | FDRMask.LOG_REVERSE_COUNTER
// | FDRMask.LOG_BROKEN_PIPE_FLOW_TIME
// | FDRMask.LOG_BROKEN_PIPE_FLOW_VAL
// | FDRMask.LOG_PEAK_FLOW_TIME
// | FDRMask.LOG_PEAK_FLOW_VAL
// | FDRMask.LOG_MAX_FLOW_TIME
// | FDRMask.LOG_MAX_FLOW_VAL
// | FDRMask.LOG_MAX_TEMP_TIME
// | FDRMask.LOG_MAX_TEMP_VAL
// | FDRMask.LOG_ALARM_STATE
// | FDRMask.LOG_EXT_ALARM_STATE;
//public static void Main()
//{
// var alarm = AlarmMask.ALARM_REBOOT
// | AlarmMask.ALARM_EMPTY_PIPE
// | AlarmMask.ALARM_SUSPECT_LEAK
// | AlarmMask.ALARM_BROKEN_PIPE
// | AlarmMask.ALARM_LOW_BATTERY
// | AlarmMask.ALARM_REVERSE_FLOW
// | AlarmMask.ALARM_HIGH_TEMPERATURE;
// Console.WriteLine($"Alarm: {alarm}");
// Console.WriteLine(BitConverter.ToString(BitConverter.GetBytes((int)alarm)));
// Console.WriteLine();
// var fdr = FDRMask.LOG_BILLING_COUNTER
// | FDRMask.LOG_REVERSE_COUNTER
// | FDRMask.LOG_BROKEN_PIPE_FLOW_TIME
// | FDRMask.LOG_BROKEN_PIPE_FLOW_VAL
// | FDRMask.LOG_PEAK_FLOW_TIME
// | FDRMask.LOG_PEAK_FLOW_VAL
// | FDRMask.LOG_MAX_FLOW_TIME
// | FDRMask.LOG_MAX_FLOW_VAL
// | FDRMask.LOG_MAX_TEMP_TIME
// | FDRMask.LOG_MAX_TEMP_VAL
// | FDRMask.LOG_ALARM_STATE
// | FDRMask.LOG_EXT_ALARM_STATE;
// Console.WriteLine($"FDR: {fdr}");
// Console.WriteLine(BitConverter.ToString(BitConverter.GetBytes((int)fdr)));
// Console.WriteLine();
// Console.WriteLine($"HErrL: {BitConverter.ToString(BitConverter.GetBytes((short)90))}");
// Console.WriteLine();
// Console.WriteLine("LeakageThreshold");
// Console.WriteLine($"DN 40 100 l/h = 100 * 256 = {BitConverter.ToString(BitConverter.GetBytes(100 * 256))}");
// Console.WriteLine($"DN 50 100 l/h = 100 * 256 = {BitConverter.ToString(BitConverter.GetBytes(100 * 256))}");
// Console.WriteLine($"DN 65 125 l/h = 125 * 256 = {BitConverter.ToString(BitConverter.GetBytes(125 * 256))}");
// Console.WriteLine($"DN 80 125 l/h = 125 * 256 = {BitConverter.ToString(BitConverter.GetBytes(125 * 256))}");
// Console.WriteLine($"DN 100 125 l/h = 125 * 256 = {BitConverter.ToString(BitConverter.GetBytes(125 * 256))}");
// Console.WriteLine($"DN 125 500 l/h = 500 * 256 = {BitConverter.ToString(BitConverter.GetBytes(500 * 256))}");
// Console.WriteLine($"DN 150 375 l/h = 375 * 256 = {BitConverter.ToString(BitConverter.GetBytes(375 * 256))}");
// Console.WriteLine();
// Console.WriteLine("BrokenPipeThreshold");
// Console.WriteLine($"DN 40 50 m³/h = 50 * 256 * 1000 = {BitConverter.ToString(BitConverter.GetBytes( 50 * 256 * 1000))}");
// Console.WriteLine($"DN 80 125 m³/h = 125 * 256 * 1000 = {BitConverter.ToString(BitConverter.GetBytes(125 * 256 * 1000))}");
// Console.WriteLine($"DN 150 250 m³/h = 250 * 256 * 1000 = {BitConverter.ToString(BitConverter.GetBytes(250 * 256 * 1000))}");
// Console.WriteLine();
//}
}
}