Compare commits

..

11 Commits

Author SHA1 Message Date
ChiKyun Kim
649d87cae3 .. 2025-12-23 17:25:47 +09:00
backuppc
b3f661969a .. 2025-12-23 13:25:33 +09:00
backuppc
4f162e50b5 .. 2025-12-23 13:12:13 +09:00
backuppc
35df73fd29 xbee 값 설정기능 추가 2025-12-23 13:07:01 +09:00
ChiKyun Kim
8499c1c5be .. 2025-12-23 11:41:56 +09:00
backuppc
3408e3fc30 ... 2025-12-22 16:02:57 +09:00
ChiKyun Kim
5a4c73e4df Merge branch 'master' of file://k4fs3201n/k4bpartcenter$/Repository/K4/ENIG_AGV 2025-12-22 09:52:53 +09:00
ChiKyun Kim
34d1bdf504 add layout 2025-12-22 09:52:21 +09:00
backuppc
3cae423736 .. 2025-12-19 16:25:30 +09:00
ChiKyun Kim
d777adc219 BMS 를 RS232 클래스에서 폴링방식 전용 클래스로 변경
BMS 정보중 현재 사용 전류와 와트를 표시함
사용전류를 통해서 충전여부를 자동 판다시키고, 해당 값은 Manual Charge 플래그에 설정함.
2025-12-18 14:44:00 +09:00
ChiKyun Kim
b62cd5f52e 충방전 전류 및 전력량 계산 코드 추가 2025-12-18 10:55:04 +09:00
49 changed files with 11442 additions and 2127 deletions

View File

@@ -17,7 +17,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\</OutputPath>
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\MapEditor\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>

View File

@@ -815,6 +815,9 @@ namespace AGVNavigationCore.Controls
case StationType.Charger:
DrawTriangleNodeShape(g, node, brush);
break;
case StationType.Limit:
DrawRectangleNodeShape(g, node, brush);
break;
default:
DrawCircleNodeShape(g, node, brush);
break;
@@ -823,6 +826,83 @@ namespace AGVNavigationCore.Controls
}
private void DrawRectangleNodeShape(Graphics g, MapNode node, Brush brush)
{
// 드래그 중인 노드는 약간 크게 그리기
bool isDraggingThisNode = _isDragging && node == _selectedNode;
int sizeAdjustment = isDraggingThisNode ? 4 : 0;
var rect = new Rectangle(
node.Position.X - NODE_RADIUS - sizeAdjustment,
node.Position.Y - NODE_RADIUS - sizeAdjustment,
NODE_SIZE + sizeAdjustment * 2,
NODE_SIZE + sizeAdjustment * 2
);
// 드래그 중인 노드의 그림자 효과
if (isDraggingThisNode)
{
var shadowRect = new Rectangle(rect.X + 3, rect.Y + 3, rect.Width, rect.Height);
using (var shadowBrush = new SolidBrush(Color.FromArgb(100, 0, 0, 0)))
{
g.FillRectangle(shadowBrush, shadowRect);
}
}
// 노드 그리기
g.FillRectangle(brush, rect);
g.DrawRectangle(Pens.Black, rect);
// 드래그 중인 노드 강조 (가장 강력한 효과)
if (isDraggingThisNode)
{
// 청록색 두꺼운 테두리
g.DrawRectangle(new Pen(Color.Cyan, 3), rect);
// 펄스 효과
var pulseRect = new Rectangle(rect.X - 4, rect.Y - 4, rect.Width + 8, rect.Height + 8);
g.DrawRectangle(new Pen(Color.FromArgb(150, 0, 255, 255), 2) { DashStyle = DashStyle.Dash }, pulseRect);
}
// 선택된 노드 강조 (단일 또는 다중)
else if (node == _selectedNode || (_selectedNodes != null && _selectedNodes.Contains(node)))
{
g.DrawRectangle(_selectedNodePen, rect);
}
// 목적지 노드 강조
if (node == _destinationNode)
{
// 금색 테두리로 목적지 강조
g.DrawRectangle(_destinationNodePen, rect);
// 펄싱 효과를 위한 추가 원 그리기
var pulseRect = new Rectangle(rect.X - 3, rect.Y - 3, rect.Width + 6, rect.Height + 6);
g.DrawRectangle(new Pen(Color.Gold, 2) { DashStyle = DashStyle.Dash }, pulseRect);
}
// 호버된 노드 강조 (드래그 중이 아닐 때만)
if (node == _hoveredNode && !isDraggingThisNode)
{
var hoverRect = new Rectangle(rect.X - 2, rect.Y - 2, rect.Width + 4, rect.Height + 4);
g.DrawRectangle(new Pen(Color.Orange, 2), hoverRect);
}
// RFID 중복 노드 표시 (빨간 X자)
if (_duplicateRfidNodes.Contains(node.Id))
{
DrawDuplicateRfidMarker(g, node);
}
// CanCross 가능 노드 표시 (교차지점으로 사용 가능)
if (node.DisableCross == true)
{
var crossRect = new Rectangle(rect.X - 3, rect.Y - 3, rect.Width + 6, rect.Height + 6);
g.DrawRectangle(new Pen(Color.DeepSkyBlue, 3), crossRect);
}
g.DrawLine(Pens.Black, rect.X, rect.Y, rect.Right, rect.Bottom);
g.DrawLine(Pens.Black, rect.Right, rect.Top, rect.X, rect.Bottom);
}
private void DrawCircleNodeShape(Graphics g, MapNode node, Brush brush)
{
// 드래그 중인 노드는 약간 크게 그리기
@@ -1475,6 +1555,7 @@ namespace AGVNavigationCore.Controls
case StationType.UnLoader: bgColor = Color.Gold; break;
case StationType.Clearner: bgColor = Color.DeepSkyBlue; break;
case StationType.Buffer: bgColor = Color.WhiteSmoke; break;
case StationType.Limit: bgColor = Color.Red; break;
default: bgColor = Color.White; break;
}

View File

@@ -73,7 +73,13 @@ namespace AGVNavigationCore.Models
/// <summary>버퍼</summary>
Buffer,
/// <summary>충전기</summary>
Charger
Charger,
/// <summary>
/// 끝점(더이상 이동불가)
/// </summary>
Limit,
}
/// <summary>

View File

@@ -149,7 +149,7 @@ namespace AGVNavigationCore.Models
public override string ToString()
{
return $"{RfidId}({Id}): {AliasName} ({Type}) at ({Position.X}, {Position.Y})";
return $"RFID:{RfidId}(NODE:{Id}): AS:{AliasName} ({Type}) at ({Position.X}, {Position.Y})";
}
public bool IsNavigationNode()

View File

@@ -464,6 +464,8 @@ namespace AGVNavigationCore.PathFinding.Planning
{
nodeInfo.Speed = mapNode.SpeedLimit;
}
detailedPath1.Add(nodeInfo);
}
// path1에 상세 경로 정보 설정

View File

@@ -108,7 +108,7 @@ namespace AGVNavigationCore.PathFinding.Planning
/// </summary>
public override string ToString()
{
var result = $"{RfidId}[{NodeId}]:{MotorDirection}";
var result = $"R{RfidId}[N{NodeId}]:{MotorDirection}";
// 마그넷 방향이 직진이 아닌 경우 표시
if (MagnetDirection != MagnetDirection.Straight)

View File

@@ -17,7 +17,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\</OutputPath>
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\Simulator\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>

File diff suppressed because it is too large Load Diff

View File

@@ -186,6 +186,7 @@
<Compile Include="Device\BMS.cs" />
<Compile Include="Device\BMSInformationEventArgs.cs" />
<Compile Include="Device\CFlag.cs" />
<Compile Include="Device\BMSSerialComm.cs" />
<Compile Include="Device\xbee.cs">
<SubType>Component</SubType>
</Compile>
@@ -196,6 +197,12 @@
<Compile Include="Dialog\fCounter.Designer.cs">
<DependentUpon>fCounter.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\fXbeeSetting.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialog\fXbeeSetting.Designer.cs">
<DependentUpon>fXbeeSetting.cs</DependentUpon>
</Compile>
<Compile Include="Dialog\fStateMachineDebug.cs">
<SubType>Form</SubType>
</Compile>
@@ -417,6 +424,9 @@
<EmbeddedResource Include="Dialog\fCounter.resx">
<DependentUpon>fCounter.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fXbeeSetting.resx">
<DependentUpon>fXbeeSetting.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialog\fUpdateForm.resx">
<DependentUpon>fUpdateForm.cs</DependentUpon>
</EmbeddedResource>

View File

@@ -9,12 +9,12 @@ using System.CodeDom;
namespace arDev
{
public class BMS : arRS232
public class BMS : BMSSerialComm
{
public BMS()
{
MinRecvLength = 34;
}
/// <summary>
@@ -55,28 +55,60 @@ namespace arDev
{
tempBuffer.Add(incomByte);
var queylen = QueryIndex == 0 ? 34 : 23;
if (tempBuffer.Count == queylen)
if (tempBuffer.Count > 7)
{
if (incomByte != 0x77)
byte len = tempBuffer[3];
if (tempBuffer.Count >= 4 + len + 3) // Start+Reg+Status+Len + Data + Chk(2) + End
{
if (tempBuffer.Last() == 0x77)
{
//데이터가 맞게 수신됨
LastReceiveBuffer = tempBuffer.ToArray();
bComplete = true;
}
else
{
//종단기호가 맞지 않다. 이자료는 폐기한다.
var hexstr = string.Join(" ", tempBuffer.Select(t => t.ToString("X2")));
RaiseMessage(MessageType.Error, $"discard : {hexstr}");
tempBuffer.Clear();
}
else
{
//데이터가 맞게 수신됨
LastReceiveBuffer = tempBuffer.ToArray();
bComplete = true;
}
findSTX = false;
}
else
{
//아직 모자르므로 대기한다
}
// [22 - 12 - 27 14:32:49] open: True
//[22 - 12 - 27 14:32:49] Send: DD A5 03 00 FF FD 77 0D
//[22 - 12 - 27 14:32:50] Send: DD A5 03 00 FF FD 77 0D
//[22 - 12 - 27 14:32:50] Recv: 26.61v,81.4 %
//[22 - 12 - 27 14:32:50] Recv: DD 03 00 1B 0A 65 00 00 21 63 29 04 00 00 2C 92 00 00 00 00 00 00 28 51 03 08 02 0B 69 0B 66 FC 9C 77
//[22 - 12 - 27 14:32:50] Send: DD A5 03 00 FF FD 77 0D
//[22 - 12 - 27 14:32:51] Recv: 26.61v,81.4 %
//[22 - 12 - 27 14:32:51] Recv: DD 03 00 1B 0A 65 00 00 21 63 29 04 00 00 2C 92 00 00 00 00 00 00 28 51 03 08 02 0B 69 0B 66 FC 9C 77
//var queylen = QueryIndex == 0 ? 34 : 23;
//if (tempBuffer.Count == queylen)
//{
// if (incomByte != 0x77)
// {
// //종단기호가 맞지 않다. 이자료는 폐기한다.
// var hexstr = string.Join(" ", tempBuffer.Select(t => t.ToString("X2")));
// RaiseMessage(MessageType.Error, $"discard : {hexstr}");
// tempBuffer.Clear();
// }
// else
// {
// //데이터가 맞게 수신됨
// LastReceiveBuffer = tempBuffer.ToArray();
// bComplete = true;
// }
// findSTX = false;
//}
//else
//{
// //아직 모자르므로 대기한다
//}
}
}
}
@@ -106,7 +138,7 @@ namespace arDev
else
{
var rxstr = string.Join(" ", data.Select(t => t.ToString("X2")));
RaiseMessage(MessageType.Recv, $"Querh:{QueryIndex},Data:{rxstr}");
RaiseMessage(MessageType.Recv, rxstr);
}
if (QueryIndex == 0)
@@ -180,11 +212,11 @@ namespace arDev
Current_Volt = (float)(batH / 100.0);
//충방전전류
//batH = (UInt16)LastReceiveBuffer[6];
//batL = (UInt16)LastReceiveBuffer[7];
//batH = (UInt16)(batH << 8);
//batH = (UInt16)(batH | batL);
//Charge_Amp = (float)(batH / 100.0);
Int16 batHi = (Int16)LastReceiveBuffer[6];
Int16 batLi = (Int16)LastReceiveBuffer[7];
batHi = (Int16)(batHi << 8);
batHi = (Int16)(batHi | batLi);
Charge_Amp = (float)(batHi / 100.0);
//잔량확인
batH = (UInt16)LastReceiveBuffer[8];
@@ -231,101 +263,66 @@ namespace arDev
return false;
}
}
private bool _autocharge = false;
public Boolean AutoCharge
{
get { return _autocharge; }
set { _autocharge = false; }
}
//public void ClearManualChargeCheckValue()
//{
// chk_timee = new DateTime(1982, 11, 23);
// chk_times = new DateTime(1982, 11, 23);
// chk_valuee = 0f;
// chk_values = 0f;
//}
/// <summary>
/// 현재 충전중인지?
/// </summary>
public bool IsCharging { get; private set; }
DateTime ChargeStart = DateTime.Now;
DateTime ChargeEnd = DateTime.Now;
void CheckManualCharge()
{
if (AutoCharge)
//충방전전력이 1보다 크면 충전으로 한다.
if (Charge_Amp > 0.1)
{
if (chk_timee.Year != 1982)
//기존에 충전상태가 OFF였다면 충전중으로 알려준다
if (IsCharging == false)
{
chk_timee = new DateTime(1982, 11, 23);
chk_valuee = 999f;
}
if (chk_times.Year != 1982)
{
chk_times = new DateTime(1982, 11, 23);
chk_values = 999f;
}
}
if (chk_times.Year == 1982)
{
chk_times = DateTime.Now;
chk_values = Current_Level;
}
else
{
if (chk_timee.Year == 1982)
{
if ((Current_Level - chk_values) >= 0.1)
{
//충전중이다
chk_timee = DateTime.Now;
chk_valuee = Current_Level;
IsCharging = true;
ChargeStart = DateTime.Now;
ChargeEnd = new DateTime(1982, 11, 23);
try
{
ChargeDetect?.Invoke(this, new ChargetDetectArgs(chk_times, chk_values, chk_timee, chk_valuee));
}
catch (Exception ex) { RaiseMessage(MessageType.Error, ex.Message); }
}
else if ((Current_Level - chk_values) <= -0.1)
{
//방전중이다
if (chk_times.Year != 1982) chk_times = new DateTime(1982, 11, 23);
if (chk_timee.Year != 1982) chk_timee = new DateTime(1982, 11, 23);
}
else
{
//아직 변화가 없으니 종료일을 기록하지 않는다
}
}
else
{
//이미 종료일이 셋팅된 상태이다
if ((Current_Level - chk_valuee) >= 0.1)
{
//종료시간을 시작값에 넣는다
chk_times = chk_timee;
chk_values = chk_valuee;
chk_timee = DateTime.Now;
chk_valuee = Current_Level;
try
{
ChargeDetect?.Invoke(this, new ChargetDetectArgs(chk_times, chk_values, chk_timee, chk_valuee));
ChargeDetect?.Invoke(this, new ChargetDetectArgs(ChargeStart, true, Current_Level));
}
catch (Exception ex) { RaiseMessage(MessageType.Error, ex.Message); }
}
else if ((Current_Level - chk_valuee) <= -0.1)
else
{
//방전중이다
if (chk_times.Year != 1982) chk_times = new DateTime(1982, 11, 23);
if (chk_timee.Year != 1982) chk_timee = new DateTime(1982, 11, 23);
//충전상태가 유지되고 있다.
}
}
else
{
//아직 변화가 없으니 종료일을 기록하지 않는다
//충전이해제되었다.. 단 바로 해제하지않고 1초정도 텀을 주고 OFF한다.
if (IsCharging)
{
if (ChargeEnd.Year == 1982)
{
ChargeEnd = DateTime.Now;
}
else
{
var ts = DateTime.Now - ChargeEnd;
if (ts.TotalSeconds > 2) //충전종료시그널후 2초후에 충전off를 알린다.
{
ChargeEnd = DateTime.Now;
IsCharging = false;
try
{
ChargeDetect?.Invoke(this, new ChargetDetectArgs(ChargeEnd, false, Current_Level));
}
catch (Exception ex) { RaiseMessage(MessageType.Error, ex.Message); }
}
}
}
else
{
//방전상태가 유지되고 있다.
}
}
}
}
}
public DateTime chk_times { get; set; } = new DateTime(1982, 11, 23);
public DateTime chk_timee { get; set; } = new DateTime(1982, 11, 23);
@@ -337,7 +334,7 @@ namespace arDev
{
get
{
return (Int16)((Charge_Amp / 100.0) * Current_Volt);
return (Int16)((Charge_Amp) * Current_Volt);
}
}
/// <summary>
@@ -423,6 +420,7 @@ namespace arDev
cmd.Add(0xFD);
cmd.Add(0x77);
//cmd.Add(0x0D);
//_device.DiscardInBuffer();
return WriteData(cmd.ToArray());
}
@@ -439,6 +437,7 @@ namespace arDev
cmd.Add(0xFC);
cmd.Add(0x77);
//cmd.Add(0x0D);
//_device.DiscardInBuffer();
return WriteData(cmd.ToArray());
}

View File

@@ -4,16 +4,14 @@ namespace arDev
{
public class ChargetDetectArgs : EventArgs
{
public DateTime times { get; set; }
public DateTime timee { get; set; }
public float values { get; set; }
public float valuee { get; set; }
public ChargetDetectArgs(DateTime times, float values, DateTime timee, float valuee)
public DateTime time { get; set; }
public float level { get; set; }
public bool Detected { get; set; }
public ChargetDetectArgs(DateTime times, bool detected, float values)
{
this.times = times;
this.times = timee;
this.values = values;
this.valuee = valuee;
this.time = times;
this.level = values;
this.Detected = detected;
}
}
public class BMSInformationEventArgs : EventArgs

View File

@@ -0,0 +1,607 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading;
namespace arDev
{
public abstract class BMSSerialComm : ISerialComm, IDisposable
{
protected System.IO.Ports.SerialPort _device;
protected ManualResetEvent _mre;
protected byte[] LastReceiveBuffer = new byte[] { };
/// <summary>
/// 최종 전송 메세지
/// </summary>
public byte[] lastSendBuffer = new byte[] { };
//public int ValidCheckTimeMSec { get; set; } = 5000;
protected List<byte> tempBuffer = new List<byte>();
protected Boolean findSTX = false;
public string ErrorMessage { get; set; }
public DateTime LastConnTime { get; set; }
public DateTime LastConnTryTime { get; set; }
public DateTime lastSendTime;
/// <summary>
/// 메세지 수신시 사용하는 내부버퍼
/// </summary>
protected List<byte> _buffer = new List<byte>();
/// <summary>
/// 데이터조회간격(초)
/// </summary>
public float ScanInterval { get; set; }
// public byte[] LastRecvData;
public string LastRecvString
{
get
{
if (LastReceiveBuffer == null) return String.Empty;
else return System.Text.Encoding.Default.GetString(LastReceiveBuffer);
}
}
/// <summary>
/// 마지막으로 데이터를 받은 시간
/// </summary>
public DateTime lastRecvTime;
public int WriteError = 0;
public string WriteErrorMessage = string.Empty;
public int WaitTimeout { get; set; } = 1000;
public int MinRecvLength { get; set; } = 1;
// Polling Thread related
protected Thread _recvThread;
protected volatile bool _isReading = false;
/// <summary>
/// 포트이름
/// </summary>
[Description("시리얼 포트 이름")]
[Category("설정"), DisplayName("Port Name")]
public string PortName
{
get
{
if (_device == null) return string.Empty;
else return _device.PortName;
}
set
{
if (this.IsOpen)
{
Message?.Invoke(this, new MessageEventArgs("포트가 열려있어 포트이름을 변경할 수 없습니다", true));
}
else if (String.IsNullOrEmpty(value) == false)
_device.PortName = value;
else
{
Message?.Invoke(this, new MessageEventArgs("No PortName", true));
}
}
}
public int BaudRate
{
get
{
if (_device == null) return 0;
else return _device.BaudRate;
}
set
{
if (this.IsOpen)
{
Message?.Invoke(this, new MessageEventArgs("포트가 열려있어 BaudRate(를) 변경할 수 없습니다", true));
}
else if (value != 0)
_device.BaudRate = value;
else Message?.Invoke(this, new MessageEventArgs("No baud rate", true));
}
}
public BMSSerialComm()
{
_device = new System.IO.Ports.SerialPort();
this.BaudRate = 9600;
ScanInterval = 10;
// _device.DataReceived += barcode_DataReceived; // Removed event handler
_device.ErrorReceived += this.barcode_ErrorReceived;
_device.WriteTimeout = 3000;
_device.ReadTimeout = 3000;
_device.ReadBufferSize = 8192;
_device.WriteBufferSize = 8192;
//_device.DiscardInBuffer();
//_device.DiscardOutBuffer();
ErrorMessage = string.Empty;
lastRecvTime = DateTime.Parse("1982-11-23");
LastConnTime = DateTime.Parse("1982-11-23");
LastConnTryTime = DateTime.Parse("1982-11-23");
lastRecvTime = DateTime.Parse("1982-11-23");
this._mre = new ManualResetEvent(true);
}
~BMSSerialComm()
{
Dispose(false);
}
// Flag: Has Dispose already been called?
bool disposed = false;
// Public implementation of Dispose pattern callable by consumers.
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
// Protected implementation of Dispose pattern.
protected virtual void Dispose(bool disposing)
{
if (disposed)
return;
if (disposing)
{
// Free any other managed objects here.
//
}
// Stop reading thread
_isReading = false;
// _device.DataReceived -= barcode_DataReceived; // Removed event handler
_device.ErrorReceived -= this.barcode_ErrorReceived;
if (_recvThread != null && _recvThread.IsAlive)
{
_recvThread.Join(500);
}
if (_device != null)
{
if (_device.IsOpen) _device.Close();
_device.Dispose();
}
// Free any unmanaged objects here.
//
disposed = true;
}
public Boolean Open()
{
try
{
if (_device.IsOpen == false)
{
_device.Open();
}
if (_device.IsOpen)
{
// Start polling thread
if (_isReading == false)
{
_isReading = true;
_recvThread = new Thread(ReadPort);
_recvThread.IsBackground = true;
_recvThread.Start();
}
return true;
}
return false;
}
catch (Exception ex)
{
ErrorMessage = ex.Message;
Message.Invoke(this, new MessageEventArgs(ex.Message, true));
return false;
}
}
public string GetHexString(Byte[] input)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (byte b in input)
sb.Append(" " + b.ToString("X2"));
return sb.ToString();
}
/// <summary>
/// 포트가 열려있는지 확인
/// </summary>
[Description("현재 시리얼포트가 열려있는지 확인합니다")]
[Category("정보"), DisplayName("Port Open")]
public Boolean IsOpen
{
get
{
if (_device == null) return false;
return _device.IsOpen;
}
}
public virtual bool Close()
{
try
{
_isReading = false; // Stop thread loop
if (_recvThread != null && _recvThread.IsAlive)
{
if (!_recvThread.Join(500)) // Wait for thread to finish
{
// _recvThread.Abort(); // Avoid Abort if possible
}
}
if (_device != null && _device.IsOpen)
{
_device.DiscardInBuffer();
_device.DiscardOutBuffer();
_device.Close(); //dispose에서는 포트를 직접 클리어하지 않게 해뒀다.
return true;
}
else return false;
}
catch (Exception)
{
return false;
}
}
protected Boolean RaiseRecvData()
{
return RaiseRecvData(LastReceiveBuffer.ToArray(), false);
}
/// <summary>
/// 수신받은 메세지를 발생 시킵니다
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public virtual Boolean RaiseRecvData(byte[] Data, bool udpatelastbuffer)
{
//181206 - 최종수신 메세지 기록
lastRecvTime = DateTime.Now;
if (udpatelastbuffer && Data != null)
{
if (LastReceiveBuffer == null || LastReceiveBuffer.Length != Data.Length)
{
LastReceiveBuffer = new byte[Data.Length];
Array.Copy(Data, LastReceiveBuffer, Data.Length);
}
}
try
{
// UI update might need Invoke if this event handler updates UI directly,
// but usually the subscriber handles Invoke.
// Since we are running on a background thread now, subscribers must be aware.
Message?.Invoke(this, new MessageEventArgs(Data, true)); //recvmessage
if (ProcessRecvData(Data) == false)
{
//Message?.Invoke(this, new MessageEventArgs(Data, true)); //recvmessage
Message?.Invoke(this, new MessageEventArgs(this.ErrorMessage, true)); //errormessage
return false;
}
else
{
return true;
}
}
catch (Exception ex)
{
this.ErrorMessage = ex.Message;
this.Message?.Invoke(this, new MessageEventArgs(ex.Message, true));
return false;
}
}
/// <summary>
/// 수신받은 자료를 처리한다
/// </summary>
/// <param name="data"></param>
/// <returns></returns>
public abstract bool ProcessRecvData(byte[] data);
#region "Internal Events"
void barcode_ErrorReceived(object sender, System.IO.Ports.SerialErrorReceivedEventArgs e)
{
Message?.Invoke(this, new MessageEventArgs(e.ToString(), true));
}
byte[] buffer = new byte[] { };
// Replaced with ReadPort Loop
/*
void barcode_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
try
{
int ReadCount = _device.BytesToRead;
buffer = new byte[ReadCount];
_device.Read(buffer, 0, buffer.Length);
System.Text.StringBuilder LogMsg = new StringBuilder();
byte[] remainBuffer;
Repeat:
if (CustomParser(buffer, out remainBuffer))
{
//분석완료이므로 받은 데이터를 버퍼에 기록한다
if (LastReceiveBuffer == null || (LastReceiveBuffer.Length != tempBuffer.Count))
Array.Resize(ref LastReceiveBuffer, tempBuffer.Count);
Array.Copy(tempBuffer.ToArray(), LastReceiveBuffer, tempBuffer.Count);
tempBuffer.Clear();
//수신메세지발생
RaiseRecvData();
if (remainBuffer != null && remainBuffer.Length > 0)
{
//버퍼를 변경해서 다시 전송을 해준다.
Array.Resize(ref buffer, remainBuffer.Length);
Array.Copy(remainBuffer, buffer, remainBuffer.Length);
goto Repeat; //남은 버퍼가 있다면 진행을 해준다.
}
}
}
catch (Exception ex)
{
//if (IsOpen)
//{
// //_device.DiscardInBuffer();
// //_device.DiscardOutBuffer();
//}
ErrorMessage = ex.Message;
this.Message?.Invoke(this, new MessageEventArgs(ex.Message, true));
}
}
*/
void ReadPort()
{
while (_isReading)
{
try
{
if (_device == null || !_device.IsOpen)
{
Thread.Sleep(100);
continue;
}
int readCount = _device.BytesToRead;
if (readCount > 0)
{
byte[] buffer = new byte[readCount];
_device.Read(buffer, 0, buffer.Length);
byte[] remainBuffer;
Repeat:
if (CustomParser(buffer, out remainBuffer))
{
//분석완료이므로 받은 데이터를 버퍼에 기록한다
if (LastReceiveBuffer == null || (LastReceiveBuffer.Length != tempBuffer.Count))
Array.Resize(ref LastReceiveBuffer, tempBuffer.Count);
Array.Copy(tempBuffer.ToArray(), LastReceiveBuffer, tempBuffer.Count);
tempBuffer.Clear();
//수신메세지발생
RaiseRecvData();
if (remainBuffer != null && remainBuffer.Length > 0)
{
//버퍼를 변경해서 다시 전송을 해준다.
buffer = new byte[remainBuffer.Length]; // Reallocate buffer for remaining data
Array.Copy(remainBuffer, buffer, remainBuffer.Length);
goto Repeat; //남은 버퍼가 있다면 진행을 해준다.
}
}
}
else
{
Thread.Sleep(20); // Data 없음, 대기
}
}
catch (Exception ex)
{
// Thread 상에서 Exception 발생 시 로그 남기고 계속 진행 여부 결정
// 여기서는 에러 메시지 발생시키고 Sleep
ErrorMessage = ex.Message;
this.Message?.Invoke(this, new MessageEventArgs(ex.Message, true));
Thread.Sleep(1000);
}
}
}
#endregion
#region "External Events"
/// <summary>
/// 오류 및 기타 일반 메세지
/// </summary>
public event EventHandler<MessageEventArgs> Message;
#endregion
#region "Event Args"
/// <summary>
/// 데이터를 수신할떄 사용함(RAW 포함)
/// </summary>
public class ReceiveDataEventArgs : EventArgs
{
private byte[] _buffer = null;
/// <summary>
/// 바이트배열의 버퍼값
/// </summary>
public byte[] Value { get { return _buffer; } }
/// <summary>
/// 버퍼(바이트배열)의 데이터를 문자로 반환합니다.
/// </summary>
public string StrValue
{
get
{
//return string.Empty;
if (_buffer == null || _buffer.Length < 1) return string.Empty;
else return System.Text.Encoding.Default.GetString(_buffer);
}
}
public ReceiveDataEventArgs(byte[] buffer)
{
_buffer = buffer;
}
}
/// <summary>
/// 메세지를 강제 발생
/// </summary>
/// <param name="mt"></param>
/// <param name="message"></param>
protected virtual void RaiseMessage(MessageType mt, string message)
{
this.Message?.Invoke(this, new MessageEventArgs(mt, message));
}
public enum MessageType
{
Normal,
Error,
Send,
Recv,
}
public class MessageEventArgs : EventArgs
{
public MessageType MsgType { get; set; }
private string _message = string.Empty;
/// <summary>
/// Recv,Send,Normal,Error 모두 지원
/// </summary>
public string Message { get { return _message; } }
private byte[] _data = null;
/// <summary>
/// Recv,Send에서만 값이 존재 합니다
/// </summary>
public byte[] Data { get { return _data; } }
public MessageEventArgs(string Message, bool isError = false)
{
if (isError) MsgType = MessageType.Error;
else MsgType = MessageType.Normal;
_message = Message;
}
public MessageEventArgs(MessageType msgtype, string Message)
{
MsgType = msgtype;
_message = Message;
_data = System.Text.Encoding.Default.GetBytes(Message);
}
public MessageEventArgs(byte[] buffer, bool isRecv = true)
{
if (isRecv) MsgType = MessageType.Recv;
else MsgType = MessageType.Send;
_data = new byte[buffer.Length];
Array.Copy(buffer, _data, Data.Length);
_message = System.Text.Encoding.Default.GetString(_data);
}
}
#endregion
protected abstract bool CustomParser(byte[] buf, out byte[] remainBuffer);
/// <summary>
/// 포트가 열려있거나 데이터 수신시간이 없는경우 false를 반환합니다
/// </summary>
public Boolean IsValid
{
get
{
if (IsOpen == false) return false;
if (lastRecvTime.Year == 1982) return false;
var ts = DateTime.Now - lastRecvTime;
if (ts.TotalSeconds > (this.ScanInterval * 2.5)) return false;
return true;
}
}
protected bool WriteData(string cmd)
{
return WriteData(System.Text.Encoding.Default.GetBytes(cmd));
}
/// <summary>
/// 포트에 쓰기(barcode_DataReceived 이벤트로 메세지수신)
/// </summary>
protected Boolean WriteData(byte[] data)
{
Boolean bRet = false;
//171205 : 타임아웃시간추가
if (!_mre.WaitOne(WaitTimeout))
{
ErrorMessage = $"WriteData:MRE:WaitOne:TimeOut {WaitTimeout}ms";
this.Message?.Invoke(this, new MessageEventArgs(ErrorMessage, true));
return false;
}
_mre.Reset();
//Array.Resize(ref data, data.Length + 2);
try
{
lastSendTime = DateTime.Now;
if (lastSendBuffer == null) lastSendBuffer = new byte[data.Length]; //171113
else Array.Resize(ref lastSendBuffer, data.Length);
Array.Copy(data, lastSendBuffer, data.Length);
for (int i = 0; i < data.Length; i++)
_device.Write(data, i, 1);
//_device.Write(data, 0, data.Length);
//171113
this.Message?.Invoke(this, new MessageEventArgs(data, false));
bRet = true;
WriteError = 0;
WriteErrorMessage = string.Empty;
}
catch (Exception ex)
{
// this.isinit = false;
this.Message?.Invoke(this, new MessageEventArgs(ex.Message, true));
bRet = false;
WriteError += 1; //연속쓰기오류횟수
WriteErrorMessage = ex.Message;
}
finally
{
_mre.Set();
}
return bRet;
}
}
}

View File

@@ -31,16 +31,15 @@
this.rtsys = new arCtl.LogTextBox();
this.rtTx = new arCtl.LogTextBox();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.rtAGV = new arCtl.LogTextBox();
this.rtBMS = new arCtl.LogTextBox();
this.rtXbee = new arCtl.LogTextBox();
this.panel1 = new System.Windows.Forms.Panel();
this.label1 = new System.Windows.Forms.Label();
this.rtXbee = new arCtl.LogTextBox();
this.titleXBEE = new System.Windows.Forms.Label();
this.panel2 = new System.Windows.Forms.Panel();
this.panel3 = new System.Windows.Forms.Panel();
this.rtBMS = new arCtl.LogTextBox();
this.titleBMS = new System.Windows.Forms.Label();
this.panel4 = new System.Windows.Forms.Panel();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.rtAGV = new arCtl.LogTextBox();
this.titleAGV = new System.Windows.Forms.Label();
this.tableLayoutPanel1.SuspendLayout();
this.panel1.SuspendLayout();
this.panel2.SuspendLayout();
@@ -99,8 +98,7 @@
this.tableLayoutPanel1.Controls.Add(this.rtsys, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.rtTx, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.panel1, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.panel2, 3, 1);
this.tableLayoutPanel1.Controls.Add(this.panel3, 2, 1);
this.tableLayoutPanel1.Controls.Add(this.panel2, 2, 1);
this.tableLayoutPanel1.Controls.Add(this.panel4, 0, 1);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
@@ -111,45 +109,15 @@
this.tableLayoutPanel1.Size = new System.Drawing.Size(681, 495);
this.tableLayoutPanel1.TabIndex = 2;
//
// rtAGV
// panel1
//
this.rtAGV.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.rtAGV.ColorList = new arCtl.sLogMessageColor[0];
this.rtAGV.DateFormat = "mm:ss.fff";
this.rtAGV.DefaultColor = System.Drawing.Color.LightGray;
this.rtAGV.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtAGV.EnableDisplayTimer = false;
this.rtAGV.EnableGubunColor = true;
this.rtAGV.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rtAGV.ListFormat = "[{0}] {1}";
this.rtAGV.Location = new System.Drawing.Point(0, 14);
this.rtAGV.MaxListCount = ((ushort)(1000));
this.rtAGV.MaxTextLength = ((uint)(400000u));
this.rtAGV.MessageInterval = 50;
this.rtAGV.Name = "rtAGV";
this.rtAGV.Size = new System.Drawing.Size(164, 129);
this.rtAGV.TabIndex = 2;
this.rtAGV.Text = "";
//
// rtBMS
//
this.rtBMS.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.rtBMS.ColorList = new arCtl.sLogMessageColor[0];
this.rtBMS.DateFormat = "mm:ss.fff";
this.rtBMS.DefaultColor = System.Drawing.Color.LightGray;
this.rtBMS.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtBMS.EnableDisplayTimer = false;
this.rtBMS.EnableGubunColor = true;
this.rtBMS.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rtBMS.ListFormat = "[{0}] {1}";
this.rtBMS.Location = new System.Drawing.Point(0, 14);
this.rtBMS.MaxListCount = ((ushort)(1000));
this.rtBMS.MaxTextLength = ((uint)(400000u));
this.rtBMS.MessageInterval = 50;
this.rtBMS.Name = "rtBMS";
this.rtBMS.Size = new System.Drawing.Size(165, 129);
this.rtBMS.TabIndex = 2;
this.rtBMS.Text = "";
this.panel1.Controls.Add(this.rtXbee);
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";
this.panel1.Size = new System.Drawing.Size(164, 143);
this.panel1.TabIndex = 3;
//
// rtXbee
//
@@ -171,73 +139,96 @@
this.rtXbee.TabIndex = 2;
this.rtXbee.Text = "";
//
// panel1
// titleXBEE
//
this.panel1.Controls.Add(this.rtXbee);
this.panel1.Controls.Add(this.label1);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(173, 349);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(164, 143);
this.panel1.TabIndex = 3;
//
// label1
//
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(513, 349);
this.panel2.Location = new System.Drawing.Point(343, 349);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(165, 143);
this.panel2.Size = new System.Drawing.Size(335, 143);
this.panel2.TabIndex = 4;
//
// panel3
// rtBMS
//
this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel3.Location = new System.Drawing.Point(343, 349);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(164, 143);
this.panel3.TabIndex = 5;
this.rtBMS.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.rtBMS.ColorList = new arCtl.sLogMessageColor[0];
this.rtBMS.DateFormat = "mm:ss.fff";
this.rtBMS.DefaultColor = System.Drawing.Color.LightGray;
this.rtBMS.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtBMS.EnableDisplayTimer = false;
this.rtBMS.EnableGubunColor = true;
this.rtBMS.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rtBMS.ListFormat = "[{0}] {1}";
this.rtBMS.Location = new System.Drawing.Point(0, 14);
this.rtBMS.MaxListCount = ((ushort)(1000));
this.rtBMS.MaxTextLength = ((uint)(400000u));
this.rtBMS.MessageInterval = 50;
this.rtBMS.Name = "rtBMS";
this.rtBMS.Size = new System.Drawing.Size(335, 129);
this.rtBMS.TabIndex = 2;
this.rtBMS.Text = "";
//
// titleBMS
//
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";
this.panel4.Size = new System.Drawing.Size(164, 143);
this.panel4.TabIndex = 6;
//
// label2
// rtAGV
//
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.rtAGV.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
this.rtAGV.ColorList = new arCtl.sLogMessageColor[0];
this.rtAGV.DateFormat = "mm:ss.fff";
this.rtAGV.DefaultColor = System.Drawing.Color.LightGray;
this.rtAGV.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtAGV.EnableDisplayTimer = false;
this.rtAGV.EnableGubunColor = true;
this.rtAGV.Font = new System.Drawing.Font("맑은 고딕", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.rtAGV.ListFormat = "[{0}] {1}";
this.rtAGV.Location = new System.Drawing.Point(0, 14);
this.rtAGV.MaxListCount = ((ushort)(1000));
this.rtAGV.MaxTextLength = ((uint)(400000u));
this.rtAGV.MessageInterval = 50;
this.rtAGV.Name = "rtAGV";
this.rtAGV.Size = new System.Drawing.Size(164, 129);
this.rtAGV.TabIndex = 2;
this.rtAGV.Text = "";
//
// label3
// titleAGV
//
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(165, 14);
this.label3.TabIndex = 3;
this.label3.Text = "BMS";
this.label3.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
//
@@ -267,11 +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 panel3;
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;
}
}

View File

@@ -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),

View File

@@ -28,530 +28,307 @@
/// </summary>
private void InitializeComponent()
{
this.lbMsg = new arCtl.arLabel();
this.arLabel4 = new arCtl.arLabel();
this.arLabel9 = new arCtl.arLabel();
this.arLabel10 = new arCtl.arLabel();
this.arLabel1 = new arCtl.arLabel();
this.arLabel6 = new arCtl.arLabel();
this.arLabel2 = new arCtl.arLabel();
this.btOpenDir = new System.Windows.Forms.Button();
this.arLabel4 = new System.Windows.Forms.Button();
this.btShutdown = new System.Windows.Forms.Button();
this.btRestart = new System.Windows.Forms.Button();
this.btStartMenu = new System.Windows.Forms.Button();
this.btTaskMgr = new System.Windows.Forms.Button();
this.btProcessList = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.arLabel3 = new arCtl.arLabel();
this.arLabel5 = new arCtl.arLabel();
this.arLabel7 = new arCtl.arLabel();
this.btEmulator = new System.Windows.Forms.Button();
this.btMakePatch = new System.Windows.Forms.Button();
this.btAutoRestart = new System.Windows.Forms.Button();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.tableLayoutPanel1.SuspendLayout();
this.SuspendLayout();
//
// lbMsg
// btOpenDir
//
this.lbMsg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.lbMsg.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.lbMsg.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.lbMsg.BorderColor = System.Drawing.Color.LightSkyBlue;
this.lbMsg.BorderColorOver = System.Drawing.Color.Red;
this.lbMsg.BorderSize = new System.Windows.Forms.Padding(1);
this.lbMsg.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.lbMsg.Cursor = System.Windows.Forms.Cursors.Hand;
this.lbMsg.Font = new System.Drawing.Font("Consolas", 12F);
this.lbMsg.ForeColor = System.Drawing.Color.White;
this.lbMsg.GradientEnable = true;
this.lbMsg.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.lbMsg.GradientRepeatBG = true;
this.lbMsg.isButton = true;
this.lbMsg.Location = new System.Drawing.Point(9, 8);
this.lbMsg.Margin = new System.Windows.Forms.Padding(5);
this.lbMsg.MouseDownColor = System.Drawing.Color.Yellow;
this.lbMsg.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.lbMsg.msg = null;
this.lbMsg.Name = "lbMsg";
this.lbMsg.ProgressBorderColor = System.Drawing.Color.Black;
this.lbMsg.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.lbMsg.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.lbMsg.ProgressEnable = false;
this.lbMsg.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.lbMsg.ProgressForeColor = System.Drawing.Color.Black;
this.lbMsg.ProgressMax = 100F;
this.lbMsg.ProgressMin = 0F;
this.lbMsg.ProgressPadding = new System.Windows.Forms.Padding(0);
this.lbMsg.ProgressValue = 0F;
this.lbMsg.ShadowColor = System.Drawing.Color.Black;
this.lbMsg.Sign = "";
this.lbMsg.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.lbMsg.SignColor = System.Drawing.Color.Yellow;
this.lbMsg.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.lbMsg.Size = new System.Drawing.Size(165, 100);
this.lbMsg.TabIndex = 2;
this.lbMsg.Text = "폴더열기";
this.lbMsg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.lbMsg.TextShadow = true;
this.lbMsg.TextVisible = true;
this.lbMsg.Click += new System.EventHandler(this.lbMsg_Click);
this.btOpenDir.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.btOpenDir.Cursor = System.Windows.Forms.Cursors.Hand;
this.btOpenDir.Dock = System.Windows.Forms.DockStyle.Fill;
this.btOpenDir.Font = new System.Drawing.Font("Consolas", 12F);
this.btOpenDir.ForeColor = System.Drawing.Color.White;
this.btOpenDir.Location = new System.Drawing.Point(5, 5);
this.btOpenDir.Margin = new System.Windows.Forms.Padding(5);
this.btOpenDir.Name = "btOpenDir";
this.btOpenDir.Size = new System.Drawing.Size(201, 79);
this.btOpenDir.TabIndex = 2;
this.btOpenDir.Text = "폴더열기";
this.btOpenDir.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btOpenDir.Click += new System.EventHandler(this.lbMsg_Click);
//
// arLabel4
//
this.arLabel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.arLabel4.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel4.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel4.BorderColorOver = System.Drawing.Color.Red;
this.arLabel4.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel4.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel4.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel4.Dock = System.Windows.Forms.DockStyle.Bottom;
this.arLabel4.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel4.ForeColor = System.Drawing.Color.White;
this.arLabel4.GradientEnable = true;
this.arLabel4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel4.GradientRepeatBG = true;
this.arLabel4.isButton = true;
this.arLabel4.Location = new System.Drawing.Point(9, 387);
this.arLabel4.Location = new System.Drawing.Point(10, 412);
this.arLabel4.Margin = new System.Windows.Forms.Padding(5);
this.arLabel4.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel4.msg = null;
this.arLabel4.Name = "arLabel4";
this.arLabel4.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel4.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel4.ProgressEnable = false;
this.arLabel4.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel4.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel4.ProgressMax = 100F;
this.arLabel4.ProgressMin = 0F;
this.arLabel4.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel4.ProgressValue = 0F;
this.arLabel4.ShadowColor = System.Drawing.Color.Black;
this.arLabel4.Sign = "";
this.arLabel4.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel4.SignColor = System.Drawing.Color.Yellow;
this.arLabel4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel4.Size = new System.Drawing.Size(503, 51);
this.arLabel4.Size = new System.Drawing.Size(633, 51);
this.arLabel4.TabIndex = 2;
this.arLabel4.Text = "닫기";
this.arLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel4.TextShadow = true;
this.arLabel4.TextVisible = true;
this.arLabel4.Click += new System.EventHandler(this.arLabel4_Click);
//
// arLabel9
// btShutdown
//
this.arLabel9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel9.BackColor2 = System.Drawing.Color.Red;
this.arLabel9.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel9.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel9.BorderColorOver = System.Drawing.Color.Red;
this.arLabel9.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel9.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel9.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel9.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel9.ForeColor = System.Drawing.Color.White;
this.arLabel9.GradientEnable = true;
this.arLabel9.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel9.GradientRepeatBG = true;
this.arLabel9.isButton = true;
this.arLabel9.Location = new System.Drawing.Point(9, 112);
this.arLabel9.Margin = new System.Windows.Forms.Padding(5);
this.arLabel9.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel9.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel9.msg = null;
this.arLabel9.Name = "arLabel9";
this.arLabel9.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel9.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel9.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel9.ProgressEnable = false;
this.arLabel9.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel9.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel9.ProgressMax = 100F;
this.arLabel9.ProgressMin = 0F;
this.arLabel9.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel9.ProgressValue = 0F;
this.arLabel9.ShadowColor = System.Drawing.Color.Black;
this.arLabel9.Sign = "";
this.arLabel9.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel9.SignColor = System.Drawing.Color.Yellow;
this.arLabel9.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel9.Size = new System.Drawing.Size(165, 100);
this.arLabel9.TabIndex = 2;
this.arLabel9.Text = "시스템 종료";
this.arLabel9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel9.TextShadow = true;
this.arLabel9.TextVisible = true;
this.arLabel9.Click += new System.EventHandler(this.arLabel9_Click);
this.btShutdown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.btShutdown.Cursor = System.Windows.Forms.Cursors.Hand;
this.btShutdown.Dock = System.Windows.Forms.DockStyle.Fill;
this.btShutdown.Font = new System.Drawing.Font("Consolas", 12F);
this.btShutdown.ForeColor = System.Drawing.Color.White;
this.btShutdown.Location = new System.Drawing.Point(5, 94);
this.btShutdown.Margin = new System.Windows.Forms.Padding(5);
this.btShutdown.Name = "btShutdown";
this.btShutdown.Size = new System.Drawing.Size(201, 79);
this.btShutdown.TabIndex = 2;
this.btShutdown.Text = "시스템 종료";
this.btShutdown.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btShutdown.Click += new System.EventHandler(this.arLabel9_Click);
//
// arLabel10
// btRestart
//
this.arLabel10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel10.BackColor2 = System.Drawing.Color.DarkBlue;
this.arLabel10.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel10.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel10.BorderColorOver = System.Drawing.Color.Red;
this.arLabel10.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel10.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel10.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel10.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel10.ForeColor = System.Drawing.Color.White;
this.arLabel10.GradientEnable = true;
this.arLabel10.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel10.GradientRepeatBG = true;
this.arLabel10.isButton = true;
this.arLabel10.Location = new System.Drawing.Point(178, 112);
this.arLabel10.Margin = new System.Windows.Forms.Padding(5);
this.arLabel10.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel10.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel10.msg = null;
this.arLabel10.Name = "arLabel10";
this.arLabel10.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel10.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel10.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel10.ProgressEnable = false;
this.arLabel10.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel10.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel10.ProgressMax = 100F;
this.arLabel10.ProgressMin = 0F;
this.arLabel10.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel10.ProgressValue = 0F;
this.arLabel10.ShadowColor = System.Drawing.Color.Black;
this.arLabel10.Sign = "";
this.arLabel10.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel10.SignColor = System.Drawing.Color.Yellow;
this.arLabel10.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel10.Size = new System.Drawing.Size(165, 100);
this.arLabel10.TabIndex = 2;
this.arLabel10.Text = "시스템 재시작";
this.arLabel10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel10.TextShadow = true;
this.arLabel10.TextVisible = true;
this.arLabel10.Click += new System.EventHandler(this.arLabel10_Click);
this.btRestart.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.btRestart.Cursor = System.Windows.Forms.Cursors.Hand;
this.btRestart.Dock = System.Windows.Forms.DockStyle.Fill;
this.btRestart.Font = new System.Drawing.Font("Consolas", 12F);
this.btRestart.ForeColor = System.Drawing.Color.White;
this.btRestart.Location = new System.Drawing.Point(216, 94);
this.btRestart.Margin = new System.Windows.Forms.Padding(5);
this.btRestart.Name = "btRestart";
this.btRestart.Size = new System.Drawing.Size(201, 79);
this.btRestart.TabIndex = 2;
this.btRestart.Text = "시스템 재시작";
this.btRestart.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btRestart.Click += new System.EventHandler(this.arLabel10_Click);
//
// arLabel1
// btStartMenu
//
this.arLabel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel1.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel1.BorderColorOver = System.Drawing.Color.Red;
this.arLabel1.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel1.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel1.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel1.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel1.ForeColor = System.Drawing.Color.White;
this.arLabel1.GradientEnable = true;
this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel1.GradientRepeatBG = true;
this.arLabel1.isButton = true;
this.arLabel1.Location = new System.Drawing.Point(347, 8);
this.arLabel1.Margin = new System.Windows.Forms.Padding(5);
this.arLabel1.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel1.msg = null;
this.arLabel1.Name = "arLabel1";
this.arLabel1.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel1.ProgressEnable = false;
this.arLabel1.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel1.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel1.ProgressMax = 100F;
this.arLabel1.ProgressMin = 0F;
this.arLabel1.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel1.ProgressValue = 0F;
this.arLabel1.ShadowColor = System.Drawing.Color.Black;
this.arLabel1.Sign = "";
this.arLabel1.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel1.SignColor = System.Drawing.Color.Yellow;
this.arLabel1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel1.Size = new System.Drawing.Size(165, 100);
this.arLabel1.TabIndex = 2;
this.arLabel1.Text = "시작메뉴";
this.arLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel1.TextShadow = true;
this.arLabel1.TextVisible = true;
this.arLabel1.Click += new System.EventHandler(this.arLabel1_Click);
this.btStartMenu.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.btStartMenu.Cursor = System.Windows.Forms.Cursors.Hand;
this.btStartMenu.Dock = System.Windows.Forms.DockStyle.Fill;
this.btStartMenu.Font = new System.Drawing.Font("Consolas", 12F);
this.btStartMenu.ForeColor = System.Drawing.Color.White;
this.btStartMenu.Location = new System.Drawing.Point(427, 5);
this.btStartMenu.Margin = new System.Windows.Forms.Padding(5);
this.btStartMenu.Name = "btStartMenu";
this.btStartMenu.Size = new System.Drawing.Size(201, 79);
this.btStartMenu.TabIndex = 2;
this.btStartMenu.Text = "시작메뉴";
this.btStartMenu.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btStartMenu.Click += new System.EventHandler(this.arLabel1_Click);
//
// arLabel6
// btTaskMgr
//
this.arLabel6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel6.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.arLabel6.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel6.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel6.BorderColorOver = System.Drawing.Color.Red;
this.arLabel6.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel6.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel6.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel6.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel6.ForeColor = System.Drawing.Color.White;
this.arLabel6.GradientEnable = true;
this.arLabel6.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel6.GradientRepeatBG = true;
this.arLabel6.isButton = true;
this.arLabel6.Location = new System.Drawing.Point(178, 8);
this.arLabel6.Margin = new System.Windows.Forms.Padding(5);
this.arLabel6.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel6.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel6.msg = null;
this.arLabel6.Name = "arLabel6";
this.arLabel6.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel6.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel6.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel6.ProgressEnable = false;
this.arLabel6.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel6.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel6.ProgressMax = 100F;
this.arLabel6.ProgressMin = 0F;
this.arLabel6.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel6.ProgressValue = 0F;
this.arLabel6.ShadowColor = System.Drawing.Color.Black;
this.arLabel6.Sign = "";
this.arLabel6.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel6.SignColor = System.Drawing.Color.Yellow;
this.arLabel6.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel6.Size = new System.Drawing.Size(165, 100);
this.arLabel6.TabIndex = 2;
this.arLabel6.Text = "작업관리자";
this.arLabel6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel6.TextShadow = true;
this.arLabel6.TextVisible = true;
this.arLabel6.Click += new System.EventHandler(this.arLabel6_Click);
this.btTaskMgr.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.btTaskMgr.Cursor = System.Windows.Forms.Cursors.Hand;
this.btTaskMgr.Dock = System.Windows.Forms.DockStyle.Fill;
this.btTaskMgr.Font = new System.Drawing.Font("Consolas", 12F);
this.btTaskMgr.ForeColor = System.Drawing.Color.White;
this.btTaskMgr.Location = new System.Drawing.Point(216, 5);
this.btTaskMgr.Margin = new System.Windows.Forms.Padding(5);
this.btTaskMgr.Name = "btTaskMgr";
this.btTaskMgr.Size = new System.Drawing.Size(201, 79);
this.btTaskMgr.TabIndex = 2;
this.btTaskMgr.Text = "작업관리자";
this.btTaskMgr.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btTaskMgr.Click += new System.EventHandler(this.arLabel6_Click);
//
// arLabel2
// btProcessList
//
this.arLabel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel2.BackColor2 = System.Drawing.Color.DarkBlue;
this.arLabel2.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel2.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel2.BorderColorOver = System.Drawing.Color.Red;
this.arLabel2.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel2.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel2.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel2.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel2.ForeColor = System.Drawing.Color.White;
this.arLabel2.GradientEnable = true;
this.arLabel2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel2.GradientRepeatBG = true;
this.arLabel2.isButton = true;
this.arLabel2.Location = new System.Drawing.Point(347, 112);
this.arLabel2.Margin = new System.Windows.Forms.Padding(5);
this.arLabel2.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel2.msg = null;
this.arLabel2.Name = "arLabel2";
this.arLabel2.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel2.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel2.ProgressEnable = false;
this.arLabel2.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel2.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel2.ProgressMax = 100F;
this.arLabel2.ProgressMin = 0F;
this.arLabel2.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel2.ProgressValue = 0F;
this.arLabel2.ShadowColor = System.Drawing.Color.Black;
this.arLabel2.Sign = "";
this.arLabel2.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel2.SignColor = System.Drawing.Color.Yellow;
this.arLabel2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel2.Size = new System.Drawing.Size(165, 100);
this.arLabel2.TabIndex = 2;
this.arLabel2.Text = "Process List";
this.arLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel2.TextShadow = true;
this.arLabel2.TextVisible = true;
this.arLabel2.Click += new System.EventHandler(this.arLabel2_Click);
this.btProcessList.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.btProcessList.Cursor = System.Windows.Forms.Cursors.Hand;
this.btProcessList.Dock = System.Windows.Forms.DockStyle.Fill;
this.btProcessList.Font = new System.Drawing.Font("Consolas", 12F);
this.btProcessList.ForeColor = System.Drawing.Color.White;
this.btProcessList.Location = new System.Drawing.Point(427, 94);
this.btProcessList.Margin = new System.Windows.Forms.Padding(5);
this.btProcessList.Name = "btProcessList";
this.btProcessList.Size = new System.Drawing.Size(201, 79);
this.btProcessList.TabIndex = 2;
this.btProcessList.Text = "Process List";
this.btProcessList.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btProcessList.Click += new System.EventHandler(this.arLabel2_Click);
//
// label1
//
this.label1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.label1.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label1.ForeColor = System.Drawing.Color.White;
this.label1.Location = new System.Drawing.Point(9, 327);
this.label1.Location = new System.Drawing.Point(10, 389);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(515, 23);
this.label1.Size = new System.Drawing.Size(633, 23);
this.label1.TabIndex = 3;
this.label1.Text = "label1";
//
// label2
//
this.label2.Dock = System.Windows.Forms.DockStyle.Bottom;
this.label2.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label2.ForeColor = System.Drawing.Color.White;
this.label2.Location = new System.Drawing.Point(9, 359);
this.label2.Location = new System.Drawing.Point(10, 366);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(515, 23);
this.label2.Size = new System.Drawing.Size(633, 23);
this.label2.TabIndex = 3;
this.label2.Text = "label1";
//
// arLabel3
// btEmulator
//
this.arLabel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel3.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.arLabel3.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel3.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel3.BorderColorOver = System.Drawing.Color.Red;
this.arLabel3.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel3.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel3.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel3.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel3.ForeColor = System.Drawing.Color.White;
this.arLabel3.GradientEnable = true;
this.arLabel3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel3.GradientRepeatBG = true;
this.arLabel3.isButton = true;
this.arLabel3.Location = new System.Drawing.Point(9, 216);
this.arLabel3.Margin = new System.Windows.Forms.Padding(5);
this.arLabel3.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel3.msg = null;
this.arLabel3.Name = "arLabel3";
this.arLabel3.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel3.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel3.ProgressEnable = false;
this.arLabel3.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel3.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel3.ProgressMax = 100F;
this.arLabel3.ProgressMin = 0F;
this.arLabel3.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel3.ProgressValue = 0F;
this.arLabel3.ShadowColor = System.Drawing.Color.Black;
this.arLabel3.Sign = "";
this.arLabel3.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel3.SignColor = System.Drawing.Color.Yellow;
this.arLabel3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel3.Size = new System.Drawing.Size(165, 100);
this.arLabel3.TabIndex = 4;
this.arLabel3.Text = "Emulator";
this.arLabel3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel3.TextShadow = true;
this.arLabel3.TextVisible = true;
this.arLabel3.Click += new System.EventHandler(this.arLabel3_Click);
this.btEmulator.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.btEmulator.Cursor = System.Windows.Forms.Cursors.Hand;
this.btEmulator.Dock = System.Windows.Forms.DockStyle.Fill;
this.btEmulator.Font = new System.Drawing.Font("Consolas", 12F);
this.btEmulator.ForeColor = System.Drawing.Color.White;
this.btEmulator.Location = new System.Drawing.Point(5, 183);
this.btEmulator.Margin = new System.Windows.Forms.Padding(5);
this.btEmulator.Name = "btEmulator";
this.btEmulator.Size = new System.Drawing.Size(201, 79);
this.btEmulator.TabIndex = 4;
this.btEmulator.Text = "Emulator";
this.btEmulator.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btEmulator.Click += new System.EventHandler(this.arLabel3_Click);
//
// arLabel5
// btMakePatch
//
this.arLabel5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel5.BackColor2 = System.Drawing.Color.Pink;
this.arLabel5.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel5.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel5.BorderColorOver = System.Drawing.Color.Red;
this.arLabel5.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel5.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel5.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel5.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel5.ForeColor = System.Drawing.Color.White;
this.arLabel5.GradientEnable = true;
this.arLabel5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel5.GradientRepeatBG = true;
this.arLabel5.isButton = true;
this.arLabel5.Location = new System.Drawing.Point(178, 216);
this.arLabel5.Margin = new System.Windows.Forms.Padding(5);
this.arLabel5.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel5.msg = null;
this.arLabel5.Name = "arLabel5";
this.arLabel5.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel5.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel5.ProgressEnable = false;
this.arLabel5.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel5.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel5.ProgressMax = 100F;
this.arLabel5.ProgressMin = 0F;
this.arLabel5.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel5.ProgressValue = 0F;
this.arLabel5.ShadowColor = System.Drawing.Color.Black;
this.arLabel5.Sign = "";
this.arLabel5.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel5.SignColor = System.Drawing.Color.Yellow;
this.arLabel5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel5.Size = new System.Drawing.Size(165, 100);
this.arLabel5.TabIndex = 5;
this.arLabel5.Text = "패치파일 생성";
this.arLabel5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel5.TextShadow = true;
this.arLabel5.TextVisible = true;
this.arLabel5.Click += new System.EventHandler(this.arLabel5_Click);
this.btMakePatch.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.btMakePatch.Cursor = System.Windows.Forms.Cursors.Hand;
this.btMakePatch.Dock = System.Windows.Forms.DockStyle.Fill;
this.btMakePatch.Font = new System.Drawing.Font("Consolas", 12F);
this.btMakePatch.ForeColor = System.Drawing.Color.White;
this.btMakePatch.Location = new System.Drawing.Point(216, 183);
this.btMakePatch.Margin = new System.Windows.Forms.Padding(5);
this.btMakePatch.Name = "btMakePatch";
this.btMakePatch.Size = new System.Drawing.Size(201, 79);
this.btMakePatch.TabIndex = 5;
this.btMakePatch.Text = "패치파일 생성";
this.btMakePatch.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btMakePatch.Click += new System.EventHandler(this.arLabel5_Click);
//
// arLabel7
// btAutoRestart
//
this.arLabel7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.arLabel7.BackColor2 = System.Drawing.Color.DarkBlue;
this.arLabel7.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel7.BorderColor = System.Drawing.Color.LightSkyBlue;
this.arLabel7.BorderColorOver = System.Drawing.Color.Red;
this.arLabel7.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel7.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel7.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel7.Font = new System.Drawing.Font("Consolas", 12F);
this.arLabel7.ForeColor = System.Drawing.Color.White;
this.arLabel7.GradientEnable = true;
this.arLabel7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel7.GradientRepeatBG = true;
this.arLabel7.isButton = true;
this.arLabel7.Location = new System.Drawing.Point(347, 216);
this.arLabel7.Margin = new System.Windows.Forms.Padding(5);
this.arLabel7.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel7.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel7.msg = null;
this.arLabel7.Name = "arLabel7";
this.arLabel7.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel7.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel7.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel7.ProgressEnable = false;
this.arLabel7.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel7.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel7.ProgressMax = 100F;
this.arLabel7.ProgressMin = 0F;
this.arLabel7.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel7.ProgressValue = 0F;
this.arLabel7.ShadowColor = System.Drawing.Color.Black;
this.arLabel7.Sign = "";
this.arLabel7.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel7.SignColor = System.Drawing.Color.Yellow;
this.arLabel7.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel7.Size = new System.Drawing.Size(165, 100);
this.arLabel7.TabIndex = 6;
this.arLabel7.Text = "자동 재시작";
this.arLabel7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel7.TextShadow = true;
this.arLabel7.TextVisible = true;
this.arLabel7.Click += new System.EventHandler(this.arLabel7_Click);
this.btAutoRestart.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
this.btAutoRestart.Cursor = System.Windows.Forms.Cursors.Hand;
this.btAutoRestart.Dock = System.Windows.Forms.DockStyle.Fill;
this.btAutoRestart.Font = new System.Drawing.Font("Consolas", 12F);
this.btAutoRestart.ForeColor = System.Drawing.Color.White;
this.btAutoRestart.Location = new System.Drawing.Point(427, 183);
this.btAutoRestart.Margin = new System.Windows.Forms.Padding(5);
this.btAutoRestart.Name = "btAutoRestart";
this.btAutoRestart.Size = new System.Drawing.Size(201, 79);
this.btAutoRestart.TabIndex = 6;
this.btAutoRestart.Text = "자동 재시작";
this.btAutoRestart.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btAutoRestart.Click += new System.EventHandler(this.arLabel7_Click);
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 3;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel1.Controls.Add(this.btOpenDir, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.btAutoRestart, 2, 2);
this.tableLayoutPanel1.Controls.Add(this.btTaskMgr, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.btMakePatch, 1, 2);
this.tableLayoutPanel1.Controls.Add(this.btStartMenu, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.btEmulator, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.btShutdown, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.btRestart, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.btProcessList, 2, 1);
this.tableLayoutPanel1.Controls.Add(this.button1, 0, 3);
this.tableLayoutPanel1.Controls.Add(this.button2, 1, 3);
this.tableLayoutPanel1.Controls.Add(this.button3, 2, 3);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 10);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 4;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(633, 356);
this.tableLayoutPanel1.TabIndex = 7;
//
// button1
//
this.button1.Dock = System.Windows.Forms.DockStyle.Fill;
this.button1.Location = new System.Drawing.Point(3, 270);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(205, 83);
this.button1.TabIndex = 7;
this.button1.Text = "Map Editor";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click_1);
//
// button2
//
this.button2.Dock = System.Windows.Forms.DockStyle.Fill;
this.button2.Enabled = false;
this.button2.Location = new System.Drawing.Point(214, 270);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(205, 83);
this.button2.TabIndex = 7;
this.button2.Text = "---";
this.button2.UseVisualStyleBackColor = true;
//
// button3
//
this.button3.Dock = System.Windows.Forms.DockStyle.Fill;
this.button3.Enabled = false;
this.button3.Location = new System.Drawing.Point(425, 270);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(205, 83);
this.button3.TabIndex = 7;
this.button3.Text = "---";
this.button3.UseVisualStyleBackColor = true;
//
// fSystem
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
this.ClientSize = new System.Drawing.Size(519, 451);
this.Controls.Add(this.arLabel7);
this.Controls.Add(this.arLabel5);
this.Controls.Add(this.arLabel3);
this.ClientSize = new System.Drawing.Size(653, 473);
this.Controls.Add(this.tableLayoutPanel1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.arLabel4);
this.Controls.Add(this.lbMsg);
this.Controls.Add(this.arLabel9);
this.Controls.Add(this.arLabel10);
this.Controls.Add(this.arLabel1);
this.Controls.Add(this.arLabel2);
this.Controls.Add(this.arLabel6);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "fSystem";
this.Padding = new System.Windows.Forms.Padding(10);
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "fSystem";
this.Load += new System.EventHandler(this.fSystem_Load);
this.tableLayoutPanel1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private arCtl.arLabel lbMsg;
private arCtl.arLabel arLabel4;
private arCtl.arLabel arLabel6;
private arCtl.arLabel arLabel9;
private arCtl.arLabel arLabel10;
private arCtl.arLabel arLabel1;
private arCtl.arLabel arLabel2;
private System.Windows.Forms.Button btOpenDir;
private System.Windows.Forms.Button arLabel4;
private System.Windows.Forms.Button btTaskMgr;
private System.Windows.Forms.Button btShutdown;
private System.Windows.Forms.Button btRestart;
private System.Windows.Forms.Button btStartMenu;
private System.Windows.Forms.Button btProcessList;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private arCtl.arLabel arLabel3;
private arCtl.arLabel arLabel5;
private arCtl.arLabel arLabel7;
private System.Windows.Forms.Button btEmulator;
private System.Windows.Forms.Button btMakePatch;
private System.Windows.Forms.Button btAutoRestart;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button3;
}
}

View File

@@ -154,5 +154,13 @@ namespace Project.Dialog
{
PUB.SystemReboot(5,true);
}
private void button1_Click_1(object sender, EventArgs e)
{
//mapeditor
var fn = new System.IO.FileInfo(@".\test\AGVMapEditor.exe");
if (fn.Exists == false) return;
UTIL.RunExplorer(fn.FullName);
}
}
}

View File

@@ -0,0 +1,239 @@
namespace Project.Dialog
{
partial class fXbeeSetting
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
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.button2 = new System.Windows.Forms.Button();
this.btmy = new System.Windows.Forms.Button();
this.tbmy = new System.Windows.Forms.TextBox();
this.btch = new System.Windows.Forms.Button();
this.tbch = new System.Windows.Forms.TextBox();
this.btpand = new System.Windows.Forms.Button();
this.tbpanid = new System.Windows.Forms.TextBox();
this.panel2 = new System.Windows.Forms.Panel();
this.rtXbee = new arCtl.LogTextBox();
this.serialPort1 = new System.IO.Ports.SerialPort(this.components);
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;
//
// 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);
//
// 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;
//
// 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;
//
// 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);
//
// 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;
//
// 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 = "";
//
// serialPort1
//
this.serialPort1.ReadTimeout = 1000;
this.serialPort1.WriteTimeout = 1000;
//
// 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;
private System.IO.Ports.SerialPort serialPort1;
}
}

View File

@@ -0,0 +1,193 @@
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;
using AR;
using COMM;
namespace Project.Dialog
{
public partial class fXbeeSetting : Form
{
public fXbeeSetting()
{
InitializeComponent();
VAR.BOOL[eVarBool.DISABLE_AUTOCONN_XBEE] = true;
PUB.XBE.Close();
this.serialPort1.DataReceived += SerialPort1_DataReceived;
}
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();
}
void showlog(string Message)
{
if (rtXbee.Visible)
{
rtXbee.AddMsg(DateTime.Now, "NORMAL", 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 (this.serialPort1.IsOpen)
{
serialPort1.Close();
showlog("closed");
}
else
{
serialPort1.PortName = tbPortName.Text;
serialPort1.BaudRate = int.Parse(tbBaud.Text);
serialPort1.Open();
showlog("open");
}
}
private void fXbeeSetting_FormClosed(object sender, FormClosedEventArgs e)
{
VAR.BOOL[eVarBool.DISABLE_AUTOCONN_XBEE] = false;
}
private volatile bool isCommandExecuting = false;
private void SerialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
if (isCommandExecuting) return;
try
{
string data = serialPort1.ReadExisting();
var hexdata = System.Text.Encoding.Default.GetBytes(data);
var hexstr = string.Join(" ", hexdata.Select(t => t.ToString("X2")));
if (!string.IsNullOrEmpty(data))
{
this.BeginInvoke(new Action(() =>
{
showlog($"RxAsync: {hexstr}");
}));
}
}
catch { }
}
private string Cmd(string cmd, int timeout = 1000)
{
isCommandExecuting = true;
try
{
if (!serialPort1.IsOpen) return "Error: Port Closed";
serialPort1.DiscardInBuffer();
serialPort1.Write(cmd);
System.Threading.Thread.Sleep(20);
serialPort1.ReadTimeout = timeout;
string res = serialPort1.ReadTo("\r");
System.Threading.Thread.Sleep(20);
showlog($"Tx:{cmd.Trim()}, Rx:{res}");
//명령수신호 10ms 대기후 다음 명령을 전송
System.Threading.Thread.Sleep(20);
return res;
}
catch (Exception ex)
{
showlog($"Err: {ex.Message}");
return "Error";
}
finally
{
isCommandExecuting = false;
}
}
private void btpand_Click(object sender, EventArgs e)
{
//각명령마다 회신을 확인하고 다음명령을 실행해야함
//명령수신호 10ms 대기후 다음 명령을 전송
//명령을 설정하면 응답은 OK\d 형태로 입력된다.
var cmds = new string[] {
"+++",
$"ATID{tbpanid.Text}\r" ,
$"ATCN\r"};
foreach (var cmd in cmds)
{
if(!Cmd(cmd).Contains("OK"))
{
showlog("FAIL");
break;
}
}
}
private void btch_Click(object sender, EventArgs e)
{
var cmds = new string[] {
"+++",
$"ATCH{tbch.Text}\r" ,
$"ATCN\r"};
foreach (var cmd in cmds)
{
if (!Cmd(cmd).Contains("OK"))
{
showlog("FAIL");
break;
}
}
}
private void btmy_Click(object sender, EventArgs e)
{
var cmds = new string[] {
"+++",
$"ATMY{tbmy.Text}\r" ,
$"ATCN\r"};
foreach (var cmd in cmds)
{
if (!Cmd(cmd).Contains("OK"))
{
showlog("FAIL");
break;
}
}
}
private void button2_Click(object sender, EventArgs e)
{
//read all(id,ch,my)
if (Cmd("+++").Contains("OK"))
{
var id = Cmd("ATID\r");
var ch = Cmd("ATCH\r");
var my = Cmd("ATMY\r");
Cmd("ATCN\r");
this.BeginInvoke(new Action(() => {
this.tbpanid.Text = id;
this.tbch.Text = ch;
this.tbmy.Text = my;
}));
}
}
}
}

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="serialPort1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -117,6 +117,11 @@ namespace Project
PUB.sm.SetNewRunStep(ERunStep.READY);
return false;
}
else
{
PUB._mapCanvas.CurrentPath = PathResult.result;
PUB._virtualAGV.SetPath(PathResult.result);
}
PUB.log.AddI($"경로생성 {PUB._virtualAGV.StartNode.RfidId} -> {PUB._virtualAGV.TargetNode.RfidId}");
}
@@ -133,8 +138,16 @@ namespace Project
return false;
}
//predict 를 이용하여 다음 이동을 모두 확인한다.
var nextAction = PUB._virtualAGV.Predict();
if(nextAction.Reason == AGVNavigationCore.Models.eAGVCommandReason.PathOut)
{
//경로이탈
PUB._virtualAGV.CurrentPath.DetailedPath.Clear();
return false;
}
var message = $"[다음 행동 예측]\n\n" +
$"모터: {nextAction.Motor}\n" +

View File

@@ -106,8 +106,7 @@ namespace Project
PUB.log.Add($"충전상태전환 {agv_chg}");
VAR.BOOL[eVarBool.FLAG_CHARGEONA] = agv_chg;
}
//자동충전해제시 곧바로 수동 충전되는 경우가 있어 자동 상태를 BMS에 넣는다 230118
PUB.BMS.AutoCharge = agv_chg;
if (PUB.AGV.error.Charger_pos_error != VAR.BOOL[eVarBool.CHG_POSERR])
{

View File

@@ -25,9 +25,12 @@ namespace Project
DateTime lastbmstime = DateTime.Now;
private void Bms_Message(object sender, arDev.BMS.MessageEventArgs e)
{
if (e.MsgType == arDev.arRS232.MessageType.Error) PUB.logbms.AddE( e.Message);
if (e.MsgType == arDev.BMSSerialComm.MessageType.Error) PUB.logbms.AddE(e.Message);
else
{
VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now;
var hexstr = e.Data.GetHexString().Trim();
bool addlog = false;
var logtimesec = 30;
@@ -134,31 +137,43 @@ namespace Project
}
if (addlog)
PUB.logbms.Add("BMS:" + hexstr);
{
//if (e.MsgType == arDev.arRS232.MessageType.Recv)
// PUB.logbms.Add("RX", e.Data.GetHexString());
//else if (e.MsgType == arDev.arRS232.MessageType.Send)
// PUB.logbms.Add("TX", e.Data.GetHexString());
//else
{
PUB.logbms.Add(e.MsgType.ToString(),e.Message);
}
}
}
}
private void BMS_ChargeDetect(object sender, arDev.ChargetDetectArgs e)
{
//자동충전중이아니고 멈춰있다면 수동 충전으로 전환한다
if (PUB.AGV.system1.Battery_charging == false && PUB.AGV.system1.agv_stop == true && VAR.BOOL[eVarBool.FLAG_CHARGEONM] == false)
VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now;
if (e.Detected == true) //충전이 감지되었다.
{
if (PUB.setting.DetectManualCharge)
if (VAR.BOOL[eVarBool.FLAG_AUTORUN] == false && VAR.BOOL[eVarBool.FLAG_CHARGEONM] == false)
{
VAR.BOOL[eVarBool.FLAG_CHARGEONM] = true;
PUB.Speak(Lang.);
if (PUB.AGV.system1.agv_run == true) PUB.AGV.AGVMoveStop("수동충전감지");
}
else
{
PUB.log.Add($"충전이 감지되었지만 메뉴얼 전환 비활성화됨");
}
else PUB.logbms.AddI("Battery Charge Off");
}
}
private void Bms_BMSDataReceive(object sender, EventArgs e)
{
VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now;
//PUB.mapctl.Manager.agv.BatteryLevel = PUB.BMS.Current_Level;
//PUB.mapctl.Manager.agv.BatteryTemp1 = PUB.BMS.Current_temp1;
//PUB.mapctl.Manager.agv.BatteryTemp2 = PUB.BMS.Current_temp2;
@@ -188,6 +203,7 @@ namespace Project
}
private void BMS_BMSCellDataReceive(object sender, arDev.BMSCelvoltageEventArgs e)
{
VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now;
EEMStatus.MakeBMSInformation_Cell();
}
}

View File

@@ -46,9 +46,12 @@ namespace Project
// XBee 연결
lock (connectobj)
{
if (VAR.BOOL[eVarBool.DISABLE_AUTOCONN_XBEE] == false)
{
ConnectSerialPort(PUB.XBE, PUB.setting.Port_XBE, PUB.setting.Baud_XBE,
eVarTime.LastConn_XBE, eVarTime.LastConnTry_XBE, eVarTime.LastRecv_XBE);
eVarTime.LastConn_XBE, eVarTime.LastConnTry_XBE, null);
}
}
@@ -72,7 +75,7 @@ namespace Project
else if (PUB.BMS.IsValid == false)
{
var ts = VAR.TIME.RUN(eVarTime.LastConnTry_BAT);
if (ts.TotalSeconds > (PUB.setting.interval_bms * 2.5))
if (ts.TotalSeconds > (Math.Max(10, PUB.setting.interval_bms) * 2.5))
{
this.BeginInvoke(new Action(() =>
{
@@ -84,7 +87,6 @@ namespace Project
}
}
// ========== 2. XBee 상태 전송 ==========
if (PUB.XBE != null && PUB.XBE.IsOpen)
{
@@ -147,7 +149,7 @@ namespace Project
/// <summary>
/// 시리얼 포트 연결 (arDev.arRS232)
/// </summary>
bool ConnectSerialPort(arDev.ISerialComm dev, string port, int baud, eVarTime conn, eVarTime conntry, eVarTime recvtime)
bool ConnectSerialPort(arDev.ISerialComm dev, string port, int baud, eVarTime conn, eVarTime conntry, eVarTime? recvtime)
{
if (port.isEmpty()) return false;
@@ -159,13 +161,13 @@ namespace Project
VAR.TIME.Update(conntry);
try
{
VAR.TIME.Update(recvtime);
if (recvtime != null) VAR.TIME.Update(recvtime);
dev.PortName = port;
dev.BaudRate = baud;
PUB.log.Add($"Connect to {port}:{baud}");
if (dev.Open())
{
VAR.TIME[recvtime] = DateTime.Now; //값을 수신한것처럼한다
if (recvtime != null) VAR.TIME[recvtime] = DateTime.Now; //값을 수신한것처럼한다
PUB.log.Add(port, $"[{port}:{baud}] 연결 완료");
}
else
@@ -202,7 +204,7 @@ namespace Project
VAR.TIME.Update(conntry);
}
else if (dev.IsOpen)
else if (dev.IsOpen && recvtime != null)
{
//연결은 되었으나 통신이 지난지 10초가 지났다면 자동종료한다
var tsRecv = VAR.TIME.RUN(recvtime);

View File

@@ -570,6 +570,10 @@ namespace Project
{
UpdateStatusMessage("AGV 연결실패", Color.Tomato, Color.Black);
}
else if(PUB.AGV.IsValid==false)
{
UpdateStatusMessage("AGV 통신상태 불량", Color.Tomato, Color.Black);
}
else if (PUB.AGV.error.Emergency)
{
if (PUB.AGV.error.runerror_by_no_magent_line)
@@ -581,6 +585,14 @@ namespace Project
UpdateStatusMessage("비상 정지", Color.Tomato, Color.Black);
}
}
else if (PUB.BMS != null || PUB.BMS.IsOpen==false)
{
UpdateStatusMessage("BMS가 연결되지 않았습니다", Color.Tomato, Color.Black);
}
else if (PUB.BMS != null || PUB.BMS.IsValid == false)
{
UpdateStatusMessage("BMS 통신상태 불량", Color.Tomato, Color.Black);
}
//else if (PUB.PLC.IsOpen == false)
//{
// UpdateStatusMessage(Lang.PLC연결실패, Color.Tomato, Color.Black);

View File

@@ -113,7 +113,7 @@ namespace Project
case ENIGProtocol.AGVCommandHE.GotoAlias:
case ENIGProtocol.AGVCommandHE.Goto: //move to tag
var datalength = cmd == ENIGProtocol.AGVCommandHE.GotoAlias ? 1 : 4;
var datalength = cmd == ENIGProtocol.AGVCommandHE.GotoAlias ? 2 : 1;
if (data.Length > datalength)
{
var currTag = System.Text.Encoding.Default.GetString(data, 1, data.Length - 1).Trim();
@@ -172,6 +172,23 @@ namespace Project
else PUB.log.AddE($"[{logPrefix}-{cmd}] Length Error:{data.Length}");
break;
case ENIGProtocol.AGVCommandHE.LTurn180:
PUB.log.Add($"[{logPrefix}-LTurn180]");
PUB.AGV.AGVMoveLeft180Turn();
break;
case ENIGProtocol.AGVCommandHE.RTurn180:
PUB.log.Add($"[{logPrefix}-RTurn180]");
PUB.AGV.AGVMoveRight180Turn();
break;
case ENIGProtocol.AGVCommandHE.LTurn:
PUB.log.Add($"[{logPrefix}-LTurn]");
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.LT, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn);
break;
case ENIGProtocol.AGVCommandHE.RTurn:
PUB.log.Add($"[{logPrefix}-RTurn]");
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.RT, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn);
break;
case ENIGProtocol.AGVCommandHE.Stop: //stop
PUB.log.Add($"[{logPrefix}-Stop]");
PUB.AGV.AGVMoveStop("xbee");
@@ -205,6 +222,7 @@ namespace Project
var MotDirection = data[1]; //0=back, 1=forward
var MagDirection = data[2]; //0=straight, 1=left, 2=right
var AutSpeed = data[3]; //0=slow, 1=normal, 2=fast
var Lidar = data[4]; //0=off, 1=on
var bunkidata = new arDev.Narumi.BunkiData();
@@ -221,6 +239,9 @@ namespace Project
else if (MagDirection == 1) bunkidata.Bunki = arDev.Narumi.eBunki.Left;
else bunkidata.Bunki = arDev.Narumi.eBunki.Strate;
if (Lidar == 0) bunkidata.PBSSensor = 0;
else bunkidata.PBSSensor = 2;
PUB.log.Add($"[{logPrefix}-AutoMove] DIR:{bunkidata.Direction}-{bunkidata.Bunki},SPD:{bunkidata.Speed}");
PUB.AGV.AGVMoveSet(bunkidata);
PUB.AGV.AGVMoveRun((MotDirection == 0 ? arDev.Narumi.eRunOpt.Backward : arDev.Narumi.eRunOpt.Forward));
@@ -255,7 +276,7 @@ namespace Project
break;
default:
PUB.logagv.AddE($"Unknown Command : {cmd}");
PUB.logagv.AddE($"Unknown Command : {cmd} Sender:{e.ReceivedPacket.ID}, Target:{data[0]}");
PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.UnknownCommand, $"{cmd}");
break;
}
@@ -301,6 +322,19 @@ namespace Project
if (advancedResult.DockingValidation == null || !advancedResult.DockingValidation.IsValidationRequired)
advancedResult.DockingValidation = DockingValidator.ValidateDockingDirection(advancedResult, _mapNodes);
//마지막대상이 버퍼라면 시퀀스처리를 해야한다
if (targetNode.StationType == StationType.Buffer&& advancedResult.DetailedPath.Any())
{
var lastDetailPath = advancedResult.DetailedPath.Last();
if (lastDetailPath.NodeId == targetNode.Id) //마지막노드 재확인
{
//버퍼에 도킹할때에는 마지막 노드에서 멈추고 시퀀스를 적용해야한다
advancedResult.DetailedPath = advancedResult.DetailedPath.Take(advancedResult.DetailedPath.Count - 1).ToList();
Console.WriteLine("최종위치가 버퍼이므로 마지막 RFID에서 멈추도록 합니다");
}
}
_simulatorCanvas.CurrentPath = advancedResult;
//_pathLengthLabel.Text = $"경로 길이: {advancedResult.TotalDistance:F1}";
//_statusLabel.Text = $"경로 계산 완료 ({advancedResult.CalculationTimeMs}ms)";

View File

@@ -137,34 +137,11 @@ namespace Project.ViewForm
private void fAuto_Load(object sender, EventArgs e)
{
ctlAuto1.dev_agv = PUB.AGV;
// ctlAuto1.dev_plc = PUB.PLC;
ctlAuto1.dev_bms = PUB.BMS;
ctlAuto1.dev_xbe = PUB.XBE;
PUB.AGV.DataReceive += AGV_DataReceive;
//var fn = string.Empty;
//if (files.Any() == false)
//{
// fn = AR.UTIL.MakePath("sample.route");
//}
//else if (files.Count() == 1)
//{
// fn = files.First().FullName;
//}
//if (fn.isEmpty() == false)
//{
// var fi = new System.IO.FileInfo(AR.UTIL.CurrentPath + "\\sample.route");
// if (fi.Exists)
// {
// PUB.log.Add($"autoload : {fi.FullName}");
// var rlt = PUB.mapctl.LoadFromFile(fi.FullName, out string errmsg);
// if (rlt == false) AR.UTIL.MsgE(errmsg);
// }
//}
this.timer1.Start();
// Set Run Mode

View File

@@ -64,7 +64,7 @@ namespace Project.ViewForm
{
timer1.Stop();
this.arLabel1.Text = PUB.BMS.Current_Level.ToString("N1") + "%";
this.arLabel1.Sign = $"{PUB.BMS.Current_Volt}v, {PUB.BMS.Charge_watt}w, {PUB.BMS.Charge_Amp}";// PUB.BMS.Current_Volt.ToString() + "v";
this.arLabel1.Sign = $"{PUB.BMS.Current_Volt}v, {PUB.BMS.Charge_watt}w";// PUB.BMS.Current_Volt.ToString() + "v";
this.cv1.Text = PUB.BMS.CellVoltage[0].ToString("N3") + "v";
this.cv2.Text = PUB.BMS.CellVoltage[1].ToString("N3") + "v";
this.cv3.Text = PUB.BMS.CellVoltage[2].ToString("N3") + "v";

View File

@@ -29,34 +29,42 @@
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.listView1 = new System.Windows.Forms.ListView();
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.listView2 = new System.Windows.Forms.ListView();
this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.listView3 = new System.Windows.Forms.ListView();
this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader6 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.listView4 = new System.Windows.Forms.ListView();
this.columnHeader7 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader8 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.dv1 = new System.Windows.Forms.DataGridView();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dv2 = new System.Windows.Forms.DataGridView();
this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dv3 = new System.Windows.Forms.DataGridView();
this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dv4 = new System.Windows.Forms.DataGridView();
this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dv1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dv2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dv3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dv4)).BeginInit();
this.SuspendLayout();
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 4;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.Controls.Add(this.listView1, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.listView2, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.listView3, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.listView4, 3, 0);
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F));
this.tableLayoutPanel1.Controls.Add(this.dv4, 2, 1);
this.tableLayoutPanel1.Controls.Add(this.dv3, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.dv2, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.dv1, 0, 0);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
@@ -66,92 +74,167 @@
this.tableLayoutPanel1.Size = new System.Drawing.Size(1050, 577);
this.tableLayoutPanel1.TabIndex = 6;
//
// listView1
//
this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1,
this.columnHeader2});
this.listView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.listView1.HideSelection = false;
this.listView1.Location = new System.Drawing.Point(3, 3);
this.listView1.Name = "listView1";
this.tableLayoutPanel1.SetRowSpan(this.listView1, 2);
this.listView1.Size = new System.Drawing.Size(256, 571);
this.listView1.TabIndex = 0;
this.listView1.UseCompatibleStateImageBehavior = false;
this.listView1.View = System.Windows.Forms.View.Details;
this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged);
//
// columnHeader1
//
this.columnHeader1.Width = 120;
//
// columnHeader2
//
this.columnHeader2.Width = 120;
//
// listView2
//
this.listView2.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader3,
this.columnHeader4});
this.listView2.Dock = System.Windows.Forms.DockStyle.Fill;
this.listView2.HideSelection = false;
this.listView2.Location = new System.Drawing.Point(265, 3);
this.listView2.Name = "listView2";
this.tableLayoutPanel1.SetRowSpan(this.listView2, 2);
this.listView2.Size = new System.Drawing.Size(256, 571);
this.listView2.TabIndex = 0;
this.listView2.UseCompatibleStateImageBehavior = false;
this.listView2.View = System.Windows.Forms.View.Details;
//
// columnHeader3
//
this.columnHeader3.Width = 120;
//
// listView3
//
this.listView3.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader5,
this.columnHeader6});
this.listView3.Dock = System.Windows.Forms.DockStyle.Fill;
this.listView3.HideSelection = false;
this.listView3.Location = new System.Drawing.Point(527, 3);
this.listView3.Name = "listView3";
this.tableLayoutPanel1.SetRowSpan(this.listView3, 2);
this.listView3.Size = new System.Drawing.Size(256, 571);
this.listView3.TabIndex = 0;
this.listView3.UseCompatibleStateImageBehavior = false;
this.listView3.View = System.Windows.Forms.View.Details;
//
// columnHeader5
//
this.columnHeader5.Width = 120;
//
// listView4
//
this.listView4.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader7,
this.columnHeader8});
this.listView4.Dock = System.Windows.Forms.DockStyle.Fill;
this.listView4.HideSelection = false;
this.listView4.Location = new System.Drawing.Point(789, 3);
this.listView4.Name = "listView4";
this.tableLayoutPanel1.SetRowSpan(this.listView4, 2);
this.listView4.Size = new System.Drawing.Size(258, 571);
this.listView4.TabIndex = 0;
this.listView4.UseCompatibleStateImageBehavior = false;
this.listView4.View = System.Windows.Forms.View.Details;
//
// columnHeader7
//
this.columnHeader7.Width = 120;
//
// timer1
//
this.timer1.Interval = 500;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// dv1
//
this.dv1.AllowUserToAddRows = false;
this.dv1.AllowUserToDeleteRows = false;
this.dv1.AllowUserToResizeRows = false;
this.dv1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dv1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column1,
this.Column2});
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle4.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dv1.DefaultCellStyle = dataGridViewCellStyle4;
this.dv1.Dock = System.Windows.Forms.DockStyle.Fill;
this.dv1.Location = new System.Drawing.Point(3, 3);
this.dv1.Name = "dv1";
this.dv1.ReadOnly = true;
this.dv1.RowHeadersVisible = false;
this.tableLayoutPanel1.SetRowSpan(this.dv1, 2);
this.dv1.RowTemplate.Height = 23;
this.dv1.Size = new System.Drawing.Size(309, 571);
this.dv1.TabIndex = 1;
//
// Column1
//
this.Column1.HeaderText = "Column1";
this.Column1.Name = "Column1";
this.Column1.ReadOnly = true;
//
// Column2
//
this.Column2.HeaderText = "Column2";
this.Column2.Name = "Column2";
this.Column2.ReadOnly = true;
//
// dv2
//
this.dv2.AllowUserToAddRows = false;
this.dv2.AllowUserToDeleteRows = false;
this.dv2.AllowUserToResizeRows = false;
this.dv2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dv2.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.dataGridViewTextBoxColumn1,
this.dataGridViewTextBoxColumn2});
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle3.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dv2.DefaultCellStyle = dataGridViewCellStyle3;
this.dv2.Dock = System.Windows.Forms.DockStyle.Fill;
this.dv2.Location = new System.Drawing.Point(318, 3);
this.dv2.Name = "dv2";
this.dv2.ReadOnly = true;
this.dv2.RowHeadersVisible = false;
this.tableLayoutPanel1.SetRowSpan(this.dv2, 2);
this.dv2.RowTemplate.Height = 23;
this.dv2.Size = new System.Drawing.Size(309, 571);
this.dv2.TabIndex = 2;
//
// dataGridViewTextBoxColumn1
//
this.dataGridViewTextBoxColumn1.HeaderText = "Column1";
this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1";
this.dataGridViewTextBoxColumn1.ReadOnly = true;
//
// dataGridViewTextBoxColumn2
//
this.dataGridViewTextBoxColumn2.HeaderText = "Column2";
this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2";
this.dataGridViewTextBoxColumn2.ReadOnly = true;
//
// dv3
//
this.dv3.AllowUserToAddRows = false;
this.dv3.AllowUserToDeleteRows = false;
this.dv3.AllowUserToResizeRows = false;
this.dv3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dv3.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.dataGridViewTextBoxColumn3,
this.dataGridViewTextBoxColumn4});
this.tableLayoutPanel1.SetColumnSpan(this.dv3, 2);
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle2.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dv3.DefaultCellStyle = dataGridViewCellStyle2;
this.dv3.Dock = System.Windows.Forms.DockStyle.Fill;
this.dv3.Location = new System.Drawing.Point(633, 3);
this.dv3.Name = "dv3";
this.dv3.ReadOnly = true;
this.dv3.RowHeadersVisible = false;
this.dv3.RowTemplate.Height = 23;
this.dv3.Size = new System.Drawing.Size(414, 282);
this.dv3.TabIndex = 3;
//
// dataGridViewTextBoxColumn3
//
this.dataGridViewTextBoxColumn3.HeaderText = "Column1";
this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3";
this.dataGridViewTextBoxColumn3.ReadOnly = true;
//
// dataGridViewTextBoxColumn4
//
this.dataGridViewTextBoxColumn4.HeaderText = "Column2";
this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4";
this.dataGridViewTextBoxColumn4.ReadOnly = true;
//
// dv4
//
this.dv4.AllowUserToAddRows = false;
this.dv4.AllowUserToDeleteRows = false;
this.dv4.AllowUserToResizeRows = false;
this.dv4.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dv4.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.dataGridViewTextBoxColumn5,
this.dataGridViewTextBoxColumn6});
this.tableLayoutPanel1.SetColumnSpan(this.dv4, 2);
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle1.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dv4.DefaultCellStyle = dataGridViewCellStyle1;
this.dv4.Dock = System.Windows.Forms.DockStyle.Fill;
this.dv4.Location = new System.Drawing.Point(633, 291);
this.dv4.Name = "dv4";
this.dv4.ReadOnly = true;
this.dv4.RowHeadersVisible = false;
this.dv4.RowTemplate.Height = 23;
this.dv4.Size = new System.Drawing.Size(414, 283);
this.dv4.TabIndex = 4;
//
// dataGridViewTextBoxColumn5
//
this.dataGridViewTextBoxColumn5.HeaderText = "Column1";
this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5";
this.dataGridViewTextBoxColumn5.ReadOnly = true;
//
// dataGridViewTextBoxColumn6
//
this.dataGridViewTextBoxColumn6.HeaderText = "Column2";
this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6";
this.dataGridViewTextBoxColumn6.ReadOnly = true;
//
// fFlag
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@@ -165,6 +248,10 @@
this.Load += new System.EventHandler(this.fFlag_Load);
this.VisibleChanged += new System.EventHandler(this.fFlag_VisibleChanged);
this.tableLayoutPanel1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dv1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dv2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dv3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dv4)).EndInit();
this.ResumeLayout(false);
}
@@ -173,17 +260,17 @@
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.ListView listView1;
private System.Windows.Forms.ListView listView2;
private System.Windows.Forms.ListView listView3;
private System.Windows.Forms.ListView listView4;
private System.Windows.Forms.ColumnHeader columnHeader1;
private System.Windows.Forms.ColumnHeader columnHeader2;
private System.Windows.Forms.ColumnHeader columnHeader3;
private System.Windows.Forms.ColumnHeader columnHeader4;
private System.Windows.Forms.ColumnHeader columnHeader5;
private System.Windows.Forms.ColumnHeader columnHeader6;
private System.Windows.Forms.ColumnHeader columnHeader7;
private System.Windows.Forms.ColumnHeader columnHeader8;
private System.Windows.Forms.DataGridView dv4;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6;
private System.Windows.Forms.DataGridView dv3;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
private System.Windows.Forms.DataGridView dv2;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2;
private System.Windows.Forms.DataGridView dv1;
private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
}
}

View File

@@ -30,16 +30,18 @@ namespace Project.ViewForm
void MakeControl()
{
ListView[] lvs = new ListView[] { listView1, listView2, listView3, listView4 };
foreach (var lv in lvs)
DataGridView[] dvs = new DataGridView[] { dv1, dv2, dv3, dv4 };
foreach(var lv in dvs)
{
lv.Columns.Clear();
lv.Columns.Add("Idx");
lv.Columns.Add("Title");
lv.Columns.Add("Value");
lv.Columns.Add("idx", "*");
lv.Columns.Add("Title", "Title");
lv.Columns.Add("Value", "Value");
lv.Columns[0].Width = 25;
lv.Columns[1].Width = 150;
lv.Columns[2].Width = 100;
lv.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
Array valuelist;
@@ -47,38 +49,33 @@ namespace Project.ViewForm
foreach (var item in valuelist)
{
var v = (COMM.eVarBool)item;
var lv = listView1.Items.Add($"{(int)v}");
lv.SubItems.Add($"{item}");
lv.SubItems.Add("--");
dv1.Rows.Add($"{(int)v}", item, "--");
}
valuelist = Enum.GetValues(typeof(COMM.eVarInt32));
foreach (var item in valuelist)
{
var v = (COMM.eVarInt32)item;
var lv = listView2.Items.Add($"{(int)v}");
lv.SubItems.Add($"{item}");
lv.SubItems.Add("--");
dv2.Rows.Add($"{(int)v}", item, "--");
}
valuelist = Enum.GetValues(typeof(COMM.eVarString));
foreach (var item in valuelist)
{
var v = (COMM.eVarString)item;
var lv = listView3.Items.Add($"{(int)v}");
lv.SubItems.Add($"{item}");
lv.SubItems.Add("--");
dv3.Rows.Add($"{(int)v}", item, "--");
}
valuelist = Enum.GetValues(typeof(COMM.eVarTime));
foreach (var item in valuelist)
{
var v = (COMM.eVarString)item;
var lv = listView4.Items.Add($"{(int)v}");
lv.SubItems.Add($"{item}");
lv.SubItems.Add("--");
dv4.Rows.Add($"{(int)v}", item, "--");
}
foreach (var dv in dvs)
dv.AutoResizeColumns();
}
@@ -91,42 +88,32 @@ namespace Project.ViewForm
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
listView1.SuspendLayout();
foreach (ListViewItem item in listView1.Items)
foreach(DataGridViewRow item in this.dv1.Rows)
{
var idx = int.Parse(item.SubItems[0].Text);
var idx = int.Parse(item.Cells["idx"].Value.ToString());
var v = VAR.BOOL.Get(idx);
var desc = VAR.BOOL.GetCodeDesc(idx);
item.SubItems[2].Text = v ? "O" : "X";
item.Cells["value"].Value = v ? "O" : "X";
}
listView1.ResumeLayout();
listView2.SuspendLayout();
foreach (ListViewItem item in listView2.Items)
foreach (DataGridViewRow item in this.dv2.Rows)
{
var idx = int.Parse(item.SubItems[0].Text);
var idx = int.Parse(item.Cells["idx"].Value.ToString());
var v = VAR.I32.Get(idx);
var desc = VAR.I32.GetCodeDesc(idx);
item.SubItems[2].Text = v.ToString();
item.Cells["value"].Value = v.ToString();
}
listView2.ResumeLayout();
listView3.SuspendLayout();
foreach (ListViewItem item in listView3.Items)
foreach (DataGridViewRow item in this.dv3.Rows)
{
var idx = int.Parse(item.SubItems[0].Text);
var idx = int.Parse(item.Cells["idx"].Value.ToString());
var v = VAR.STR.Get(idx);
var desc = VAR.STR.GetCodeDesc(idx);
item.SubItems[2].Text = v;
item.Cells["value"].Value = v;
}
listView3.ResumeLayout();
listView4.SuspendLayout();
foreach (ListViewItem item in listView4.Items)
foreach (DataGridViewRow item in this.dv4.Rows)
{
var idx = int.Parse(item.SubItems[0].Text);
var idx = int.Parse(item.Cells["idx"].Value.ToString());
var v = VAR.TIME.Get(idx);
var desc = VAR.TIME.GetCodeDesc(idx);
item.SubItems[2].Text = v.ToString("HH:mm:ss.fff");
item.Cells["value"].Value = v.ToString("HH:mm:ss.fff");
}
listView4.ResumeLayout();
timer1.Start();
}

View File

@@ -117,6 +117,30 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="dataGridViewTextBoxColumn5.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn6.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn3.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn4.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>

View File

@@ -79,8 +79,9 @@ namespace Project.ViewForm
}
if (PUB.CheckManualChargeMode() == false) return;
arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low;
if (radspdh.Checked) spd = arDev.Narumi.Speed.High;
else if (radspdl.Checked) spd = arDev.Narumi.Speed.Mid;
else if (radspdm.Checked) spd = arDev.Narumi.Speed.Mid;
arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff;
if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn;
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.BS, spd, ss);
@@ -109,7 +110,7 @@ namespace Project.ViewForm
if (PUB.CheckManualChargeMode() == false) return;
arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low;
if (radspdh.Checked) spd = arDev.Narumi.Speed.High;
else if (radspdl.Checked) spd = arDev.Narumi.Speed.Mid;
else if (radspdm.Checked) spd = arDev.Narumi.Speed.Mid;
arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff;
if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn;
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.FS, spd, ss);

View File

@@ -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;
}
}

View File

@@ -267,9 +267,11 @@ namespace Project
if (mapPath.Exists == false) mapPath.Create();
//맵파일로딩
if (PUB.setting.LastMapFile.isEmpty()) PUB.setting.LastMapFile = System.IO.Path.Combine(mapPath.FullName, "default.json");
System.IO.FileInfo filePath = new System.IO.FileInfo(PUB.setting.LastMapFile);
if (filePath.Exists == false) filePath = new System.IO.FileInfo(System.IO.Path.Combine(mapPath.FullName, "default.json"));
var basefile = System.IO.Path.Combine(mapPath.FullName, "default.json");
if (System.IO.File.Exists(basefile) == false)
if (PUB.setting.LastMapFile.isEmpty() == false) basefile = PUB.setting.LastMapFile;
System.IO.FileInfo filePath = new System.IO.FileInfo(basefile);
if (filePath.Exists == false) //그래도없다면 맵폴더에서 파일을 찾아본다.
{
var files = mapPath.GetFiles("*.json");
@@ -780,6 +782,12 @@ namespace Project
{
if (VAR.BOOL[eVarBool.FLAG_CHARGEONM])
{
if (PUB.BMS.IsValid && PUB.BMS.IsCharging)
{
UTIL.MsgE("현재 배터리에서 충전 상태가 감지되고 있어 해제할 수 없습니다");
return;
}
var dlg = UTIL.MsgQ("수동 충전을 해제 할까요?");
if (dlg != DialogResult.Yes) return;
VAR.BOOL[eVarBool.FLAG_CHARGEONM] = false;
@@ -1026,5 +1034,11 @@ namespace Project
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void xbeeSettingToolStripMenuItem_Click(object sender, EventArgs e)
{
var f = new Dialog.fXbeeSetting();
f.Show();
}
}
}

View File

@@ -126,160 +126,163 @@
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="btDebug.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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==
</value>
</data>
<data name="btOpenDir.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAb9JREFUWEft
lr8vBEEUxxchEST8ARIkOo1KqFwpUQgKdFRKKoVG+AtUSirFSkiuVCk2m9zt7e7dJtcIkVxFcK4QCYld
3517e9ZkHGLfRuEln8zsvLf7/e7M7A/tP8rlckehUFgCG03IUHnygYsfgeALfMuy5uiUZAMXf5bEPqOa
y+UG6bTkQiHUjCq4/CU2ZnOK5H9sICkedF1vUxnwgQuOgc6JYRg9soFbMBaOlUqlLs/z+jgJgqD1gwGs
yyIYQf8iGmOmBr2FyMCLaZqdaA/pOC1uIgMuzcYVHadFJTKw77puL9pwE8pFbGAJssKAbdtraDPxZErs
CANwMgnWpSQ70JwPDfjhY4H2IJ5MAyz7sNh4tAGL8WQKPIp3ATon9En+7kcpETD9ZnjjGjpbYFRVxMye
MIDODAysSMk0WBUGsBEGcLArJdlxHGdcGMBGaMF74ExVxMgr9l13wwAGalIBN+dCPAys/5CigBud5DUN
0z+rKGAFN71J8uIp2JYLuMFNT5O8WIKsqoiTfD7fT/JiBipyATP3JF0PDNxJBdycknQ9sB7LGHySiri4
xvRPkPR7INEu/7Vy0PgT/juhaW/ZS5SxdhC40QAAAABJRU5ErkJggg==
</value>
</data>
<data name="btMReset.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAA99JREFUWEft
V1uLHEUUHrxfHkRFhJBL16kxBoMYUUQIRkXFBy8gGC8PKl4I3laNF3TdqdP1GEFEQR9EQUSIYvIiKCJi
fDH+Ax/UB0126tSsYDTxEqPJjHw9Xb09Z3t2dpc85oOC6Tpffed09alzalqtE1gmBr51UteZy3qebhVn
HhFHjwa2d3d9tmmw7YpTNf+4ITi7OeT0njD9IkyDMeNgzOlD8WaLXr9iRN++RJg+bXA2aezBWq23LGBr
henPmui/4uhLYXq6y3RDdO2NXU/rxZlrgjNPiqPPhOm/Gv9wcPRQ0ovT7QuWHFRk+0JNqC85fTDXaVvN
04g+y8TRLrUb07PbV58pTHPQCp5u1OtGEJjuLZwOFx8StndoziQEZ+9BTqQgApOvBbRd8yvMdugiYfqn
JP4hnq7UHOA7v/G0fS+tPRcDv7UdiC67Fp+h2sWlBFBLuH5gc5u2JwS2U5MExdNaYdqtPsdYfgvJlEg4
TgvsbGYC05v4niGntyrB3Lz/41T7dGF6HZx5Pv3Q4HyRAHL7Tkk4JjNm3YjN2U5NYL8wHak9I/P3Vc/O
vDxcQ180OG8OAFVMmH4DITj6StslN280CDWOyNYVmltbJ+NUzPn1VB8HXqRztH5LfLahEnH2KW3/yWdn
TKiCafy8opIcvLk9iQQ2N6X5gb/uFLxRZPORyuRv0BPQA4Rpb20en2Mn1mDtqJdFIGzuKwX6+/2aVdW8
X3VWw1sO4DxxyiAWcLC2clAcS3pcmF7rPX/h2fX5AsNKZV8VZ7fV58cG4LNNiRNc+3Jt1wGEGbsmzUe2
D1QOJqFIJGfvj0w7hOlozcFeBAHnkc23tfkjSFj0AKxNOsLZzYmzWH0Zi1m/+jxhOrDgLReOWb31gDh6
JnHQwLS9haOhj0uvs86kt0AzanA2bryr9cWZr0vbr43JieLQIDRAMYG9aLfzpwBFJ9V4DBQlFCf87oNb
18aLFMUN9ty8XbdVGBsA0/eJE9k8gVxATYg5vZI4KMvFHNMOcEaVoW0/rrjObtb2AmMC2I2GorlAZHqs
EmU7pe0JaOWJF539RNsrqADSVh9GS9VcYEnt2JurhOmvUuvvRS809QDU5eEgLiiaPwmRzdbiPjHUOBad
uUtzRhDZXl8miuCNcI0a+RyOdqGx6HUauNAUN+P5XexHNs9pXiNCx1zcnd5wfvXM9CC2rhbIUXHm8+JE
eLMFfFxM0TvE0bPooupSeih6c+eol2WivJbvGdmNJQwkHALUeitGeVvaKUy/a2e10UMR6vnsar3+uAG9
Hp0QSTX8W2Yejky39Bxdir9tmn8Ck/A/N4AkP8Mw5xAAAAAASUVORK5CYII=
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAABAlJREFUWEft
V91vFFUU3wiC6AMBY0xIgb13ltJAjBoJMSF+BYkPIgkJH/ogxo8QP6ha1MDandn7qAkxmsiDoYkhJoUA
LyQYQwj1BfkPeFAeBLozszWh0PJR0XbX3296ZvbOfnVteewvOdmZc37nzJk7555zNzOP/4uqyTxQctWT
ZaO3Bq56L3D1+77n7C6Z7FPVvc88KLT7D991NvlF/WPg6b8g1RYyFhb1scCo58Vt7ghNbh0Cn6l7UCcy
RF8JMztwaRHothX0Hyz5Ofx+UvL05tDNrS8Z3Y1P8Zzvqn2w/QzbvxZ/wnf1OxIuE+Zzj3WcVOg5X1iB
KkFR/zRSyDlibonQZLNI5KTlS8kP93Utwe8IpOIb/bLQm8P39BskivN44DnbxdQxUDOvw3dMYlQR08TX
kD6hNWK4oNeA8LcQbwVGbxBTCpfM+kVXD65aRuG1qFMI3ewLiDEhseIXap8AjHHBVXxPvSbqBqA+eoXX
MiCSXwXbKYvXlp9hMcUkbidRJwg81Y+l/J7fE1vycBKwqI5e7s0txvW35AidL/NHwklLiwSKzhEhTAX9
arWoIwSuU7ACXIPcs+5Z+VeTe1d9Oe2jzya6tDQmwC4Gww0SsHXOizoB3vI7K0BbwQ5y6VPdmVnAXTFi
urUtowf00iiojcBke5IgrvOxqBP8abIPwdauC8ZyZVYt2TdqWxwExbdF1Oj9Ly7kG4WeOg6bXckXOBM4
A3D9m6Xn5xikD30lzMxA8bwpASrXzMoVosbKrHhY9Cnhw4WSkSQaOPQVSoTQ1R9C/03588cfEVUN053K
OYTl3yuqCC0TwEOFgqaTe7oZx07A73dWxnqszluinhlRIbnOntDTX8F5MgmOZWcSfDg+z0VLf48FyxlA
XwmDFc6+EnPa9ZeWGDZdy+E8GgdpI8P1S09gS34aczjARF0Dt0b9dikXVqv4LTiMrIfMJANRUAvoDb+K
7XrT4oShTwhpQTOhPRq3tV3AphP3eAqbEpsTryvkRkEFfBHopyJ7Uf0g6jRgbJ6Ap38XCka0+oi1wJ6A
Vv11zGFbjnSwkSP0BCjuEwkXJytRpwFjswROcaAIJQU87IOYx8Ek6gZwlMc8FPNpUTcCBDuBeKknOFKF
kkJH49iojYhxR2LdbXugASFJoO7wMMYDitA6Bj7FTvjekhhToat2iak50BxeIhES8I3wmxfnacExi4NF
6C3BA010Mq6tYgXJfCbm9vALam0p3/Oo3PJo9jYC3JVAlElsp1+iHYGjN/k8mHJ2IMH9nKLg2IfScXyG
HRJudpBj+ZAVtCNhwTFBCTN3yGlpEHLTflCdlCEDZZN9VtzuPzjrOQlZVFh2/C1T72JLvlp29RP82ya0
eXSITOY/N4AkP6QQbUkAAAAASUVORK5CYII=
</value>
</data>
<data name="btCapture.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAkVJREFUWEft
ls+rjGEUxwcpCz8WJPnxD7j3rqRYSGRBLK4kkWyJLORPEJENdyULV8pm/Aeo2czined8zmtmMSiKxSBZ
+32vV+d6JzNnnhnvcEfJPfWpt/M9z3O+8z7v88xTKi3EvxKVSmUZMKWqgf5RA64CS/34Pw5gGsgKMuXH
/zLK5fISERkXkT0e4FSkySBmVPW4nydn3Hp1NU/TdDvwMjLRqHihqtvmmler1RXA60jRqGk1m83lpfwV
e9H4FsnNK9a7ZGsVEc7Zl6yqd7yWM5vvhrtG/jwbqRuI9Y4aUNUttjwictJpM8C1EMI602u12mrDni0H
XM9reprF6GsAeKyqV4B3Hbn3qroXWAVcAl51aC0RuZgkyUoR2We1kTl7GGSgB1U9EkLYBDz1WgdPkiTZ
CByLaD0MY+B+lmWL87X2miexWhF5GNG6KGxARA4ZPt8PVT0IHPZ5T2EDwBrgdiQfRURuNRqNtT7vKWrg
a5Zli4q80jaq+sDG2FivubpCBjI7sYB7Pj+Acn7C+nwXhQ2o6g7grM/3Q1XPhBB2+rxnGAM3bI8Db70W
4U3+629GND9vMQPAlxDCmKruBj5G9DYfgF3AhI2J6F0MY8B4lqbp+hDCVhGRiF6zI9xqgOcRvYdhDRgt
YH9+9o+JyFEjTdPNllPVA+6IHsjvGGjzCLggIicMewbqkbqBzBkAJr3wF5ks1ev1DcDniDhqPtn3Mnct
s307zP/4PGAn5Omft9If127bOueByyPGekx0NV+I/zq+A9PgZ1seSUA0AAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAkNJREFUWEft
lU1LVFEYx6+F0KKXhRKR9QVSVxLoQqJoUdjCiAgl3CpKi/AjiGG0KVfRIiVoM34DC2Yzi7nz1sxiKkjQ
xahEazVfp98znYnT47nTmRgHIg/8OM88/3PO87/n3HsmOG7/TIvH46cymcxsNptN0Ue1EJ5Bq5nWuMai
c1D2ZNZM82+xWOxkOp3ugpsaFhxTBf7EHjv10LUWdEktU/Zny+VyfUxaUYscJcsY7K0UTyQSZ0isqQHN
oFQsFk8Hsi0OUThw5BqK1A7krBzCY/pWtDdaM+ybr+GtYOJ9o3kjtZ0GyPXI8WBkVGl78DyVSl0QPQzD
NkFiyaG9MGPsOZFEGoCP5J/Sf7NyG+Ru0Z+DJ7Bq8kIJs9PJZPIs/W1+b1haJLUMHIJxD3jKy8SftWbx
CROX6IdV3kk9BhbL5fIJxspZu3SbpIxlJ947tN/wNsBi9wSX5oI179Lf13mNtwFoh3mViwSzrwuFwnmX
ZuNrYJctbfHZ0iqs+U7mEO9qzcZ7B+TGol/Q+RrEzA3r0n7hbYAx/fSPdD4Kxk/wxVxzaTb1GHgp3zjx
V605WDdP/0rlD+FtAHZ4ok7G3iDeUprNJlyHbtgxuUjqMSB84W/7Ikau8kKmHXrIWj0yhnhJaU7qNSCU
YMDc/Z34GBIoekVyrHUH3b6ia/I3Bqp8gCmKjwgSQ95o3lQMEAxqoYkMBvl8voNgWwnN4Lu8L3J0cgwT
JLz/xxuA3JDjleLVRkI+nUmYOWKkRrcpe9z++xYEPwDT4GdbjzYebAAAAABJRU5ErkJggg==
</value>
</data>
<data name="btShowManual.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAPJJREFUWEft
lj0KwkAQhVNY6n0Uj6BtagvxEFqJvYWnEL1EmiDKvEmXG9gK3kDZsIZk3Jj4s7iEffBB2Pl5r9iEBIGX
lyti5j6A/Qt2ADYAJnEc9+S8OlM13aN65XyO8pLzAYAQwK0hVyKaPmaZeabODH1VhGX39wNkENESwEqe
N+A3Ab7AeoC13le103qA3MBQK9VztS1AHS0PQESHwofnqW49gAt3wAfwAf4bwIXXsA4HAxDR0NBohSRJ
BtI/iKKoA+Akmy1wVF7SP1Oapl1mXjDzVv5IGrgUlqpnWS+hd86Vh/T9SMw8BnDWjGTdy6up7uxqphcq
UCfvAAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAP5JREFUWEft
lj0KwkAQhVNY6n0Uj6BtagvxEFqJvYWnEL1EmiBKfrrcIK3gDfSNTDZk2WQj65IQ9sFHZObtzCMkQc/J
qTdKkmQax/G1gQs4gVUYhhM+JkQ16rGHvKoZX2gXHyuFhg/eLXlFUbTmoxR+QzXJ04TPR0tRUTJpQYg9
rge53oL/BDDAeoAjoHl1M60HEAsUvUpfiIqSyYTOA+gYeAC8njdciw+PyjP8Z8AFcAG6DdCH11BHDwPg
ts0VRiukaTrjtaWCIBih+ZDNFrjTLl5bVZZlY/y/24EzjMVDVMcTFEPpt8oj4Jlb2sHrzISBSwzMmQWX
nZx+lOd9AOxqphdZ7gKgAAAAAElFTkSuQmCC
</value>
</data>
<data name="btTopMenu_Volume.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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==
</value>
</data>
<data name="arLabel5.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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=
</value>
</data>
<data name="btClose.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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==
</value>
</data>
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<metadata name="cmDebug.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@@ -256,11 +256,8 @@ namespace Project.StateMachine
if (handler != null)
{
var args = new StepChangeEventArgs(OldStep, newstep_);
System.Threading.ThreadPool.QueueUserWorkItem(_ =>
{
try { handler(this, args); }
catch { /* 이벤트 핸들러 예외 무시 */ }
});
}
}
else
@@ -378,11 +375,8 @@ namespace Project.StateMachine
if (handler != null)
{
var args = new StepChangeEventArgs(ostep, _step);
System.Threading.ThreadPool.QueueUserWorkItem(_ =>
{
try { handler(this, args); }
catch { /* 이벤트 핸들러 예외 무시 */ }
});
}
} //171214

View File

@@ -107,7 +107,7 @@ namespace arDev
public NarumiSerialComm()
{
_device = new System.IO.Ports.SerialPort();
this.BaudRate = 9600;
this.BaudRate = 57600;
ScanInterval = 10;
// _device.DataReceived += barcode_DataReceived; // Removed event handler
_device.ErrorReceived += this.barcode_ErrorReceived;

View File

@@ -114,7 +114,7 @@ namespace COMM
WAIT_CHARGEACK,
//agv area start ( 64 ~ 95)
DISABLE_AUTOCONN_XBEE,
//area start (96~127)

Submodule Cs_HMI/SubProject/CommUtil updated: ed05439991...b070b711f0

View File

@@ -29,10 +29,33 @@ namespace Test_ACS
this.rbAGV2 = new System.Windows.Forms.RadioButton();
this.rbAGV1 = new System.Windows.Forms.RadioButton();
this.grpCommands = new System.Windows.Forms.GroupBox();
this.button8 = new System.Windows.Forms.Button();
this.button10 = new System.Windows.Forms.Button();
this.button7 = new System.Windows.Forms.Button();
this.button9 = new System.Windows.Forms.Button();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.radSpdL = new System.Windows.Forms.RadioButton();
this.radSpdM = new System.Windows.Forms.RadioButton();
this.radSpdH = new System.Windows.Forms.RadioButton();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.panel3 = new System.Windows.Forms.Panel();
this.radLidarOff = new System.Windows.Forms.RadioButton();
this.radLidarOn = new System.Windows.Forms.RadioButton();
this.button6 = new System.Windows.Forms.Button();
this.panel2 = new System.Windows.Forms.Panel();
this.radRight = new System.Windows.Forms.RadioButton();
this.radLeft = new System.Windows.Forms.RadioButton();
this.radStraight = new System.Windows.Forms.RadioButton();
this.panel1 = new System.Windows.Forms.Panel();
this.radForw = new System.Windows.Forms.RadioButton();
this.radBack = new System.Windows.Forms.RadioButton();
this.btAMove = new System.Windows.Forms.Button();
this.grpManual = new System.Windows.Forms.GroupBox();
this.chkMarkStop = new System.Windows.Forms.CheckBox();
this.button5 = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.btnMarkStop = new System.Windows.Forms.Button();
this.btnReset = new System.Windows.Forms.Button();
this.btnStop = new System.Windows.Forms.Button();
@@ -76,26 +99,15 @@ 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.radSpdL = new System.Windows.Forms.RadioButton();
this.radSpdM = new System.Windows.Forms.RadioButton();
this.radSpdH = new System.Windows.Forms.RadioButton();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button3 = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.button5 = new System.Windows.Forms.Button();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.panel1 = new System.Windows.Forms.Panel();
this.radBack = new System.Windows.Forms.RadioButton();
this.radForw = new System.Windows.Forms.RadioButton();
this.panel2 = new System.Windows.Forms.Panel();
this.radLeft = new System.Windows.Forms.RadioButton();
this.radStraight = new System.Windows.Forms.RadioButton();
this.radRight = new System.Windows.Forms.RadioButton();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.grpConnection.SuspendLayout();
this.grpAGV.SuspendLayout();
this.grpCommands.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox1.SuspendLayout();
this.panel3.SuspendLayout();
this.panel2.SuspendLayout();
this.panel1.SuspendLayout();
this.grpManual.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.txtRFID)).BeginInit();
this.grpLift.SuspendLayout();
@@ -106,9 +118,7 @@ namespace Test_ACS
this.tabInfo.SuspendLayout();
this.tabPage1.SuspendLayout();
this.grpAGVStatus.SuspendLayout();
this.groupBox2.SuspendLayout();
this.panel1.SuspendLayout();
this.panel2.SuspendLayout();
this.tableLayoutPanel2.SuspendLayout();
this.SuspendLayout();
//
// grpConnection
@@ -121,7 +131,7 @@ namespace Test_ACS
this.grpConnection.Controls.Add(this.lblPort);
this.grpConnection.Location = new System.Drawing.Point(12, 12);
this.grpConnection.Name = "grpConnection";
this.grpConnection.Size = new System.Drawing.Size(260, 120);
this.grpConnection.Size = new System.Drawing.Size(260, 82);
this.grpConnection.TabIndex = 0;
this.grpConnection.TabStop = false;
this.grpConnection.Text = "연결 설정";
@@ -138,9 +148,9 @@ namespace Test_ACS
//
// btnConnect
//
this.btnConnect.Location = new System.Drawing.Point(15, 81);
this.btnConnect.Location = new System.Drawing.Point(179, 53);
this.btnConnect.Name = "btnConnect";
this.btnConnect.Size = new System.Drawing.Size(234, 30);
this.btnConnect.Size = new System.Drawing.Size(70, 21);
this.btnConnect.TabIndex = 4;
this.btnConnect.Text = "연결";
this.btnConnect.UseVisualStyleBackColor = true;
@@ -150,7 +160,7 @@ namespace Test_ACS
//
this.txtBaudRate.Location = new System.Drawing.Point(85, 53);
this.txtBaudRate.Name = "txtBaudRate";
this.txtBaudRate.Size = new System.Drawing.Size(164, 21);
this.txtBaudRate.Size = new System.Drawing.Size(88, 21);
this.txtBaudRate.TabIndex = 3;
this.txtBaudRate.Text = "9600";
this.txtBaudRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
@@ -190,7 +200,7 @@ namespace Test_ACS
this.grpAGV.Controls.Add(this.rbAGV1);
this.grpAGV.Location = new System.Drawing.Point(278, 12);
this.grpAGV.Name = "grpAGV";
this.grpAGV.Size = new System.Drawing.Size(200, 120);
this.grpAGV.Size = new System.Drawing.Size(167, 82);
this.grpAGV.TabIndex = 1;
this.grpAGV.TabStop = false;
this.grpAGV.Text = "AGV 선택";
@@ -198,7 +208,7 @@ namespace Test_ACS
// rbAGV2
//
this.rbAGV2.AutoSize = true;
this.rbAGV2.Location = new System.Drawing.Point(20, 60);
this.rbAGV2.Location = new System.Drawing.Point(20, 51);
this.rbAGV2.Name = "rbAGV2";
this.rbAGV2.Size = new System.Drawing.Size(95, 16);
this.rbAGV2.TabIndex = 1;
@@ -210,7 +220,7 @@ namespace Test_ACS
//
this.rbAGV1.AutoSize = true;
this.rbAGV1.Checked = true;
this.rbAGV1.Location = new System.Drawing.Point(20, 30);
this.rbAGV1.Location = new System.Drawing.Point(20, 21);
this.rbAGV1.Name = "rbAGV1";
this.rbAGV1.Size = new System.Drawing.Size(95, 16);
this.rbAGV1.TabIndex = 0;
@@ -221,11 +231,13 @@ namespace Test_ACS
//
// grpCommands
//
this.grpCommands.Controls.Add(this.button8);
this.grpCommands.Controls.Add(this.button10);
this.grpCommands.Controls.Add(this.button7);
this.grpCommands.Controls.Add(this.button9);
this.grpCommands.Controls.Add(this.groupBox2);
this.grpCommands.Controls.Add(this.groupBox1);
this.grpCommands.Controls.Add(this.grpManual);
this.grpCommands.Controls.Add(this.chkMarkStop);
this.grpCommands.Controls.Add(this.btnMarkStop);
this.grpCommands.Controls.Add(this.btnReset);
this.grpCommands.Controls.Add(this.btnStop);
this.grpCommands.Controls.Add(this.btnGotoAlias);
@@ -235,30 +247,238 @@ namespace Test_ACS
this.grpCommands.Controls.Add(this.lblAlias);
this.grpCommands.Controls.Add(this.txtRFID);
this.grpCommands.Controls.Add(this.lblRFID);
this.grpCommands.Location = new System.Drawing.Point(12, 138);
this.grpCommands.Location = new System.Drawing.Point(12, 98);
this.grpCommands.Name = "grpCommands";
this.grpCommands.Size = new System.Drawing.Size(466, 312);
this.grpCommands.Size = new System.Drawing.Size(433, 307);
this.grpCommands.TabIndex = 2;
this.grpCommands.TabStop = false;
this.grpCommands.Text = "ACS 명령";
//
// button8
//
this.button8.Location = new System.Drawing.Point(102, 264);
this.button8.Name = "button8";
this.button8.Size = new System.Drawing.Size(93, 35);
this.button8.TabIndex = 14;
this.button8.Text = "RT180";
this.button8.UseVisualStyleBackColor = true;
this.button8.Click += new System.EventHandler(this.button8_Click);
//
// button10
//
this.button10.Location = new System.Drawing.Point(102, 229);
this.button10.Name = "button10";
this.button10.Size = new System.Drawing.Size(93, 35);
this.button10.TabIndex = 16;
this.button10.Text = "R-turn";
this.button10.UseVisualStyleBackColor = true;
this.button10.Click += new System.EventHandler(this.button10_Click);
//
// button7
//
this.button7.Location = new System.Drawing.Point(15, 264);
this.button7.Name = "button7";
this.button7.Size = new System.Drawing.Size(85, 35);
this.button7.TabIndex = 13;
this.button7.Text = "LT180";
this.button7.UseVisualStyleBackColor = true;
this.button7.Click += new System.EventHandler(this.button7_Click);
//
// button9
//
this.button9.Location = new System.Drawing.Point(15, 228);
this.button9.Name = "button9";
this.button9.Size = new System.Drawing.Size(85, 35);
this.button9.TabIndex = 15;
this.button9.Text = "L-Turn";
this.button9.UseVisualStyleBackColor = true;
this.button9.Click += new System.EventHandler(this.button9_Click);
//
// groupBox2
//
this.groupBox2.Controls.Add(this.radSpdL);
this.groupBox2.Controls.Add(this.radSpdM);
this.groupBox2.Controls.Add(this.radSpdH);
this.groupBox2.Location = new System.Drawing.Point(146, 117);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(49, 106);
this.groupBox2.TabIndex = 12;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "속도";
this.groupBox2.Enter += new System.EventHandler(this.groupBox2_Enter);
//
// radSpdL
//
this.radSpdL.AutoSize = true;
this.radSpdL.Location = new System.Drawing.Point(9, 20);
this.radSpdL.Name = "radSpdL";
this.radSpdL.Size = new System.Drawing.Size(30, 16);
this.radSpdL.TabIndex = 7;
this.radSpdL.TabStop = true;
this.radSpdL.Tag = "0";
this.radSpdL.Text = "L";
this.radSpdL.UseVisualStyleBackColor = true;
//
// radSpdM
//
this.radSpdM.AutoSize = true;
this.radSpdM.Location = new System.Drawing.Point(9, 47);
this.radSpdM.Name = "radSpdM";
this.radSpdM.Size = new System.Drawing.Size(34, 16);
this.radSpdM.TabIndex = 7;
this.radSpdM.TabStop = true;
this.radSpdM.Tag = "1";
this.radSpdM.Text = "M";
this.radSpdM.UseVisualStyleBackColor = true;
//
// radSpdH
//
this.radSpdH.AutoSize = true;
this.radSpdH.Location = new System.Drawing.Point(9, 74);
this.radSpdH.Name = "radSpdH";
this.radSpdH.Size = new System.Drawing.Size(31, 16);
this.radSpdH.TabIndex = 7;
this.radSpdH.TabStop = true;
this.radSpdH.Tag = "2";
this.radSpdH.Text = "H";
this.radSpdH.UseVisualStyleBackColor = true;
//
// groupBox1
//
this.groupBox1.Controls.Add(this.panel3);
this.groupBox1.Controls.Add(this.button6);
this.groupBox1.Controls.Add(this.panel2);
this.groupBox1.Controls.Add(this.panel1);
this.groupBox1.Controls.Add(this.btAMove);
this.groupBox1.Location = new System.Drawing.Point(201, 153);
this.groupBox1.Controls.Add(this.btnMarkStop);
this.groupBox1.Location = new System.Drawing.Point(201, 117);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(244, 106);
this.groupBox1.Size = new System.Drawing.Size(225, 183);
this.groupBox1.TabIndex = 8;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "자동 이동";
//
// panel3
//
this.panel3.Controls.Add(this.radLidarOff);
this.panel3.Controls.Add(this.radLidarOn);
this.panel3.Location = new System.Drawing.Point(10, 98);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(139, 33);
this.panel3.TabIndex = 12;
//
// radLidarOff
//
this.radLidarOff.AutoSize = true;
this.radLidarOff.Location = new System.Drawing.Point(60, 9);
this.radLidarOff.Name = "radLidarOff";
this.radLidarOff.Size = new System.Drawing.Size(38, 16);
this.radLidarOff.TabIndex = 0;
this.radLidarOff.Text = "Off";
this.radLidarOff.UseVisualStyleBackColor = true;
//
// radLidarOn
//
this.radLidarOn.AutoSize = true;
this.radLidarOn.Checked = true;
this.radLidarOn.Location = new System.Drawing.Point(12, 9);
this.radLidarOn.Name = "radLidarOn";
this.radLidarOn.Size = new System.Drawing.Size(39, 16);
this.radLidarOn.TabIndex = 0;
this.radLidarOn.TabStop = true;
this.radLidarOn.Tag = "On";
this.radLidarOn.Text = "On";
this.radLidarOn.UseVisualStyleBackColor = true;
//
// button6
//
this.button6.Location = new System.Drawing.Point(155, 94);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(65, 83);
this.button6.TabIndex = 12;
this.button6.Text = "정지";
this.button6.UseVisualStyleBackColor = true;
this.button6.Click += new System.EventHandler(this.button6_Click);
//
// panel2
//
this.panel2.Controls.Add(this.radRight);
this.panel2.Controls.Add(this.radLeft);
this.panel2.Controls.Add(this.radStraight);
this.panel2.Location = new System.Drawing.Point(10, 59);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(139, 33);
this.panel2.TabIndex = 11;
//
// radRight
//
this.radRight.AutoSize = true;
this.radRight.Location = new System.Drawing.Point(93, 9);
this.radRight.Name = "radRight";
this.radRight.Size = new System.Drawing.Size(31, 16);
this.radRight.TabIndex = 1;
this.radRight.TabStop = true;
this.radRight.Text = "R";
this.radRight.UseVisualStyleBackColor = true;
//
// radLeft
//
this.radLeft.AutoSize = true;
this.radLeft.Location = new System.Drawing.Point(51, 9);
this.radLeft.Name = "radLeft";
this.radLeft.Size = new System.Drawing.Size(30, 16);
this.radLeft.TabIndex = 0;
this.radLeft.TabStop = true;
this.radLeft.Text = "L";
this.radLeft.UseVisualStyleBackColor = true;
//
// radStraight
//
this.radStraight.AutoSize = true;
this.radStraight.Location = new System.Drawing.Point(12, 9);
this.radStraight.Name = "radStraight";
this.radStraight.Size = new System.Drawing.Size(31, 16);
this.radStraight.TabIndex = 0;
this.radStraight.TabStop = true;
this.radStraight.Text = "S";
this.radStraight.UseVisualStyleBackColor = true;
//
// panel1
//
this.panel1.Controls.Add(this.radForw);
this.panel1.Controls.Add(this.radBack);
this.panel1.Location = new System.Drawing.Point(10, 20);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(139, 33);
this.panel1.TabIndex = 10;
//
// radForw
//
this.radForw.AutoSize = true;
this.radForw.Location = new System.Drawing.Point(51, 9);
this.radForw.Name = "radForw";
this.radForw.Size = new System.Drawing.Size(30, 16);
this.radForw.TabIndex = 0;
this.radForw.TabStop = true;
this.radForw.Text = "F";
this.radForw.UseVisualStyleBackColor = true;
//
// radBack
//
this.radBack.AutoSize = true;
this.radBack.Location = new System.Drawing.Point(12, 9);
this.radBack.Name = "radBack";
this.radBack.Size = new System.Drawing.Size(31, 16);
this.radBack.TabIndex = 0;
this.radBack.TabStop = true;
this.radBack.Text = "B";
this.radBack.UseVisualStyleBackColor = true;
//
// btAMove
//
this.btAMove.Location = new System.Drawing.Point(155, 16);
this.btAMove.Name = "btAMove";
this.btAMove.Size = new System.Drawing.Size(81, 76);
this.btAMove.Size = new System.Drawing.Size(65, 76);
this.btAMove.TabIndex = 6;
this.btAMove.Text = "실행";
this.btAMove.UseVisualStyleBackColor = true;
@@ -271,30 +491,75 @@ namespace Test_ACS
this.grpManual.Controls.Add(this.button3);
this.grpManual.Controls.Add(this.button2);
this.grpManual.Controls.Add(this.button1);
this.grpManual.Location = new System.Drawing.Point(15, 153);
this.grpManual.Location = new System.Drawing.Point(15, 117);
this.grpManual.Name = "grpManual";
this.grpManual.Size = new System.Drawing.Size(125, 106);
this.grpManual.TabIndex = 8;
this.grpManual.TabStop = false;
this.grpManual.Text = "수동 이동";
//
// chkMarkStop
// button5
//
this.chkMarkStop.AutoSize = true;
this.chkMarkStop.Location = new System.Drawing.Point(193, 125);
this.chkMarkStop.Name = "chkMarkStop";
this.chkMarkStop.Size = new System.Drawing.Size(76, 16);
this.chkMarkStop.TabIndex = 7;
this.chkMarkStop.Text = "정지 설정";
this.chkMarkStop.UseVisualStyleBackColor = true;
this.button5.Location = new System.Drawing.Point(43, 72);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(34, 27);
this.button5.TabIndex = 12;
this.button5.Tag = "1";
this.button5.Text = "F";
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.btnManual_Click);
//
// button4
//
this.button4.Location = new System.Drawing.Point(81, 44);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(34, 27);
this.button4.TabIndex = 11;
this.button4.Tag = "3";
this.button4.Text = "R";
this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.btnManual_Click);
//
// button3
//
this.button3.Location = new System.Drawing.Point(8, 44);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(34, 27);
this.button3.TabIndex = 10;
this.button3.Tag = "2";
this.button3.Text = "L";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.btnManual_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(43, 44);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(34, 27);
this.button2.TabIndex = 9;
this.button2.Tag = "S";
this.button2.Text = "S";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button1
//
this.button1.Location = new System.Drawing.Point(43, 14);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(34, 27);
this.button1.TabIndex = 8;
this.button1.Tag = "0";
this.button1.Text = "B";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.btnManual_Click);
//
// btnMarkStop
//
this.btnMarkStop.Location = new System.Drawing.Point(10, 117);
this.btnMarkStop.Location = new System.Drawing.Point(10, 137);
this.btnMarkStop.Name = "btnMarkStop";
this.btnMarkStop.Size = new System.Drawing.Size(177, 30);
this.btnMarkStop.Size = new System.Drawing.Size(139, 40);
this.btnMarkStop.TabIndex = 6;
this.btnMarkStop.Text = "마크센서 정지";
this.btnMarkStop.Text = "마크 정지";
this.btnMarkStop.UseVisualStyleBackColor = true;
this.btnMarkStop.Click += new System.EventHandler(this.btnMarkStop_Click);
//
@@ -399,21 +664,20 @@ namespace Test_ACS
//
// grpLift
//
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(298, 456);
this.grpLift.Controls.Add(this.tableLayoutPanel2);
this.grpLift.Location = new System.Drawing.Point(12, 535);
this.grpLift.Name = "grpLift";
this.grpLift.Size = new System.Drawing.Size(180, 120);
this.grpLift.Size = new System.Drawing.Size(433, 79);
this.grpLift.TabIndex = 9;
this.grpLift.TabStop = false;
this.grpLift.Text = "리프트 제어";
//
// btnLiftStop
//
this.btnLiftStop.Location = new System.Drawing.Point(121, 20);
this.btnLiftStop.Dock = System.Windows.Forms.DockStyle.Fill;
this.btnLiftStop.Location = new System.Drawing.Point(287, 3);
this.btnLiftStop.Name = "btnLiftStop";
this.btnLiftStop.Size = new System.Drawing.Size(48, 90);
this.btnLiftStop.Size = new System.Drawing.Size(137, 53);
this.btnLiftStop.TabIndex = 2;
this.btnLiftStop.Text = "정지";
this.btnLiftStop.UseVisualStyleBackColor = true;
@@ -421,9 +685,10 @@ namespace Test_ACS
//
// btnLiftDown
//
this.btnLiftDown.Location = new System.Drawing.Point(65, 20);
this.btnLiftDown.Dock = System.Windows.Forms.DockStyle.Fill;
this.btnLiftDown.Location = new System.Drawing.Point(145, 3);
this.btnLiftDown.Name = "btnLiftDown";
this.btnLiftDown.Size = new System.Drawing.Size(48, 90);
this.btnLiftDown.Size = new System.Drawing.Size(136, 53);
this.btnLiftDown.TabIndex = 1;
this.btnLiftDown.Text = "하강";
this.btnLiftDown.UseVisualStyleBackColor = true;
@@ -431,9 +696,10 @@ namespace Test_ACS
//
// btnLiftUp
//
this.btnLiftUp.Location = new System.Drawing.Point(9, 20);
this.btnLiftUp.Dock = System.Windows.Forms.DockStyle.Fill;
this.btnLiftUp.Location = new System.Drawing.Point(3, 3);
this.btnLiftUp.Name = "btnLiftUp";
this.btnLiftUp.Size = new System.Drawing.Size(48, 90);
this.btnLiftUp.Size = new System.Drawing.Size(136, 53);
this.btnLiftUp.TabIndex = 0;
this.btnLiftUp.Text = "상승";
this.btnLiftUp.UseVisualStyleBackColor = true;
@@ -451,9 +717,9 @@ namespace Test_ACS
// grpLogs
//
this.grpLogs.Controls.Add(this.tabLogs);
this.grpLogs.Location = new System.Drawing.Point(484, 12);
this.grpLogs.Location = new System.Drawing.Point(451, 12);
this.grpLogs.Name = "grpLogs";
this.grpLogs.Size = new System.Drawing.Size(520, 564);
this.grpLogs.Size = new System.Drawing.Size(520, 602);
this.grpLogs.TabIndex = 3;
this.grpLogs.TabStop = false;
this.grpLogs.Text = "로그";
@@ -467,7 +733,7 @@ namespace Test_ACS
this.tabLogs.Location = new System.Drawing.Point(3, 17);
this.tabLogs.Name = "tabLogs";
this.tabLogs.SelectedIndex = 0;
this.tabLogs.Size = new System.Drawing.Size(514, 544);
this.tabLogs.Size = new System.Drawing.Size(514, 582);
this.tabLogs.TabIndex = 0;
//
// tabRX
@@ -476,7 +742,7 @@ namespace Test_ACS
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.Size = new System.Drawing.Size(506, 556);
this.tabRX.TabIndex = 1;
this.tabRX.Text = "패킷";
this.tabRX.UseVisualStyleBackColor = true;
@@ -497,19 +763,19 @@ namespace Test_ACS
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.Size = new System.Drawing.Size(500, 550);
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, 279);
this.txtRxLog.Location = new System.Drawing.Point(3, 298);
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(494, 230);
this.txtRxLog.Size = new System.Drawing.Size(494, 249);
this.txtRxLog.TabIndex = 0;
this.txtRxLog.Text = "1";
//
@@ -522,7 +788,7 @@ namespace Test_ACS
this.txtTxLog.Name = "txtTxLog";
this.txtTxLog.ReadOnly = true;
this.txtTxLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.txtTxLog.Size = new System.Drawing.Size(494, 230);
this.txtTxLog.Size = new System.Drawing.Size(494, 249);
this.txtTxLog.TabIndex = 0;
//
// label1
@@ -538,7 +804,7 @@ namespace Test_ACS
// label2
//
this.label2.Dock = System.Windows.Forms.DockStyle.Fill;
this.label2.Location = new System.Drawing.Point(3, 256);
this.label2.Location = new System.Drawing.Point(3, 275);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(494, 20);
this.label2.TabIndex = 1;
@@ -607,9 +873,9 @@ namespace Test_ACS
this.grpAGVStatus.Controls.Add(this.lblRunSt);
this.grpAGVStatus.Controls.Add(this.lblModeValue);
this.grpAGVStatus.Controls.Add(this.lblMode);
this.grpAGVStatus.Location = new System.Drawing.Point(12, 456);
this.grpAGVStatus.Location = new System.Drawing.Point(12, 409);
this.grpAGVStatus.Name = "grpAGVStatus";
this.grpAGVStatus.Size = new System.Drawing.Size(280, 120);
this.grpAGVStatus.Size = new System.Drawing.Size(433, 120);
this.grpAGVStatus.TabIndex = 4;
this.grpAGVStatus.TabStop = false;
this.grpAGVStatus.Text = "AGV 상태";
@@ -757,189 +1023,28 @@ namespace Test_ACS
this.lblMode.TabIndex = 0;
this.lblMode.Text = "모드:";
//
// radSpdL
// tableLayoutPanel2
//
this.radSpdL.AutoSize = true;
this.radSpdL.Location = new System.Drawing.Point(9, 20);
this.radSpdL.Name = "radSpdL";
this.radSpdL.Size = new System.Drawing.Size(30, 16);
this.radSpdL.TabIndex = 7;
this.radSpdL.TabStop = true;
this.radSpdL.Tag = "0";
this.radSpdL.Text = "L";
this.radSpdL.UseVisualStyleBackColor = true;
//
// radSpdM
//
this.radSpdM.AutoSize = true;
this.radSpdM.Location = new System.Drawing.Point(9, 47);
this.radSpdM.Name = "radSpdM";
this.radSpdM.Size = new System.Drawing.Size(34, 16);
this.radSpdM.TabIndex = 7;
this.radSpdM.TabStop = true;
this.radSpdM.Tag = "1";
this.radSpdM.Text = "M";
this.radSpdM.UseVisualStyleBackColor = true;
//
// radSpdH
//
this.radSpdH.AutoSize = true;
this.radSpdH.Location = new System.Drawing.Point(9, 74);
this.radSpdH.Name = "radSpdH";
this.radSpdH.Size = new System.Drawing.Size(31, 16);
this.radSpdH.TabIndex = 7;
this.radSpdH.TabStop = true;
this.radSpdH.Tag = "2";
this.radSpdH.Text = "H";
this.radSpdH.UseVisualStyleBackColor = true;
//
// button1
//
this.button1.Location = new System.Drawing.Point(43, 14);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(34, 27);
this.button1.TabIndex = 8;
this.button1.Tag = "0";
this.button1.Text = "B";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.btnManual_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(43, 44);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(34, 27);
this.button2.TabIndex = 9;
this.button2.Tag = "S";
this.button2.Text = "S";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button3
//
this.button3.Location = new System.Drawing.Point(8, 44);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(34, 27);
this.button3.TabIndex = 10;
this.button3.Tag = "2";
this.button3.Text = "L";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.btnManual_Click);
//
// button4
//
this.button4.Location = new System.Drawing.Point(81, 44);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(34, 27);
this.button4.TabIndex = 11;
this.button4.Tag = "3";
this.button4.Text = "R";
this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.btnManual_Click);
//
// button5
//
this.button5.Location = new System.Drawing.Point(43, 72);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(34, 27);
this.button5.TabIndex = 12;
this.button5.Tag = "1";
this.button5.Text = "F";
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.btnManual_Click);
//
// groupBox2
//
this.groupBox2.Controls.Add(this.radSpdL);
this.groupBox2.Controls.Add(this.radSpdM);
this.groupBox2.Controls.Add(this.radSpdH);
this.groupBox2.Location = new System.Drawing.Point(146, 153);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(49, 106);
this.groupBox2.TabIndex = 12;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "속도";
this.groupBox2.Enter += new System.EventHandler(this.groupBox2_Enter);
//
// panel1
//
this.panel1.Controls.Add(this.radForw);
this.panel1.Controls.Add(this.radBack);
this.panel1.Location = new System.Drawing.Point(10, 20);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(139, 33);
this.panel1.TabIndex = 10;
//
// radBack
//
this.radBack.AutoSize = true;
this.radBack.Location = new System.Drawing.Point(12, 9);
this.radBack.Name = "radBack";
this.radBack.Size = new System.Drawing.Size(31, 16);
this.radBack.TabIndex = 0;
this.radBack.TabStop = true;
this.radBack.Text = "B";
this.radBack.UseVisualStyleBackColor = true;
//
// radForw
//
this.radForw.AutoSize = true;
this.radForw.Location = new System.Drawing.Point(51, 9);
this.radForw.Name = "radForw";
this.radForw.Size = new System.Drawing.Size(30, 16);
this.radForw.TabIndex = 0;
this.radForw.TabStop = true;
this.radForw.Text = "F";
this.radForw.UseVisualStyleBackColor = true;
//
// panel2
//
this.panel2.Controls.Add(this.radRight);
this.panel2.Controls.Add(this.radLeft);
this.panel2.Controls.Add(this.radStraight);
this.panel2.Location = new System.Drawing.Point(10, 59);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(139, 33);
this.panel2.TabIndex = 11;
//
// radLeft
//
this.radLeft.AutoSize = true;
this.radLeft.Location = new System.Drawing.Point(51, 9);
this.radLeft.Name = "radLeft";
this.radLeft.Size = new System.Drawing.Size(30, 16);
this.radLeft.TabIndex = 0;
this.radLeft.TabStop = true;
this.radLeft.Text = "L";
this.radLeft.UseVisualStyleBackColor = true;
//
// radStraight
//
this.radStraight.AutoSize = true;
this.radStraight.Location = new System.Drawing.Point(12, 9);
this.radStraight.Name = "radStraight";
this.radStraight.Size = new System.Drawing.Size(31, 16);
this.radStraight.TabIndex = 0;
this.radStraight.TabStop = true;
this.radStraight.Text = "S";
this.radStraight.UseVisualStyleBackColor = true;
//
// radRight
//
this.radRight.AutoSize = true;
this.radRight.Location = new System.Drawing.Point(93, 9);
this.radRight.Name = "radRight";
this.radRight.Size = new System.Drawing.Size(31, 16);
this.radRight.TabIndex = 1;
this.radRight.TabStop = true;
this.radRight.Text = "R";
this.radRight.UseVisualStyleBackColor = true;
this.tableLayoutPanel2.ColumnCount = 3;
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel2.Controls.Add(this.btnLiftStop, 2, 0);
this.tableLayoutPanel2.Controls.Add(this.btnLiftUp, 0, 0);
this.tableLayoutPanel2.Controls.Add(this.btnLiftDown, 1, 0);
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 17);
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
this.tableLayoutPanel2.RowCount = 1;
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel2.Size = new System.Drawing.Size(427, 59);
this.tableLayoutPanel2.TabIndex = 0;
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1016, 585);
this.ClientSize = new System.Drawing.Size(979, 621);
this.Controls.Add(this.grpLift);
this.Controls.Add(this.grpAGVStatus);
this.Controls.Add(this.grpLogs);
@@ -957,7 +1062,15 @@ namespace Test_ACS
this.grpAGV.PerformLayout();
this.grpCommands.ResumeLayout(false);
this.grpCommands.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.panel3.ResumeLayout(false);
this.panel3.PerformLayout();
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.grpManual.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.txtRFID)).EndInit();
this.grpLift.ResumeLayout(false);
@@ -971,12 +1084,7 @@ namespace Test_ACS
this.tabPage1.ResumeLayout(false);
this.grpAGVStatus.ResumeLayout(false);
this.grpAGVStatus.PerformLayout();
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.panel1.ResumeLayout(false);
this.panel1.PerformLayout();
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
this.tableLayoutPanel2.ResumeLayout(false);
this.ResumeLayout(false);
}
@@ -1000,7 +1108,6 @@ namespace Test_ACS
private System.Windows.Forms.Button btnStop;
private System.Windows.Forms.Button btnReset;
private System.Windows.Forms.Button btnMarkStop;
private System.Windows.Forms.CheckBox chkMarkStop;
private System.Windows.Forms.GroupBox grpManual;
private System.Windows.Forms.GroupBox grpLift;
private System.Windows.Forms.Button btnLiftStop;
@@ -1057,5 +1164,14 @@ namespace Test_ACS
private System.Windows.Forms.RadioButton radStraight;
private System.Windows.Forms.RadioButton radForw;
private System.Windows.Forms.RadioButton radBack;
private System.Windows.Forms.Button button6;
private System.Windows.Forms.Button button8;
private System.Windows.Forms.Button button7;
private System.Windows.Forms.Button button9;
private System.Windows.Forms.Button button10;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.RadioButton radLidarOff;
private System.Windows.Forms.RadioButton radLidarOn;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
}
}

View File

@@ -299,7 +299,7 @@ namespace Test_ACS
{
// MarkStop: data = TargetID(2 hex) + MarkStop(1 byte)
var targetID = selectedAGV.ToString("X2");
var markStop = chkMarkStop.Checked ? "01" : "00";
var markStop = "01";// chkMarkStop.Checked ? "01" : "00";
SendCommand(AGVCommandHE.MarkStop, targetID + markStop);
}
@@ -556,7 +556,10 @@ namespace Test_ACS
if (radSpdM.Checked) speed = 1;
else if (radSpdH.Checked) speed = 2;
var dataBytes = new byte[] { Motdirection, Magdirection, speed };
byte lidar = 2;
if (radLidarOff.Checked) lidar = 0;
var dataBytes = new byte[] { Motdirection, Magdirection, speed ,lidar};
var dataStr = targetID + string.Join("", dataBytes.Select(b => b.ToString("X2")));
SendCommand(AGVCommandHE.AutoMove, dataStr);
}
@@ -572,5 +575,39 @@ namespace Test_ACS
{
}
private void button6_Click(object sender, EventArgs e)
{
var targetID = selectedAGV.ToString("X2");
SendCommand(AGVCommandHE.Stop, targetID);
}
private void button7_Click(object sender, EventArgs e)
{
//lt180
var targetID = selectedAGV.ToString("X2");
SendCommand(AGVCommandHE.LTurn180, targetID);
}
private void button8_Click(object sender, EventArgs e)
{
//rt180
var targetID = selectedAGV.ToString("X2");
SendCommand(AGVCommandHE.RTurn180, targetID);
}
private void button9_Click(object sender, EventArgs e)
{
//l turn
var targetID = selectedAGV.ToString("X2");
SendCommand(AGVCommandHE.LTurn, targetID);
}
private void button10_Click(object sender, EventArgs e)
{
///r-turn
var targetID = selectedAGV.ToString("X2");
SendCommand(AGVCommandHE.RTurn, targetID);
}
}
}

View File

@@ -18,7 +18,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\</OutputPath>
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\ACS\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>

View File

@@ -38,7 +38,7 @@ namespace Test_BMS
private void Bms_Message(object sender, arDev.arRS232.MessageEventArgs e)
private void Bms_Message(object sender, arDev.BMSSerialComm.MessageEventArgs e)
{
var sb = new System.Text.StringBuilder();
if (e.Data != null)
@@ -48,13 +48,13 @@ namespace Test_BMS
}
else sb.Append(e.Message);
if (e.MsgType == arDev.arRS232.MessageType.Error)
if (e.MsgType == arDev.BMSSerialComm.MessageType.Error)
addmsg(e.Message);
else if(e.MsgType == arDev.arRS232.MessageType.Send)
else if(e.MsgType == arDev.BMSSerialComm.MessageType.Send)
{
addmsg($"Tx:{sb}");
}
else if(e.MsgType == arDev.arRS232.MessageType.Recv)
else if(e.MsgType == arDev.BMSSerialComm.MessageType.Recv)
{
addmsg($"Rx:{sb}");
}

View File

@@ -56,6 +56,9 @@
<Compile Include="..\..\Project\Device\BMSInformationEventArgs.cs">
<Link>BMSInformationEventArgs.cs</Link>
</Compile>
<Compile Include="..\..\Project\Device\BMSSerialComm.cs">
<Link>BMSSerialComm.cs</Link>
</Compile>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>

View File

@@ -31,7 +31,7 @@ namespace Test_BMS
log2.Flush();
}
private void Dev_Message(object sender, arDev.arRS232.MessageEventArgs e)
private void Dev_Message(object sender, arDev.NarumiSerialComm.MessageEventArgs e)
{
addmsg(e.MsgType.ToString(), e.Message);// $"{e.MsgType}:{e.Message}");
}
@@ -53,7 +53,7 @@ namespace Test_BMS
this.rt0.Text = $"system0-{dev.system0.Value:X2}\n" + dev.system0.ToString();
this.rt1.Text = $"system1-{dev.system1.Value:X2}\n" + dev.system1.ToString();
this.rt2.Text = $"error-{dev.error.Value:X2}\n" + dev.error.ToString();
this.rt3.Text = $"iosignal-{dev.signal.Value:X2}\n" + dev.signal.ToString() + "data\n" + dev.data.ToString();
this.rt3.Text = $"iosignal-{dev.signal1.Value:X2}\n" + dev.signal1.ToString() + "data\n" + dev.data.ToString();
//this.rt4.Text = "data\n" + dev.data.ToString();

View File

@@ -18,7 +18,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\</OutputPath>
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\AGV\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
@@ -36,7 +36,7 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="arControl.Net4">
<HintPath>..\Sub\arCtl\obj\Debug\arControl.Net4.dll</HintPath>
<HintPath>..\..\DLL\arControl.Net4.dll</HintPath>
</Reference>
<Reference Include="ArLog.Net4">
<HintPath>..\..\DLL\ArLog.Net4.dll</HintPath>

View File

@@ -18,7 +18,7 @@
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\</OutputPath>
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\PortScan\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>

File diff suppressed because it is too large Load Diff

BIN
Document/Layout.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

View File

@@ -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 |