diff --git a/Cs_HMI/Project/AGV4.csproj b/Cs_HMI/Project/AGV4.csproj
index 1ee4984..53b86d3 100644
--- a/Cs_HMI/Project/AGV4.csproj
+++ b/Cs_HMI/Project/AGV4.csproj
@@ -197,6 +197,12 @@
fCounter.cs
+
+ Form
+
+
+ fXbeeSetting.cs
+
Form
@@ -418,6 +424,9 @@
fCounter.cs
+
+ fXbeeSetting.cs
+
fUpdateForm.cs
diff --git a/Cs_HMI/Project/Dialog/fLog.Designer.cs b/Cs_HMI/Project/Dialog/fLog.Designer.cs
index b671af0..3864b61 100644
--- a/Cs_HMI/Project/Dialog/fLog.Designer.cs
+++ b/Cs_HMI/Project/Dialog/fLog.Designer.cs
@@ -33,13 +33,13 @@
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.panel1 = new System.Windows.Forms.Panel();
this.rtXbee = new arCtl.LogTextBox();
- this.label1 = new System.Windows.Forms.Label();
+ this.titleXBEE = new System.Windows.Forms.Label();
this.panel2 = new System.Windows.Forms.Panel();
this.rtBMS = new arCtl.LogTextBox();
- this.label3 = new System.Windows.Forms.Label();
+ this.titleBMS = new System.Windows.Forms.Label();
this.panel4 = new System.Windows.Forms.Panel();
this.rtAGV = new arCtl.LogTextBox();
- this.label2 = new System.Windows.Forms.Label();
+ this.titleAGV = new System.Windows.Forms.Label();
this.tableLayoutPanel1.SuspendLayout();
this.panel1.SuspendLayout();
this.panel2.SuspendLayout();
@@ -112,7 +112,7 @@
// panel1
//
this.panel1.Controls.Add(this.rtXbee);
- this.panel1.Controls.Add(this.label1);
+ this.panel1.Controls.Add(this.titleXBEE);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(173, 349);
this.panel1.Name = "panel1";
@@ -139,21 +139,21 @@
this.rtXbee.TabIndex = 2;
this.rtXbee.Text = "";
//
- // label1
+ // titleXBEE
//
- this.label1.Dock = System.Windows.Forms.DockStyle.Top;
- this.label1.Location = new System.Drawing.Point(0, 0);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(164, 14);
- this.label1.TabIndex = 0;
- this.label1.Text = "MC ID";
- this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.titleXBEE.Dock = System.Windows.Forms.DockStyle.Top;
+ this.titleXBEE.Location = new System.Drawing.Point(0, 0);
+ this.titleXBEE.Name = "titleXBEE";
+ this.titleXBEE.Size = new System.Drawing.Size(164, 14);
+ this.titleXBEE.TabIndex = 0;
+ this.titleXBEE.Text = "MC ID";
+ this.titleXBEE.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel2
//
this.tableLayoutPanel1.SetColumnSpan(this.panel2, 2);
this.panel2.Controls.Add(this.rtBMS);
- this.panel2.Controls.Add(this.label3);
+ this.panel2.Controls.Add(this.titleBMS);
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(343, 349);
this.panel2.Name = "panel2";
@@ -180,20 +180,20 @@
this.rtBMS.TabIndex = 2;
this.rtBMS.Text = "";
//
- // label3
+ // titleBMS
//
- this.label3.Dock = System.Windows.Forms.DockStyle.Top;
- this.label3.Location = new System.Drawing.Point(0, 0);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(335, 14);
- this.label3.TabIndex = 3;
- this.label3.Text = "BMS";
- this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.titleBMS.Dock = System.Windows.Forms.DockStyle.Top;
+ this.titleBMS.Location = new System.Drawing.Point(0, 0);
+ this.titleBMS.Name = "titleBMS";
+ this.titleBMS.Size = new System.Drawing.Size(335, 14);
+ this.titleBMS.TabIndex = 3;
+ this.titleBMS.Text = "BMS";
+ this.titleBMS.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel4
//
this.panel4.Controls.Add(this.rtAGV);
- this.panel4.Controls.Add(this.label2);
+ this.panel4.Controls.Add(this.titleAGV);
this.panel4.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel4.Location = new System.Drawing.Point(3, 349);
this.panel4.Name = "panel4";
@@ -220,15 +220,15 @@
this.rtAGV.TabIndex = 2;
this.rtAGV.Text = "";
//
- // label2
+ // titleAGV
//
- this.label2.Dock = System.Windows.Forms.DockStyle.Top;
- this.label2.Location = new System.Drawing.Point(0, 0);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(164, 14);
- this.label2.TabIndex = 3;
- this.label2.Text = "AGV";
- this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.titleAGV.Dock = System.Windows.Forms.DockStyle.Top;
+ this.titleAGV.Location = new System.Drawing.Point(0, 0);
+ this.titleAGV.Name = "titleAGV";
+ this.titleAGV.Size = new System.Drawing.Size(164, 14);
+ this.titleAGV.TabIndex = 3;
+ this.titleAGV.Text = "AGV";
+ this.titleAGV.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// fLog
//
@@ -258,10 +258,10 @@
private arCtl.LogTextBox rtBMS;
private arCtl.LogTextBox rtXbee;
private System.Windows.Forms.Panel panel1;
- private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label titleXBEE;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Panel panel4;
- private System.Windows.Forms.Label label3;
- private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.Label titleBMS;
+ private System.Windows.Forms.Label titleAGV;
}
}
\ No newline at end of file
diff --git a/Cs_HMI/Project/Dialog/fLog.cs b/Cs_HMI/Project/Dialog/fLog.cs
index 1ade720..6f37812 100644
--- a/Cs_HMI/Project/Dialog/fLog.cs
+++ b/Cs_HMI/Project/Dialog/fLog.cs
@@ -29,7 +29,9 @@ namespace Project.Dialog
private void fLog_Load(object sender, EventArgs e)
{
- this.label1.Text = $"XBEE:{PUB.setting.XBE_ID}";
+ this.titleXBEE.Text = $"XBEE({PUB.setting.Port_XBE},ID:{PUB.setting.XBE_ID})";
+ this.titleAGV.Text = $"AGV({PUB.setting.Port_AGV}:{PUB.setting.Baud_AGV})";
+ this.titleBMS.Text = $"BMS({PUB.setting.Port_BAT}:{PUB.setting.Baud_BAT})";
var colorlist = new arCtl.sLogMessageColor[]
{
new arCtl.sLogMessageColor("NOR",Color.Black),
diff --git a/Cs_HMI/Project/Dialog/fXbeeSetting.Designer.cs b/Cs_HMI/Project/Dialog/fXbeeSetting.Designer.cs
new file mode 100644
index 0000000..212becd
--- /dev/null
+++ b/Cs_HMI/Project/Dialog/fXbeeSetting.Designer.cs
@@ -0,0 +1,231 @@
+namespace Project.Dialog
+{
+ partial class fXbeeSetting
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.button1 = new System.Windows.Forms.Button();
+ this.tbBaud = new System.Windows.Forms.TextBox();
+ this.tbPortName = new System.Windows.Forms.ComboBox();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.panel2 = new System.Windows.Forms.Panel();
+ this.rtXbee = new arCtl.LogTextBox();
+ this.tbpanid = new System.Windows.Forms.TextBox();
+ this.btpand = new System.Windows.Forms.Button();
+ this.btch = new System.Windows.Forms.Button();
+ this.tbch = new System.Windows.Forms.TextBox();
+ this.btmy = new System.Windows.Forms.Button();
+ this.tbmy = new System.Windows.Forms.TextBox();
+ this.button2 = new System.Windows.Forms.Button();
+ this.panel1.SuspendLayout();
+ this.panel2.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(25, 45);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(227, 26);
+ this.button1.TabIndex = 0;
+ this.button1.Text = "open/close";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
+ // tbBaud
+ //
+ this.tbBaud.Font = new System.Drawing.Font("굴림", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+ this.tbBaud.Location = new System.Drawing.Point(152, 13);
+ this.tbBaud.Name = "tbBaud";
+ this.tbBaud.Size = new System.Drawing.Size(100, 26);
+ this.tbBaud.TabIndex = 2;
+ this.tbBaud.Text = "9600";
+ this.tbBaud.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ //
+ // tbPortName
+ //
+ this.tbPortName.Font = new System.Drawing.Font("굴림", 12F);
+ this.tbPortName.FormattingEnabled = true;
+ this.tbPortName.Location = new System.Drawing.Point(25, 15);
+ this.tbPortName.Name = "tbPortName";
+ this.tbPortName.Size = new System.Drawing.Size(121, 24);
+ this.tbPortName.TabIndex = 3;
+ //
+ // panel1
+ //
+ this.panel1.Controls.Add(this.button2);
+ this.panel1.Controls.Add(this.btmy);
+ this.panel1.Controls.Add(this.tbmy);
+ this.panel1.Controls.Add(this.btch);
+ this.panel1.Controls.Add(this.tbch);
+ this.panel1.Controls.Add(this.btpand);
+ this.panel1.Controls.Add(this.tbpanid);
+ this.panel1.Controls.Add(this.tbPortName);
+ this.panel1.Controls.Add(this.button1);
+ this.panel1.Controls.Add(this.tbBaud);
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
+ this.panel1.Location = new System.Drawing.Point(0, 0);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(580, 118);
+ this.panel1.TabIndex = 4;
+ //
+ // panel2
+ //
+ this.panel2.Controls.Add(this.rtXbee);
+ this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panel2.Location = new System.Drawing.Point(0, 118);
+ this.panel2.Name = "panel2";
+ this.panel2.Size = new System.Drawing.Size(580, 338);
+ this.panel2.TabIndex = 5;
+ //
+ // rtXbee
+ //
+ this.rtXbee.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
+ this.rtXbee.ColorList = new arCtl.sLogMessageColor[0];
+ this.rtXbee.DateFormat = "mm:ss.fff";
+ this.rtXbee.DefaultColor = System.Drawing.Color.LightGray;
+ this.rtXbee.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.rtXbee.EnableDisplayTimer = false;
+ this.rtXbee.EnableGubunColor = true;
+ this.rtXbee.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.rtXbee.ListFormat = "[{0}] {1}";
+ this.rtXbee.Location = new System.Drawing.Point(0, 0);
+ this.rtXbee.MaxListCount = ((ushort)(1000));
+ this.rtXbee.MaxTextLength = ((uint)(400000u));
+ this.rtXbee.MessageInterval = 50;
+ this.rtXbee.Name = "rtXbee";
+ this.rtXbee.Size = new System.Drawing.Size(580, 338);
+ this.rtXbee.TabIndex = 2;
+ this.rtXbee.Text = "";
+ //
+ // tbpanid
+ //
+ this.tbpanid.Font = new System.Drawing.Font("굴림", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+ this.tbpanid.Location = new System.Drawing.Point(374, 15);
+ this.tbpanid.Name = "tbpanid";
+ this.tbpanid.Size = new System.Drawing.Size(100, 26);
+ this.tbpanid.TabIndex = 4;
+ this.tbpanid.Text = "9600";
+ this.tbpanid.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ //
+ // btpand
+ //
+ this.btpand.Location = new System.Drawing.Point(480, 15);
+ this.btpand.Name = "btpand";
+ this.btpand.Size = new System.Drawing.Size(86, 26);
+ this.btpand.TabIndex = 5;
+ this.btpand.Text = "PanID";
+ this.btpand.UseVisualStyleBackColor = true;
+ this.btpand.Click += new System.EventHandler(this.btpand_Click);
+ //
+ // btch
+ //
+ this.btch.Location = new System.Drawing.Point(480, 47);
+ this.btch.Name = "btch";
+ this.btch.Size = new System.Drawing.Size(86, 26);
+ this.btch.TabIndex = 7;
+ this.btch.Text = "Channel";
+ this.btch.UseVisualStyleBackColor = true;
+ this.btch.Click += new System.EventHandler(this.btch_Click);
+ //
+ // tbch
+ //
+ this.tbch.Font = new System.Drawing.Font("굴림", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+ this.tbch.Location = new System.Drawing.Point(374, 47);
+ this.tbch.Name = "tbch";
+ this.tbch.Size = new System.Drawing.Size(100, 26);
+ this.tbch.TabIndex = 6;
+ this.tbch.Text = "9600";
+ this.tbch.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ //
+ // btmy
+ //
+ this.btmy.Location = new System.Drawing.Point(480, 78);
+ this.btmy.Name = "btmy";
+ this.btmy.Size = new System.Drawing.Size(86, 26);
+ this.btmy.TabIndex = 9;
+ this.btmy.Text = "My";
+ this.btmy.UseVisualStyleBackColor = true;
+ this.btmy.Click += new System.EventHandler(this.btmy_Click);
+ //
+ // tbmy
+ //
+ this.tbmy.Font = new System.Drawing.Font("굴림", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+ this.tbmy.Location = new System.Drawing.Point(374, 78);
+ this.tbmy.Name = "tbmy";
+ this.tbmy.Size = new System.Drawing.Size(100, 26);
+ this.tbmy.TabIndex = 8;
+ this.tbmy.Text = "9600";
+ this.tbmy.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
+ //
+ // button2
+ //
+ this.button2.Location = new System.Drawing.Point(293, 15);
+ this.button2.Name = "button2";
+ this.button2.Size = new System.Drawing.Size(75, 89);
+ this.button2.TabIndex = 10;
+ this.button2.Text = "Read Setting";
+ this.button2.UseVisualStyleBackColor = true;
+ this.button2.Click += new System.EventHandler(this.button2_Click);
+ //
+ // fXbeeSetting
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(580, 456);
+ this.Controls.Add(this.panel2);
+ this.Controls.Add(this.panel1);
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "fXbeeSetting";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Form1";
+ this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.fXbeeSetting_FormClosed);
+ this.Load += new System.EventHandler(this.fXbeeSetting_Load);
+ this.panel1.ResumeLayout(false);
+ this.panel1.PerformLayout();
+ this.panel2.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Button button1;
+ private System.Windows.Forms.TextBox tbBaud;
+ private System.Windows.Forms.ComboBox tbPortName;
+ private System.Windows.Forms.Panel panel1;
+ private System.Windows.Forms.Panel panel2;
+ private arCtl.LogTextBox rtXbee;
+ private System.Windows.Forms.Button btpand;
+ private System.Windows.Forms.TextBox tbpanid;
+ private System.Windows.Forms.Button btmy;
+ private System.Windows.Forms.TextBox tbmy;
+ private System.Windows.Forms.Button btch;
+ private System.Windows.Forms.TextBox tbch;
+ private System.Windows.Forms.Button button2;
+ }
+}
\ No newline at end of file
diff --git a/Cs_HMI/Project/Dialog/fXbeeSetting.cs b/Cs_HMI/Project/Dialog/fXbeeSetting.cs
new file mode 100644
index 0000000..e50ac45
--- /dev/null
+++ b/Cs_HMI/Project/Dialog/fXbeeSetting.cs
@@ -0,0 +1,89 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Project.Dialog
+{
+ public partial class fXbeeSetting : Form
+ {
+ public fXbeeSetting()
+ {
+ InitializeComponent();
+ PUB.logxbee.RaiseMsg += Log_RaiseMsgcal;
+ }
+ private void fXbeeSetting_Load(object sender, EventArgs e)
+ {
+ this.tbPortName.Items.Clear();
+ foreach (var item in System.IO.Ports.SerialPort.GetPortNames())
+ {
+ this.tbPortName.Items.Add(item);
+ }
+
+ this.tbPortName.Text = PUB.setting.Port_XBE;
+ this.tbBaud.Text = PUB.setting.Baud_XBE.ToString();
+ }
+ private void Log_RaiseMsgcal(DateTime LogTime, string TypeStr, string Message)
+ {
+ showlog(rtXbee, LogTime, TypeStr, Message);
+ }
+ void showlog(arCtl.LogTextBox rtRx, DateTime LogTime, string TypeStr, string Message)
+ {
+ if (rtRx.Visible)
+ {
+ rtRx.AddMsg(LogTime, TypeStr, Message);
+ }
+ }
+ private void button1_Click(object sender, EventArgs e)
+ {
+ if (PUB.XBE.IsOpen)
+ PUB.XBE.Close();
+ else
+ {
+ PUB.XBE.PortName = tbPortName.Text;
+ PUB.XBE.Open();
+ }
+ }
+
+ private void fXbeeSetting_FormClosed(object sender, FormClosedEventArgs e)
+ {
+ PUB.logxbee.RaiseMsg -= Log_RaiseMsgcal;
+ }
+
+ private void btpand_Click(object sender, EventArgs e)
+ {
+ var cmds = new string[] {
+ "+++",
+ $"ATID{tbpanid.Text}\r" ,
+ $"ATCN"};
+
+ }
+
+ private void btch_Click(object sender, EventArgs e)
+ {
+ var cmds = new string[] {
+ "+++",
+ $"ATCH{tbch.Text}\r" ,
+ $"ATCN"};
+ }
+
+ private void btmy_Click(object sender, EventArgs e)
+ {
+ var cmds = new string[] {
+ "+++",
+ $"ATMY{tbmy.Text}\r" ,
+ $"ATCN"};
+ }
+
+ private void button2_Click(object sender, EventArgs e)
+ {
+ //read all(id,ch,my)
+
+ }
+ }
+}
diff --git a/Cs_HMI/Project/Dialog/fXbeeSetting.resx b/Cs_HMI/Project/Dialog/fXbeeSetting.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/Cs_HMI/Project/Dialog/fXbeeSetting.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Cs_HMI/Project/fMain.Designer.cs b/Cs_HMI/Project/fMain.Designer.cs
index bf1e9b1..096e164 100644
--- a/Cs_HMI/Project/fMain.Designer.cs
+++ b/Cs_HMI/Project/fMain.Designer.cs
@@ -109,6 +109,7 @@ namespace Project
this.lbIDLE = new arCtl.arLabel();
this.lbStStep = new arCtl.arLabel();
this.panTopMenu = new System.Windows.Forms.Panel();
+ this.lbBat = new AGVControl.BatteryLevelGauge();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.cmDebug = new System.Windows.Forms.ContextMenuStrip(this.components);
this.mapFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -121,12 +122,12 @@ namespace Project
this.debugtestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.pandBottomDIO = new System.Windows.Forms.Panel();
this.panel9 = new System.Windows.Forms.Panel();
+ this.IOState = new arFrame.Control.GridView();
+ this.SSInfo = new arFrame.Control.GridView();
this.panDlg = new System.Windows.Forms.Panel();
this.arPanel2 = new arCtl.arPanel();
this.arPanel1 = new arCtl.arPanel();
- this.IOState = new arFrame.Control.GridView();
- this.SSInfo = new arFrame.Control.GridView();
- this.lbBat = new AGVControl.BatteryLevelGauge();
+ this.xbeeSettingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.panRight.SuspendLayout();
this.tableLayoutPanel1.SuspendLayout();
this.panel4.SuspendLayout();
@@ -1622,6 +1623,26 @@ namespace Project
this.panTopMenu.Size = new System.Drawing.Size(1278, 50);
this.panTopMenu.TabIndex = 134;
//
+ // lbBat
+ //
+ this.lbBat.BorderColor = System.Drawing.Color.DimGray;
+ this.lbBat.CurA = 0F;
+ this.lbBat.Dock = System.Windows.Forms.DockStyle.Right;
+ this.lbBat.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.lbBat.ForeColor = System.Drawing.Color.Gray;
+ this.lbBat.IsOpen = true;
+ this.lbBat.Location = new System.Drawing.Point(830, 0);
+ this.lbBat.MaxA = 0F;
+ this.lbBat.Name = "lbBat";
+ this.lbBat.Padding = new System.Windows.Forms.Padding(0, 12, 0, 12);
+ this.lbBat.sign = "%";
+ this.lbBat.Size = new System.Drawing.Size(48, 50);
+ this.lbBat.TabIndex = 23;
+ this.lbBat.Text = "12";
+ this.lbBat.VLevel = 50F;
+ this.lbBat.Volt = 0F;
+ this.lbBat.Click += new System.EventHandler(this.lbBat_Click);
+ //
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
@@ -1652,9 +1673,10 @@ namespace Project
this.선택상태보기ToolStripMenuItem,
this.demoListLotToolStripMenuItem,
this.toolStripMenuItem5,
- this.refreshListToolStripMenuItem});
+ this.refreshListToolStripMenuItem,
+ this.xbeeSettingToolStripMenuItem});
this.cmDebug.Name = "cmVision";
- this.cmDebug.Size = new System.Drawing.Size(229, 324);
+ this.cmDebug.Size = new System.Drawing.Size(229, 368);
//
// mapFileToolStripMenuItem
//
@@ -1732,70 +1754,6 @@ namespace Project
this.panel9.Size = new System.Drawing.Size(1278, 35);
this.panel9.TabIndex = 0;
//
- // panDlg
- //
- this.panDlg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(64)))));
- this.panDlg.Dock = System.Windows.Forms.DockStyle.Fill;
- this.panDlg.Location = new System.Drawing.Point(1, 58);
- this.panDlg.Margin = new System.Windows.Forms.Padding(0);
- this.panDlg.Name = "panDlg";
- this.panDlg.Size = new System.Drawing.Size(1014, 706);
- this.panDlg.TabIndex = 146;
- //
- // arPanel2
- //
- this.arPanel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
- this.arPanel2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
- this.arPanel2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(25)))), ((int)(((byte)(25)))));
- this.arPanel2.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 5);
- this.arPanel2.Dock = System.Windows.Forms.DockStyle.Top;
- this.arPanel2.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic);
- this.arPanel2.ForeColor = System.Drawing.Color.Khaki;
- this.arPanel2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
- this.arPanel2.GradientRepeatBG = false;
- this.arPanel2.Location = new System.Drawing.Point(1, 55);
- this.arPanel2.Name = "arPanel2";
- this.arPanel2.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
- this.arPanel2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
- this.arPanel2.ProgressMax = 100F;
- this.arPanel2.ProgressMin = 0F;
- this.arPanel2.ProgressPadding = new System.Windows.Forms.Padding(0);
- this.arPanel2.ProgressValue = 0F;
- this.arPanel2.ShadowColor = System.Drawing.Color.Black;
- this.arPanel2.ShowBorder = true;
- this.arPanel2.Size = new System.Drawing.Size(1278, 3);
- this.arPanel2.TabIndex = 145;
- this.arPanel2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.arPanel2.TextShadow = false;
- this.arPanel2.UseProgressBar = false;
- //
- // arPanel1
- //
- this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
- this.arPanel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
- this.arPanel1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(25)))), ((int)(((byte)(25)))));
- this.arPanel1.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 5);
- this.arPanel1.Dock = System.Windows.Forms.DockStyle.Top;
- this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic);
- this.arPanel1.ForeColor = System.Drawing.Color.Khaki;
- this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
- this.arPanel1.GradientRepeatBG = false;
- this.arPanel1.Location = new System.Drawing.Point(1, 51);
- this.arPanel1.Name = "arPanel1";
- this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
- this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
- this.arPanel1.ProgressMax = 100F;
- this.arPanel1.ProgressMin = 0F;
- this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0);
- this.arPanel1.ProgressValue = 0F;
- this.arPanel1.ShadowColor = System.Drawing.Color.Black;
- this.arPanel1.ShowBorder = true;
- this.arPanel1.Size = new System.Drawing.Size(1278, 4);
- this.arPanel1.TabIndex = 135;
- this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
- this.arPanel1.TextShadow = false;
- this.arPanel1.UseProgressBar = false;
- //
// IOState
//
this.IOState.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
@@ -1948,25 +1906,76 @@ namespace Project
((ushort)(0))};
this.SSInfo.Click += new System.EventHandler(this.SSInfo_Click);
//
- // lbBat
+ // panDlg
//
- this.lbBat.BorderColor = System.Drawing.Color.DimGray;
- this.lbBat.CurA = 0F;
- this.lbBat.Dock = System.Windows.Forms.DockStyle.Right;
- this.lbBat.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lbBat.ForeColor = System.Drawing.Color.Gray;
- this.lbBat.IsOpen = true;
- this.lbBat.Location = new System.Drawing.Point(830, 0);
- this.lbBat.MaxA = 0F;
- this.lbBat.Name = "lbBat";
- this.lbBat.Padding = new System.Windows.Forms.Padding(0, 12, 0, 12);
- this.lbBat.sign = "%";
- this.lbBat.Size = new System.Drawing.Size(48, 50);
- this.lbBat.TabIndex = 23;
- this.lbBat.Text = "12";
- this.lbBat.VLevel = 50F;
- this.lbBat.Volt = 0F;
- this.lbBat.Click += new System.EventHandler(this.lbBat_Click);
+ this.panDlg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(64)))));
+ this.panDlg.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panDlg.Location = new System.Drawing.Point(1, 58);
+ this.panDlg.Margin = new System.Windows.Forms.Padding(0);
+ this.panDlg.Name = "panDlg";
+ this.panDlg.Size = new System.Drawing.Size(1014, 706);
+ this.panDlg.TabIndex = 146;
+ //
+ // arPanel2
+ //
+ this.arPanel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
+ this.arPanel2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
+ this.arPanel2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(25)))), ((int)(((byte)(25)))));
+ this.arPanel2.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 5);
+ this.arPanel2.Dock = System.Windows.Forms.DockStyle.Top;
+ this.arPanel2.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic);
+ this.arPanel2.ForeColor = System.Drawing.Color.Khaki;
+ this.arPanel2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
+ this.arPanel2.GradientRepeatBG = false;
+ this.arPanel2.Location = new System.Drawing.Point(1, 55);
+ this.arPanel2.Name = "arPanel2";
+ this.arPanel2.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
+ this.arPanel2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
+ this.arPanel2.ProgressMax = 100F;
+ this.arPanel2.ProgressMin = 0F;
+ this.arPanel2.ProgressPadding = new System.Windows.Forms.Padding(0);
+ this.arPanel2.ProgressValue = 0F;
+ this.arPanel2.ShadowColor = System.Drawing.Color.Black;
+ this.arPanel2.ShowBorder = true;
+ this.arPanel2.Size = new System.Drawing.Size(1278, 3);
+ this.arPanel2.TabIndex = 145;
+ this.arPanel2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ this.arPanel2.TextShadow = false;
+ this.arPanel2.UseProgressBar = false;
+ //
+ // arPanel1
+ //
+ this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
+ this.arPanel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
+ this.arPanel1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(25)))), ((int)(((byte)(25)))));
+ this.arPanel1.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 5);
+ this.arPanel1.Dock = System.Windows.Forms.DockStyle.Top;
+ this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic);
+ this.arPanel1.ForeColor = System.Drawing.Color.Khaki;
+ this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
+ this.arPanel1.GradientRepeatBG = false;
+ this.arPanel1.Location = new System.Drawing.Point(1, 51);
+ this.arPanel1.Name = "arPanel1";
+ this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
+ this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
+ this.arPanel1.ProgressMax = 100F;
+ this.arPanel1.ProgressMin = 0F;
+ this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0);
+ this.arPanel1.ProgressValue = 0F;
+ this.arPanel1.ShadowColor = System.Drawing.Color.Black;
+ this.arPanel1.ShowBorder = true;
+ this.arPanel1.Size = new System.Drawing.Size(1278, 4);
+ this.arPanel1.TabIndex = 135;
+ this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
+ this.arPanel1.TextShadow = false;
+ this.arPanel1.UseProgressBar = false;
+ //
+ // xbeeSettingToolStripMenuItem
+ //
+ this.xbeeSettingToolStripMenuItem.Name = "xbeeSettingToolStripMenuItem";
+ this.xbeeSettingToolStripMenuItem.Size = new System.Drawing.Size(228, 22);
+ this.xbeeSettingToolStripMenuItem.Text = "xbee setting";
+ this.xbeeSettingToolStripMenuItem.Click += new System.EventHandler(this.xbeeSettingToolStripMenuItem_Click);
//
// fMain
//
@@ -2089,6 +2098,7 @@ namespace Project
private ToolStripMenuItem saveToolStripMenuItem;
private ToolStripMenuItem loadToolStripMenuItem;
private ToolStripMenuItem editorToolStripMenuItem;
+ private ToolStripMenuItem xbeeSettingToolStripMenuItem;
}
}
diff --git a/Cs_HMI/Project/fMain.cs b/Cs_HMI/Project/fMain.cs
index 9a868be..de2716c 100644
--- a/Cs_HMI/Project/fMain.cs
+++ b/Cs_HMI/Project/fMain.cs
@@ -1032,5 +1032,11 @@ namespace Project
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
+
+ private void xbeeSettingToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ var f = new Dialog.fXbeeSetting();
+ f.Show();
+ }
}
}
diff --git a/Cs_HMI/Project/fMain.resx b/Cs_HMI/Project/fMain.resx
index f62c95d..ca93129 100644
--- a/Cs_HMI/Project/fMain.resx
+++ b/Cs_HMI/Project/fMain.resx
@@ -126,160 +126,163 @@
- iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAA0lJREFUWEfV
- ll+IVVUUxm/+Q0ECQUUwBzEiLKTQEPPJSHsrIqiHCHwIIiiZHiVhHtQiBPWhl9QiB5maLsZMQk9BNwyG
- 21m/te+dGedVa6TpbUQpKitvrDt7Lues2TP3zNAIffBxD9/e+1vr7HP3WrtS+T8DWG30+rJDVXeq6jfA
- X0Z7Ns3PWxbU6/WHgCngOtCMtOcpG/Pz/3OMjIysa7VaK7xumo15vRSAE8Bhr+dhAYDnRORs3H5788nI
- ZvwMZ0TkUCrBPETkdeB4R1DVyyJyrjArB1XdA1wDWiU5Duz2PrMAzlvMjqCqn4jIYGFWBNAD3EoE6cbp
- LMu2eT8D8AXwcUcQkfeAemFWBPBBwrws3/d+BuAH++x54UXg99SZBoYSxmU5lPCz2vGHiLzQEUdHRzfH
- 8/x8YfbMgoGEcVkOeD8LDNwNIWzyA4Oq+l2r1Xogr8fdaQB/JwIsxD9V9Y28l3lbDOCzvN5GlmWPA78B
- fbPaxMTEGmBjfF4fQnhWRI4B/fEo1oHvVfUr4FNVPQm8LCKP1mq1VYUAMy/TB/waQnjMj7Whqq/E8jqs
- qm8Bt+Pb/ARUgd4QwtN++yzRLMu2hBCeUNXXROQU8DUwISKXgFdF5IptvSWYXzsHIrI3Trbd8NvqOW1v
- lNA9bc5wCOEpH29eAKcTRkuifRrv3xWq+qE3WiqtRHv/AprN5lYR2ZFnyeP3T6TXPQe8v8VsBxeRg4kF
- Zdkb6fVStFNVqVarK7Mse9IaTp7xnzxnUZ72jzd63dO8vL/FtNj+a3QAPOONPBeRwAHv3xW1Wm1trg4k
- WTKBO+bl/bsituGQMFxsAubR4/3nRZZl+4EacC9WQPv1potJ4Ofo8a2q7vPxClDVd63pxPK5K2ofJUzL
- JnDRPOx2pKqfx4Z21MdtQ0Tetj6tqi/l9Xq9/iBwI2HeLYHJsbGxDXkv6wPWJYE383rFmkus/UcKAxGx
- MP3ogyyQwM1Go/GI9zGo6juxN7S7bBsWON7159yIZtFoNLaralYigauWsF8/i9jif7Fu2xHtgli4pc4D
- 6/HxSj2WSGDcnv2FJgUR+RK40BHsgpG/iJQB8LDVc6M9+/GFEC8m/R1hwZK4DLBdut8x58W/ttbNMuq+
- hk4AAAAASUVORK5CYII=
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAA2xJREFUWEfV
+ l01IVFEUx1+fFEQQVASVRBFREYVGVKvCaldEYIsQWgQRmNgyClxkRQTZok0fRknYx1BoQaugiQKZRp0Z
+ x2bbh5HtjMJIzZp+53oc38cd51Yk9Ic/955zz/mfM/e9d98b779GZ2fnDKGak4eurq7V8AnFvwtlLj5d
+ /rdIJBJLKNoHX8OMUuZ9sqZh/w7t7e2z8/n8VDULEJ+sqfl7oPsGeFBNK6QAMbs6Ojou6vbLL+9VZvQy
+ NLK+09agH8QcIueUmuaa3sd5Rc0IWK8g4RXMO7IHlmt6BKxdlZpqmgLXaeCumgEQXAY/QVuhidifTCaX
+ qkwArN2DTWqaLTmDI6FmAPjPQVsBF55VmQDwv4QNahrHXvgNRp5pfK3QJu7CVpUpAJ+cHYP86D3q8rzu
+ 7u6FOOV53q2uAvC3QJu4C1tUpgApjH84lUotUNco5B6ggWfcwVPUZUCw7E4ajkBbkWIcQu+wyhiIttRg
+ 7ba6xsENs5aFr7BeXV4ul5uJPV/nc+i6kkZP4mtGSB7FBHzB/CHjDcbTjFXErIrH49ONiA+s1cMBdNao
+ KwgE9hMgx2sb8xrGz1B+zTsYg3UkbwlvnzTKD1iEfz151TRwntjHMMf8FuMBxkeMw7BK0+wgcJMGy26E
+ tzXMfjgQ8tkoMW00uFHLlAYJF3wCf0W5NCrrDpIu2cT+hGg1qqwdmUxmMdu+3E8SXR6/H0rbmp8tYX2p
+ aYpj7LAkuLJOaVsrSe6JSi8Wi03jDt7ANlX4SWNyJ1sTx0hctdC25qdo+bWFUlNqm12wgcTtYaEwpbjQ
+ tuYnDWxTWXdwkMwieewcsNKxgS+ipbLuIFFewymfUISODYhGmcqWBtdmKwlx+BPKCSijTdi1gQ9QNJ4S
+ u1nL2EHACQJHuGZyfK5T32XmNmGXBm6KBmM5cXcY5YV2XHwRUPQoi4ME7lOXAV+6c/G/gZECJRrozWaz
+ 81TGAF8VHIJH1DUKebnglLO/Vl0B0JwcTG9hoMgEDbxPp9MrNT0A4o+xLu8G85Y1wKiF8q1f9F8OgstI
+ ThJTKFSkgefSsKZFoK/4j+TVqMs00IRj/Cu1COQdj7h8UmelWKiBHpmHP2hsQOMB8dfUNA00w8KHiAuI
+ XyHnuVDm6naC1JKaanrmONbppEB2abJrFoHn/QK21s0ynEiLrwAAAABJRU5ErkJggg==
- iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAa9JREFUWEfl
- ls8rhEEch/2IEoo/QKHcXJzEiaNyEA64cXLk5OAi/gInR04Or6IcnRy2t/b9fGbHbr0XkdoTYTlIUfbV
- +/a+b3aalux+N2XquWzPNE/T7Mzb1PTvh+/77SSXSG5UYdKcV7dB8ohk8A1lAHPm3LoMkm+WBW2Ustns
- gDm/5mFZqBolktc1ogBM/TagXjw5jtNqCyiT1CSPSTqSZDKZbjPgnuRo+Fs+n+8sFAq9kgRB0FIRAGAR
- wDDJK8uWSfAMYCEJeHddt4PkoUWU5C4J0PFu3FgkSYpJwL7Wuic+hKYkBoDTKEAptRZet6bQAHaiAAAT
- ANYtgigA5sOAcvi3IHlgCtJorYeigxcfwAtTEOYlugtInsRP8k8fpboAwI0uIgBbAEZMoQHsJTfhDIAV
- iyDNahSgte4nuWsRRMnlcmNRQBAEzUqpc1MQ5sP3/a40IHwYLJIkl9Hi8SEctAjSOGmAUmrWIogCYDMN
- ILltCtIopabTgPBFMgVpPM/r+7oDRVMQ5jFdPA54sEiSnFUEKKWWSb5aRAluPc8brwgIB8k286tVgvRL
- +C+NT9lLlLEeyHt7AAAAAElFTkSuQmCC
+ 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
- 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
+ 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
+ eXSITOY/N4AkP6QQbUkAAAAASUVORK5CYII=
- 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
+ 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
- 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
- UCfvAAAAAElFTkSuQmCC
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAP5JREFUWEft
+ lj0KwkAQhVNY6n0Uj6BtagvxEFqJvYWnEL1EmiBKfrrcIK3gDfSNTDZk2WQj65IQ9sFHZObtzCMkQc/J
+ qTdKkmQax/G1gQs4gVUYhhM+JkQ16rGHvKoZX2gXHyuFhg/eLXlFUbTmoxR+QzXJ04TPR0tRUTJpQYg9
+ rge53oL/BDDAeoAjoHl1M60HEAsUvUpfiIqSyYTOA+gYeAC8njdciw+PyjP8Z8AFcAG6DdCH11BHDwPg
+ ts0VRiukaTrjtaWCIBih+ZDNFrjTLl5bVZZlY/y/24EzjMVDVMcTFEPpt8oj4Jlb2sHrzISBSwzMmQWX
+ nZx+lOd9AOxqphdZ7gKgAAAAAElFTkSuQmCC
- iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABGdBTUEAALGPC/xhBQAABGpJREFUWEe1
- WFtIdFUUnp8ur0U9dCGK6il6DrrwU1AP8Ue9DRFBvzhnrz0XFcX77R9BFARREVHqQRRRMQM172g+mIga
- hL4o+ntDJAXvqaNkumJt5gznrLMbxxnng485Z1/W+mbvtfbluFxxIiUl5UUhxMdSyh+klF4ASBNCpAoh
- vjAM4w3ePinw+XzvAEAZAPwJANcAgFG4AQCNJJrbSRhCiPcB4JcYRPwf5wDgK273znC73c8DQBUA/KNx
- Eg9/9fv9r3I/MSE1NfX18D/jRhPlrmEYD7m/qACAd8MxwI3dFy+EEN9wv1oAwGsAsK4xct+89Hq9n3H/
- NpSVlT0LAL9rOieLhx6P5y2uIwIAKNV0ipuBQAALCwsd5VZKKX9zuVwPuBaXYRhvA0CId7iN+fn5ODU1
- hVVVVY66iooKDIVC2Nra6qizUkr5HdfjklL+xBtGo5QSm5ub8ezsDAn9/f22ehJKv+Xl5XhycqLachsW
- PnW73c9ExAQCgZcpyDQNtSwqKsKlpSUlxAQXtL29jePj4+j1erGyshLPz89VP27LpC3rhBB+3kBHGpW2
- tja8vLy0idEJys7OxvX1dRwYGFDvo6OjODs767BpUgjRbRU0yBsQ09LSsKamBmtra7GhoQE3Nja4jghM
- QR0dHWr0MjMzsaCgQE1pMBjEvLw8vLq6wpycHIefMP8GgOdIzwMAONE0UE5ihSnI5/Ph3NwczszMqPeR
- kREcGxtTzysrK9jS0uLwY1II8QGl+pu8wiQZihXWKcvIyFAjU1JSooL64OBAlff29uLk5KTDj4WPKd0f
- aioSEkScnp7Grq4uFXfX19dq+inTlpeXHX4sDFK6P9JUJCyop6dHZRk9Hx0dqdGieNza2nL4sbA6aYIo
- u4aGhtQzpXxxcTHW1dXh2tqaw49NULKmbGFhQQUwxZN1yubn5x1+LAwmJahpAby4uMCsrCxsbGxU6xGV
- 0xQODg46/Fj4OGra05wvLi4qrq6ucg02mIJIDMUJxRC904jQYkrPu7u7WF1d7fBjUqU9AQAGeKWO9fX1
- eHh4yLUomII2Nzexr69PZVdTU5Pax2jaSMj+/r7aSrjdMCMLIwnyaRpoSbFAi93NzY1WkEka3dPTU/Un
- SAQFc3t7u8OehT9Htg6Px/PSXTZXIh03dnZ2tII6Ozvx+PhYiaH34eFhJSjK6NCIfh0RFB6lH3mj20gH
- MNo0KYu6u7sj5TRFVJeeno4TExO4t7eHubm5jv4WrtiOHwQ6SsZzQCPS2cfv99vKaLenUaKgpmfex0op
- 5bc2MSYAoJg3jpcU1KWlpY5yDce4jgho2OiMq+mULB7QOsh12EA3SwBY03S+b9Ld7FPuX4vwRTGZd7OQ
- I6tuQ/jCOKMxlij/8nq9n3B/MYFWTgCouMePDT2GYbzC/dwZhmG8J6XsivdzjBBiVkr5JbebMOgyKYR4
- AgB/AMC/3DHjKgA0SCk/4naSAgB4wTCMD4UQ31s+6aVIKT+nTzm8faz4DwnDvF8jQGuEAAAAAElFTkSu
- QmCC
+ iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABGdBTUEAALGPC/xhBQAABHFJREFUWEe1
+ mFtIXFcUhifk8pqSPORCSGn7VPIcaFpCA+lDSUjfpIRCI97vKN5vGUEUhEFFRGkfRBEVa0GtdzQ+WBE1
+ EPRF0XhDJAreo45Dra78a7tncs6e7ajjnAUfnnPW2mv97r32uYzNXwsODv4iPDz8+8jIyN9BVERERBzO
+ Q8BPYWFh92SYtRYdHf01CueBd+AQkA/mQQWLlsMDZ0j6AMn/BqeJOIlR8Fym89+CgoKuIVER+E8mvij/
+ xMTE3Jbpz2chISF3kYD/M13ii7CCHnssy5zNMOgbwD2gSxgI9tEGv8hyvg3Bd8CcYbBVuKKiop7IsnrL
+ y8u7gsB/lYFWshEaGvqlLO9tCMhVBlyI2NhYyszM1Prc4B72BqUvHSswGBrtKwQ41QGnkZ6eToODg1RU
+ VOTlKygoIKfTSTU1NV4+IxD1Usr4bLj4py74JBBPVVVVtLu7S2xtbW0mPwvlv/n5+bS9vS1ijX6F97jF
+ XJZSbDZM7U1cdClBJ5KVlUWTk5NCiNtUQUtLS9TX10doXCosLKS9vT0xzhhjxLTrcBKjC1LhWamtrSWX
+ yyVlfDZVUHJyMs3NzVF7e7s47+npoZGREVOMEWhoknKEoA5dUFxcHBUXF1NJSQmVl5fT/Py8LO9tbkH1
+ 9fVi9hITEykjI0Msqd1up7S0NDo4OKCUlBSvOpKP4CrruYSDbYPDAxc5q7kF4QFMo6OjNDw8LM67u7up
+ t7dXHE9PT1N1dbUnvwom5iFv9fuqww0nOqsZlywhIUHMTE5Ojmjq9fV1cb2lpYUGBgY8cRpe8XZ/rHEI
+ /BXEDA0NUWNjo+i7w8NDsfy806ampkxxCnbe7s80DsFFBDU3N4tdxsebm5titrgfFxcXTXEKDssE8e7q
+ 7OwUx7zls7OzqbS0lGZnZ01xCg7Llmx8fFw0MPeTccnGxsZMcQp2S5qab4D7+/uUlJREFRUV4n7E13kJ
+ Ozo6PHEaXvnc9rzmExMTgpmZGVlab25BLIb7hHuIz3lG+GbKxysrK+RwODz5VcS2Z8NJu+rUUVZWRhsb
+ G1KC2dyCFhYWqLW1VeyuyspK8RzjZWMha2tr4lGi5pV4bowsKNrg8An3At/sjo6OpJRjU3uIZ3dnZ0f8
+ EyyCm7murs4Uo/CXEMOGl6QbuHDmhyvDrxvLy8tSjllQQ0MDbW1tCTF83tXVJQT5mB2e0RdSzrHh4h9q
+ 0GnwCxg/NHkXNTU1ea7zErEvPj6e+vv7aXV1lVJTU01jFaZNrx9s/CoJx7lf0Bh+98HnjekaP+15lrip
+ +djoU8Hs/CplmA3ObDXYX7ipc3NztT6FXlne23jakOiNZpBVrIP7srze+MsSQbOGQVbB32Y/yrK+DcH8
+ oWjlt5nTa1edZhjEH4zDhiSB4gO2/w+yzPkMg6+CAhCoHxua8TC/JdP7b0jyLaa4EQn9+jkGvTKC8T/L
+ dIEz/phE8tco8hb8byyqYQaUQ8gjOdxaQ7HrEPgdBP6Gou6f9IJx/JR/ypFh5zSb7RMJw7xfBlQNxwAA
+ AABJRU5ErkJggg==
- iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAjpJREFUWEfV
- V7tu1UAQDb+CBBUiTSigAZE+SsTjCxAdCGo+ANrkK6DjkYiEd3v3nNnbkFBEfESSKxHpgi4atGutx2Nj
- uA4RRzqN53HG9nh2vLDwPyKEcInktoi8VQJ4DeCC9TsxkHxMclYSwCPrd2IQkRdOAU+t31wAcJPkBxG5
- aG0k920BJHetn8ZqDgA3rK0TInKb5DQlPhaRB7PZ7IzaQghXSX53CpjGGC+rj/qSvE/yW7aRvGV1XGi1
- hXjJjyQ/O9ctI4B3zvVprycB4KUTPAi1d6xeAwDOkjy0wQNwMhqNzls9FyJy10kwL+9YnVZoE7W8x7+i
- Diqr0YnUxV9sIkPFeqI49ooiEqxGJ2KMyzZJwQMAKzaG5GpX7+j4tjEV0mx/kr6AryR/2ASZnniGiKxZ
- /4I6O3SAPddRHmNcqgJJbjkBDQJATdHB715Hwa0qSJvEcfC4XlNzQHLDiWuw1pinXgDJTevQQqmpOSA5
- duI8blZBukzoeU7yGcm9lrMgc7WmWCCdI9Y/U3PuqoZqdS4wInLdSZB5qN1uY5L4keP/i52foUXPQRTT
- +1Z2PvY/HkRagIh8sonm4Ju8T/QCgIdOknl5z+q40OYoNpkheRxjXLR6DegO5wQPxfdWr4G2lUz3/74r
- Gckd53q/lUyhC2RRxEQXlGwDcK3lsJqGEK5kv7TUTLKt91KaodXq6Tgej89ZWzoxbQF71k9jNUfvO+8L
- kq9sAYP/mHRBdwengH/3a3bqP6dD4if8nu9RoGmrKgAAAABJRU5ErkJggg==
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAlxJREFUWEfV
+ l81u00AUhcOrIMGqgg0sYEMFe1QE5QlQd63oug/QbstT0B2UVgEKgW1+7GxoWSAeghKJSgGF70bHlpnc
+ cYbW5edIn6LcuefesT0e263/Ur1e7/pgMHiZZdmB0e/327Cg4fMXzTdhUoUJbGj4/MVRP3cm8FTDzYiC
+ DyjcodkVhUoR/1RtLg41XMq8xDvUuq9QmjA+xDhW4RP+P55MJhdsjOt/i9h3jVUZ53l+w3Isl/9r8K0Y
+ g2UbmyubrQxhg3fwIYh55NR448THSWeCpF3H3Ai2dtQmLiZwkeTj0NwAo263e1lt6sVMV5wCZ+WRys+X
+ LaLIdTwV1GqrdJq0ij+GhQJM2yIDL2cKZ7Sn0mnidrrjFRJfOKK7Si1FfAmia8e2b6XOSnv7lu6Az/Cj
+ MIZ4zQtxpPc8j7C9wzawZ7DJQV6TbTr7ffBMv0DzvixRkVd7OSrsyzK99dpOgse2LFGR8yTwuFhPWf6B
+ CRDYCxMiZLJERc4w8MTYk2V6BhZgg+AOHIH3LChYkm1G1LDniOcxrOYh7Fgv6ynbrFjNtyvGkGNb7Uot
+ peZfg9yS2tswVOJGlINdb6P2tP/2RmQTwPTeK3ZKXltNlZ8vTue6U+SsrKp8vWxxkFy8yTTJCbvfVbWJ
+ i8ROYGySt2oTl1bzzG3ImjjgN+mVDF4FMSPtlcxE8rIZZBzRfEVDNsFFYt7DasytdlNpxUvNqBiDtJfS
+ QjZb2B0Oh5cUKkUxe2KGEzjScCnzWo3kI08VzV4EzW1vb/bDpE403HIm8Oc+zfQC8/c+TptTq/UT/J7v
+ URSJG9cAAAAASUVORK5CYII=
- iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAplJREFUWEft
- V7tuFEEQdALkPHIgByIQfAE2GRAZCMCQmAyZDA74AhAPG/7AwIectNfVeyQXnY0TbEJMgu2Ah+rUc/Q2
- s3d7xojEJY20mqrumenpnpmdmtrHLlAUxREAp0TkkojM8Jt9UbenEJGTIvIEQBfAz5pWqurjoihORPtd
- oyzLYwBeANjJDFjXqH0O4Gj0NxFU9TyAjeB8U1WXATxU1Zts9s2+zaDdEJFz0W8jiMhVAFvO2YqIzAI4
- ELUJ5ABcA7Dq7LZU9UrUjoStfDi4iLzq9XoHo64O1AJY9JNoHAnb889u8HtR0xQAFtwk1htViiXcwEhV
- X3quiYOoAbDkFvPMc3+ApeayfdWHvSzLC5Zkd6pWv0GOGmpTX7/fPwTgo/ncGVmiVudptrOpn+XkMvx7
- bhI2ODlqqB2WoKrecFvxqGrpAOBDchCTTkTm3AA/ANwdwc17W6uOL8ar54aw4zXt/XLkibDKQSRyfdGO
- APAuTbDdbh+OPPf4jAv/g8gnZAYcOzjBw8ot8HTkGUZeKklwK/IeIeTZsEeYTfI/HXkmyrSLwFzkPWom
- MMyJHETktpvAxcj//y3wSSgibyNPZAafJAnfp2hlk5DgfW6iJmU43PMMV9kOO4y+2uLEcxXwMZGiwFst
- 9e/xQdSqWjrwmPxHR/Ga+dzudrvHq1YB9pJJs130XLxocogaAK+TP1V96rksLNz+FbQQNU0B4L7z8ylO
- rhZ8PITX0BJDGXV1oFZV3zj7b51O52zUjQSfUWESa6p6PVaHBzlLuLTng8FV9XLUNoJFYt05Y2M58WJp
- 8chm47f1DUrNh33ilUdw3/iSmfBZvs2Ea7znTWAlypVqZsDUyLXGltrfgkep/ZrNpF+z2uN1H2PwC9Ia
- w16WomAQAAAAAElFTkSuQmCC
+ iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAsRJREFUWEft
+ lz9TU0EUxdOovWKv9Golo59AsRMr0ELQRjsHO4n4CWD8A/oNUD9IZpKQxCYVIg1gKTYChejvvDmbbN57
+ IS8gY8OZOZPHuefe3b27+xJKpzgKqtXqhdXV1Sv1ev0OHNezNIdPBgw0Cl8xWAv+6cNmo9GYZzKXnXZ8
+ NJvNixR+A/ejgQZR3tdwxGWOBlZzgyLbLhq4g77C5xyfD0U/S9uxJ3Cbro253HAg8R4FdqNiX9Em+Txj
+ SwaKwSm4DkPeLpObsKUYSNDKO4Mz8Lt2u33W4YGQl7ylkA93C3fCe/49JJP4zKGhQf5sqAO3Ct0UjDpw
+ SRKdeGs5QZECaQ91lkM9FrNoOR8YRjGG074et53O3ETTIXtsKQPF5JHXUmltbe0c2jeomvuHXlEmoHse
+ ZjtpWYVHYDjhv2FmEtIck0fezhWkkw+siy8tZ0Hwi0076UPHhGbQwwAH8KlDebEnDiXgb92OH443LPdC
+ e2eD9n7Fcg+IxatMOpGn2d4D9E/2HFQqlfOWu2Dfrtmg9r+wnAHx9IADBxeIzdmnBV613AWD6kslGKYt
+ 5yLVcjHT9jScE+rfttyFxGCQ2XIu+kygcybyQM6j4GesW5a7+O9bEB9CJvDRcg+IHecQfrYn/xAKBJs2
+ FbmGnT3PifVsh19GPxXHW7ecBa2ZdxFxyrIm9i9fRGXLWeg1ieEkXsUbUDX3Wq3WJYfygUm/ZMJslywn
+ SH/R5CHtocb7UI9OLFjuD4xqd/wraNahoUHu86jOZpEFJOCcjJEQ/xpaVisdHgh5We2HKP9XrVa77nAx
+ UGCCxHgSG2j307cjhmI+cGHPk8HR7toyHNyJraiYqOukL5YyhadFPVtLrlrEzaFXnob2jYksUmyYn+V7
+ TGyh8J4XAcV0RbXSRjRQmoqVB16140KvUgbSv2bjop77vl5PcShKpb/SGsNeH5IytgAAAABJRU5ErkJg
+ gg==
- iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAA5JJREFUaEPt
- mn1TElEUxv12fZVm+g7NNNMokqQ1KouACBKjKIovwAJLaqRGgCkpooiYjpbmS5omyctpzjV2bK8Ku+7m
- UpyZ3z/sc5jz7N17OHeHhoZ6qDQe2h4/eOR4wtQSWLPQRwNesM+7YDg1XhNgrViz0AcxgoLARqgmwFrr
- RtRE3YjaqBtRAmvcCYaZ3luxzw9SeYhqjHjW/NASMMHi9uqtNPsNVC6iGiOd0zZIbq9BpVC9kSYfAyUo
- kWK3j3aplaiJFXk174LxxAQxgWaeejqpvVETe0Qb6ILT3BkxkthKgWHGTmkqce9GRld9wEw5+D3QxvWA
- N+OndJW4dyPtYSus7X0iJo7OTkAXMlGaarhXI/4NDjSsgV+N/qgHnIsjlK4aJBkxRhzQwhkpnnFGcC5V
- X4gt7oRgcpqYKBSLoGEZSlMtkoxgC7wuTs5PQRcyUvqb0Pj1cH6RI7nRbALMEQelqRZZjWB0TNhhLM1S
- OULcKQ+Y3w7webqgGXzrQUpXLZKMNLEMuOZYnqE5P1kNjNXdLHSErVSOkBeTFtg6/Exydo/3ofW1mdKI
- QZKRsbQPhpbHeXri/TAQY/m728x2QSBL55Vh1znQ+o28vnfWDa7kGKUTgyQj19Ho00OhWCCFTaQiYI05
- KU2Z7mgfhNMxos0XCzeOHWKQzYgp4oDZzIfL4gp50N5SnManh4tCnmjD6ShYYn2URiyyGWGzQdAFTPzj
- Yn/nhsHkKKXDR8g26+Z1+IhhrlAnFtmMILiBNw92SIH734+u3cD42Zfjr0SDU+7LKQulkYKsRkZWvGAM
- O/m73cpZ/pib2PUgPOe6+evYfrENC79HCrIaQXDjnuZ+kEITWyvAXJlkcSJ4n02Qa7n8T2gO3LyPxCK7
- katnCwycpXCmwmuNvk6+s3HLM2CLD1D5UpHdCIKtuFS6PO15P06RwxDOYDgUlqPSb41YFDGCJ7mFzWVS
- MM5SeHDScSY4PPtGPsvsbUL7m8q//mJQxIg3E4A2zsLffdzUeGAqBzPpINOBMO8uKGIEwTa7d3JACsc2
- i0dYDGwE2mAXpb8rihm5/OEb5lehHNgIsCEI9XdFMSMIHpSwzV4NnJzLXUxOFDWCr0C53ydAjKWdNOin
- xb8hqQZFjWB7bfIy/Ms1XcBMXo1SOhlQ1shGCBwLLv7lGq6Q8LpcKG7kb1E3ojbqRtTG/2Hkn/gLxz/z
- p5p6qCR+AaqNxnTXLPGFAAAAAElFTkSuQmCC
+ iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAA5hJREFUaEPt
+ mvtTElEUx/3v+lea6X9oppnGV5LV+EABUSRG8f3gvaZGagaakuIDFdPR0nykaZqv0/1eASmuAstursbX
+ +fyye45zvnDv2XN3KMhLq3poefzgke2J/i6BmmPlXwk3rBNt1DHbeydArag5Vv6VcBEB3uW+OwFqzRvR
+ EnkjWiNvRA0axuxUM9x4I9aJVmGuZow4FjxU5jXS1Nr8jZR4aoT5mjFSNWSh8NoCpZPmjRS59HTB/qC1
+ 3Q3htwE0beQ1Gy96Q/3cBMw8dVQJ9wfQ9B4p9dbSwfEhNxJanWUFW4VxN3HrRrrnXaQftHET0AupnpyL
+ HmHsTdy6kQp/Ay1sfuYmdg/3SddnFMal41aNeJYlKnbXcBNQc8BB9qkuYWw6ZBkxjNqoTDKk8Ixhn868
+ EAt7APrCQ9zE2fk5M6UXxmWCLCNogSLtHx2wpWEQ5ogo9lTT0ckxzw1EQ2RiH5AoLhMUNQJV9lupJ+IW
+ 5iXTOesg07uWWBaRzmci15JPGJsJsowUsSXQNu5O0D7u4d8GNL8RpUq2gUV5ybwcMNPqzhees7G3ReVv
+ TMK4TJFlpCfiovaZ3gT1Y83UEnTzoqASdy15o6l5cdxLEpV6DLFoosaRTmoL9whjM0WWERGFrmq2Yc94
+ Yf2zo9QQtAvjQF2gifyRII89ZTnXjR3ZoJgRI9uoI4sfL4s7O2Wf+PXFFTPTJywG8kcCZA42CeOyQTEj
+ 7qiPdGwMj8v6vpNaw90pcVhCFraU4sISQ+7fcdmimBGADbyyvc4L3PqxK9zAuPZ17xuPwZT7atCcEiMH
+ RY10zTnJ4LfzIqFyyfzH3ORm7fW5VBe7S7z9og0n/w+5KGoEYOMeHP/khYZW50ifNMliIvjAHnzQ8ekv
+ KvHmvsnjKG4k+WwBYZbCTIV7ha6qRGeTZobZiNKSki8XxY0AtOKLi8vTnvPTID8MYQbDUBhXumdNtqhi
+ BCe5yZUZXjBmKRycdJKRdg6/82uLmytU8Tb90z8bVDHiXPSyA5KZFw1hU+PAFJd+wManA1GuXFQxAtBm
+ N/e3eeFoszjCQmgEpT62rAQ5uaCakcsHXwcvPlloBGgIopxcUM0IwEEJbTZZmJzjXUxJVDWCV6BS7AQI
+ Ta9HqHoo+zckmaCqEbTXIqc+8XJN5zXxV6PC2BxR1wjDNtmWeLmGb0gUowSqG/lX5I1ojbwRrfF/GLkX
+ P+G4Nz+qyUsTKij4DaqNxnRXLBhpAAAAAElFTkSuQmCC
diff --git a/Document/지그비셋팅패킷.txt b/Document/지그비셋팅패킷.txt
new file mode 100644
index 0000000..8e06bc6
--- /dev/null
+++ b/Document/지그비셋팅패킷.txt
@@ -0,0 +1,368 @@
+[10:09:51] RX (3 bytes): 2B 2B 2B | +++
+[10:09:52] FWD→TX (10 bytes): 02 0E FF 09 00 00 00 00 01 00 | [10:09:52] FWD→TX (9 bytes): 00 00 30 30 30 30 D5 03 03 | [10:09:52] FWD→TX (3 bytes): 4F 4B 0D | OK
+[10:09:52] RX (5 bytes): 41 54 43 48 0D | ATCH
+[10:09:52] FWD→TX (3 bytes): 31 32 0D | 12
+[10:09:52] RX (5 bytes): 41 54 43 4E 0D | ATCN
+[10:09:52] FWD→TX (3 bytes): 4F 4B 0D | OK
+[10:10:09] 포트 닫힘
+[10:10:10] 전달 포트 닫힘
+[10:38:01] 포트 열림: COM21 @ 9600
+[10:38:01] 전달 포트 열림: COM4 @ 9600
+[10:38:02] FWD→TX (17 bytes): 02 0E FF 09 00 00 00 00 01 00 00 00 30 30 30 30 D5 | [10:38:02] FWD→TX (2 bytes): 03 03 |
+[10:38:02] RX (5 bytes): 2B 2B 41 54 0D | ++AT
+[10:38:02] RX (5 bytes): 41 54 43 4E 0D | ATCN
+[10:38:05] RX (3 bytes): 2B 2B 2B | +++
+[10:38:06] FWD→TX (3 bytes): 4F 4B 0D | OK
+[10:38:06] RX (5 bytes): 41 54 43 48 0D | ATCH
+[10:38:06] FWD→TX (2 bytes): 31 32 | 12
+[10:38:06] FWD→TX (1 bytes): 0D |
+[10:38:06] RX (5 bytes): 41 54 49 44 0D | ATID
+[10:38:06] FWD→TX (5 bytes): 34 36 41 35 0D | 46A5
+[10:38:07] RX (5 bytes): 41 54 44 48 0D | ATDH
+[10:38:07] FWD→TX (2 bytes): 30 0D | 0
+[10:38:07] RX (5 bytes): 41 54 44 4C 0D | ATDL
+[10:38:07] FWD→TX (5 bytes): 46 46 46 46 0D | FFFF
+[10:38:07] RX (5 bytes): 41 54 4D 59 0D | ATMY
+[10:38:07] FWD→TX (3 bytes): 38 37 0D | 87
+[10:38:07] RX (5 bytes): 41 54 53 48 0D | ATSH
+[10:38:07] FWD→TX (2 bytes): 31 33 | 13
+[10:38:07] FWD→TX (5 bytes): 41 32 30 30 0D | A200
+[10:38:07] RX (5 bytes): 41 54 53 4C 0D | ATSL
+[10:38:07] FWD→TX (5 bytes): 34 32 30 39 35 | 42095
+[10:38:07] FWD→TX (4 bytes): 31 34 33 0D | 143
+[10:38:07] RX (5 bytes): 41 54 4D 4D 0D | ATMM
+[10:38:07] FWD→TX (2 bytes): 30 0D | 0
+[10:38:07] RX (5 bytes): 41 54 4E 50 0D | ATNP
+[10:38:07] FWD→TX (3 bytes): 36 43 0D | 6C
+[10:38:07] RX (5 bytes): 41 54 52 52 0D | ATRR
+[10:38:07] FWD→TX (2 bytes): 30 0D | 0
+[10:38:07] RX (5 bytes): 41 54 52 4E 0D | ATRN
+[10:38:07] FWD→TX (1 bytes): 30 | 0
+[10:38:07] FWD→TX (1 bytes): 0D |
+[10:38:08] RX (5 bytes): 41 54 4E 54 0D | ATNT
+[10:38:08] FWD→TX (3 bytes): 31 39 0D | 19
+[10:38:08] RX (5 bytes): 41 54 4E 4F 0D | ATNO
+[10:38:08] FWD→TX (2 bytes): 30 0D | 0
+[10:38:08] RX (5 bytes): 41 54 54 4F 0D | ATTO
+[10:38:08] FWD→TX (2 bytes): 30 0D | 0
+[10:38:08] RX (5 bytes): 41 54 43 38 0D | ATC8
+[10:38:08] FWD→TX (2 bytes): 30 0D | 0
+[10:38:08] RX (5 bytes): 41 54 43 45 0D | ATCE
+[10:38:08] FWD→TX (2 bytes): 30 0D | 0
+[10:38:08] RX (5 bytes): 41 54 53 43 0D | ATSC
+[10:38:08] FWD→TX (5 bytes): 31 46 46 45 0D | 1FFE
+[10:38:08] RX (5 bytes): 41 54 53 44 0D | ATSD
+[10:38:08] FWD→TX (2 bytes): 34 0D | 4
+[10:38:08] RX (5 bytes): 41 54 41 31 0D | ATA1
+[10:38:08] FWD→TX (2 bytes): 30 0D | 0
+[10:38:08] RX (5 bytes): 41 54 41 32 0D | ATA2
+[10:38:08] FWD→TX (2 bytes): 30 0D | 0
+[10:38:08] RX (5 bytes): 41 54 41 49 0D | ATAI
+[10:38:08] FWD→TX (2 bytes): 30 0D | 0
+[10:38:08] RX (5 bytes): 41 54 45 45 0D | ATEE
+[10:38:08] FWD→TX (2 bytes): 30 0D | 0
+[10:38:08] RX (5 bytes): 41 54 4B 59 0D | ATKY
+[10:38:08] FWD→TX (3 bytes): 4F 4B 0D | OK
+[10:38:08] RX (5 bytes): 41 54 4E 49 0D | ATNI
+[10:38:08] FWD→TX (2 bytes): 20 0D |
+[10:38:08] RX (5 bytes): 41 54 50 4C 0D | ATPL
+[10:38:08] FWD→TX (2 bytes): 34 0D | 4
+[10:38:08] RX (5 bytes): 41 54 50 4D 0D | ATPM
+[10:38:08] FWD→TX (2 bytes): 30 0D | 0
+[10:38:09] RX (5 bytes): 41 54 43 41 0D | ATCA
+[10:38:09] FWD→TX (3 bytes): 32 43 0D | 2C
+[10:38:09] RX (5 bytes): 41 54 53 4D 0D | ATSM
+[10:38:09] FWD→TX (2 bytes): 30 0D | 0
+[10:38:09] RX (5 bytes): 41 54 53 54 0D | ATST
+[10:38:09] FWD→TX (5 bytes): 31 33 38 38 0D | 1388
+[10:38:09] RX (5 bytes): 41 54 53 50 0D | ATSP
+[10:38:09] FWD→TX (2 bytes): 30 0D | 0
+[10:38:09] RX (5 bytes): 41 54 44 50 0D | ATDP
+[10:38:09] FWD→TX (2 bytes): 33 45 | 3E
+[10:38:09] FWD→TX (2 bytes): 38 0D | 8
+[10:38:09] RX (5 bytes): 41 54 53 4F 0D | ATSO
+[10:38:09] FWD→TX (2 bytes): 30 0D | 0
+[10:38:09] RX (5 bytes): 41 54 42 44 0D | ATBD
+[10:38:09] FWD→TX (2 bytes): 33 0D | 3
+[10:38:09] RX (5 bytes): 41 54 4E 42 0D | ATNB
+[10:38:09] FWD→TX (2 bytes): 30 0D | 0
+[10:38:09] RX (5 bytes): 41 54 52 4F 0D | ATRO
+[10:38:09] FWD→TX (2 bytes): 33 0D | 3
+[10:38:09] RX (5 bytes): 41 54 44 37 0D | ATD7
+[10:38:09] FWD→TX (2 bytes): 31 0D | 1
+[10:38:09] RX (5 bytes): 41 54 44 36 0D | ATD6
+[10:38:09] FWD→TX (2 bytes): 30 0D | 0
+[10:38:09] RX (5 bytes): 41 54 41 50 0D | ATAP
+[10:38:09] FWD→TX (2 bytes): 30 0D | 0
+[10:38:09] RX (5 bytes): 41 54 44 30 0D | ATD0
+[10:38:09] FWD→TX (2 bytes): 30 0D | 0
+[10:38:10] RX (5 bytes): 41 54 44 31 0D | ATD1
+[10:38:10] FWD→TX (2 bytes): 30 0D | 0
+[10:38:10] RX (5 bytes): 41 54 44 32 0D | ATD2
+[10:38:10] FWD→TX (2 bytes): 30 0D | 0
+[10:38:10] RX (5 bytes): 41 54 44 33 0D | ATD3
+[10:38:10] FWD→TX (2 bytes): 30 0D | 0
+[10:38:10] RX (5 bytes): 41 54 44 34 0D | ATD4
+[10:38:10] FWD→TX (2 bytes): 30 0D | 0
+[10:38:10] RX (5 bytes): 41 54 44 35 0D | ATD5
+[10:38:10] FWD→TX (2 bytes): 31 0D | 1
+[10:38:10] RX (5 bytes): 41 54 44 38 0D | ATD8
+[10:38:10] FWD→TX (2 bytes): 30 0D | 0
+[10:38:10] RX (5 bytes): 41 54 50 30 0D | ATP0
+[10:38:10] FWD→TX (2 bytes): 31 0D | 1
+[10:38:10] RX (5 bytes): 41 54 4D 30 0D | ATM0
+[10:38:10] FWD→TX (2 bytes): 30 0D | 0
+[10:38:10] RX (5 bytes): 41 54 50 31 0D | ATP1
+[10:38:10] FWD→TX (2 bytes): 30 0D | 0
+[10:38:10] RX (5 bytes): 41 54 4D 31 0D | ATM1
+[10:38:10] FWD→TX (2 bytes): 30 0D | 0
+[10:38:10] RX (5 bytes): 41 54 50 32 0D | ATP2
+[10:38:10] FWD→TX (2 bytes): 30 0D | 0
+[10:38:10] RX (5 bytes): 41 54 50 52 0D | ATPR
+[10:38:10] FWD→TX (3 bytes): 46 46 0D | FF
+[10:38:10] RX (5 bytes): 41 54 50 44 0D | ATPD
+[10:38:10] FWD→TX (3 bytes): 46 46 0D | FF
+[10:38:10] RX (5 bytes): 41 54 49 55 0D | ATIU
+[10:38:10] FWD→TX (2 bytes): 31 0D | 1
+[10:38:11] RX (5 bytes): 41 54 49 54 0D | ATIT
+[10:38:11] FWD→TX (2 bytes): 31 0D | 1
+[10:38:11] RX (5 bytes): 41 54 49 43 0D | ATIC
+[10:38:11] FWD→TX (2 bytes): 30 0D | 0
+[10:38:11] RX (5 bytes): 41 54 49 52 0D | ATIR
+[10:38:11] FWD→TX (2 bytes): 30 0D | 0
+[10:38:11] RX (5 bytes): 41 54 50 54 0D | ATPT
+[10:38:11] FWD→TX (3 bytes): 46 46 0D | FF
+[10:38:11] RX (5 bytes): 41 54 52 50 0D | ATRP
+[10:38:11] FWD→TX (3 bytes): 32 38 0D | 28
+[10:38:11] RX (5 bytes): 41 54 49 41 0D | ATIA
+[10:38:11] FWD→TX (12 bytes): 46 46 46 46 46 46 46 46 46 46 46 46 | FFFFFFFFFFFF
+[10:38:11] FWD→TX (5 bytes): 46 46 46 46 0D | FFFF
+[10:38:11] RX (5 bytes): 41 54 54 30 0D | ATT0
+[10:38:11] FWD→TX (3 bytes): 46 46 0D | FF
+[10:38:11] RX (5 bytes): 41 54 54 31 0D | ATT1
+[10:38:11] FWD→TX (3 bytes): 46 46 0D | FF
+[10:38:11] RX (5 bytes): 41 54 54 32 0D | ATT2
+[10:38:11] FWD→TX (3 bytes): 46 46 0D | FF
+[10:38:11] RX (5 bytes): 41 54 54 33 0D | ATT3
+[10:38:11] FWD→TX (3 bytes): 46 46 0D | FF
+[10:38:11] RX (5 bytes): 41 54 54 34 0D | ATT4
+[10:38:11] FWD→TX (3 bytes): 46 46 0D | FF
+[10:38:11] RX (5 bytes): 41 54 54 35 0D | ATT5
+[10:38:11] FWD→TX (3 bytes): 46 46 0D | FF
+[10:38:11] RX (5 bytes): 41 54 54 36 0D | ATT6
+[10:38:11] FWD→TX (3 bytes): 46 46 0D | FF
+[10:38:12] RX (5 bytes): 41 54 54 37 0D | ATT7
+[10:38:12] FWD→TX (3 bytes): 46 46 0D | FF
+[10:38:12] RX (5 bytes): 41 54 56 52 0D | ATVR
+[10:38:12] FWD→TX (3 bytes): 32 30 30 | 200
+[10:38:12] FWD→TX (2 bytes): 33 0D | 3
+[10:38:12] RX (5 bytes): 41 54 48 56 0D | ATHV
+[10:38:12] FWD→TX (5 bytes): 32 45 34 45 0D | 2E4E
+[10:38:12] RX (5 bytes): 41 54 44 42 0D | ATDB
+[10:38:12] FWD→TX (3 bytes): 35 44 0D | 5D
+[10:38:12] RX (5 bytes): 41 54 45 43 0D | ATEC
+[10:38:12] FWD→TX (2 bytes): 30 0D | 0
+[10:38:12] RX (5 bytes): 41 54 45 41 0D | ATEA
+[10:38:12] FWD→TX (2 bytes): 30 0D | 0
+[10:38:12] RX (5 bytes): 41 54 44 44 0D | ATDD
+[10:38:12] FWD→TX (6 bytes): 31 30 30 30 30 0D | 10000
+[10:38:12] RX (5 bytes): 41 54 43 54 0D | ATCT
+[10:38:12] FWD→TX (3 bytes): 36 34 0D | 64
+[10:38:12] RX (5 bytes): 41 54 47 54 0D | ATGT
+[10:38:12] FWD→TX (4 bytes): 33 45 38 0D | 3E8
+[10:38:12] RX (5 bytes): 41 54 43 43 0D | ATCC
+[10:38:12] FWD→TX (3 bytes): 32 42 0D | 2B
+[10:38:12] RX (5 bytes): 41 54 43 4E 0D | ATCN
+[10:38:12] FWD→TX (3 bytes): 4F 4B 0D | OK
+[10:38:14] RX (3 bytes): 2B 2B 2B | +++
+[10:38:15] FWD→TX (3 bytes): 4F 4B 0D | OK
+[10:38:15] RX (5 bytes): 41 54 43 45 0D | ATCE
+[10:38:15] FWD→TX (2 bytes): 30 0D | 0
+[10:38:15] RX (5 bytes): 41 54 43 4E 0D | ATCN
+[10:38:15] FWD→TX (3 bytes): 4F 4B 0D | OK
+[10:38:17] FWD→TX (3 bytes): 02 0E FF |
+[10:38:17] 역방향 전달 실패: 쓰기 시간이 초과되었습니다.
+[10:38:18] 포트 닫힘
+[10:38:18] 전달 포트 닫힘
+
+
+[10:09:51] TX (3 bytes): 2B 2B 2B | +++
+[10:09:52] RX (10 bytes): 02 0E FF 09 00 00 00 00 01 00 | [10:09:52] RX (9 bytes): 00 00 30 30 30 30 D5 03 03 | [10:09:52] RX (3 bytes): 4F 4B 0D | OK
+[10:09:52] TX (5 bytes): 41 54 43 48 0D | ATCH
+[10:09:52] RX (3 bytes): 31 32 0D | 12
+[10:09:52] TX (5 bytes): 41 54 43 4E 0D | ATCN
+[10:09:52] RX (3 bytes): 4F 4B 0D | OK
+[10:38:02] RX (17 bytes): 02 0E FF 09 00 00 00 00 01 00 00 00 30 30 30 30 D5 | [10:38:02] RX (2 bytes): 03 03 |
+[10:38:02] TX (5 bytes): 2B 2B 41 54 0D | ++AT
+[10:38:02] TX (5 bytes): 41 54 43 4E 0D | ATCN
+[10:38:05] TX (3 bytes): 2B 2B 2B | +++
+[10:38:06] RX (3 bytes): 4F 4B 0D | OK
+[10:38:06] TX (5 bytes): 41 54 43 48 0D | ATCH
+[10:38:06] RX (2 bytes): 31 32 | 12
+[10:38:06] RX (1 bytes): 0D |
+[10:38:06] TX (5 bytes): 41 54 49 44 0D | ATID
+[10:38:06] RX (5 bytes): 34 36 41 35 0D | 46A5
+[10:38:07] TX (5 bytes): 41 54 44 48 0D | ATDH
+[10:38:07] RX (2 bytes): 30 0D | 0
+[10:38:07] TX (5 bytes): 41 54 44 4C 0D | ATDL
+[10:38:07] RX (5 bytes): 46 46 46 46 0D | FFFF
+[10:38:07] TX (5 bytes): 41 54 4D 59 0D | ATMY
+[10:38:07] RX (3 bytes): 38 37 0D | 87
+[10:38:07] TX (5 bytes): 41 54 53 48 0D | ATSH
+[10:38:07] RX (2 bytes): 31 33 | 13
+[10:38:07] RX (5 bytes): 41 32 30 30 0D | A200
+[10:38:07] TX (5 bytes): 41 54 53 4C 0D | ATSL
+[10:38:07] RX (5 bytes): 34 32 30 39 35 | 42095
+[10:38:07] RX (4 bytes): 31 34 33 0D | 143
+[10:38:07] TX (5 bytes): 41 54 4D 4D 0D | ATMM
+[10:38:07] RX (2 bytes): 30 0D | 0
+[10:38:07] TX (5 bytes): 41 54 4E 50 0D | ATNP
+[10:38:07] RX (3 bytes): 36 43 0D | 6C
+[10:38:07] TX (5 bytes): 41 54 52 52 0D | ATRR
+[10:38:07] RX (2 bytes): 30 0D | 0
+[10:38:07] TX (5 bytes): 41 54 52 4E 0D | ATRN
+[10:38:07] RX (1 bytes): 30 | 0
+[10:38:07] RX (1 bytes): 0D |
+[10:38:08] TX (5 bytes): 41 54 4E 54 0D | ATNT
+[10:38:08] RX (3 bytes): 31 39 0D | 19
+[10:38:08] TX (5 bytes): 41 54 4E 4F 0D | ATNO
+[10:38:08] RX (2 bytes): 30 0D | 0
+[10:38:08] TX (5 bytes): 41 54 54 4F 0D | ATTO
+[10:38:08] RX (2 bytes): 30 0D | 0
+[10:38:08] TX (5 bytes): 41 54 43 38 0D | ATC8
+[10:38:08] RX (2 bytes): 30 0D | 0
+[10:38:08] TX (5 bytes): 41 54 43 45 0D | ATCE
+[10:38:08] RX (2 bytes): 30 0D | 0
+[10:38:08] TX (5 bytes): 41 54 53 43 0D | ATSC
+[10:38:08] RX (5 bytes): 31 46 46 45 0D | 1FFE
+[10:38:08] TX (5 bytes): 41 54 53 44 0D | ATSD
+[10:38:08] RX (2 bytes): 34 0D | 4
+[10:38:08] TX (5 bytes): 41 54 41 31 0D | ATA1
+[10:38:08] RX (2 bytes): 30 0D | 0
+[10:38:08] TX (5 bytes): 41 54 41 32 0D | ATA2
+[10:38:08] RX (2 bytes): 30 0D | 0
+[10:38:08] TX (5 bytes): 41 54 41 49 0D | ATAI
+[10:38:08] RX (2 bytes): 30 0D | 0
+[10:38:08] TX (5 bytes): 41 54 45 45 0D | ATEE
+[10:38:08] RX (2 bytes): 30 0D | 0
+[10:38:08] TX (5 bytes): 41 54 4B 59 0D | ATKY
+[10:38:08] RX (3 bytes): 4F 4B 0D | OK
+[10:38:08] TX (5 bytes): 41 54 4E 49 0D | ATNI
+[10:38:08] RX (2 bytes): 20 0D |
+[10:38:08] TX (5 bytes): 41 54 50 4C 0D | ATPL
+[10:38:08] RX (2 bytes): 34 0D | 4
+[10:38:08] TX (5 bytes): 41 54 50 4D 0D | ATPM
+[10:38:08] RX (2 bytes): 30 0D | 0
+[10:38:09] TX (5 bytes): 41 54 43 41 0D | ATCA
+[10:38:09] RX (3 bytes): 32 43 0D | 2C
+[10:38:09] TX (5 bytes): 41 54 53 4D 0D | ATSM
+[10:38:09] RX (2 bytes): 30 0D | 0
+[10:38:09] TX (5 bytes): 41 54 53 54 0D | ATST
+[10:38:09] RX (5 bytes): 31 33 38 38 0D | 1388
+[10:38:09] TX (5 bytes): 41 54 53 50 0D | ATSP
+[10:38:09] RX (2 bytes): 30 0D | 0
+[10:38:09] TX (5 bytes): 41 54 44 50 0D | ATDP
+[10:38:09] RX (2 bytes): 33 45 | 3E
+[10:38:09] RX (2 bytes): 38 0D | 8
+[10:38:09] TX (5 bytes): 41 54 53 4F 0D | ATSO
+[10:38:09] RX (2 bytes): 30 0D | 0
+[10:38:09] TX (5 bytes): 41 54 42 44 0D | ATBD
+[10:38:09] RX (2 bytes): 33 0D | 3
+[10:38:09] TX (5 bytes): 41 54 4E 42 0D | ATNB
+[10:38:09] RX (2 bytes): 30 0D | 0
+[10:38:09] TX (5 bytes): 41 54 52 4F 0D | ATRO
+[10:38:09] RX (2 bytes): 33 0D | 3
+[10:38:09] TX (5 bytes): 41 54 44 37 0D | ATD7
+[10:38:09] RX (2 bytes): 31 0D | 1
+[10:38:09] TX (5 bytes): 41 54 44 36 0D | ATD6
+[10:38:09] RX (2 bytes): 30 0D | 0
+[10:38:09] TX (5 bytes): 41 54 41 50 0D | ATAP
+[10:38:09] RX (2 bytes): 30 0D | 0
+[10:38:09] TX (5 bytes): 41 54 44 30 0D | ATD0
+[10:38:09] RX (2 bytes): 30 0D | 0
+[10:38:10] TX (5 bytes): 41 54 44 31 0D | ATD1
+[10:38:10] RX (2 bytes): 30 0D | 0
+[10:38:10] TX (5 bytes): 41 54 44 32 0D | ATD2
+[10:38:10] RX (2 bytes): 30 0D | 0
+[10:38:10] TX (5 bytes): 41 54 44 33 0D | ATD3
+[10:38:10] RX (2 bytes): 30 0D | 0
+[10:38:10] TX (5 bytes): 41 54 44 34 0D | ATD4
+[10:38:10] RX (2 bytes): 30 0D | 0
+[10:38:10] TX (5 bytes): 41 54 44 35 0D | ATD5
+[10:38:10] RX (2 bytes): 31 0D | 1
+[10:38:10] TX (5 bytes): 41 54 44 38 0D | ATD8
+[10:38:10] RX (2 bytes): 30 0D | 0
+[10:38:10] TX (5 bytes): 41 54 50 30 0D | ATP0
+[10:38:10] RX (2 bytes): 31 0D | 1
+[10:38:10] TX (5 bytes): 41 54 4D 30 0D | ATM0
+[10:38:10] RX (2 bytes): 30 0D | 0
+[10:38:10] TX (5 bytes): 41 54 50 31 0D | ATP1
+[10:38:10] RX (2 bytes): 30 0D | 0
+[10:38:10] TX (5 bytes): 41 54 4D 31 0D | ATM1
+[10:38:10] RX (2 bytes): 30 0D | 0
+[10:38:10] TX (5 bytes): 41 54 50 32 0D | ATP2
+[10:38:10] RX (2 bytes): 30 0D | 0
+[10:38:10] TX (5 bytes): 41 54 50 52 0D | ATPR
+[10:38:10] RX (3 bytes): 46 46 0D | FF
+[10:38:10] TX (5 bytes): 41 54 50 44 0D | ATPD
+[10:38:10] RX (3 bytes): 46 46 0D | FF
+[10:38:10] TX (5 bytes): 41 54 49 55 0D | ATIU
+[10:38:10] RX (2 bytes): 31 0D | 1
+[10:38:11] TX (5 bytes): 41 54 49 54 0D | ATIT
+[10:38:11] RX (2 bytes): 31 0D | 1
+[10:38:11] TX (5 bytes): 41 54 49 43 0D | ATIC
+[10:38:11] RX (2 bytes): 30 0D | 0
+[10:38:11] TX (5 bytes): 41 54 49 52 0D | ATIR
+[10:38:11] RX (2 bytes): 30 0D | 0
+[10:38:11] TX (5 bytes): 41 54 50 54 0D | ATPT
+[10:38:11] RX (3 bytes): 46 46 0D | FF
+[10:38:11] TX (5 bytes): 41 54 52 50 0D | ATRP
+[10:38:11] RX (3 bytes): 32 38 0D | 28
+[10:38:11] TX (5 bytes): 41 54 49 41 0D | ATIA
+[10:38:11] RX (12 bytes): 46 46 46 46 46 46 46 46 46 46 46 46 | FFFFFFFFFFFF
+[10:38:11] RX (5 bytes): 46 46 46 46 0D | FFFF
+[10:38:11] TX (5 bytes): 41 54 54 30 0D | ATT0
+[10:38:11] RX (3 bytes): 46 46 0D | FF
+[10:38:11] TX (5 bytes): 41 54 54 31 0D | ATT1
+[10:38:11] RX (3 bytes): 46 46 0D | FF
+[10:38:11] TX (5 bytes): 41 54 54 32 0D | ATT2
+[10:38:11] RX (3 bytes): 46 46 0D | FF
+[10:38:11] TX (5 bytes): 41 54 54 33 0D | ATT3
+[10:38:11] RX (3 bytes): 46 46 0D | FF
+[10:38:11] TX (5 bytes): 41 54 54 34 0D | ATT4
+[10:38:11] RX (3 bytes): 46 46 0D | FF
+[10:38:11] TX (5 bytes): 41 54 54 35 0D | ATT5
+[10:38:11] RX (3 bytes): 46 46 0D | FF
+[10:38:11] TX (5 bytes): 41 54 54 36 0D | ATT6
+[10:38:11] RX (3 bytes): 46 46 0D | FF
+[10:38:12] TX (5 bytes): 41 54 54 37 0D | ATT7
+[10:38:12] RX (3 bytes): 46 46 0D | FF
+[10:38:12] TX (5 bytes): 41 54 56 52 0D | ATVR
+[10:38:12] RX (3 bytes): 32 30 30 | 200
+[10:38:12] RX (2 bytes): 33 0D | 3
+[10:38:12] TX (5 bytes): 41 54 48 56 0D | ATHV
+[10:38:12] RX (5 bytes): 32 45 34 45 0D | 2E4E
+[10:38:12] TX (5 bytes): 41 54 44 42 0D | ATDB
+[10:38:12] RX (3 bytes): 35 44 0D | 5D
+[10:38:12] TX (5 bytes): 41 54 45 43 0D | ATEC
+[10:38:12] RX (2 bytes): 30 0D | 0
+[10:38:12] TX (5 bytes): 41 54 45 41 0D | ATEA
+[10:38:12] RX (2 bytes): 30 0D | 0
+[10:38:12] TX (5 bytes): 41 54 44 44 0D | ATDD
+[10:38:12] RX (6 bytes): 31 30 30 30 30 0D | 10000
+[10:38:12] TX (5 bytes): 41 54 43 54 0D | ATCT
+[10:38:12] RX (3 bytes): 36 34 0D | 64
+[10:38:12] TX (5 bytes): 41 54 47 54 0D | ATGT
+[10:38:12] RX (4 bytes): 33 45 38 0D | 3E8
+[10:38:12] TX (5 bytes): 41 54 43 43 0D | ATCC
+[10:38:12] RX (3 bytes): 32 42 0D | 2B
+[10:38:12] TX (5 bytes): 41 54 43 4E 0D | ATCN
+[10:38:12] RX (3 bytes): 4F 4B 0D | OK
+[10:38:14] TX (3 bytes): 2B 2B 2B | +++
+[10:38:15] RX (3 bytes): 4F 4B 0D | OK
+[10:38:15] TX (5 bytes): 41 54 43 45 0D | ATCE
+[10:38:15] RX (2 bytes): 30 0D | 0
+[10:38:15] TX (5 bytes): 41 54 43 4E 0D | ATCN
+[10:38:15] RX (3 bytes): 4F 4B 0D | OK
+[10:38:17] RX (3 bytes): 02 0E FF |
+[10:38:17] RX (16 bytes): 09 00 00 00 00 01 00 00 00 30 30 30 30 D5 03 03 |