laatzen/GenesisDisplayTool/Json.cs
2021-10-01 11:10:17 +02:00

91 lines
3.8 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Globalization;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Printing;
using ZedGraph;
using System.IO;
using Newtonsoft.Json;
namespace GenesisDisplayTool
{
public partial class GENESIS_DISPLAY_TOOL : Form
{
private void JsonRxData(object sender, EventArgs e)
{
String JsonDataType = GetJsonDataType();
#region Definitions and initializations
UInt16 MeterNumber = Constants.Meter1;
#endregion
#region Get meter index
if (rB_JsonMeter1.Checked)
MeterNumber = Constants.Meter1;
if (rB_JsonMeter2.Checked)
MeterNumber = Constants.Meter2;
if (rB_JsonMeter3.Checked)
MeterNumber = Constants.Meter3;
#endregion
if (Int32.Equals(DisplayOnTab, SelectedTab.Json))
{
try
{
String Timestamp = DateTime.Now.ToString(Formats.RawDataDateTimeLogString, this.globalCulture);
#region Decode command
WaitForBackgroundWorkers();
if (MassLogging)
{
switch (MeterNumber)
{
case Constants.Meter1:
//Display.TextboxJsonRxData($"{Timestamp} {CommandInterface1.ReplyCommand(RxStringCmd[Meter])}");
Display.LabelJsonRead(CommandInterface1.ReplyCommandLabelText(RxStringCmd[MeterNumber]));
CommandInterface1.DecodeHighLevelErrors(RxStringCmd[MeterNumber], DisplayOnTab, JsonDataType);
break;
case Constants.Meter2:
//Display.TextboxJsonRxData($"{Timestamp} {CommandInterface2.ReplyCommand(RxStringCmd[Meter])}");
Display.LabelJsonRead(CommandInterface2.ReplyCommandLabelText(RxStringCmd[MeterNumber]));
CommandInterface2.DecodeHighLevelErrors(RxStringCmd[MeterNumber], DisplayOnTab, JsonDataType);
break;
case Constants.Meter3:
//Display.TextboxJsonRxData($"{Timestamp} {CommandInterface3.ReplyCommand(RxStringCmd[Meter])}");
Display.LabelJsonRead(CommandInterface3.ReplyCommandLabelText(RxStringCmd[MeterNumber]));
CommandInterface3.DecodeHighLevelErrors(RxStringCmd[MeterNumber], DisplayOnTab, JsonDataType);
break;
default: break;
}
}
else
{
//Display.TextboxJsonRxData($"{Timestamp} {CommandInterface1.ReplyCommand(RxStringCmd[Meter])}");
Display.LabelJsonRead(CommandInterface1.ReplyCommandLabelText(RxStringCmd[MeterNumber]));
CommandInterface1.DecodeHighLevelErrors(RxStringCmd[MeterNumber], DisplayOnTab, JsonDataType);
}
#endregion
}
catch (Exception ex)
{
#region Error: exception
ErrorLog.Log(LogErrReason.Exception(), "JsonRxData() failed", $"0x{ex.HResult.ToString("X", this.globalCulture)}", String.Empty);
MessageBox.Show("COMMAND CHANNEL RX-Dectection error!", "Form closing", MessageBoxButtons.OK, MessageBoxIcon.Error);
#endregion
}
}
}
}
}