290 lines
9.8 KiB
C#
290 lines
9.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Drawing;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
|
|
using LFP_Manager.DataStructure;
|
|
using LFP_Manager.Function;
|
|
using LFP_Manager.Utils;
|
|
|
|
namespace LFP_Manager.Controls
|
|
{
|
|
public delegate void setUpdate(object sender);
|
|
public delegate void setCommand(int mode, int flag, ParamData aParam);
|
|
|
|
public struct ParamData
|
|
{
|
|
public short Fault;
|
|
public short Warning;
|
|
public short Release;
|
|
public short Time;
|
|
}
|
|
|
|
public partial class ucParamSet : UserControl
|
|
{
|
|
#region VARIABLES
|
|
|
|
int id = 0;
|
|
ParamData rParam;
|
|
ParamData wParam;
|
|
|
|
public int wFlag = 0;
|
|
|
|
public event setCommand OnCommand = null;
|
|
|
|
#endregion
|
|
|
|
#region CONSTRUCTORS
|
|
|
|
public ucParamSet()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region EXT EVENT FUNCTION
|
|
|
|
private void OnCommnadEvent(int mode, int flag, ParamData aParam)
|
|
{
|
|
OnCommand?.Invoke(mode, flag, aParam);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region BUTTON EVENT
|
|
|
|
private void btnRead_Click(object sender, EventArgs e)
|
|
{
|
|
OnCommnadEvent(id, 0, rParam);
|
|
}
|
|
|
|
private void btnSet_Click(object sender, EventArgs e)
|
|
{
|
|
if ((edTripNew.Text == "") || (edWarningNew.Text == "") || (edReleaseNew.Text == ""))
|
|
{
|
|
return;
|
|
}
|
|
wParam = rParam;
|
|
OnCommnadEvent(id, 1, MakeNewParam(id));
|
|
}
|
|
|
|
private ParamData MakeNewParam(int aId)
|
|
{
|
|
switch (aId)
|
|
{
|
|
case 0: // Cell Over Voltage
|
|
case 1: // Cell Under Voltage
|
|
wParam.Fault = Convert.ToInt16(edTripNew.Text);
|
|
wParam.Warning = Convert.ToInt16(edWarningNew.Text);
|
|
wParam.Release = Convert.ToInt16(edReleaseNew.Text);
|
|
break;
|
|
case 2: // System Over Voltage
|
|
case 3: // System Under Voltage
|
|
wParam.Fault = (short)(Convert.ToDouble(edTripNew.Text) * 10);
|
|
wParam.Warning = (short)(Convert.ToDouble(edWarningNew.Text) * 10);
|
|
wParam.Release = (short)(Convert.ToDouble(edReleaseNew.Text) * 10);
|
|
break;
|
|
case 4: // Charge High Temperature
|
|
case 5: // Charge Loq Temperature
|
|
case 6: // Discharge High Temperature
|
|
case 7: // Discharge Low Temperature
|
|
case 10: // Low SOC
|
|
case 11: // Low SOC
|
|
wParam.Fault = Convert.ToInt16(edTripNew.Text);
|
|
wParam.Warning = Convert.ToInt16(edWarningNew.Text);
|
|
wParam.Release = Convert.ToInt16(edReleaseNew.Text);
|
|
break;
|
|
case 8: // Charge Over Current
|
|
case 9: // Discharge Over Current
|
|
wParam.Fault = (short)(Convert.ToDouble(edTripNew.Text) * 10);
|
|
wParam.Warning = (short)(Convert.ToDouble(edWarningNew.Text) * 10);
|
|
wParam.Release = (short)(Convert.ToDouble(edReleaseNew.Text) * 1);
|
|
break;
|
|
}
|
|
return wParam;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region PUBLIC FUCTIONS
|
|
|
|
public void SetId(int aId)
|
|
{
|
|
id = aId;
|
|
}
|
|
|
|
public void UpdateData(ParamData aParam)
|
|
{
|
|
rParam = aParam;
|
|
DisplayParam();
|
|
UpdateNewParam();
|
|
}
|
|
|
|
public void VisibleItem(int item, bool flag)
|
|
{
|
|
switch (item)
|
|
{
|
|
case 0:
|
|
lbFault.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
|
|
lcTripParam.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
|
|
lcTripParamNew.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
|
|
lbTripUnit.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
|
|
break;
|
|
case 1:
|
|
edWarning.Enabled = flag;
|
|
edWarningNew.Enabled = flag;
|
|
break;
|
|
case 2:
|
|
lbRelease.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
|
|
lcReleaseParam.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
|
|
lcReleaseParamNew.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
|
|
lbReleaseUnit.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
|
|
break;
|
|
}
|
|
}
|
|
|
|
public void EnableItem(int item, bool flag)
|
|
{
|
|
switch (item)
|
|
{
|
|
case 0:
|
|
edTrip.Enabled = flag;
|
|
edTripNew.Enabled = flag;
|
|
break;
|
|
case 1:
|
|
edWarning.Enabled = flag;
|
|
edWarningNew.Enabled = flag;
|
|
break;
|
|
case 2:
|
|
edRelease.Enabled = flag;
|
|
edReleaseNew.Enabled = flag;
|
|
break;
|
|
}
|
|
}
|
|
|
|
public void EnableDisableSetBtn(bool flag)
|
|
{
|
|
btnSet.Enabled = flag;
|
|
}
|
|
|
|
public void SetParamName(int no, string nm)
|
|
{
|
|
switch (no)
|
|
{
|
|
case 0:
|
|
gbParamSet.Text = nm;
|
|
|
|
if ((nm == "Charge Over Current") || (nm == "Discharge Over Current"))
|
|
{
|
|
lbFault.Text = "Fault 2";
|
|
lbWarning.Text = "Fault 1";
|
|
}
|
|
break;
|
|
case 1:
|
|
lbTripUnit.Text = nm;
|
|
lbWarningUnit.Text = nm;
|
|
if (nm == "A")
|
|
lbReleaseUnit.Text = "S";
|
|
else
|
|
lbReleaseUnit.Text = nm;
|
|
break;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region DISPLAY
|
|
|
|
private void DisplayParam()
|
|
{
|
|
ParamData Param = new ParamData();
|
|
Param = rParam;
|
|
|
|
switch (id)
|
|
{
|
|
case 0:
|
|
case 1:
|
|
edTrip.Text = String.Format("{0}", Param.Fault);
|
|
edWarning.Text = String.Format("{0}", Param.Warning);
|
|
edRelease.Text = String.Format("{0}", Param.Release);
|
|
break;
|
|
case 2:
|
|
case 3:
|
|
edTrip.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10);
|
|
edWarning.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10);
|
|
edRelease.Text = String.Format("{0:#0.0}", (float)Param.Release / 10);
|
|
break;
|
|
case 4:
|
|
case 5:
|
|
case 6:
|
|
case 7:
|
|
case 10:
|
|
case 11:
|
|
edTrip.Text = String.Format("{0}", Param.Fault);
|
|
edWarning.Text = String.Format("{0}", Param.Warning);
|
|
edRelease.Text = String.Format("{0}", Param.Release);
|
|
break;
|
|
case 8: // Charge Over Current
|
|
case 9: // Discharge Over Current
|
|
edTrip.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10);
|
|
edWarning.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10);
|
|
edRelease.Text = String.Format("{0}", (float)Param.Release / 1);
|
|
break;
|
|
}
|
|
}
|
|
|
|
private void UpdateNewParam()
|
|
{
|
|
if (wFlag == 0)
|
|
{
|
|
ParamData Param = rParam;
|
|
|
|
switch (id)
|
|
{
|
|
case 0:
|
|
case 1:
|
|
edTripNew.Text = String.Format("{0}", Param.Fault);
|
|
edWarningNew.Text = String.Format("{0}", Param.Warning);
|
|
edReleaseNew.Text = String.Format("{0}", Param.Release);
|
|
break;
|
|
case 2:
|
|
case 3:
|
|
edTripNew.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10);
|
|
edWarningNew.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10);
|
|
edReleaseNew.Text = String.Format("{0:#0.0}", (float)Param.Release / 10);
|
|
break;
|
|
case 4:
|
|
case 5:
|
|
case 6:
|
|
case 7:
|
|
case 10:
|
|
case 11:
|
|
edTripNew.Text = String.Format("{0}", Param.Fault);
|
|
edWarningNew.Text = String.Format("{0}", Param.Warning);
|
|
edReleaseNew.Text = String.Format("{0}", Param.Release);
|
|
break;
|
|
case 8:
|
|
case 9:
|
|
edTripNew.Text = String.Format("{0:#0.0}", (float)Param.Fault / 10);
|
|
edWarningNew.Text = String.Format("{0:#0.0}", (float)Param.Warning / 10);
|
|
edReleaseNew.Text = String.Format("{0}", (float)Param.Release / 1);
|
|
break;
|
|
}
|
|
wFlag = 1;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
|
|
{
|
|
//csUtils.TypingOnlyNumber(sender, e, true, true);
|
|
}
|
|
}
|
|
}
|