Files

1023 lines
34 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using LFP_Manager.Forms;
using LFP_Manager.Controls;
using LFP_Manager.DataStructure;
using LFP_Manager.Function;
using LFP_Manager.Threads;
using LFP_Manager.Utils;
namespace LFP_Manager.Forms
{
public partial class fmxMain : DevExpress.XtraEditors.XtraForm
{
#region VARIABLES
// Child form
private fmxInventoryConfig InventoryConfig = null;
private fmxModuleDetail ModuleDetailForm = null;
private fmxFwUpdate FwUpdateForm = null;
private fmxHistory HistoryForm = null;
private fmxPacketLog PacketLogForm = null;
// Static Variables
CommConfig Config = new CommConfig();
DeviceSystemTotalData SystemTotalData;
DeviceSystemData SystemData;
// Thread Variables
csUartThread uartThread = null;
csUartThreadEltek uartThreadEltek = null;
csDbThread dbThread = null;
//DevExpress.XtraTab.XtraTabPage[] pgModule;
//ucShelfStatus[] ModuleStatus;
ucMainStatus MainStatus = null;
ucShelfStatus ShelfStatus = null;
private int SystemID = 1;
bool Active = false;
#endregion
#region CONSTRUCTORS
public fmxMain()
{
InitializeComponent();
StructDataInit();
//DataInit();
IniLoad(ref Config);
uTarget.OnConfig += ConfigButtonClick;
uTarget.OnStart += StartButtonClick;
uDataLog.OnUpdate += LogStatusUpdate;
uEventLog.OnPacketAnalyzerClick += packetAnalyzerToolStripMenuItem_Click;
this.Text = String.Format("LFP SYSTEM [{0}] -- TW (for DBG)", Application.ProductVersion);
}
private void IniLoad(ref CommConfig aConfig)
{
csIniControlFunction.IniLoad(Application.ExecutablePath, ref aConfig);
uTarget.UpdateConfig(ref aConfig);
TypeChangedUpdate(ref aConfig);
}
private void StructDataInit()
{
SystemTotalData = new DeviceSystemTotalData
{
ValueData = new DeviceValueTotalData(),
StatusData = new DeviceStatusTotalData()
};
SystemData = new DeviceSystemData();
}
#endregion
#region BUTTON EVENT
private void ConfigButtonClick(object sender, EventArgs e)
{
foreach (Form frm in Application.OpenForms)
{
if (frm.Name == "fmxCommConfig")
{
frm.Activate();
return;
}
}
fmxCommConfig CommConfigForm = new fmxCommConfig
{
Owner = this
};
CommConfigForm.OnUpdate += UpdateConfig;
CommConfigForm.Show();
}
private void StartButtonClick(object sender, EventArgs e)
{
if (Active)
{
StructDataInit();
switch (Config.CommType)
{
case csConstData.CommType.COMM_UART:
switch (Config.UartProtocol)
{
case 0: // AMG Protocol
if (uartThread != null)
{
uartThread.disposeThread();
uartThread = null;
UpdateData(this, ref SystemData);
edSystemId.Enabled = true;
chbPolling.Enabled = true;
}
break;
case 1: // ELTEK Protocol
if (uartThreadEltek != null)
{
uartThreadEltek.disposeThread();
uartThreadEltek = null;
UpdateData(this, ref SystemData);
edSystemId.Enabled = true;
chbPolling.Enabled = true;
}
break;
}
break;
}
if (dbThread != null)
{
dbThread.disposeThread();
dbThread = null;
}
Active = false;
}
else
{
switch (Config.CommType)
{
case csConstData.CommType.COMM_UART:
// UART MODE - RS-485
switch (Config.UartProtocol)
{
case 0: // AMG Protocol
CommUARTStart();
break;
case 1: // ELTEK Protocol
CommUARTStartEltek();
break;
}
break;
}
}
uTarget.UpdateStatus(Active);
uDataLog.UpdateActiveStatus(Active, Config, ref SystemTotalData, ref SystemData);
DisplayCommStatus();
}
private void UartRecvData(byte[] data)
{
if (this.InvokeRequired)
{
this.Invoke(new MethodInvoker(delegate ()
{
FwUpdateForm?.RecvData(data);
HistoryForm?.RecvUardData(data);
}));
}
else
{
FwUpdateForm?.RecvData(data);
HistoryForm?.RecvUardData(data);
}
}
private void CommUARTStart()
{
try
{
int sId = 0;
if (edSystemId.Text != string.Empty)
sId = Convert.ToInt16(edSystemId.Text);
uartThread = new csUartThread(sId, Config, ref SystemData);
uartThread.OnUpdate += UpdateData;
uartThread.OnDataRecv += UartRecvData;
uartThread.OnPrint += CommDataPrint;
uartThread.OnPacketLog += PacketLogUpdate;
uartThread.SetPolling(chbPolling.Checked, sId, ref SystemData);
if (uartThread.Start(ref Config, sId, chbPolling.Checked))
{
Active = true;
edSystemId.Enabled = false;
chbPolling.Enabled = true;
if (chbPolling.Checked)
edSystemId.Enabled = false;
else
edSystemId.Enabled = true;
uartThread.SetPolling(chbPolling.Checked, sId, ref SystemData);
MainStatus?.Start(ref Config, ref SystemTotalData, ref SystemData);
ShelfStatus?.UpdateSystemId(sId);
dbThread = new csDbThread(ref Config, ref SystemData);
dbThread.Start(Config);
}
else
{
if (uartThread != null)
{
uartThread.disposeThread();
uartThread = null;
}
if (dbThread != null)
{
dbThread.disposeThread();
dbThread = null;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
if (uartThread != null)
{
uartThread.disposeThread();
uartThread = null;
}
if (dbThread != null)
{
dbThread.disposeThread();
dbThread = null;
}
}
}
private void CommUARTStartEltek()
{
try
{
int sId = 0;
if (edSystemId.Text != string.Empty)
sId = Convert.ToInt16(edSystemId.Text);
uartThreadEltek = new csUartThreadEltek(sId, Config, ref SystemData);
uartThreadEltek.OnUpdate += UpdateData;
//uartThreadEltek.OnDataRecv += UartRecvData;
uartThreadEltek.OnPrint += CommDataPrint;
uartThreadEltek.SetPolling(chbPolling.Checked, sId, ref SystemData);
if (uartThreadEltek.Start(Config, sId, chbPolling.Checked))
{
Active = true;
edSystemId.Enabled = false;
chbPolling.Enabled = true;
if (chbPolling.Checked)
edSystemId.Enabled = false;
else
edSystemId.Enabled = true;
uartThreadEltek.SetPolling(chbPolling.Checked, sId, ref SystemData);
ShelfStatus.UpdateSystemId(sId);
dbThread = new csDbThread(ref Config, ref SystemData);
dbThread.Start(Config);
}
else
{
if (uartThreadEltek != null)
{
uartThreadEltek.disposeThread();
uartThreadEltek = null;
}
if (dbThread != null)
{
dbThread.disposeThread();
dbThread = null;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
if (uartThreadEltek != null)
{
uartThreadEltek.disposeThread();
uartThreadEltek = null;
}
if (dbThread != null)
{
dbThread.disposeThread();
dbThread = null;
}
}
}
#endregion
#region UPDATE FUNCTIONS
private void TypeChangeUpdate(ref CommConfig aConfig)
{
// Display Screen Delete
if (MainStatus != null)
{
MainStatus.Dispose();
MainStatus = null;
}
if (ShelfStatus != null)
{
ShelfStatus.Dispose();
ShelfStatus = null;
}
if (aConfig.ModuleQty > 1)
{
// All disable first
for (int i = 0; i < tabStatus.TabPages.Count; i++)
{
tabStatus.TabPages[i].PageVisible = false;
}
MainStatus = new ucMainStatus();
MainStatus.OnCommand += SetCmdEvent;
tabStatus.TabPages[0].Text = String.Format("LFP System [{0}.{1}.{2}.{3}]"
, 0
, 0
, 0
, 0
);
tabStatus.TabPages[0].PageVisible = true;
tabStatus.TabPages[0].Controls.Add(MainStatus);
MainStatus.Dock = DockStyle.Fill;
MainStatus.UpdateMainConfig(ref Config, ref SystemData);
//SystemTotalData.IdentData.ModuleQuantity = Config.ModuleQty;
edSystemId.Enabled = false;
chbPolling.Enabled = false;
}
else
{
TypeChangeUpdateUart(ref aConfig);
}
}
private void TypeChangeUpdateUart(ref CommConfig aConfig)
{
tabStatus.TabPages[0].PageVisible = true;
for (int i = 1; i < tabStatus.TabPages.Count; i++)
{
tabStatus.TabPages[i].PageVisible = false;
}
tabStatus.TabPages[0].Text = String.Format("LFP Module [{0}.{1}.{2}.{3}]"
, 0
, 0
, 0
, 0
);
ShelfStatus = new ucShelfStatus();
ShelfStatus.OnCommand += SetCmdEvent;
ShelfStatus.Dock = DockStyle.Fill;
tabStatus.TabPages[0].PageVisible = true;
tabStatus.TabPages[0].Controls.Add(ShelfStatus);
ShelfStatus.Start(Convert.ToInt32(edSystemId.Text), ref aConfig, ref SystemData);
edSystemId.Enabled = true;
chbPolling.Enabled = true;
}
private void TypeChangedUpdate(ref CommConfig aConfig)
{
// Display Screen Deletes
if (MainStatus != null)
{
MainStatus.Dispose();
MainStatus = null;
}
if (ShelfStatus != null)
{
ShelfStatus.Dispose();
ShelfStatus = null;
}
switch (aConfig.CommType)
{
case csConstData.CommType.COMM_UART:
TypeChangeUpdate(ref aConfig);
break;
}
//DisplayCommStatus();
}
private void UpdateData(object sender, ref DeviceSystemData rData)
{
SystemData = rData;
MakeTotalData();
MakeTotalStatus();
MakeTotalAlarm();
ShelfStatus?.UpdateData(ref SystemData);
uDataLog.UpdateData(ref SystemTotalData, ref SystemData);
//DisplaySystemFwVerModule();
//ucCalibrationView1.DisplayValue(ref SystemData);
}
private void DisplaySystemFwVerModule()
{
if (this.InvokeRequired)
{
this.Invoke(new MethodInvoker(delegate ()
{
if (SystemData.ValueData.fw_ver[0] != 0x00)
{
byte[] sn = new byte[33];
for (int i = 0; i < 32; i++)
sn[i] = SystemData.Information.BMS_SN[i];
sn[32] = 0;
tabStatus.TabPages[0].Text = String.Format("{0} [{1}] - {2}", "LFP MODULE"
, Encoding.UTF8.GetString(SystemData.ValueData.fw_ver)
, Encoding.Default.GetString(sn).Trim('\0')
);
}
else
{
tabStatus.TabPages[0].Text = String.Format("LFP MODULE");
}
}));
}
else
{
if (SystemData.ValueData.fw_ver[0] != 0x00)
{
byte[] sn = new byte[17];
for (int i = 0; i < 16; i++)
sn[i] = SystemData.Information.BMS_SN[i]; //22.06.30 Byul 32->16
sn[16] = 0;
tabStatus.TabPages[0].Text = String.Format("{0} [{1}] - {2}", "LFP MODULE"
, Encoding.UTF8.GetString(SystemData.ValueData.fw_ver).Trim('\0')
, Encoding.Default.GetString(sn).Trim('\0')
);
}
else
{
tabStatus.TabPages[0].Text = String.Format("LFP MODULE");
}
}
}
private void UpdateSnmpData(object sender, ref DeviceSystemTotalData tData, ref DeviceSystemData rData)
{
SystemTotalData = tData;
SystemData = rData;
MakeTotalData();
MakeTotalStatus();
MakeTotalAlarm();
if (MainStatus != null)
{
MainStatus.UpdateData(ref SystemTotalData, ref SystemData);
if (ModuleDetailForm != null)
{
int mID = ModuleDetailForm.GetModuleID();
ModuleDetailForm.UpdateData(ref SystemData);
}
}
uDataLog.UpdateData(ref SystemTotalData, ref SystemData);
DisplaySystemFwVer();
}
private void DisplaySystemFwVer()
{
if (this.InvokeRequired)
{
this.Invoke(new MethodInvoker(delegate ()
{
if (SystemTotalData.IdentData.fw_ver[0] != 0x00)
{
tabStatus.TabPages[0].Text = String.Format("LFP System [{0}.{1}.{2}.{3}]"
, SystemTotalData.IdentData.fw_ver[0]
, SystemTotalData.IdentData.fw_ver[1]
, SystemTotalData.IdentData.fw_ver[2]
, SystemTotalData.IdentData.fw_ver[3]
);
}
else
{
tabStatus.TabPages[0].Text = String.Format("LFP System [------]");
}
}));
}
else
{
if (SystemTotalData.IdentData.fw_ver[0] != 0x00)
{
tabStatus.TabPages[0].Text = String.Format("LFP System [{0}.{1}.{2}.{3}]"
, SystemTotalData.IdentData.fw_ver[0]
, SystemTotalData.IdentData.fw_ver[1]
, SystemTotalData.IdentData.fw_ver[2]
, SystemTotalData.IdentData.fw_ver[3]
);
}
else
{
tabStatus.TabPages[0].Text = String.Format("LFP System [------]");
}
}
}
private void MakeTotalData()
{
if (Config.CommType == csConstData.CommType.COMM_UART)
{
MakeTotalDataByUartMulti();
//MakeTotalDataByUART();
}
}
private void MakeTotalDataByUART() //Byul 21.08.09 Make Function
{
SystemTotalData.ValueData.TotalVoltage = SystemData.ValueData.voltageOfPack;
SystemTotalData.ValueData.TotalCurrent = SystemData.ValueData.current;
SystemTotalData.ValueData.TotalSOC = SystemData.ValueData.rSOC;
SystemTotalData.ValueData.TotalTemp = SystemData.AvgData.avgTemp;
}
private void MakeTotalDataByCAN()
{
SystemTotalData.ValueData.TotalVoltage = SystemData.ValueData.voltageOfPack;
SystemTotalData.ValueData.TotalCurrent = SystemData.ValueData.current;
SystemTotalData.ValueData.TotalSOC = SystemData.ValueData.rSOC;
SystemTotalData.ValueData.TotalTemp = SystemData.AvgData.maxTemp;
}
private void MakeTotalDataByUartMulti()
{
int j = 0;
int vsum, csum, ssum, tsum;
int mQty = Config.ModuleQty;
vsum = csum = ssum = tsum = 0;
for (int i = 0; i < mQty; i++)
{
if (SystemData.ShelfCommFail == false)
{
vsum += SystemData.ValueData.voltageOfPack;
csum += SystemData.ValueData.current;
ssum += SystemData.ValueData.rSOC;
tsum += SystemData.AvgData.avgTemp;
j++;
}
}
if (j > 0)
{
SystemTotalData.ValueData.TotalVoltage = (short)(vsum / j);
SystemTotalData.ValueData.TotalCurrent = (short)(csum);
SystemTotalData.ValueData.TotalSOC = (short)(ssum / j);
SystemTotalData.ValueData.TotalTemp = (short)(tsum / j);
}
else
{
SystemTotalData.ValueData.TotalVoltage = 0;
SystemTotalData.ValueData.TotalCurrent = 0;
SystemTotalData.ValueData.TotalSOC = 0;
SystemTotalData.ValueData.TotalTemp = 0;
}
}
private void MakeTotalStatus()
{
if (Config.CommType == csConstData.CommType.COMM_UART)
{
MakeTotalStatusByCAN();
}
}
private void MakeTotalStatusByCAN()
{
SystemTotalData.StatusData.status = SystemData.StatusData.status;
SystemTotalData.CommFail = SystemData.ShelfCommFail;
}
private void MakeTotalStatusBySNMP()
{
int mQty = csUtils.GetModuleQty(Config);
switch (SystemTotalData.StatusData.status)
{
case 0: // Standby
if (SystemTotalData.ValueData.TotalCurrent > 50) // Charging 10.0A
SystemTotalData.StatusData.status = 1; // Charging
else if (SystemTotalData.ValueData.TotalCurrent < -50) // Discharge -10.0A
SystemTotalData.StatusData.status = 2; // Discharging
else
{
bool flag = true;
for (int i = 0; i < mQty; i++)
{
if (SystemData.StatusData.status != 3)
{
flag = false;
break;
}
}
if (flag == true)
SystemTotalData.StatusData.status = 3; // Floating
}
break;
case 1: // Charging
if (SystemTotalData.ValueData.TotalCurrent < -50) // Discharge -10.0A
SystemTotalData.StatusData.status = 2; // Discharging
else if (SystemTotalData.ValueData.TotalCurrent < 30) // Charging 5.0A
SystemTotalData.StatusData.status = 0; // Standby
else
{
bool flag = true;
for (int i = 0; i < mQty; i++)
{
if (SystemData.StatusData.status != 3)
{
flag = false;
break;
}
}
if (flag == true)
SystemTotalData.StatusData.status = 3; // Floating
}
break;
case 2: // Discharging
if (SystemTotalData.ValueData.TotalCurrent > 50) // Charging 10.0A
SystemTotalData.StatusData.status = 1; // Charging
else if (SystemTotalData.ValueData.TotalCurrent > -30) // Discharge -5.0A
SystemTotalData.StatusData.status = 0; // Standby
else
{
bool flag = true;
for (int i = 0; i < mQty; i++)
{
if (SystemData.StatusData.status != 3)
{
flag = false;
break;
}
}
if (flag == true)
SystemTotalData.StatusData.status = 3; // Floating
}
break;
case 3: // Floating
if (SystemTotalData.ValueData.TotalCurrent > 50) // Charging 10.0A
SystemTotalData.StatusData.status = 1; // Charging
else if (SystemTotalData.ValueData.TotalCurrent < -50) // Discharge -10.0A
SystemTotalData.StatusData.status = 2; // Discharge
else
{
bool flag = true;
for (int i = 0; i < mQty; i++)
{
if (SystemData.StatusData.status != 3)
{
flag = false;
break;
}
}
if (flag == false)
SystemTotalData.StatusData.status = 0; // Standby
}
break;
}
}
private void MakeTotalAlarm()
{
int mQty = csUtils.GetModuleQty(Config);
bool aTrip, aWarning;
aTrip = aWarning = false;
for (int i = 0; i < mQty; i++)
{
if (SystemData.StatusData.batteryStatus == 2)
aTrip = true;
else if ((SystemData.StatusData.batteryStatus == 1) || (SystemData.ShelfCommFail == true))
aWarning = true;
}
if (aTrip)
SystemTotalData.StatusData.batteryStatus = 2;
else if (aWarning)
SystemTotalData.StatusData.batteryStatus = 1;
else
SystemTotalData.StatusData.batteryStatus = 0;
}
private void UpdateConfig(object aConfig)
{
Config = (CommConfig)aConfig;
IniLoad(ref Config);
}
#endregion
#region MENU EVENT
private void commConfigToolStripMenuItem_Click(object sender, EventArgs e)
{
ConfigButtonClick(sender, e);
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
private void testSendToolStripMenuItem_Click(object sender, EventArgs e)
{
csHistoryFunction.DbCreate(System.IO.Path.GetDirectoryName(Application.ExecutablePath));
}
private void firmwareUpdateToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form frm in Application.OpenForms)
{
if (frm.Name == "fmxFwUpdate")
{
frm.Activate();
return;
}
}
if (uartThread != null)
{
FwUpdateForm = new fmxFwUpdate(uartThread.SystemId);
}
else
{
return;
}
FwUpdateForm.OnAutoTxSet += SetAutoTx;
FwUpdateForm.OnSendUartData += SetWriteData;
FwUpdateForm.Show();
}
private void historyViewToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form frm in Application.OpenForms)
{
if (frm.Name == "fmxHistory")
{
frm.Activate();
return;
}
}
HistoryForm = new fmxHistory(Config, SystemID);
HistoryForm.OnAutoTxSet += SetAutoTx;
HistoryForm.OnSendUartData += SetWriteData;
HistoryForm.Show();
HistoryForm.Show();
}
private void changePasswordToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form frm in Application.OpenForms)
{
if (frm.Name == "FmxChangePassword")
{
frm.Activate();
return;
}
}
using (FmxChangePassword ChangePwForm = new FmxChangePassword(Config))
{
ChangePwForm.ShowDialog(this);
}
}
private void packetAnalyzerToolStripMenuItem_Click(object sender, EventArgs e)
{
if (PacketLogForm == null || PacketLogForm.IsDisposed)
{
PacketLogForm = new fmxPacketLog();
}
PacketLogForm.Show();
PacketLogForm.BringToFront();
}
private void PacketLogUpdate(DateTime timestamp, bool isTx, byte[] packet, string description)
{
PacketLogForm?.AddPacketLog(timestamp, isTx, packet, description);
}
#endregion
#region FORM EVENT
private void fmxMain_FormClosing(object sender, FormClosingEventArgs e)
{
if (uartThread != null)
{
uartThread.disposeThread();
uartThread = null;
}
if (uartThreadEltek != null)
{
uartThreadEltek.disposeThread();
uartThreadEltek = null;
}
if (dbThread != null)
{
dbThread.disposeThread();
dbThread = null;
}
}
#endregion
#region TIMER EVENT
#endregion
#region STATUS BAR EVENT
void DisplayCommStatus()
{
if (Active == true)
CommStatusBar.Text = "Comm: On";
else
CommStatusBar.Text = "Comm: Off";
}
void DisplayCommStatus(string msg)
{
if (msg != "")
CommStatusBar.Text = String.Format("Comm: {0}", msg);
}
void LogStatusUpdate(object sender, string msg, bool active, int aLogTime)
{
LogStatusBar.Text = msg;
}
#endregion
#region CAN COMMAND AND SET
private void CommDataPrint(object sender, string msg)
{
if (msg != "")
{
uEventLog.EventUpdate(msg + "\r\n");
}
}
private void SetWriteData(ushort WriteAddr, byte[] WriteData, bool RelyFlag)
{
uartThread?.SetWriteReg(WriteAddr, WriteData, RelyFlag);
}
private void SetCmdEvent(int sId, int cmd, int index, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
{
if (MainStatus != null)
{
switch (cmd)
{
case 1: // Module quatity set
break;
case 2:
CreateModuleDetailForm(sId);
break;
}
}
uartThread?.SendProcessFromApp(sId, cmd, index, flag, ref aParam, ref aCalib);
uartThreadEltek?.SendProcessFromApp(sId, cmd, index, flag, ref aParam, ref aCalib);
}
private void CreateModuleDetailForm(int sID)
{
foreach (Form frm in Application.OpenForms)
{
if (frm.Name == "fmxModuleDetail")
{
((fmxModuleDetail)frm).SetModuleID(sID);
frm.Activate();
return;
}
}
ModuleDetailForm = new fmxModuleDetail(sID, ref Config, ref SystemData);
//ModuleDetailForm.OnAutoTxCanSet += SetAutoTxCan;
//ModuleDetailForm.OnSendDataCan += SendDataToCan;
ModuleDetailForm.Show();
}
private void chbPolling_CheckedChanged(object sender, EventArgs e)
{
if (edSystemId.Text != "")
{
SystemID = Convert.ToInt32(edSystemId.Text);
if (uartThread != null)
{
uartThread.SetPolling(chbPolling.Checked, SystemID, ref SystemData);
ShelfStatus?.UpdateSystemId(SystemID);
}
if (uartThreadEltek != null)
{
uartThreadEltek.SetPolling(chbPolling.Checked, SystemID, ref SystemData);
ShelfStatus?.UpdateSystemId(SystemID);
}
if (chbPolling.Checked)
edSystemId.Enabled = false;
else
edSystemId.Enabled = true;
}
}
private void edSystemId_KeyPress(object sender, KeyPressEventArgs e)
{
csUtils.TypingOnlyNumber(sender, e, false, false);
}
#endregion
private void SetAutoTx(bool autoTx)
{
uartThread?.SetAutoTx(autoTx);
uartThreadEltek?.SetAutoTx(autoTx);
}
private void inventoryControlToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form frm in Application.OpenForms)
{
if (frm.Name == "fmxInventoryConfig")
{
frm.Activate();
return;
}
}
InventoryConfig = new fmxInventoryConfig(0, ref Config, ref SystemData);
InventoryConfig.OnUpdate += UpdateInformation;
InventoryConfig.OnCommand += InvDataSetCmd;
//InventoryConfig.OnCommandBySnmp += SetInvEventBySnmp;
InventoryConfig.Show();
}
private void UpdateInformation(object sendor)
{
((fmxInventoryConfig)sendor).UpdateData(ref SystemTotalData, ref SystemData);
}
private void InvDataSetCmd(int sId, int mode, int index, int flag, ref DeviceInforation aInvData)
{
SystemData.CalibriationData.InvData = aInvData;
//OnCommand?.Invoke(sId, mode, index, flag, ref SystemData[0].ParamData, ref SystemData[0].CalibriationData);
//SetCmdToCan(sId, mode, index, flag, ref SystemData[0].ParamData, ref SystemData[0].CalibriationData);
}
private void checkDBToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form frm in Application.OpenForms)
{
if (frm.Name == "fmxExcelFile")
{
frm.Activate();
return;
}
}
fmxExcelFile DbControl = new fmxExcelFile(Config);
DbControl.Show();
}
#region TIMER EVENT
private void tmrDisplay_Tick(object sender, EventArgs e)
{
DisplaySystemFwVerModule();
}
#endregion
}
}