diff --git a/ITC81DB_0H/Controls/CenterConfiguration/ControlCenterConfiSerial.cs b/ITC81DB_0H/Controls/CenterConfiguration/ControlCenterConfiSerial.cs
index d784af6..73bbc3c 100644
--- a/ITC81DB_0H/Controls/CenterConfiguration/ControlCenterConfiSerial.cs
+++ b/ITC81DB_0H/Controls/CenterConfiguration/ControlCenterConfiSerial.cs
@@ -822,7 +822,6 @@ namespace ITC81DB_0H.Controls
switch (temp)
{
case Define.E_MenuBottomConfiguration.SerialCOM1:
- this.ParentForm.ParentForm.CloseSerialCOM1();
this.comboBoxSerialBaudRate.SelectedIndexChanged -= new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
this.comboBoxSerialBaudRate.SelectedIndex = 4;
this.comboBoxSerialBaudRate.SelectedIndexChanged += new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
diff --git a/ITC81DB_0H/Datastore/DataStore.cs b/ITC81DB_0H/Datastore/DataStore.cs
index 900fe76..932eacc 100644
--- a/ITC81DB_0H/Datastore/DataStore.cs
+++ b/ITC81DB_0H/Datastore/DataStore.cs
@@ -25,6 +25,9 @@ namespace ITC81DB_0H
#region CommunicationCommand
public class CommunicationCommand
{
+ // 운전데이터 Respone
+ public static readonly string StartDataCMD = "Sr0";
+
// 불량알람(레벨)
public static readonly string AlarmNgLevel = "Caa00";
// 불량알람 해지
@@ -1554,6 +1557,60 @@ namespace ITC81DB_0H
}
#endregion
+ #region CommunicationRespone
+ public class CommunicationRespone
+ {
+ #region Field
+ private bool m_IsFirst;
+
+ private string m_TransactionID;
+ private string m_TransferCount;
+ #endregion
+
+ #region Constructor
+ public CommunicationRespone()
+ {
+ this.Initialization();
+ }
+ #endregion
+
+ #region Property
+ public bool IsFirst
+ {
+ get { return this.m_IsFirst; }
+ set { this.m_IsFirst = value; }
+ }
+
+ ///
+ /// Data ID (0~9)
+ ///
+ public string TransactionID
+ {
+ get { return this.m_TransactionID; }
+ set { this.m_TransactionID = value; }
+ }
+ ///
+ /// 재전송 CNT (0~9)
+ ///
+ public string TransferCount
+ {
+ get { return this.m_TransferCount; }
+ set { this.m_TransferCount = value; }
+ }
+ #endregion
+
+ #region Method
+ public void Initialization()
+ {
+ this.IsFirst = false;
+
+ this.TransactionID = "a";
+ this.TransferCount = "a";
+ }
+ #endregion
+ }
+ #endregion
+
public class AlarmList
{
#region Field
diff --git a/ITC81DB_0H/Forms/FormMain.Designer.cs b/ITC81DB_0H/Forms/FormMain.Designer.cs
index 45d05fb..258d138 100644
--- a/ITC81DB_0H/Forms/FormMain.Designer.cs
+++ b/ITC81DB_0H/Forms/FormMain.Designer.cs
@@ -46,6 +46,8 @@
this.timerEthernetPing = new System.Windows.Forms.Timer();
this.smartTimerLogout = new SmartX.SmartTimer(this.components);
this.timerUserList = new System.Windows.Forms.Timer();
+ this.smartThreadSerialPort2OverRun = new SmartX.SmartThread(this.components);
+ this.smartThreadSerialPort2Read = new SmartX.SmartThread(this.components);
((System.ComponentModel.ISupportInitialize)(this.smartForm)).BeginInit();
this.SuspendLayout();
//
@@ -95,6 +97,7 @@
this.smartSerialPort2.STXCodes = null;
this.smartSerialPort2.TailErrorCodeOffset = 0;
this.smartSerialPort2.OnReadQueueEvent += new SmartX.SmartSerialPort.ReceiveDataHandler(this.smartSerialPort2_OnReadQueueEvent);
+ this.smartSerialPort2.OnPortError += new SmartX.SmartSerialPort.PortErrorHandler(this.smartSerialSerialPort2_OnPortError);
//
// smartSerialPort1
//
@@ -209,6 +212,16 @@
this.timerUserList.Interval = 1000;
this.timerUserList.Tick += new System.EventHandler(this.timerUserList_Tick);
//
+ // smartThreadSerialPort2OverRun
+ //
+ this.smartThreadSerialPort2OverRun.Priority = System.Threading.ThreadPriority.Normal;
+ this.smartThreadSerialPort2OverRun.UIThreadFunction += new SmartX.SmartThread.UIThreadHandler(this.smartThreadSerialPort2Read_UIThreadFunction);
+ //
+ // smartThreadSerialPort2Read
+ //
+ this.smartThreadSerialPort2Read.Priority = System.Threading.ThreadPriority.Normal;
+ this.smartThreadSerialPort2Read.UIThreadFunction += new SmartX.SmartThread.UIThreadHandler(this.smartThreadSerialPort2Read_UIThreadFunction);
+ //
// FormMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
@@ -242,6 +255,8 @@
private System.Windows.Forms.Timer timerEthernetPing;
private SmartX.SmartTimer smartTimerLogout;
private System.Windows.Forms.Timer timerUserList;
+ private SmartX.SmartThread smartThreadSerialPort2OverRun;
+ private SmartX.SmartThread smartThreadSerialPort2Read;
}
}
diff --git a/ITC81DB_0H/Forms/FormMain.cs b/ITC81DB_0H/Forms/FormMain.cs
index e6a5d3e..867fd50 100644
--- a/ITC81DB_0H/Forms/FormMain.cs
+++ b/ITC81DB_0H/Forms/FormMain.cs
@@ -18,14 +18,15 @@ using InModbus;
using ITC81DB_2H.Datastore;
using ITC81DB_0H.Part11_UserManager;
using ITC81DB_0H.Part11_Encryption;
+using ITC81DB_0H.SerialManager;
namespace ITC81DB_0H.Forms
{
public partial class FormMain : Form
{
#region Field
- public static string DisplayVersion = "3.1.2";
- public static string ReleaseDate = "2023.10.31";
+ public static string DisplayVersion = "3.2.0";
+ public static string ReleaseDate = "2023.11.08";
private SmartSplash SmartSplashProgramLoad;
public bool IsCommunicationLogOpen;
@@ -51,6 +52,16 @@ namespace ITC81DB_0H.Forms
public int FlagAutomaticLogoutWarningTime;
public bool IsLogProcessing;
+ // 재전송 기능
+ public int MissingCommIDCount;
+ public int CommID;
+ public bool FlagSerialDll = true;
+ private string ComPortMainToLCD;
+ private Queue QueueCommunicationRecive; // 큐 통신 데이터용
+ private int FlagComRetry3th; // 3회 재전송 횟수
+ public Queue QueueOverRun = new Queue();
+ private int IndexOverRun = 0;
+
private byte[] ClientSendDatabyteArray;
private string ClientSendDataString;
@@ -183,6 +194,8 @@ namespace ITC81DB_0H.Forms
private JudgmentResult CurrentJudgmentResult;
// Dll User_Name List
public List ListDllUserName;
+ // Communication Respone
+ private CommunicationRespone CurrentComRespone;
// HM Handshake를 위한 함수
private int HMCOM1_Step;
@@ -383,7 +396,11 @@ namespace ITC81DB_0H.Forms
this.UpdateValue = 0;
this.IsOPCModbusUsing = false;
this.IsLogProcessing = false;
+ this.FlagComRetry3th = 0;
+ this.MissingCommIDCount = 0;
+ this.CommID = 0;
+ this.QueueCommunicationRecive = new Queue();
this.CurrentAlarmList = new AlarmList();
this.EventAlarmStateChange += new Define.EventHandlerAlarmStateChange(this.CurrentAlarmList_Change);
@@ -433,6 +450,8 @@ namespace ITC81DB_0H.Forms
this.PathHeaderFolder = this.PathLaunchFolder + "Header\\";
PathBinFolder = this.PathLaunchFolder + "Bin\\";
+ this.CurrentComRespone = new CommunicationRespone();
+
this.ListDllUserName = new List();
this.ListDllUserName.Clear();
@@ -524,6 +543,18 @@ namespace ITC81DB_0H.Forms
pathSDCardSystemFileFolder.Delete();
}
+ // COM port 설정
+ this.smartSerialPort2.PortNo = SmartSerialPort.COMPORTNO.COM2;
+ this.ComPortMainToLCD = "COM2:";
+
+ if (this.FlagSerialDll == true)
+ {
+ SerialMgrComm.IntializeSerialManager();
+ SerialMgrComm.SerialPortMessageReceive += this.SerialPort_MessageReceive;
+ SerialMgrComm.SerialPortErrMessageReceive += this.SerialPort_ErrMessageReceive;
+ }
+
+
// Data 폴더 생성
if (Directory.Exists(this.PathDataFolder) == false)
Directory.CreateDirectory(this.PathDataFolder);
@@ -562,8 +593,7 @@ namespace ITC81DB_0H.Forms
}
// 통신 포트 설정
- if (this.smartSerialPort3.IsOpen == true)
- this.smartSerialPort3.Close();
+ this.CloseSerialCOM3();
// STXANDETX
this.ChangeSerialCOM3FrameSeparateType(Define.E_SeparateType.STXANDETX);
@@ -1050,6 +1080,46 @@ namespace ITC81DB_0H.Forms
this.FlagThreadMessage1 = false;
}
}
+ private bool UI_Invoke(ThreadStart invoker)
+ {
+ try
+ {
+ if (this.InvokeRequired)
+ {
+ if (this.IsDisposed)
+ return true;
+
+ this.Invoke(invoker);
+ }
+ else
+ {
+ invoker();
+ }
+
+ return true;
+
+ }
+ catch (Exception e)
+ {
+ return false;
+ }
+
+ }
+ private void SerialPort_MessageReceive(object data)
+ {
+ this.UI_Invoke(delegate
+ {
+ this.SerialReceiveData(data.ToString());
+ });
+ }
+ private void SerialPort_ErrMessageReceive(object data)
+ {
+ this.UI_Invoke(delegate
+ {
+ if (this.IsCommunicationLogOpen == true)
+ this.smartFileCommunicationLog.WriteString(string.Format("Receive ({0:yyyy-MM-dd HH:mm:ss}): {1} : Dll(Err MSG)", DateTime.Now, data));
+ });
+ }
///
/// Set Mode
@@ -1565,15 +1635,24 @@ namespace ITC81DB_0H.Forms
}
#region Uart Communication
- private void OpenSmartUartLink()
+ private void OpenSmartSerialPort2()
{
string fullPath = "";
DateTime dt = DateTime.Now;
try
{
- if (this.smartSerialPort2.IsOpen == false)
- this.smartSerialPort2.Open();
+ if (this.FlagSerialDll == false)
+ {
+ if (this.smartSerialPort2.IsOpen == false)
+ this.smartSerialPort2.Open();
+ }
+ else
+ {
+ // Port : COM2
+ // Baudrate : 115200
+ SerialMgrComm.serialPortOpen(this.ComPortMainToLCD, 115200, 0, 0, 8);
+ }
}
catch
{
@@ -1594,9 +1673,12 @@ namespace ITC81DB_0H.Forms
//this.IsErrorLogOpen = true;
#endregion
}
- public void CloseSmartUartLink()
+ public void CloseSmartSerialPort2()
{
- this.smartSerialPort2.Close();
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort2.Close();
+ else
+ SerialMgrComm.serialPortClose("COM2:");
}
private bool SizeCheck(string cmd, string strTemp)
@@ -1794,8 +1876,13 @@ namespace ITC81DB_0H.Forms
sb.Append(chkSum);
- if (this.smartSerialPort2.IsOpen == true)
- this.smartSerialPort2.WriteFrame(sb.ToString(), SmartSerialPort.CODETYPES.ASCIICODE);
+ if (this.FlagSerialDll == false)
+ {
+ if (this.smartSerialPort2.IsOpen == true)
+ this.smartSerialPort2.WriteFrame(sb.ToString(), SmartSerialPort.CODETYPES.ASCIICODE);
+ }
+ else
+ SerialMgrComm.serialPortMessage(this.ComPortMainToLCD, sb.ToString());
// 통신 확인 로그
if (this.IsCommunicationLogOpen == true)
@@ -1823,8 +1910,13 @@ namespace ITC81DB_0H.Forms
sb.Append(chkSum);
- if (this.smartSerialPort2.IsOpen == true)
- this.smartSerialPort2.WriteFrame(sb.ToString(), SmartSerialPort.CODETYPES.ASCIICODE);
+ if (this.FlagSerialDll == false)
+ {
+ if (this.smartSerialPort2.IsOpen == true)
+ this.smartSerialPort2.WriteFrame(sb.ToString(), SmartSerialPort.CODETYPES.ASCIICODE);
+ }
+ else
+ SerialMgrComm.serialPortMessage(this.ComPortMainToLCD, sb.ToString());
// 통신 확인 로그
if (this.IsCommunicationLogOpen == true)
@@ -1875,8 +1967,14 @@ namespace ITC81DB_0H.Forms
for (int i = 0; i < byteCollection.Count; i++)
byteData[i] = byteCollection[i];
- if (this.smartSerialPort2.IsOpen == true)
- this.smartSerialPort2.WriteFrame(byteData);
+ if (this.FlagSerialDll == false)
+ {
+ if (this.smartSerialPort2.IsOpen == true)
+ this.smartSerialPort2.WriteFrame(byteData);
+ }
+ else
+ SerialMgrComm.serialPortMessageByte(this.ComPortMainToLCD, byteData, byteData.Length);
+
// 통신 확인 로그
if (this.IsCommunicationLogOpen == true)
@@ -1891,28 +1989,38 @@ namespace ITC81DB_0H.Forms
return ret;
}
- private void ReceiveData()
+ private int TransferDataRespone(string command, string id, string transactionID, string TransferCount, string respone)
{
int ret = 0;
- string strTemp = "";
- byte[] readByte;
+ string chkSum = "cc";
+ StringBuilder sb = new StringBuilder();
- SmartSerialPort.FRAMEDATAREADSTATUS receiveDataState = SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY;
+ sb.Append(command);
+ sb.Append(transactionID);
+ sb.Append(TransferCount);
+ sb.Append(respone);
- try
- {
- receiveDataState = this.smartSerialPort2.ReadQueue(out readByte);
- strTemp = Encoding.Default.GetString(readByte, 0, readByte.Length);
- }
- catch
- {
- return;
- }
+ chkSum = this.Checksumcalculator(sb.ToString());
- if ((receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY) || (receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.FAILDATA))
+ sb.Append(chkSum);
+
+ if (this.FlagSerialDll == false)
{
- return;
+ if (this.smartSerialPort2.IsOpen == true)
+ this.smartSerialPort2.WriteFrame(sb.ToString(), SmartX.SmartSerialPort.CODETYPES.ASCIICODE);
}
+ else
+ SerialMgrComm.serialPortMessage(this.ComPortMainToLCD, sb.ToString());
+
+ // 통신 확인 로그
+ if (this.IsCommunicationLogOpen == true)
+ this.smartFileCommunicationLog.WriteString(string.Format("Send ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, sb.ToString()));
+
+ return ret;
+ }
+ private void ReceiveData(string strTemp)
+ {
+ int ret = 0;
try
{
@@ -2085,7 +2193,9 @@ namespace ITC81DB_0H.Forms
#region 정지
this.CurrentSystemStatus.Equipment = Define.E_EquipmentStatus.Stop;
this.SetTrackingHistoryData(Define.E_TrackingOperation.Stop, "");
-
+
+ this.CommID = 0;
+
// OPT1(액트라 - 안리쯔 금속검출기)
if (this.SystemConfig1.SerialCOM1Mode == 14)
this.TransferSerialCOM1(this.Transfer_14_OPT1("13"));
@@ -2944,7 +3054,7 @@ namespace ITC81DB_0H.Forms
return ret;
}
// 운전시 중량
- private int ReceiveCommand(string cmd, string lane, string dataID, string transferCount, string receiveData)
+ private int ReceiveCommand(string cmd, string lane, string transactionID, string transferCount, string receiveData)
{
int ret = 0;
int temp = 0;
@@ -2966,7 +3076,7 @@ namespace ITC81DB_0H.Forms
//this.CurrentWeightData.ProductionSpeed = int.Parse(receiveData.Substring(15, 4).Trim());
this.CurrentWeightData.WeightSum(this.CurrentWeightData.JudgmentStatus);
- this.CurrentWeightData.SetDataIDTransferCount(dataID, transferCount);
+ this.CurrentWeightData.SetDataIDTransferCount(transactionID, transferCount);
this.CurrentWeightData.Status = Define.E_WeightStatus.WeightChange;
#endregion
@@ -2983,7 +3093,7 @@ namespace ITC81DB_0H.Forms
this.CurrentWeightData.ProductionSpeed = int.Parse(receiveData.Substring(19, 4).Trim());
this.CurrentWeightData.WeightSum(this.CurrentWeightData.JudgmentStatus);
- this.CurrentWeightData.SetDataIDTransferCount(dataID, transferCount);
+ this.CurrentWeightData.SetDataIDTransferCount(transactionID, transferCount);
this.CurrentWeightData.Status = Define.E_WeightStatus.WeightChange;
#endregion
@@ -2992,953 +3102,967 @@ namespace ITC81DB_0H.Forms
break;
}
- // 통신 제대로 받으면 ACK
- this.TransferData(string.Format("{0}{1}{2}{3}", CommunicationCommand.RunWeightData, (int)Define.E_ResponseData.ACK, dataID, transferCount), CommunicationID.MainBoard);
-
- if (this.CurrentWeightData.WeightString.Trim() == "-9999" || this.CurrentWeightData.WeightString.Trim() == "9999"
- || this.CurrentWeightData.WeightString.Trim() == "99999")
+ //// 통신 제대로 받으면 ACK
+ //this.TransferData(string.Format("{0}{1}{2}{3}", CommunicationCommand.RunWeightData, (int)Define.E_ResponseData.ACK, dataID, transferCount), CommunicationID.MainBoard);
+
+ if (this.CommID % 10 != int.Parse(transactionID))
+ {
+ this.MissingCommIDCount++;
+ this.ChildFormMainDisplay.labelMissingCount.Text = this.MissingCommIDCount.ToString();
+ }
+ else
+ this.CommID++;
+
+ if (this.CurrentComRespone.TransactionID != transactionID)
+ {
+ this.CurrentComRespone.TransactionID = transactionID;
+ this.CurrentComRespone.TransferCount = transferCount;
+
+ if (this.CurrentWeightData.WeightString.Trim() == "-9999" || this.CurrentWeightData.WeightString.Trim() == "9999"
+ || this.CurrentWeightData.WeightString.Trim() == "99999")
+ if (this.IsErrorLogOpen == true)
+ this.smartFileCheckLog.WriteString(string.Format("Check ({0:yyyy-MM-dd HH:mm:ss}): {1},{2},{3}", DateTime.Now, receiveData, this.CurrentProductItem.UnderRange, this.CurrentProductItem.OverRange));
+
if (this.IsErrorLogOpen == true)
- this.smartFileCheckLog.WriteString(string.Format("Check ({0:yyyy-MM-dd HH:mm:ss}): {1},{2},{3}", DateTime.Now, receiveData, this.CurrentProductItem.UnderRange, this.CurrentProductItem.OverRange));
+ this.ChecklogPrint(receiveData, this.CurrentWeightData);
- if (this.IsErrorLogOpen == true)
- this.ChecklogPrint(receiveData, this.CurrentWeightData);
-
- // V6.2.0
- if (this.OverloadWeight <= this.CurrentWeightData.Weight)
- {
- this.CurrentWeightData.WeightString = this.CurrentCalibrationItem.OverloadWeightString;
- this.CurrentWeightData.Weight = this.OverloadWeight;
- }
-
- #region 통신
- // 통신 COM1
- if (this.SystemConfig1.SerialCOM1Mode != 0)
- {
- #region COM1
- switch (this.SystemConfig1.SerialCOM1Mode)
+ // V6.2.0
+ if (this.OverloadWeight <= this.CurrentWeightData.Weight)
{
- case 1:
- this.TransferSerialCOM1(this.Transfer_1_STD1(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 2:
- this.TransferSerialCOM1(this.Transfer_2_Remote(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 3:
- if (this.SystemConfig1.IsPrintPerProductEnable == true)
- this.TransferSerialCOM1(this.Transfer_3_Print(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 4:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- {
- this.TransferSerialCOM1(this.RoomChange9410(2)); // 2번방 변경
- Thread.Sleep(200);
- this.TransferSerialCOM1(this.SendChar(Define.E_CharValue.ACK)); // ACK
- Thread.Sleep(200);
- this.TransferSerialCOM1(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
- }
- else
- {
- this.TransferSerialCOM1(this.RoomChange9410(1)); // 1번방 변경
- Thread.Sleep(200);
- this.TransferSerialCOM1(this.SendChar(Define.E_CharValue.ACK)); // ACK
- }
- break;
- case 5:
- this.HMCOM1_Step = 1;
- this.TransferSerialCOM1(this.SendChar(Define.E_CharValue.ENQ));
- break;
- case 6:
- this.TransferSerialCOM1(this.Transfer_6_OPT0(this.CurrentWeightData));
- break;
- case 7:
- this.TransferSerialCOM1(this.Transfer_7_imaje9410OPT2(this.CurrentWeightData));
- break;
- case 8:
- this.TransferSerialCOM1(this.Transfer_8_imaje9028OPT2(this.CurrentWeightData));
- break;
- case 9:
- this.TransferSerialCOM1(this.Transfer_9_Hitachi(this.CurrentWeightData, Define.E_SerialCOM.COM1));
- break;
- case 10:
- this.TransferSerialCOM1(this.Transfer_10_MACSA(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 11:
- this.TransferSerialCOM1(this.Transfer_11_Markoprint(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 12:
- this.TransferSerialCOM1(this.Transfer_12_alphaJET(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 13:
- this.TransferSerialCOM1(this.Transfer_13_Marking_VJ1510(this.CurrentWeightData));
- break;
- case 17:
- this.TransferSerialCOM1(this.Transfer_17_OPT3(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 18:
- this.TransferSerialCOM1(this.Transfer_18_HP200(this.CurrentWeightData, 1));
- this.TransferSerialCOM1(this.Transfer_18_HP200(this.CurrentWeightData, 2));
- break;
- case 19:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- this.TransferSerialCOM1(this.Transfer_19_SmartJet(this.CurrentWeightData));
- break;
- case 20:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- {
- this.TransferSerialCOM1(this.RoomChange9410(2)); // 2번방 변경
- Thread.Sleep(200);
- this.TransferSerialCOM1(this.SendChar(Define.E_CharValue.ACK)); // ACK
- Thread.Sleep(200);
- this.TransferSerialCOM1(this.WeightData9410_OPT3(this.CurrentWeightData)); // 중량값 전송
- }
- else
- {
- this.TransferSerialCOM1(this.RoomChange9410(1)); // 1번방 변경
- Thread.Sleep(200);
- this.TransferSerialCOM1(this.SendChar(Define.E_CharValue.ACK)); // ACK
- }
- break;
- case (int)Define.E_CommMode.f22_Modbus: // Modbus RTU(Master 사용 시 - Write multiple register)
- if (this.SystemConfig2.ModbusRTUSelectFunction == (int)Define.E_ModbusFunction._16_WriteMultipleRegister)
- {
- byte[] sendData = this.Modbus.MakeRTUSendAllData(this.Transfer_22_Modbus_Write(), this.SystemConfig2.ModbusSlaveIDCOM1, this.SystemConfig2.ModbusRTUStartAddressCOM1);
-
- this.TransferSerialCOM1(sendData);
- }
- break;
- case (int)Define.E_CommMode.f23_STD2:
- this.TransferSerialCOM1(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
- break;
- case (int)Define.E_CommMode.f24_MULTi_JET:
- this.TransferSerialCOM1(this.Transfer_24_MULTi_JET(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f26_LINX8830:
- this.TransferSerialCOM1(this.Transfer_26_LINX8830(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f27_MYJET:
- this.TransferSerialCOM1(this.Transfer_27_MYJET(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f28_OPT4: // Tasco(타스코) PC 전송
- this.TransferSerialCOM1(this.Transfer_28_OPT4(false, this.CurrentWeightData));
- break;
- default:
- break;
+ this.CurrentWeightData.WeightString = this.CurrentCalibrationItem.OverloadWeightString;
+ this.CurrentWeightData.Weight = this.OverloadWeight;
}
- #endregion
- }
- // 통신 COM3
- if (this.SystemConfig1.SerialCOM3Mode != 0)
- {
- #region COM3
- switch (this.SystemConfig1.SerialCOM3Mode)
+
+ #region 통신
+ // 통신 COM1
+ if (this.SystemConfig1.SerialCOM1Mode != 0)
{
- case 1:
- this.TransferSerialCOM3(this.Transfer_1_STD1(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 2:
- this.TransferSerialCOM3(this.Transfer_2_Remote(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 3:
- if (this.SystemConfig1.IsPrintPerProductEnable == true)
- this.TransferSerialCOM3(this.Transfer_3_Print(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 4:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- {
- this.TransferSerialCOM3(this.RoomChange9410(2)); // 2번방 변경
- Thread.Sleep(200);
- this.TransferSerialCOM3(this.SendChar(Define.E_CharValue.ACK)); // ACK
- Thread.Sleep(200);
- this.TransferSerialCOM3(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
- }
- else
- {
- this.TransferSerialCOM3(this.RoomChange9410(1)); // 1번방 변경
- Thread.Sleep(200);
- this.TransferSerialCOM3(this.SendChar(Define.E_CharValue.ACK)); // ACK
- }
- break;
- case 5:
- this.HMCOM3_Step = 1;
- this.TransferSerialCOM3(this.SendChar(Define.E_CharValue.ENQ));
- break;
- case 6:
- this.TransferSerialCOM3(this.Transfer_6_OPT0(this.CurrentWeightData));
- break;
- case 7:
- this.TransferSerialCOM3(this.Transfer_7_imaje9410OPT2(this.CurrentWeightData));
- break;
- case 8:
- this.TransferSerialCOM3(this.Transfer_8_imaje9028OPT2(this.CurrentWeightData));
- break;
- case 9:
- this.TransferSerialCOM3(this.Transfer_9_Hitachi(this.CurrentWeightData, Define.E_SerialCOM.COM3));
- break;
- case 10:
- this.TransferSerialCOM3(this.Transfer_10_MACSA(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 11:
- this.TransferSerialCOM3(this.Transfer_11_Markoprint(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 12:
- this.TransferSerialCOM3(this.Transfer_12_alphaJET(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 13:
- this.TransferSerialCOM3(this.Transfer_13_Marking_VJ1510(this.CurrentWeightData));
- break;
- case 17:
- this.TransferSerialCOM3(this.Transfer_17_OPT3(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 18:
- this.TransferSerialCOM3(this.Transfer_18_HP200(this.CurrentWeightData, 1));
- this.TransferSerialCOM3(this.Transfer_18_HP200(this.CurrentWeightData, 2));
- break;
- case 19:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- this.TransferSerialCOM3(this.Transfer_19_SmartJet(this.CurrentWeightData));
- break;
- case 20:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- {
- this.TransferSerialCOM3(this.RoomChange9410(2)); // 2번방 변경
- Thread.Sleep(200);
- this.TransferSerialCOM3(this.SendChar(Define.E_CharValue.ACK)); // ACK
- Thread.Sleep(200);
- this.TransferSerialCOM3(this.WeightData9410_OPT3(this.CurrentWeightData)); // 중량값 전송
- }
- else
- {
- this.TransferSerialCOM3(this.RoomChange9410(1)); // 1번방 변경
- Thread.Sleep(200);
- this.TransferSerialCOM3(this.SendChar(Define.E_CharValue.ACK)); // ACK
- }
- break;
- case (int)Define.E_CommMode.f22_Modbus: // Modbus RTU(Master 사용 시 - Write multiple register)
- if (this.SystemConfig2.ModbusRTUSelectFunction == (int)Define.E_ModbusFunction._16_WriteMultipleRegister)
- {
- byte[] sendData = this.Modbus.MakeRTUSendAllData(this.Transfer_22_Modbus_Write(), this.SystemConfig2.ModbusSlaveIDCOM3, this.SystemConfig2.ModbusRTUStartAddressCOM3);
-
- this.TransferSerialCOM3(sendData);
- }
- break;
- case (int)Define.E_CommMode.f23_STD2:
- this.TransferSerialCOM3(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
- break;
- case (int)Define.E_CommMode.f24_MULTi_JET:
- this.TransferSerialCOM3(this.Transfer_24_MULTi_JET(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f26_LINX8830:
- this.TransferSerialCOM3(this.Transfer_26_LINX8830(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f27_MYJET:
- this.TransferSerialCOM3(this.Transfer_27_MYJET(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f28_OPT4: // Tasco(타스코) PC 전송
- this.TransferSerialCOM3(this.Transfer_28_OPT4(false, this.CurrentWeightData));
- break;
- default:
- break;
- }
- #endregion
- }
- // 통신 COM4
- if (this.SystemConfig1.SerialCOM4Mode != 0)
- {
- #region COM4
- switch (this.SystemConfig1.SerialCOM4Mode)
- {
- case 1:
- this.TransferSerialCOM4(this.Transfer_1_STD1(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 2:
- this.TransferSerialCOM4(this.Transfer_2_Remote(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 3:
- if (this.SystemConfig1.IsPrintPerProductEnable == true)
- this.TransferSerialCOM4(this.Transfer_3_Print(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 4:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- {
- this.TransferSerialCOM4(this.RoomChange9410(2)); // 2번방 변경
- Thread.Sleep(200);
- this.TransferSerialCOM4(this.SendChar(Define.E_CharValue.ACK)); // ACK
- Thread.Sleep(200);
- this.TransferSerialCOM4(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
- }
- else
- {
- this.TransferSerialCOM4(this.RoomChange9410(1)); // 1번방 변경
- Thread.Sleep(200);
- this.TransferSerialCOM4(this.SendChar(Define.E_CharValue.ACK)); // ACK
- }
- break;
- case 5:
- this.HMCOM4_Step = 1;
- this.TransferSerialCOM4(this.SendChar(Define.E_CharValue.ENQ));
- break;
- case 6:
- this.TransferSerialCOM4(this.Transfer_6_OPT0(this.CurrentWeightData));
- break;
- case 7:
- this.TransferSerialCOM4(this.Transfer_7_imaje9410OPT2(this.CurrentWeightData));
- break;
- case 8:
- this.TransferSerialCOM4(this.Transfer_8_imaje9028OPT2(this.CurrentWeightData));
- break;
- case 9:
- this.TransferSerialCOM4(this.Transfer_9_Hitachi(this.CurrentWeightData, Define.E_SerialCOM.COM4));
- break;
- case 10:
- this.TransferSerialCOM4(this.Transfer_10_MACSA(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 11:
- this.TransferSerialCOM4(this.Transfer_11_Markoprint(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 12:
- this.TransferSerialCOM4(this.Transfer_12_alphaJET(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 13:
- this.TransferSerialCOM4(this.Transfer_13_Marking_VJ1510(this.CurrentWeightData));
- break;
- case 17:
- this.TransferSerialCOM4(this.Transfer_17_OPT3(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 18:
- this.TransferSerialCOM4(this.Transfer_18_HP200(this.CurrentWeightData, 1));
- this.TransferSerialCOM4(this.Transfer_18_HP200(this.CurrentWeightData, 2));
- break;
- case 19:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- this.TransferSerialCOM4(this.Transfer_19_SmartJet(this.CurrentWeightData));
- break;
- case 20:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- {
- this.TransferSerialCOM4(this.RoomChange9410(2)); // 2번방 변경
- Thread.Sleep(200);
- this.TransferSerialCOM4(this.SendChar(Define.E_CharValue.ACK)); // ACK
- Thread.Sleep(200);
- this.TransferSerialCOM4(this.WeightData9410_OPT3(this.CurrentWeightData)); // 중량값 전송
- }
- else
- {
- this.TransferSerialCOM4(this.RoomChange9410(1)); // 1번방 변경
- Thread.Sleep(200);
- this.TransferSerialCOM4(this.SendChar(Define.E_CharValue.ACK)); // ACK
- }
- break;
- case (int)Define.E_CommMode.f22_Modbus: // Modbus RTU(Master 사용 시 - Write multiple register)
- if (this.SystemConfig2.ModbusRTUSelectFunction == (int)Define.E_ModbusFunction._16_WriteMultipleRegister)
- {
- byte[] sendData = this.Modbus.MakeRTUSendAllData(this.Transfer_22_Modbus_Write(), this.SystemConfig2.ModbusSlaveIDCOM4, this.SystemConfig2.ModbusRTUStartAddressCOM4);
-
- this.TransferSerialCOM4(sendData);
- }
- break;
- case (int)Define.E_CommMode.f23_STD2:
- this.TransferSerialCOM4(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
- break;
- case (int)Define.E_CommMode.f24_MULTi_JET:
- this.TransferSerialCOM4(this.Transfer_24_MULTi_JET(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f26_LINX8830:
- this.TransferSerialCOM4(this.Transfer_26_LINX8830(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f27_MYJET:
- this.TransferSerialCOM4(this.Transfer_27_MYJET(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f28_OPT4: // Tasco(타스코) PC 전송
- this.TransferSerialCOM4(this.Transfer_28_OPT4(false, this.CurrentWeightData));
- break;
- default:
- break;
- }
- #endregion
- }
-
- // 이더넷
- switch (this.SystemConfig2.EthernetOperationMode)
- {
- case 1:
- if (this.smartTCPMultiServer.ClientInfoList != null)
+ #region COM1
+ switch (this.SystemConfig1.SerialCOM1Mode)
{
+ case 1:
+ this.TransferSerialCOM1(this.Transfer_1_STD1(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 2:
+ this.TransferSerialCOM1(this.Transfer_2_Remote(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 3:
+ if (this.SystemConfig1.IsPrintPerProductEnable == true)
+ this.TransferSerialCOM1(this.Transfer_3_Print(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 4:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ {
+ this.TransferSerialCOM1(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM1(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ Thread.Sleep(200);
+ this.TransferSerialCOM1(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
+ }
+ else
+ {
+ this.TransferSerialCOM1(this.RoomChange9410(1)); // 1번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM1(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ }
+ break;
+ case 5:
+ this.HMCOM1_Step = 1;
+ this.TransferSerialCOM1(this.SendChar(Define.E_CharValue.ENQ));
+ break;
+ case 6:
+ this.TransferSerialCOM1(this.Transfer_6_OPT0(this.CurrentWeightData));
+ break;
+ case 7:
+ this.TransferSerialCOM1(this.Transfer_7_imaje9410OPT2(this.CurrentWeightData));
+ break;
+ case 8:
+ this.TransferSerialCOM1(this.Transfer_8_imaje9028OPT2(this.CurrentWeightData));
+ break;
+ case 9:
+ this.TransferSerialCOM1(this.Transfer_9_Hitachi(this.CurrentWeightData, Define.E_SerialCOM.COM1));
+ break;
+ case 10:
+ this.TransferSerialCOM1(this.Transfer_10_MACSA(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 11:
+ this.TransferSerialCOM1(this.Transfer_11_Markoprint(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 12:
+ this.TransferSerialCOM1(this.Transfer_12_alphaJET(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 13:
+ this.TransferSerialCOM1(this.Transfer_13_Marking_VJ1510(this.CurrentWeightData));
+ break;
+ case 17:
+ this.TransferSerialCOM1(this.Transfer_17_OPT3(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 18:
+ this.TransferSerialCOM1(this.Transfer_18_HP200(this.CurrentWeightData, 1));
+ this.TransferSerialCOM1(this.Transfer_18_HP200(this.CurrentWeightData, 2));
+ break;
+ case 19:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ this.TransferSerialCOM1(this.Transfer_19_SmartJet(this.CurrentWeightData));
+ break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ {
+ this.TransferSerialCOM1(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM1(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ Thread.Sleep(200);
+ this.TransferSerialCOM1(this.WeightData9410_OPT3(this.CurrentWeightData)); // 중량값 전송
+ }
+ else
+ {
+ this.TransferSerialCOM1(this.RoomChange9410(1)); // 1번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM1(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)Define.E_CommMode.f22_Modbus: // Modbus RTU(Master 사용 시 - Write multiple register)
+ if (this.SystemConfig2.ModbusRTUSelectFunction == (int)Define.E_ModbusFunction._16_WriteMultipleRegister)
+ {
+ byte[] sendData = this.Modbus.MakeRTUSendAllData(this.Transfer_22_Modbus_Write(), this.SystemConfig2.ModbusSlaveIDCOM1, this.SystemConfig2.ModbusRTUStartAddressCOM1);
+
+ this.TransferSerialCOM1(sendData);
+ }
+ break;
+ case (int)Define.E_CommMode.f23_STD2:
+ this.TransferSerialCOM1(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case (int)Define.E_CommMode.f24_MULTi_JET:
+ this.TransferSerialCOM1(this.Transfer_24_MULTi_JET(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f26_LINX8830:
+ this.TransferSerialCOM1(this.Transfer_26_LINX8830(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f27_MYJET:
+ this.TransferSerialCOM1(this.Transfer_27_MYJET(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f28_OPT4: // Tasco(타스코) PC 전송
+ this.TransferSerialCOM1(this.Transfer_28_OPT4(false, this.CurrentWeightData));
+ break;
+ default:
+ break;
+ }
+ #endregion
+ }
+ // 통신 COM3
+ if (this.SystemConfig1.SerialCOM3Mode != 0)
+ {
+ #region COM3
+ switch (this.SystemConfig1.SerialCOM3Mode)
+ {
+ case 1:
+ this.TransferSerialCOM3(this.Transfer_1_STD1(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 2:
+ this.TransferSerialCOM3(this.Transfer_2_Remote(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 3:
+ if (this.SystemConfig1.IsPrintPerProductEnable == true)
+ this.TransferSerialCOM3(this.Transfer_3_Print(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 4:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ {
+ this.TransferSerialCOM3(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM3(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ Thread.Sleep(200);
+ this.TransferSerialCOM3(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
+ }
+ else
+ {
+ this.TransferSerialCOM3(this.RoomChange9410(1)); // 1번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM3(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ }
+ break;
+ case 5:
+ this.HMCOM3_Step = 1;
+ this.TransferSerialCOM3(this.SendChar(Define.E_CharValue.ENQ));
+ break;
+ case 6:
+ this.TransferSerialCOM3(this.Transfer_6_OPT0(this.CurrentWeightData));
+ break;
+ case 7:
+ this.TransferSerialCOM3(this.Transfer_7_imaje9410OPT2(this.CurrentWeightData));
+ break;
+ case 8:
+ this.TransferSerialCOM3(this.Transfer_8_imaje9028OPT2(this.CurrentWeightData));
+ break;
+ case 9:
+ this.TransferSerialCOM3(this.Transfer_9_Hitachi(this.CurrentWeightData, Define.E_SerialCOM.COM3));
+ break;
+ case 10:
+ this.TransferSerialCOM3(this.Transfer_10_MACSA(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 11:
+ this.TransferSerialCOM3(this.Transfer_11_Markoprint(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 12:
+ this.TransferSerialCOM3(this.Transfer_12_alphaJET(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 13:
+ this.TransferSerialCOM3(this.Transfer_13_Marking_VJ1510(this.CurrentWeightData));
+ break;
+ case 17:
+ this.TransferSerialCOM3(this.Transfer_17_OPT3(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 18:
+ this.TransferSerialCOM3(this.Transfer_18_HP200(this.CurrentWeightData, 1));
+ this.TransferSerialCOM3(this.Transfer_18_HP200(this.CurrentWeightData, 2));
+ break;
+ case 19:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ this.TransferSerialCOM3(this.Transfer_19_SmartJet(this.CurrentWeightData));
+ break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ {
+ this.TransferSerialCOM3(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM3(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ Thread.Sleep(200);
+ this.TransferSerialCOM3(this.WeightData9410_OPT3(this.CurrentWeightData)); // 중량값 전송
+ }
+ else
+ {
+ this.TransferSerialCOM3(this.RoomChange9410(1)); // 1번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM3(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)Define.E_CommMode.f22_Modbus: // Modbus RTU(Master 사용 시 - Write multiple register)
+ if (this.SystemConfig2.ModbusRTUSelectFunction == (int)Define.E_ModbusFunction._16_WriteMultipleRegister)
+ {
+ byte[] sendData = this.Modbus.MakeRTUSendAllData(this.Transfer_22_Modbus_Write(), this.SystemConfig2.ModbusSlaveIDCOM3, this.SystemConfig2.ModbusRTUStartAddressCOM3);
+
+ this.TransferSerialCOM3(sendData);
+ }
+ break;
+ case (int)Define.E_CommMode.f23_STD2:
+ this.TransferSerialCOM3(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case (int)Define.E_CommMode.f24_MULTi_JET:
+ this.TransferSerialCOM3(this.Transfer_24_MULTi_JET(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f26_LINX8830:
+ this.TransferSerialCOM3(this.Transfer_26_LINX8830(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f27_MYJET:
+ this.TransferSerialCOM3(this.Transfer_27_MYJET(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f28_OPT4: // Tasco(타스코) PC 전송
+ this.TransferSerialCOM3(this.Transfer_28_OPT4(false, this.CurrentWeightData));
+ break;
+ default:
+ break;
+ }
+ #endregion
+ }
+ // 통신 COM4
+ if (this.SystemConfig1.SerialCOM4Mode != 0)
+ {
+ #region COM4
+ switch (this.SystemConfig1.SerialCOM4Mode)
+ {
+ case 1:
+ this.TransferSerialCOM4(this.Transfer_1_STD1(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 2:
+ this.TransferSerialCOM4(this.Transfer_2_Remote(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 3:
+ if (this.SystemConfig1.IsPrintPerProductEnable == true)
+ this.TransferSerialCOM4(this.Transfer_3_Print(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 4:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ {
+ this.TransferSerialCOM4(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM4(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ Thread.Sleep(200);
+ this.TransferSerialCOM4(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
+ }
+ else
+ {
+ this.TransferSerialCOM4(this.RoomChange9410(1)); // 1번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM4(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ }
+ break;
+ case 5:
+ this.HMCOM4_Step = 1;
+ this.TransferSerialCOM4(this.SendChar(Define.E_CharValue.ENQ));
+ break;
+ case 6:
+ this.TransferSerialCOM4(this.Transfer_6_OPT0(this.CurrentWeightData));
+ break;
+ case 7:
+ this.TransferSerialCOM4(this.Transfer_7_imaje9410OPT2(this.CurrentWeightData));
+ break;
+ case 8:
+ this.TransferSerialCOM4(this.Transfer_8_imaje9028OPT2(this.CurrentWeightData));
+ break;
+ case 9:
+ this.TransferSerialCOM4(this.Transfer_9_Hitachi(this.CurrentWeightData, Define.E_SerialCOM.COM4));
+ break;
+ case 10:
+ this.TransferSerialCOM4(this.Transfer_10_MACSA(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 11:
+ this.TransferSerialCOM4(this.Transfer_11_Markoprint(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 12:
+ this.TransferSerialCOM4(this.Transfer_12_alphaJET(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 13:
+ this.TransferSerialCOM4(this.Transfer_13_Marking_VJ1510(this.CurrentWeightData));
+ break;
+ case 17:
+ this.TransferSerialCOM4(this.Transfer_17_OPT3(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 18:
+ this.TransferSerialCOM4(this.Transfer_18_HP200(this.CurrentWeightData, 1));
+ this.TransferSerialCOM4(this.Transfer_18_HP200(this.CurrentWeightData, 2));
+ break;
+ case 19:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ this.TransferSerialCOM4(this.Transfer_19_SmartJet(this.CurrentWeightData));
+ break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ {
+ this.TransferSerialCOM4(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM4(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ Thread.Sleep(200);
+ this.TransferSerialCOM4(this.WeightData9410_OPT3(this.CurrentWeightData)); // 중량값 전송
+ }
+ else
+ {
+ this.TransferSerialCOM4(this.RoomChange9410(1)); // 1번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM4(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)Define.E_CommMode.f22_Modbus: // Modbus RTU(Master 사용 시 - Write multiple register)
+ if (this.SystemConfig2.ModbusRTUSelectFunction == (int)Define.E_ModbusFunction._16_WriteMultipleRegister)
+ {
+ byte[] sendData = this.Modbus.MakeRTUSendAllData(this.Transfer_22_Modbus_Write(), this.SystemConfig2.ModbusSlaveIDCOM4, this.SystemConfig2.ModbusRTUStartAddressCOM4);
+
+ this.TransferSerialCOM4(sendData);
+ }
+ break;
+ case (int)Define.E_CommMode.f23_STD2:
+ this.TransferSerialCOM4(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case (int)Define.E_CommMode.f24_MULTi_JET:
+ this.TransferSerialCOM4(this.Transfer_24_MULTi_JET(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f26_LINX8830:
+ this.TransferSerialCOM4(this.Transfer_26_LINX8830(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f27_MYJET:
+ this.TransferSerialCOM4(this.Transfer_27_MYJET(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f28_OPT4: // Tasco(타스코) PC 전송
+ this.TransferSerialCOM4(this.Transfer_28_OPT4(false, this.CurrentWeightData));
+ break;
+ default:
+ break;
+ }
+ #endregion
+ }
+
+ // 이더넷
+ switch (this.SystemConfig2.EthernetOperationMode)
+ {
+ case 1:
+ if (this.smartTCPMultiServer.ClientInfoList != null)
+ {
+ if (this.SystemConfig2.EthernetCommMode != 0)
+ {
+ foreach (SmartTCPMultiServer.CLIENTSINFOS client in this.smartTCPMultiServer.ClientInfoList)
+ {
+ #region Server
+ switch (this.SystemConfig2.EthernetCommMode)
+ {
+ case 1:
+ this.EthernetServerSendMessage(client,
+ this.Transfer_1_STD1(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 2:
+ this.EthernetServerSendMessage(client, this.Transfer_2_Remote(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 3:
+ if (this.SystemConfig1.IsPrintPerProductEnable == true)
+ this.EthernetServerSendMessage(client, this.Transfer_3_Print(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 4:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ {
+ this.EthernetServerSendMessage(client, this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.EthernetServerSendMessage(client, this.SendChar(Define.E_CharValue.ACK)); // ACK
+ Thread.Sleep(200);
+ this.EthernetServerSendMessage(client, this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
+ }
+ else
+ {
+ this.EthernetServerSendMessage(client, this.RoomChange9410(1)); // 1번방 변경
+ Thread.Sleep(200);
+ this.EthernetServerSendMessage(client, this.SendChar(Define.E_CharValue.ACK)); // ACK
+ }
+ break;
+ case 5:
+ this.HMCOM1_Step = 1;
+ this.EthernetServerSendMessage(client, this.SendChar(Define.E_CharValue.ENQ));
+ break;
+ case 6:
+ this.EthernetServerSendMessage(client, this.Transfer_6_OPT0(this.CurrentWeightData));
+ break;
+ case 7:
+ this.EthernetServerSendMessage(client, this.Transfer_7_imaje9410OPT2(this.CurrentWeightData));
+ break;
+ case 8:
+ this.EthernetServerSendMessage(client, this.Transfer_8_imaje9028OPT2(this.CurrentWeightData));
+ break;
+ case 9:
+ this.EthernetServerSendMessage(client, this.Transfer_9_Hitachi(this.CurrentWeightData, Define.E_SerialCOM.COM1));
+ break;
+ case 10:
+ this.EthernetServerSendMessage(client, this.Transfer_10_MACSA(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 11:
+ this.EthernetServerSendMessage(client, this.Transfer_11_Markoprint(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 12:
+ this.EthernetServerSendMessage(client, this.Transfer_12_alphaJET(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 13:
+ this.EthernetServerSendMessage(client, this.Transfer_13_Marking_VJ1510(this.CurrentWeightData));
+ break;
+ case 17:
+ this.EthernetServerSendMessage(client, this.Transfer_17_OPT3(this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case 18:
+ this.EthernetServerSendMessage(client, this.Transfer_18_HP200(this.CurrentWeightData, 1));
+ this.EthernetServerSendMessage(client, this.Transfer_18_HP200(this.CurrentWeightData, 2));
+ break;
+ case 19:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ this.EthernetServerSendMessage(client, this.Transfer_19_SmartJet(this.CurrentWeightData));
+ break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ {
+ this.EthernetServerSendMessage(client, this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.EthernetServerSendMessage(client, this.SendChar(Define.E_CharValue.ACK)); // ACK
+ Thread.Sleep(200);
+ this.EthernetServerSendMessage(client, this.WeightData9410_OPT3(this.CurrentWeightData)); // 중량값 전송
+ }
+ else
+ {
+ this.EthernetServerSendMessage(client, this.RoomChange9410(1)); // 1번방 변경
+ Thread.Sleep(200);
+ this.EthernetServerSendMessage(client, this.SendChar(Define.E_CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)Define.E_CommMode.f22_Modbus: // 22, Modbus TCP
+ if (this.SystemConfig2.ModbusTCPSelectFunction == (int)Define.E_ModbusFunction._16_WriteMultipleRegister)
+ {
+ byte[] sendData = this.Modbus.MakeTCPSendAllData(this.Transfer_22_Modbus_Write(), this.SystemConfig2.ModbusTCPStartAddress);
+
+ this.EthernetServerSendMessage(client, sendData);
+ }
+ break;
+ case (int)Define.E_CommMode.f23_STD2:
+ this.EthernetServerSendMessage(client,
+ this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
+ case (int)Define.E_CommMode.f24_MULTi_JET:
+ this.EthernetServerSendMessage(client, this.Transfer_24_MULTi_JET(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f26_LINX8830:
+ this.EthernetServerSendMessage(client, this.Transfer_26_LINX8830(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f27_MYJET:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ this.EthernetServerSendMessage(client, this.Transfer_27_MYJET(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f28_OPT4: // Tasco(타스코) PC 전송
+ this.EthernetServerSendMessage(client, this.Transfer_28_OPT4(false, this.CurrentWeightData));
+ break;
+ default:
+ break;
+ }
+ #endregion
+ }
+ }
+ }
+ break;
+ case 2:
if (this.SystemConfig2.EthernetCommMode != 0)
{
- foreach (SmartTCPMultiServer.CLIENTSINFOS client in this.smartTCPMultiServer.ClientInfoList)
+ #region Client
+ switch (this.SystemConfig2.EthernetCommMode)
{
- #region Server
- switch (this.SystemConfig2.EthernetCommMode)
- {
- case 1:
- this.EthernetServerSendMessage(client,
- this.Transfer_1_STD1(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 2:
- this.EthernetServerSendMessage(client, this.Transfer_2_Remote(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 3:
- if (this.SystemConfig1.IsPrintPerProductEnable == true)
- this.EthernetServerSendMessage(client, this.Transfer_3_Print(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 4:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- {
- this.EthernetServerSendMessage(client, this.RoomChange9410(2)); // 2번방 변경
- Thread.Sleep(200);
- this.EthernetServerSendMessage(client, this.SendChar(Define.E_CharValue.ACK)); // ACK
- Thread.Sleep(200);
- this.EthernetServerSendMessage(client, this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
- }
- else
- {
- this.EthernetServerSendMessage(client, this.RoomChange9410(1)); // 1번방 변경
- Thread.Sleep(200);
- this.EthernetServerSendMessage(client, this.SendChar(Define.E_CharValue.ACK)); // ACK
- }
- break;
- case 5:
- this.HMCOM1_Step = 1;
- this.EthernetServerSendMessage(client, this.SendChar(Define.E_CharValue.ENQ));
- break;
- case 6:
- this.EthernetServerSendMessage(client, this.Transfer_6_OPT0(this.CurrentWeightData));
- break;
- case 7:
- this.EthernetServerSendMessage(client, this.Transfer_7_imaje9410OPT2(this.CurrentWeightData));
- break;
- case 8:
- this.EthernetServerSendMessage(client, this.Transfer_8_imaje9028OPT2(this.CurrentWeightData));
- break;
- case 9:
- this.EthernetServerSendMessage(client, this.Transfer_9_Hitachi(this.CurrentWeightData, Define.E_SerialCOM.COM1));
- break;
- case 10:
- this.EthernetServerSendMessage(client, this.Transfer_10_MACSA(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 11:
- this.EthernetServerSendMessage(client, this.Transfer_11_Markoprint(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 12:
- this.EthernetServerSendMessage(client, this.Transfer_12_alphaJET(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 13:
- this.EthernetServerSendMessage(client, this.Transfer_13_Marking_VJ1510(this.CurrentWeightData));
- break;
- case 17:
- this.EthernetServerSendMessage(client, this.Transfer_17_OPT3(this.CurrentWeightData, this.CurrentProductItem));
- break;
- case 18:
- this.EthernetServerSendMessage(client, this.Transfer_18_HP200(this.CurrentWeightData, 1));
- this.EthernetServerSendMessage(client, this.Transfer_18_HP200(this.CurrentWeightData, 2));
- break;
- case 19:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- this.EthernetServerSendMessage(client, this.Transfer_19_SmartJet(this.CurrentWeightData));
- break;
- case 20:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- {
- this.EthernetServerSendMessage(client, this.RoomChange9410(2)); // 2번방 변경
- Thread.Sleep(200);
- this.EthernetServerSendMessage(client, this.SendChar(Define.E_CharValue.ACK)); // ACK
- Thread.Sleep(200);
- this.EthernetServerSendMessage(client, this.WeightData9410_OPT3(this.CurrentWeightData)); // 중량값 전송
- }
- else
- {
- this.EthernetServerSendMessage(client, this.RoomChange9410(1)); // 1번방 변경
- Thread.Sleep(200);
- this.EthernetServerSendMessage(client, this.SendChar(Define.E_CharValue.ACK)); // ACK
- }
- break;
- case (int)Define.E_CommMode.f22_Modbus: // 22, Modbus TCP
- if (this.SystemConfig2.ModbusTCPSelectFunction == (int)Define.E_ModbusFunction._16_WriteMultipleRegister)
- {
- byte[] sendData = this.Modbus.MakeTCPSendAllData(this.Transfer_22_Modbus_Write(), this.SystemConfig2.ModbusTCPStartAddress);
-
- this.EthernetServerSendMessage(client, sendData);
- }
- break;
- case (int)Define.E_CommMode.f23_STD2:
- this.EthernetServerSendMessage(client,
- this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
- break;
- case (int)Define.E_CommMode.f24_MULTi_JET:
- this.EthernetServerSendMessage(client, this.Transfer_24_MULTi_JET(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f26_LINX8830:
- this.EthernetServerSendMessage(client, this.Transfer_26_LINX8830(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f27_MYJET:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- this.EthernetServerSendMessage(client, this.Transfer_27_MYJET(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f28_OPT4: // Tasco(타스코) PC 전송
- this.EthernetServerSendMessage(client, this.Transfer_28_OPT4(false, this.CurrentWeightData));
- break;
- default:
- break;
- }
- #endregion
- }
- }
- }
- break;
- case 2:
- if (this.SystemConfig2.EthernetCommMode != 0)
- {
- #region Client
- switch (this.SystemConfig2.EthernetCommMode)
- {
- case 1:
- this.ClientSendDataString = this.Transfer_1_STD1(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem);
- this.EthernetWeightData(this.ClientSendDataString);
- break;
- case 2:
- this.ClientSendDataString = this.Transfer_2_Remote(this.CurrentWeightData, this.CurrentProductItem);
- this.EthernetWeightData(this.ClientSendDataString);
- break;
- case 3:
- if (this.SystemConfig1.IsPrintPerProductEnable == true)
- {
- this.ClientSendDataString = this.Transfer_3_Print(this.CurrentWeightData, this.CurrentProductItem);
+ case 1:
+ this.ClientSendDataString = this.Transfer_1_STD1(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem);
this.EthernetWeightData(this.ClientSendDataString);
- }
- break;
- case 4:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- {
- this.EthernetWeightData(this.RoomChange9410(2)); // 2번방 변경
- Thread.Sleep(200);
- this.EthernetWeightData(this.SendChar(Define.E_CharValue.ACK)); // ACK
- Thread.Sleep(200);
- this.EthernetWeightData(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
- }
- else
- {
- this.EthernetWeightData(this.RoomChange9410(1)); // 1번방 변경
- Thread.Sleep(200);
- this.EthernetWeightData(this.SendChar(Define.E_CharValue.ACK)); // ACK
- }
- break;
- case 5:
- this.HMCOM1_Step = 1;
- this.ClientSendDataString = this.SendChar(Define.E_CharValue.ENQ);
- this.EthernetWeightData(this.ClientSendDataString);
- break;
- case 6:
- this.ClientSendDataString = this.Transfer_6_OPT0(this.CurrentWeightData);
- this.EthernetWeightData(this.ClientSendDataString);
- break;
- case 7:
- this.ClientSendDatabyteArray = this.Transfer_7_imaje9410OPT2(this.CurrentWeightData);
- this.EthernetWeightData(this.ClientSendDatabyteArray);
- break;
- case 8:
- this.ClientSendDatabyteArray = this.Transfer_8_imaje9028OPT2(this.CurrentWeightData);
- this.EthernetWeightData(this.ClientSendDatabyteArray);
- break;
- case 9:
- this.ClientSendDataString = this.Transfer_9_Hitachi(this.CurrentWeightData, Define.E_SerialCOM.COM1);
- this.EthernetWeightData(this.ClientSendDataString);
- break;
- case 10:
- this.ClientSendDatabyteArray = this.Transfer_10_MACSA(this.CurrentWeightData, this.CurrentProductItem);
- this.EthernetWeightData(this.ClientSendDatabyteArray);
- break;
- case 11:
- this.ClientSendDatabyteArray = this.Transfer_11_Markoprint(this.CurrentWeightData, this.CurrentProductItem);
- this.EthernetWeightData(this.ClientSendDatabyteArray);
- break;
- case 12:
- this.ClientSendDatabyteArray = this.Transfer_12_alphaJET(this.CurrentWeightData, this.CurrentProductItem);
- this.EthernetWeightData(this.ClientSendDatabyteArray);
- break;
- case 13:
- this.ClientSendDataString = this.Transfer_13_Marking_VJ1510(this.CurrentWeightData);
- this.EthernetWeightData(this.ClientSendDataString);
- break;
- case 17:
- this.ClientSendDataString = this.Transfer_17_OPT3(this.CurrentWeightData, this.CurrentProductItem);
- this.EthernetWeightData(this.ClientSendDataString);
- break;
- case 18:
- this.EthernetWeightData(this.Transfer_18_HP200(this.CurrentWeightData, 1));
- this.EthernetWeightData(this.Transfer_18_HP200(this.CurrentWeightData, 2));
- break;
- case 19:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- {
- this.ClientSendDataString = this.Transfer_19_SmartJet(this.CurrentWeightData);
+ break;
+ case 2:
+ this.ClientSendDataString = this.Transfer_2_Remote(this.CurrentWeightData, this.CurrentProductItem);
this.EthernetWeightData(this.ClientSendDataString);
- }
- break;
- case 20:
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- {
- this.EthernetWeightData(this.RoomChange9410(2)); // 2번방 변경
- Thread.Sleep(200);
- this.EthernetWeightData(this.SendChar(Define.E_CharValue.ACK)); // ACK
- Thread.Sleep(200);
- this.EthernetWeightData(this.WeightData9410_OPT3(this.CurrentWeightData)); // 중량값 전송
- }
- else
- {
- this.EthernetWeightData(this.RoomChange9410(1)); // 1번방 변경
- Thread.Sleep(200);
- this.EthernetWeightData(this.SendChar(Define.E_CharValue.ACK)); // ACK
- }
- break;
- case (int)Define.E_CommMode.f22_Modbus: // 22, Modbus TCP
- if (this.SystemConfig2.ModbusTCPSelectFunction == (int)Define.E_ModbusFunction._16_WriteMultipleRegister)
- {
- this.ClientSendDatabyteArray = this.Modbus.MakeTCPSendAllData(this.Transfer_22_Modbus_Write(), this.SystemConfig2.ModbusTCPStartAddress);
+ break;
+ case 3:
+ if (this.SystemConfig1.IsPrintPerProductEnable == true)
+ {
+ this.ClientSendDataString = this.Transfer_3_Print(this.CurrentWeightData, this.CurrentProductItem);
+ this.EthernetWeightData(this.ClientSendDataString);
+ }
+ break;
+ case 4:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ {
+ this.EthernetWeightData(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.EthernetWeightData(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ Thread.Sleep(200);
+ this.EthernetWeightData(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
+ }
+ else
+ {
+ this.EthernetWeightData(this.RoomChange9410(1)); // 1번방 변경
+ Thread.Sleep(200);
+ this.EthernetWeightData(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ }
+ break;
+ case 5:
+ this.HMCOM1_Step = 1;
+ this.ClientSendDataString = this.SendChar(Define.E_CharValue.ENQ);
+ this.EthernetWeightData(this.ClientSendDataString);
+ break;
+ case 6:
+ this.ClientSendDataString = this.Transfer_6_OPT0(this.CurrentWeightData);
+ this.EthernetWeightData(this.ClientSendDataString);
+ break;
+ case 7:
+ this.ClientSendDatabyteArray = this.Transfer_7_imaje9410OPT2(this.CurrentWeightData);
+ this.EthernetWeightData(this.ClientSendDatabyteArray);
+ break;
+ case 8:
+ this.ClientSendDatabyteArray = this.Transfer_8_imaje9028OPT2(this.CurrentWeightData);
+ this.EthernetWeightData(this.ClientSendDatabyteArray);
+ break;
+ case 9:
+ this.ClientSendDataString = this.Transfer_9_Hitachi(this.CurrentWeightData, Define.E_SerialCOM.COM1);
+ this.EthernetWeightData(this.ClientSendDataString);
+ break;
+ case 10:
+ this.ClientSendDatabyteArray = this.Transfer_10_MACSA(this.CurrentWeightData, this.CurrentProductItem);
+ this.EthernetWeightData(this.ClientSendDatabyteArray);
+ break;
+ case 11:
+ this.ClientSendDatabyteArray = this.Transfer_11_Markoprint(this.CurrentWeightData, this.CurrentProductItem);
+ this.EthernetWeightData(this.ClientSendDatabyteArray);
+ break;
+ case 12:
+ this.ClientSendDatabyteArray = this.Transfer_12_alphaJET(this.CurrentWeightData, this.CurrentProductItem);
+ this.EthernetWeightData(this.ClientSendDatabyteArray);
+ break;
+ case 13:
+ this.ClientSendDataString = this.Transfer_13_Marking_VJ1510(this.CurrentWeightData);
+ this.EthernetWeightData(this.ClientSendDataString);
+ break;
+ case 17:
+ this.ClientSendDataString = this.Transfer_17_OPT3(this.CurrentWeightData, this.CurrentProductItem);
+ this.EthernetWeightData(this.ClientSendDataString);
+ break;
+ case 18:
+ this.EthernetWeightData(this.Transfer_18_HP200(this.CurrentWeightData, 1));
+ this.EthernetWeightData(this.Transfer_18_HP200(this.CurrentWeightData, 2));
+ break;
+ case 19:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ {
+ this.ClientSendDataString = this.Transfer_19_SmartJet(this.CurrentWeightData);
+ this.EthernetWeightData(this.ClientSendDataString);
+ }
+ break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ {
+ this.EthernetWeightData(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.EthernetWeightData(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ Thread.Sleep(200);
+ this.EthernetWeightData(this.WeightData9410_OPT3(this.CurrentWeightData)); // 중량값 전송
+ }
+ else
+ {
+ this.EthernetWeightData(this.RoomChange9410(1)); // 1번방 변경
+ Thread.Sleep(200);
+ this.EthernetWeightData(this.SendChar(Define.E_CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)Define.E_CommMode.f22_Modbus: // 22, Modbus TCP
+ if (this.SystemConfig2.ModbusTCPSelectFunction == (int)Define.E_ModbusFunction._16_WriteMultipleRegister)
+ {
+ this.ClientSendDatabyteArray = this.Modbus.MakeTCPSendAllData(this.Transfer_22_Modbus_Write(), this.SystemConfig2.ModbusTCPStartAddress);
- this.EthernetWeightDataForModbus(this.ClientSendDatabyteArray);
- }
- break;
- case (int)Define.E_CommMode.f23_STD2:
- this.ClientSendDataString = this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem);
- this.EthernetWeightData(this.ClientSendDataString);
- break;
- case (int)Define.E_CommMode.f24_MULTi_JET:
+ this.EthernetWeightDataForModbus(this.ClientSendDatabyteArray);
+ }
+ break;
+ case (int)Define.E_CommMode.f23_STD2:
+ this.ClientSendDataString = this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem);
+ this.EthernetWeightData(this.ClientSendDataString);
+ break;
+ case (int)Define.E_CommMode.f24_MULTi_JET:
this.EthernetWeightData(this.Transfer_24_MULTi_JET(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f26_LINX8830:
- this.EthernetWeightData(this.Transfer_26_LINX8830(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f27_MYJET:
- this.EthernetWeightData(this.Transfer_27_MYJET(false, this.CurrentWeightData));
- break;
- case (int)Define.E_CommMode.f28_OPT4: // Tasco(타스코) PC 전송
- this.EthernetWeightData(this.Transfer_28_OPT4(false, this.CurrentWeightData));
- break;
- default:
- break;
- }
- #endregion
- }
- break;
- default:
- break;
- }
- #endregion
-
- #region 카운터출력
-
- #region Counting Output 1
- temp = this.SystemConfig2.CountingOutput1Number;
-
- if (this.SystemConfig2.CountingOutput1Mode != 0 && temp != 0)
- {
- switch (this.SystemConfig2.CountingOutput1Mode)
- {
- case 1: // Pass
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- {
- this.CountingOutput1Count++;
-
- if (this.CountingOutput1Count >= temp)
- {
- this.CountingOutput1Count = 0;
-
- if (this.SystemConfig2.IsCountingOutput1BuzzerOn == true)
- this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
- if (this.SystemConfig2.IsCountingOutput1ConveyorStop == true)
- {
- this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
- // 메시지 23
- this.StartThreadMessage1();
- }
- if (this.SystemConfig2.IsCountingOutput1ExternalOutput == true)
- this.TransferData(CommunicationCommand.CountingOutput1Pulse, CommunicationID.MainBoard);
+ break;
+ case (int)Define.E_CommMode.f26_LINX8830:
+ this.EthernetWeightData(this.Transfer_26_LINX8830(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f27_MYJET:
+ this.EthernetWeightData(this.Transfer_27_MYJET(false, this.CurrentWeightData));
+ break;
+ case (int)Define.E_CommMode.f28_OPT4: // Tasco(타스코) PC 전송
+ this.EthernetWeightData(this.Transfer_28_OPT4(false, this.CurrentWeightData));
+ break;
+ default:
+ break;
}
- }
- else
- {
- if (this.SystemConfig2.IsCountingOutput1Continuous == true)
- this.CountingOutput1Count = 0;
- }
- break;
- case 2: // NG
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Over
- || this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Under)
- {
- this.CountingOutput1Count++;
-
- if (this.CountingOutput1Count >= temp)
- {
- this.CountingOutput1Count = 0;
-
- if (this.SystemConfig2.IsCountingOutput1BuzzerOn == true)
- this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
- if (this.SystemConfig2.IsCountingOutput1ConveyorStop == true)
- {
- this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
- // 메시지 23
- this.StartThreadMessage1();
- }
- if (this.SystemConfig2.IsCountingOutput1ExternalOutput == true)
- this.TransferData(CommunicationCommand.CountingOutput1Pulse, CommunicationID.MainBoard);
- }
- }
- else
- {
- if (this.SystemConfig2.IsCountingOutput1Continuous == true)
- this.CountingOutput1Count = 0;
- }
- break;
- case 3: // Over
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Over)
- {
- this.CountingOutput1Count++;
-
- if (this.CountingOutput1Count >= temp)
- {
- this.CountingOutput1Count = 0;
-
- if (this.SystemConfig2.IsCountingOutput1BuzzerOn == true)
- this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
- if (this.SystemConfig2.IsCountingOutput1ConveyorStop == true)
- {
- this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
- // 메시지 23
- this.StartThreadMessage1();
- }
- if (this.SystemConfig2.IsCountingOutput1ExternalOutput == true)
- this.TransferData(CommunicationCommand.CountingOutput1Pulse, CommunicationID.MainBoard);
- }
- }
- else
- {
- if (this.SystemConfig2.IsCountingOutput1Continuous == true)
- this.CountingOutput1Count = 0;
- }
- break;
- case 4: // Under
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Under)
- {
- this.CountingOutput1Count++;
-
- if (this.CountingOutput1Count >= temp)
- {
- this.CountingOutput1Count = 0;
-
- if (this.SystemConfig2.IsCountingOutput1BuzzerOn == true)
- this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
- if (this.SystemConfig2.IsCountingOutput1ConveyorStop == true)
- {
- this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
- // 메시지 23. 알람 조건이 충족하여 장비가 정지되었습니다
- this.StartThreadMessage1();
- }
- if (this.SystemConfig2.IsCountingOutput1ExternalOutput == true)
- this.TransferData(CommunicationCommand.CountingOutput1Pulse, CommunicationID.MainBoard);
- }
- }
- else
- {
- if (this.SystemConfig2.IsCountingOutput1Continuous == true)
- this.CountingOutput1Count = 0;
+ #endregion
}
break;
default:
break;
}
- }
- #endregion
+ #endregion
- #region Counting Output 2
- temp = this.SystemConfig2.CountingOutput2Number;
+ #region 카운터출력
- if (this.SystemConfig2.CountingOutput2Mode != 0 && temp != 0)
- {
- switch (this.SystemConfig2.CountingOutput2Mode)
+ #region Counting Output 1
+ temp = this.SystemConfig2.CountingOutput1Number;
+
+ if (this.SystemConfig2.CountingOutput1Mode != 0 && temp != 0)
{
- case 1: // Pass
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
- {
- this.CountingOutput2Count++;
-
- if (this.CountingOutput2Count >= temp)
+ switch (this.SystemConfig2.CountingOutput1Mode)
+ {
+ case 1: // Pass
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
{
- this.CountingOutput2Count = 0;
+ this.CountingOutput1Count++;
- if (this.SystemConfig2.IsCountingOutput2BuzzerOn == true)
- this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
- if (this.SystemConfig2.IsCountingOutput2ConveyorStop == true)
+ if (this.CountingOutput1Count >= temp)
{
- this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
- // 메시지 23
- this.StartThreadMessage1();
+ this.CountingOutput1Count = 0;
+
+ if (this.SystemConfig2.IsCountingOutput1BuzzerOn == true)
+ this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
+ if (this.SystemConfig2.IsCountingOutput1ConveyorStop == true)
+ {
+ this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
+ // 메시지 23
+ this.StartThreadMessage1();
+ }
+ if (this.SystemConfig2.IsCountingOutput1ExternalOutput == true)
+ this.TransferData(CommunicationCommand.CountingOutput1Pulse, CommunicationID.MainBoard);
}
- if (this.SystemConfig2.IsCountingOutput2ExternalOutput == true)
- this.TransferData(CommunicationCommand.CountingOutput2Pulse, CommunicationID.MainBoard);
}
+ else
+ {
+ if (this.SystemConfig2.IsCountingOutput1Continuous == true)
+ this.CountingOutput1Count = 0;
+ }
+ break;
+ case 2: // NG
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Over
+ || this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Under)
+ {
+ this.CountingOutput1Count++;
+
+ if (this.CountingOutput1Count >= temp)
+ {
+ this.CountingOutput1Count = 0;
+
+ if (this.SystemConfig2.IsCountingOutput1BuzzerOn == true)
+ this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
+ if (this.SystemConfig2.IsCountingOutput1ConveyorStop == true)
+ {
+ this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
+ // 메시지 23
+ this.StartThreadMessage1();
+ }
+ if (this.SystemConfig2.IsCountingOutput1ExternalOutput == true)
+ this.TransferData(CommunicationCommand.CountingOutput1Pulse, CommunicationID.MainBoard);
+ }
+ }
+ else
+ {
+ if (this.SystemConfig2.IsCountingOutput1Continuous == true)
+ this.CountingOutput1Count = 0;
+ }
+ break;
+ case 3: // Over
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Over)
+ {
+ this.CountingOutput1Count++;
+
+ if (this.CountingOutput1Count >= temp)
+ {
+ this.CountingOutput1Count = 0;
+
+ if (this.SystemConfig2.IsCountingOutput1BuzzerOn == true)
+ this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
+ if (this.SystemConfig2.IsCountingOutput1ConveyorStop == true)
+ {
+ this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
+ // 메시지 23
+ this.StartThreadMessage1();
+ }
+ if (this.SystemConfig2.IsCountingOutput1ExternalOutput == true)
+ this.TransferData(CommunicationCommand.CountingOutput1Pulse, CommunicationID.MainBoard);
+ }
+ }
+ else
+ {
+ if (this.SystemConfig2.IsCountingOutput1Continuous == true)
+ this.CountingOutput1Count = 0;
+ }
+ break;
+ case 4: // Under
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Under)
+ {
+ this.CountingOutput1Count++;
+
+ if (this.CountingOutput1Count >= temp)
+ {
+ this.CountingOutput1Count = 0;
+
+ if (this.SystemConfig2.IsCountingOutput1BuzzerOn == true)
+ this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
+ if (this.SystemConfig2.IsCountingOutput1ConveyorStop == true)
+ {
+ this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
+ // 메시지 23. 알람 조건이 충족하여 장비가 정지되었습니다
+ this.StartThreadMessage1();
+ }
+ if (this.SystemConfig2.IsCountingOutput1ExternalOutput == true)
+ this.TransferData(CommunicationCommand.CountingOutput1Pulse, CommunicationID.MainBoard);
+ }
+ }
+ else
+ {
+ if (this.SystemConfig2.IsCountingOutput1Continuous == true)
+ this.CountingOutput1Count = 0;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ #endregion
+
+ #region Counting Output 2
+ temp = this.SystemConfig2.CountingOutput2Number;
+
+ if (this.SystemConfig2.CountingOutput2Mode != 0 && temp != 0)
+ {
+ switch (this.SystemConfig2.CountingOutput2Mode)
+ {
+ case 1: // Pass
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Pass)
+ {
+ this.CountingOutput2Count++;
+
+ if (this.CountingOutput2Count >= temp)
+ {
+ this.CountingOutput2Count = 0;
+
+ if (this.SystemConfig2.IsCountingOutput2BuzzerOn == true)
+ this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
+ if (this.SystemConfig2.IsCountingOutput2ConveyorStop == true)
+ {
+ this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
+ // 메시지 23
+ this.StartThreadMessage1();
+ }
+ if (this.SystemConfig2.IsCountingOutput2ExternalOutput == true)
+ this.TransferData(CommunicationCommand.CountingOutput2Pulse, CommunicationID.MainBoard);
+ }
+ }
+ else
+ {
+ if (this.SystemConfig2.IsCountingOutput2Continuous == true)
+ this.CountingOutput2Count = 0;
+ }
+ break;
+ case 2: // NG
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Over
+ || this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Under)
+ {
+ this.CountingOutput2Count++;
+
+ if (this.CountingOutput2Count >= temp)
+ {
+ this.CountingOutput2Count = 0;
+
+ if (this.SystemConfig2.IsCountingOutput2BuzzerOn == true)
+ this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
+ if (this.SystemConfig2.IsCountingOutput2ConveyorStop == true)
+ {
+ this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
+ // 메시지 23
+ this.StartThreadMessage1();
+ }
+ if (this.SystemConfig2.IsCountingOutput2ExternalOutput == true)
+ this.TransferData(CommunicationCommand.CountingOutput2Pulse, CommunicationID.MainBoard);
+ }
+ }
+ else
+ {
+ if (this.SystemConfig2.IsCountingOutput2Continuous == true)
+ this.CountingOutput2Count = 0;
+ }
+ break;
+ case 3: // Over
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Over)
+ {
+ this.CountingOutput2Count++;
+
+ if (this.CountingOutput2Count >= temp)
+ {
+ this.CountingOutput2Count = 0;
+
+ if (this.SystemConfig2.IsCountingOutput2BuzzerOn == true)
+ this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
+ if (this.SystemConfig2.IsCountingOutput2ConveyorStop == true)
+ {
+ this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
+ // 메시지 23
+ this.StartThreadMessage1();
+ }
+ if (this.SystemConfig2.IsCountingOutput2ExternalOutput == true)
+ this.TransferData(CommunicationCommand.CountingOutput2Pulse, CommunicationID.MainBoard);
+ }
+ }
+ else
+ {
+ if (this.SystemConfig2.IsCountingOutput2Continuous == true)
+ this.CountingOutput2Count = 0;
+ }
+ break;
+ case 4: // Under
+ if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Under)
+ {
+ this.CountingOutput2Count++;
+
+ if (this.CountingOutput2Count >= temp)
+ {
+ this.CountingOutput2Count = 0;
+
+ if (this.SystemConfig2.IsCountingOutput2BuzzerOn == true)
+ this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
+ if (this.SystemConfig2.IsCountingOutput2ConveyorStop == true)
+ {
+ this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
+ // 메시지 23
+ this.StartThreadMessage1();
+ }
+ if (this.SystemConfig2.IsCountingOutput2ExternalOutput == true)
+ this.TransferData(CommunicationCommand.CountingOutput2Pulse, CommunicationID.MainBoard);
+ }
+ }
+ else
+ {
+ if (this.SystemConfig2.IsCountingOutput2Continuous == true)
+ this.CountingOutput2Count = 0;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ #endregion
+
+ this.ChildFormMainDisplay.MainDisplayWeightBigScreen.UpdateAlarmLabelDisplay(this.CountingOutput1Count, this.CountingOutput2Count);
+ this.ChildFormMainDisplay.MainDisplayWeightSmall.UpdateAlarmLabelDisplay(this.CountingOutput1Count, this.CountingOutput2Count);
+ #endregion
+
+ // CurrentDisplay
+ switch (this.CurrentSystemStatus.CurrentDisplay)
+ {
+ case Define.E_DisplayStore.MainDisplay:
+ #region MainDisplay
+ if (this.SystemConfig1.IsBarcodeEnable == true)
+ {
+ this.CurrentBarcode.BarcodeDequeue();
+
+ if (this.ChildFormMainDisplay != null)
+ this.ChildFormMainDisplay.UpdateBarcodeDisplay(this.CurrentBarcode);
+
+ if (this.CurrentBarcode.GetQueueCount > 0)
+ this.BarcodeProductChange(this.CurrentBarcode);
+
+ if (this.ChildFormMainDisplay != null)
+ this.ChildFormMainDisplay.UpdateCurrentProductDisplay(this.CurrentSystemStatus.Equipment, this.CurrentProductItem, this.CurrentWeightData);
+ }
+
+ if (this.ChildFormMainDisplay != null)
+ this.ChildFormMainDisplay.UpdateStartWeightDisplay(this.CurrentSystemStatus.Equipment, this.CurrentProductItem, this.CurrentWeightData);
+
+ if (this.SystemConfig1.DatabackupFormat == 1)
+ {
+ #region OPT1 - 종근당 옵션
+ if (this.timeOut.Enabled == true)
+ this.timeOut.Enabled = false;
+
+ //if (this.CollectionBufferWeightData.Count != 0)
+ //{
+ // if (this.CurrentJudgmentResult.PreviousRejectData != Define.E_JudgmentResult.None)
+ // this.CollectionBufferWeightData[0].Status = this.CurrentJudgmentResult.PreviousRejectData.ToString();
+ // else
+ // this.CollectionBufferWeightData[0].Status = Define.E_JudgmentResult.OM.ToString();
+ // this.DataBackup1(this.CollectionBufferWeightData[0]);
+ // this.CollectionBufferWeightData.Clear();
+ //}
+
+ this.CollectionBufferWeightData.Add(new DataBackupOPT1());
+ this.CollectionBufferWeightData[this.CollectionBufferWeightData.Count - 1].SetData(
+ this.CurrentProductItem, this.CurrentWeightData, this.SystemConfig1, DateTime.Now);
+
+ if (this.CurrentJudgmentSetItem.Sorter2Mode == 3)
+ this.timeOut.Interval = (this.CurrentJudgmentSetItem.Sorter2DelayTime * 2) + (this.CurrentJudgmentSetItem.Sorter2RunTime * 5) + 1000;
+ else
+ this.timeOut.Interval = (this.CurrentJudgmentSetItem.Sorter1DelayTime * 2) + (this.CurrentJudgmentSetItem.Sorter1RunTime * 5) + 1000;
+ this.timeOut.Enabled = true;
+ #endregion
}
else
{
- if (this.SystemConfig2.IsCountingOutput2Continuous == true)
- this.CountingOutput2Count = 0;
+ #region STD1
+ if (this.CurrentWeightData.JudgmentStatus != Define.E_JudgmentStatus.Empty)
+ this.TrackingInspectionData0(this.CurrentWeightData);
+ #endregion
}
- break;
- case 2: // NG
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Over
- || this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Under)
- {
- this.CountingOutput2Count++;
- if (this.CountingOutput2Count >= temp)
- {
- this.CountingOutput2Count = 0;
-
- if (this.SystemConfig2.IsCountingOutput2BuzzerOn == true)
- this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
- if (this.SystemConfig2.IsCountingOutput2ConveyorStop == true)
- {
- this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
- // 메시지 23
- this.StartThreadMessage1();
- }
- if (this.SystemConfig2.IsCountingOutput2ExternalOutput == true)
- this.TransferData(CommunicationCommand.CountingOutput2Pulse, CommunicationID.MainBoard);
- }
- }
- else
- {
- if (this.SystemConfig2.IsCountingOutput2Continuous == true)
- this.CountingOutput2Count = 0;
- }
- break;
- case 3: // Over
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Over)
- {
- this.CountingOutput2Count++;
-
- if (this.CountingOutput2Count >= temp)
- {
- this.CountingOutput2Count = 0;
-
- if (this.SystemConfig2.IsCountingOutput2BuzzerOn == true)
- this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
- if (this.SystemConfig2.IsCountingOutput2ConveyorStop == true)
- {
- this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
- // 메시지 23
- this.StartThreadMessage1();
- }
- if (this.SystemConfig2.IsCountingOutput2ExternalOutput == true)
- this.TransferData(CommunicationCommand.CountingOutput2Pulse, CommunicationID.MainBoard);
- }
- }
- else
- {
- if (this.SystemConfig2.IsCountingOutput2Continuous == true)
- this.CountingOutput2Count = 0;
- }
- break;
- case 4: // Under
- if (this.CurrentWeightData.JudgmentStatus == Define.E_JudgmentStatus.Under)
- {
- this.CountingOutput2Count++;
-
- if (this.CountingOutput2Count >= temp)
- {
- this.CountingOutput2Count = 0;
-
- if (this.SystemConfig2.IsCountingOutput2BuzzerOn == true)
- this.TransferData(CommunicationCommand.BuzzerOn, CommunicationID.MainBoard);
- if (this.SystemConfig2.IsCountingOutput2ConveyorStop == true)
- {
- this.TransferData(CommunicationCommand.Stop, CommunicationID.MainBoard);
- // 메시지 23
- this.StartThreadMessage1();
- }
- if (this.SystemConfig2.IsCountingOutput2ExternalOutput == true)
- this.TransferData(CommunicationCommand.CountingOutput2Pulse, CommunicationID.MainBoard);
- }
- }
- else
- {
- if (this.SystemConfig2.IsCountingOutput2Continuous == true)
- this.CountingOutput2Count = 0;
- }
+ // 표준분포
+ this.CurrentWeightData.SetNormalDistribution(this.CurrentProductItem.CollectionNormalDistributionRange, this.CurrentWeightData.WeightString);
+ #endregion
break;
default:
break;
}
}
- #endregion
-
- this.ChildFormMainDisplay.MainDisplayWeightBigScreen.UpdateAlarmLabelDisplay(this.CountingOutput1Count, this.CountingOutput2Count);
- this.ChildFormMainDisplay.MainDisplayWeightSmall.UpdateAlarmLabelDisplay(this.CountingOutput1Count, this.CountingOutput2Count);
- #endregion
-
- // CurrentDisplay
- switch (this.CurrentSystemStatus.CurrentDisplay)
- {
- case Define.E_DisplayStore.MainDisplay:
- #region MainDisplay
- if (this.SystemConfig1.IsBarcodeEnable == true)
- {
- this.CurrentBarcode.BarcodeDequeue();
-
- if (this.ChildFormMainDisplay != null)
- this.ChildFormMainDisplay.UpdateBarcodeDisplay(this.CurrentBarcode);
-
- if (this.CurrentBarcode.GetQueueCount > 0)
- this.BarcodeProductChange(this.CurrentBarcode);
-
- if (this.ChildFormMainDisplay != null)
- this.ChildFormMainDisplay.UpdateCurrentProductDisplay(this.CurrentSystemStatus.Equipment, this.CurrentProductItem, this.CurrentWeightData);
- }
-
- if (this.ChildFormMainDisplay != null)
- this.ChildFormMainDisplay.UpdateStartWeightDisplay(this.CurrentSystemStatus.Equipment, this.CurrentProductItem, this.CurrentWeightData);
-
- if (this.SystemConfig1.DatabackupFormat == 1)
- {
- #region OPT1 - 종근당 옵션
- if (this.timeOut.Enabled == true)
- this.timeOut.Enabled = false;
-
- //if (this.CollectionBufferWeightData.Count != 0)
- //{
- // if (this.CurrentJudgmentResult.PreviousRejectData != Define.E_JudgmentResult.None)
- // this.CollectionBufferWeightData[0].Status = this.CurrentJudgmentResult.PreviousRejectData.ToString();
- // else
- // this.CollectionBufferWeightData[0].Status = Define.E_JudgmentResult.OM.ToString();
- // this.DataBackup1(this.CollectionBufferWeightData[0]);
- // this.CollectionBufferWeightData.Clear();
- //}
-
- this.CollectionBufferWeightData.Add(new DataBackupOPT1());
- this.CollectionBufferWeightData[this.CollectionBufferWeightData.Count - 1].SetData(
- this.CurrentProductItem, this.CurrentWeightData, this.SystemConfig1, DateTime.Now);
-
- if (this.CurrentJudgmentSetItem.Sorter2Mode == 3)
- this.timeOut.Interval = (this.CurrentJudgmentSetItem.Sorter2DelayTime * 2) + (this.CurrentJudgmentSetItem.Sorter2RunTime * 5) + 1000;
- else
- this.timeOut.Interval = (this.CurrentJudgmentSetItem.Sorter1DelayTime * 2) + (this.CurrentJudgmentSetItem.Sorter1RunTime * 5) + 1000;
- this.timeOut.Enabled = true;
- #endregion
- }
- else
- {
- #region STD1
- if (this.CurrentWeightData.JudgmentStatus != Define.E_JudgmentStatus.Empty)
- this.TrackingInspectionData0(this.CurrentWeightData);
- #endregion
- }
-
- // 표준분포
- this.CurrentWeightData.SetNormalDistribution(this.CurrentProductItem.CollectionNormalDistributionRange, this.CurrentWeightData.WeightString);
- #endregion
- break;
- default:
- break;
- }
break;
default:
break;
@@ -6238,97 +6362,145 @@ namespace ITC81DB_0H.Forms
#region Serial COM1
public void OpenSerialCOM1()
{
+ int baudrate = 9600;
+
if (this.SystemConfig1.SerialCOM1Mode == 0 || this.SystemConfig1.SerialCOM1Mode == 16)
return;
- if (this.smartSerialPort1.IsOpen == true)
- this.smartSerialPort1.Close();
+ this.CloseSerialCOM1();
switch (this.SystemConfig1.SerialCOM1BaudRate)
{
case 0:
this.smartSerialPort1.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
+ baudrate = 9600;
break;
case 1:
this.smartSerialPort1.Baud_Rate = SmartSerialPort.BAUDRATE._19200bps;
+ baudrate = 19200;
break;
case 2:
this.smartSerialPort1.Baud_Rate = SmartSerialPort.BAUDRATE._38400bps;
+ baudrate = 38400;
break;
case 3:
+ this.smartSerialPort1.Baud_Rate = SmartSerialPort.BAUDRATE._57600bps;
+ baudrate = 57600;
+ break;
+ case 4:
this.smartSerialPort1.Baud_Rate = SmartSerialPort.BAUDRATE._115200bps;
+ baudrate = 115200;
break;
default:
this.smartSerialPort1.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
+ baudrate = 9600;
break;
}
- this.smartSerialPort1.Open();
+ if (this.FlagSerialDll == false)
+ {
+ this.smartSerialPort1.Open();
+ }
+ else
+ {
+ // Port : COM1
+ SerialMgrComm.serialPortOpen("COM1:", baudrate, 0, 0, 8);
+ }
}
public void CloseSerialCOM1()
{
- this.smartSerialPort1.Close();
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort1.Close();
+ else
+ SerialMgrComm.serialPortClose("COM1:");
}
public bool CheckOpenCOM1()
{
- if (this.smartSerialPort1.IsOpen == true)
- return true;
+ if (this.FlagSerialDll == false)
+ {
+ if (this.smartSerialPort1.IsOpen == true)
+ return true;
+ else
+ return false;
+ }
else
- return false;
+ return true;
}
public void TransferDirectSerialCOM1(string strTemp)
{
if (this.SystemConfig1.SerialCOM1Mode == 3 && this.SystemConfig1.StatisticsPrintFormat == 1)
{
byte[] strByte = Encoding.GetEncoding("ks_c_5601-1987").GetBytes(strTemp);
- this.smartSerialPort1.WriteNoneFrame(strByte);
+
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort1.WriteNoneFrame(strByte);
+ else
+ SerialMgrComm.serialPortMessageByte("COM1:", strByte, strByte.Length);
}
else
- this.smartSerialPort1.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
+ {
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort1.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
+ else
+ SerialMgrComm.serialPortMessageRaw("COM1:", strTemp);
+ }
}
public void TransferDirectSerialCOM1(byte[] buffer)
{
- this.smartSerialPort1.WriteNoneFrame(buffer);
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort1.WriteNoneFrame(buffer);
+ else
+ SerialMgrComm.serialPortMessageByte("COM1:", buffer, buffer.Length);
}
public void TransferSerialCOM1(string strTemp)
{
- if (this.smartSerialPort1.IsOpen == true)
+ if (this.SystemConfig1.TransmissionDelayTimeCOM1 == 0)
{
- if (this.SystemConfig1.TransmissionDelayTimeCOM1 == 0)
+ if (this.SystemConfig1.SerialCOM1Mode == 3 && this.SystemConfig1.StatisticsPrintFormat == 1)
{
- if (this.SystemConfig1.SerialCOM1Mode == 3 && this.SystemConfig1.StatisticsPrintFormat == 1)
- {
- byte[] strByte = Encoding.GetEncoding("ks_c_5601-1987").GetBytes(strTemp);
+ byte[] strByte = Encoding.GetEncoding("ks_c_5601-1987").GetBytes(strTemp);
+
+ if (this.FlagSerialDll == false)
this.smartSerialPort1.WriteNoneFrame(strByte);
- }
else
- this.smartSerialPort1.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
+ SerialMgrComm.serialPortMessageByte("COM1:", strByte, strByte.Length);
}
else
{
- this.QueueCOM1.Enqueue(strTemp);
- this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM1);
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort1.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
+ else
+ SerialMgrComm.serialPortMessageRaw("COM1:", strTemp);
}
}
+ else
+ {
+ this.QueueCOM1.Enqueue(strTemp);
+ this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM1);
+ }
}
public void TransferSerialCOM1(byte[] buffer)
{
- if (this.smartSerialPort1.IsOpen == true)
+ if (this.SystemConfig1.TransmissionDelayTimeCOM1 == 0)
{
- if (this.SystemConfig1.TransmissionDelayTimeCOM1 == 0)
+ if (this.FlagSerialDll == false)
this.smartSerialPort1.WriteNoneFrame(buffer);
else
- {
- this.QueueCOM1.Enqueue(buffer);
- this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM1);
- }
+ SerialMgrComm.serialPortMessageByte("COM1:", buffer, buffer.Length);
+ }
+ else
+ {
+ this.QueueCOM1.Enqueue(buffer);
+ this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM1);
}
}
public void ChangeSerialCOM1FrameSeparateType(Define.E_SeparateType type)
{
+ if (this.FlagSerialDll == true)
+ return;
+
// 통신 포트 설정
- if (this.smartSerialPort1.IsOpen == true)
- this.smartSerialPort1.Close();
+ this.CloseSerialCOM1();
if (type == Define.E_SeparateType.ETXONLY)
{
@@ -6363,114 +6535,170 @@ namespace ITC81DB_0H.Forms
#region Serial COM3
public void OpenSerialCOM3()
{
+ int baudrate = 9600;
+
if (this.SystemConfig1.SerialCOM3Mode == 0 || this.SystemConfig1.SerialCOM3Mode == 16)
return;
- if (this.smartSerialPort3.IsOpen == true)
- this.smartSerialPort3.Close();
+ this.CloseSerialCOM3();
switch (this.SystemConfig1.SerialCOM3BaudRate)
{
case 0:
this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
+ baudrate = 9600;
break;
case 1:
this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._19200bps;
+ baudrate = 19200;
break;
case 2:
this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._38400bps;
+ baudrate = 38400;
break;
case 3:
+ this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._57600bps;
+ baudrate = 57600;
+ break;
+ case 4:
this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._115200bps;
+ baudrate = 115200;
break;
default:
this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
+ baudrate = 9600;
break;
}
- this.smartSerialPort3.Open();
+ if (this.FlagSerialDll == false)
+ {
+ this.smartSerialPort3.Open();
+ }
+ else
+ {
+ // Port : COM3
+ SerialMgrComm.serialPortOpen("COM3:", baudrate, 0, 0, 8);
+ }
}
public void CloseSerialCOM3()
{
- this.smartSerialPort3.Close();
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort3.Close();
+ else
+ SerialMgrComm.serialPortClose("COM3:");
}
public bool CheckOpenCOM3()
{
- if (this.smartSerialPort3.IsOpen == true)
- return true;
+ if (this.FlagSerialDll == false)
+ {
+ if (this.smartSerialPort3.IsOpen == true)
+ return true;
+ else
+ return false;
+ }
else
- return false;
+ return true;
}
public void TransferDirectSerialCOM3(string strTemp)
{
if (this.SystemConfig1.SerialCOM3Mode == 3 && this.SystemConfig1.StatisticsPrintFormat == 1)
{
byte[] strByte = Encoding.GetEncoding("ks_c_5601-1987").GetBytes(strTemp);
- this.smartSerialPort3.WriteNoneFrame(strByte);
+
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort3.WriteNoneFrame(strByte);
+ else
+ SerialMgrComm.serialPortMessageByte("COM3:", strByte, strByte.Length);
}
else
- this.smartSerialPort3.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
+ {
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort3.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
+ else
+ SerialMgrComm.serialPortMessageRaw("COM3:", strTemp);
+ }
}
public void TransferDirectSerialCOM3(byte[] buffer)
{
- this.smartSerialPort3.WriteNoneFrame(buffer);
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort3.WriteNoneFrame(buffer);
+ else
+ SerialMgrComm.serialPortMessageByte("COM3:", buffer, buffer.Length);
}
public void TransferDirectSerialCOM3RawData(string strTemp)
{
- this.smartSerialPort3.RawSerialPort.Write(strTemp);
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort3.RawSerialPort.Write(strTemp);
+ else
+ SerialMgrComm.serialPortMessageRaw("COM3:", strTemp);
}
public void TransferDirectSerialCOM3RawData(byte[] buffer)
{
- this.smartSerialPort3.RawSerialPort.Write(buffer, 0, buffer.Length);
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort3.RawSerialPort.Write(buffer, 0, buffer.Length);
+ else
+ SerialMgrComm.serialPortMessageByte("COM3:", buffer, buffer.Length);
}
public void TransferSerialCOM3(string strTemp)
{
- if (this.smartSerialPort3.IsOpen == true)
+ if (strTemp == "" || strTemp == null)
+ return;
+
+ if (this.SystemConfig1.TransmissionDelayTimeCOM3 == 0)
{
- if (this.SystemConfig1.TransmissionDelayTimeCOM3 == 0)
+ if (this.SystemConfig1.SerialCOM3Mode == 3 && this.SystemConfig1.StatisticsPrintFormat == 1)
{
- if (this.SystemConfig1.SerialCOM3Mode == 3 && this.SystemConfig1.StatisticsPrintFormat == 1)
- {
- byte[] strByte = Encoding.GetEncoding("ks_c_5601-1987").GetBytes(strTemp);
+ byte[] strByte = Encoding.GetEncoding("ks_c_5601-1987").GetBytes(strTemp);
+
+ if (this.FlagSerialDll == false)
this.smartSerialPort3.WriteNoneFrame(strByte);
- }
else
- this.smartSerialPort3.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
+ SerialMgrComm.serialPortMessageByte("COM3:", strByte, strByte.Length);
}
else
{
- this.QueueCOM3.Enqueue(strTemp);
- this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM3);
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort3.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
+ else
+ SerialMgrComm.serialPortMessageRaw("COM3:", strTemp);
}
}
+ else
+ {
+ this.QueueCOM3.Enqueue(strTemp);
+ this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM3);
+ }
}
public void TransferSerialCOM3(byte[] buffer)
{
- if (this.smartSerialPort3.IsOpen == true)
+ if (this.SystemConfig1.TransmissionDelayTimeCOM3 == 0)
{
- if (this.SystemConfig1.TransmissionDelayTimeCOM3 == 0)
+ if (this.FlagSerialDll == false)
this.smartSerialPort3.WriteNoneFrame(buffer);
else
- {
- this.QueueCOM3.Enqueue(buffer);
- this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM3);
- }
+ SerialMgrComm.serialPortMessageByte("COM3:", buffer, buffer.Length);
+ }
+ else
+ {
+ this.QueueCOM3.Enqueue(buffer);
+ this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM3);
}
}
public void TransferSerialCOM3RawData(byte[] buffer)
{
- if (this.smartSerialPort3.IsOpen == true)
+ if (this.SystemConfig1.TransmissionDelayTimeCOM3 == 0)
{
- if (this.SystemConfig1.TransmissionDelayTimeCOM3 == 0)
- {
+ if (this.FlagSerialDll == false)
//RawSerialPort 기능을 사용하여 데이터를 전송
this.smartSerialPort3.RawSerialPort.Write(buffer, 0, buffer.Length);
- }
else
- {
- this.QueueCOM3.Enqueue(buffer);
- this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM3);
- }
+ SerialMgrComm.serialPortMessageByte("COM3:", buffer, buffer.Length);
+
+ }
+ else
+ {
+ this.QueueCOM3.Enqueue(buffer);
+ this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM3);
}
}
public void ReceiveSerialCOM3()
@@ -6503,9 +6731,11 @@ namespace ITC81DB_0H.Forms
public void ChangeSerialCOM3FrameSeparateType(Define.E_SeparateType type)
{
+ if (this.FlagSerialDll == true)
+ return;
+
// 통신 포트 설정
- if (this.smartSerialPort3.IsOpen == true)
- this.smartSerialPort3.Close();
+ this.CloseSerialCOM3();
if (type == Define.E_SeparateType.ETXONLY)
{
@@ -6548,97 +6778,145 @@ namespace ITC81DB_0H.Forms
#region Serial COM4
public void OpenSerialCOM4()
{
+ int baudrate = 9600;
+
if (this.SystemConfig1.SerialCOM4Mode == 0 || this.SystemConfig1.SerialCOM4Mode == 16)
return;
- if (this.smartSerialPort4.IsOpen == true)
- this.smartSerialPort4.Close();
+ this.CloseSerialCOM4();
switch (this.SystemConfig1.SerialCOM4BaudRate)
{
case 0:
this.smartSerialPort4.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
+ baudrate = 9600;
break;
case 1:
this.smartSerialPort4.Baud_Rate = SmartSerialPort.BAUDRATE._19200bps;
+ baudrate = 19200;
break;
case 2:
this.smartSerialPort4.Baud_Rate = SmartSerialPort.BAUDRATE._38400bps;
+ baudrate = 38400;
break;
case 3:
+ this.smartSerialPort4.Baud_Rate = SmartSerialPort.BAUDRATE._57600bps;
+ baudrate = 57600;
+ break;
+ case 4:
this.smartSerialPort4.Baud_Rate = SmartSerialPort.BAUDRATE._115200bps;
+ baudrate = 115200;
break;
default:
this.smartSerialPort4.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
+ baudrate = 9600;
break;
}
- this.smartSerialPort4.Open();
+ if (this.FlagSerialDll == false)
+ {
+ this.smartSerialPort4.Open();
+ }
+ else
+ {
+ // Port : COM4
+ SerialMgrComm.serialPortOpen("COM4:", baudrate, 0, 0, 8);
+ }
}
public void CloseSerialCOM4()
{
- this.smartSerialPort4.Close();
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort4.Close();
+ else
+ SerialMgrComm.serialPortClose("COM4:");
}
public bool CheckOpenCOM4()
{
- if (this.smartSerialPort4.IsOpen == true)
- return true;
+ if (this.FlagSerialDll == false)
+ {
+ if (this.smartSerialPort4.IsOpen == true)
+ return true;
+ else
+ return false;
+ }
else
- return false;
+ return true;
}
public void TransferDirectSerialCOM4(string strTemp)
{
if (this.SystemConfig1.SerialCOM4Mode == 3 && this.SystemConfig1.StatisticsPrintFormat == 1)
{
byte[] strByte = Encoding.GetEncoding("ks_c_5601-1987").GetBytes(strTemp);
- this.smartSerialPort4.WriteNoneFrame(strByte);
+
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort4.WriteNoneFrame(strByte);
+ else
+ SerialMgrComm.serialPortMessageByte("COM4:", strByte, strByte.Length);
}
else
- this.smartSerialPort4.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
+ {
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort4.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
+ else
+ SerialMgrComm.serialPortMessageRaw("COM4:", strTemp);
+ }
}
public void TransferDirectSerialCOM4(byte[] buffer)
{
- this.smartSerialPort4.WriteNoneFrame(buffer);
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort4.WriteNoneFrame(buffer);
+ else
+ SerialMgrComm.serialPortMessageByte("COM4:", buffer, buffer.Length);
}
public void TransferSerialCOM4(string strTemp)
{
- if (this.smartSerialPort4.IsOpen == true)
+ if (this.SystemConfig1.TransmissionDelayTimeCOM4 == 0)
{
- if (this.SystemConfig1.TransmissionDelayTimeCOM4 == 0)
+ if (this.SystemConfig1.SerialCOM4Mode == 3 && this.SystemConfig1.StatisticsPrintFormat == 1)
{
- if (this.SystemConfig1.SerialCOM4Mode == 3 && this.SystemConfig1.StatisticsPrintFormat == 1)
- {
- byte[] strByte = Encoding.GetEncoding("ks_c_5601-1987").GetBytes(strTemp);
+ byte[] strByte = Encoding.GetEncoding("ks_c_5601-1987").GetBytes(strTemp);
+
+ if (this.FlagSerialDll == false)
this.smartSerialPort4.WriteNoneFrame(strByte);
- }
else
- this.smartSerialPort4.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
+ SerialMgrComm.serialPortMessageByte("COM4:", strByte, strByte.Length);
}
else
{
- this.QueueCOM4.Enqueue(strTemp);
- this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM4);
+ if (this.FlagSerialDll == false)
+ this.smartSerialPort4.WriteNoneFrame(strTemp, SmartSerialPort.CODETYPES.ASCIICODE);
+ else
+ SerialMgrComm.serialPortMessageRaw("COM4:", strTemp);
}
}
+ else
+ {
+ this.QueueCOM4.Enqueue(strTemp);
+ this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM4);
+ }
}
public void TransferSerialCOM4(byte[] buffer)
{
- if (this.smartSerialPort4.IsOpen == true)
+ if (this.SystemConfig1.TransmissionDelayTimeCOM4 == 0)
{
- if (this.SystemConfig1.TransmissionDelayTimeCOM4 == 0)
+ if (this.FlagSerialDll == false)
this.smartSerialPort4.WriteNoneFrame(buffer);
else
- {
- this.QueueCOM4.Enqueue(buffer);
- this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM4);
- }
+ SerialMgrComm.serialPortMessageByte("COM4:", buffer, buffer.Length);
+ }
+ else
+ {
+ this.QueueCOM4.Enqueue(buffer);
+ this.CreateTimer(Define.E_MenuBottomConfiguration.SerialCOM4);
}
}
public void ChangeSerialCOM4FrameSeparateType(Define.E_SeparateType type)
{
+ if (this.FlagSerialDll == true)
+ return;
+
// 통신 포트 설정
- if (this.smartSerialPort4.IsOpen == true)
- this.smartSerialPort4.Close();
+ this.CloseSerialCOM4();
if (type == Define.E_SeparateType.ETXONLY)
{
@@ -11058,31 +11336,6 @@ namespace ITC81DB_0H.Forms
UserManager.UserManager_AutoLogoutSetTimeout(this.SystemConfig2.UserAutomaticLogout, this.FlagAutomaticLogoutWarningTime);
}
- private bool UI_Invoke(ThreadStart invoker)
- {
- try
- {
- if (this.InvokeRequired)
- {
- if (this.IsDisposed)
- return true;
-
- this.Invoke(invoker);
- }
- else
- {
- invoker();
- }
-
- return true;
-
- }
- catch (Exception e)
- {
- return false;
- }
-
- }
///
/// Set User
///
@@ -12307,7 +12560,12 @@ namespace ITC81DB_0H.Forms
this.CreateForm();
// 메인 통신 OPEN
- this.OpenSmartUartLink();
+ this.OpenSmartSerialPort2();
+
+ // 통신 버퍼용
+ this.smartThreadSerialPort2Read.Priority = ThreadPriority.Normal;
+ this.smartThreadSerialPort2Read.Start();
+ //this.smartThreadSerialPort2OverRun.Start();
#region Communication
if (this.SystemConfig1.SerialCOM1Mode != (int)Define.E_CommMode.f0_None)
@@ -12399,6 +12657,60 @@ namespace ITC81DB_0H.Forms
#endregion
#region Event Handler
+ private void SerialReceiveData(string data)
+ {
+ string cmd = "", dataID = "", transferCNT = "", lane = "";
+
+ try
+ {
+ if (this.FlagSerialDll == false)
+ {
+ cmd = data.Substring(0, 3);
+ if (cmd == "SR0")
+ {
+ if (this.SizeCheck("S", data) == true && this.ChksumCheck(data) == true)
+ {
+ dataID = data.Substring(3, 1);
+ transferCNT = data.Substring(4, 1);
+ lane = data.Substring(5, 1);
+
+ this.TransferDataRespone(CommunicationCommand.StartDataCMD, lane, dataID, transferCNT, ((int)Define.E_ResponseData.ACK).ToString());
+ Application.DoEvents();
+ }
+ }
+ }
+
+ // 수신 버퍼 삭제 하고 테스트
+ this.QueueCommunicationRecive.Enqueue(data);
+ //this.ReceiveData1(data);
+
+ this.ChildFormMainDisplay.labelBufferCNT.BeginInvoke(new Action(() =>
+ {
+ this.ChildFormMainDisplay.labelBufferCNT.Text = this.QueueCommunicationRecive.Count.ToString();
+ }));
+
+ // 통신 확인
+ if (this.CommunicationCheckCount / 3 == 1)
+ {
+ if (this.ChildFormMainDisplay != null)
+ this.ChildFormMainDisplay.pictureBoxCommunicationStatus.Visible = true;
+
+ this.CommunicationCheckCount = 0;
+ }
+ else
+ {
+ if (this.ChildFormMainDisplay != null)
+ this.ChildFormMainDisplay.pictureBoxCommunicationStatus.Visible = false;
+
+ this.CommunicationCheckCount += 1;
+ }
+ }
+ catch
+ {
+
+ }
+ }
+
private void smartSerialPort1_OnReadQueueEvent()
{
int ret = 0;
@@ -12696,19 +13008,25 @@ namespace ITC81DB_0H.Forms
}
private void smartSerialPort2_OnReadQueueEvent()
{
- this.ReceiveData();
+ string strTemp = "";
+ byte[] readByte;
- // 통신 확인
- if (this.CommunicationCheckCount / 3 == 1)
+ SmartSerialPort.FRAMEDATAREADSTATUS receiveDataState = SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY;
+
+ try
{
- this.ChildFormMainDisplay.pictureBoxCommunicationStatus.Visible = true;
- this.CommunicationCheckCount = 0;
+ receiveDataState = this.smartSerialPort2.ReadQueue(out readByte);
+ strTemp = Encoding.Default.GetString(readByte, 0, readByte.Length);
}
- else
+ catch
{
- this.ChildFormMainDisplay.pictureBoxCommunicationStatus.Visible = false;
- this.CommunicationCheckCount += 1;
+ return;
}
+
+ if ((receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.EMPTY) || (receiveDataState == SmartSerialPort.FRAMEDATAREADSTATUS.FAILDATA))
+ return;
+
+ this.SerialReceiveData(strTemp);
}
private void smartSerialPort3_OnReadQueueEvent()
{
@@ -13926,6 +14244,29 @@ namespace ITC81DB_0H.Forms
this.SetTrackingHistoryData(alarm, status);
}
+ private void smartThreadSerialPort2Read_UIThreadFunction(ThreadArgs args)
+ {
+ if (this.QueueCommunicationRecive.Count != 0)
+ {
+ this.ReceiveData(this.QueueCommunicationRecive.Dequeue());
+
+ this.ChildFormMainDisplay.labelBufferCNT.BeginInvoke(new Action(() =>
+ {
+ this.ChildFormMainDisplay.labelBufferCNT.Text = this.QueueCommunicationRecive.Count.ToString();
+ }));
+ }
+ }
+ private void smartSerialSerialPort2_OnPortError(System.IO.Ports.SerialError eErrorState)
+ {
+ this.IndexOverRun++;
+ this.QueueOverRun.Enqueue(string.Format("{0}", this.IndexOverRun));
+ }
+ private void smartThreadSerialPort2OverRun_UIThreadFunction(ThreadArgs args)
+ {
+ if (this.QueueOverRun.Count != 0)
+ this.ChildFormMainDisplay.UpdateDisplayOverRun(this.QueueOverRun.Dequeue());
+ }
+
#region UserManagerEvent
private void UserManager_UserListLogoutDataEvent(int status)
{
diff --git a/ITC81DB_0H/Forms/FormMain.resx b/ITC81DB_0H/Forms/FormMain.resx
index 54e5cf4..8ba4fa4 100644
--- a/ITC81DB_0H/Forms/FormMain.resx
+++ b/ITC81DB_0H/Forms/FormMain.resx
@@ -165,6 +165,12 @@
710, 57
+
+ 34, 95
+
+
+ 264, 95
+
WEBPAD
@@ -172,6 +178,6 @@
False
- 92
+ 118
\ No newline at end of file
diff --git a/ITC81DB_0H/Forms/FormMainDisplay.Designer.cs b/ITC81DB_0H/Forms/FormMainDisplay.Designer.cs
index 8fe8907..e841121 100644
--- a/ITC81DB_0H/Forms/FormMainDisplay.Designer.cs
+++ b/ITC81DB_0H/Forms/FormMainDisplay.Designer.cs
@@ -66,6 +66,9 @@
this.labelUserID = new SmartX.SmartLabel();
this.labelUserLevel = new SmartX.SmartLabel();
this.labelAlarmWindow = new SmartX.SmartLabel();
+ this.labelMissingCount = new SmartX.SmartLabel();
+ this.labelBufferCNT = new SmartX.SmartLabel();
+ this.labelOverrun = new SmartX.SmartLabel();
((System.ComponentModel.ISupportInitialize)(this.smartForm1)).BeginInit();
this.panel1.SuspendLayout();
this.SuspendLayout();
@@ -118,7 +121,7 @@
//
// buttonExit
//
- this.buttonExit.Location = new System.Drawing.Point(327, 0);
+ this.buttonExit.Location = new System.Drawing.Point(726, 457);
this.buttonExit.Name = "buttonExit";
this.buttonExit.Size = new System.Drawing.Size(56, 20);
this.buttonExit.TabIndex = 4;
@@ -666,18 +669,19 @@
this.labelBarcode.ForeColor = System.Drawing.Color.White;
this.labelBarcode.InitVisible = true;
this.labelBarcode.LineSpacing = 0F;
- this.labelBarcode.Location = new System.Drawing.Point(389, 0);
+ this.labelBarcode.Location = new System.Drawing.Point(79, 26);
this.labelBarcode.Name = "labelBarcode";
- this.labelBarcode.Size = new System.Drawing.Size(132, 20);
+ this.labelBarcode.Size = new System.Drawing.Size(286, 30);
this.labelBarcode.TabIndex = 547;
+ this.labelBarcode.Text = "2234567890";
this.labelBarcode.TextHAlign = SmartX.SmartLabel.TextHorAlign.Left;
- this.labelBarcode.TextVAlign = SmartX.SmartLabel.TextVerAlign.Top;
+ this.labelBarcode.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle;
this.labelBarcode.Visible = false;
this.labelBarcode.Wordwrap = false;
//
// buttonMemory
//
- this.buttonMemory.Location = new System.Drawing.Point(265, 0);
+ this.buttonMemory.Location = new System.Drawing.Point(726, 431);
this.buttonMemory.Name = "buttonMemory";
this.buttonMemory.Size = new System.Drawing.Size(56, 20);
this.buttonMemory.TabIndex = 547;
@@ -864,12 +868,78 @@
this.labelAlarmWindow.Wordwrap = false;
this.labelAlarmWindow.Click += new System.EventHandler(this.labelAlarmWindow_Click);
//
+ // labelMissingCount
+ //
+ this.labelMissingCount.BackColor = System.Drawing.Color.Silver;
+ this.labelMissingCount.BackPictureBox = this.smartForm1;
+ this.labelMissingCount.BackPictureBox1 = null;
+ this.labelMissingCount.BackPictureBox2 = null;
+ this.labelMissingCount.BorderColor = System.Drawing.Color.Black;
+ this.labelMissingCount.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.labelMissingCount.ForeColor = System.Drawing.Color.Silver;
+ this.labelMissingCount.InitVisible = true;
+ this.labelMissingCount.LineSpacing = 0F;
+ this.labelMissingCount.Location = new System.Drawing.Point(471, 0);
+ this.labelMissingCount.Name = "labelMissingCount";
+ this.labelMissingCount.Size = new System.Drawing.Size(50, 20);
+ this.labelMissingCount.TabIndex = 605;
+ this.labelMissingCount.Text = "0";
+ this.labelMissingCount.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle;
+ this.labelMissingCount.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle;
+ this.labelMissingCount.Visible = false;
+ this.labelMissingCount.Wordwrap = false;
+ //
+ // labelBufferCNT
+ //
+ this.labelBufferCNT.BackColor = System.Drawing.Color.Silver;
+ this.labelBufferCNT.BackPictureBox = this.smartForm1;
+ this.labelBufferCNT.BackPictureBox1 = null;
+ this.labelBufferCNT.BackPictureBox2 = null;
+ this.labelBufferCNT.BorderColor = System.Drawing.Color.Black;
+ this.labelBufferCNT.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.labelBufferCNT.ForeColor = System.Drawing.Color.Silver;
+ this.labelBufferCNT.InitVisible = true;
+ this.labelBufferCNT.LineSpacing = 0F;
+ this.labelBufferCNT.Location = new System.Drawing.Point(415, 0);
+ this.labelBufferCNT.Name = "labelBufferCNT";
+ this.labelBufferCNT.Size = new System.Drawing.Size(50, 20);
+ this.labelBufferCNT.TabIndex = 604;
+ this.labelBufferCNT.Text = "0";
+ this.labelBufferCNT.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle;
+ this.labelBufferCNT.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle;
+ this.labelBufferCNT.Visible = false;
+ this.labelBufferCNT.Wordwrap = false;
+ //
+ // labelOverrun
+ //
+ this.labelOverrun.BackColor = System.Drawing.Color.Silver;
+ this.labelOverrun.BackPictureBox = this.smartForm1;
+ this.labelOverrun.BackPictureBox1 = null;
+ this.labelOverrun.BackPictureBox2 = null;
+ this.labelOverrun.BorderColor = System.Drawing.Color.Black;
+ this.labelOverrun.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.labelOverrun.ForeColor = System.Drawing.Color.Silver;
+ this.labelOverrun.InitVisible = true;
+ this.labelOverrun.LineSpacing = 0F;
+ this.labelOverrun.Location = new System.Drawing.Point(359, 0);
+ this.labelOverrun.Name = "labelOverrun";
+ this.labelOverrun.Size = new System.Drawing.Size(50, 20);
+ this.labelOverrun.TabIndex = 603;
+ this.labelOverrun.Text = "0";
+ this.labelOverrun.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle;
+ this.labelOverrun.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle;
+ this.labelOverrun.Visible = false;
+ this.labelOverrun.Wordwrap = false;
+ //
// FormMainDisplay
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.AutoScroll = true;
this.ClientSize = new System.Drawing.Size(800, 600);
+ this.Controls.Add(this.labelMissingCount);
+ this.Controls.Add(this.labelBufferCNT);
+ this.Controls.Add(this.labelOverrun);
this.Controls.Add(this.labelAlarmWindow);
this.Controls.Add(this.labelExpireOfPassword);
this.Controls.Add(this.labelUserID);
@@ -942,5 +1012,8 @@
private SmartX.SmartLabel labelUserID;
private SmartX.SmartLabel labelUserLevel;
private SmartX.SmartLabel labelAlarmWindow;
+ public SmartX.SmartLabel labelMissingCount;
+ public SmartX.SmartLabel labelBufferCNT;
+ public SmartX.SmartLabel labelOverrun;
}
}
\ No newline at end of file
diff --git a/ITC81DB_0H/Forms/FormMainDisplay.cs b/ITC81DB_0H/Forms/FormMainDisplay.cs
index 2a3eb35..923216d 100644
--- a/ITC81DB_0H/Forms/FormMainDisplay.cs
+++ b/ITC81DB_0H/Forms/FormMainDisplay.cs
@@ -248,11 +248,31 @@ namespace ITC81DB_0H.Forms
{
if (visible == false)
{
- this.labelBarcode.Visible = false;
+ if (this.ParentForm.SystemConfig2.Barcode != 0)
+ this.labelBarcode.Visible = false;
+ //this.labelComRetry.Visible = false;
+ //this.labelComRetry3th.Visible = false;
+ this.labelOverrun.Visible = false;
+ this.labelBufferCNT.Visible = false;
+ this.labelMissingCount.Visible = false;
+
+ //this.labelBARCD.Visible = false;
}
else
{
- this.labelBarcode.Visible = true;
+ if (this.ParentForm.SystemConfig2.Barcode != 0)
+ {
+ this.labelBarcode.Text = "";
+ this.labelBarcode.Visible = true;
+ }
+ //this.labelComRetry.Visible = true;
+ //this.labelComRetry3th.Visible = true;
+ this.labelOverrun.Visible = true;
+ this.labelBufferCNT.Visible = true;
+ this.labelMissingCount.Visible = true;
+
+ //this.labelBARCD.Text = "";
+ //this.labelBARCD.Visible = true;
}
}
@@ -386,6 +406,7 @@ namespace ITC81DB_0H.Forms
}
public void Clear()
{
+ this.ParentForm.MissingCommIDCount = 0;
this.ParentForm.ClearQueue();
this.ClearCurrentData();
@@ -1018,6 +1039,12 @@ namespace ITC81DB_0H.Forms
{
UserManager.UserManager_AutoLogoutTimeoutReset();
}
+
+ public void UpdateDisplayOverRun(string value)
+ {
+ this.labelOverrun.Text = value;
+ }
+
private bool UI_Invoke(ThreadStart invoker)
{
try
@@ -1802,10 +1829,7 @@ namespace ITC81DB_0H.Forms
if (this.ParentForm.SystemConfig3.IsPart11 == true)
this.Part11AutomaticLogoutReset();
- if (this.ParentForm.SystemConfig1.IsLogin == false)
- {
- this.ParentForm.ChildFormMenu.DisplayHiddenMenu(this.ParentForm.CurrentSystemStatus.CurrentDisplay, this.ParentForm.SystemConfig1);
- }
+ this.ParentForm.ChildFormMenu.DisplayHiddenMenu(this.ParentForm.CurrentSystemStatus.CurrentDisplay, this.ParentForm.SystemConfig1);
}
private void buttonMenu_Click(object sender, EventArgs e)
{
@@ -1908,7 +1932,7 @@ namespace ITC81DB_0H.Forms
private void buttonExit_Click(object sender, EventArgs e)
{
- this.ParentForm.CloseSmartUartLink();
+ this.ParentForm.CloseSmartSerialPort2();
this.ParentForm.smartFileCommunicationLog.Close();
this.ParentForm.smartFileCheckLog.Close();
this.ParentForm.Close();
diff --git a/ITC81DB_0H/Forms/FormMainDisplay.resx b/ITC81DB_0H/Forms/FormMainDisplay.resx
index 14c1692..bb2d576 100644
--- a/ITC81DB_0H/Forms/FormMainDisplay.resx
+++ b/ITC81DB_0H/Forms/FormMainDisplay.resx
@@ -1314,6 +1314,1140 @@
MRwOXS4XrjYDr9c7GAxQgM/W63U8Hsd1JkFbJhaLKYqCGnyg33umaBlqtGUoc5Th3el0qtVqOG1CkiS1
Wq1rLahl9Pt9If/XeSJqIpPJhMohyzJtH3xqZqFQaLlc5nI5HJsctdVwOIwDxhhjjDHGGGPsJhbLG7hZ
LovvQ3RGAAAAAElFTkSuQmCC
+
+
+
+
+ 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
+ vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
+ Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
+ bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
+ llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
+ ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
+ xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
+ eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
+ YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
+ XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
+ WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
+ xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
+ dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
+ V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
+ Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
+ Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
+ 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
+ YII=
+
+
+
+
+ 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
+ yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v
+ vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp
+ vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
+ Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
+ bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
+ llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
+ ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
+ xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
+ eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
+ YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
+ XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
+ WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
+ xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
+ dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
+ V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
+ Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
+ Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
+ PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/
+ 0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h
+ /HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr
+ XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
+ fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
+ tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
+ 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAAOvAAADrwBlbxySQAAAspJREFUaEPtmN9LIlEU
+ x6c0WyORyWjN/BE6LYSVq0LhD2xxUOtBWaKiH4QGUUSPvVQsugQ+GARZsKIPugX+n/tFzy4LzrCzD85O
+ 2/k8ec+cI/Ode+45916BYRiGYRiGYRiGeVNYrVZJkmRZnpiYIJMgWCyW+fn5hYWFD5pZW1tzOBwUrzN4
+ 9fX19ZubG7vdTiZBcDqdJycnT09P37TRaDQ6nU4ymaR4nVHUAERRxFRoZ3Z2liL1R03Da4I1GAM1DWNj
+ Y+Pj4+/+BorUH0UN+B0MBkOh0EdthMPhjY0N1GKK1xlFDZOTk2dnZ+12+7s2np+fW60WqhPF6wyvaWPA
+ GoyBooaRkZGpqamZmZn3mvF4PCjHFK8zihqmp6dTqVQ+n/+sja2trdPT00gkQvE6o6gBDatQKJTL5a/a
+ uL29vby8hHKK1xle08aANegO1pzX6zWbzTTuoabBZDLNzc253W4a9zxhwT8M4vP5FhcX4UCuwwPH9mw2
+ u7q6Ojo6SiYVDXDAm21ubh4fH5NJEJaXlw8PD+H5ZQBUsFqtlkgkyHV4oA0Vi8WdnZ2VlRUyKWlAg3O5
+ XBBQr9d/98RxAvo/qRCPx+FArkNlaWmpVCqhJUmS1LcMakB7TqfT9/f3siz3LYYDM47ZQHNFcmP4S4PN
+ ZsNQFEU4VKvV3d3dnrshQa5nMhnIwFbC4XBYrVZsK9BlIQYyotHo1dXV+fk5eRsWi8UCAUdHR7lcDh8+
+ mUzu7e1h34Yj5cXFRaVSgQO5Ghl89e3t7YODA5yDoQQLHaqwb7u7u+snFUB5xfFS440l1vQ/uCZDImEq
+ kFT7+/somvj8j4+PmA163LvawPw8PDzQjaQ6zWbz5eUlFApRpJ6ghaEDoFJdX183Gg2/308PfoJyif7V
+ u4z8A8hJitGfYDCI9tTtdmOxGJleI4FAAAlNA4ZhGIZhGIZh/lcE4QddP0uBmiLv5wAAAABJRU5ErkJg
+ gg==
+
+
+
+
+ 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
+ gTjogMt7DsG6t73AAsncAAAAAElFTkSuQmCC
+
+
+
+
+ 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
+ SUVORK5CYII=
+
+
+
+
+ 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
+ WwpIAAAAAElFTkSuQmCC
+
+
+
+
+ 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
+ JsijY40ZGgAAAABJRU5ErkJggg==
+
+
+
+
+ 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
+ RU5ErkJggg==
+
+
+
+
+ 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
+ nIcAAAAASUVORK5CYII=
+
+
+
+
+ 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
+ AAAASUVORK5CYII=
+
+
+
+
+ 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
@@ -1807,1140 +2941,6 @@
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
-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
- RU5ErkJggg==
-
-
-
-
- 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
- nIcAAAAASUVORK5CYII=
-
-
-
-
- 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
- AAAASUVORK5CYII=
-
-
-
-
- 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
- vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp
- vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
- Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
- bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
- llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
- ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
- xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
- eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
- YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
- XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
- WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
- xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
- dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
- V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
- Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
- Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
- PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/
- 0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h
- /HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr
- XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
- fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
- tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
- 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAAOvAAADrwBlbxySQAAAllJREFUaEPt199r6WEc
- B3C/lh+Zny0lNibEzJJI0tZazWhtCGVTLKxw4YI7IZTW3Ci7ce8PPe/2fY6cM+fEKfty+ryunufzfOV5
- e35AQAghhBBCCCHbEovFWGt/PT09sdb+ogy7gTLsBsqwG/4hg1wuN5lMdrtdo9GwEr82zSCVSn0+XyKR
- yGazDw8PCoWCDfBoowxCoRAf/+vr68vLCwLk8/lQKMTGeLRRBq1We3d3NxgMJBIJVgAxisUi/0uxfgYs
- wtnZWavVikQiXOXi4uL5+TkYDHJd3qyfQafTRaPR4XB4cHDAVfR6/ePjY6FQEIvFXIUfa2bAIrhcrkaj
- gRis9Ony8hLHw2azsT4vFhlwUVosFq79FUZvbm7e3t6USiUrfcJLcEHF43HW58UiAzb37e0tDivXXYZF
- cDgc9Xo9k8mw0k94Hqe8UqmoVCpW+n6LDG63G1P0er1cd5larcYivL+/r5wobttcLsfnyV5kwPySyWQq
- lXI6nVyFg/OKeM1mE6Os9CuZTHZ/f59Op4+Ojljpmy2f6fPz81KphLl6PJ7Dw0PMHrvIaDRifriOVm4z
- zunpKb4okATn/vj42GAwmM1mNLB67ImtWs4A4XC40+lUq1XcP/hNEQgEsMEmkwkmxJ74A7/fj802Ho/x
- 8m632+/3p9Ppx8cHG96q3zIAPnj8iGi327PZbD6f93q9k5MTNvZX+N7A0b+6urq+vsZta7VaRSIRG9uq
- rxn2D2XYDZRhN1CG3fA/ZMAfANbaX+VyeTQaYTW2oVarsbchhBBCCCGEELKKQPADToylajreSSsAAAAA
- SUVORK5CYII=
-
-
-
-
- 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
- WwpIAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAEEAAABBCAIAAAABlV4SAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
- DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp
- bGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZE
- sRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTs
- AIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4
- JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR
- 3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQd
- li7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtF
- ehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGX
- wzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNF
- hImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH55
- 4SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJ
- VgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB
- 5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyC
- qbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiE
- j6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I
- 1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9
- rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhG
- fDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp
- B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJ
- yeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJC
- YVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQln
- yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v
- vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp
- vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
- Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
- bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
- llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
- ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
- xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
- eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
- YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
- XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
- WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
- xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
- dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
- V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
- Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
- Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
- PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/
- 0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h
- /HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr
- XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
- fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
- tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
- 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAAOvAAADrwBlbxySQAAAexJREFUaEPt1kGHgkEc
- BvCIiIiIiE5dI6JTdOrUNSI6RXSKrp0iOkVEp+gDRB8gog+wdOoUEbFERMQS7eOdf693a9fW4W1m7fM7
- zfxnpt6nqZk8REREREREbrlcLtL6u5jBDMxgBmYwwz/NkM1mV6vVcrnMZDJS0uvZDIlE4nA4YBWgEYvF
- ZECjpzJ4vd7FYoElo9FoMpmgMRgMZEyjpzLUajXM32w2Pp8vGo1+WNCQYV0ez4Dn3m63mF+tVlVlPB6j
- 2+12VVebxzOoTdjtdn6/X1VyuRwq+/3erujxYAb8EtbrNSY3m00pWXBAoVgsFqWvhZ2hVCrdPJ8TRjHz
- dDqFw2EpWRqNBurT6VT6WtgZ3i2BQEB1nbAJuA0ws9frSekK83HCns/neDwupdezM+C4RLvf76uuU7lc
- xhA2IRKJSMmh3W5jdDgcSv/17Ay4vPBxontz5AeDQRymqHc6HSl9hWDH4xFrC4WClF7MzgCtVgtdmM/n
- +Xw+FArhwFF3GX67OFtl3p1KpaIWYhrWYk/eLPiayQxX4Y2lZbFjOOFRksmkzPhBvV7HfScLrvRkgFQq
- pT5I9Uyz2ezXAAo2DX8HcQNCOp3G6+AwkDFX3Wf4e5jBDMxgBmYwAzOYARlcJW9DRERERERE3/F4PgHt
- JsijY40ZGgAAAABJRU5ErkJggg==
-
-
-
-
- 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
- gg==
-
-
-
-
- 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
- gTjogMt7DsG6t73AAsncAAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAEEAAABBCAIAAAABlV4SAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
- DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp
- bGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZE
- sRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTs
- AIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4
- JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR
- 3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQd
- li7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtF
- ehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGX
- wzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNF
- hImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH55
- 4SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJ
- VgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB
- 5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyC
- qbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiE
- j6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I
- 1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9
- rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhG
- fDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp
- B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJ
- yeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJC
- YVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQln
- yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v
- vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp
- vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
- Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
- bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
- llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
- ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
- xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
- eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
- YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
- XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
- WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
- xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
- dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
- V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
- Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
- Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
- PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/
- 0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h
- /HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr
- XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
- fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
- tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
- 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAAOvAAADrwBlbxySQAAAgxJREFUaEPt2MGHAlEc
- B/BHREREp4iITp2WTnPqFENERNdYOkWnTp2i/2DYa3SK6NQpusaeolOnThERERG7X/1+xqoZNYd9vXZ/
- n1Pz673d993X77UzSgghhBBCCCHEv5LL5b4uUqkUl5RKp9ObzYbqD9rtdpZl8XzNPDPYtk3FQBqNBs/X
- zDMDYCvegshmszxTP78Mr0QymOHP9kOxWKRiIGadS9iE9XpN9Qdtt9t8Ps/zNZOeNoNkMINnhnA43G63
- P4LodruxWIzna+aZoVwuUzGQVqvF8zXzzJBIJPr9/mcQo9EIJzLP10x62gySQbtOp4NOvToB/TKgrYfD
- Yb1e52ulcLs8m824hW9MJhMdPb3f77HW6XSK459LPhkikch8PkdxuVxySSl8CdBIPzrO1lqtRr/McRwu
- eWUIhULj8RiV8/ls2zYVIR6PY1vefeCHR6NRHvqr8HGiFeNrmCq3GZCQKk+7H7hrMBjQEvGXw+VVhmaz
- SZe9Xu8y3EhoBrQEVnk6nQqFws8MpVIJnx+8Rk4ebSwcTYvFAmvFzZf7r1GlUjkej3iBbkZP81CTJZNJ
- ehpJhxVQgNVqhVOVxiAqLunduw6HA7aRJuqD219atwvbkslk+O1LBjfhI7ClPFMntwEAeW5v6hGDn73c
- g43lOfrhAKUM1WqVS68Ip9PTHrsLIYQQQgghtFHqG8tlcxhXzGy7AAAAAElFTkSuQmCC
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAAEEAAABBCAIAAAABlV4SAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
- DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp
- bGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZE
- sRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTs
- AIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4
- JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR
- 3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQd
- li7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtF
- ehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGX
- wzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNF
- hImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH55
- 4SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJ
- VgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB
- 5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyC
- qbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiE
- j6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I
- 1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9
- rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhG
- fDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp
- B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJ
- yeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJC
- YVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQln
- yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v
- vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp
- vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
- Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
- bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
- llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
- ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
- xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
- eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
- YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
- XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
- WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
- xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
- dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
- V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
- Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
- Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
- PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/
- 0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h
- /HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr
- XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
- fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
- tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
- 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAAOvAAADrwBlbxySQAABSNJREFUaEPtmGVPK1sU
- QHGnUByCu1Pc3d1dSpBCgmuAoMGDhAZLIITAL70r6Xk3770LpS1T4CazPjQ9e6bTs8/2sZCRkZGRkZGR
- kZExEYVC4e7u7ubmxqeLi4uDg4ONjY249rcQGRmZl5dXXFxcUFCQk5OTlpaWnJwcHR3t6+vr6Ogobvrh
- JCYmjoyMHB0dnZ2dPTw8XF9f7+/vazSahoaG3NxclPHw8BC3/liioqLGxsZ6e3t1Sy8vL0yhVqsPDg5W
- V1d7enrKy8sTEhKcnZ11N/wUrK2tCQO8JTw8nMPGDnV1deLaP3BPdnb2ysrK/Px8Z2dnSUmJn5+fuPa9
- ELJsPTY2Nj8/v729fXBwsL+/f25u7k8ddNja2hIqs7OzWIZ7cC0rKytx7esh23h7e6ekpLS0tOD9Ly8v
- +H1NTU1bW5seHXTgYNhqfHy8ubk5IyPje9TAm8k/7Jjd393dYQF8SXeJXDQxMaFfB8CATU1NaILOBIyQ
- fhlsV6VS8fePj4/E7v/Svy4vfagDcPxVVVXDw8NYEm8U0i9AqVSmp6fj0FqtFlMI6b8wXAews7NrbGwk
- irCGj4+PkJoVXAgLLCwskPs9PT2F9L8YpQNQy0lTfX19FBCzBwYpBYtzZufn57QSQvoHxuoAoaGh+GR3
- d7fZPSowMLC+vv7m5oYqJkRvYYIOlpaWpaWlmAI1+C6kkmNvb08S3N3dxX2F6B1M0AECAgI6OjqI77Cw
- MCGSnKCgIHI5mRRlhOgdTNMBR62srMRR+RQiaSF7ksI3NjZodYTofUzTASiXRAWFzyzuRKeJv56enuoJ
- 5d+YrAM9C6amxr+X8T5FSEgIzkpNEGu9mKwDSbaiogId9OcME4mPj8fEtAZirReTdaCxLSoq4qSooUIk
- IQQDx0NTLdZ6QQeyJL4n1sbAX9CZMwCKtYTQ9y8tLTFSirVe0IHGgRNlnhYiwyCU0YE/oo0XIgnh0YuL
- i0lJSWKtF06ROa6rq4sph3mNQcfAkY3sxx+tra1xZEIkITx0ZmbGQDclq9CT7+zsUEympqZINXl5eTpl
- nJycxE1v4erqiv6U0bi4OCGSEOKBMC0rKxNrw2AuJZsxGMHk5CQFnmNmf++94PD396fAoTnKCJGExMTE
- 0FqCWBsJ+x4YGDg+Pt7b28PNaLqYk2jvaLaZhHT3EAxkP2rc+vq6TiIxnBCnSHr9sNHQA6mTiEKHk5MT
- PI3WqLa2Fi9lpGY0pYzyfXNzk3lI/EBa2DouPjQ0xFEJ0SfgaVlZWRqNhhSEizLH8nC6GLLZ5eUl9VTc
- JzmpqakYurW1VcJmhnzFA7EJ/fzFxcXt7e3q6qq4Zg7INhxYT0+PhI0A8VBdXc3WmYHovYkTMxpBBw6g
- mxhpbIToEzBJEx7Ly8ujo6NC9AWwdVxW97KRdl9ITQKH5OzJvPrHWrOArdVqNTWYHEKeEVIjYfBnrCUp
- EQYG1n6JoVqTUjjCzMzM39ndcHCh4OBgFNBqtR+OtWaE3U9PTzO/FxYW0kEY+EIF/1EoFNQ79L+/v6cH
- ERe+CyZ3ukAMQjIh7VKk9EQIXofT8xPaoYWFBRT4hpeTb6JUKonvra0tSi++gXEiIiKo6GRhum6O3Nvb
- m4yJ51AZGScw3ePjI60EcvGIHwKbRgfSy+HhIb0tPVVVVRXDQ3FxMdUXJVdWVnD95+dn7PalL1WNhfZB
- pVJRyLe3t6m7T09Pr6+vV1dXdKxoyEwjSUmRkZGRkZGRkZGR+RuxsPgFQv503H3i2uAAAAAASUVORK5C
- YII=
-
-
-
-
- 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
- vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
- Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
- bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
- llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
- ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
- xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
- eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
- YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
- XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
- WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
- xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
- dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
- V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
- Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
- Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
- 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
diff --git a/ITC81DB_0H/ITC81DB_2H.csproj b/ITC81DB_0H/ITC81DB_2H.csproj
index 5135fcc..6a2c103 100644
--- a/ITC81DB_0H/ITC81DB_2H.csproj
+++ b/ITC81DB_0H/ITC81DB_2H.csproj
@@ -779,6 +779,9 @@
Resources.resx
True
+
+
+
diff --git a/ITC81DB_0H/SerialManager/SerialManager.Define.cs b/ITC81DB_0H/SerialManager/SerialManager.Define.cs
new file mode 100644
index 0000000..6549cc3
--- /dev/null
+++ b/ITC81DB_0H/SerialManager/SerialManager.Define.cs
@@ -0,0 +1,69 @@
+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 System.Runtime.InteropServices;
+
+namespace ITC81DB_0H.SerialManager
+{
+ public partial class SerialMgrComm
+ {
+ private const string PathDll = "SD Card\\Run\\DllSerialMgr.dll";
+
+ public delegate void fnSerialVersionCB(StringBuilder pVersion);
+ public static fnSerialVersionCB fnSerialVersionCallback;
+
+ public delegate void fnSerialMgrDebugCB(int level, StringBuilder pMessage);
+ public static fnSerialMgrDebugCB fnSerialMgrDebugCallback;
+
+ public delegate void fnSerialMgrPortConnectCB(StringBuilder commPort, int status, int errDetail);
+ public static fnSerialMgrPortConnectCB fnSerialMgrPortConnectCallback;
+
+ public delegate void fnSerialMgrRcvPacketCB(StringBuilder commPort, IntPtr pData, int length);
+ public static fnSerialMgrRcvPacketCB fnSerialMgrRcvPacketCallback;
+
+ public delegate void fnSerialMgrRcvErrPacketCB(StringBuilder commPort, IntPtr pData, int length);
+ public static fnSerialMgrRcvErrPacketCB fnSerialMgrRcvErrPacketCallback;
+
+ [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
+ public static extern void DLL_SerialMgr_Register_DebugCB(fnSerialMgrDebugCB func);
+
+ [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
+ public static extern void DLL_SerialMgr_Register_ConnectCB(fnSerialMgrPortConnectCB func);
+
+ [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
+ public static extern void DLL_SerialMgr_Register_VersionCB(fnSerialVersionCB func);
+
+ [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
+ public static extern void DLL_SerialMgr_Register_RcvPacketCB(fnSerialMgrRcvPacketCB func);
+
+ [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
+ public static extern void DLL_SerialMgr_Register_RcvErrPacketCB(fnSerialMgrRcvErrPacketCB func);
+
+ [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
+ public static extern void DLL_SerialMgr_HelloWorld();
+
+ [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
+ public static extern void DLL_SerialMgr_Getversion();
+
+ [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
+ public static extern void DLL_SerialMgr_Activation();
+
+ [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
+ public static extern void DLL_SerialMgr_Deactivation();
+
+ [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
+ public static extern int DLL_SerialMgr_PortOpen(IntPtr commPort, int BaudRate, int StopBit, int Parity, int DataBit);
+
+ [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
+ public static extern int DLL_SerialMgr_PortClose(IntPtr commPort);
+
+ [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
+ public static extern int DLL_SerialMgr_PortSendMsg(IntPtr commPort, IntPtr pData, int Length);
+
+ }
+}
diff --git a/ITC81DB_0H/SerialManager/SerialManager.Structure.cs b/ITC81DB_0H/SerialManager/SerialManager.Structure.cs
new file mode 100644
index 0000000..0e5a2ed
--- /dev/null
+++ b/ITC81DB_0H/SerialManager/SerialManager.Structure.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading;
+
+namespace ITC81DB_0H.SerialManager
+{
+ public partial class SerialMgrComm
+ {
+ //fnSerialMgrDebugCB
+ public const int SERIALMGR_DBG_NORMAL = 0x0001;
+ public const int SERIALMGR_DBG_THREAD = 0x0002;
+ public const int SERIALMGR_DBG_LIST = 0x0004;
+ public const int SERIALMGR_DBG_PORT = 0x0008;
+
+
+ // fnSerialMgrConnectCB : status
+ public const int SERIAL_STATUS_DISCONNECT = 0x00;
+ public const int SERIAL_STATUS_CONNECT = 0x01;
+ public const int SERIAL_STATUS_ERROR = 0x02;
+
+ public const int MAX_COMMPORT_SIZE = 10;
+
+ // fnSerialMgrConnectCB : errDetail
+ public enum serial_error_detail_e
+ {
+ SERIAL_ERR_NONE = 0x00,
+ SERIAL_ERR_CREATE,
+ SERIAL_ERR_PARAMETER,
+ SERIAL_ERR_TIMEOUT,
+ SERIAL_ERR_WRITE,
+ SERIAL_ERR_READ,
+ SERIAL_ERR_MAX
+ };
+
+
+
+ }
+}
diff --git a/ITC81DB_0H/SerialManager/SerialManager.cs b/ITC81DB_0H/SerialManager/SerialManager.cs
new file mode 100644
index 0000000..7d0e529
--- /dev/null
+++ b/ITC81DB_0H/SerialManager/SerialManager.cs
@@ -0,0 +1,274 @@
+#define CONSOLE_DBUGGING
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading;
+using System.Collections;
+
+namespace ITC81DB_0H.SerialManager
+{
+ public partial class SerialMgrComm
+ {
+ public delegate void ObjectEventHandler(object data);
+ public static event ObjectEventHandler SerialPortMessageReceive;
+ public static event ObjectEventHandler SerialPortErrMessageReceive;
+
+ public static void IntializeSerialManager()
+ {
+ //Console.Write("Initialize Serial Manager \n");
+
+ // Register Callback
+ fnSerialMgrDebugCallback = serialDebugCallback;
+ DLL_SerialMgr_Register_DebugCB(fnSerialMgrDebugCallback);
+
+ fnSerialMgrPortConnectCallback = serialPortConnectCallback;
+ DLL_SerialMgr_Register_ConnectCB(fnSerialMgrPortConnectCallback);
+
+ fnSerialVersionCallback = serialVersionCallback;
+ DLL_SerialMgr_Register_VersionCB(fnSerialVersionCallback);
+
+ fnSerialMgrRcvPacketCallback = serialRcvPacketMsgCallback;
+ DLL_SerialMgr_Register_RcvPacketCB(fnSerialMgrRcvPacketCallback);
+
+ fnSerialMgrRcvErrPacketCallback = serialRcvErrPacketMsgCallback;
+ DLL_SerialMgr_Register_RcvErrPacketCB(fnSerialMgrRcvErrPacketCallback);
+
+ // test
+ //DLL_SerialMgr_HelloWorld();
+
+ // get the lib version
+ DLL_SerialMgr_Getversion();
+
+ // activate the dll thread
+ DLL_SerialMgr_Activation();
+
+ }
+
+ #region DLL_CALLBACK
+ private static void serialVersionCallback(StringBuilder versionInfo)
+ {
+ try
+ {
+ //Console.Write("\n-------------------------------\n");
+ //Console.Write("lib version = " + versionInfo + "\n");
+ //Console.Write("-------------------------------\n");
+ }
+ catch (Exception e)
+ {
+ throw (e);
+ }
+ }
+
+ private static void serialPortConnectCallback(StringBuilder commPort, int status, int errDetail)
+ {
+ try
+ {
+ //Console.Write(commPort + ": status = " + status.ToString() +" , detail = " + errDetail.ToString() + "\n");
+ }
+ catch (Exception e)
+ {
+ throw (e);
+ }
+ }
+
+ private static void serialDebugCallback(int type, StringBuilder pMessage)
+ {
+ try
+ {
+ //Console.Write(pMessage);
+ }
+ catch (Exception e)
+ {
+ throw (e);
+ }
+ }
+
+ // https://stackoverflow.com/questions/22938756/how-to-marshal-c-array-to-c-sharp-via-intptr
+ public static void serialRcvPacketMsgCallback(StringBuilder commPort, IntPtr pData, int length)
+ {
+ try
+ {
+ if (commPort.Length == 0)
+ return;
+
+ if ( (pData == IntPtr.Zero) || (length == 0) )
+ return;
+
+ byte[] data = new byte[length];
+ Marshal.Copy(pData, data, 0, (int)length);
+
+ string sdata = Encoding.Default.GetString(data, 0, data.Length);
+
+ if (SerialPortMessageReceive != null)
+ SerialPortMessageReceive(sdata);
+
+#if TEST_CB
+ String commPortStr = commPort.ToString();
+
+ serialPortMessageByte(commPortStr, data, length);
+#endif
+
+
+ //Console.Write("comm port : " + commPort + ", length = " + length.ToString() + "\n");
+#if TEST_DEBUG
+ // https://stackoverflow.com/questions/1342922/console-writeline-as-hexadecimal
+ int index = 0;
+ foreach (byte temp in data)
+ {
+ Console.Write(temp.ToString("X2") + " ");
+ index++;
+
+ if (index % 16 == 0) Console.Write("\n");
+ }
+
+ Console.Write("\n");
+#endif
+
+ //data = null;
+
+ //GC.Collect();
+ //GC.WaitForPendingFinalizers();
+ }
+ catch (Exception e)
+ {
+ throw (e);
+ }
+ }
+
+ public static void serialRcvErrPacketMsgCallback(StringBuilder commPort, IntPtr pData, int length)
+ {
+ try
+ {
+ if (commPort.Length == 0)
+ return;
+
+ if ((pData == IntPtr.Zero) || (length == 0))
+ return;
+
+ byte[] data = new byte[length];
+ Marshal.Copy(pData, data, 0, (int)length);
+
+ string sdata = Encoding.Default.GetString(data, 0, data.Length);
+
+ if (SerialPortErrMessageReceive != null)
+ SerialPortErrMessageReceive(sdata);
+
+ //String commPortStr = commPort.ToString();
+ //serialPortMessageByte(commPortStr, data, length);
+
+ //Console.Write("Err : comm port : " + commPort + ", length = " + length.ToString() + "\n");
+
+#if (TEST_DEBUG1)
+ // https://stackoverflow.com/questions/1342922/console-writeline-as-hexadecimal
+ int index = 0;
+ foreach (byte temp in data)
+ {
+ Console.Write(temp.ToString("X2") + " ");
+ index++;
+
+ if (index == 5) break;
+
+ if (index % 16 == 0) Console.Write("\n");
+ }
+
+ Console.Write("\n");
+#endif
+
+ // https://dhshin94.tistory.com/135
+ //data = null;
+
+ //GC.Collect();
+ //GC.WaitForPendingFinalizers();
+
+ }
+ catch (Exception e)
+ {
+ throw (e);
+ }
+ }
+
+ #endregion // DLL_CALLBACK
+
+ #region DLL_COMMAND
+
+ public static void serialPortOpen(String commPort, int BaudRate, int stopBit, int parity, int dataBit)
+ {
+ IntPtr pCommPort = Marshal.StringToBSTR(commPort.ToString());
+
+ DLL_SerialMgr_PortOpen(pCommPort, BaudRate, stopBit, parity, dataBit);
+ }
+
+ public static void serialPortClose(String commPort)
+ {
+ IntPtr pCommPort = Marshal.StringToBSTR(commPort.ToString());
+
+ DLL_SerialMgr_PortClose(pCommPort);
+ }
+
+
+ public static void serialPortMessageByte(String commport, byte[] data, int length)
+ {
+ IntPtr pCommPort = Marshal.StringToBSTR(commport.ToString());
+
+ IntPtr ptr = Marshal.AllocHGlobal(length);
+ Marshal.Copy(data, 0, ptr, length);
+
+ DLL_SerialMgr_PortSendMsg(pCommPort, ptr, length);
+
+ //string sdata = Encoding.Default.GetString(data, 0, data.Length);
+
+ Marshal.FreeHGlobal(ptr);
+
+ // if (SerialPortMessageReceive != null)
+ // SerialPortMessageReceive(sdata);
+ }
+
+
+ //https://stackoverflow.com/questions/13418795/convert-byte-array-to-structure-in-the-compact-framework
+ public static void serialPortMessage(String commPort, String Message)
+ {
+ IntPtr pCommPort = Marshal.StringToBSTR(commPort.ToString());
+
+ StringBuilder sb = new StringBuilder();
+ sb.Append((char)0x02);
+ sb.Append(Message);
+ sb.Append((char)0x03);
+
+ Message = sb.ToString();
+
+ byte[] buffer = Encoding.ASCII.GetBytes(Message);
+ int count = Encoding.ASCII.GetByteCount(Message);
+ //byte[] buffer = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+ //int count = 10;
+
+ IntPtr ptr = Marshal.AllocHGlobal(count);
+ Marshal.Copy(buffer, 0, ptr, count);
+
+ DLL_SerialMgr_PortSendMsg(pCommPort, ptr, count);
+
+ Marshal.FreeHGlobal(ptr);
+ }
+
+ public static void serialPortMessageRaw(String commPort, String Message)
+ {
+ IntPtr pCommPort = Marshal.StringToBSTR(commPort.ToString());
+
+ byte[] buffer = Encoding.ASCII.GetBytes(Message);
+ int count = Encoding.ASCII.GetByteCount(Message);
+ //byte[] buffer = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
+ //int count = 10;
+
+ IntPtr ptr = Marshal.AllocHGlobal(count);
+ Marshal.Copy(buffer, 0, ptr, count);
+
+ DLL_SerialMgr_PortSendMsg(pCommPort, ptr, count);
+
+ Marshal.FreeHGlobal(ptr);
+ }
+ #endregion
+
+ }
+}
diff --git a/ITC81DB_0H/Version.txt b/ITC81DB_0H/Version.txt
index f7d972c..dc62297 100644
--- a/ITC81DB_0H/Version.txt
+++ b/ITC81DB_0H/Version.txt
@@ -12,6 +12,11 @@
⺻ м 跮
*/
+@ Ver 3.2.0 by CJY
+ - 2023.11.08
+ - Ver 3.1.2 Modify
+ - ߰
+
@ Ver 3.1.2 by CJY
- 2023.10.31
- Ver 3.1.1 Modify
diff --git a/ITC81DB_0H/bin/Release/DllSerialMgr.dll b/ITC81DB_0H/bin/Release/DllSerialMgr.dll
new file mode 100644
index 0000000..9d5cc08
Binary files /dev/null and b/ITC81DB_0H/bin/Release/DllSerialMgr.dll differ
diff --git a/ITC81DB_0H/bin/Release/ITC81DB_2H.exe b/ITC81DB_0H/bin/Release/ITC81DB_2H.exe
index 528593c..54a9595 100644
Binary files a/ITC81DB_0H/bin/Release/ITC81DB_2H.exe and b/ITC81DB_0H/bin/Release/ITC81DB_2H.exe differ
diff --git a/ITC81DB_0H/obj/Release/ITC81DB_2H.exe b/ITC81DB_0H/obj/Release/ITC81DB_2H.exe
index 528593c..54a9595 100644
Binary files a/ITC81DB_0H/obj/Release/ITC81DB_2H.exe and b/ITC81DB_0H/obj/Release/ITC81DB_2H.exe differ