초기 커밋.
This commit is contained in:
396
LFP_Manager/Forms/fmxParamConfig.cs
Normal file
396
LFP_Manager/Forms/fmxParamConfig.cs
Normal file
@@ -0,0 +1,396 @@
|
||||
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.DataStructure;
|
||||
using LFP_Manager.Function;
|
||||
using LFP_Manager.Controls;
|
||||
|
||||
namespace LFP_Manager.Forms
|
||||
{
|
||||
public partial class fmxParamConfig : DevExpress.XtraEditors.XtraForm
|
||||
{
|
||||
#region DELEGATE
|
||||
public delegate void ParamUpdateEvent(object sendor);
|
||||
public delegate void ParamCmdEvent(int sId, int mode, int index, int flag,
|
||||
ref CsDeviceData.DeviceModuleData.DeviceParamData aParam,
|
||||
ref CsDeviceData.DeviceModuleData.DeviceCalibration aCalib);
|
||||
#endregion
|
||||
|
||||
#region VARIABLES
|
||||
|
||||
private int SystemId = 0;
|
||||
private CommConfig Config = null;
|
||||
private CsDeviceData.DeviceModuleData.DeviceParamData Param;
|
||||
private CsDeviceData.DeviceModuleData.DeviceCalibration Calib;
|
||||
|
||||
private ucParamSet[] ParamSet = null;
|
||||
|
||||
private int PasswordResult = 0;
|
||||
|
||||
public event ParamUpdateEvent OnUpdate = null;
|
||||
public event ParamCmdEvent OnCommand = null;
|
||||
|
||||
#endregion
|
||||
|
||||
#region CONSTRUCTORS
|
||||
|
||||
public fmxParamConfig(int sId, CommConfig aConfig, CsDeviceData.DeviceModuleData.DeviceParamData aParam)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
Config = aConfig;
|
||||
SystemId = sId;
|
||||
Param = aParam;
|
||||
|
||||
InitComponent();
|
||||
|
||||
gbVoltageParamSet.Text = "Parameter Config";
|
||||
|
||||
tmrDisplay.Enabled = true;
|
||||
}
|
||||
|
||||
public void InitComponent()
|
||||
{
|
||||
ParamSet = new ucParamSet[11];
|
||||
|
||||
|
||||
// Cell Voltage Parameter
|
||||
ParamSet[0] = ucCOVParam;
|
||||
ParamSet[0].SetParamName(0, "Cell Over Voltage");
|
||||
ParamSet[0].SetParamName(1, "mV");
|
||||
ParamSet[0].SetId(0);
|
||||
ParamSet[0].OnCommand += OnCmdEvent;
|
||||
|
||||
ParamSet[1] = ucCUVParam;
|
||||
ParamSet[1].SetParamName(0, "Cell Under Voltage");
|
||||
ParamSet[1].SetParamName(1, "mV");
|
||||
ParamSet[1].SetId(1);
|
||||
ParamSet[1].OnCommand += OnCmdEvent;
|
||||
//ucCUVParam.EnableItem(0, false);
|
||||
|
||||
// System Voltage Parameter
|
||||
ParamSet[2] = ucSOVParam;
|
||||
ParamSet[2].SetParamName(0, "System Over Voltage");
|
||||
ParamSet[2].SetParamName(1, "V");
|
||||
ParamSet[2].SetId(2);
|
||||
ParamSet[2].OnCommand += OnCmdEvent;
|
||||
|
||||
ParamSet[3] = ucSUVParam;
|
||||
ParamSet[3].SetParamName(0, "System Under Voltage");
|
||||
ParamSet[3].SetParamName(1, "V");
|
||||
ParamSet[3].SetId(3);
|
||||
ParamSet[3].OnCommand += OnCmdEvent;
|
||||
//ucSUVParam.EnableItem(0, false);
|
||||
|
||||
// Charge Temperature Parameter
|
||||
ParamSet[4] = ucCHTParam;
|
||||
ParamSet[4].SetParamName(0, "Charge High Temp");
|
||||
ParamSet[4].SetParamName(1, "C");
|
||||
ParamSet[4].SetId(4);
|
||||
ParamSet[4].OnCommand += OnCmdEvent;
|
||||
|
||||
ParamSet[5] = ucCLTParam;
|
||||
ParamSet[5].SetParamName(0, "Charge Low Temp");
|
||||
ParamSet[5].SetParamName(1, "C");
|
||||
ParamSet[5].SetId(5);
|
||||
ParamSet[5].OnCommand += OnCmdEvent;
|
||||
|
||||
// Discharge Temperature Parameter
|
||||
ParamSet[6] = ucDHTParam;
|
||||
ParamSet[6].SetParamName(0, "Discharge High Temp");
|
||||
ParamSet[6].SetParamName(1, "C");
|
||||
ParamSet[6].SetId(6);
|
||||
ParamSet[6].OnCommand += OnCmdEvent;
|
||||
//ucDHTParam.EnableItem(0, false);
|
||||
|
||||
ParamSet[7] = ucDLTParam;
|
||||
ParamSet[7].SetParamName(0, "Discharge Low Temp");
|
||||
ParamSet[7].SetParamName(1, "C");
|
||||
ParamSet[7].SetId(7);
|
||||
ParamSet[7].OnCommand += OnCmdEvent;
|
||||
//ucDLTParam.EnableItem(0, false);
|
||||
|
||||
// Over Current Parameter
|
||||
ParamSet[8] = ucCOCParam;
|
||||
ParamSet[8].SetParamName(0, "Charge Over Current");
|
||||
ParamSet[8].SetParamName(1, "A");
|
||||
ParamSet[8].SetId(8);
|
||||
ParamSet[8].OnCommand += OnCmdEvent;
|
||||
//ucCOCParam.EnableItem(2, false);
|
||||
|
||||
ParamSet[9] = ucDOCParam;
|
||||
ParamSet[9].SetParamName(0, "Discharge Over Current");
|
||||
ParamSet[9].SetParamName(1, "A");
|
||||
ParamSet[9].SetId(9);
|
||||
ParamSet[9].OnCommand += OnCmdEvent;
|
||||
//ucDOCParam.EnableItem(2, false);
|
||||
|
||||
// Low Capacity Parameter
|
||||
ParamSet[10] = ucSocParam;
|
||||
ParamSet[10].SetParamName(0, "SOC");
|
||||
ParamSet[10].SetParamName(1, "%");
|
||||
ParamSet[10].SetId(10);
|
||||
ParamSet[10].OnCommand += OnCmdEvent;
|
||||
ParamSet[10].VisibleItem(0, false);
|
||||
ParamSet[10].VisibleItem(2, false);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region COMMAND EVENT
|
||||
|
||||
private void OnCmdEvent(int mode, int flag, ParamData aParam)
|
||||
{
|
||||
int cmd = 0;
|
||||
CsDeviceData.DeviceModuleData.DeviceParamData wParam = Param.DeepCopy();
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case 0: // Cell Over Voltage
|
||||
cmd = csConstData.UART_PARAM_LIST.CELL_OVER_VOLTAGE;
|
||||
wParam.CellOverVoltageTrip = aParam.Fault;
|
||||
wParam.CellOverVoltageWarning = aParam.Warning;
|
||||
wParam.CellOverVoltageRelease = aParam.Release;
|
||||
break;
|
||||
case 1: // Cell Under Voltage
|
||||
cmd = csConstData.UART_PARAM_LIST.CELL_UNDER_VOLTAGE;
|
||||
wParam.CellUnderVoltageTrip = aParam.Fault;
|
||||
wParam.CellUnderVoltageWarning = aParam.Warning;
|
||||
wParam.CellUnderVoltageRelease = aParam.Release;
|
||||
break;
|
||||
case 2: // System Over Voltage
|
||||
cmd = csConstData.UART_PARAM_LIST.PACK_OVER_VOLTAGE;
|
||||
wParam.SysOverVoltageTrip = aParam.Fault;
|
||||
wParam.SysOverVoltageWarning = aParam.Warning;
|
||||
wParam.SysOverVoltageRelease = aParam.Release;
|
||||
break;
|
||||
case 3: // System Under Voltage
|
||||
cmd = csConstData.UART_PARAM_LIST.PACK_UNDER_VOLTAGE;
|
||||
wParam.SysUnderVoltageTrip = aParam.Fault;
|
||||
wParam.SysUnderVoltageWarning = aParam.Warning;
|
||||
wParam.SysUnderVoltageRelease = aParam.Release;
|
||||
break;
|
||||
case 4: // Charge High Temperature
|
||||
cmd = csConstData.UART_PARAM_LIST.CHG_HIGH_TEMPERATURE;
|
||||
wParam.ChaHighTempTrip = aParam.Fault;
|
||||
wParam.ChaHighTempWarning = aParam.Warning;
|
||||
wParam.ChaHighTempRelease = aParam.Release;
|
||||
break;
|
||||
case 5: // Charge Low Temperature
|
||||
cmd = csConstData.UART_PARAM_LIST.CHG_LOW_TEMPERATURE;
|
||||
wParam.ChaLowTempTrip = aParam.Fault;
|
||||
wParam.ChaLowTempWarning = aParam.Warning;
|
||||
wParam.ChaLowTempRelease = aParam.Release;
|
||||
break;
|
||||
case 6: // Discharge High Temperature
|
||||
cmd = csConstData.UART_PARAM_LIST.DCH_HIGH_TEMPERATURE;
|
||||
wParam.DchHighTempTrip = aParam.Fault;
|
||||
wParam.DchHighTempWarning = aParam.Warning;
|
||||
wParam.DchHighTempRelease = aParam.Release;
|
||||
break;
|
||||
case 7: // Discharge Low Temperature
|
||||
cmd = csConstData.UART_PARAM_LIST.DCH_LOW_TEMPERATURE;
|
||||
wParam.DchLowTempTrip = aParam.Fault;
|
||||
wParam.DchLowTempWarning = aParam.Warning;
|
||||
wParam.DchLowTempRelease = aParam.Release;
|
||||
break;
|
||||
case 8: // Charge Over Current
|
||||
cmd = csConstData.UART_PARAM_LIST.CHG_OVER_CURRENT;
|
||||
wParam.ChaOverCurrentTrip2 = aParam.Fault;
|
||||
wParam.ChaOverCurrentTrip1 = aParam.Warning;
|
||||
wParam.ChaOverCurrentReleaseTime = aParam.Release;
|
||||
break;
|
||||
case 9: // Discharge Over Current
|
||||
cmd = csConstData.UART_PARAM_LIST.DCH_OVER_CURRENT;
|
||||
wParam.DchOverCurrentTrip2 = aParam.Fault;
|
||||
wParam.DchOverCurrentTrip1 = aParam.Warning;
|
||||
wParam.DchOverCurrentReleaseTime = aParam.Release;
|
||||
break;
|
||||
case 10:
|
||||
cmd = csConstData.UART_PARAM_LIST.LOW_CAPACITY;
|
||||
wParam.LowSocTrip = aParam.Fault;
|
||||
wParam.LowSocWarning = aParam.Warning;
|
||||
wParam.LowSocRelease = aParam.Release;
|
||||
break;
|
||||
case 16: // Default Parameter
|
||||
cmd = 0;
|
||||
wParam.DefalutParamOption = aParam.Fault;
|
||||
wParam.DefalutParamAll = aParam.Release;
|
||||
break;
|
||||
case 0x2D:
|
||||
wParam.ReadParamAll = 0x002D;
|
||||
cmd = 0x2D;
|
||||
break;
|
||||
case 99:
|
||||
cmd = 200; // All parameter read
|
||||
break;
|
||||
}
|
||||
OnCommand?.Invoke(SystemId, cmd, 6, flag, ref wParam, ref Calib);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region UPDATE DATA
|
||||
public void UpdateData(CsDeviceData.DeviceModuleData.DeviceParamData aParam, CsDeviceData.DeviceModuleData.DeviceCalibration aCalib)
|
||||
{
|
||||
Param = aParam;
|
||||
Calib = aCalib;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region TIMER EVENT
|
||||
private void tmrDisplay_Tick(object sender, EventArgs e)
|
||||
{
|
||||
DisplayValue();
|
||||
|
||||
OnUpdate?.Invoke(this);
|
||||
}
|
||||
#endregion
|
||||
|
||||
private void DisplayValue()
|
||||
{
|
||||
ParamData pData = new ParamData();
|
||||
|
||||
// Cell Voltage Parameter
|
||||
pData.Fault = Param.CellOverVoltageTrip;
|
||||
pData.Warning = Param.CellOverVoltageWarning;
|
||||
pData.Release = Param.CellOverVoltageRelease;
|
||||
ucCOVParam.UpdateData(pData);
|
||||
|
||||
pData.Fault = Param.CellUnderVoltageTrip;
|
||||
pData.Warning = Param.CellUnderVoltageWarning;
|
||||
pData.Release = Param.CellUnderVoltageRelease;
|
||||
ucCUVParam.UpdateData(pData);
|
||||
|
||||
// System Voltage Parameter
|
||||
pData.Fault = Param.SysOverVoltageTrip;
|
||||
pData.Warning = Param.SysOverVoltageWarning;
|
||||
pData.Release = Param.SysOverVoltageRelease;
|
||||
ucSOVParam.UpdateData(pData);
|
||||
|
||||
pData.Fault = Param.SysUnderVoltageTrip;
|
||||
pData.Warning = Param.SysUnderVoltageWarning;
|
||||
pData.Release = Param.SysUnderVoltageRelease;
|
||||
ucSUVParam.UpdateData(pData);
|
||||
|
||||
// Charge Temp Parameter
|
||||
pData.Fault = Param.ChaHighTempTrip;
|
||||
pData.Warning = Param.ChaHighTempWarning;
|
||||
pData.Release = Param.ChaHighTempRelease;
|
||||
ucCHTParam.UpdateData(pData);
|
||||
|
||||
pData.Fault = Param.ChaLowTempTrip;
|
||||
pData.Warning = Param.ChaLowTempWarning;
|
||||
pData.Release = Param.ChaLowTempRelease;
|
||||
ucCLTParam.UpdateData(pData);
|
||||
|
||||
// Discharge Temp Parameter
|
||||
pData.Fault = Param.DchHighTempTrip;
|
||||
pData.Warning = Param.DchHighTempWarning;
|
||||
pData.Release = Param.DchHighTempRelease;
|
||||
ucDHTParam.UpdateData(pData);
|
||||
|
||||
pData.Fault = Param.DchLowTempTrip;
|
||||
pData.Warning = Param.DchLowTempWarning;
|
||||
pData.Release = Param.DchLowTempRelease;
|
||||
ucDLTParam.UpdateData(pData);
|
||||
|
||||
// Charge Over Current
|
||||
pData.Fault = Param.ChaOverCurrentTrip2;
|
||||
pData.Warning = Param.ChaOverCurrentTrip1;
|
||||
pData.Release = Param.ChaOverCurrentReleaseTime;
|
||||
ucCOCParam.UpdateData(pData);
|
||||
|
||||
// Discharge Over Current
|
||||
pData.Fault = Param.DchOverCurrentTrip2;
|
||||
pData.Warning = Param.DchOverCurrentTrip1;
|
||||
pData.Release = Param.DchOverCurrentReleaseTime;
|
||||
ucDOCParam.UpdateData(pData);
|
||||
|
||||
// SOC Parameter
|
||||
pData.Fault = Param.LowSocTrip;
|
||||
pData.Warning = Param.LowSocWarning;
|
||||
pData.Release = Param.LowSocRelease;
|
||||
ucSocParam.UpdateData(pData);
|
||||
}
|
||||
|
||||
#region BUTTON EVENT
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void btnGetAll_Click(object sender, EventArgs e)
|
||||
{
|
||||
ParamData aa = new ParamData();
|
||||
OnCmdEvent(0x2D, 0, aa);
|
||||
}
|
||||
|
||||
private void btnDefaultSet_Click(object sender, EventArgs e)
|
||||
{
|
||||
ParamData aa = new ParamData();
|
||||
|
||||
OnCmdEvent(16, 1, aa);
|
||||
|
||||
//DefaultTempAlarm();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region FORM EVENT
|
||||
private void fmxParamConfig_Load(object sender, EventArgs e)
|
||||
{
|
||||
ParamConfig_ReLoad();
|
||||
}
|
||||
|
||||
private void ParamConfig_ReLoad()
|
||||
{
|
||||
switch (Config.ControlLevel)
|
||||
{
|
||||
case 0: // User Level
|
||||
for (int i = 0; i < ParamSet.Length; i++)
|
||||
{
|
||||
ParamSet[i].EnableDisableSetBtn(false);
|
||||
}
|
||||
btnDefaultSet.Enabled = false;
|
||||
break;
|
||||
case 1: // Technician Level
|
||||
for (int i = 0; i < ParamSet.Length; i++)
|
||||
{
|
||||
ParamSet[i].EnableDisableSetBtn(false);
|
||||
}
|
||||
btnDefaultSet.Enabled = false;
|
||||
break;
|
||||
case 2: // Engineer Level
|
||||
for (int i = 0; i < ParamSet.Length; i++)
|
||||
{
|
||||
ParamSet[i].EnableDisableSetBtn(true);
|
||||
}
|
||||
btnDefaultSet.Enabled = true;
|
||||
break;
|
||||
case 3: // Master Level
|
||||
for (int i = 0; i < ParamSet.Length; i++)
|
||||
{
|
||||
ParamSet[i].EnableDisableSetBtn(true);
|
||||
}
|
||||
btnDefaultSet.Enabled = true;
|
||||
break;
|
||||
default: // User Level
|
||||
for (int i = 0; i < ParamSet.Length; i++)
|
||||
{
|
||||
ParamSet[i].EnableDisableSetBtn(false);
|
||||
}
|
||||
btnDefaultSet.Enabled = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user