Files
2025-12-19 13:59:34 +09:00

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);
}
}
}