프로토콜 조정
This commit is contained in:
322
Cs_HMI/TestProject/Test_ACS/MainForm.Designer.cs
generated
322
Cs_HMI/TestProject/Test_ACS/MainForm.Designer.cs
generated
@@ -17,6 +17,7 @@ namespace Test_ACS
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||
this.grpConnection = new System.Windows.Forms.GroupBox();
|
||||
this.btnRefresh = new System.Windows.Forms.Button();
|
||||
this.btnConnect = new System.Windows.Forms.Button();
|
||||
@@ -33,13 +34,12 @@ namespace Test_ACS
|
||||
this.btnLiftDown = new System.Windows.Forms.Button();
|
||||
this.btnLiftUp = new System.Windows.Forms.Button();
|
||||
this.grpManual = new System.Windows.Forms.GroupBox();
|
||||
this.btnManual = new System.Windows.Forms.Button();
|
||||
this.btMMove = new System.Windows.Forms.Button();
|
||||
this.numRuntime = new System.Windows.Forms.NumericUpDown();
|
||||
this.lblRuntime = new System.Windows.Forms.Label();
|
||||
this.cmbSpeed = new System.Windows.Forms.ComboBox();
|
||||
this.lblSpeed = new System.Windows.Forms.Label();
|
||||
this.cmbDirection = new System.Windows.Forms.ComboBox();
|
||||
this.lblDirection = new System.Windows.Forms.Label();
|
||||
this.chkMarkStop = new System.Windows.Forms.CheckBox();
|
||||
this.btnMarkStop = new System.Windows.Forms.Button();
|
||||
this.btnReset = new System.Windows.Forms.Button();
|
||||
@@ -49,16 +49,21 @@ namespace Test_ACS
|
||||
this.btnSetCurrent = new System.Windows.Forms.Button();
|
||||
this.txtAlias = new System.Windows.Forms.TextBox();
|
||||
this.lblAlias = new System.Windows.Forms.Label();
|
||||
this.txtRFID = new System.Windows.Forms.TextBox();
|
||||
this.txtRFID = new System.Windows.Forms.NumericUpDown();
|
||||
this.lblRFID = new System.Windows.Forms.Label();
|
||||
this.lblDirection = new System.Windows.Forms.Label();
|
||||
this.grpLogs = new System.Windows.Forms.GroupBox();
|
||||
this.tabLogs = new System.Windows.Forms.TabControl();
|
||||
this.tabRX = new System.Windows.Forms.TabPage();
|
||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.txtRxLog = new System.Windows.Forms.TextBox();
|
||||
this.tabTX = new System.Windows.Forms.TabPage();
|
||||
this.txtTxLog = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.tabInfo = new System.Windows.Forms.TabPage();
|
||||
this.txtInfoLog = new System.Windows.Forms.TextBox();
|
||||
this.tabPage1 = new System.Windows.Forms.TabPage();
|
||||
this.richTextBox1 = new System.Windows.Forms.RichTextBox();
|
||||
this.grpAGVStatus = new System.Windows.Forms.GroupBox();
|
||||
this.lblLastTagValue = new System.Windows.Forms.Label();
|
||||
this.lblLastTag = new System.Windows.Forms.Label();
|
||||
@@ -75,18 +80,29 @@ namespace Test_ACS
|
||||
this.lblRunSt = new System.Windows.Forms.Label();
|
||||
this.lblModeValue = new System.Windows.Forms.Label();
|
||||
this.lblMode = new System.Windows.Forms.Label();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.btAMove = new System.Windows.Forms.Button();
|
||||
this.cmbAutoSpeed = new System.Windows.Forms.ComboBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.cmbMotDirection = new System.Windows.Forms.ComboBox();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.cmbMagDirection = new System.Windows.Forms.ComboBox();
|
||||
this.grpConnection.SuspendLayout();
|
||||
this.grpAGV.SuspendLayout();
|
||||
this.grpCommands.SuspendLayout();
|
||||
this.grpLift.SuspendLayout();
|
||||
this.grpManual.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numRuntime)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.txtRFID)).BeginInit();
|
||||
this.grpLogs.SuspendLayout();
|
||||
this.tabLogs.SuspendLayout();
|
||||
this.tabRX.SuspendLayout();
|
||||
this.tabTX.SuspendLayout();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.tabInfo.SuspendLayout();
|
||||
this.tabPage1.SuspendLayout();
|
||||
this.grpAGVStatus.SuspendLayout();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// grpConnection
|
||||
@@ -199,7 +215,7 @@ namespace Test_ACS
|
||||
//
|
||||
// grpCommands
|
||||
//
|
||||
this.grpCommands.Controls.Add(this.grpLift);
|
||||
this.grpCommands.Controls.Add(this.groupBox1);
|
||||
this.grpCommands.Controls.Add(this.grpManual);
|
||||
this.grpCommands.Controls.Add(this.chkMarkStop);
|
||||
this.grpCommands.Controls.Add(this.btnMarkStop);
|
||||
@@ -224,18 +240,18 @@ namespace Test_ACS
|
||||
this.grpLift.Controls.Add(this.btnLiftStop);
|
||||
this.grpLift.Controls.Add(this.btnLiftDown);
|
||||
this.grpLift.Controls.Add(this.btnLiftUp);
|
||||
this.grpLift.Location = new System.Drawing.Point(240, 202);
|
||||
this.grpLift.Location = new System.Drawing.Point(298, 456);
|
||||
this.grpLift.Name = "grpLift";
|
||||
this.grpLift.Size = new System.Drawing.Size(210, 100);
|
||||
this.grpLift.Size = new System.Drawing.Size(180, 120);
|
||||
this.grpLift.TabIndex = 9;
|
||||
this.grpLift.TabStop = false;
|
||||
this.grpLift.Text = "리프트 제어";
|
||||
//
|
||||
// btnLiftStop
|
||||
//
|
||||
this.btnLiftStop.Location = new System.Drawing.Point(135, 20);
|
||||
this.btnLiftStop.Location = new System.Drawing.Point(121, 20);
|
||||
this.btnLiftStop.Name = "btnLiftStop";
|
||||
this.btnLiftStop.Size = new System.Drawing.Size(60, 70);
|
||||
this.btnLiftStop.Size = new System.Drawing.Size(48, 90);
|
||||
this.btnLiftStop.TabIndex = 2;
|
||||
this.btnLiftStop.Text = "정지";
|
||||
this.btnLiftStop.UseVisualStyleBackColor = true;
|
||||
@@ -243,9 +259,9 @@ namespace Test_ACS
|
||||
//
|
||||
// btnLiftDown
|
||||
//
|
||||
this.btnLiftDown.Location = new System.Drawing.Point(70, 20);
|
||||
this.btnLiftDown.Location = new System.Drawing.Point(65, 20);
|
||||
this.btnLiftDown.Name = "btnLiftDown";
|
||||
this.btnLiftDown.Size = new System.Drawing.Size(60, 70);
|
||||
this.btnLiftDown.Size = new System.Drawing.Size(48, 90);
|
||||
this.btnLiftDown.TabIndex = 1;
|
||||
this.btnLiftDown.Text = "하강";
|
||||
this.btnLiftDown.UseVisualStyleBackColor = true;
|
||||
@@ -253,9 +269,9 @@ namespace Test_ACS
|
||||
//
|
||||
// btnLiftUp
|
||||
//
|
||||
this.btnLiftUp.Location = new System.Drawing.Point(5, 20);
|
||||
this.btnLiftUp.Location = new System.Drawing.Point(9, 20);
|
||||
this.btnLiftUp.Name = "btnLiftUp";
|
||||
this.btnLiftUp.Size = new System.Drawing.Size(60, 70);
|
||||
this.btnLiftUp.Size = new System.Drawing.Size(48, 90);
|
||||
this.btnLiftUp.TabIndex = 0;
|
||||
this.btnLiftUp.Text = "상승";
|
||||
this.btnLiftUp.UseVisualStyleBackColor = true;
|
||||
@@ -263,7 +279,7 @@ namespace Test_ACS
|
||||
//
|
||||
// grpManual
|
||||
//
|
||||
this.grpManual.Controls.Add(this.btnManual);
|
||||
this.grpManual.Controls.Add(this.btMMove);
|
||||
this.grpManual.Controls.Add(this.numRuntime);
|
||||
this.grpManual.Controls.Add(this.lblRuntime);
|
||||
this.grpManual.Controls.Add(this.cmbSpeed);
|
||||
@@ -274,17 +290,17 @@ namespace Test_ACS
|
||||
this.grpManual.Size = new System.Drawing.Size(215, 100);
|
||||
this.grpManual.TabIndex = 8;
|
||||
this.grpManual.TabStop = false;
|
||||
this.grpManual.Text = "수동 제어";
|
||||
this.grpManual.Text = "수동 이동";
|
||||
//
|
||||
// btnManual
|
||||
// btMMove
|
||||
//
|
||||
this.btnManual.Location = new System.Drawing.Point(136, 16);
|
||||
this.btnManual.Name = "btnManual";
|
||||
this.btnManual.Size = new System.Drawing.Size(73, 74);
|
||||
this.btnManual.TabIndex = 6;
|
||||
this.btnManual.Text = "수동\r\n이동\r\n실행";
|
||||
this.btnManual.UseVisualStyleBackColor = true;
|
||||
this.btnManual.Click += new System.EventHandler(this.btnManual_Click);
|
||||
this.btMMove.Location = new System.Drawing.Point(136, 16);
|
||||
this.btMMove.Name = "btMMove";
|
||||
this.btMMove.Size = new System.Drawing.Size(73, 74);
|
||||
this.btMMove.TabIndex = 6;
|
||||
this.btMMove.Text = "실행";
|
||||
this.btMMove.UseVisualStyleBackColor = true;
|
||||
this.btMMove.Click += new System.EventHandler(this.btnManual_Click);
|
||||
//
|
||||
// numRuntime
|
||||
//
|
||||
@@ -297,6 +313,7 @@ namespace Test_ACS
|
||||
this.numRuntime.Name = "numRuntime";
|
||||
this.numRuntime.Size = new System.Drawing.Size(70, 21);
|
||||
this.numRuntime.TabIndex = 5;
|
||||
this.numRuntime.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.numRuntime.Value = new decimal(new int[] {
|
||||
5,
|
||||
0,
|
||||
@@ -348,15 +365,6 @@ namespace Test_ACS
|
||||
this.cmbDirection.Size = new System.Drawing.Size(70, 20);
|
||||
this.cmbDirection.TabIndex = 1;
|
||||
//
|
||||
// lblDirection
|
||||
//
|
||||
this.lblDirection.AutoSize = true;
|
||||
this.lblDirection.Location = new System.Drawing.Point(10, 48);
|
||||
this.lblDirection.Name = "lblDirection";
|
||||
this.lblDirection.Size = new System.Drawing.Size(33, 12);
|
||||
this.lblDirection.TabIndex = 4;
|
||||
this.lblDirection.Text = "방향:";
|
||||
//
|
||||
// chkMarkStop
|
||||
//
|
||||
this.chkMarkStop.AutoSize = true;
|
||||
@@ -451,11 +459,20 @@ namespace Test_ACS
|
||||
//
|
||||
this.txtRFID.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.txtRFID.Location = new System.Drawing.Point(85, 25);
|
||||
this.txtRFID.Maximum = new decimal(new int[] {
|
||||
999999,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.txtRFID.Name = "txtRFID";
|
||||
this.txtRFID.Size = new System.Drawing.Size(195, 26);
|
||||
this.txtRFID.TabIndex = 1;
|
||||
this.txtRFID.Text = "0001";
|
||||
this.txtRFID.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.txtRFID.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.txtRFID.TextChanged += new System.EventHandler(this.txtRFID_TextChanged);
|
||||
//
|
||||
// lblRFID
|
||||
@@ -467,6 +484,15 @@ namespace Test_ACS
|
||||
this.lblRFID.TabIndex = 0;
|
||||
this.lblRFID.Text = "RFID 번호:";
|
||||
//
|
||||
// lblDirection
|
||||
//
|
||||
this.lblDirection.AutoSize = true;
|
||||
this.lblDirection.Location = new System.Drawing.Point(10, 48);
|
||||
this.lblDirection.Name = "lblDirection";
|
||||
this.lblDirection.Size = new System.Drawing.Size(33, 12);
|
||||
this.lblDirection.TabIndex = 4;
|
||||
this.lblDirection.Text = "방향:";
|
||||
//
|
||||
// grpLogs
|
||||
//
|
||||
this.grpLogs.Controls.Add(this.tabLogs);
|
||||
@@ -480,8 +506,8 @@ namespace Test_ACS
|
||||
// tabLogs
|
||||
//
|
||||
this.tabLogs.Controls.Add(this.tabRX);
|
||||
this.tabLogs.Controls.Add(this.tabTX);
|
||||
this.tabLogs.Controls.Add(this.tabInfo);
|
||||
this.tabLogs.Controls.Add(this.tabPage1);
|
||||
this.tabLogs.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tabLogs.Location = new System.Drawing.Point(3, 17);
|
||||
this.tabLogs.Name = "tabLogs";
|
||||
@@ -491,56 +517,85 @@ namespace Test_ACS
|
||||
//
|
||||
// tabRX
|
||||
//
|
||||
this.tabRX.Controls.Add(this.txtRxLog);
|
||||
this.tabRX.Controls.Add(this.tableLayoutPanel1);
|
||||
this.tabRX.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabRX.Name = "tabRX";
|
||||
this.tabRX.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabRX.Size = new System.Drawing.Size(506, 518);
|
||||
this.tabRX.TabIndex = 1;
|
||||
this.tabRX.Text = "수신 (RX)";
|
||||
this.tabRX.Text = "패킷";
|
||||
this.tabRX.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tableLayoutPanel1
|
||||
//
|
||||
this.tableLayoutPanel1.ColumnCount = 1;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
|
||||
this.tableLayoutPanel1.Controls.Add(this.txtRxLog, 0, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.txtTxLog, 0, 1);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label2, 0, 2);
|
||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 4;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(500, 512);
|
||||
this.tableLayoutPanel1.TabIndex = 1;
|
||||
//
|
||||
// txtRxLog
|
||||
//
|
||||
this.txtRxLog.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.txtRxLog.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.txtRxLog.Location = new System.Drawing.Point(3, 3);
|
||||
this.txtRxLog.Location = new System.Drawing.Point(3, 279);
|
||||
this.txtRxLog.Multiline = true;
|
||||
this.txtRxLog.Name = "txtRxLog";
|
||||
this.txtRxLog.ReadOnly = true;
|
||||
this.txtRxLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.txtRxLog.Size = new System.Drawing.Size(500, 512);
|
||||
this.txtRxLog.Size = new System.Drawing.Size(494, 230);
|
||||
this.txtRxLog.TabIndex = 0;
|
||||
//
|
||||
// tabTX
|
||||
//
|
||||
this.tabTX.Controls.Add(this.txtTxLog);
|
||||
this.tabTX.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabTX.Name = "tabTX";
|
||||
this.tabTX.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabTX.Size = new System.Drawing.Size(506, 469);
|
||||
this.tabTX.TabIndex = 0;
|
||||
this.tabTX.Text = "송신 (TX)";
|
||||
this.tabTX.UseVisualStyleBackColor = true;
|
||||
this.txtRxLog.Text = "1";
|
||||
//
|
||||
// txtTxLog
|
||||
//
|
||||
this.txtTxLog.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.txtTxLog.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.txtTxLog.Location = new System.Drawing.Point(3, 3);
|
||||
this.txtTxLog.Location = new System.Drawing.Point(3, 23);
|
||||
this.txtTxLog.Multiline = true;
|
||||
this.txtTxLog.Name = "txtTxLog";
|
||||
this.txtTxLog.ReadOnly = true;
|
||||
this.txtTxLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.txtTxLog.Size = new System.Drawing.Size(500, 463);
|
||||
this.txtTxLog.Size = new System.Drawing.Size(494, 230);
|
||||
this.txtTxLog.TabIndex = 0;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.label1.Location = new System.Drawing.Point(3, 0);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(494, 20);
|
||||
this.label1.TabIndex = 1;
|
||||
this.label1.Text = "Tx";
|
||||
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.label2.Location = new System.Drawing.Point(3, 256);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(494, 20);
|
||||
this.label2.TabIndex = 1;
|
||||
this.label2.Text = "Rx";
|
||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// tabInfo
|
||||
//
|
||||
this.tabInfo.Controls.Add(this.txtInfoLog);
|
||||
this.tabInfo.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabInfo.Name = "tabInfo";
|
||||
this.tabInfo.Size = new System.Drawing.Size(506, 469);
|
||||
this.tabInfo.Size = new System.Drawing.Size(506, 518);
|
||||
this.tabInfo.TabIndex = 2;
|
||||
this.tabInfo.Text = "정보";
|
||||
this.tabInfo.UseVisualStyleBackColor = true;
|
||||
@@ -554,9 +609,31 @@ namespace Test_ACS
|
||||
this.txtInfoLog.Name = "txtInfoLog";
|
||||
this.txtInfoLog.ReadOnly = true;
|
||||
this.txtInfoLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.txtInfoLog.Size = new System.Drawing.Size(506, 469);
|
||||
this.txtInfoLog.Size = new System.Drawing.Size(506, 518);
|
||||
this.txtInfoLog.TabIndex = 0;
|
||||
//
|
||||
// tabPage1
|
||||
//
|
||||
this.tabPage1.Controls.Add(this.richTextBox1);
|
||||
this.tabPage1.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPage1.Name = "tabPage1";
|
||||
this.tabPage1.Size = new System.Drawing.Size(506, 518);
|
||||
this.tabPage1.TabIndex = 3;
|
||||
this.tabPage1.Text = "프레임구조";
|
||||
this.tabPage1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// richTextBox1
|
||||
//
|
||||
this.richTextBox1.BackColor = System.Drawing.Color.WhiteSmoke;
|
||||
this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.richTextBox1.Location = new System.Drawing.Point(0, 0);
|
||||
this.richTextBox1.Margin = new System.Windows.Forms.Padding(10);
|
||||
this.richTextBox1.Name = "richTextBox1";
|
||||
this.richTextBox1.Size = new System.Drawing.Size(506, 518);
|
||||
this.richTextBox1.TabIndex = 0;
|
||||
this.richTextBox1.Text = resources.GetString("richTextBox1.Text");
|
||||
//
|
||||
// grpAGVStatus
|
||||
//
|
||||
this.grpAGVStatus.Controls.Add(this.lblLastTagValue);
|
||||
@@ -577,7 +654,7 @@ namespace Test_ACS
|
||||
this.grpAGVStatus.Controls.Add(this.lblMode);
|
||||
this.grpAGVStatus.Location = new System.Drawing.Point(12, 456);
|
||||
this.grpAGVStatus.Name = "grpAGVStatus";
|
||||
this.grpAGVStatus.Size = new System.Drawing.Size(466, 120);
|
||||
this.grpAGVStatus.Size = new System.Drawing.Size(280, 120);
|
||||
this.grpAGVStatus.TabIndex = 4;
|
||||
this.grpAGVStatus.TabStop = false;
|
||||
this.grpAGVStatus.Text = "AGV 상태";
|
||||
@@ -586,7 +663,7 @@ namespace Test_ACS
|
||||
//
|
||||
this.lblLastTagValue.AutoSize = true;
|
||||
this.lblLastTagValue.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold);
|
||||
this.lblLastTagValue.Location = new System.Drawing.Point(310, 98);
|
||||
this.lblLastTagValue.Location = new System.Drawing.Point(221, 98);
|
||||
this.lblLastTagValue.Name = "lblLastTagValue";
|
||||
this.lblLastTagValue.Size = new System.Drawing.Size(14, 14);
|
||||
this.lblLastTagValue.TabIndex = 15;
|
||||
@@ -595,7 +672,7 @@ namespace Test_ACS
|
||||
// lblLastTag
|
||||
//
|
||||
this.lblLastTag.AutoSize = true;
|
||||
this.lblLastTag.Location = new System.Drawing.Point(240, 98);
|
||||
this.lblLastTag.Location = new System.Drawing.Point(151, 98);
|
||||
this.lblLastTag.Name = "lblLastTag";
|
||||
this.lblLastTag.Size = new System.Drawing.Size(57, 12);
|
||||
this.lblLastTag.TabIndex = 14;
|
||||
@@ -624,7 +701,7 @@ namespace Test_ACS
|
||||
//
|
||||
this.lblCartStValue.AutoSize = true;
|
||||
this.lblCartStValue.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Bold);
|
||||
this.lblCartStValue.Location = new System.Drawing.Point(310, 73);
|
||||
this.lblCartStValue.Location = new System.Drawing.Point(221, 73);
|
||||
this.lblCartStValue.Name = "lblCartStValue";
|
||||
this.lblCartStValue.Size = new System.Drawing.Size(12, 12);
|
||||
this.lblCartStValue.TabIndex = 11;
|
||||
@@ -633,7 +710,7 @@ namespace Test_ACS
|
||||
// lblCartSt
|
||||
//
|
||||
this.lblCartSt.AutoSize = true;
|
||||
this.lblCartSt.Location = new System.Drawing.Point(240, 73);
|
||||
this.lblCartSt.Location = new System.Drawing.Point(151, 73);
|
||||
this.lblCartSt.Name = "lblCartSt";
|
||||
this.lblCartSt.Size = new System.Drawing.Size(33, 12);
|
||||
this.lblCartSt.TabIndex = 10;
|
||||
@@ -662,7 +739,7 @@ namespace Test_ACS
|
||||
//
|
||||
this.lblInpositionValue.AutoSize = true;
|
||||
this.lblInpositionValue.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Bold);
|
||||
this.lblInpositionValue.Location = new System.Drawing.Point(310, 48);
|
||||
this.lblInpositionValue.Location = new System.Drawing.Point(221, 48);
|
||||
this.lblInpositionValue.Name = "lblInpositionValue";
|
||||
this.lblInpositionValue.Size = new System.Drawing.Size(12, 12);
|
||||
this.lblInpositionValue.TabIndex = 7;
|
||||
@@ -671,7 +748,7 @@ namespace Test_ACS
|
||||
// lblInposition
|
||||
//
|
||||
this.lblInposition.AutoSize = true;
|
||||
this.lblInposition.Location = new System.Drawing.Point(240, 48);
|
||||
this.lblInposition.Location = new System.Drawing.Point(151, 48);
|
||||
this.lblInposition.Name = "lblInposition";
|
||||
this.lblInposition.Size = new System.Drawing.Size(57, 12);
|
||||
this.lblInposition.TabIndex = 6;
|
||||
@@ -691,7 +768,7 @@ namespace Test_ACS
|
||||
//
|
||||
this.lblRunStValue.AutoSize = true;
|
||||
this.lblRunStValue.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Bold);
|
||||
this.lblRunStValue.Location = new System.Drawing.Point(310, 23);
|
||||
this.lblRunStValue.Location = new System.Drawing.Point(221, 23);
|
||||
this.lblRunStValue.Name = "lblRunStValue";
|
||||
this.lblRunStValue.Size = new System.Drawing.Size(12, 12);
|
||||
this.lblRunStValue.TabIndex = 3;
|
||||
@@ -700,7 +777,7 @@ namespace Test_ACS
|
||||
// lblRunSt
|
||||
//
|
||||
this.lblRunSt.AutoSize = true;
|
||||
this.lblRunSt.Location = new System.Drawing.Point(240, 23);
|
||||
this.lblRunSt.Location = new System.Drawing.Point(151, 23);
|
||||
this.lblRunSt.Name = "lblRunSt";
|
||||
this.lblRunSt.Size = new System.Drawing.Size(57, 12);
|
||||
this.lblRunSt.TabIndex = 2;
|
||||
@@ -725,11 +802,103 @@ namespace Test_ACS
|
||||
this.lblMode.TabIndex = 0;
|
||||
this.lblMode.Text = "모드:";
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.label3);
|
||||
this.groupBox1.Controls.Add(this.cmbMagDirection);
|
||||
this.groupBox1.Controls.Add(this.label5);
|
||||
this.groupBox1.Controls.Add(this.btAMove);
|
||||
this.groupBox1.Controls.Add(this.cmbAutoSpeed);
|
||||
this.groupBox1.Controls.Add(this.label4);
|
||||
this.groupBox1.Controls.Add(this.cmbMotDirection);
|
||||
this.groupBox1.Location = new System.Drawing.Point(240, 202);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(215, 100);
|
||||
this.groupBox1.TabIndex = 8;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "자동 이동";
|
||||
//
|
||||
// btAMove
|
||||
//
|
||||
this.btAMove.Location = new System.Drawing.Point(128, 16);
|
||||
this.btAMove.Name = "btAMove";
|
||||
this.btAMove.Size = new System.Drawing.Size(81, 74);
|
||||
this.btAMove.TabIndex = 6;
|
||||
this.btAMove.Text = "이동";
|
||||
this.btAMove.UseVisualStyleBackColor = true;
|
||||
this.btAMove.Click += new System.EventHandler(this.btAMove_Click);
|
||||
//
|
||||
// cmbAutoSpeed
|
||||
//
|
||||
this.cmbAutoSpeed.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cmbAutoSpeed.FormattingEnabled = true;
|
||||
this.cmbAutoSpeed.Items.AddRange(new object[] {
|
||||
"느림",
|
||||
"보통",
|
||||
"빠름"});
|
||||
this.cmbAutoSpeed.Location = new System.Drawing.Point(52, 69);
|
||||
this.cmbAutoSpeed.Name = "cmbAutoSpeed";
|
||||
this.cmbAutoSpeed.Size = new System.Drawing.Size(70, 20);
|
||||
this.cmbAutoSpeed.TabIndex = 3;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(14, 73);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(29, 12);
|
||||
this.label4.TabIndex = 2;
|
||||
this.label4.Text = "속도";
|
||||
//
|
||||
// cmbMotDirection
|
||||
//
|
||||
this.cmbMotDirection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cmbMotDirection.FormattingEnabled = true;
|
||||
this.cmbMotDirection.Items.AddRange(new object[] {
|
||||
"후진",
|
||||
"전진"});
|
||||
this.cmbMotDirection.Location = new System.Drawing.Point(52, 16);
|
||||
this.cmbMotDirection.Name = "cmbMotDirection";
|
||||
this.cmbMotDirection.Size = new System.Drawing.Size(70, 20);
|
||||
this.cmbMotDirection.TabIndex = 1;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(13, 21);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(29, 12);
|
||||
this.label5.TabIndex = 7;
|
||||
this.label5.Text = "모터";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(13, 47);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(29, 12);
|
||||
this.label3.TabIndex = 9;
|
||||
this.label3.Text = "방향";
|
||||
//
|
||||
// cmbMagDirection
|
||||
//
|
||||
this.cmbMagDirection.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cmbMagDirection.FormattingEnabled = true;
|
||||
this.cmbMagDirection.Items.AddRange(new object[] {
|
||||
"직진",
|
||||
"좌",
|
||||
"우"});
|
||||
this.cmbMagDirection.Location = new System.Drawing.Point(52, 42);
|
||||
this.cmbMagDirection.Name = "cmbMagDirection";
|
||||
this.cmbMagDirection.Size = new System.Drawing.Size(70, 20);
|
||||
this.cmbMagDirection.TabIndex = 8;
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1016, 588);
|
||||
this.Controls.Add(this.grpLift);
|
||||
this.Controls.Add(this.grpAGVStatus);
|
||||
this.Controls.Add(this.grpLogs);
|
||||
this.Controls.Add(this.grpCommands);
|
||||
@@ -750,16 +919,19 @@ namespace Test_ACS
|
||||
this.grpManual.ResumeLayout(false);
|
||||
this.grpManual.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numRuntime)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.txtRFID)).EndInit();
|
||||
this.grpLogs.ResumeLayout(false);
|
||||
this.tabLogs.ResumeLayout(false);
|
||||
this.tabRX.ResumeLayout(false);
|
||||
this.tabRX.PerformLayout();
|
||||
this.tabTX.ResumeLayout(false);
|
||||
this.tabTX.PerformLayout();
|
||||
this.tableLayoutPanel1.ResumeLayout(false);
|
||||
this.tableLayoutPanel1.PerformLayout();
|
||||
this.tabInfo.ResumeLayout(false);
|
||||
this.tabInfo.PerformLayout();
|
||||
this.tabPage1.ResumeLayout(false);
|
||||
this.grpAGVStatus.ResumeLayout(false);
|
||||
this.grpAGVStatus.PerformLayout();
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
@@ -777,7 +949,7 @@ namespace Test_ACS
|
||||
private System.Windows.Forms.RadioButton rbAGV1;
|
||||
private System.Windows.Forms.GroupBox grpCommands;
|
||||
private System.Windows.Forms.Button btnSetCurrent;
|
||||
private System.Windows.Forms.TextBox txtRFID;
|
||||
private System.Windows.Forms.NumericUpDown txtRFID;
|
||||
private System.Windows.Forms.Label lblRFID;
|
||||
private System.Windows.Forms.Button btnGoto;
|
||||
private System.Windows.Forms.Button btnStop;
|
||||
@@ -785,7 +957,7 @@ namespace Test_ACS
|
||||
private System.Windows.Forms.Button btnMarkStop;
|
||||
private System.Windows.Forms.CheckBox chkMarkStop;
|
||||
private System.Windows.Forms.GroupBox grpManual;
|
||||
private System.Windows.Forms.Button btnManual;
|
||||
private System.Windows.Forms.Button btMMove;
|
||||
private System.Windows.Forms.NumericUpDown numRuntime;
|
||||
private System.Windows.Forms.Label lblRuntime;
|
||||
private System.Windows.Forms.ComboBox cmbSpeed;
|
||||
@@ -797,7 +969,6 @@ namespace Test_ACS
|
||||
private System.Windows.Forms.Button btnLiftUp;
|
||||
private System.Windows.Forms.GroupBox grpLogs;
|
||||
private System.Windows.Forms.TabControl tabLogs;
|
||||
private System.Windows.Forms.TabPage tabTX;
|
||||
private System.Windows.Forms.TextBox txtTxLog;
|
||||
private System.Windows.Forms.TabPage tabRX;
|
||||
private System.Windows.Forms.TextBox txtRxLog;
|
||||
@@ -824,5 +995,18 @@ namespace Test_ACS
|
||||
private System.Windows.Forms.Label lblRunSt;
|
||||
private System.Windows.Forms.Label lblModeValue;
|
||||
private System.Windows.Forms.Label lblMode;
|
||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.TabPage tabPage1;
|
||||
private System.Windows.Forms.RichTextBox richTextBox1;
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.Button btAMove;
|
||||
private System.Windows.Forms.ComboBox cmbAutoSpeed;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.ComboBox cmbMotDirection;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.ComboBox cmbMagDirection;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,11 @@ namespace Test_ACS
|
||||
|
||||
// Speed combobox default
|
||||
if (cmbSpeed.Items.Count > 0) cmbSpeed.SelectedIndex = 1; // 보통
|
||||
|
||||
cmbMotDirection.SelectedIndex = 0;
|
||||
cmbMagDirection.SelectedIndex = 0;
|
||||
cmbAutoSpeed.SelectedIndex = 0;
|
||||
|
||||
}
|
||||
|
||||
private void InitializeProtocol()
|
||||
@@ -61,9 +66,14 @@ namespace Test_ACS
|
||||
AddLog($"RX: {hexstrRaw}\nID:{id}, CMD:{cmd}, DATA:{hexstr}", LogType.RX);
|
||||
|
||||
// AGV 상태 수신 처리 (cmd = 3)
|
||||
if (e.ReceivedPacket.Command == (byte)ENIGProtocol.AGVCommandEH.Status)
|
||||
var device = e.ReceivedPacket.ID;
|
||||
var command = (ENIGProtocol.AGVCommandEH)e.ReceivedPacket.Command;
|
||||
|
||||
switch (command)
|
||||
{
|
||||
UpdateAGVStatus(e.ReceivedPacket.Data);
|
||||
case AGVCommandEH.Status:
|
||||
UpdateAGVStatus(e.ReceivedPacket.Data);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -220,18 +230,21 @@ namespace Test_ACS
|
||||
private void btnSetCurrent_Click(object sender, EventArgs e)
|
||||
{
|
||||
// SetCurrent: data = TargetID(2 hex) + RFID(4 hex)
|
||||
var rfid = txtRFID.Text.PadLeft(4, '0');
|
||||
var targetID = selectedAGV.ToString("X2");
|
||||
var dataStr = targetID + rfid;
|
||||
var rfidBytes = Encoding.ASCII.GetBytes(txtRFID.Text.PadLeft(4, '0'));
|
||||
var rfidHex = string.Join("", rfidBytes.Select(b => b.ToString("X2")));
|
||||
var dataStr = targetID + rfidHex;
|
||||
SendCommand(AGVCommandHE.SetCurrent, dataStr);
|
||||
}
|
||||
|
||||
private void btnGoto_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Goto: data = TargetID(2 hex) + RFID(4 hex)
|
||||
var rfid = txtRFID.Text.PadLeft(4, '0');
|
||||
|
||||
var targetID = selectedAGV.ToString("X2");
|
||||
var dataStr = targetID + rfid;
|
||||
var rfidBytes = Encoding.ASCII.GetBytes(txtRFID.Text.PadLeft(4, '0'));
|
||||
var rfidHex = string.Join("", rfidBytes.Select(b => b.ToString("X2")));
|
||||
var dataStr = targetID + rfidHex;
|
||||
SendCommand(AGVCommandHE.Goto, dataStr);
|
||||
}
|
||||
|
||||
@@ -334,7 +347,22 @@ namespace Test_ACS
|
||||
serialPort.Write(packet, 0, packet.Length);
|
||||
|
||||
var hexString = string.Join(" ", packet.Select(b => b.ToString("X2")));
|
||||
AddLog($"TX: {hexString}\nCMD: {command} ({(byte)command:X2}), DATA: {dataHexString}", LogType.TX);
|
||||
|
||||
//정보를 조금더 추출한다.
|
||||
var Sender = packet[2];
|
||||
|
||||
if (Sender == 0x00)
|
||||
{
|
||||
var Receiver = packet[4];
|
||||
var strdata = System.Text.Encoding.Default.GetString(dataBytes, 1, dataBytes.Length - 1);// (dataHexString.Substring(2), 16);
|
||||
|
||||
AddLog($"{hexString}|{command}({(byte)command:X2}) From:{Sender} To:{Receiver} => {dataHexString} STR:{strdata}", LogType.TX);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddLog($"{hexString}|{command}({(byte)command:X2}) From:{Sender} => {dataHexString}", LogType.TX);
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -344,7 +372,7 @@ namespace Test_ACS
|
||||
|
||||
private void UpdateAGVStatus(byte[] data)
|
||||
{
|
||||
if (data.Length < 13)
|
||||
if (data.Length < 12)
|
||||
{
|
||||
AddLog($"AGV 상태 데이터 길이 오류: {data.Length} bytes", LogType.Error);
|
||||
return;
|
||||
@@ -383,36 +411,47 @@ namespace Test_ACS
|
||||
break;
|
||||
}
|
||||
|
||||
// Direction[1]: 0=straight, 1=left, 2=right, 3=markstop
|
||||
// Mot Direction[1]: 0=forward, 1:backward
|
||||
switch (data[2])
|
||||
{
|
||||
case 0:
|
||||
lblDirectionValue.Text = "직진";
|
||||
lblDirectionValue.Text = "전진";
|
||||
break;
|
||||
case 1:
|
||||
lblDirectionValue.Text = "좌회전";
|
||||
break;
|
||||
case 2:
|
||||
lblDirectionValue.Text = "우회전";
|
||||
break;
|
||||
case 3:
|
||||
lblDirectionValue.Text = "마크정지";
|
||||
lblDirectionValue.Text = "후진";
|
||||
break;
|
||||
default:
|
||||
lblDirectionValue.Text = "알 수 없음";
|
||||
lblDirectionValue.Text = "??";
|
||||
break;
|
||||
}
|
||||
|
||||
// Direction[1]: 0=straight, 1=left, 2=right, 3=markstop
|
||||
switch (data[3])
|
||||
{
|
||||
case 0:
|
||||
lblDirectionValue.Text += "/직진";
|
||||
break;
|
||||
case 1:
|
||||
lblDirectionValue.Text += "/좌회전";
|
||||
break;
|
||||
case 2:
|
||||
lblDirectionValue.Text += "/우회전";
|
||||
break;
|
||||
default:
|
||||
lblDirectionValue.Text += "/??";
|
||||
break;
|
||||
}
|
||||
|
||||
// Inposition[1]: 0=off, 1=on
|
||||
lblInpositionValue.Text = data[3] == 0 ? "OFF" : "ON";
|
||||
lblInpositionValue.ForeColor = data[3] == 0 ? Color.Gray : Color.Green;
|
||||
lblInpositionValue.Text = data[4] == 0 ? "OFF" : "ON";
|
||||
lblInpositionValue.ForeColor = data[4] == 0 ? Color.Gray : Color.Green;
|
||||
|
||||
// ChargeSt[1]: 0=off, 1=on
|
||||
lblChargeStValue.Text = data[4] == 0 ? "OFF" : "ON";
|
||||
lblChargeStValue.ForeColor = data[4] == 0 ? Color.Gray : Color.Orange;
|
||||
lblChargeStValue.Text = data[5] == 0 ? "OFF" : "ON";
|
||||
lblChargeStValue.ForeColor = data[5] == 0 ? Color.Gray : Color.Orange;
|
||||
|
||||
// CartSt[1]: 0=off, 1=on, 2=unknown
|
||||
switch (data[5])
|
||||
switch (data[6])
|
||||
{
|
||||
case 0:
|
||||
lblCartStValue.Text = "없음";
|
||||
@@ -422,18 +461,14 @@ namespace Test_ACS
|
||||
lblCartStValue.Text = "있음";
|
||||
lblCartStValue.ForeColor = Color.Green;
|
||||
break;
|
||||
case 2:
|
||||
lblCartStValue.Text = "알 수 없음";
|
||||
lblCartStValue.ForeColor = Color.Orange;
|
||||
break;
|
||||
default:
|
||||
lblCartStValue.Text = "오류";
|
||||
lblCartStValue.Text = "??";
|
||||
lblCartStValue.ForeColor = Color.Red;
|
||||
break;
|
||||
}
|
||||
|
||||
// LiftSt[1]: 0=down, 1=up, 2=unknown
|
||||
switch (data[6])
|
||||
switch (data[7])
|
||||
{
|
||||
case 0:
|
||||
lblLiftStValue.Text = "하강";
|
||||
@@ -443,18 +478,13 @@ namespace Test_ACS
|
||||
lblLiftStValue.Text = "상승";
|
||||
lblLiftStValue.ForeColor = Color.Green;
|
||||
break;
|
||||
case 2:
|
||||
lblLiftStValue.Text = "알 수 없음";
|
||||
lblLiftStValue.ForeColor = Color.Orange;
|
||||
break;
|
||||
default:
|
||||
lblLiftStValue.Text = "오류";
|
||||
lblLiftStValue.Text = "??";
|
||||
lblLiftStValue.ForeColor = Color.Red;
|
||||
break;
|
||||
}
|
||||
|
||||
// LastTag[6]: "000000"
|
||||
string lastTag = Encoding.ASCII.GetString(data, 7, 6);
|
||||
string lastTag = Encoding.ASCII.GetString(data, 8, 4);
|
||||
lblLastTagValue.Text = lastTag;
|
||||
lblLastTagValue.ForeColor = Color.Black;
|
||||
}
|
||||
@@ -511,5 +541,18 @@ namespace Test_ACS
|
||||
}
|
||||
base.OnFormClosing(e);
|
||||
}
|
||||
|
||||
private void btAMove_Click(object sender, EventArgs e)
|
||||
{
|
||||
// Manual: data = TargetID(2 hex) + Direction(1 byte) + Speed(1 byte) + Runtime(1 byte)
|
||||
var targetID = selectedAGV.ToString("X2");
|
||||
var Motdirection = (byte)cmbMotDirection.SelectedIndex;
|
||||
var Magdirection = (byte)cmbMagDirection.SelectedIndex;
|
||||
var speed = (byte)cmbAutoSpeed.SelectedIndex;
|
||||
|
||||
var dataBytes = new byte[] { Motdirection, Magdirection, speed };
|
||||
var dataStr = targetID + string.Join("", dataBytes.Select(b => b.ToString("X2")));
|
||||
SendCommand(AGVCommandHE.AutoMove, dataStr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,4 +117,17 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="richTextBox1.Text" xml:space="preserve">
|
||||
<value>### 기본 패킷 구조
|
||||
```
|
||||
[STX][LEN][ID][CMD][DATA][CRC16][ETX]
|
||||
```
|
||||
- **STX (Start of Text)**: 0x02
|
||||
- **LEN (Length)**: 데이터 길이 (1바이트) = {ID+CMD+DATA}
|
||||
- **ID (Client ID)**: 데이터 길이 (1바이트) : 디바이스식별코드(=DeviceType)
|
||||
- **CMD (Command)**: 명령어 코드 (1바이트)
|
||||
- **DATA**: 명령어에 따른 데이터 (가변 길이)
|
||||
- **CRC16**: 데이터 무결성 검사 (2바이트)
|
||||
- **ETX (End of Text)**: 0x03</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -18,7 +18,7 @@
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\</OutputPath>
|
||||
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
@@ -36,7 +36,7 @@
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\SubProject\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
<HintPath>..\..\packages\Newtonsoft.Json.13.0.4\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
@@ -77,6 +77,7 @@
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<None Include="app.config" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" />
|
||||
</packages>
|
||||
<package id="Newtonsoft.Json" version="13.0.4" targetFramework="net48" />
|
||||
</packages>
|
||||
Reference in New Issue
Block a user