INT_PT002/INT_PT002/Controls/System/ControlMenuSystemEthernet.cs

1235 lines
50 KiB
C#

using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using INT_PT002.Forms;
using INT_PT002.DialogForms;
using INT_PT002.DataStore;
using SmartX;
namespace INT_PT002.Controls
{
public partial class ControlMenuSystemEthernet : UserControl
{
#region Field
private FormMenu m_ParentForm;
private bool IsServerON;
string[] HexArray;
private delegate void ConnetedIPStatusCallback(string value);
#endregion
#region Constructor
public ControlMenuSystemEthernet(FormMenu parent)
{
InitializeComponent();
this.ParentForm = parent;
this.Initialize();
this.InitializeDesign();
this.DefaultSetting();
}
#endregion
#region Property
public FormMenu ParentForm
{
get { return this.m_ParentForm; }
private set { this.m_ParentForm = value; }
}
#endregion
#region Method
private void Initialize()
{
this.smartGroupBox1.Text = "System > Ethernet";
}
public void InitializeDesign()
{
if (this.ParentForm.ParentForm.SystemConfig.LANGUAGE == Define.E_LanguageID.English)
{
this.labelHelp.Text = "※ After setup, reboot is required.";
this.labelTitleIPConfiguration.Text = "IP Configuration";
this.labelTitleIPAddress.Text = "IP Address";
this.labelTitleSubnetMask.Text = "Subnet mask";
this.labelTitleGateway.Text = "Gateway";
}
else
{
this.labelHelp.Text = "※ 설정 후, 재부팅 필수";
this.labelTitleIPConfiguration.Text = "IP Configuration";
this.labelTitleIPAddress.Text = "IP Address";
this.labelTitleSubnetMask.Text = "Subnet mask";
this.labelTitleGateway.Text = "Gateway";
}
}
private void DefaultSetting()
{
string[] sValue;
this.IsServerON = false;
this.comboBoxEthernetOpMode.Items.Clear();
this.comboBoxEthernetOpMode.SelectedIndexChanged -= new EventHandler(this.comboBoxEthernetOpMode_SelectedIndexChanged);
this.comboBoxEthernetOpMode.Items.Add("None");
this.comboBoxEthernetOpMode.Items.Add("Server");
this.comboBoxEthernetOpMode.Items.Add("Client");
this.comboBoxEthernetOpMode.SelectedIndex = 0;
this.comboBoxEthernetOpMode.SelectedIndexChanged += new EventHandler(this.comboBoxEthernetOpMode_SelectedIndexChanged);
this.comboBoxEthernetMode.Items.Clear();
this.comboBoxEthernetMode.SelectedIndexChanged -= new EventHandler(this.comboBoxEthernetMode_SelectedIndexChanged);
this.comboBoxEthernetMode.Items.Add("None");
this.comboBoxEthernetMode.Items.Add("Modbus");
this.comboBoxEthernetMode.SelectedIndexChanged += new EventHandler(this.comboBoxEthernetMode_SelectedIndexChanged);
if (this.ParentForm.ParentForm.SystemConfig.IsEthernetEnable == true)
{
this.buttonStartServer.Enabled = true;
this.buttonStopServer.Enabled = true;
this.buttonStartClient.Enabled = true;
this.buttonStopClient.Enabled = true;
}
else
{
this.buttonStartServer.Enabled = false;
this.buttonStopServer.Enabled = false;
this.buttonStartClient.Enabled = false;
this.buttonStopClient.Enabled = false;
}
this.labelServerStatus.Text = "-";
this.labelClientStatus.Text = "-";
this.labelConnectedIP.Text = "-";
// Host IP
sValue = this.ParentForm.ParentForm.SystemConfig.ETHERNET_SERVER_IP.Split('.');
this.labelHostIP1.Text = sValue[0];
this.labelHostIP2.Text = sValue[1];
this.labelHostIP3.Text = sValue[2];
this.labelHostIP4.Text = sValue[3];
this.labelHostPort.Text = this.ParentForm.ParentForm.SystemConfig.ETHERNET_SERVER_PORT.ToString();
this.labelLocalPort.Text = this.ParentForm.ParentForm.SystemConfig.ETHERNET_LOCAL_PORT.ToString();
this.buttonSaveServer.Visible = false;
this.buttonSaveClient.Visible = false;
this.buttonSaveMode.Visible = false;
this.buttonSaveLocal.Visible = false;
this.buttonSaveModbus.Visible = false;
}
private string ReturnCommunicationModeName(int num)
{
#region 한국어
switch (num)
{
case 0:
return "None";
case 1:
return "Modbus";
default:
return "None";
}
#endregion
}
public void DisplayLabelLocalPort(bool bValue)
{
if (bValue == false)
{
this.labelLocalPort.Enabled = false;
this.labelLocalPort.BackColor = Color.Silver;
}
else
{
this.labelLocalPort.Enabled = true;
this.labelLocalPort.BackColor = Color.White;
}
}
public void UpdateEthernetStatusDisplay(string value)
{
if (this.labelClientStatus.Text != value)
this.labelClientStatus.Text = value;
}
private void LocalIPEnable(bool enable)
{
Color tempColor;
if (enable == true)
tempColor = Color.Black;
else
tempColor = Color.Gray;
#region Color
this.labelLocalIP1.ForeColor = tempColor;
this.labelLocalIP2.ForeColor = tempColor;
this.labelLocalIP3.ForeColor = tempColor;
this.labelLocalIP4.ForeColor = tempColor;
this.labelLocalSubnetMask1.ForeColor = tempColor;
this.labelLocalSubnetMask2.ForeColor = tempColor;
this.labelLocalSubnetMask3.ForeColor = tempColor;
this.labelLocalSubnetMask4.ForeColor = tempColor;
this.labelLocalGateway1.ForeColor = tempColor;
this.labelLocalGateway2.ForeColor = tempColor;
this.labelLocalGateway3.ForeColor = tempColor;
this.labelLocalGateway4.ForeColor = tempColor;
#endregion
#region Enable
this.labelLocalIP1.Enabled = enable;
this.labelLocalIP2.Enabled = enable;
this.labelLocalIP3.Enabled = enable;
this.labelLocalIP4.Enabled = enable;
this.labelLocalSubnetMask1.Enabled = enable;
this.labelLocalSubnetMask2.Enabled = enable;
this.labelLocalSubnetMask3.Enabled = enable;
this.labelLocalSubnetMask4.Enabled = enable;
this.labelLocalGateway1.Enabled = enable;
this.labelLocalGateway2.Enabled = enable;
this.labelLocalGateway3.Enabled = enable;
this.labelLocalGateway4.Enabled = enable;
#endregion
}
private void UpdateLocalIPAddressDisplay()
{
string[] sValue;
// Local IP
sValue = this.ParentForm.ParentForm.smartConfigs.IPSettings.DeviceIP.Split('.');
if (sValue.Length == 4)
{
this.labelLocalIP1.Text = sValue[0];
this.labelLocalIP2.Text = sValue[1];
this.labelLocalIP3.Text = sValue[2];
this.labelLocalIP4.Text = sValue[3];
}
// Local Subnet Mask
sValue = this.ParentForm.ParentForm.smartConfigs.IPSettings.SubNetMask.Split('.');
if (sValue.Length == 4)
{
this.labelLocalSubnetMask1.Text = sValue[0];
this.labelLocalSubnetMask2.Text = sValue[1];
this.labelLocalSubnetMask3.Text = sValue[2];
this.labelLocalSubnetMask4.Text = sValue[3];
}
// Local GateWay
sValue = this.ParentForm.ParentForm.smartConfigs.IPSettings.GateWay.Split('.');
if (sValue.Length == 4)
{
this.labelLocalGateway1.Text = sValue[0];
this.labelLocalGateway2.Text = sValue[1];
this.labelLocalGateway3.Text = sValue[2];
this.labelLocalGateway4.Text = sValue[3];
}
}
private void UpdateLocalIPConfigurationDisplay()
{
// Local IP DHCP
if (this.ParentForm.ParentForm.smartConfigs.IPSettings.DHCPEnable == 1)
{
this.radioButtonLocalIpDHCP.Checked = true;
this.LocalIPEnable(false);
}
else
{
this.radioButtonLocalIpStatic.Checked = true;
this.LocalIPEnable(true);
}
}
private void UpdateMACAddressDisplay()
{
byte[] currentMAC = this.ParentForm.ParentForm.smartConfigs.IPSettings.GetMACAddress();
string hex = BitConverter.ToString(currentMAC);
this.HexArray = hex.Split('-');
if (this.HexArray.Length >= 6)
{
this.labelMACAddress1.Text = this.HexArray[0] + ":" + this.HexArray[1] + ":" + this.HexArray[2] + ":";
this.labelMACAddress4.Text = this.HexArray[3];
this.labelMACAddress5.Text = this.HexArray[4];
this.labelMACAddress6.Text = this.HexArray[5];
}
}
private void ConnectedIPStatusOut(string value)
{
this.labelConnectedIP.Text = value;
}
private void DelegateConnectedIPStatusOut(string value)
{
this.Invoke(new ConnetedIPStatusCallback(this.ConnectedIPStatusOut), value);
}
private void ModbusSetting()
{
if (this.ParentForm.ParentForm.SystemConfig.ETHERNET_COMM_MODE == 1)
{
if (this.ParentForm.ParentForm.SystemConfig.ETHERNET_OP_MODE == 1)
{
if (this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE == 10)
this.ParentForm.ParentForm.ChildFormMainDisplay3.MainButtonModbusAdd(true);
this.groupBoxModbusSetting.Visible = true;
this.labelModbusRole.Text = "Slave";
this.labelFunctions.Text = "04: Read input register";
this.labelTitleStartAddress.Visible = false;
this.labelStartAddress.Visible = false;
}
else if (this.ParentForm.ParentForm.SystemConfig.ETHERNET_OP_MODE == 2)
{
if (this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE == 10)
this.ParentForm.ParentForm.ChildFormMainDisplay3.MainButtonModbusAdd(true);
this.groupBoxModbusSetting.Visible = true;
this.labelModbusRole.Text = "Master";
this.labelFunctions.Text = "16: Write multiple register";
this.labelTitleStartAddress.Visible = true;
this.labelStartAddress.Visible = true;
this.labelStartAddress.Text = this.ParentForm.ParentForm.SystemConfig.MODBUS_TCP_START_ADDRESS.ToString();
}
else
{
if (this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE == 10)
this.ParentForm.ParentForm.ChildFormMainDisplay3.MainButtonModbusAdd(false);
this.groupBoxModbusSetting.Visible = false;
}
}
else
{
if (this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE == 10)
this.ParentForm.ParentForm.ChildFormMainDisplay3.MainButtonModbusAdd(false);
this.groupBoxModbusSetting.Visible = false;
}
if (this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE == 10)
this.ParentForm.ParentForm.ChildFormMainDisplay3.InitialEthernetIcon();
}
public void DisplayRefresh()
{
this.ParentForm.ParentForm.CurrentSystemStatus.CurrentDisplayMode = Define.E_DisplayModeStore.Ethernet;
this.ParentForm.ParentForm.SetDisplayMode(Define.E_EquipmentMode.Menu);
this.comboBoxEthernetMode.SelectedIndexChanged -= new EventHandler(this.comboBoxEthernetMode_SelectedIndexChanged);
this.comboBoxEthernetOpMode.SelectedIndexChanged -= new EventHandler(this.comboBoxEthernetOpMode_SelectedIndexChanged);
this.comboBoxEthernetOpMode.SelectedIndex = this.ParentForm.ParentForm.SystemConfig.ETHERNET_OP_MODE;
this.comboBoxEthernetMode.SelectedIndex = this.ParentForm.ParentForm.SystemConfig.ETHERNET_COMM_MODE;
this.comboBoxEthernetMode.SelectedIndexChanged += new EventHandler(this.comboBoxEthernetMode_SelectedIndexChanged);
this.comboBoxEthernetOpMode.SelectedIndexChanged += new EventHandler(this.comboBoxEthernetOpMode_SelectedIndexChanged);
this.ModbusSetting();
if (this.comboBoxEthernetOpMode.SelectedIndex == 1)
{
this.buttonStartServer.Enabled = true;
this.buttonStopServer.Enabled = true;
if (string.Compare(this.ParentForm.ParentForm.smartConfigs.IPSettings.DeviceIP, "0.0.0.0") == 0)
{
if (this.labelServerStatus.Text != ">Addr Err")
this.labelServerStatus.Text = ">Addr Err";
this.timerServer.Enabled = false;
}
else
{
this.ParentForm.ParentForm.EthernetServerStart();
if (this.timerServer.Enabled != true)
this.timerServer.Enabled = true;
}
}
else if (this.comboBoxEthernetOpMode.SelectedIndex == 2)
{
this.buttonStartClient.Enabled = true;
this.buttonStopClient.Enabled = true;
this.ParentForm.ParentForm.EthernetClientConnect();
}
else
{
this.buttonStartServer.Enabled = false;
this.buttonStopServer.Enabled = false;
this.buttonStartClient.Enabled = false;
this.buttonStopClient.Enabled = false;
this.labelServerStatus.Text = "-";
this.labelClientStatus.Text = "-";
this.labelConnectedIP.Text = "-";
}
this.labelLocalPort.Text = this.ParentForm.ParentForm.SystemConfig.ETHERNET_LOCAL_PORT.ToString();
// Local IP DHCP
this.UpdateLocalIPConfigurationDisplay();
// Local IP
this.UpdateLocalIPAddressDisplay();
// MAC Address
this.UpdateMACAddressDisplay();
this.buttonSaveMode.Visible = false;
}
#endregion
#region Event Handler
private void buttonSaveMode_Click(object sender, EventArgs e)
{
int mode = 0;
string beforeLocalPort = "", afterLocalPort = "";
string beforeOpMode = "", afterOpMode = "";
string beforeComMode = "", afterComMode = "";
beforeLocalPort = this.labelLocalPort.Text;
if (this.ParentForm.ParentForm.SystemConfig.ETHERNET_OP_MODE == 1)
beforeOpMode = "Server";
else if (this.ParentForm.ParentForm.SystemConfig.ETHERNET_OP_MODE == 2)
beforeOpMode = "Client";
else
beforeOpMode = "None";
beforeComMode = this.ReturnCommunicationModeName(this.ParentForm.ParentForm.SystemConfig.ETHERNET_COMM_MODE);
if (this.comboBoxEthernetOpMode.SelectedIndex == 1)
{
this.ParentForm.ParentForm.SystemConfig.MODBUS_TCP_SELECTFUNCTION = (int)Define.E_ModbusFunction._04_ReadInputRegister;
this.ParentForm.ParentForm.EthernetClientDisconnect();
this.ParentForm.ParentForm.SystemConfig.ETHERNET_OP_MODE = 1;
afterOpMode = "Server";
this.buttonStartServer.Enabled = true;
this.buttonStopServer.Enabled = true;
this.buttonStartClient.Enabled = false;
this.buttonStopClient.Enabled = false;
}
else if (this.comboBoxEthernetOpMode.SelectedIndex == 2)
{
this.ParentForm.ParentForm.SystemConfig.MODBUS_TCP_SELECTFUNCTION = (int)Define.E_ModbusFunction._16_WriteMultipleRegister;
this.labelServerStatus.Text = "-";
this.timerServer.Enabled = false;
this.ParentForm.ParentForm.EthernetServerStop();
this.ParentForm.ParentForm.SystemConfig.ETHERNET_OP_MODE = 2;
this.ParentForm.ParentForm.EthernetClientDisconnect();
afterOpMode = "Client";
if (this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE == 10)
this.ParentForm.ParentForm.ChildFormMainDisplay3.TimerServer(false);
this.labelConnectedIP.Text = "-";
this.buttonStartClient.Enabled = true;
this.buttonStopClient.Enabled = true;
this.buttonStartServer.Enabled = false;
this.buttonStopServer.Enabled = false;
}
else
{
this.timerServer.Enabled = false;
this.ParentForm.ParentForm.EthernetServerStop();
this.ParentForm.ParentForm.EthernetClientDisconnect();
this.ParentForm.ParentForm.SystemConfig.ETHERNET_OP_MODE = 0;
afterOpMode = "None";
if (this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE == 10)
this.ParentForm.ParentForm.ChildFormMainDisplay3.TimerServer(false);
this.buttonStartServer.Enabled = false;
this.buttonStopServer.Enabled = false;
this.buttonStartClient.Enabled = false;
this.buttonStopClient.Enabled = false;
this.labelServerStatus.Text = "-";
this.labelClientStatus.Text = "-";
this.labelConnectedIP.Text = "-";
}
mode = this.comboBoxEthernetMode.SelectedIndex;
this.ParentForm.ParentForm.SystemConfig.ETHERNET_COMM_MODE = mode;
afterComMode = this.ReturnCommunicationModeName(mode);
this.ParentForm.ParentForm.SaveSystemConfigurationFile(this.ParentForm.ParentForm.SystemConfig);
this.ModbusSetting();
this.buttonSaveMode.Visible = false;
afterLocalPort = this.labelLocalPort.Text;
if (beforeLocalPort != afterLocalPort)
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingParameter.TCPLocalPort, "", beforeLocalPort, afterLocalPort);
if (beforeOpMode != afterOpMode)
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingParameter.TCPOpMode, "", beforeOpMode, afterOpMode);
if (beforeComMode != afterComMode)
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingParameter.TCPComMode, "", beforeComMode, afterComMode);
}
private void buttonTestSend_Click(object sender, EventArgs e)
{
int tempStringLength = 0;
string tempString = "";
string str = "";
StringBuilder sb = new StringBuilder();
byte[] byteArray = new byte[12];
byte[] weightBytes = new byte[4];
byte[] bytes = new byte[100];
if (this.comboBoxEthernetMode.SelectedIndex == 0)
return;
switch (this.comboBoxEthernetMode.SelectedIndex)
{
case 1:
#region Modbus TCP(16. Write Multiple Registers)
if (this.ParentForm.ParentForm.SystemConfig.MODBUS_TCP_SELECTFUNCTION == (int)Define.E_ModbusFunction._16_WriteMultipleRegister)
{
byte[] sendData = this.ParentForm.ParentForm.Modbus.MakeTCPSendAllData(this.ParentForm.ParentForm.Transfer_1_Modbus_Write(), this.ParentForm.ParentForm.SystemConfig.MODBUS_TCP_START_ADDRESS);
this.ParentForm.ParentForm.EthernetWeightDataForModbus(sendData);
}
#endregion
break;
default:
break;
}
switch (this.ParentForm.ParentForm.SystemConfig.ETHERNET_OP_MODE)
{
case 1:
if (this.ParentForm.ParentForm.smartTCPMultiServer.ClientInfoList != null)
{
foreach (SmartTCPMultiServer.CLIENTSINFOS client in this.ParentForm.ParentForm.smartTCPMultiServer.ClientInfoList)
{
if (sb.ToString() == "")
this.ParentForm.ParentForm.EthernetServerSendMessage(client, byteArray);
else
this.ParentForm.ParentForm.EthernetServerSendMessage(client, sb.ToString());
}
}
break;
case 2:
if (sb.ToString() == "")
this.ParentForm.ParentForm.EthernetWeightData(byteArray);
else
this.ParentForm.ParentForm.EthernetWeightData(sb.ToString());
break;
default:
break;
}
}
private void comboBoxEthernetMode_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.buttonSaveMode.Visible == false)
this.buttonSaveMode.Visible = true;
}
private void comboBoxEthernetOpMode_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.buttonSaveMode.Visible == false)
this.buttonSaveMode.Visible = true;
}
// Server
private void labelLocalPort_Click(object sender, EventArgs e)
{
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelLocalPort.Text, 5, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
this.labelLocalPort.Text = myKeyPad.StringValue;
if (this.buttonSaveServer.Visible == false)
this.buttonSaveServer.Visible = true;
}
}
private void buttonStartServer_Click(object sender, EventArgs e)
{
this.buttonStartServer.Enabled = true;
this.buttonStopServer.Enabled = true;
if (string.Compare(this.ParentForm.ParentForm.smartConfigs.IPSettings.DeviceIP, "0.0.0.0") == 0)
{
if (this.labelServerStatus.Text != ">Addr Err")
this.labelServerStatus.Text = ">Addr Err";
if (this.timerServer.Enabled != false)
this.timerServer.Enabled = false;
if (this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE == 10)
this.ParentForm.ParentForm.ChildFormMainDisplay3.TimerServer(false);
}
else
{
this.ParentForm.ParentForm.EthernetServerStart();
if (this.timerServer.Enabled != true)
this.timerServer.Enabled = true;
if (this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE == 10)
this.ParentForm.ParentForm.ChildFormMainDisplay3.TimerServer(true);
}
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingOperation.TryEthernetStart, "Server");
}
private void buttonStopServer_Click(object sender, EventArgs e)
{
this.timerServer.Enabled = false;
this.ParentForm.ParentForm.EthernetServerStop();
if (this.labelServerStatus.Text != ">Stop")
this.labelServerStatus.Text = ">Stop";
if (this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE == 10)
this.ParentForm.ParentForm.ChildFormMainDisplay3.TimerServer(false);
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingOperation.TryEthernetStop, "Server");
}
private void buttonSaveServer_Click(object sender, EventArgs e)
{
string before = "", after = "";
before = this.ParentForm.ParentForm.SystemConfig.ETHERNET_LOCAL_PORT.ToString();
this.ParentForm.ParentForm.SystemConfig.ETHERNET_LOCAL_PORT = int.Parse(this.labelLocalPort.Text);
this.ParentForm.ParentForm.smartTCPMultiServer.Port = this.ParentForm.ParentForm.SystemConfig.ETHERNET_LOCAL_PORT;
after = this.labelLocalPort.Text;
if (before != after)
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingParameter.TCPLocalPort, "", before, after);
this.ParentForm.ParentForm.SaveSystemConfigurationFile(this.ParentForm.ParentForm.SystemConfig);
this.buttonSaveServer.Visible = false;
}
// Client
private void buttonSaveClient_Click(object sender, EventArgs e)
{
string beforeServerIP = "", afterServerIP = "";
string beforeServerPort = "", afterServerPort = "";
beforeServerIP = this.ParentForm.ParentForm.SystemConfig.ETHERNET_SERVER_IP;
beforeServerPort = this.ParentForm.ParentForm.SystemConfig.ETHERNET_SERVER_PORT.ToString();
try
{
this.ParentForm.ParentForm.SystemConfig.ETHERNET_SERVER_PORT = int.Parse(this.labelHostPort.Text);
afterServerPort = this.ParentForm.ParentForm.SystemConfig.ETHERNET_SERVER_PORT.ToString();
}
catch
{
this.ParentForm.ParentForm.SystemConfig.ETHERNET_SERVER_PORT = 0;
afterServerPort = "0";
}
this.ParentForm.ParentForm.SystemConfig.ETHERNET_SERVER_IP = string.Format("{0}.{1}.{2}.{3}",
this.labelHostIP1.Text, this.labelHostIP2.Text, this.labelHostIP3.Text, this.labelHostIP4.Text);
afterServerIP = this.ParentForm.ParentForm.SystemConfig.ETHERNET_SERVER_IP;
this.ParentForm.ParentForm.SaveSystemConfigurationFile(this.ParentForm.ParentForm.SystemConfig);
this.ParentForm.ParentForm.EthernetClientDisconnect();
this.buttonSaveClient.Visible = false;
if (beforeServerIP != afterServerIP)
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingParameter.TCPServerIPAddress, "", beforeServerIP, afterServerIP);
if (beforeServerPort != afterServerPort)
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingParameter.TCPServerPort, "", beforeServerPort, afterServerPort);
}
private void labelHostIP1_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelHostIP1.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelHostIP1.Text = myKeyPad.StringValue;
this.buttonSaveClient.Visible = true;
}
}
}
private void labelHostIP2_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelHostIP2.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelHostIP2.Text = myKeyPad.StringValue;
this.buttonSaveClient.Visible = true;
}
}
}
private void labelHostIP3_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelHostIP3.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelHostIP3.Text = myKeyPad.StringValue;
this.buttonSaveClient.Visible = true;
}
}
}
private void labelHostIP4_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelHostIP4.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelHostIP4.Text = myKeyPad.StringValue;
this.buttonSaveClient.Visible = true;
}
}
}
private void labelHostPort_Click(object sender, EventArgs e)
{
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelHostPort.Text, 5, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
this.labelHostPort.Text = myKeyPad.StringValue;
this.buttonSaveClient.Visible = true;
}
}
private void buttonStartClient_Click(object sender, EventArgs e)
{
this.buttonStartClient.Enabled = true;
this.buttonStopClient.Enabled = true;
this.ParentForm.ParentForm.EthernetClientConnect();
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingOperation.TryEthernetStart, "Client");
}
private void buttonStopClient_Click(object sender, EventArgs e)
{
this.ParentForm.ParentForm.EthernetClientDisconnect();
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingOperation.TryEthernetStop, "Client");
}
// Local
private void labelLocalIP1_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelLocalIP1.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelLocalIP1.Text = myKeyPad.StringValue;
this.buttonSaveLocal.Visible = true;
}
}
}
private void labelLocalIP2_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelLocalIP2.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelLocalIP2.Text = myKeyPad.StringValue;
this.buttonSaveLocal.Visible = true;
}
}
}
private void labelLocalIP3_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelLocalIP3.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelLocalIP3.Text = myKeyPad.StringValue;
this.buttonSaveLocal.Visible = true;
}
}
}
private void labelLocalIP4_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelLocalIP4.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelLocalIP4.Text = myKeyPad.StringValue;
this.buttonSaveLocal.Visible = true;
}
}
}
private void labelLocalSubnetMask1_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelLocalSubnetMask1.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelLocalSubnetMask1.Text = myKeyPad.StringValue;
this.buttonSaveLocal.Visible = true;
}
}
}
private void labelLocalSubnetMask2_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelLocalSubnetMask2.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelLocalSubnetMask2.Text = myKeyPad.StringValue;
this.buttonSaveLocal.Visible = true;
}
}
}
private void labelLocalSubnetMask3_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelLocalSubnetMask3.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelLocalSubnetMask3.Text = myKeyPad.StringValue;
this.buttonSaveLocal.Visible = true;
}
}
}
private void labelLocalSubnetMask4_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelLocalSubnetMask4.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelLocalSubnetMask4.Text = myKeyPad.StringValue;
this.buttonSaveLocal.Visible = true;
}
}
}
private void labelLocalGateway1_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelLocalGateway1.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelLocalGateway1.Text = myKeyPad.StringValue;
this.buttonSaveLocal.Visible = true;
}
}
}
private void labelLocalGateway2_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelLocalGateway2.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelLocalGateway2.Text = myKeyPad.StringValue;
this.buttonSaveLocal.Visible = true;
}
}
}
private void labelLocalGateway3_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelLocalGateway3.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelLocalGateway3.Text = myKeyPad.StringValue;
this.buttonSaveLocal.Visible = true;
}
}
}
private void labelLocalGateway4_Click(object sender, EventArgs e)
{
string temp = "";
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelLocalGateway4.Text, 3, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.IntValue > 255)
{
temp = "0 ~ 255";
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE, temp);
myMsg.ShowDialog();
}
else
{
this.labelLocalGateway4.Text = myKeyPad.StringValue;
this.buttonSaveLocal.Visible = true;
}
}
}
private void radioButtonLocalIpDHCP_Click(object sender, EventArgs e)
{
string before = "", after = "";
DialogFormYesNo myDlg;
if (this.ParentForm.ParentForm.smartConfigs.IPSettings.DHCPEnable == 0)
before = "Static";
else
before = "DHCP";
if (this.radioButtonLocalIpStatic.Checked == true)
myDlg = new DialogFormYesNo(this.ParentForm.ParentForm.SystemConfig.LANGUAGE, 21); // 로컬IP주소 수동으로 설정하시겠습니까?
else
myDlg = new DialogFormYesNo(this.ParentForm.ParentForm.SystemConfig.LANGUAGE, 22); // 로컬IP주소 자동으로 설정하시겠습니까?
if (myDlg.ShowDialog() == DialogResult.Yes)
{
if (this.radioButtonLocalIpDHCP.Checked == true)
{
this.ParentForm.ParentForm.smartConfigs.IPSettings.DHCPEnable = 1;
this.LocalIPEnable(false);
this.UpdateLocalIPAddressDisplay();
}
else
{
this.ParentForm.ParentForm.smartConfigs.IPSettings.DHCPEnable = 0;
this.LocalIPEnable(true);
try
{
this.UpdateLocalIPAddressDisplay();
}
catch
{
this.ParentForm.ParentForm.smartConfigs.IPSettings.DeviceIP = "192.168.3.10";
this.ParentForm.ParentForm.smartConfigs.IPSettings.SubNetMask = "255.255.255.0";
this.ParentForm.ParentForm.smartConfigs.IPSettings.GateWay = "192.168.3.1";
this.UpdateLocalIPAddressDisplay();
}
}
this.ParentForm.ParentForm.smartConfigs.IPSettings.Save();
this.ParentForm.ParentForm.smartConfigs.IPSettings.SetApply();
if (this.ParentForm.ParentForm.smartConfigs.IPSettings.DHCPEnable == 0)
after = "Static";
else
after = "DHCP";
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingParameter.TCPLocalIPConfig, "", before, after);
}
else
{
this.DisplayRefresh();
}
}
private void labelMACAddress_Click(object sender, EventArgs e)
{
SmartX.SmartLabel label = sender as SmartX.SmartLabel;
DialogFormHexKeyPad myKeyPad = new DialogFormHexKeyPad(label.Text, 2, this.ParentForm.ParentForm.SystemConfig.LANGUAGE);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
label.Text = myKeyPad.StringValue;
this.buttonSaveLocal.Visible = true;
}
}
private void buttonSaveLocal_Click(object sender, EventArgs e)
{
string beforeIP = "", afterIP = "";
string beforeSubnetMask = "", afterSubnetMask = "";
string beforeGateway = "", afterGateway = "";
this.buttonSaveLocal.Visible = false;
byte[] changeMAC = new byte[6];
changeMAC[0] = Convert.ToByte(this.HexArray[0], 16);
changeMAC[1] = Convert.ToByte(this.HexArray[1], 16);
changeMAC[2] = Convert.ToByte(this.HexArray[2], 16);
changeMAC[3] = Convert.ToByte(this.labelMACAddress4.Text, 16);
changeMAC[4] = Convert.ToByte(this.labelMACAddress5.Text, 16);
changeMAC[5] = Convert.ToByte(this.labelMACAddress6.Text, 16);
this.ParentForm.ParentForm.smartConfigs.IPSettings.SetMACAddress(changeMAC);
beforeIP = this.ParentForm.ParentForm.smartConfigs.IPSettings.DeviceIP;
beforeSubnetMask = this.ParentForm.ParentForm.smartConfigs.IPSettings.SubNetMask;
beforeGateway = this.ParentForm.ParentForm.smartConfigs.IPSettings.GateWay;
if (this.ParentForm.ParentForm.SystemConfig.ETHERNET_OP_MODE == 1)
this.ParentForm.ParentForm.EthernetServerStop();
else if (this.ParentForm.ParentForm.SystemConfig.ETHERNET_OP_MODE == 2)
this.ParentForm.ParentForm.EthernetClientDisconnect();
this.ParentForm.ParentForm.smartConfigs.IPSettings.DeviceIP = string.Format("{0}.{1}.{2}.{3}",
this.labelLocalIP1.Text, this.labelLocalIP2.Text, this.labelLocalIP3.Text, this.labelLocalIP4.Text);
this.ParentForm.ParentForm.smartConfigs.IPSettings.SubNetMask = string.Format("{0}.{1}.{2}.{3}",
this.labelLocalSubnetMask1.Text, this.labelLocalSubnetMask2.Text, this.labelLocalSubnetMask3.Text, this.labelLocalSubnetMask4.Text);
this.ParentForm.ParentForm.smartConfigs.IPSettings.GateWay = string.Format("{0}.{1}.{2}.{3}",
this.labelLocalGateway1.Text, this.labelLocalGateway2.Text, this.labelLocalGateway3.Text, this.labelLocalGateway4.Text);
afterIP = this.ParentForm.ParentForm.smartConfigs.IPSettings.DeviceIP;
afterSubnetMask = this.ParentForm.ParentForm.smartConfigs.IPSettings.SubNetMask;
afterGateway = this.ParentForm.ParentForm.smartConfigs.IPSettings.GateWay;
this.ParentForm.ParentForm.smartConfigs.IPSettings.Save();
this.ParentForm.ParentForm.smartConfigs.IPSettings.SetApply();
if (this.ParentForm.ParentForm.SystemConfig.ETHERNET_OP_MODE == 1)
this.ParentForm.ParentForm.EthernetServerStart();
else if (this.ParentForm.ParentForm.SystemConfig.ETHERNET_OP_MODE == 2)
this.ParentForm.ParentForm.EthernetClientConnect();
if (beforeIP != afterIP)
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingParameter.TCPLocalIPAddress, "", beforeIP, afterIP);
if (beforeSubnetMask != afterSubnetMask)
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingParameter.TCPLocalSubnetMask, "", beforeSubnetMask, afterSubnetMask);
if (beforeGateway != afterGateway)
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingParameter.TCPLocalGateway, "", beforeGateway, afterGateway);
}
// Modbus Settings
private void labelStartAddress_Click(object sender, EventArgs e)
{
DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelStartAddress.Text, 5, 0, false);
if (myKeyPad.ShowDialog() == DialogResult.OK)
{
if (myKeyPad.doubleValue < 0 || myKeyPad.doubleValue > 99999)
{
// 입력범위를 확인하세요
DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.ParentForm.SystemConfig.LANGUAGE);
myMsg.ShowDialog();
}
else
{
this.labelStartAddress.Text = myKeyPad.StringValue;
if (this.buttonSaveModbus.Visible == false)
this.buttonSaveModbus.Visible = true;
}
}
}
private void buttonSaveModbus_Click(object sender, EventArgs e)
{
string before = "", after = "";
before = this.ParentForm.ParentForm.SystemConfig.MODBUS_TCP_START_ADDRESS.ToString();
this.ParentForm.ParentForm.SystemConfig.MODBUS_TCP_START_ADDRESS = int.Parse(this.labelStartAddress.Text);
after = this.labelStartAddress.Text;
if (before != after)
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingParameter.Mod_StartAddr, "TCP", before, after);
this.ParentForm.ParentForm.SaveSystemConfigurationFile(this.ParentForm.ParentForm.SystemConfig);
this.buttonSaveModbus.Visible = false;
}
private void timerServer_Tick(object sender, EventArgs e)
{
if (this.ParentForm.ParentForm.smartTCPMultiServer.IsStart == true)
{
if (this.labelServerStatus.Text != ">Start")
this.labelServerStatus.Text = ">Start";
if (this.IsServerON == false)
{
this.IsServerON = true;
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingOperation.ServerON, "");
}
this.labelConnectedIP.Text = "-";
this.smartListBoxClientList.ClearAll();
this.labelClientCount.Text = "-";
if (this.ParentForm.ParentForm.smartTCPMultiServer.ClientInfoList != null)
{
int length = this.ParentForm.ParentForm.smartTCPMultiServer.ClientInfoList.Length;
for (int i = 0; i < length; i++)
{
this.smartListBoxClientList.AddItem(
this.ParentForm.ParentForm.smartTCPMultiServer.ClientInfoList[i].strID + ", " +
this.ParentForm.ParentForm.smartTCPMultiServer.ClientInfoList[i].strIPAddress);
}
this.labelClientCount.Text = length.ToString();
if (this.ParentForm.ParentForm.smartTCPMultiServer.ClientInfoList == null)
this.labelConnectedIP.Text = "-";
else
this.labelConnectedIP.Text = this.ParentForm.ParentForm.smartTCPMultiServer.ClientInfoList[0].strIPAddress;
}
}
else
{
if (this.labelServerStatus.Text != ">Stop")
this.labelServerStatus.Text = ">Stop";
if (this.IsServerON == true)
{
this.IsServerON = false;
this.ParentForm.ParentForm.SetTrackingHistoryData(Define.E_TrackingOperation.ServerOFF, "");
}
this.smartListBoxClientList.ClearAll();
this.labelClientCount.Text = "-";
}
}
#endregion
}
}