초기 커밋.
This commit is contained in:
273
LFP_Manager_PRM/Controls/ucCalibration.cs
Normal file
273
LFP_Manager_PRM/Controls/ucCalibration.cs
Normal file
@@ -0,0 +1,273 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Text;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using DevExpress.XtraEditors;
|
||||
|
||||
using LFP_Manager.Forms;
|
||||
using LFP_Manager.DataStructure;
|
||||
using LFP_Manager.Utils;
|
||||
|
||||
namespace LFP_Manager.Controls
|
||||
{
|
||||
public delegate void setCalibUpdate(object sender);
|
||||
public delegate void setCalibCommand(int mode, int flag, ref DeviceCalibration aCalib, ref DeviceSystemTotalData aTotal);
|
||||
public delegate Int32 getBattData(int item, int cno);
|
||||
|
||||
public partial class ucCalibration : DevExpress.XtraEditors.XtraUserControl
|
||||
{
|
||||
#region DEFINE
|
||||
|
||||
const string FORCED_BALANCING_OFF = "OFF";
|
||||
const string FORCED_BALANCING_ON = "ON";
|
||||
const string FORCED_BALANCING_TEST = "TEST";
|
||||
|
||||
const string MANUAL_BAL_DISABLE = "DISABLE";
|
||||
const string MANUAL_BAL_ENABLE = "ENABLE";
|
||||
|
||||
const string MANUAL_BAL_MODE_BUCK = "BUCK_MODE";
|
||||
const string MANUAL_BAL_MODE_BOOST = "BOOST_MODE";
|
||||
|
||||
const string CURR_CALIB_CHARGE = "CHARGE";
|
||||
const string CURR_CALIB_DISCHAGE = "DISCHARGE";
|
||||
|
||||
#endregion
|
||||
|
||||
#region VARIABLES
|
||||
|
||||
DeviceCalibration rCalib;
|
||||
DeviceCalibration wCalib;
|
||||
DeviceSystemTotalData wTotal;
|
||||
|
||||
//UInt32 cValue = 0;
|
||||
|
||||
//bool wFlag = false;
|
||||
|
||||
public event setCalibCommand OnCommand = null;
|
||||
public event getBattData OnGetBattData = null;
|
||||
|
||||
#endregion
|
||||
|
||||
#region CONSTRUCTORS
|
||||
|
||||
// Battery No:
|
||||
// 0: No 1,3,5,7,9,11,13,15 ODD
|
||||
// 1: No 2,4,6,8,10,12,14 Even
|
||||
public ucCalibration()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
ComponentInit();
|
||||
|
||||
wTotal = new DeviceSystemTotalData();
|
||||
}
|
||||
|
||||
private void ComponentInit()
|
||||
{
|
||||
cbFcControl.Properties.Items.Clear();
|
||||
cbFcControl.Properties.Items.Add(FORCED_BALANCING_OFF);
|
||||
cbFcControl.Properties.Items.Add(FORCED_BALANCING_ON);
|
||||
cbFcControl.Properties.Items.Add(FORCED_BALANCING_TEST);
|
||||
cbFcControl.SelectedIndex = 1;
|
||||
|
||||
cbFcCellNo.Properties.Items.Clear();
|
||||
for (int i = 0; i < csConstData.SystemInfo.MAX_MODULE_CELL_SIZE; i++)
|
||||
{
|
||||
cbFcCellNo.Properties.Items.Add(String.Format("{0}", i + 1));
|
||||
}
|
||||
cbFcCellNo.SelectedIndex = 0;
|
||||
|
||||
CbBalEnable.Properties.Items.Clear();
|
||||
CbBalEnable.Properties.Items.Add(MANUAL_BAL_DISABLE);
|
||||
CbBalEnable.Properties.Items.Add(MANUAL_BAL_ENABLE);
|
||||
CbBalEnable.SelectedIndex = 0;
|
||||
|
||||
CbBalMode.Properties.Items.Clear();
|
||||
CbBalMode.Properties.Items.Add(MANUAL_BAL_MODE_BOOST);
|
||||
CbBalMode.Properties.Items.Add(MANUAL_BAL_MODE_BUCK);
|
||||
CbBalMode.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region EXT EVENT FUNCTION
|
||||
|
||||
private void OnCommnadEvent(int mode, int flag, ref DeviceCalibration aCalib, ref DeviceSystemTotalData aTotal)
|
||||
{
|
||||
OnCommand?.Invoke(mode, flag, ref aCalib, ref aTotal);
|
||||
}
|
||||
|
||||
private Int32 OnGetBattDataEvent(int item, int cno)
|
||||
{
|
||||
Int32 result = 0;
|
||||
|
||||
if (OnGetBattData != null)
|
||||
{
|
||||
result = OnGetBattData(item, cno);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region PUBLIC FUCTIONS
|
||||
|
||||
public void UpdateData(DeviceCalibration aCalib)
|
||||
{
|
||||
rCalib = aCalib;
|
||||
DisplayCalib();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region DISPLAY DATA
|
||||
|
||||
private void DisplayCalib()
|
||||
{
|
||||
// Cell Voltage Offset
|
||||
edCvOffset1.Text = String.Format("{0}", rCalib.CellVoltge.CvOffsetLow);
|
||||
edCvOffset2.Text = String.Format("{0}", rCalib.CellVoltge.CvOffsetHigh);
|
||||
|
||||
// Device Address
|
||||
edSystemAddr.Text = String.Format("{0:0}", rCalib.SystemInfo.devAddr);
|
||||
|
||||
// Cell Balancing Parameter
|
||||
TeCbThresholdCurr.Text = string.Format("{0}", rCalib.CbParam.Threadhold);
|
||||
TeCbWindowCurr.Text = string.Format("{0}", rCalib.CbParam.Window);
|
||||
TeCbMinCurr.Text = string.Format("{0}", rCalib.CbParam.Min);
|
||||
TeCbIntervalCurr.Text = string.Format("{0}", rCalib.CbParam.Interval);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region BUTTON EVENT
|
||||
|
||||
private void btnFcSet_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (CbBalEnable.Text != null)
|
||||
{
|
||||
wCalib = rCalib;
|
||||
int cControl = cbFcControl.SelectedIndex;
|
||||
int cNo = cbFcCellNo.SelectedIndex + 1;
|
||||
int bMode = CbBalMode.SelectedIndex;
|
||||
int bEnable = CbBalEnable.SelectedIndex;
|
||||
|
||||
wCalib.ForcedBalancing2.Control = cControl;
|
||||
wCalib.ForcedBalancing2.CellNo = cNo;
|
||||
wCalib.ForcedBalancing2.Mode = bMode;
|
||||
wCalib.ForcedBalancing2.Enable = bEnable;
|
||||
|
||||
OnCommnadEvent(12, 1, ref wCalib, ref wTotal);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnBpGet_Click(object sender, EventArgs e)
|
||||
{
|
||||
OnCommnadEvent(15, 0, ref wCalib, ref wTotal);
|
||||
}
|
||||
|
||||
private void btnBpSet_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (edCvOffsetNew1.Text == "") return;
|
||||
if (edCvOffsetNew2.Text == "") return;
|
||||
|
||||
wCalib = rCalib;
|
||||
wCalib.CellVoltge.CvOffsetLow = (short)(Convert.ToInt32(edCvOffsetNew1.Text));
|
||||
wCalib.CellVoltge.CvOffsetHigh = (short)(Convert.ToInt32(edCvOffsetNew2.Text));
|
||||
OnCommnadEvent(15, 1, ref wCalib, ref wTotal);
|
||||
}
|
||||
|
||||
private void btnBmsAddrGet_Click(object sender, EventArgs e)
|
||||
{
|
||||
OnCommnadEvent(9, 0, ref wCalib, ref wTotal);
|
||||
}
|
||||
|
||||
private void btnBmsAddrSet_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (edSystemAddrNew.Text == string.Empty) return;
|
||||
wCalib = rCalib;
|
||||
wCalib.SystemInfo.devAddr = (UInt16)(Convert.ToInt32(edSystemAddrNew.Text));
|
||||
|
||||
OnCommnadEvent(9, 1, ref wCalib, ref wTotal);
|
||||
}
|
||||
|
||||
private void btnCanSpeedGet_Click(object sender, EventArgs e)
|
||||
{
|
||||
OnCommnadEvent(8, 0, ref wCalib, ref wTotal);
|
||||
}
|
||||
|
||||
private void btnCanSpeedSet_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
|
||||
{
|
||||
csUtils.TypingOnlyNumber(sender, e, true, true);
|
||||
}
|
||||
private void BtnCbParamGet_Click(object sender, EventArgs e)
|
||||
{
|
||||
OnCommnadEvent(17, 0, ref wCalib, ref wTotal);
|
||||
}
|
||||
|
||||
private void BtnCbParamSet_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (TeCbThresholdNew.Text == "") return;
|
||||
if (TeCbWindowNew.Text == "") return;
|
||||
if (TeCbMinNew.Text == "") return;
|
||||
if (TeCbIntervalNew.Text == "") return;
|
||||
|
||||
wCalib = rCalib.DeepCopy();
|
||||
wCalib.CbParam.Threadhold = (short)Convert.ToInt32(TeCbThresholdNew.Text);
|
||||
wCalib.CbParam.Window = (short)Convert.ToInt32(TeCbWindowNew.Text);
|
||||
wCalib.CbParam.Min = (short)Convert.ToInt32(TeCbMinNew.Text);
|
||||
wCalib.CbParam.Interval = (short)Convert.ToInt32(TeCbIntervalNew.Text);
|
||||
OnCommnadEvent(17, 1, ref wCalib, ref wTotal);
|
||||
}
|
||||
private void BtnCbDefault_Click(object sender, EventArgs e)
|
||||
{
|
||||
TeCbThresholdNew.Text = "3450";
|
||||
TeCbWindowNew.Text = "60";
|
||||
TeCbMinNew.Text = "10";
|
||||
TeCbIntervalNew.Text = "5";
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region COMPONENT EVENT
|
||||
private void edModuleNo_EditValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (edModuleNo.Text != "")
|
||||
{
|
||||
int mdID;
|
||||
int mdNo;
|
||||
string strMdNo = edModuleNo.Text;
|
||||
|
||||
try
|
||||
{
|
||||
mdNo = Convert.ToInt32(strMdNo);
|
||||
|
||||
mdID = (mdNo - 1) % 14 + 1;
|
||||
|
||||
edSystemAddrNew.Text = mdID.ToString();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
edModuleNo.Text = "";
|
||||
MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user