using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using INT_LKD_2.DataStore; using INT_LKD_2.Forms; using SmartX; namespace INT_LKD_2.Controls { public partial class ControlMainModbus : UserControl { #region Field private FormMainDisplay m_ParentForm; private UInt32 ReceiveCount; private int m_ModbusCount; private Collection CollectionOffset; private Collection CollectionContents; private Collection CollectionDecIsProcessing; private Collection CollectionDecIsLeak; private Collection CollectionHexaIsProcessing; private Collection CollectionHexaIsLeak; #endregion #region Constructor public ControlMainModbus(FormMainDisplay parent) { InitializeComponent(); this.ParentForm = parent; this.DefaultSetting(); this.InitializeDesign(); } #endregion #region Property public FormMainDisplay ParentForm { get { return this.m_ParentForm; } private set { this.m_ParentForm = value; } } public int ModbusCount { get { return this.m_ModbusCount; } private set { this.m_ModbusCount = value; } } #endregion #region Method public void InitializeDesign() { switch (this.ParentForm.ParentForm.SystemConfig.LANGUAGE) { case Define.E_LanguageID.Chinese: #region 중문 this.labelTitleOffset.Text = "抵消"; this.labelTitleLane.Text = "巷"; this.labelTitleContents.Text = "目录"; this.labelTitleValueDecimal.Text = "值(十进制)"; this.labelTitleValueHexa.Text = "值(十六进制)"; for (int i = 1; i <= this.ModbusCount; i++) { if (i % 2 == 1) this.CollectionContents[i - 1].Text = "工序"; else this.CollectionContents[i - 1].Text = "结果"; } #endregion break; case Define.E_LanguageID.English: #region 영문 this.labelTitleOffset.Text = "Offset"; this.labelTitleLane.Text = "Lane"; this.labelTitleContents.Text = "Contents"; this.labelTitleValueDecimal.Text = "Value(Decimal)"; this.labelTitleValueHexa.Text = "Value(Hexa)"; for (int i = 1; i <= this.ModbusCount; i++) { if (i % 2 == 1) this.CollectionContents[i - 1].Text = "Processing"; else this.CollectionContents[i - 1].Text = "Result"; } #endregion break; case Define.E_LanguageID.Korean: #region 한글 this.labelTitleOffset.Text = "Offset"; this.labelTitleContents.Text = "항목"; this.labelTitleValueDecimal.Text = "값(Decimal)"; this.labelTitleValueHexa.Text = "값(Hexa)"; for (int i = 1; i <= this.ModbusCount; i++) { if (i % 2 == 1) this.CollectionContents[i - 1].Text = "진행 여부"; else this.CollectionContents[i - 1].Text = "결과"; } #endregion break; default: break; } } private void DefaultSetting() { this.ModbusCount = this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE * 2; this.CollectionOffset = new Collection(); this.CollectionContents = new Collection(); this.CollectionDecIsProcessing = new Collection(); this.CollectionDecIsLeak = new Collection(); this.CollectionHexaIsProcessing = new Collection(); this.CollectionHexaIsLeak = new Collection(); for (int i = 1; i <= this.ModbusCount; i++) { this.CollectionOffset.Add(FindByNameUtil.SmartLabel("labelOffset" + i, this)); this.CollectionContents.Add(FindByNameUtil.SmartLabel("labelContents" + i, this)); } for (int i = 1; i <= this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE; i++) { this.CollectionDecIsProcessing.Add(FindByNameUtil.SmartLabel("labelValueDecIsProcessing" + i, this)); this.CollectionDecIsLeak.Add(FindByNameUtil.SmartLabel("labelValueDecIsLeak" + i, this)); this.CollectionHexaIsProcessing.Add(FindByNameUtil.SmartLabel("labelValueHexaIsProcessing" + i, this)); this.CollectionHexaIsLeak.Add(FindByNameUtil.SmartLabel("labelValueHexaIsLeak" + i, this)); } this.ReceiveCount = 0; this.labelReceiveCount.Text = this.ReceiveCount.ToString(); } public void UpdateEquipmentStatusDisplay(Define.E_EquipmentStatus status) { } public void UpdateReceiveCount() { if (this.ReceiveCount > 999999999) this.ReceiveCount = 0; else { this.ReceiveCount++; this.labelReceiveCount.Text = this.ReceiveCount.ToString(); } } public void UpdateData(_30000_ModbusData mData) { mData.SettingHexa(); for (int i = 0; i < this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE; i++) { this.CollectionDecIsProcessing[i].Text = mData.CollectionIsProcessing[i].ToString(); this.CollectionDecIsLeak[i].Text = mData.CollectionIsLeak[i].ToString(); this.CollectionHexaIsProcessing[i].Text = mData.CollectionIsProcessingHexa[i].ToString(); this.CollectionHexaIsLeak[i].Text = mData.CollectionIsLeakHexa[i].ToString(); } // 로그 if (this.ParentForm.ParentForm.IsCommunicationLogOpen == true) this.ParentForm.ParentForm.smartFileCommunicationLog.StringType.Write(string.Format("UpdateData ({0:yyyy-MM-dd HH:mm:ss})", DateTime.Now)); } public void UpdateOffset(bool master, int startAddress) { if (master == true) { for (int i = 0; i < this.ModbusCount; i++) { this.CollectionOffset[i].Text = (3000 + startAddress).ToString(); startAddress += 2; } } else { int address = 3010; for (int i = 0; i < this.ModbusCount; i++) { this.CollectionOffset[i].Text = "0x" + address.ToString("X4"); address += 2; } } } public void UpdateDisplay() { if (this.ParentForm.ParentForm.SystemConfig.MODBUS_TCP_SELECTFUNCTION == (int)Define.E_ModbusFunction._04_ReadInputRegister) { this.labelStartAddress.Text = "-"; this.UpdateOffset(false, this.ParentForm.ParentForm.SystemConfig.MODBUS_TCP_START_ADDRESS); } else { this.labelStartAddress.Text = this.ParentForm.ParentForm.SystemConfig.MODBUS_TCP_START_ADDRESS.ToString(); this.UpdateOffset(true, this.ParentForm.ParentForm.SystemConfig.MODBUS_TCP_START_ADDRESS); } } public void ClearData() { this.ParentForm.ParentForm.Current30000ModbusData.Initialization(); for (int i = 0; i < this.ParentForm.ParentForm.SystemConfig.EQUIPMENT_LANE; i++) { this.CollectionDecIsProcessing[i].Text = this.ParentForm.ParentForm.Current30000ModbusData.CollectionIsProcessing[i].ToString(); this.CollectionDecIsLeak[i].Text = this.ParentForm.ParentForm.Current30000ModbusData.CollectionIsLeak[i].ToString(); this.CollectionHexaIsProcessing[i].Text = this.ParentForm.ParentForm.Current30000ModbusData.CollectionIsProcessingHexa[i].ToString(); this.CollectionHexaIsLeak[i].Text = this.ParentForm.ParentForm.Current30000ModbusData.CollectionIsLeakHexa[i].ToString(); } } public void DisplayRefresh() { this.UpdateDisplay(); this.UpdateData(this.ParentForm.ParentForm.Current30000ModbusData); } #endregion #region Event Handler #endregion } }