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