298 lines
13 KiB
C#
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);
|
|
}
|
|
}
|
|
} |