Files
PR_PRM_GUI/LFP_Manager_PRM/Controls/ucModuleIdSet.cs
2026-02-11 10:10:43 +09:00

132 lines
3.2 KiB
C#

using DevExpress.XtraEditors;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using LFP_Manager.Forms;
using LFP_Manager.DataStructure;
using LFP_Manager.Utils;
namespace LFP_Manager.Controls
{
public partial class ucModuleIdSet : DevExpress.XtraEditors.XtraUserControl
{
#region VARIABLES
int mID = 0;
DeviceCalibration rCalib;
DeviceCalibration wCalib;
DeviceParamData rParam;
int maxModule = 1;
//UInt32 cValue = 0;
//bool wFlag = false;
public event CalibCmdEvent OnCommand = null;
#endregion
public ucModuleIdSet()
{
InitializeComponent();
}
#region EXT EVENT FUNCTION
private void OnCommnadEvent(int sId, int mode, int flag, ref DeviceParamData aParam, ref DeviceCalibration aCalib)
{
OnCommand?.Invoke(sId, mode, flag, ref aParam, ref aCalib);
}
#endregion
#region PUBLIC FUCTIONS
public void UpdateData(int sId, DeviceCalibration aCalib)
{
mID = sId;
rCalib = aCalib;
DisplayCalib();
}
public void SetMaxModule(int aMaxModule)
{
maxModule = aMaxModule;
}
#endregion
#region DISPLAY DATA
private void DisplayCalib()
{
if (this.InvokeRequired)
{
this.Invoke(new MethodInvoker(delegate ()
{
// Device Address
edSystemAddr.Text = String.Format("{0:0}", rCalib.SystemInfo.devAddr);
}));
}
else
{
// Device Address
edSystemAddr.Text = String.Format("{0:0}", rCalib.SystemInfo.devAddr);
}
}
#endregion
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) % maxModule + 1;
edSystemAddrNew.Text = mdID.ToString();
}
catch (Exception ex)
{
edModuleNo.Text = "";
MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
#region BUTTON EVENT
private void btnBmsAddrGet_Click(object sender, EventArgs e)
{
OnCommnadEvent(mID, 9, 0, ref rParam, ref wCalib);
}
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(mID, 9, 1, ref rParam, ref wCalib);
}
#endregion
}
}