233 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			233 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			C#
		
	
| 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.DataStore;
 | |
| using INT_LKD.Forms;
 | |
| using SmartX;
 | |
| 
 | |
| namespace INT_LKD.Controls
 | |
| {
 | |
|     public partial class ControlMainModbus : UserControl
 | |
|     {
 | |
|         #region Field
 | |
|         private FormMainDisplay m_ParentForm;
 | |
|         private UInt32 ReceiveCount;
 | |
|         private int m_ModbusCount;
 | |
| 
 | |
|         private Collection<SmartLabel> CollectionOffset;
 | |
|         private Collection<SmartLabel> CollectionContents;
 | |
|         private Collection<SmartLabel> CollectionDecIsProcessing;
 | |
|         private Collection<SmartLabel> CollectionDecIsLeak;
 | |
|         private Collection<SmartLabel> CollectionHexaIsProcessing;
 | |
|         private Collection<SmartLabel> 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<SmartLabel>();
 | |
|             this.CollectionContents = new Collection<SmartLabel>();
 | |
|             this.CollectionDecIsProcessing = new Collection<SmartLabel>();
 | |
|             this.CollectionDecIsLeak = new Collection<SmartLabel>();
 | |
|             this.CollectionHexaIsProcessing = new Collection<SmartLabel>();
 | |
|             this.CollectionHexaIsLeak = new Collection<SmartLabel>();
 | |
| 
 | |
|             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
 | |
|     }
 | |
| }
 |