diff --git a/.gitignore b/.gitignore
index a19bcf2..a9d450c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@ ITC81DB/obj/Release/build.force
ITC81DB_ImageDll/ITC81DB_ImageDll/obj/
ITC81DB_0H/bin/Release/UpdateFiles.zip
ITC81DB_0H/bin/Release/UpdateFiles_V105.zip
+ITC81DB_0H/bin/Release/UpdateFiles_V110.zip
diff --git a/ITC81DB_0H/Controls/CenterConfiguration/ControlCenterConfiEthernet.cs b/ITC81DB_0H/Controls/CenterConfiguration/ControlCenterConfiEthernet.cs
index 6197428..2d8f564 100644
--- a/ITC81DB_0H/Controls/CenterConfiguration/ControlCenterConfiEthernet.cs
+++ b/ITC81DB_0H/Controls/CenterConfiguration/ControlCenterConfiEthernet.cs
@@ -19,6 +19,7 @@ namespace ITC81DB_0H.Controls
public partial class ControlCenterConfiEthernet : UserControl
{
#region Field
+ private int m_ModeSTD2;
private FormMenu m_ParentForm;
public ControlConfiEthernetLocalIP ControlEthernetLocalIP;
@@ -44,6 +45,11 @@ namespace ITC81DB_0H.Controls
get { return this.m_ParentForm; }
private set { this.m_ParentForm = value; }
}
+ public int ModeSTD2
+ {
+ get { return this.m_ModeSTD2; }
+ set { this.m_ModeSTD2 = value; }
+ }
#endregion
#region Method
@@ -184,6 +190,8 @@ namespace ITC81DB_0H.Controls
this.Controls.Add(this.ControlMarkoprint);
this.ControlMarkoprint.Location = new Point(0, 217);
+ this.ModeSTD2 = 4;
+
if (this.ParentForm.ParentForm.SystemConfig2.IsEthernetEnable == true)
{
this.buttonStart.Enabled = true;
@@ -239,6 +247,10 @@ namespace ITC81DB_0H.Controls
this.comboBoxEthernetMode.Items.Add("OPT3"); // 17
this.comboBoxEthernetMode.Items.Add("HP-200"); // 18
this.comboBoxEthernetMode.Items.Add("Smart Jet"); // 19
+ this.comboBoxEthernetMode.Items.Add("imaje 9410 OPT3"); // 한맥 20
+ this.comboBoxEthernetMode.Items.Add("-"); // Impinj Speedway-R420(RFID) 21
+ this.comboBoxEthernetMode.Items.Add("-"); // 모드버스 TCP 22
+ this.comboBoxEthernetMode.Items.Add("STD2"); // STD2 23
}
else
{
@@ -246,6 +258,7 @@ namespace ITC81DB_0H.Controls
this.comboBoxEthernetMode.Items.Add("STD1");
this.comboBoxEthernetMode.Items.Add("Remote");
this.comboBoxEthernetMode.Items.Add("Printer");
+ this.comboBoxEthernetMode.Items.Add("STD2"); // STD2 23
}
this.comboBoxEthernetMode.SelectedIndexChanged += new EventHandler(this.comboBoxEthernetMode_SelectedIndexChanged);
}
@@ -259,72 +272,105 @@ namespace ITC81DB_0H.Controls
{
this.buttonTestSend.Enabled = true;
- switch (this.comboBoxEthernetMode.SelectedIndex)
+ if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false)
{
- case 0: // None
- this.labelFormat.Text = "";
- break;
- case 1: // STD1
- this.labelFormat.Text = "STX[1],ID[5],No[4],U[6],R[6],O[6],G[1],W[6],ETX[1]";
- break;
- case 2: // Remote
- this.labelFormat.Text = "STX[1],No[2],Grd[1],Weight[6],ETX[1]";
- break;
- case 3: // Printer
- this.labelFormat.Text = "No[4],Grd[8],Weight[10],CNT[10]";
- break;
- case 4: // markem-imaje 9410 OPT1
- this.labelFormat.Text = "0xE8,0x00,0x08,0x01,0x00,0x05,W[5],Chksum[1]";
- break;
- case 5: // markem-imaje 9028 OPT1
- this.labelFormat.Text = "0x99,0x00,0x07,0x12,W[5],0x12,Chksum[1]";
- break;
- case 6: // 노바렉스 대주
- this.labelFormat.Text = "0x1B,EW----;1.00I,0x0D,0x1B,P1-0-000000000;A9mm;,W[6],0x0D,0x1B,EX----;,0x0D,0x02,TZ1.00I;13,0x0D,0x03";
- break;
- case 7: // markem-imaje 9410 OPT2
- this.labelFormat.Text = "0xE8,0x00,0x08,0x01,0x00,0x05,W[5],Chksum[1]";
- break;
- case 8: // markem-imaje 9028 OPT2
- this.labelFormat.Text = "0x05/0x99,0x00,0x07,0x12,W[5],0x12,Chksum[1]";
- break;
- case 9: // Hitachi
- this.labelFormat.Text = "STX[1],Length[1],Room Number[1],W[5],ETX[1]";
- break;
- case 10: // MACSA Laser
- this.labelFormat.Text = "STX[1],0xFE,0x41,0x30,0x06,W[6],Chk[1],(Chk[1]&0xff)[1],ETX[1]";
- break;
- case 11: // Markoprint
- this.labelFormat.Text = "STX[1],TZcosmax.;00I;13,0x0D,W[6],Unit[1],0x0D,ETX[1]";
- break;
- case 12: // alphaJET
- this.labelFormat.Text = "label\\1234.txt,W[6],Unit[1],";
- break;
- case 13: // Marking(VJ1510)
- this.labelFormat.Text = "STX[1],0x55,0x4B,0x0A,W[4],ETX[1]";
- break;
- case 14: // OPT1
- this.labelFormat.Text = "Start:STX[1],12,ETX[1], Stop:STX[1],13,ETX[1], Number change:STX[1],200,No[2],ETX[1]";
- break;
- case 15:
- break;
- case 16: // OPC
- this.buttonTestSend.Enabled = false;
- this.labelFormat.Text = "OPC : opc.tcp://192.168.4.10";
- break;
- case 17: // OPT3
- this.labelFormat.Text = "STX[1],Date[9],Time[9],Count[9],grd[9],W[9],Lot[9],O[9],U[9],P[9],ETX[1]";
- break;
- case 18: // HP-200
- this.labelFormat.Text = "Pass : 02 4a 30 2c W[6] 0d 04 / NG : 02 4a 30 2c 20 20 20 20 20 20 0d 04 -> Screen Update : 02 5a 04";
- break;
- case 19: // Smart Jet
- this.labelFormat.Text = "STX[1], A01, WeightData[6], EOT[1]";
- break;
- default:
- this.buttonTestSend.Enabled = false;
- this.labelFormat.Text = "Private use";
- break;
+ switch (this.comboBoxEthernetMode.SelectedIndex)
+ {
+ case 0: // None
+ this.labelFormat.Text = "";
+ break;
+ case 1: // STD1
+ this.labelFormat.Text = "STX[1],ID[5],No[4],U[6],P[6],O[6],Grd[1],Sign[1],Weight[6],ETX[1]";
+ break;
+ case 2: // Remote
+ this.labelFormat.Text = "STX[1],No[2],Grd[1],Weight[6],ETX[1]";
+ break;
+ case 3: // Printer
+ this.labelFormat.Text = "No[4],Grd[8],Weight[10],CNT[10]";
+ break;
+ case 4: // STD2
+ this.labelFormat.Text = "STX[1],ID[5],No[4],U[6],P[6],O[6],UC[7],PC[7],OC[7],ExC[7],TC[9],Grd[1],Sign[1],Weight[6],ETX[1]";
+ break;
+ default:
+ this.labelFormat.Text = "";
+ break;
+ }
+ }
+ else
+ {
+ switch (this.comboBoxEthernetMode.SelectedIndex)
+ {
+ case 0: // None
+ this.labelFormat.Text = "";
+ break;
+ case 1: // STD1
+ this.labelFormat.Text = "STX[1],ID[5],No[4],U[6],P[6],O[6],Grd[1],Sign[1],Weight[6],ETX[1]";
+ break;
+ case 2: // Remote
+ this.labelFormat.Text = "STX[1],No[2],Grd[1],Weight[6],ETX[1]";
+ break;
+ case 3: // Printer
+ this.labelFormat.Text = "No[4],Grd[8],Weight[10],CNT[10]";
+ break;
+ case 4: // markem-imaje 9410 OPT1
+ this.labelFormat.Text = "0xE8,0x00,0x08,0x01,0x00,0x05,W[5],Chksum[1]";
+ break;
+ case 5: // markem-imaje 9028 OPT1
+ this.labelFormat.Text = "0x99,0x00,0x07,0x12,W[5],0x12,Chksum[1]";
+ break;
+ case 6: // 노바렉스 대주
+ this.labelFormat.Text = "0x1B,EW----;1.00I,0x0D,0x1B,P1-0-000000000;A9mm;,W[6],0x0D,0x1B,EX----;,0x0D,0x02,TZ1.00I;13,0x0D,0x03";
+ break;
+ case 7: // markem-imaje 9410 OPT2
+ this.labelFormat.Text = "0xE8,0x00,0x08,0x01,0x00,0x05,W[5],Chksum[1]";
+ break;
+ case 8: // markem-imaje 9028 OPT2
+ this.labelFormat.Text = "0x05/0x99,0x00,0x07,0x12,W[5],0x12,Chksum[1]";
+ break;
+ case 9: // Hitachi
+ this.labelFormat.Text = "STX[1],Length[1],Room Number[1],W[5],ETX[1]";
+ break;
+ case 10: // MACSA Laser
+ this.labelFormat.Text = "STX[1],0xFE,0x41,0x30,0x06,W[6],Chk[1],(Chk[1]&0xff)[1],ETX[1]";
+ break;
+ case 11: // Markoprint
+ this.labelFormat.Text = "STX[1],TZcosmax.;00I;13,0x0D,W[6],Unit[1],0x0D,ETX[1]";
+ break;
+ case 12: // alphaJET
+ this.labelFormat.Text = "label\\1234.txt,W[6],Unit[1],";
+ break;
+ case 13: // Marking(VJ1510)
+ this.labelFormat.Text = "STX[1],0x55,0x4B,0x0A,W[4],ETX[1]";
+ break;
+ case 14: // OPT1
+ this.labelFormat.Text = "Start:STX[1],12,ETX[1], Stop:STX[1],13,ETX[1], Number change:STX[1],200,No[2],ETX[1]";
+ break;
+ case 15:
+ break;
+ case 16: // OPC
+ this.buttonTestSend.Enabled = false;
+ this.labelFormat.Text = "OPC : opc.tcp://192.168.4.10";
+ break;
+ case 17: // OPT3
+ this.labelFormat.Text = "STX[1],Date[9],Time[9],Count[9],grd[9],W[9],Lot[9],O[9],U[9],P[9],ETX[1]";
+ break;
+ case 18: // HP-200
+ this.labelFormat.Text = "Pass : 02 4a 30 2c W[6] 0d 04 / NG : 02 4a 30 2c 20 20 20 20 20 20 0d 04 -> Screen Update : 02 5a 04";
+ break;
+ case 19: // Smart Jet
+ this.labelFormat.Text = "STX[1], A01, WeightData[6], EOT[1]";
+ break;
+ case 20: // markem-imaje 9410 OPT3
+ this.labelFormat.Text = "0xE8,0x00,0x08,0x01,0x00,0x05,W[5],Chksum[1]";
+ break;
+ case (int)DataStore.EthernetMode.f23_STD2: // STD2
+ this.labelFormat.Text = "STX[1],ID[5],No[4],U[6],P[6],O[6],UC[7],PC[7],OC[7],ExC[7],TC[9],Grd[1],Sign[1],Weight[6],ETX[1]";
+ break;
+ default:
+ this.buttonTestSend.Enabled = false;
+ this.labelFormat.Text = "Private use";
+ break;
+ }
}
//else if (this.comboBoxSerialMode.SelectedIndex == 15) // OPT2
@@ -387,12 +433,18 @@ namespace ITC81DB_0H.Controls
this.comboBoxEthernetOpMode.SelectedIndexChanged -= new EventHandler(this.comboBoxEthernetOpMode_SelectedIndexChanged);
this.comboBoxEthernetOpMode.SelectedIndex = this.ParentForm.ParentForm.SystemConfig2.EthernetOperationMode;
- if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false
- && this.ParentForm.ParentForm.SystemConfig2.EthernetCommMode > this.comboBoxEthernetMode.Items.Count - 1)
+ if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false)
{
- this.comboBoxEthernetMode.SelectedIndex = 0;
- this.ParentForm.ParentForm.SystemConfig2.EthernetCommMode = this.comboBoxEthernetMode.SelectedIndex;
- this.ParentForm.ParentForm.SaveSystemConfigurationFile2(this.ParentForm.ParentForm.SystemConfig2);
+ if (this.ParentForm.ParentForm.SystemConfig2.EthernetCommMode == (int)DataStore.EthernetMode.f23_STD2)
+ this.comboBoxEthernetMode.SelectedIndex = this.ModeSTD2;
+ else if (this.ParentForm.ParentForm.SystemConfig2.EthernetCommMode > this.comboBoxEthernetMode.Items.Count - 1)
+ {
+ this.comboBoxEthernetMode.SelectedIndex = 0;
+ this.ParentForm.ParentForm.SystemConfig2.EthernetCommMode = this.comboBoxEthernetMode.SelectedIndex;
+ this.ParentForm.ParentForm.SaveSystemConfigurationFile2(this.ParentForm.ParentForm.SystemConfig2);
+ }
+ else
+ this.comboBoxEthernetMode.SelectedIndex = this.ParentForm.ParentForm.SystemConfig2.EthernetCommMode;
}
else
this.comboBoxEthernetMode.SelectedIndex = this.ParentForm.ParentForm.SystemConfig2.EthernetCommMode;
@@ -1075,6 +1127,8 @@ namespace ITC81DB_0H.Controls
private void buttonSave_Click(object sender, EventArgs e)
{
+ int mode = 0;
+
if (this.comboBoxEthernetMode.SelectedIndex == 16) // OPC
{
DialogFormMessage msg = new DialogFormMessage(26, this.ParentForm.ParentForm.SystemConfig1.Language);
@@ -1121,7 +1175,14 @@ namespace ITC81DB_0H.Controls
this.labelConnectedIP.Text = "-";
}
- this.ParentForm.ParentForm.SystemConfig2.EthernetCommMode = this.comboBoxEthernetMode.SelectedIndex;
+ if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false)
+ {
+ if (this.comboBoxEthernetMode.SelectedIndex == this.ModeSTD2)
+ mode = (int)DataStore.SerialMode.f23_STD2;
+ }
+ else
+ mode = this.comboBoxEthernetMode.SelectedIndex;
+ this.ParentForm.ParentForm.SystemConfig2.EthernetCommMode = mode;
this.ParentForm.ParentForm.SaveSystemConfigurationFile2(this.ParentForm.ParentForm.SystemConfig2);
this.buttonSave.Enabled = false;
diff --git a/ITC81DB_0H/Controls/CenterConfiguration/ControlCenterConfiSerial.cs b/ITC81DB_0H/Controls/CenterConfiguration/ControlCenterConfiSerial.cs
index fc4cb10..892696a 100644
--- a/ITC81DB_0H/Controls/CenterConfiguration/ControlCenterConfiSerial.cs
+++ b/ITC81DB_0H/Controls/CenterConfiguration/ControlCenterConfiSerial.cs
@@ -21,6 +21,7 @@ namespace ITC81DB_0H.Controls
public partial class ControlCenterConfiSerial : UserControl
{
#region Field
+ private int m_ModeSTD2;
private FormMenu m_ParentForm;
public ControlConfiSerialUserDefine ControlUserDefine;
public ControlConfiSerialHitachi ControlHitachi;
@@ -46,6 +47,11 @@ namespace ITC81DB_0H.Controls
get { return this.m_ParentForm; }
private set { this.m_ParentForm = value; }
}
+ public int ModeSTD2
+ {
+ get { return this.m_ModeSTD2; }
+ set { this.m_ModeSTD2 = value; }
+ }
#endregion
#region Method
@@ -141,6 +147,8 @@ namespace ITC81DB_0H.Controls
this.Controls.Add(this.ControlBarcode);
this.ControlBarcode.Location = new Point(0, 217);
+ this.ModeSTD2 = 4;
+
this.ControlVisible(false);
this.comboBoxSerialBaudRate.Items.Clear();
@@ -183,6 +191,10 @@ namespace ITC81DB_0H.Controls
this.comboBoxSerialMode.Items.Add("OPT3"); // 셀로닉스 요청 17
this.comboBoxSerialMode.Items.Add("HP-200"); // HP-200 18
this.comboBoxSerialMode.Items.Add("Smart Jet"); // Smart Jet 19
+ this.comboBoxSerialMode.Items.Add("imaje 9410 OPT3"); // 한맥 20
+ this.comboBoxSerialMode.Items.Add("-"); // RFID 21
+ this.comboBoxSerialMode.Items.Add("-"); // 모드버스 RTU 22
+ this.comboBoxSerialMode.Items.Add("STD2"); // STD2 23
//this.comboBoxSerialMode.Items.Add("Barcode");
//this.comboBoxSerialMode.Items.Add("User Define");
}
@@ -191,77 +203,111 @@ namespace ITC81DB_0H.Controls
this.comboBoxSerialMode.Items.Add("None");
this.comboBoxSerialMode.Items.Add("STD1");
this.comboBoxSerialMode.Items.Add("Remote");
- this.comboBoxSerialMode.Items.Add("Printer");
+ this.comboBoxSerialMode.Items.Add("Printer");
+ this.comboBoxSerialMode.Items.Add("STD2"); // STD2 23
}
this.comboBoxSerialMode.SelectedIndexChanged += new EventHandler(this.comboBoxSerialMode_SelectedIndexChanged);
}
private void UpdateLabelFormatDisplay()
{
- switch (this.comboBoxSerialMode.SelectedIndex)
+ if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false)
{
- case 0: // None
- this.labelFormat.Text = "";
- break;
- case 1: // STD1
- this.labelFormat.Text = "STX[1],ID[5],No[4],U[6],R[6],O[6],G[1],W[6],ETX[1]";
- break;
- case 2: // Remote
- this.labelFormat.Text = "STX[1],No[2],Grd[1],Weight[6],ETX[1]";
- break;
- case 3: // Printer
- this.labelFormat.Text = "No[4],Grd[8],Weight[10],CNT[10]";
- break;
- case 4: // markem-imaje 9410 OPT1
- this.labelFormat.Text = "0xE8,0x00,0x08,0x01,0x00,0x05,W[5],Chksum[1]";
- break;
- case 5: // markem-imaje 9028 OPT1
- this.labelFormat.Text = "0x99,0x00,0x07,0x12,W[5],0x12,Chksum[1]";
- break;
- case 6: // 노바렉스 대주
- this.labelFormat.Text = "0x1B,EW----;1.00I,0x0D,0x1B,P1-0-000000000;A9mm;,W[6],0x0D,0x1B,EX----;,0x0D,0x02,TZ1.00I;13,0x0D,0x03";
- break;
- case 7: // markem-imaje 9410 OPT2
- this.labelFormat.Text = "0xE8,0x00,0x08,0x01,0x00,0x05,W[5],Chksum[1]";
- break;
- case 8: // markem-imaje 9028 OPT2
- this.labelFormat.Text = "0x05/0x99,0x00,0x07,0x12,W[5],0x12,Chksum[1]";
- break;
- case 9: // Hitachi
- this.labelFormat.Text = "STX[1],Length[1],Room Number[1],W[5],ETX[1]";
- break;
- case 10: // MACSA Laser
- this.labelFormat.Text = "STX[1],0xFE,0x41,0x30,0x06,W[6],Chk[1],(Chk[1]&0xff)[1],ETX[1]";
- break;
- case 11: // Markoprint
- this.labelFormat.Text = "STX[1],TZcosmax.;00I;13,0x0D,W[6],Unit[1],0x0D,ETX[1]";
- break;
- case 12: // alphaJET
- this.labelFormat.Text = "label\\1234.txt,W[6],Unit[1],";
- break;
- case 13: // Marking(VJ1510)
- this.labelFormat.Text = "STX[1],0x55,0x4B,0x0A,W[4],ETX[1]";
- break;
- case 14: // OPT1
- this.labelFormat.Text = "Start:STX[1],12,ETX[1], Stop:STX[1],13,ETX[1], Number change:STX[1],200,No[2],ETX[1]";
- break;
- case 16: // OPC
- this.buttonTestSend.Enabled = false;
- this.labelFormat.Text = "OPC : opc.tcp://192.168.4.10";
- break;
- case 17: // OPT3
- this.labelFormat.Text = "STX[1],Date[9],Time[9],Count[9],grd[9],W[9],Lot[9],O[9],U[9],P[9],ETX[1]";
- break;
- case 18: // HP-200
- this.labelFormat.Text = "Pass : 02 4a 30 2c W[6] 0d 04 / NG : 02 4a 30 2c 20 20 20 20 20 20 0d 04 -> Screen Update : 02 5a 04";
- break;
- case 19: // Smart Jet
- this.labelFormat.Text = "STX[1], A01, WeightData[6], EOT[1]";
- break;
- default:
- this.buttonTestSend.Enabled = false;
- this.labelFormat.Text = "Private use";
- break;
+ switch (this.comboBoxSerialMode.SelectedIndex)
+ {
+ case 0: // None
+ this.labelFormat.Text = "";
+ break;
+ case 1: // STD1
+ this.labelFormat.Text = "STX[1],ID[5],No[4],U[6],P[6],O[6],Grd[1],Sign[1],Weight[6],ETX[1]";
+ break;
+ case 2: // Remote
+ this.labelFormat.Text = "STX[1],No[2],Grd[1],Weight[6],ETX[1]";
+ break;
+ case 3: // Printer
+ this.labelFormat.Text = "No[4],Grd[8],Weight[10],CNT[10]";
+ break;
+ case 4: // STD2
+ this.labelFormat.Text = "STX[1],ID[5],No[4],U[6],P[6],O[6],UC[7],PC[7],OC[7],ExC[7],TC[9],Grd[1],Sign[1],Weight[6],ETX[1]";
+ break;
+ default:
+ this.labelFormat.Text = "";
+ break;
+ }
+ }
+ else
+ {
+ switch (this.comboBoxSerialMode.SelectedIndex)
+ {
+ case 0: // None
+ this.labelFormat.Text = "";
+ break;
+ case 1: // STD1
+ this.labelFormat.Text = "STX[1],ID[5],No[4],U[6],P[6],O[6],Grd[1],Sign[1],Weight[6],ETX[1]";
+ break;
+ case 2: // Remote
+ this.labelFormat.Text = "STX[1],No[2],Grd[1],Weight[6],ETX[1]";
+ break;
+ case 3: // Printer
+ this.labelFormat.Text = "No[4],Grd[8],Weight[10],CNT[10]";
+ break;
+ case 4: // markem-imaje 9410 OPT1
+ this.labelFormat.Text = "0xE8,0x00,0x08,0x01,0x00,0x05,W[5],Chksum[1]";
+ break;
+ case 5: // markem-imaje 9028 OPT1
+ this.labelFormat.Text = "0x99,0x00,0x07,0x12,W[5],0x12,Chksum[1]";
+ break;
+ case 6: // 노바렉스 대주
+ this.labelFormat.Text = "0x1B,EW----;1.00I,0x0D,0x1B,P1-0-000000000;A9mm;,W[6],0x0D,0x1B,EX----;,0x0D,0x02,TZ1.00I;13,0x0D,0x03";
+ break;
+ case 7: // markem-imaje 9410 OPT2
+ this.labelFormat.Text = "0xE8,0x00,0x08,0x01,0x00,0x05,W[5],Chksum[1]";
+ break;
+ case 8: // markem-imaje 9028 OPT2
+ this.labelFormat.Text = "0x05/0x99,0x00,0x07,0x12,W[5],0x12,Chksum[1]";
+ break;
+ case 9: // Hitachi
+ this.labelFormat.Text = "STX[1],Length[1],Room Number[1],W[5],ETX[1]";
+ break;
+ case 10: // MACSA Laser
+ this.labelFormat.Text = "STX[1],0xFE,0x41,0x30,0x06,W[6],Chk[1],(Chk[1]&0xff)[1],ETX[1]";
+ break;
+ case 11: // Markoprint
+ this.labelFormat.Text = "STX[1],TZcosmax.;00I;13,0x0D,W[6],Unit[1],0x0D,ETX[1]";
+ break;
+ case 12: // alphaJET
+ this.labelFormat.Text = "label\\1234.txt,W[6],Unit[1],";
+ break;
+ case 13: // Marking(VJ1510)
+ this.labelFormat.Text = "STX[1],0x55,0x4B,0x0A,W[4],ETX[1]";
+ break;
+ case 14: // OPT1
+ this.labelFormat.Text = "Start:STX[1],12,ETX[1], Stop:STX[1],13,ETX[1], Number change:STX[1],200,No[2],ETX[1]";
+ break;
+ case 16: // OPC
+ this.buttonTestSend.Enabled = false;
+ this.labelFormat.Text = "OPC : opc.tcp://192.168.4.10";
+ break;
+ case 17: // OPT3
+ this.labelFormat.Text = "STX[1],Date[9],Time[9],Count[9],grd[9],W[9],Lot[9],O[9],U[9],P[9],ETX[1]";
+ break;
+ case 18: // HP-200
+ this.labelFormat.Text = "Pass : 02 4a 30 2c W[6] 0d 04 / NG : 02 4a 30 2c 20 20 20 20 20 20 0d 04 -> Screen Update : 02 5a 04";
+ break;
+ case 19: // Smart Jet
+ this.labelFormat.Text = "STX[1], A01, WeightData[6], EOT[1]";
+ break;
+ case 20: // markem-imaje 9410 OPT3
+ this.labelFormat.Text = "0xE8,0x00,0x08,0x01,0x00,0x05,W[5],Chksum[1]";
+ break;
+ case (int)DataStore.SerialMode.f23_STD2: // STD2
+ this.labelFormat.Text = "STX[1],ID[5],No[4],U[6],P[6],O[6],UC[7],PC[7],OC[7],ExC[7],TC[9],Grd[1],Sign[1],Weight[6],ETX[1]";
+ break;
+ default:
+ this.buttonTestSend.Enabled = false;
+ this.labelFormat.Text = "Private use";
+ break;
+ }
}
}
private void ControlVisible(bool visible)
@@ -303,11 +349,16 @@ namespace ITC81DB_0H.Controls
// Mode
this.comboBoxSerialMode.SelectedIndexChanged -= new EventHandler(this.comboBoxSerialMode_SelectedIndexChanged);
- if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false
- && item.SerialCOM1Mode > this.comboBoxSerialMode.Items.Count - 1)
+ if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false)
{
- this.comboBoxSerialMode.SelectedIndex = 0;
- this.SaveComboBox(this.comboBoxSerialBaudRate.SelectedIndex, 0);
+ if (item.SerialCOM1Mode == (int)DataStore.SerialMode.f23_STD2)
+ this.comboBoxSerialMode.SelectedIndex = this.ModeSTD2;
+ else if (item.SerialCOM1Mode > this.comboBoxSerialMode.Items.Count - 1)
+ this.comboBoxSerialMode.SelectedIndex = 0;
+ else
+ this.comboBoxSerialMode.SelectedIndex = this.ParentForm.ParentForm.SystemConfig1.SerialCOM1Mode;
+
+ this.SaveComboBox(this.comboBoxSerialBaudRate.SelectedIndex, this.comboBoxSerialMode.SelectedIndex);
}
else
this.comboBoxSerialMode.SelectedIndex = item.SerialCOM1Mode;
@@ -318,16 +369,28 @@ namespace ITC81DB_0H.Controls
break;
case DataStore.MenuBottomConfiguration.SerialCOM3:
#region COM3 Load
- if (this.ParentForm.ParentForm.SystemConfig1.IsBarcodeEnable == true)
+ if (this.ParentForm.ParentForm.SystemConfig2.Barcode != 0)
{
- // BaudRate
this.comboBoxSerialBaudRate.SelectedIndexChanged -= new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
- this.comboBoxSerialBaudRate.SelectedIndex = 0;
- this.comboBoxSerialBaudRate.SelectedIndexChanged += new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
-
- // Mode
this.comboBoxSerialMode.SelectedIndexChanged -= new EventHandler(this.comboBoxSerialMode_SelectedIndexChanged);
- this.comboBoxSerialMode.SelectedIndex = 0;
+ switch (this.ParentForm.ParentForm.SystemConfig2.Barcode)
+ {
+ case 1:
+ this.comboBoxSerialBaudRate.SelectedIndex = 0;
+ this.comboBoxSerialMode.SelectedIndex = 0;
+
+ this.ControlBarcode.Visible = true;
+ this.ControlBarcode.DisplayRefresh(this.ParentForm.CurrentConfigurationMenu());
+ this.ControlBarcode.BringToFront();
+ break;
+ case 2:
+ this.comboBoxSerialBaudRate.SelectedIndex = 4;
+ this.comboBoxSerialMode.SelectedIndex = 0;
+ break;
+ default:
+ break;
+ }
+ this.comboBoxSerialBaudRate.SelectedIndexChanged += new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
this.comboBoxSerialMode.SelectedIndexChanged += new EventHandler(this.comboBoxSerialMode_SelectedIndexChanged);
this.labelTransmissionDelayTime.Text = "0";
@@ -336,10 +399,6 @@ namespace ITC81DB_0H.Controls
this.comboBoxSerialBaudRate.Enabled = false;
this.comboBoxSerialMode.Enabled = false;
-
- this.ControlBarcode.Visible = true;
- this.ControlBarcode.DisplayRefresh(this.ParentForm.CurrentConfigurationMenu());
- this.ControlBarcode.BringToFront();
}
else
{
@@ -350,11 +409,16 @@ namespace ITC81DB_0H.Controls
// Mode
this.comboBoxSerialMode.SelectedIndexChanged -= new EventHandler(this.comboBoxSerialMode_SelectedIndexChanged);
- if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false
- && item.SerialCOM3Mode > this.comboBoxSerialMode.Items.Count - 1)
+ if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false)
{
- this.comboBoxSerialMode.SelectedIndex = 0;
- this.SaveComboBox(this.comboBoxSerialBaudRate.SelectedIndex, 0);
+ if (item.SerialCOM3Mode == (int)DataStore.SerialMode.f23_STD2)
+ this.comboBoxSerialMode.SelectedIndex = this.ModeSTD2;
+ else if (item.SerialCOM3Mode > this.comboBoxSerialMode.Items.Count - 1)
+ this.comboBoxSerialMode.SelectedIndex = 0;
+ else
+ this.comboBoxSerialMode.SelectedIndex = this.ParentForm.ParentForm.SystemConfig1.SerialCOM3Mode;
+
+ this.SaveComboBox(this.comboBoxSerialBaudRate.SelectedIndex, this.comboBoxSerialMode.SelectedIndex);
}
else
this.comboBoxSerialMode.SelectedIndex = item.SerialCOM3Mode;
@@ -373,11 +437,16 @@ namespace ITC81DB_0H.Controls
// Mode
this.comboBoxSerialMode.SelectedIndexChanged -= new EventHandler(this.comboBoxSerialMode_SelectedIndexChanged);
- if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false
- && item.SerialCOM4Mode > this.comboBoxSerialMode.Items.Count - 1)
+ if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false)
{
- this.comboBoxSerialMode.SelectedIndex = 0;
- this.SaveComboBox(this.comboBoxSerialBaudRate.SelectedIndex, 0);
+ if (item.SerialCOM4Mode == (int)DataStore.SerialMode.f23_STD2)
+ this.comboBoxSerialMode.SelectedIndex = this.ModeSTD2;
+ else if (item.SerialCOM4Mode > this.comboBoxSerialMode.Items.Count - 1)
+ this.comboBoxSerialMode.SelectedIndex = 0;
+ else
+ this.comboBoxSerialMode.SelectedIndex = this.ParentForm.ParentForm.SystemConfig1.SerialCOM4Mode;
+
+ this.SaveComboBox(this.comboBoxSerialBaudRate.SelectedIndex, this.comboBoxSerialMode.SelectedIndex);
}
else
this.comboBoxSerialMode.SelectedIndex = item.SerialCOM4Mode;
@@ -403,61 +472,177 @@ namespace ITC81DB_0H.Controls
{
DataStore.MenuBottomConfiguration temp = this.ParentForm.CurrentConfigurationMenu();
- if (this.comboBoxSerialMode.SelectedIndex == 16) // OPC
+ if (this.comboBoxSerialMode.SelectedIndex == (int)DataStore.SerialMode.f16_OPC)
{
+ #region OPC
switch (temp)
{
case DataStore.MenuBottomConfiguration.SerialCOM1:
- this.ParentForm.ParentForm.CloseModbusCOM1();
+ this.ParentForm.ParentForm.CloseModbusSlaveCOM1();
this.ParentForm.ParentForm.CloseSerialCOM1();
- this.ParentForm.ParentForm.SystemConfig1.SerialCOM1Mode = 16;
- this.ParentForm.ParentForm.OpenModbusCOM1();
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM1BaudRate = 0;
+ this.comboBoxSerialBaudRate.SelectedIndexChanged -= new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
+ this.comboBoxSerialBaudRate.SelectedIndex = 0;
+ this.comboBoxSerialBaudRate.SelectedIndexChanged += new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM1Mode = (int)DataStore.SerialMode.f16_OPC;
+ this.ParentForm.ParentForm.OpenModbusSlaveCOM1();
break;
case DataStore.MenuBottomConfiguration.SerialCOM3:
- this.ParentForm.ParentForm.CloseModbusCOM3();
+ this.ParentForm.ParentForm.CloseModbusSlaveCOM3();
this.ParentForm.ParentForm.CloseSerialCOM3();
- this.ParentForm.ParentForm.SystemConfig1.SerialCOM3Mode = 16;
- this.ParentForm.ParentForm.OpenModbusCOM3();
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM3BaudRate = 0;
+ this.comboBoxSerialBaudRate.SelectedIndexChanged -= new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
+ this.comboBoxSerialBaudRate.SelectedIndex = 0;
+ this.comboBoxSerialBaudRate.SelectedIndexChanged += new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM3Mode = (int)DataStore.SerialMode.f16_OPC;
+ this.ParentForm.ParentForm.OpenModbusSlaveCOM3();
break;
case DataStore.MenuBottomConfiguration.SerialCOM4:
- this.ParentForm.ParentForm.CloseModbusCOM4();
+ this.ParentForm.ParentForm.CloseModbusSlaveCOM4();
this.ParentForm.ParentForm.CloseSerialCOM4();
- this.ParentForm.ParentForm.SystemConfig1.SerialCOM4Mode = 16;
- this.ParentForm.ParentForm.OpenModbusCOM4();
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM4BaudRate = 0;
+ this.comboBoxSerialBaudRate.SelectedIndexChanged -= new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
+ this.comboBoxSerialBaudRate.SelectedIndex = 0;
+ this.comboBoxSerialBaudRate.SelectedIndexChanged += new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM4Mode = (int)DataStore.SerialMode.f16_OPC;
+ this.ParentForm.ParentForm.OpenModbusSlaveCOM4();
break;
default:
break;
}
+ #endregion
+ }
+ else if (this.comboBoxSerialMode.SelectedIndex == (int)DataStore.SerialMode.f21_Impinj_Speedway_R420)
+ {
+ #region RFID Speedway R420
+ switch (temp)
+ {
+ case DataStore.MenuBottomConfiguration.SerialCOM1:
+ this.ParentForm.ParentForm.CloseModbusCOM1();
+ this.ParentForm.ParentForm.CloseModbusSlaveCOM1();
+ this.ParentForm.ParentForm.CloseSerialCOM1();
+ this.comboBoxSerialBaudRate.SelectedIndexChanged -= new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
+ this.comboBoxSerialBaudRate.SelectedIndex = 4;
+ this.comboBoxSerialBaudRate.SelectedIndexChanged += new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM1BaudRate = 4;
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM1Mode = (int)DataStore.SerialMode.f21_Impinj_Speedway_R420;
+ this.ParentForm.ParentForm.ChangeSerialCOM1FrameSeparateType(DataStore.SeparateType.ETXONLY);
+ this.ParentForm.ParentForm.OpenSerialCOM1();
+ break;
+ case DataStore.MenuBottomConfiguration.SerialCOM3:
+ this.ParentForm.ParentForm.CloseModbusCOM3();
+ this.ParentForm.ParentForm.CloseModbusSlaveCOM3();
+ this.ParentForm.ParentForm.CloseSerialCOM3();
+ this.comboBoxSerialBaudRate.SelectedIndexChanged -= new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
+ this.comboBoxSerialBaudRate.SelectedIndex = 4;
+ this.comboBoxSerialBaudRate.SelectedIndexChanged += new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM3BaudRate = 4;
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM3Mode = (int)DataStore.SerialMode.f21_Impinj_Speedway_R420;
+ this.ParentForm.ParentForm.ChangeSerialCOM3FrameSeparateType(DataStore.SeparateType.ETXONLY);
+ this.ParentForm.ParentForm.OpenSerialCOM3();
+ break;
+ case DataStore.MenuBottomConfiguration.SerialCOM4:
+ this.ParentForm.ParentForm.CloseModbusCOM4();
+ this.ParentForm.ParentForm.CloseModbusSlaveCOM4();
+ this.ParentForm.ParentForm.CloseSerialCOM4();
+ this.comboBoxSerialBaudRate.SelectedIndexChanged -= new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
+ this.comboBoxSerialBaudRate.SelectedIndex = 4;
+ this.comboBoxSerialBaudRate.SelectedIndexChanged += new EventHandler(this.comboBoxSerialBaudRate_SelectedIndexChanged);
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM4BaudRate = 4;
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM4Mode = (int)DataStore.SerialMode.f21_Impinj_Speedway_R420;
+ this.ParentForm.ParentForm.ChangeSerialCOM4FrameSeparateType(DataStore.SeparateType.ETXONLY);
+ this.ParentForm.ParentForm.OpenSerialCOM4();
+ break;
+ default:
+ break;
+ }
+ #endregion
+ }
+ else if (this.comboBoxSerialMode.SelectedIndex == (int)DataStore.SerialMode.f22_Modbus_RTU)
+ {
+ #region Modbus RTU
+ switch (temp)
+ {
+ case DataStore.MenuBottomConfiguration.SerialCOM1:
+ this.ParentForm.ParentForm.CloseModbusCOM1();
+ this.ParentForm.ParentForm.CloseModbusSlaveCOM1();
+ this.ParentForm.ParentForm.CloseSerialCOM1();
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM1BaudRate = baudrate;
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM1Mode = (int)DataStore.SerialMode.f22_Modbus_RTU;
+ if (this.ParentForm.ParentForm.SystemConfig2.ModbusRTUSelectFunction == 0)
+ this.ParentForm.ParentForm.OpenModbusSlaveCOM1();
+ else if (this.ParentForm.ParentForm.SystemConfig2.ModbusRTUSelectFunction == 1)
+ this.ParentForm.ParentForm.OpenModbusCOM1();
+ break;
+ case DataStore.MenuBottomConfiguration.SerialCOM3:
+ this.ParentForm.ParentForm.CloseModbusCOM3();
+ this.ParentForm.ParentForm.CloseModbusSlaveCOM3();
+ this.ParentForm.ParentForm.CloseSerialCOM3();
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM3BaudRate = baudrate;
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM3Mode = (int)DataStore.SerialMode.f22_Modbus_RTU;
+ if (this.ParentForm.ParentForm.SystemConfig2.ModbusRTUSelectFunction == 0)
+ this.ParentForm.ParentForm.OpenModbusSlaveCOM3();
+ else if (this.ParentForm.ParentForm.SystemConfig2.ModbusRTUSelectFunction == 1)
+ this.ParentForm.ParentForm.OpenModbusCOM3();
+ break;
+ case DataStore.MenuBottomConfiguration.SerialCOM4:
+ this.ParentForm.ParentForm.CloseModbusCOM4();
+ this.ParentForm.ParentForm.CloseModbusSlaveCOM4();
+ this.ParentForm.ParentForm.CloseSerialCOM4();
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM4BaudRate = baudrate;
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM4Mode = (int)DataStore.SerialMode.f22_Modbus_RTU;
+ if (this.ParentForm.ParentForm.SystemConfig2.ModbusRTUSelectFunction == 0)
+ this.ParentForm.ParentForm.OpenModbusSlaveCOM4();
+ else if (this.ParentForm.ParentForm.SystemConfig2.ModbusRTUSelectFunction == 1)
+ this.ParentForm.ParentForm.OpenModbusCOM4();
+ break;
+ default:
+ break;
+ }
+ #endregion
}
else
{
switch (temp)
{
case DataStore.MenuBottomConfiguration.SerialCOM1:
- this.ParentForm.ParentForm.CloseModbusCOM1();
+ this.ParentForm.ParentForm.CloseModbusSlaveCOM1();
this.ParentForm.ParentForm.CloseSerialCOM1();
this.ParentForm.ParentForm.SystemConfig1.SerialCOM1BaudRate = baudrate;
- this.ParentForm.ParentForm.SystemConfig1.SerialCOM1Mode = mode;
+ if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false && mode == this.ModeSTD2)
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM1Mode = (int)DataStore.SerialMode.f23_STD2;
+ else
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM1Mode = mode;
+ this.ParentForm.ParentForm.ChangeSerialCOM1FrameSeparateType(DataStore.SeparateType.STXANDETX);
this.ParentForm.ParentForm.OpenSerialCOM1();
break;
case DataStore.MenuBottomConfiguration.SerialCOM3:
- this.ParentForm.ParentForm.CloseModbusCOM3();
+ this.ParentForm.ParentForm.CloseModbusSlaveCOM3();
this.ParentForm.ParentForm.CloseSerialCOM3();
this.ParentForm.ParentForm.SystemConfig1.SerialCOM3BaudRate = baudrate;
- this.ParentForm.ParentForm.SystemConfig1.SerialCOM3Mode = mode;
+ if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false && mode == this.ModeSTD2)
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM3Mode = (int)DataStore.SerialMode.f23_STD2;
+ else
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM3Mode = mode;
+ this.ParentForm.ParentForm.ChangeSerialCOM3FrameSeparateType(DataStore.SeparateType.STXANDETX);
this.ParentForm.ParentForm.OpenSerialCOM3();
break;
case DataStore.MenuBottomConfiguration.SerialCOM4:
- this.ParentForm.ParentForm.CloseModbusCOM4();
+ this.ParentForm.ParentForm.CloseModbusSlaveCOM4();
this.ParentForm.ParentForm.CloseSerialCOM4();
this.ParentForm.ParentForm.SystemConfig1.SerialCOM4BaudRate = baudrate;
- this.ParentForm.ParentForm.SystemConfig1.SerialCOM4Mode = mode;
+ if (this.ParentForm.ParentForm.SystemConfig2.IsCommunicationOption == false && mode == this.ModeSTD2)
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM4Mode = (int)DataStore.SerialMode.f23_STD2;
+ else
+ this.ParentForm.ParentForm.SystemConfig1.SerialCOM4Mode = mode;
+ this.ParentForm.ParentForm.ChangeSerialCOM4FrameSeparateType(DataStore.SeparateType.STXANDETX);
this.ParentForm.ParentForm.OpenSerialCOM4();
break;
default:
break;
}
}
+
this.ParentForm.ParentForm.SaveSystemConfigurationFile1(this.ParentForm.ParentForm.SystemConfig1);
}
diff --git a/ITC81DB_0H/Controls/CenterInformation/ControlCenterInforSystem.cs b/ITC81DB_0H/Controls/CenterInformation/ControlCenterInforSystem.cs
index 87dfe47..0e8c3c1 100644
--- a/ITC81DB_0H/Controls/CenterInformation/ControlCenterInforSystem.cs
+++ b/ITC81DB_0H/Controls/CenterInformation/ControlCenterInforSystem.cs
@@ -66,7 +66,7 @@ namespace ITC81DB_0H.Controls
private void DefaultSetting()
{
this.labelSerialNo.Text = this.ParentForm.ParentForm.SystemConfig1.SerialNumber;
- this.labelDisplayVer.Text = "1.0.8";
+ this.labelDisplayVer.Text = "1.2.0";
}
public void UpdateMainBoardVersionDisplay(string version)
diff --git a/ITC81DB_0H/Controls/CenterSystem/ControlCenterSystemExternalOutput.cs b/ITC81DB_0H/Controls/CenterSystem/ControlCenterSystemExternalOutput.cs
index e8dbf52..5ef7455 100644
--- a/ITC81DB_0H/Controls/CenterSystem/ControlCenterSystemExternalOutput.cs
+++ b/ITC81DB_0H/Controls/CenterSystem/ControlCenterSystemExternalOutput.cs
@@ -437,10 +437,10 @@ namespace ITC81DB_0H.Controls
this.comboBoxSorter1Mode.Items.Add("정량");
this.comboBoxSorter1Mode.Items.Add("운전");
this.comboBoxSorter1Mode.Items.Add("개수");
+ this.comboBoxSorter1Mode.Items.Add("시건장치 제어"); // 7
//this.comboBoxSorter1Mode.Items.Add("카운터출력1");
//this.comboBoxSorter1Mode.Items.Add("카운터출력2");
//this.comboBoxSorter1Mode.Items.Add("ExNG");
- //this.comboBoxSorter1Mode.Items.Add("시건장치 제어"); // 10
this.comboBoxSorter1Mode.SelectedIndexChanged += new EventHandler(this.comboBoxSorter1Mode_SelectedIndexChanged);
this.comboBoxSorter2Mode.SelectedIndexChanged -= new EventHandler(this.comboBoxSorter2Mode_SelectedIndexChanged);
@@ -452,10 +452,10 @@ namespace ITC81DB_0H.Controls
this.comboBoxSorter2Mode.Items.Add("정량");
this.comboBoxSorter2Mode.Items.Add("운전");
this.comboBoxSorter2Mode.Items.Add("개수");
+ this.comboBoxSorter2Mode.Items.Add("시건장치 제어"); // 7
//this.comboBoxSorter2Mode.Items.Add("카운터출력1");
//this.comboBoxSorter2Mode.Items.Add("카운터출력2");
//this.comboBoxSorter2Mode.Items.Add("ExNG");
- //this.comboBoxSorter2Mode.Items.Add("시건장치 제어"); // 10
this.comboBoxSorter2Mode.SelectedIndexChanged += new EventHandler(this.comboBoxSorter2Mode_SelectedIndexChanged);
this.comboBoxSorter3Mode.SelectedIndexChanged -= new EventHandler(this.comboBoxSorter3Mode_SelectedIndexChanged);
@@ -467,10 +467,10 @@ namespace ITC81DB_0H.Controls
this.comboBoxSorter3Mode.Items.Add("정량");
this.comboBoxSorter3Mode.Items.Add("운전");
this.comboBoxSorter3Mode.Items.Add("개수");
+ this.comboBoxSorter3Mode.Items.Add("시건장치 제어"); // 7
//this.comboBoxSorter3Mode.Items.Add("카운터출력1");
//this.comboBoxSorter3Mode.Items.Add("카운터출력2");
//this.comboBoxSorter3Mode.Items.Add("ExNG");
- //this.comboBoxSorter3Mode.Items.Add("시건장치 제어"); // 10
this.comboBoxSorter3Mode.SelectedIndexChanged += new EventHandler(this.comboBoxSorter3Mode_SelectedIndexChanged);
this.comboBoxSorter4Mode.SelectedIndexChanged -= new EventHandler(this.comboBoxSorter4Mode_SelectedIndexChanged);
@@ -482,10 +482,10 @@ namespace ITC81DB_0H.Controls
this.comboBoxSorter4Mode.Items.Add("정량");
this.comboBoxSorter4Mode.Items.Add("운전");
this.comboBoxSorter4Mode.Items.Add("개수");
+ this.comboBoxSorter4Mode.Items.Add("시건장치 제어"); // 7
//this.comboBoxSorter4Mode.Items.Add("카운터출력1");
//this.comboBoxSorter4Mode.Items.Add("카운터출력2");
//this.comboBoxSorter4Mode.Items.Add("ExNG");
- //this.comboBoxSorter4Mode.Items.Add("시건장치 제어"); // 10
this.comboBoxSorter4Mode.SelectedIndexChanged += new EventHandler(this.comboBoxSorter4Mode_SelectedIndexChanged);
this.comboBoxSorter5Mode.SelectedIndexChanged -= new EventHandler(this.comboBoxSorter5Mode_SelectedIndexChanged);
@@ -497,6 +497,7 @@ namespace ITC81DB_0H.Controls
this.comboBoxSorter5Mode.Items.Add("정량");
this.comboBoxSorter5Mode.Items.Add("운전");
this.comboBoxSorter5Mode.Items.Add("개수");
+ this.comboBoxSorter5Mode.Items.Add("시건장치 제어"); // 7
//this.comboBoxSorter5Mode.Items.Add("카운터출력1");
//this.comboBoxSorter5Mode.Items.Add("카운터출력2");
//this.comboBoxSorter5Mode.Items.Add("ExNG");
@@ -511,6 +512,7 @@ namespace ITC81DB_0H.Controls
this.comboBoxSorter6Mode.Items.Add("정량");
this.comboBoxSorter6Mode.Items.Add("운전");
this.comboBoxSorter6Mode.Items.Add("개수");
+ this.comboBoxSorter6Mode.Items.Add("시건장치 제어"); // 7
//this.comboBoxSorter6Mode.Items.Add("카운터출력1");
//this.comboBoxSorter6Mode.Items.Add("카운터출력2");
//this.comboBoxSorter6Mode.Items.Add("ExNG");
diff --git a/ITC81DB_0H/Controls/Etc/ControlConfiSerialBarcode.cs b/ITC81DB_0H/Controls/Etc/ControlConfiSerialBarcode.cs
index c84131f..6f89192 100644
--- a/ITC81DB_0H/Controls/Etc/ControlConfiSerialBarcode.cs
+++ b/ITC81DB_0H/Controls/Etc/ControlConfiSerialBarcode.cs
@@ -490,7 +490,7 @@ namespace ITC81DB_0H
this.buttonUsingTimeout.Click -= new EventHandler(this.buttonUsingTimeout_Click);
// ETXOnly
- this.ParentForm.ParentForm.ChangeBarcodeFrameSeparateType(DataStore.SeparateType.ETXONLY);
+ this.ParentForm.ParentForm.ChangeSerialCOM3FrameSeparateType(DataStore.SeparateType.ETXONLY);
this.ParentForm.ParentForm.TransferSerialCOM3RawData(Barcode.ExitProgrammingMode);
this.ParentForm.UpdateMenuExceptBarcodeDisplay(true);
@@ -519,7 +519,7 @@ namespace ITC81DB_0H
#region Event Handler
private void buttonConnect_Click(object sender, EventArgs e)
{
- this.ParentForm.ParentForm.ChangeBarcodeFrameSeparateType(DataStore.SeparateType.ETXONLY);
+ this.ParentForm.ParentForm.ChangeSerialCOM3FrameSeparateType(DataStore.SeparateType.ETXONLY);
this.buttonConnect.Enabled = false;
this.ParentForm.UpdateMenuExceptBarcodeDisplay(false);
@@ -667,7 +667,7 @@ namespace ITC81DB_0H
private void buttonSave_Click(object sender, EventArgs e)
{
- this.ParentForm.ParentForm.ChangeBarcodeFrameSeparateType(DataStore.SeparateType.NONEFRAME_READTIMEOUT);
+ this.ParentForm.ParentForm.ChangeSerialCOM3FrameSeparateType(DataStore.SeparateType.NONEFRAME_READTIMEOUT);
this.ParentForm.ParentForm.TransferSerialCOM3(Barcode.SavePermanently);
this.buttonSave.Visible = false;
this.labelWarning.Visible = false;
diff --git a/ITC81DB_0H/Controls/MainDisplay/ControlMainDisplayMenu.Designer.cs b/ITC81DB_0H/Controls/MainDisplay/ControlMainDisplayMenu.Designer.cs
index 221221f..fe1aa64 100644
--- a/ITC81DB_0H/Controls/MainDisplay/ControlMainDisplayMenu.Designer.cs
+++ b/ITC81DB_0H/Controls/MainDisplay/ControlMainDisplayMenu.Designer.cs
@@ -48,13 +48,17 @@
this.buttonBypassDirection = new SmartX.SmartButton();
this.buttonBypassOnce = new SmartX.SmartButton();
this.labelTitleBypass = new SmartX.SmartLabel();
+ this.labelTitleDryContact = new SmartX.SmartLabel();
+ this.smartSeparatorLine3 = new SmartX.SmartSeparatorLine();
+ this.smartSeparatorLine2 = new SmartX.SmartSeparatorLine();
+ this.labelTitleDryContact4 = new SmartX.SmartLabel();
+ this.labelTitleDryContact3 = new SmartX.SmartLabel();
+ this.labelTitleDryContact2 = new SmartX.SmartLabel();
+ this.labelTitleDryContact1 = new SmartX.SmartLabel();
this.buttonDry1 = new SmartX.SmartButton();
this.buttonDry2 = new SmartX.SmartButton();
this.buttonDry3 = new SmartX.SmartButton();
this.buttonDry4 = new SmartX.SmartButton();
- this.labelTitleDryContact = new SmartX.SmartLabel();
- this.smartSeparatorLine3 = new SmartX.SmartSeparatorLine();
- this.smartSeparatorLine2 = new SmartX.SmartSeparatorLine();
this.groupBoxSorter.SuspendLayout();
this.SuspendLayout();
//
@@ -334,7 +338,7 @@
this.smartSeparatorLine1.Line2Visible = true;
this.smartSeparatorLine1.Line2Width = 1F;
this.smartSeparatorLine1.LineDirection = SmartX.SmartSeparatorLine.DIR.Vertical;
- this.smartSeparatorLine1.Location = new System.Drawing.Point(346, 13);
+ this.smartSeparatorLine1.Location = new System.Drawing.Point(342, 13);
this.smartSeparatorLine1.Name = "smartSeparatorLine1";
this.smartSeparatorLine1.Size = new System.Drawing.Size(2, 190);
this.smartSeparatorLine1.TabIndex = 144;
@@ -352,7 +356,7 @@
this.buttonBypassRun.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonBypassRun.DownImage")));
this.buttonBypassRun.GroupID = 0;
this.buttonBypassRun.InitVisible = true;
- this.buttonBypassRun.Location = new System.Drawing.Point(395, 132);
+ this.buttonBypassRun.Location = new System.Drawing.Point(384, 132);
this.buttonBypassRun.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL;
this.buttonBypassRun.Name = "buttonBypassRun";
this.buttonBypassRun.NestedClickEventPrevent = false;
@@ -383,7 +387,7 @@
this.buttonBypassDirection.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonBypassDirection.DownImage")));
this.buttonBypassDirection.GroupID = 0;
this.buttonBypassDirection.InitVisible = true;
- this.buttonBypassDirection.Location = new System.Drawing.Point(368, 58);
+ this.buttonBypassDirection.Location = new System.Drawing.Point(357, 58);
this.buttonBypassDirection.Mode = SmartX.SmartButton.BUTTONMODE.PUSH;
this.buttonBypassDirection.Name = "buttonBypassDirection";
this.buttonBypassDirection.NestedClickEventPrevent = false;
@@ -414,7 +418,7 @@
this.buttonBypassOnce.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonBypassOnce.DownImage")));
this.buttonBypassOnce.GroupID = 0;
this.buttonBypassOnce.InitVisible = true;
- this.buttonBypassOnce.Location = new System.Drawing.Point(368, 89);
+ this.buttonBypassOnce.Location = new System.Drawing.Point(357, 89);
this.buttonBypassOnce.Mode = SmartX.SmartButton.BUTTONMODE.PUSH;
this.buttonBypassOnce.Name = "buttonBypassOnce";
this.buttonBypassOnce.NestedClickEventPrevent = false;
@@ -444,7 +448,7 @@
this.labelTitleBypass.ForeColor = System.Drawing.Color.White;
this.labelTitleBypass.InitVisible = true;
this.labelTitleBypass.LineSpacing = 0F;
- this.labelTitleBypass.Location = new System.Drawing.Point(368, 16);
+ this.labelTitleBypass.Location = new System.Drawing.Point(357, 16);
this.labelTitleBypass.Name = "labelTitleBypass";
this.labelTitleBypass.Size = new System.Drawing.Size(100, 20);
this.labelTitleBypass.TabIndex = 687;
@@ -453,142 +457,6 @@
this.labelTitleBypass.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle;
this.labelTitleBypass.Wordwrap = false;
//
- // buttonDry1
- //
- this.buttonDry1.BackPictureBox = null;
- this.buttonDry1.BackPictureBox1 = null;
- this.buttonDry1.BackPictureBox2 = null;
- this.buttonDry1.ButtonColor = System.Drawing.Color.Gray;
- this.buttonDry1.ButtonImageAutoSize = true;
- this.buttonDry1.ColorKeySamplePosition = new System.Drawing.Point(0, 0);
- this.buttonDry1.DisableImage = ((System.Drawing.Image)(resources.GetObject("buttonDry1.DisableImage")));
- this.buttonDry1.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonDry1.DownImage")));
- this.buttonDry1.Font = new System.Drawing.Font("Arial", 20F, System.Drawing.FontStyle.Bold);
- this.buttonDry1.GroupID = 0;
- this.buttonDry1.InitVisible = true;
- this.buttonDry1.Location = new System.Drawing.Point(543, 68);
- this.buttonDry1.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL;
- this.buttonDry1.Name = "buttonDry1";
- this.buttonDry1.NestedClickEventPrevent = false;
- this.buttonDry1.OutlinePixel = 1;
- this.buttonDry1.RepeatInterval = 200;
- this.buttonDry1.RepeatIntervalAccelerate = null;
- this.buttonDry1.SafeInterval = 200;
- this.buttonDry1.Size = new System.Drawing.Size(50, 50);
- this.buttonDry1.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE;
- this.buttonDry1.TabIndex = 692;
- this.buttonDry1.Text = "1";
- this.buttonDry1.TextColor = System.Drawing.Color.White;
- this.buttonDry1.TextDownColor = System.Drawing.Color.White;
- this.buttonDry1.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle;
- this.buttonDry1.TextLocation = new System.Drawing.Point(0, 0);
- this.buttonDry1.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle;
- this.buttonDry1.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonDry1.UpImage")));
- this.buttonDry1.Visible = false;
- this.buttonDry1.Click += new System.EventHandler(this.buttonDryContact_Click);
- //
- // buttonDry2
- //
- this.buttonDry2.BackPictureBox = null;
- this.buttonDry2.BackPictureBox1 = null;
- this.buttonDry2.BackPictureBox2 = null;
- this.buttonDry2.ButtonColor = System.Drawing.Color.Gray;
- this.buttonDry2.ButtonImageAutoSize = true;
- this.buttonDry2.ColorKeySamplePosition = new System.Drawing.Point(0, 0);
- this.buttonDry2.DisableImage = ((System.Drawing.Image)(resources.GetObject("buttonDry2.DisableImage")));
- this.buttonDry2.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonDry2.DownImage")));
- this.buttonDry2.Font = new System.Drawing.Font("Arial", 20F, System.Drawing.FontStyle.Bold);
- this.buttonDry2.GroupID = 0;
- this.buttonDry2.InitVisible = true;
- this.buttonDry2.Location = new System.Drawing.Point(599, 68);
- this.buttonDry2.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL;
- this.buttonDry2.Name = "buttonDry2";
- this.buttonDry2.NestedClickEventPrevent = false;
- this.buttonDry2.OutlinePixel = 1;
- this.buttonDry2.RepeatInterval = 200;
- this.buttonDry2.RepeatIntervalAccelerate = null;
- this.buttonDry2.SafeInterval = 200;
- this.buttonDry2.Size = new System.Drawing.Size(50, 50);
- this.buttonDry2.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE;
- this.buttonDry2.TabIndex = 691;
- this.buttonDry2.Text = "2";
- this.buttonDry2.TextColor = System.Drawing.Color.White;
- this.buttonDry2.TextDownColor = System.Drawing.Color.White;
- this.buttonDry2.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle;
- this.buttonDry2.TextLocation = new System.Drawing.Point(0, 0);
- this.buttonDry2.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle;
- this.buttonDry2.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonDry2.UpImage")));
- this.buttonDry2.Visible = false;
- this.buttonDry2.Click += new System.EventHandler(this.buttonDryContact_Click);
- //
- // buttonDry3
- //
- this.buttonDry3.BackPictureBox = null;
- this.buttonDry3.BackPictureBox1 = null;
- this.buttonDry3.BackPictureBox2 = null;
- this.buttonDry3.ButtonColor = System.Drawing.Color.Gray;
- this.buttonDry3.ButtonImageAutoSize = true;
- this.buttonDry3.ColorKeySamplePosition = new System.Drawing.Point(0, 0);
- this.buttonDry3.DisableImage = ((System.Drawing.Image)(resources.GetObject("buttonDry3.DisableImage")));
- this.buttonDry3.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonDry3.DownImage")));
- this.buttonDry3.Font = new System.Drawing.Font("Arial", 20F, System.Drawing.FontStyle.Bold);
- this.buttonDry3.GroupID = 0;
- this.buttonDry3.InitVisible = true;
- this.buttonDry3.Location = new System.Drawing.Point(543, 124);
- this.buttonDry3.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL;
- this.buttonDry3.Name = "buttonDry3";
- this.buttonDry3.NestedClickEventPrevent = false;
- this.buttonDry3.OutlinePixel = 1;
- this.buttonDry3.RepeatInterval = 200;
- this.buttonDry3.RepeatIntervalAccelerate = null;
- this.buttonDry3.SafeInterval = 200;
- this.buttonDry3.Size = new System.Drawing.Size(50, 50);
- this.buttonDry3.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE;
- this.buttonDry3.TabIndex = 690;
- this.buttonDry3.Text = "3";
- this.buttonDry3.TextColor = System.Drawing.Color.White;
- this.buttonDry3.TextDownColor = System.Drawing.Color.White;
- this.buttonDry3.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle;
- this.buttonDry3.TextLocation = new System.Drawing.Point(0, 0);
- this.buttonDry3.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle;
- this.buttonDry3.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonDry3.UpImage")));
- this.buttonDry3.Visible = false;
- this.buttonDry3.Click += new System.EventHandler(this.buttonDryContact_Click);
- //
- // buttonDry4
- //
- this.buttonDry4.BackPictureBox = null;
- this.buttonDry4.BackPictureBox1 = null;
- this.buttonDry4.BackPictureBox2 = null;
- this.buttonDry4.ButtonColor = System.Drawing.Color.Gray;
- this.buttonDry4.ButtonImageAutoSize = true;
- this.buttonDry4.ColorKeySamplePosition = new System.Drawing.Point(0, 0);
- this.buttonDry4.DisableImage = ((System.Drawing.Image)(resources.GetObject("buttonDry4.DisableImage")));
- this.buttonDry4.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonDry4.DownImage")));
- this.buttonDry4.Font = new System.Drawing.Font("Arial", 20F, System.Drawing.FontStyle.Bold);
- this.buttonDry4.GroupID = 0;
- this.buttonDry4.InitVisible = true;
- this.buttonDry4.Location = new System.Drawing.Point(599, 124);
- this.buttonDry4.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL;
- this.buttonDry4.Name = "buttonDry4";
- this.buttonDry4.NestedClickEventPrevent = false;
- this.buttonDry4.OutlinePixel = 1;
- this.buttonDry4.RepeatInterval = 200;
- this.buttonDry4.RepeatIntervalAccelerate = null;
- this.buttonDry4.SafeInterval = 200;
- this.buttonDry4.Size = new System.Drawing.Size(50, 50);
- this.buttonDry4.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE;
- this.buttonDry4.TabIndex = 689;
- this.buttonDry4.Text = "4";
- this.buttonDry4.TextColor = System.Drawing.Color.White;
- this.buttonDry4.TextDownColor = System.Drawing.Color.White;
- this.buttonDry4.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle;
- this.buttonDry4.TextLocation = new System.Drawing.Point(0, 0);
- this.buttonDry4.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle;
- this.buttonDry4.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonDry4.UpImage")));
- this.buttonDry4.Visible = false;
- this.buttonDry4.Click += new System.EventHandler(this.buttonDryContact_Click);
- //
// labelTitleDryContact
//
this.labelTitleDryContact.BackPictureBox = this.pictureBox1;
@@ -600,7 +468,7 @@
this.labelTitleDryContact.ForeColor = System.Drawing.Color.White;
this.labelTitleDryContact.InitVisible = true;
this.labelTitleDryContact.LineSpacing = 0F;
- this.labelTitleDryContact.Location = new System.Drawing.Point(499, 16);
+ this.labelTitleDryContact.Location = new System.Drawing.Point(494, 16);
this.labelTitleDryContact.Name = "labelTitleDryContact";
this.labelTitleDryContact.Size = new System.Drawing.Size(196, 20);
this.labelTitleDryContact.TabIndex = 694;
@@ -634,24 +502,244 @@
this.smartSeparatorLine2.Line2Visible = true;
this.smartSeparatorLine2.Line2Width = 1F;
this.smartSeparatorLine2.LineDirection = SmartX.SmartSeparatorLine.DIR.Vertical;
- this.smartSeparatorLine2.Location = new System.Drawing.Point(491, 13);
+ this.smartSeparatorLine2.Location = new System.Drawing.Point(472, 13);
this.smartSeparatorLine2.Name = "smartSeparatorLine2";
this.smartSeparatorLine2.Size = new System.Drawing.Size(2, 190);
this.smartSeparatorLine2.TabIndex = 696;
this.smartSeparatorLine2.Text = "smartSeparatorLine2";
//
+ // labelTitleDryContact4
+ //
+ this.labelTitleDryContact4.BackPictureBox = this.pictureBox1;
+ this.labelTitleDryContact4.BackPictureBox1 = null;
+ this.labelTitleDryContact4.BackPictureBox2 = null;
+ this.labelTitleDryContact4.BorderColor = System.Drawing.Color.Black;
+ this.labelTitleDryContact4.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.labelTitleDryContact4.Font = new System.Drawing.Font("새굴림", 9F, System.Drawing.FontStyle.Bold);
+ this.labelTitleDryContact4.ForeColor = System.Drawing.Color.White;
+ this.labelTitleDryContact4.InitVisible = true;
+ this.labelTitleDryContact4.LineSpacing = 0F;
+ this.labelTitleDryContact4.Location = new System.Drawing.Point(480, 161);
+ this.labelTitleDryContact4.Name = "labelTitleDryContact4";
+ this.labelTitleDryContact4.Size = new System.Drawing.Size(154, 30);
+ this.labelTitleDryContact4.TabIndex = 707;
+ this.labelTitleDryContact4.Text = "시건장치 제어4";
+ this.labelTitleDryContact4.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle;
+ this.labelTitleDryContact4.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle;
+ this.labelTitleDryContact4.Visible = false;
+ this.labelTitleDryContact4.Wordwrap = false;
+ //
+ // labelTitleDryContact3
+ //
+ this.labelTitleDryContact3.BackPictureBox = this.pictureBox1;
+ this.labelTitleDryContact3.BackPictureBox1 = null;
+ this.labelTitleDryContact3.BackPictureBox2 = null;
+ this.labelTitleDryContact3.BorderColor = System.Drawing.Color.Black;
+ this.labelTitleDryContact3.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.labelTitleDryContact3.Font = new System.Drawing.Font("새굴림", 9F, System.Drawing.FontStyle.Bold);
+ this.labelTitleDryContact3.ForeColor = System.Drawing.Color.White;
+ this.labelTitleDryContact3.InitVisible = true;
+ this.labelTitleDryContact3.LineSpacing = 0F;
+ this.labelTitleDryContact3.Location = new System.Drawing.Point(480, 125);
+ this.labelTitleDryContact3.Name = "labelTitleDryContact3";
+ this.labelTitleDryContact3.Size = new System.Drawing.Size(154, 30);
+ this.labelTitleDryContact3.TabIndex = 706;
+ this.labelTitleDryContact3.Text = "시건장치 제어3";
+ this.labelTitleDryContact3.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle;
+ this.labelTitleDryContact3.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle;
+ this.labelTitleDryContact3.Visible = false;
+ this.labelTitleDryContact3.Wordwrap = false;
+ //
+ // labelTitleDryContact2
+ //
+ this.labelTitleDryContact2.BackPictureBox = this.pictureBox1;
+ this.labelTitleDryContact2.BackPictureBox1 = null;
+ this.labelTitleDryContact2.BackPictureBox2 = null;
+ this.labelTitleDryContact2.BorderColor = System.Drawing.Color.Black;
+ this.labelTitleDryContact2.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.labelTitleDryContact2.Font = new System.Drawing.Font("새굴림", 9F, System.Drawing.FontStyle.Bold);
+ this.labelTitleDryContact2.ForeColor = System.Drawing.Color.White;
+ this.labelTitleDryContact2.InitVisible = true;
+ this.labelTitleDryContact2.LineSpacing = 0F;
+ this.labelTitleDryContact2.Location = new System.Drawing.Point(480, 89);
+ this.labelTitleDryContact2.Name = "labelTitleDryContact2";
+ this.labelTitleDryContact2.Size = new System.Drawing.Size(154, 30);
+ this.labelTitleDryContact2.TabIndex = 705;
+ this.labelTitleDryContact2.Text = "시건장치 제어2";
+ this.labelTitleDryContact2.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle;
+ this.labelTitleDryContact2.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle;
+ this.labelTitleDryContact2.Visible = false;
+ this.labelTitleDryContact2.Wordwrap = false;
+ //
+ // labelTitleDryContact1
+ //
+ this.labelTitleDryContact1.BackPictureBox = this.pictureBox1;
+ this.labelTitleDryContact1.BackPictureBox1 = null;
+ this.labelTitleDryContact1.BackPictureBox2 = null;
+ this.labelTitleDryContact1.BorderColor = System.Drawing.Color.Black;
+ this.labelTitleDryContact1.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.labelTitleDryContact1.Font = new System.Drawing.Font("새굴림", 9F, System.Drawing.FontStyle.Bold);
+ this.labelTitleDryContact1.ForeColor = System.Drawing.Color.White;
+ this.labelTitleDryContact1.InitVisible = true;
+ this.labelTitleDryContact1.LineSpacing = 0F;
+ this.labelTitleDryContact1.Location = new System.Drawing.Point(480, 53);
+ this.labelTitleDryContact1.Name = "labelTitleDryContact1";
+ this.labelTitleDryContact1.Size = new System.Drawing.Size(154, 30);
+ this.labelTitleDryContact1.TabIndex = 704;
+ this.labelTitleDryContact1.Text = "시건장치 제어1";
+ this.labelTitleDryContact1.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle;
+ this.labelTitleDryContact1.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle;
+ this.labelTitleDryContact1.Visible = false;
+ this.labelTitleDryContact1.Wordwrap = false;
+ //
+ // buttonDry1
+ //
+ this.buttonDry1.BackPictureBox = null;
+ this.buttonDry1.BackPictureBox1 = null;
+ this.buttonDry1.BackPictureBox2 = null;
+ this.buttonDry1.ButtonColor = System.Drawing.Color.Gray;
+ this.buttonDry1.ButtonImageAutoSize = true;
+ this.buttonDry1.ColorKeySamplePosition = new System.Drawing.Point(0, 0);
+ this.buttonDry1.DisableImage = ((System.Drawing.Image)(resources.GetObject("buttonDry1.DisableImage")));
+ this.buttonDry1.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonDry1.DownImage")));
+ this.buttonDry1.Font = new System.Drawing.Font("Arial", 20F, System.Drawing.FontStyle.Bold);
+ this.buttonDry1.GroupID = 0;
+ this.buttonDry1.InitVisible = true;
+ this.buttonDry1.Location = new System.Drawing.Point(640, 53);
+ this.buttonDry1.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL;
+ this.buttonDry1.Name = "buttonDry1";
+ this.buttonDry1.NestedClickEventPrevent = false;
+ this.buttonDry1.OutlinePixel = 1;
+ this.buttonDry1.RepeatInterval = 200;
+ this.buttonDry1.RepeatIntervalAccelerate = null;
+ this.buttonDry1.SafeInterval = 200;
+ this.buttonDry1.Size = new System.Drawing.Size(50, 30);
+ this.buttonDry1.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE;
+ this.buttonDry1.TabIndex = 703;
+ this.buttonDry1.TextColor = System.Drawing.Color.White;
+ this.buttonDry1.TextDownColor = System.Drawing.Color.White;
+ this.buttonDry1.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle;
+ this.buttonDry1.TextLocation = new System.Drawing.Point(0, 0);
+ this.buttonDry1.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle;
+ this.buttonDry1.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonDry1.UpImage")));
+ this.buttonDry1.Visible = false;
+ this.buttonDry1.Click += new System.EventHandler(this.buttonDryContact_Click);
+ //
+ // buttonDry2
+ //
+ this.buttonDry2.BackPictureBox = null;
+ this.buttonDry2.BackPictureBox1 = null;
+ this.buttonDry2.BackPictureBox2 = null;
+ this.buttonDry2.ButtonColor = System.Drawing.Color.Gray;
+ this.buttonDry2.ButtonImageAutoSize = true;
+ this.buttonDry2.ColorKeySamplePosition = new System.Drawing.Point(0, 0);
+ this.buttonDry2.DisableImage = ((System.Drawing.Image)(resources.GetObject("buttonDry2.DisableImage")));
+ this.buttonDry2.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonDry2.DownImage")));
+ this.buttonDry2.Font = new System.Drawing.Font("Arial", 20F, System.Drawing.FontStyle.Bold);
+ this.buttonDry2.GroupID = 0;
+ this.buttonDry2.InitVisible = true;
+ this.buttonDry2.Location = new System.Drawing.Point(640, 89);
+ this.buttonDry2.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL;
+ this.buttonDry2.Name = "buttonDry2";
+ this.buttonDry2.NestedClickEventPrevent = false;
+ this.buttonDry2.OutlinePixel = 1;
+ this.buttonDry2.RepeatInterval = 200;
+ this.buttonDry2.RepeatIntervalAccelerate = null;
+ this.buttonDry2.SafeInterval = 200;
+ this.buttonDry2.Size = new System.Drawing.Size(50, 30);
+ this.buttonDry2.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE;
+ this.buttonDry2.TabIndex = 702;
+ this.buttonDry2.TextColor = System.Drawing.Color.White;
+ this.buttonDry2.TextDownColor = System.Drawing.Color.White;
+ this.buttonDry2.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle;
+ this.buttonDry2.TextLocation = new System.Drawing.Point(0, 0);
+ this.buttonDry2.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle;
+ this.buttonDry2.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonDry2.UpImage")));
+ this.buttonDry2.Visible = false;
+ this.buttonDry2.Click += new System.EventHandler(this.buttonDryContact_Click);
+ //
+ // buttonDry3
+ //
+ this.buttonDry3.BackPictureBox = null;
+ this.buttonDry3.BackPictureBox1 = null;
+ this.buttonDry3.BackPictureBox2 = null;
+ this.buttonDry3.ButtonColor = System.Drawing.Color.Gray;
+ this.buttonDry3.ButtonImageAutoSize = true;
+ this.buttonDry3.ColorKeySamplePosition = new System.Drawing.Point(0, 0);
+ this.buttonDry3.DisableImage = ((System.Drawing.Image)(resources.GetObject("buttonDry3.DisableImage")));
+ this.buttonDry3.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonDry3.DownImage")));
+ this.buttonDry3.Font = new System.Drawing.Font("Arial", 20F, System.Drawing.FontStyle.Bold);
+ this.buttonDry3.GroupID = 0;
+ this.buttonDry3.InitVisible = true;
+ this.buttonDry3.Location = new System.Drawing.Point(640, 125);
+ this.buttonDry3.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL;
+ this.buttonDry3.Name = "buttonDry3";
+ this.buttonDry3.NestedClickEventPrevent = false;
+ this.buttonDry3.OutlinePixel = 1;
+ this.buttonDry3.RepeatInterval = 200;
+ this.buttonDry3.RepeatIntervalAccelerate = null;
+ this.buttonDry3.SafeInterval = 200;
+ this.buttonDry3.Size = new System.Drawing.Size(50, 30);
+ this.buttonDry3.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE;
+ this.buttonDry3.TabIndex = 701;
+ this.buttonDry3.TextColor = System.Drawing.Color.White;
+ this.buttonDry3.TextDownColor = System.Drawing.Color.White;
+ this.buttonDry3.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle;
+ this.buttonDry3.TextLocation = new System.Drawing.Point(0, 0);
+ this.buttonDry3.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle;
+ this.buttonDry3.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonDry3.UpImage")));
+ this.buttonDry3.Visible = false;
+ this.buttonDry3.Click += new System.EventHandler(this.buttonDryContact_Click);
+ //
+ // buttonDry4
+ //
+ this.buttonDry4.BackPictureBox = null;
+ this.buttonDry4.BackPictureBox1 = null;
+ this.buttonDry4.BackPictureBox2 = null;
+ this.buttonDry4.ButtonColor = System.Drawing.Color.Gray;
+ this.buttonDry4.ButtonImageAutoSize = true;
+ this.buttonDry4.ColorKeySamplePosition = new System.Drawing.Point(0, 0);
+ this.buttonDry4.DisableImage = ((System.Drawing.Image)(resources.GetObject("buttonDry4.DisableImage")));
+ this.buttonDry4.DownImage = ((System.Drawing.Image)(resources.GetObject("buttonDry4.DownImage")));
+ this.buttonDry4.Font = new System.Drawing.Font("Arial", 20F, System.Drawing.FontStyle.Bold);
+ this.buttonDry4.GroupID = 0;
+ this.buttonDry4.InitVisible = true;
+ this.buttonDry4.Location = new System.Drawing.Point(640, 161);
+ this.buttonDry4.Mode = SmartX.SmartButton.BUTTONMODE.NORMAL;
+ this.buttonDry4.Name = "buttonDry4";
+ this.buttonDry4.NestedClickEventPrevent = false;
+ this.buttonDry4.OutlinePixel = 1;
+ this.buttonDry4.RepeatInterval = 200;
+ this.buttonDry4.RepeatIntervalAccelerate = null;
+ this.buttonDry4.SafeInterval = 200;
+ this.buttonDry4.Size = new System.Drawing.Size(50, 30);
+ this.buttonDry4.SpecialFunction = SmartX.SmartButton.SPECIALFUNC.NONE;
+ this.buttonDry4.TabIndex = 700;
+ this.buttonDry4.TextColor = System.Drawing.Color.White;
+ this.buttonDry4.TextDownColor = System.Drawing.Color.White;
+ this.buttonDry4.TextHAlign = SmartX.SmartButton.TextHorAlign.Middle;
+ this.buttonDry4.TextLocation = new System.Drawing.Point(0, 0);
+ this.buttonDry4.TextVAlign = SmartX.SmartButton.TextVerAlign.Middle;
+ this.buttonDry4.UpImage = ((System.Drawing.Image)(resources.GetObject("buttonDry4.UpImage")));
+ this.buttonDry4.Visible = false;
+ this.buttonDry4.Click += new System.EventHandler(this.buttonDryContact_Click);
+ //
// ControlMainDisplayMenu
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
- this.Controls.Add(this.smartSeparatorLine2);
- this.Controls.Add(this.labelTitleDryContact);
- this.Controls.Add(this.smartSeparatorLine1);
- this.Controls.Add(this.smartSeparatorLine3);
+ this.Controls.Add(this.labelTitleDryContact4);
+ this.Controls.Add(this.labelTitleDryContact3);
+ this.Controls.Add(this.labelTitleDryContact2);
+ this.Controls.Add(this.labelTitleDryContact1);
this.Controls.Add(this.buttonDry1);
this.Controls.Add(this.buttonDry2);
this.Controls.Add(this.buttonDry3);
this.Controls.Add(this.buttonDry4);
+ this.Controls.Add(this.smartSeparatorLine2);
+ this.Controls.Add(this.labelTitleDryContact);
+ this.Controls.Add(this.smartSeparatorLine1);
+ this.Controls.Add(this.smartSeparatorLine3);
this.Controls.Add(this.labelTitleBypass);
this.Controls.Add(this.buttonBypassRun);
this.Controls.Add(this.buttonBypassDirection);
@@ -686,13 +774,17 @@
private SmartX.SmartButton buttonBypassDirection;
private SmartX.SmartButton buttonBypassOnce;
private SmartX.SmartLabel labelTitleBypass;
+ private SmartX.SmartLabel labelTitleDryContact;
+ private SmartX.SmartSeparatorLine smartSeparatorLine3;
+ private SmartX.SmartSeparatorLine smartSeparatorLine2;
+ private SmartX.SmartLabel labelTitleDryContact4;
+ private SmartX.SmartLabel labelTitleDryContact3;
+ private SmartX.SmartLabel labelTitleDryContact2;
+ private SmartX.SmartLabel labelTitleDryContact1;
private SmartX.SmartButton buttonDry1;
private SmartX.SmartButton buttonDry2;
private SmartX.SmartButton buttonDry3;
private SmartX.SmartButton buttonDry4;
- private SmartX.SmartLabel labelTitleDryContact;
- private SmartX.SmartSeparatorLine smartSeparatorLine3;
- private SmartX.SmartSeparatorLine smartSeparatorLine2;
}
}
diff --git a/ITC81DB_0H/Controls/MainDisplay/ControlMainDisplayMenu.cs b/ITC81DB_0H/Controls/MainDisplay/ControlMainDisplayMenu.cs
index 4e3f0bf..b1fc2ab 100644
--- a/ITC81DB_0H/Controls/MainDisplay/ControlMainDisplayMenu.cs
+++ b/ITC81DB_0H/Controls/MainDisplay/ControlMainDisplayMenu.cs
@@ -62,6 +62,10 @@ namespace ITC81DB_0H.Controls
this.labelTitleSorterDelayTime.Text = "Delay time";
this.labelTitleSorterRunTime.Text = "Run time";
this.labelTitleDryContact.Text = "Latch control";
+ this.labelTitleDryContact1.Text = "Latch control1";
+ this.labelTitleDryContact2.Text = "Latch control2";
+ this.labelTitleDryContact3.Text = "Latch control3";
+ this.labelTitleDryContact4.Text = "Latch control4";
this.comboBoxSorterA.SelectedIndexChanged -= new EventHandler(this.comboBoxSorterA_SelectedIndexChanged);
this.comboBoxSorterA.Items.Clear();
@@ -98,6 +102,10 @@ namespace ITC81DB_0H.Controls
this.labelTitleSorterDelayTime.Text = "延迟时间";
this.labelTitleSorterRunTime.Text = "运行时间";
this.labelTitleDryContact.Text = "闩锁控制";
+ this.labelTitleDryContact1.Text = "闩锁控制1";
+ this.labelTitleDryContact2.Text = "闩锁控制2";
+ this.labelTitleDryContact3.Text = "闩锁控制3";
+ this.labelTitleDryContact4.Text = "闩锁控制4";
this.comboBoxSorterA.SelectedIndexChanged -= new EventHandler(this.comboBoxSorterA_SelectedIndexChanged);
this.comboBoxSorterA.Items.Clear();
@@ -138,6 +146,10 @@ namespace ITC81DB_0H.Controls
this.labelTitleSorterDelayTime.Text = "задержки";
this.labelTitleSorterRunTime.Text = "выполнения";
this.labelTitleDryContact.Text = "Сухой контакт";
+ this.labelTitleDryContact1.Text = "контроль защелки1";
+ this.labelTitleDryContact2.Text = "контроль защелки2";
+ this.labelTitleDryContact3.Text = "контроль защелки3";
+ this.labelTitleDryContact4.Text = "контроль защелки4";
this.comboBoxSorterA.SelectedIndexChanged -= new EventHandler(this.comboBoxSorterA_SelectedIndexChanged);
this.comboBoxSorterA.Items.Clear();
@@ -173,9 +185,11 @@ namespace ITC81DB_0H.Controls
this.labelTitleSorterMode.Text = "Modus";
this.labelTitleSorterDelayTime.Text = "Vezögerung";
this.labelTitleSorterRunTime.Text = "Laufzeit";
- this.labelTitleDryContact.Text = "Trockener Kontakt";
-
this.labelTitleDryContact.Text = "Verriegelungssteuerung";
+ this.labelTitleDryContact1.Text = "Verriegelungssteuerung1";
+ this.labelTitleDryContact2.Text = "Verriegelungssteuerung2";
+ this.labelTitleDryContact3.Text = "Verriegelungssteuerung3";
+ this.labelTitleDryContact4.Text = "Verriegelungssteuerung4";
this.comboBoxSorterA.SelectedIndexChanged -= new EventHandler(this.comboBoxSorterA_SelectedIndexChanged);
this.comboBoxSorterA.Items.Clear();
@@ -211,9 +225,11 @@ namespace ITC81DB_0H.Controls
this.labelTitleSorterMode.Text = "모드";
this.labelTitleSorterDelayTime.Text = "지연시간";
this.labelTitleSorterRunTime.Text = "동작시간";
- this.labelTitleDryContact.Text = "Dry Contact";
-
this.labelTitleDryContact.Text = "시건장치 제어";
+ this.labelTitleDryContact1.Text = "시건장치 제어1";
+ this.labelTitleDryContact2.Text = "시건장치 제어2";
+ this.labelTitleDryContact3.Text = "시건장치 제어3";
+ this.labelTitleDryContact4.Text = "시건장치 제어4";
this.comboBoxSorterA.SelectedIndexChanged -= new EventHandler(this.comboBoxSorterA_SelectedIndexChanged);
this.comboBoxSorterA.Items.Clear();
@@ -265,7 +281,12 @@ namespace ITC81DB_0H.Controls
}
public void UpdateDryContactControl(SystemParameter3 item)
{
- if (item.ExternalOut1Mode == "10" || item.ExternalOut2Mode == "10" || item.ExternalOut3Mode == "10" || item.ExternalOut4Mode == "10")
+ int count = 0;
+
+ if (item.ExternalOut1Mode == ((int)DataStore.ExternalOutputMode.LatchCountrol).ToString()
+ || item.ExternalOut2Mode == ((int)DataStore.ExternalOutputMode.LatchCountrol).ToString()
+ || item.ExternalOut3Mode == ((int)DataStore.ExternalOutputMode.LatchCountrol).ToString()
+ || item.ExternalOut4Mode == ((int)DataStore.ExternalOutputMode.LatchCountrol).ToString())
{
this.labelTitleDryContact.Visible = true;
this.buttonDry1.Visible = true;
@@ -282,25 +303,97 @@ namespace ITC81DB_0H.Controls
this.buttonDry4.Visible = false;
}
- if (item.ExternalOut1Mode == "10")
- this.buttonDry1.Enabled = true;
+ if (item.ExternalOut1Mode == ((int)DataStore.ExternalOutputMode.LatchCountrol).ToString())
+ {
+ this.labelTitleDryContact1.Visible = true;
+ this.buttonDry1.Visible = true;
+ count++;
+ }
else
- this.buttonDry1.Enabled = false;
+ {
+ this.labelTitleDryContact1.Visible = false;
+ this.buttonDry1.Visible = false;
+ }
- if (item.ExternalOut2Mode == "10")
- this.buttonDry2.Enabled = true;
+ if (item.ExternalOut2Mode == ((int)DataStore.ExternalOutputMode.LatchCountrol).ToString())
+ {
+ if (count == 1)
+ {
+ this.labelTitleDryContact2.Location = new Point(480, 89);
+ this.buttonDry2.Location = new Point(640, 89);
+ }
+ else if (count == 0)
+ {
+ this.labelTitleDryContact2.Location = new Point(480, 53);
+ this.buttonDry2.Location = new Point(640, 53);
+ }
+ this.labelTitleDryContact2.Visible = true;
+ this.buttonDry2.Visible = true;
+ count++;
+ }
else
- this.buttonDry2.Enabled = false;
+ {
+ this.labelTitleDryContact2.Visible = false;
+ this.buttonDry2.Visible = false;
+ }
- if (item.ExternalOut3Mode == "10")
- this.buttonDry3.Enabled = true;
+ if (item.ExternalOut3Mode == ((int)DataStore.ExternalOutputMode.LatchCountrol).ToString())
+ {
+ if (count == 2)
+ {
+ this.labelTitleDryContact3.Location = new Point(480, 125);
+ this.buttonDry3.Location = new Point(640, 125);
+ }
+ else if (count == 1)
+ {
+ this.labelTitleDryContact3.Location = new Point(480, 89);
+ this.buttonDry3.Location = new Point(640, 89);
+ }
+ else if (count == 0)
+ {
+ this.labelTitleDryContact3.Location = new Point(480, 53);
+ this.buttonDry3.Location = new Point(640, 53);
+ }
+ this.labelTitleDryContact3.Visible = true;
+ this.buttonDry3.Visible = true;
+ count++;
+ }
else
- this.buttonDry3.Enabled = false;
+ {
+ this.labelTitleDryContact3.Visible = false;
+ this.buttonDry3.Visible = false;
+ }
- if (item.ExternalOut4Mode == "10")
- this.buttonDry4.Enabled = true;
+ if (item.ExternalOut4Mode == ((int)DataStore.ExternalOutputMode.LatchCountrol).ToString())
+ {
+ if (count == 3)
+ {
+ this.labelTitleDryContact4.Location = new Point(480, 161);
+ this.buttonDry4.Location = new Point(640, 161);
+ }
+ else if (count == 2)
+ {
+ this.labelTitleDryContact4.Location = new Point(480, 125);
+ this.buttonDry4.Location = new Point(640, 125);
+ }
+ else if (count == 1)
+ {
+ this.labelTitleDryContact4.Location = new Point(480, 89);
+ this.buttonDry4.Location = new Point(640, 89);
+ }
+ else if (count == 0)
+ {
+ this.labelTitleDryContact4.Location = new Point(480, 53);
+ this.buttonDry4.Location = new Point(640, 53);
+ }
+ this.labelTitleDryContact4.Visible = true;
+ this.buttonDry4.Visible = true;
+ }
else
- this.buttonDry4.Enabled = false;
+ {
+ this.labelTitleDryContact4.Visible = false;
+ this.buttonDry4.Visible = false;
+ }
}
public void UpdateControl(JudgmentSetItem item, SystemParameter4 parameter)
{
diff --git a/ITC81DB_0H/Controls/MainDisplay/ControlMainDisplayMenu.resx b/ITC81DB_0H/Controls/MainDisplay/ControlMainDisplayMenu.resx
index 2e51539..9feb21d 100644
--- a/ITC81DB_0H/Controls/MainDisplay/ControlMainDisplayMenu.resx
+++ b/ITC81DB_0H/Controls/MainDisplay/ControlMainDisplayMenu.resx
@@ -726,838 +726,790 @@
- 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
+ iVBORw0KGgoAAAANSUhEUgAAADIAAAAeCAIAAADhM9qrAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp
- 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
+ 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
+ RU5ErkJggg==
- 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
+ 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
- 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
+ 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
- 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
+ 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
- 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
- A9C+Zf/SOPX/AAAAAElFTkSuQmCC
+ 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
- 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
+ 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
- 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
+ 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
+ RU5ErkJggg==
- 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
+ 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
- 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
+ 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
- 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
+ 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
- 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
- A9C+Zf/SOPX/AAAAAElFTkSuQmCC
+ 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
- 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
+ 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
- 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
+ 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
+ RU5ErkJggg==
- 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
+ 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
- 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
+ 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
- iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
+ 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
- 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
- A9C+Zf/SOPX/AAAAAElFTkSuQmCC
+ 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
- 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
+ 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
- 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
+ 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
+ RU5ErkJggg==
- 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
+ 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
- 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
+ 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
- iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
+ 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
- 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/gUDmPP8usTo0wAAAAlwSFlzAAAOxAAADsQBlSsOGwAABa5JREFUaEPVmulTU1cY
- xg/Y/gG1y4d+caloq1Nn2k5t0ZZxqW3ZZAlIWJQ1hAgBw74IjAIVBUFA2RIgLGEViGER2dcQ9n2JC7hW
- +1c8fW/EUfS7cjLzm8l7z705z3PfnOckM5fRC++y7ZNPsc/qD9jFpCJQrUN4ix5RdyY+CuG6EUjKtLCO
- SIaF5VGYb9v2nt4NNh+wOHwUAaomZOtXUDr3GJUrL1BpfIly439Qr778oAhzCnMLGkrmHuHayAr8Cuux
- 6yfLTZo3ePXGzNwcVn5yOnkZqvknKF5+gay5Z7g8/QQpU49xcZKY+IDQfJcIYW5BQzZpUZIm1fxjRLaN
- wdLdH8zM7H0jVr5y5BiMKFn+FxkzT5E0/gixhnVE6tcQPvLQhOID83peQYOgJXniETJnn0K19Nyk9ZfT
- PpuN7D1yHFeHllC4+Nx0B2INa4jQP6AP2zqEE4ImQVsqaSxYeIaIFgN2/HDolRFhYUvKdMidXkcKtTJK
- T3dj+AHOb1EEbdGkMZW05kyuwbewDmZm5mDfHv0LaQMLuELfw2hqoWKILtjiCBpjSGvG9FOk9M1j989H
- wGxj0pAxdh8XqGWK4fsIG+IDQWvS2Dqujt7DSXk8mJ+yCVfG1xFNiypskE7iiBjSnD62Bs/rFWAhDf1I
- IWcKGggduMcV4dSZVDIiKW8FC20eRjIZEQbknCF05aLhIYI0HWDypiEkja4htJ8GOUPQnEwJJq0iIyGN
- g0ikIqTPyB3yfiMSaX8JrLwDFtwwgAQqgntXuSOkbxWJlF6S8nawc/X9SKBNJriHBjkjhMwk0oIPULeB
- yer6EE8bzLnuVe4QzFygBe9fRqkVVNuDOCpkXSvcca57BQmD9+BXqgOT1nSbjAR1LXOHrHsZ8YNG+Jbc
- BgvUdCGWjEg7l7lDMBM3YISPUgsmqepELG0u0rtL3BHUuYS4/lV4FzeD+VfeRQxlcuCdRe6QdiwitncF
- Z4qa6EdjRQeie42QtC9yh2AmpmcFXoWNYL7qdkRRjAW0LXCHpH0B0ZRcngUNYD5lbYikTPZvXeAOwUw0
- xbBHfj2Yd2krIqjwa5nnDv/WeURRcrnfrAM7q2pBOEWZr26OO/xa5hBJySXOqwU7o9RBQYXP7Vnu8NXN
- IuLuIsS5ZMSrWAtFxxK8m2e5w0c7i3BKLrecajCPomacp+Js0wx3eDfPQEHJ5XpdA+Ze0IQwKs40TnPH
- 2aZpnG+bh0tWFZg4vxGhFGNet6a5QzATRsklulYJ5nbzFuRUeDZMcYfXrSkyMgfnzAqw0zcaEKKbh0fd
- JHd41k8ilJLLKaMczDW3HsGUye61E9zhUTcBOcWw4xU1mEtOLWRUuNWMc4e4dhzB2hk4pJeCia7XQEaZ
- 7KahQc4QV5MRiuFT6SVgztnVCKLCtWqMO05rxiCj5LK/rAJzytJASoVLpYE7XKsMCGqcgt0/SjDHa1UI
- bJiGqNzAHS4VZKRhErZpxWAOmZVkZArO6lHuEJWPQlo/AZvUIjDrlEIE0Op3LtPDiTNEZEZSY8DJhGyw
- Y1Hp8K/Wm4w4lo5whUith79mGL+FJIH96CGDj7oHorIROJQMc4UrGfEp68L3zt5gXx88RH8VtXCjNp1S
- DnODAyEmzW55jfjS4gCY8MTDseirECt7TIP2xUNc4KgahruyE7+HXXr9BATDV/sOwiatBM6qAdgVD8K2
- aGsjaHQu7oN1qgrbd+598+SDwJ5j9nDJ1cKRTrIrpAsKtiaCNqfCPrjmabHD8sRrE2+MCO3Z+6fI5NLh
- RofpIpv8AVhvEQQtggmHvHb8TRp3W1m/beItIxt8secADgcnwz6zBqdyWmB3owu2+b2wvvlxsCXsSYOg
- xT6jBr9K4/HZTotNmjd47wDMqDuff7Mf++09cSQ4CcfjsnEiPuejcDw2C4dlifjORoztu/a9+2jTBgz/
- A9C+Zf/SOPX/AAAAAElFTkSuQmCC
+ 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
diff --git a/ITC81DB_0H/DataStore.cs b/ITC81DB_0H/DataStore.cs
index 3eebadb..687d081 100644
--- a/ITC81DB_0H/DataStore.cs
+++ b/ITC81DB_0H/DataStore.cs
@@ -294,6 +294,95 @@ namespace ITC81DB_0H
COM3 = 1,
COM4 = 2,
}
+
+ public enum SerialMode
+ {
+ f0_None = 0,
+ f1_STD1,
+ f2_Remote,
+ f3_Printer,
+ f4_imaje_9410_OPT1,
+ f5_imaje_9028_OPT1 = 5,
+ f6_OPT0,
+ f7_imaje_9410_OPT2,
+ f8_imaje_9028_OPT2,
+ f9_Hitachi,
+ f10_MACSA_Laser = 10,
+ f11_Markoprint,
+ f12_alphaJET,
+ f13_Marking_VJ1510,
+ f14_OPT1,
+ f15_OPT2 = 15,
+ f16_OPC,
+ f17_OPT3,
+ f18_HP_200,
+ f19_SmartJet,
+ f20_imaje_9410_OPT3 = 20,
+ f21_Impinj_Speedway_R420 = 21, // RFID
+ f22_Modbus_RTU,
+ f23_STD2,
+ }
+
+ public enum EthernetMode
+ {
+ f0_None = 0,
+ f1_STD1,
+ f2_Remote,
+ f3_Printer,
+ f4_imaje_9410_OPT1,
+ f5_imaje_9028_OPT1 = 5,
+ f6_OPT0,
+ f7_imaje_9410_OPT2,
+ f8_imaje_9028_OPT2,
+ f9_Hitachi,
+ f10_MACSA_Laser = 10,
+ f11_Markoprint,
+ f12_alphaJET,
+ f13_Marking_VJ1510,
+ f14_OPT1,
+ f15_OPT2 = 15,
+ f16_OPC,
+ f17_OPT3,
+ f18_HP_200,
+ f19_SmartJet,
+ f20_imaje_9410_OPT3 = 20,
+ f21_Impinj_Speedway_R420 = 21, // RFID
+ f22_Modbus_TCP,
+ f23_STD2,
+ }
+
+ public enum ExternalOutputMode
+ {
+ None,
+ Over,
+ Under,
+ NG,
+ Pass,
+ Run,
+ Count,
+ LatchCountrol,
+ }
+
+ public enum ExternalInputMode
+ {
+ IN0_None,
+ IN1_Metal,
+ IN2_START,
+ IN3_STOP,
+ IN4_DischargeSorterA,
+ IN5_Air = 5,
+ IN6_Door,
+ IN7_Stopper,
+ IN8_Windproof,
+ IN9_ExternalOperation,
+ IN10_DispensorEntry1 = 10,
+ IN11_DispensorEntry2,
+ IN12_StackUp,
+ IN13_ExNG1,
+ IN14_ExNG2,
+ IN15_ExInputCheck,
+ IN16_DischargeSorterB,
+ }
#endregion
}
@@ -1160,6 +1249,12 @@ namespace ITC81DB_0H
private int m_ConveyorLength;
private int m_SortingPointLength;
private int m_EthernetLocalPort;
+ private int m_Barcode;
+
+ private int m_ModbusRTUSelectFunction;
+ private int m_ModbusRTUSlaveIDCOM1;
+ private int m_ModbusRTUSlaveIDCOM3;
+ private int m_ModbusRTUSlaveIDCOM4;
private bool m_IsBypassDirectionPass;
private bool m_IsBypassOnce;
@@ -1443,6 +1538,32 @@ namespace ITC81DB_0H
get { return this.m_EthernetLocalPort; }
set { this.m_EthernetLocalPort = value; }
}
+ public int Barcode
+ {
+ get { return this.m_Barcode; }
+ set { this.m_Barcode = value; }
+ }
+
+ public int ModbusRTUSelectFunction
+ {
+ get { return this.m_ModbusRTUSelectFunction; }
+ set { this.m_ModbusRTUSelectFunction = value; }
+ }
+ public int ModbusRTUSlaveIDCOM1
+ {
+ get { return this.m_ModbusRTUSlaveIDCOM1; }
+ set { this.m_ModbusRTUSlaveIDCOM1 = value; }
+ }
+ public int ModbusRTUSlaveIDCOM3
+ {
+ get { return this.m_ModbusRTUSlaveIDCOM3; }
+ set { this.m_ModbusRTUSlaveIDCOM3 = value; }
+ }
+ public int ModbusRTUSlaveIDCOM4
+ {
+ get { return this.m_ModbusRTUSlaveIDCOM4; }
+ set { this.m_ModbusRTUSlaveIDCOM4 = value; }
+ }
public bool IsBypassDirectionPass
{
@@ -1519,6 +1640,12 @@ namespace ITC81DB_0H
this.ConveyorLength = 450;
this.SortingPointLength = 250;
this.EthernetLocalPort = 0;
+ this.Barcode = 0;
+
+ this.ModbusRTUSelectFunction = 0;
+ this.ModbusRTUSlaveIDCOM1 = 1;
+ this.ModbusRTUSlaveIDCOM3 = 1;
+ this.ModbusRTUSlaveIDCOM4 = 1;
this.IsBypassDirectionPass = true;
this.IsBypassOnce = true;
@@ -1576,11 +1703,11 @@ namespace ITC81DB_0H
public int DummyInt8;
public int DummyInt9;
public int DummyInt10;
- public int DummyInt11;
- public int DummyInt12;
- public int DummyInt13;
- public int DummyInt14;
- public int DummyInt15;
+ public int ModbusRTUSelectFunction;
+ public int ModbusRTUSlaveIDCOM1;
+ public int ModbusRTUSlaveIDCOM3;
+ public int ModbusRTUSlaveIDCOM4;
+ public int Barcode;
public int EthernetLocalPort;
public int SortingPointLength;
public int ConveyorLength;
diff --git a/ITC81DB_0H/Forms/FormMain.cs b/ITC81DB_0H/Forms/FormMain.cs
index 0b6f32b..8dec528 100644
--- a/ITC81DB_0H/Forms/FormMain.cs
+++ b/ITC81DB_0H/Forms/FormMain.cs
@@ -424,7 +424,7 @@ namespace ITC81DB_0H.Forms
this.smartSerialPort3.Close();
// STXANDETX
- this.ChangeBarcodeFrameSeparateType(DataStore.SeparateType.STXANDETX);
+ this.ChangeSerialCOM3FrameSeparateType(DataStore.SeparateType.STXANDETX);
this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
this.smartSerialPort3.Open();
@@ -1641,7 +1641,7 @@ namespace ITC81DB_0H.Forms
if (this.SystemConfig1.IsBarcodeEnable == true)
{
// STXANDETX
- this.ChangeBarcodeFrameSeparateType(DataStore.SeparateType.STXANDETX);
+ this.ChangeSerialCOM3FrameSeparateType(DataStore.SeparateType.STXANDETX);
#region 바코드 사용
for (int i = 0; i < 1000; i++)
@@ -2547,7 +2547,7 @@ namespace ITC81DB_0H.Forms
Thread.Sleep(200);
this.TransferSerialCOM1(this.SendChar(DataStore.CharValue.ACK)); // ACK
Thread.Sleep(200);
- this.TransferSerialCOM1(this.WeightData9410(this.CurrentWeightData)); // 중량값 전송
+ this.TransferSerialCOM1(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
}
else
{
@@ -2595,6 +2595,25 @@ namespace ITC81DB_0H.Forms
if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
this.TransferSerialCOM1(this.Transfer_19_SmartJet(this.CurrentWeightData));
break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
+ {
+ this.TransferSerialCOM1(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM1(this.SendChar(DataStore.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(DataStore.CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)DataStore.SerialMode.f23_STD2:
+ this.TransferSerialCOM1(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
default:
break;
}
@@ -2623,7 +2642,7 @@ namespace ITC81DB_0H.Forms
Thread.Sleep(200);
this.TransferSerialCOM3(this.SendChar(DataStore.CharValue.ACK)); // ACK
Thread.Sleep(200);
- this.TransferSerialCOM3(this.WeightData9410(this.CurrentWeightData)); // 중량값 전송
+ this.TransferSerialCOM3(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
}
else
{
@@ -2671,6 +2690,25 @@ namespace ITC81DB_0H.Forms
if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
this.TransferSerialCOM3(this.Transfer_19_SmartJet(this.CurrentWeightData));
break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
+ {
+ this.TransferSerialCOM3(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM3(this.SendChar(DataStore.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(DataStore.CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)DataStore.SerialMode.f23_STD2:
+ this.TransferSerialCOM3(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
default:
break;
}
@@ -2699,7 +2737,7 @@ namespace ITC81DB_0H.Forms
Thread.Sleep(200);
this.TransferSerialCOM4(this.SendChar(DataStore.CharValue.ACK)); // ACK
Thread.Sleep(200);
- this.TransferSerialCOM4(this.WeightData9410(this.CurrentWeightData)); // 중량값 전송
+ this.TransferSerialCOM4(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
}
else
{
@@ -2747,6 +2785,25 @@ namespace ITC81DB_0H.Forms
if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
this.TransferSerialCOM4(this.Transfer_19_SmartJet(this.CurrentWeightData));
break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
+ {
+ this.TransferSerialCOM4(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM4(this.SendChar(DataStore.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(DataStore.CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)DataStore.SerialMode.f23_STD2:
+ this.TransferSerialCOM4(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
default:
break;
}
@@ -2784,7 +2841,7 @@ namespace ITC81DB_0H.Forms
Thread.Sleep(200);
this.EthernetServerSendMessage(client, this.SendChar(DataStore.CharValue.ACK)); // ACK
Thread.Sleep(200);
- this.EthernetServerSendMessage(client, this.WeightData9410(this.CurrentWeightData)); // 중량값 전송
+ this.EthernetServerSendMessage(client, this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
}
else
{
@@ -2832,6 +2889,26 @@ namespace ITC81DB_0H.Forms
if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
this.EthernetServerSendMessage(client, this.Transfer_19_SmartJet(this.CurrentWeightData));
break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
+ {
+ this.EthernetServerSendMessage(client, this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.EthernetServerSendMessage(client, this.SendChar(DataStore.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(DataStore.CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)DataStore.EthernetMode.f23_STD2:
+ this.EthernetServerSendMessage(client,
+ this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
default:
break;
}
@@ -2863,7 +2940,7 @@ namespace ITC81DB_0H.Forms
Thread.Sleep(200);
this.EthernetWeightData(this.SendChar(DataStore.CharValue.ACK)); // ACK
Thread.Sleep(200);
- this.EthernetWeightData(this.WeightData9410(this.CurrentWeightData)); // 중량값 전송
+ this.EthernetWeightData(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
}
else
{
@@ -2911,6 +2988,25 @@ namespace ITC81DB_0H.Forms
if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
this.EthernetWeightData(this.Transfer_19_SmartJet(this.CurrentWeightData));
break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
+ {
+ this.EthernetWeightData(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.EthernetWeightData(this.SendChar(DataStore.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(DataStore.CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)DataStore.EthernetMode.f23_STD2:
+ this.EthernetWeightData(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
default:
break;
}
@@ -3315,7 +3411,7 @@ namespace ITC81DB_0H.Forms
Thread.Sleep(200);
this.TransferSerialCOM1(this.SendChar(DataStore.CharValue.ACK)); // ACK
Thread.Sleep(200);
- this.TransferSerialCOM1(this.WeightData9410(this.CurrentWeightData)); // 중량값 전송
+ this.TransferSerialCOM1(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
}
else
{
@@ -3363,6 +3459,25 @@ namespace ITC81DB_0H.Forms
if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
this.TransferSerialCOM1(this.Transfer_19_SmartJet(this.CurrentWeightData));
break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
+ {
+ this.TransferSerialCOM1(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM1(this.SendChar(DataStore.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(DataStore.CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)DataStore.SerialMode.f23_STD2:
+ this.TransferSerialCOM1(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
default:
break;
}
@@ -3391,7 +3506,7 @@ namespace ITC81DB_0H.Forms
Thread.Sleep(200);
this.TransferSerialCOM3(this.SendChar(DataStore.CharValue.ACK)); // ACK
Thread.Sleep(200);
- this.TransferSerialCOM3(this.WeightData9410(this.CurrentWeightData)); // 중량값 전송
+ this.TransferSerialCOM3(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
}
else
{
@@ -3439,6 +3554,25 @@ namespace ITC81DB_0H.Forms
if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
this.TransferSerialCOM3(this.Transfer_19_SmartJet(this.CurrentWeightData));
break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
+ {
+ this.TransferSerialCOM3(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM3(this.SendChar(DataStore.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(DataStore.CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)DataStore.SerialMode.f23_STD2:
+ this.TransferSerialCOM3(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
default:
break;
}
@@ -3467,7 +3601,7 @@ namespace ITC81DB_0H.Forms
Thread.Sleep(200);
this.TransferSerialCOM4(this.SendChar(DataStore.CharValue.ACK)); // ACK
Thread.Sleep(200);
- this.TransferSerialCOM4(this.WeightData9410(this.CurrentWeightData)); // 중량값 전송
+ this.TransferSerialCOM4(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
}
else
{
@@ -3515,6 +3649,25 @@ namespace ITC81DB_0H.Forms
if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
this.TransferSerialCOM4(this.Transfer_19_SmartJet(this.CurrentWeightData));
break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
+ {
+ this.TransferSerialCOM4(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.TransferSerialCOM4(this.SendChar(DataStore.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(DataStore.CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)DataStore.SerialMode.f23_STD2:
+ this.TransferSerialCOM4(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
default:
break;
}
@@ -3552,7 +3705,7 @@ namespace ITC81DB_0H.Forms
Thread.Sleep(200);
this.EthernetServerSendMessage(client, this.SendChar(DataStore.CharValue.ACK)); // ACK
Thread.Sleep(200);
- this.EthernetServerSendMessage(client, this.WeightData9410(this.CurrentWeightData)); // 중량값 전송
+ this.EthernetServerSendMessage(client, this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
}
else
{
@@ -3600,6 +3753,26 @@ namespace ITC81DB_0H.Forms
if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
this.EthernetServerSendMessage(client, this.Transfer_19_SmartJet(this.CurrentWeightData));
break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
+ {
+ this.EthernetServerSendMessage(client, this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.EthernetServerSendMessage(client, this.SendChar(DataStore.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(DataStore.CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)DataStore.EthernetMode.f23_STD2:
+ this.EthernetServerSendMessage(client,
+ this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
default:
break;
}
@@ -3631,7 +3804,7 @@ namespace ITC81DB_0H.Forms
Thread.Sleep(200);
this.EthernetWeightData(this.SendChar(DataStore.CharValue.ACK)); // ACK
Thread.Sleep(200);
- this.EthernetWeightData(this.WeightData9410(this.CurrentWeightData)); // 중량값 전송
+ this.EthernetWeightData(this.WeightData9410_OPT1(this.CurrentWeightData)); // 중량값 전송
}
else
{
@@ -3679,6 +3852,25 @@ namespace ITC81DB_0H.Forms
if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
this.EthernetWeightData(this.Transfer_19_SmartJet(this.CurrentWeightData));
break;
+ case 20:
+ if (this.CurrentWeightData.JudgmentStatus == DataStore.JudgmentStatus.Pass)
+ {
+ this.EthernetWeightData(this.RoomChange9410(2)); // 2번방 변경
+ Thread.Sleep(200);
+ this.EthernetWeightData(this.SendChar(DataStore.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(DataStore.CharValue.ACK)); // ACK
+ }
+ break;
+ case (int)DataStore.EthernetMode.f23_STD2:
+ this.EthernetWeightData(this.Transfer_23_STD2(this.SystemConfig1, this.CurrentWeightData, this.CurrentProductItem));
+ break;
default:
break;
}
@@ -4875,6 +5067,164 @@ namespace ITC81DB_0H.Forms
return sb.ToString();
}
+ private byte[] Transfer_22_Modbus()
+ {
+ byte[] madeData = new byte[TotalBytes];
+ byte[] Length2Value = new byte[2];
+ byte[] Length4Value = new byte[4];
+
+ double underValue = Helper.StringToWeight(this.CurrentProductItem.UnderRange, this.SystemConfig1.DecimalPlaces);
+ double passValue = Helper.StringToWeight(this.CurrentProductItem.PassRange, this.SystemConfig1.DecimalPlaces);
+ double overValue = Helper.StringToWeight(this.CurrentProductItem.OverRange, this.SystemConfig1.DecimalPlaces);
+
+ int equipmentStatus;
+ if (this.CurrentSystemStatus.Equipment == DataStore.EquipmentStatus.Start)
+ equipmentStatus = 1;
+ else
+ equipmentStatus = 0;
+
+ int judgmentStatus;
+ switch (this.CurrentWeightData.JudgmentStatus)
+ {
+ case DataStore.JudgmentStatus.Over:
+ judgmentStatus = 0;
+ break;
+ case DataStore.JudgmentStatus.Pass:
+ judgmentStatus = 1;
+ break;
+ case DataStore.JudgmentStatus.Under:
+ judgmentStatus = 2;
+ break;
+ case DataStore.JudgmentStatus.Metal:
+ judgmentStatus = 3;
+ break;
+ case DataStore.JudgmentStatus.Double:
+ judgmentStatus = 4;
+ break;
+ default:
+ judgmentStatus = 5;
+ break;
+ }
+
+ Length2Value = GetBytes(this.SystemConfig1.EquipmentID);
+ for (int i = 0; i < 2; i++)
+ madeData[i] = Length2Value[1 - i];
+
+ Length2Value = GetBytes(this.SystemConfig1.ProductNumber);
+ for (int i = 0; i < 2; i++)
+ madeData[2 + i] = Length2Value[1 - i];
+
+ Length4Value = GetBytes((Single)underValue);
+ for (int i = 0; i < 4; i++)
+ madeData[4 + i] = Length4Value[3 - i];
+
+ Length4Value = GetBytes((Single)passValue);
+ for (int i = 0; i < 4; i++)
+ madeData[8 + i] = Length4Value[3 - i];
+
+ Length4Value = GetBytes((Single)overValue);
+ for (int i = 0; i < 4; i++)
+ madeData[12 + i] = Length4Value[3 - i];
+
+ Length4Value = GetBytes(this.CurrentWeightData.UnderCount);
+ for (int i = 0; i < 4; i++)
+ madeData[16 + i] = Length4Value[3 - i];
+
+ Length4Value = GetBytes(this.CurrentWeightData.PassCount);
+ for (int i = 0; i < 4; i++)
+ madeData[20 + i] = Length4Value[3 - i];
+
+ Length4Value = GetBytes(this.CurrentWeightData.OverCount);
+ for (int i = 0; i < 4; i++)
+ madeData[24 + i] = Length4Value[3 - i];
+
+ Length4Value = GetBytes(this.CurrentWeightData.OverCount + this.CurrentWeightData.UnderCount);
+ for (int i = 0; i < 4; i++)
+ madeData[28 + i] = Length4Value[3 - i];
+
+ Length4Value = GetBytes(this.CurrentWeightData.ExNGCount);
+ for (int i = 0; i < 4; i++)
+ madeData[32 + i] = Length4Value[3 - i];
+
+ Length4Value = GetBytes(this.CurrentWeightData.TotalCount);
+ for (int i = 0; i < 4; i++)
+ madeData[36 + i] = Length4Value[3 - i];
+
+ Length2Value = GetBytes(judgmentStatus);
+ for (int i = 0; i < 2; i++)
+ madeData[40 + i] = Length2Value[1 - i];
+
+ Length4Value = GetBytes((Single)this.CurrentWeightData.Weight);
+ for (int i = 0; i < 4; i++)
+ madeData[42 + i] = Length4Value[3 - i];
+
+ Length2Value = GetBytes(equipmentStatus);
+ for (int i = 0; i < 2; i++)
+ madeData[46 + i] = Length2Value[1 - i];
+
+ return madeData;
+ }
+ private string Transfer_23_STD2(SystemConfigurationItem1 system, WeightData weight, ProductItem product)
+ {
+ StringBuilder sb = new StringBuilder();
+
+ if (weight.JudgmentStatus == DataStore.JudgmentStatus.Empty)
+ return "";
+
+ sb.Append((char)0x02);
+ sb.Append(string.Format("IN{0:000}", system.EquipmentID));
+ sb.Append(string.Format("{0:0000}", product.Number));
+
+ sb.Append(Helper.StringZeroFillDigits6(Helper.StringToDecimalPlaces(product.UnderRange, this.SystemConfig1.DecimalPlaces)));
+ sb.Append(Helper.StringZeroFillDigits6(Helper.StringToDecimalPlaces(product.PassRange, this.SystemConfig1.DecimalPlaces)));
+ sb.Append(Helper.StringZeroFillDigits6(Helper.StringToDecimalPlaces(product.OverRange, this.SystemConfig1.DecimalPlaces)));
+
+ sb.Append(string.Format("{0:0000000}", weight.UnderCount));
+ sb.Append(string.Format("{0:0000000}", weight.PassCount));
+ sb.Append(string.Format("{0:0000000}", weight.OverCount));
+ sb.Append(string.Format("{0:0000000}", weight.ExNGCount));
+ sb.Append(string.Format("{0:000000000}", weight.TotalCount));
+
+ switch (weight.JudgmentStatus)
+ {
+ case DataStore.JudgmentStatus.Empty:
+ break;
+ case DataStore.JudgmentStatus.Under:
+ sb.Append("U");
+ break;
+ case DataStore.JudgmentStatus.Pass:
+ sb.Append("P");
+ break;
+ case DataStore.JudgmentStatus.Over:
+ sb.Append("O");
+ break;
+ case DataStore.JudgmentStatus.Double:
+ sb.Append("D");
+ break;
+ case DataStore.JudgmentStatus.Metal:
+ sb.Append("M");
+ break;
+ case DataStore.JudgmentStatus.ExNg:
+ sb.Append("E");
+ break;
+ default:
+ sb.Append("E");
+ break;
+ }
+
+ if (weight.Weight <= 0.0)
+ sb.Append("-");
+ else
+ sb.Append(" ");
+
+ string temp = Helper.DoubleToString(weight.Weight, this.SystemConfig1.DecimalPlaces);
+ if (temp.StartsWith("-"))
+ temp = temp.Substring(1, temp.Length - 1);
+ sb.Append(temp.PadLeft(6, ' '));
+ sb.Append((char)0x03);
+
+ return sb.ToString();
+ }
#endregion
#region SerialCommunication
@@ -4933,7 +5283,7 @@ namespace ITC81DB_0H.Forms
return byteArray;
}
// Markem-imaje 9410 중량
- public byte[] WeightData9410(WeightData weight)
+ public byte[] WeightData9410_OPT1(WeightData weight)
{
int tempStringLength = 0;
string tempString = "";
@@ -4967,6 +5317,53 @@ namespace ITC81DB_0H.Forms
return byteArray;
}
+ // Markem-imaje 9410 중량(OPT3)
+ public byte[] WeightData9410_OPT3(WeightData weight)
+ {
+ int tempStringLength = 0;
+ string tempString = "";
+
+ byte[] byteArray = new byte[12];
+ byte[] weightBytes = new byte[5];
+ // 외부변수사용 : 0xE8
+ byteArray[0] = 0xE8;
+ // Length : 0x00, 0x08 고정값
+ byteArray[1] = 0x00;
+ byteArray[2] = 0x08;
+
+ byteArray[3] = 0x01; // 1번 외부변수 번호
+ byteArray[4] = 0x00;
+ byteArray[5] = 0x05; // 1번 외부변수 길이
+
+ string result = weight.Weight.ToString().Trim();
+ string[] splitResult = result.Split('.');
+
+ weightBytes = new UTF8Encoding().GetBytes(string.Format("{0, 5}", int.Parse(splitResult[0])));
+ for (int i = 0; i < weightBytes.Length; i++)
+ {
+ byteArray[i + 6] = weightBytes[i];
+ }
+
+ byteArray[11] = 0x00;
+ byteArray[11] = Helper.ChecksumCalculator(byteArray);
+
+ //tempStringLength = weight.Weight.ToString().Trim().Length;
+ //if (tempStringLength > 5)
+ // tempString = weight.Weight.ToString().Trim().Substring(tempStringLength - 5, 5);
+ //else
+ // tempString = string.Format("{0,5}", weight.Weight);
+
+ //weightBytes = new UTF8Encoding().GetBytes(tempString);
+ //for (int i = 0; i < weightBytes.Length; i++)
+ //{
+ // byteArray[i + 6] = weightBytes[i];
+ //}
+
+ //byteArray[11] = 0x00;
+ //byteArray[11] = Helper.ChecksumCalculator(byteArray);
+
+ return byteArray;
+ }
// Markem-imaje 9028 방 변경
public byte[] RoomChange9028(int num)
@@ -5249,6 +5646,41 @@ namespace ITC81DB_0H.Forms
}
}
}
+ public void ChangeSerialCOM1FrameSeparateType(DataStore.SeparateType type)
+ {
+ // 통신 포트 설정
+ if (this.smartSerialPort1.IsOpen == true)
+ this.smartSerialPort1.Close();
+
+ if (type == DataStore.SeparateType.ETXONLY)
+ {
+ this.smartSerialPort1.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.ETXONLY;
+
+ byte[] etxCodes = new byte[2];
+ etxCodes[0] = 13;
+ etxCodes[1] = 10;
+ this.smartSerialPort1.ETXCodes = etxCodes;
+ }
+ else if (type == DataStore.SeparateType.STXANDETX)
+ {
+ this.smartSerialPort1.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.STXANDETX;
+
+ this.smartSerialPort1.STXCode = 2;
+ this.smartSerialPort1.ETXCode = 3;
+ }
+ else if (type == DataStore.SeparateType.NONEFRAME_READTIMEOUT)
+ {
+ this.smartSerialPort1.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.NONEFRAME_READTIMEOUT;
+ this.smartSerialPort1.ReadTimeout = 300;
+ }
+ else
+ {
+ this.smartSerialPort1.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.STXONLY;
+ this.smartSerialPort1.STXCode = 2;
+ }
+
+ this.smartSerialPort1.Open();
+ }
#endregion
#region Serial COM3
public void OpenSerialCOM3()
@@ -5391,8 +5823,7 @@ namespace ITC81DB_0H.Forms
}
}
- // 바코드 전용
- public void ChangeBarcodeFrameSeparateType(DataStore.SeparateType type)
+ public void ChangeSerialCOM3FrameSeparateType(DataStore.SeparateType type)
{
// 통신 포트 설정
if (this.smartSerialPort3.IsOpen == true)
@@ -5407,7 +5838,7 @@ namespace ITC81DB_0H.Forms
etxCodes[1] = 10;
this.smartSerialPort3.ETXCodes = etxCodes;
}
- else if(type == DataStore.SeparateType.STXANDETX)
+ else if (type == DataStore.SeparateType.STXANDETX)
{
this.smartSerialPort3.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.STXANDETX;
@@ -5425,7 +5856,6 @@ namespace ITC81DB_0H.Forms
this.smartSerialPort3.STXCode = 2;
}
- this.smartSerialPort3.Baud_Rate = SmartSerialPort.BAUDRATE._9600bps;
this.smartSerialPort3.Open();
}
#endregion
@@ -5518,9 +5948,44 @@ namespace ITC81DB_0H.Forms
}
}
}
+ public void ChangeSerialCOM4FrameSeparateType(DataStore.SeparateType type)
+ {
+ // 통신 포트 설정
+ if (this.smartSerialPort4.IsOpen == true)
+ this.smartSerialPort4.Close();
+
+ if (type == DataStore.SeparateType.ETXONLY)
+ {
+ this.smartSerialPort4.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.ETXONLY;
+
+ byte[] etxCodes = new byte[2];
+ etxCodes[0] = 13;
+ etxCodes[1] = 10;
+ this.smartSerialPort4.ETXCodes = etxCodes;
+ }
+ else if (type == DataStore.SeparateType.STXANDETX)
+ {
+ this.smartSerialPort4.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.STXANDETX;
+
+ this.smartSerialPort4.STXCode = 2;
+ this.smartSerialPort4.ETXCode = 3;
+ }
+ else if (type == DataStore.SeparateType.NONEFRAME_READTIMEOUT)
+ {
+ this.smartSerialPort4.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.NONEFRAME_READTIMEOUT;
+ this.smartSerialPort4.ReadTimeout = 300;
+ }
+ else
+ {
+ this.smartSerialPort4.FrameSeparationType = SmartSerialPort.FRAMESEPARATIONTYPES.STXONLY;
+ this.smartSerialPort4.STXCode = 2;
+ }
+
+ this.smartSerialPort4.Open();
+ }
#endregion
- #region OPC
+ #region OPC, Modbus
public static byte[] GetBytes(int argument)
{
byte[] byteArray = BitConverter.GetBytes(argument);
@@ -5536,102 +6001,150 @@ namespace ITC81DB_0H.Forms
byte[] byteArray = BitConverter.GetBytes(argument);
return byteArray;
}
- public byte[] MakeData()
+ #endregion
+ #region Modbus Slave COM1
+ public void OpenModbusSlaveCOM1()
{
- byte[] madeData = new byte[TotalBytes];
- byte[] Length2Value = new byte[2];
- byte[] Length4Value = new byte[4];
+ if (this.SystemConfig1.SerialCOM1Mode == 0)
+ return;
- double underValue = Helper.StringToWeight(this.CurrentProductItem.UnderRange, this.SystemConfig1.DecimalPlaces);
- double passValue = Helper.StringToWeight(this.CurrentProductItem.PassRange, this.SystemConfig1.DecimalPlaces);
- double overValue = Helper.StringToWeight(this.CurrentProductItem.OverRange, this.SystemConfig1.DecimalPlaces);
+ this.CloseModbusCOM1();
+ this.CloseModbusSlaveCOM1();
- int equipmentStatus;
- if (this.CurrentSystemStatus.Equipment == DataStore.EquipmentStatus.Start)
- equipmentStatus = 1;
- else
- equipmentStatus = 0;
-
- int judgmentStatus;
- switch (this.CurrentWeightData.JudgmentStatus)
+ if (this.SystemConfig1.SerialCOM1Mode == (int)DataStore.SerialMode.f16_OPC)
{
- case DataStore.JudgmentStatus.Over:
- judgmentStatus = 0;
- break;
- case DataStore.JudgmentStatus.Pass:
- judgmentStatus = 1;
- break;
- case DataStore.JudgmentStatus.Under:
- judgmentStatus = 2;
- break;
- case DataStore.JudgmentStatus.Metal:
- judgmentStatus = 3;
- break;
- case DataStore.JudgmentStatus.Double:
- judgmentStatus = 4;
- break;
- default:
- judgmentStatus = 5;
- break;
+ this.smartModbusSlave1.SlaveAddress = 1;
+ this.smartModbusSlave1.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_9600;
+ this.smartModbusSlave1.Start();
}
+ else if (this.SystemConfig1.SerialCOM1Mode == (int)DataStore.SerialMode.f22_Modbus_RTU)
+ {
+ this.smartModbusSlave1.SlaveAddress = this.SystemConfig2.ModbusRTUSlaveIDCOM1;
+ switch (this.SystemConfig1.SerialCOM1BaudRate)
+ {
+ case 0:
+ this.smartModbusSlave1.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_9600;
+ break;
+ case 1:
+ this.smartModbusSlave1.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_19200;
+ break;
+ case 2:
+ this.smartModbusSlave1.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_38400;
+ break;
+ case 3:
+ this.smartModbusSlave1.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_57600;
+ break;
+ case 4:
+ this.smartModbusSlave1.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_115200;
+ break;
+ default:
+ this.smartModbusSlave1.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_9600;
+ break;
+ }
- Length2Value = GetBytes(this.SystemConfig1.EquipmentID);
- for (int i = 0; i < 2; i++)
- madeData[i] = Length2Value[1 - i];
+ this.smartModbusSlave1.Start();
+ }
+ }
+ public void CloseModbusSlaveCOM1()
+ {
+ if (this.smartModbusSlave1.IsOpen == true)
+ this.smartModbusSlave1.End();
+ }
+ #endregion
+ #region Modbus Slave COM3
+ public void OpenModbusSlaveCOM3()
+ {
+ if (this.SystemConfig1.SerialCOM3Mode == 0)
+ return;
- Length2Value = GetBytes(this.SystemConfig1.ProductNumber);
- for (int i = 0; i < 2; i++)
- madeData[2 + i] = Length2Value[1 - i];
+ this.CloseModbusCOM3();
+ this.CloseModbusSlaveCOM3();
- Length4Value = GetBytes((Single)underValue);
- for (int i = 0; i < 4; i++)
- madeData[4 + i] = Length4Value[3 - i];
+ if (this.SystemConfig1.SerialCOM3Mode == (int)DataStore.SerialMode.f16_OPC)
+ {
+ this.smartModbusSlave3.SlaveAddress = 1;
+ this.smartModbusSlave3.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_9600;
+ this.smartModbusSlave3.Start();
+ }
+ else if (this.SystemConfig1.SerialCOM3Mode == (int)DataStore.SerialMode.f22_Modbus_RTU)
+ {
+ this.smartModbusSlave3.SlaveAddress = this.SystemConfig2.ModbusRTUSlaveIDCOM3;
+ switch (this.SystemConfig1.SerialCOM3BaudRate)
+ {
+ case 0:
+ this.smartModbusSlave3.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_9600;
+ break;
+ case 1:
+ this.smartModbusSlave3.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_19200;
+ break;
+ case 2:
+ this.smartModbusSlave3.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_38400;
+ break;
+ case 3:
+ this.smartModbusSlave3.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_57600;
+ break;
+ case 4:
+ this.smartModbusSlave3.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_115200;
+ break;
+ default:
+ this.smartModbusSlave3.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_9600;
+ break;
+ }
+ this.smartModbusSlave3.Start();
+ }
+ }
+ public void CloseModbusSlaveCOM3()
+ {
+ if (this.smartModbusSlave3.IsOpen == true)
+ this.smartModbusSlave3.End();
+ }
+ #endregion
+ #region Modbus Slave COM4
+ public void OpenModbusSlaveCOM4()
+ {
+ if (this.SystemConfig1.SerialCOM4Mode == 0)
+ return;
- Length4Value = GetBytes((Single)passValue);
- for (int i = 0; i < 4; i++)
- madeData[8 + i] = Length4Value[3 - i];
+ this.CloseModbusCOM4();
+ this.CloseModbusSlaveCOM4();
- Length4Value = GetBytes((Single)overValue);
- for (int i = 0; i < 4; i++)
- madeData[12 + i] = Length4Value[3 - i];
-
- Length4Value = GetBytes(this.CurrentWeightData.UnderCount);
- for (int i = 0; i < 4; i++)
- madeData[16 + i] = Length4Value[3 - i];
-
- Length4Value = GetBytes(this.CurrentWeightData.PassCount);
- for (int i = 0; i < 4; i++)
- madeData[20 + i] = Length4Value[3 - i];
-
- Length4Value = GetBytes(this.CurrentWeightData.OverCount);
- for (int i = 0; i < 4; i++)
- madeData[24 + i] = Length4Value[3 - i];
-
- Length4Value = GetBytes(this.CurrentWeightData.OverCount + this.CurrentWeightData.UnderCount);
- for (int i = 0; i < 4; i++)
- madeData[28 + i] = Length4Value[3 - i];
-
- Length4Value = GetBytes(this.CurrentWeightData.ExNGCount);
- for (int i = 0; i < 4; i++)
- madeData[32 + i] = Length4Value[3 - i];
-
- Length4Value = GetBytes(this.CurrentWeightData.TotalCount);
- for (int i = 0; i < 4; i++)
- madeData[36 + i] = Length4Value[3 - i];
-
- Length2Value = GetBytes(judgmentStatus);
- for (int i = 0; i < 2; i++)
- madeData[40 + i] = Length2Value[1 - i];
-
- Length4Value = GetBytes((Single)this.CurrentWeightData.Weight);
- for (int i = 0; i < 4; i++)
- madeData[42 + i] = Length4Value[3 - i];
-
- Length2Value = GetBytes(equipmentStatus);
- for (int i = 0; i < 2; i++)
- madeData[46 + i] = Length2Value[1 - i];
-
- return madeData;
+ if (this.SystemConfig1.SerialCOM4Mode == (int)DataStore.SerialMode.f16_OPC)
+ {
+ this.smartModbusSlave4.SlaveAddress = 1;
+ this.smartModbusSlave4.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_9600;
+ this.smartModbusSlave4.Start();
+ }
+ else if (this.SystemConfig1.SerialCOM4Mode == (int)DataStore.SerialMode.f22_Modbus_RTU)
+ {
+ this.smartModbusSlave4.SlaveAddress = this.SystemConfig2.ModbusRTUSlaveIDCOM4;
+ switch (this.SystemConfig1.SerialCOM4BaudRate)
+ {
+ case 0:
+ this.smartModbusSlave4.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_9600;
+ break;
+ case 1:
+ this.smartModbusSlave4.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_19200;
+ break;
+ case 2:
+ this.smartModbusSlave4.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_38400;
+ break;
+ case 3:
+ this.smartModbusSlave4.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_57600;
+ break;
+ case 4:
+ this.smartModbusSlave4.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_115200;
+ break;
+ default:
+ this.smartModbusSlave4.Buad_Rate = SmartModbusSlave.BUADRATE.CBR_9600;
+ break;
+ }
+ this.smartModbusSlave4.Start();
+ }
+ }
+ public void CloseModbusSlaveCOM4()
+ {
+ if (this.smartModbusSlave4.IsOpen == true)
+ this.smartModbusSlave4.End();
}
#endregion
#region Modbus COM1
@@ -6506,11 +7019,11 @@ namespace ITC81DB_0H.Forms
structItem.DummyInt8 = 0;
structItem.DummyInt9 = 0;
structItem.DummyInt10 = 0;
- structItem.DummyInt11 = 0;
- structItem.DummyInt12 = 0;
- structItem.DummyInt13 = 0;
- structItem.DummyInt14 = 0;
- structItem.DummyInt15 = 0;
+ structItem.ModbusRTUSelectFunction = this.SystemConfig2.ModbusRTUSelectFunction;
+ structItem.ModbusRTUSlaveIDCOM1 = this.SystemConfig2.ModbusRTUSlaveIDCOM1;
+ structItem.ModbusRTUSlaveIDCOM3 = this.SystemConfig2.ModbusRTUSlaveIDCOM3;
+ structItem.ModbusRTUSlaveIDCOM4 = this.SystemConfig2.ModbusRTUSlaveIDCOM4;
+ structItem.Barcode = this.SystemConfig2.Barcode;
structItem.EthernetLocalPort = this.SystemConfig2.EthernetLocalPort;
structItem.SortingPointLength = this.SystemConfig2.SortingPointLength;
structItem.ConveyorLength = this.SystemConfig2.ConveyorLength;
@@ -6611,11 +7124,11 @@ namespace ITC81DB_0H.Forms
structItem.DummyInt8 = 0;
structItem.DummyInt9 = 0;
structItem.DummyInt10 = 0;
- structItem.DummyInt11 = 0;
- structItem.DummyInt12 = 0;
- structItem.DummyInt13 = 0;
- structItem.DummyInt14 = 0;
- structItem.DummyInt15 = 0;
+ structItem.ModbusRTUSelectFunction = item.ModbusRTUSelectFunction;
+ structItem.ModbusRTUSlaveIDCOM1 = item.ModbusRTUSlaveIDCOM1;
+ structItem.ModbusRTUSlaveIDCOM3 = item.ModbusRTUSlaveIDCOM3;
+ structItem.ModbusRTUSlaveIDCOM4 = item.ModbusRTUSlaveIDCOM4;
+ structItem.Barcode = item.Barcode;
structItem.EthernetLocalPort = item.EthernetLocalPort;
structItem.SortingPointLength = item.SortingPointLength;
structItem.ConveyorLength = item.ConveyorLength;
@@ -6719,6 +7232,7 @@ namespace ITC81DB_0H.Forms
this.SystemConfig2.IsGroup4UsingRandomMode = structItem.IsGroup4UsingRandomMode;
this.SystemConfig2.IsGroup5UsingRandomMode = structItem.IsGroup5UsingRandomMode;
+ this.SystemConfig2.Barcode = structItem.Barcode;
this.SystemConfig2.FileNameExtension = structItem.FileNameExtension;
this.SystemConfig2.EthernetPort = structItem.EthernetPort;
@@ -6730,6 +7244,11 @@ namespace ITC81DB_0H.Forms
this.SystemConfig2.IsBypassDirectionPass = structItem.IsBypassDirectionPass;
this.SystemConfig2.IsCommunicationOption = structItem.IsCommunicationOption;
+ this.SystemConfig2.ModbusRTUSelectFunction = structItem.ModbusRTUSelectFunction;
+ this.SystemConfig2.ModbusRTUSlaveIDCOM1 = structItem.ModbusRTUSlaveIDCOM1;
+ this.SystemConfig2.ModbusRTUSlaveIDCOM3 = structItem.ModbusRTUSlaveIDCOM3;
+ this.SystemConfig2.ModbusRTUSlaveIDCOM4 = structItem.ModbusRTUSlaveIDCOM4;
+
this.SystemConfig2.ConveyorLength = structItem.ConveyorLength;
this.SystemConfig2.SortingPointLength = structItem.SortingPointLength;
@@ -9991,7 +10510,7 @@ namespace ITC81DB_0H.Forms
// 수신 Slave Address 와 설정된 Slave Address가 같은 경우
if (datas.RequestDatas.iSlave == this.smartModbusSlave1.SlaveAddress)
{
- madeDatas = this.MakeData();
+ madeDatas = this.Transfer_22_Modbus();
datas.ResponDatas.chDatas = madeDatas;
datas.ResponDatas.iNumberOfByte = TotalBytes;
@@ -10004,7 +10523,7 @@ namespace ITC81DB_0H.Forms
// 수신 Slave Address 와 설정된 Slave Address가 같은 경우
if (datas.RequestDatas.iSlave == this.smartModbusSlave1.SlaveAddress)
{
- madeDatas = this.MakeData();
+ madeDatas = this.Transfer_22_Modbus();
datas.ResponDatas.chDatas = madeDatas;
datas.ResponDatas.iNumberOfByte = TotalBytes;
@@ -10017,7 +10536,7 @@ namespace ITC81DB_0H.Forms
// 수신 Slave Address 와 설정된 Slave Address가 같은 경우
if (datas.RequestDatas.iSlave == this.smartModbusSlave1.SlaveAddress)
{
- madeDatas = this.MakeData();
+ madeDatas = this.Transfer_22_Modbus();
datas.ResponDatas.chDatas = madeDatas;
datas.ResponDatas.iNumberOfByte = TotalBytes;
@@ -10187,7 +10706,7 @@ namespace ITC81DB_0H.Forms
// Byte Count(Data의 개수)
sendDatas[8] = 0x30;
- madeDatas = this.MakeData();
+ madeDatas = this.Transfer_22_Modbus();
for (int i = 0; i < TotalBytes; i++)
sendDatas[9 + i] = madeDatas[i];
diff --git a/ITC81DB_0H/Forms/FormMenu.cs b/ITC81DB_0H/Forms/FormMenu.cs
index 5fb80bc..d778003 100644
--- a/ITC81DB_0H/Forms/FormMenu.cs
+++ b/ITC81DB_0H/Forms/FormMenu.cs
@@ -1462,7 +1462,7 @@ namespace ITC81DB_0H.Forms
if (this.ParentForm.SystemConfig1.IsBarcodeEnable == true)
{
- this.ParentForm.ChangeBarcodeFrameSeparateType(DataStore.SeparateType.ETXONLY);
+ this.ParentForm.ChangeSerialCOM3FrameSeparateType(DataStore.SeparateType.ETXONLY);
this.ParentForm.TransferSerialCOM3RawData(Barcode.ExitProgrammingMode);
}
diff --git a/ITC81DB_0H/Version.txt b/ITC81DB_0H/Version.txt
index 7ecf362..9faa39a 100644
--- a/ITC81DB_0H/Version.txt
+++ b/ITC81DB_0H/Version.txt
@@ -12,6 +12,17 @@
⺻ м 跮
*/
+@ Ver 1.2.0 by CJY
+ - 2021.05.18
+ - Ver 1.1.0 Modify
+ - ܺ - ðġ ߰
+
+@ Ver 1.1.0 by CJY
+ - 2021.03.29
+ - Ver 1.0.8 Modify
+ - ø/̴
+ 1. f23_STD2 ߰ <- STD1 Count ߰
+
@ Ver 1.0.8 by CJY
- 2021.03.19
- Ver 1.0.7 Modify
diff --git a/ITC81DB_0H/bin/Release/ITC81DB_0H.exe b/ITC81DB_0H/bin/Release/ITC81DB_0H.exe
index 0150c6d..3d53e0a 100644
Binary files a/ITC81DB_0H/bin/Release/ITC81DB_0H.exe and b/ITC81DB_0H/bin/Release/ITC81DB_0H.exe differ
diff --git a/ITC81DB_0H/obj/Release/ITC81DB_0H.exe b/ITC81DB_0H/obj/Release/ITC81DB_0H.exe
index 0150c6d..3d53e0a 100644
Binary files a/ITC81DB_0H/obj/Release/ITC81DB_0H.exe and b/ITC81DB_0H/obj/Release/ITC81DB_0H.exe differ