Files
LFP_48V_LCD_SW/BMS_D1000/Form/fmNetConfigCmd.cs
2026-08-11 16:20:44 +09:00

298 lines
13 KiB
C#

using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using BMS_D1000H.BMSConstData;
using BMS_D1000H.DataStructs;
using BMS_D1000H.Utils.Functions;
namespace BMS_D1000H
{
public partial class fmNetConfigCmd : Form
{
SmartX.SmartLabel[] lbNetItem;
SmartX.SmartLabel[] lbClassCurrent;
TextBox[] tbNetClass;
public int SetID = 0;
short Reg_Addr;
short Reg_Count;
short[] Reg_Data;
ClassAddr disAddr;
public fmNetConfigCmd()
{
InitializeComponent();
CreateComponent();
ResetControl();
tmrDisplay.Start();
}
#region CREATE COMPONENT
private void CreateComponent()
{
lbNetItem = new SmartX.SmartLabel[2];
for (int i = 0; i < 2; i++)
{
lbNetItem[i] = new SmartX.SmartLabel();
//lbNetItem[i].BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(192)))), ((int)(((byte)(255)))));
lbNetItem[i].BackPictureBox = null;
lbNetItem[i].BackPictureBox1 = null;
lbNetItem[i].BackPictureBox2 = null;
lbNetItem[i].BorderColor = System.Drawing.Color.Black;
lbNetItem[i].BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
lbNetItem[i].Font = new System.Drawing.Font("Arial Black", 11F, System.Drawing.FontStyle.Bold);
lbNetItem[i].InitVisible = true;
lbNetItem[i].LineSpacing = 0F;
lbNetItem[i].Location = new System.Drawing.Point(2, 91 + (i * 37));
if (i == 0)
lbNetItem[i].Name = String.Format("CURRENT");
else
lbNetItem[i].Name = String.Format("SETTING");
lbNetItem[i].Size = new System.Drawing.Size(249, 33);
lbNetItem[i].TabIndex = 70;
lbNetItem[i].Text = lbNetItem[i].Name;
lbNetItem[i].TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle;
lbNetItem[i].TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle;
lbNetItem[i].Wordwrap = false;
}
lbClassCurrent = new SmartX.SmartLabel[4];
for (int i = 0; i < 4; i++)
{
lbClassCurrent[i] = new SmartX.SmartLabel();
lbClassCurrent[i].BackPictureBox = null;
lbClassCurrent[i].BackPictureBox1 = null;
lbClassCurrent[i].BackPictureBox2 = null;
lbClassCurrent[i].BorderColor = System.Drawing.Color.Black;
lbClassCurrent[i].BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
lbClassCurrent[i].Font = new System.Drawing.Font("Arial Black", 11F, System.Drawing.FontStyle.Bold);
lbClassCurrent[i].InitVisible = true;
lbClassCurrent[i].LineSpacing = 0F;
lbClassCurrent[i].Location = new System.Drawing.Point(254 + (i * 102), 91);
switch (i)
{
case 0: lbClassCurrent[i].Name = String.Format("Class A"); break;
case 1: lbClassCurrent[i].Name = String.Format("Class B"); break;
case 2: lbClassCurrent[i].Name = String.Format("Class C"); break;
case 3: lbClassCurrent[i].Name = String.Format("Class D"); break;
}
lbClassCurrent[i].Size = new System.Drawing.Size(100, 33);
lbClassCurrent[i].TabIndex = 70;
lbClassCurrent[i].Text = "0";
lbClassCurrent[i].TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle;
lbClassCurrent[i].TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle;
lbClassCurrent[i].Wordwrap = false;
}
tbNetClass = new TextBox[4];
for (int i = 0; i < 4; i++)
{
tbNetClass[i] = new TextBox();
tbNetClass[i].Font = new System.Drawing.Font("Tahoma", 16F, System.Drawing.FontStyle.Regular);
tbNetClass[i].Location = new System.Drawing.Point(254 + (i * 102), 91 + 37);
tbNetClass[i].Name = "0";
tbNetClass[i].Size = new System.Drawing.Size(100, 33);
tbNetClass[i].TabIndex = i;
tbNetClass[i].GotFocus += new System.EventHandler(this.tbClass_GotFocus);
}
}
#endregion
#region RESET CONTROL
private void ResetControl()
{
this.SuspendLayout();
this.Controls.Clear();
for (int i = 0; i < 2; i++)
{
this.Controls.Add(lbNetItem[i]);
}
for (int i = 0; i < 4; i++)
{
this.Controls.Add(lbClassCurrent[i]);
this.Controls.Add(tbNetClass[i]);
}
this.Controls.Add(this.lbSetResult);
this.Controls.Add(this.kbdValue);
this.Controls.Add(this.btnSet);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.lbHdClassD);
this.Controls.Add(this.lbHdNetConfigName);
this.Controls.Add(this.lbHdClassC);
this.Controls.Add(this.lbHdClassB);
this.Controls.Add(this.lnHdClassA);
this.Controls.Add(this.lbNetConfig);
this.Controls.Add(this.sfmNetConfigCmd);
this.ResumeLayout(false);
disAddr = new ClassAddr();
disAddr.addr = new short[4];
}
#endregion
private void btnCancel_Click(object sender, EventArgs e)
{
((fmBMSMain)(Owner)).ChangeScreen(0, 0, ScreenID.NET_CONFIG_SCREEN_ID);
}
private void fmNetConfigCmd_Activated(object sender, EventArgs e)
{
lbNetConfig.Text = SetNetConfig.Name[SetID];
DisplayNetConfigCmd(true);
}
private void tbClass_GotFocus(object sender, EventArgs e)
{
int i = ((TextBox)(sender)).TabIndex;
switch (i)
{
case 0: kbdValue.Location = new System.Drawing.Point(254 + (i * 102), 172); break;
case 1: kbdValue.Location = new System.Drawing.Point(254 + (i * 102), 172); break;
case 2: kbdValue.Location = new System.Drawing.Point(254 + (i * 102), 172); break;
case 3: kbdValue.Location = new System.Drawing.Point(254 + (i * 102), 172); break;
}
kbdValue.TargetInputObject = ((TextBox)(sender));
kbdValue.Show();
}
#region DISPLAY NET CONFIG CMD
private void DisplayNetConfigCmd(bool p)
{
DeviceNetConfig aNetConfig;
aNetConfig = ((fmBMSMain)(Owner)).GetNetConfigData();
if (aNetConfig.ip_addr.addr == null) return;
switch (SetID)
{
case 0: // IP Address
if (p || (disAddr.addr != aNetConfig.ip_addr.addr))
{
lbClassCurrent[0].Text = String.Format("{0} ", aNetConfig.ip_addr.addr[0]);
lbClassCurrent[1].Text = String.Format("{0} ", aNetConfig.ip_addr.addr[1]);
lbClassCurrent[2].Text = String.Format("{0} ", aNetConfig.ip_addr.addr[2]);
lbClassCurrent[3].Text = String.Format("{0} ", aNetConfig.ip_addr.addr[3]);
disAddr.addr = aNetConfig.ip_addr.addr;
}
break;
case 1: // Subnet Mask
if (p || (disAddr.addr != aNetConfig.subnet_mask.addr))
{
lbClassCurrent[0].Text = String.Format("{0} ", aNetConfig.subnet_mask.addr[0]);
lbClassCurrent[1].Text = String.Format("{0} ", aNetConfig.subnet_mask.addr[1]);
lbClassCurrent[2].Text = String.Format("{0} ", aNetConfig.subnet_mask.addr[2]);
lbClassCurrent[3].Text = String.Format("{0} ", aNetConfig.subnet_mask.addr[3]);
disAddr.addr = aNetConfig.subnet_mask.addr;
}
break;
case 2: // Gateway Address
if (p || (disAddr.addr != aNetConfig.gateway_addr.addr))
{
lbClassCurrent[0].Text = String.Format("{0} ", aNetConfig.gateway_addr.addr[0]);
lbClassCurrent[1].Text = String.Format("{0} ", aNetConfig.gateway_addr.addr[1]);
lbClassCurrent[2].Text = String.Format("{0} ", aNetConfig.gateway_addr.addr[2]);
lbClassCurrent[3].Text = String.Format("{0} ", aNetConfig.gateway_addr.addr[3]);
disAddr.addr = aNetConfig.gateway_addr.addr;
}
break;
case 3: // Trap #1 Address
if (p || (disAddr.addr != aNetConfig.trap[0].addr))
{
lbClassCurrent[0].Text = String.Format("{0} ", aNetConfig.trap[0].addr[0]);
lbClassCurrent[1].Text = String.Format("{0} ", aNetConfig.trap[0].addr[1]);
lbClassCurrent[2].Text = String.Format("{0} ", aNetConfig.trap[0].addr[2]);
lbClassCurrent[3].Text = String.Format("{0} ", aNetConfig.trap[0].addr[3]);
disAddr.addr = aNetConfig.trap[0].addr;
}
break;
case 4: // Trap #2 Address
if (p || (disAddr.addr != aNetConfig.trap[1].addr))
{
lbClassCurrent[0].Text = String.Format("{0} ", aNetConfig.trap[1].addr[0]);
lbClassCurrent[1].Text = String.Format("{0} ", aNetConfig.trap[1].addr[1]);
lbClassCurrent[2].Text = String.Format("{0} ", aNetConfig.trap[1].addr[2]);
lbClassCurrent[3].Text = String.Format("{0} ", aNetConfig.trap[1].addr[3]);
disAddr.addr = aNetConfig.trap[1].addr;
}
break;
case 5: // Trap #3 Address
if (p || (disAddr.addr != aNetConfig.trap[2].addr))
{
lbClassCurrent[0].Text = String.Format("{0} ", aNetConfig.trap[2].addr[0]);
lbClassCurrent[1].Text = String.Format("{0} ", aNetConfig.trap[2].addr[1]);
lbClassCurrent[2].Text = String.Format("{0} ", aNetConfig.trap[2].addr[2]);
lbClassCurrent[3].Text = String.Format("{0} ", aNetConfig.trap[2].addr[3]);
disAddr.addr = aNetConfig.trap[2].addr;
}
break;
case 6: // Trap #4 Address
if (p || (disAddr.addr != aNetConfig.trap[3].addr))
{
lbClassCurrent[0].Text = String.Format("{0} ", aNetConfig.trap[3].addr[0]);
lbClassCurrent[1].Text = String.Format("{0} ", aNetConfig.trap[3].addr[1]);
lbClassCurrent[2].Text = String.Format("{0} ", aNetConfig.trap[3].addr[2]);
lbClassCurrent[3].Text = String.Format("{0} ", aNetConfig.trap[3].addr[3]);
disAddr.addr = aNetConfig.trap[3].addr;
}
break;
}
}
#endregion
private void tmrDisplay_Tick(object sender, EventArgs e)
{
DisplayNetConfigCmd(false);
}
private void btnSet_Click(object sender, EventArgs e)
{
((fmBMSMain)(Owner)).ScreenSaverTimeReset();
if ((tbNetClass[0].Text == "") ||
(tbNetClass[1].Text == "") ||
(tbNetClass[2].Text == "") ||
(tbNetClass[3].Text == ""))
{
lbSetResult.Text = "Cannot empty parameter";
return;
}
Reg_Addr = Convert.ToInt16(120 + SetID * 4);
Reg_Count = 4;
Reg_Data = new short[Reg_Count];
Reg_Data[0] = Convert.ToInt16(double.Parse(tbNetClass[0].Text));
Reg_Data[1] = Convert.ToInt16(double.Parse(tbNetClass[1].Text));
Reg_Data[2] = Convert.ToInt16(double.Parse(tbNetClass[2].Text));
Reg_Data[3] = Convert.ToInt16(double.Parse(tbNetClass[3].Text));
((fmBMSMain)(Owner)).SetModBusWriteCmd(1, Reg_Addr, Reg_Count, Reg_Data, 1);
((fmBMSMain)(Owner)).ChangeScreen(0, 0, ScreenID.NET_CONFIG_SCREEN_ID);
}
}
}