Compare commits
16 Commits
51579591a2
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
649d87cae3 | ||
|
|
b3f661969a | ||
|
|
4f162e50b5 | ||
|
|
35df73fd29 | ||
|
|
8499c1c5be | ||
|
|
3408e3fc30 | ||
|
|
5a4c73e4df | ||
|
|
34d1bdf504 | ||
|
|
3cae423736 | ||
|
|
d777adc219 | ||
|
|
b62cd5f52e | ||
|
|
32217c8501 | ||
|
|
9274727fa9 | ||
| 2a44ba28a8 | |||
| 4bdc36040d | |||
| 384f2affcb |
@@ -17,7 +17,7 @@
|
|||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\</OutputPath>
|
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\MapEditor\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
|
|||||||
@@ -815,6 +815,9 @@ namespace AGVNavigationCore.Controls
|
|||||||
case StationType.Charger:
|
case StationType.Charger:
|
||||||
DrawTriangleNodeShape(g, node, brush);
|
DrawTriangleNodeShape(g, node, brush);
|
||||||
break;
|
break;
|
||||||
|
case StationType.Limit:
|
||||||
|
DrawRectangleNodeShape(g, node, brush);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
DrawCircleNodeShape(g, node, brush);
|
DrawCircleNodeShape(g, node, brush);
|
||||||
break;
|
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)
|
private void DrawCircleNodeShape(Graphics g, MapNode node, Brush brush)
|
||||||
{
|
{
|
||||||
// 드래그 중인 노드는 약간 크게 그리기
|
// 드래그 중인 노드는 약간 크게 그리기
|
||||||
@@ -1472,9 +1552,10 @@ namespace AGVNavigationCore.Controls
|
|||||||
case StationType.Normal: bgColor = Color.DeepSkyBlue; break;
|
case StationType.Normal: bgColor = Color.DeepSkyBlue; break;
|
||||||
case StationType.Charger: bgColor = Color.Tomato; break;
|
case StationType.Charger: bgColor = Color.Tomato; break;
|
||||||
case StationType.Loader:
|
case StationType.Loader:
|
||||||
case StationType.UnLoader: bgColor = Color.Gold ; break;
|
case StationType.UnLoader: bgColor = Color.Gold; break;
|
||||||
case StationType.Clearner: bgColor = Color.DeepSkyBlue ; break;
|
case StationType.Clearner: bgColor = Color.DeepSkyBlue; break;
|
||||||
case StationType.Buffer: bgColor = Color.WhiteSmoke; break;
|
case StationType.Buffer: bgColor = Color.WhiteSmoke; break;
|
||||||
|
case StationType.Limit: bgColor = Color.Red; break;
|
||||||
default: bgColor = Color.White; break;
|
default: bgColor = Color.White; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -119,6 +119,9 @@ namespace AGVNavigationCore.Controls
|
|||||||
var worldPoint = ScreenToWorld(e.Location);
|
var worldPoint = ScreenToWorld(e.Location);
|
||||||
var hitNode = GetItemAt(worldPoint);
|
var hitNode = GetItemAt(worldPoint);
|
||||||
|
|
||||||
|
// 가동 모드에서는 더블클릭 편집 방지
|
||||||
|
if (_canvasMode == CanvasMode.Run) return;
|
||||||
|
|
||||||
if (hitNode == null) return;
|
if (hitNode == null) return;
|
||||||
|
|
||||||
if (hitNode.Type == NodeType.Normal)
|
if (hitNode.Type == NodeType.Normal)
|
||||||
|
|||||||
@@ -39,7 +39,8 @@ namespace AGVNavigationCore.Controls
|
|||||||
{
|
{
|
||||||
Edit, // 편집 가능 (맵 에디터)
|
Edit, // 편집 가능 (맵 에디터)
|
||||||
Sync, // 동기화 모드 (장비 설정 동기화)
|
Sync, // 동기화 모드 (장비 설정 동기화)
|
||||||
Emulator // 에뮬레이터 모드
|
Emulator, // 에뮬레이터 모드
|
||||||
|
Run // 가동 모드 (User Request)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -73,7 +73,13 @@ namespace AGVNavigationCore.Models
|
|||||||
/// <summary>버퍼</summary>
|
/// <summary>버퍼</summary>
|
||||||
Buffer,
|
Buffer,
|
||||||
/// <summary>충전기</summary>
|
/// <summary>충전기</summary>
|
||||||
Charger
|
Charger,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 끝점(더이상 이동불가)
|
||||||
|
/// </summary>
|
||||||
|
Limit,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ namespace AGVNavigationCore.Models
|
|||||||
|
|
||||||
public override string ToString()
|
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()
|
public bool IsNavigationNode()
|
||||||
|
|||||||
@@ -464,6 +464,8 @@ namespace AGVNavigationCore.PathFinding.Planning
|
|||||||
{
|
{
|
||||||
nodeInfo.Speed = mapNode.SpeedLimit;
|
nodeInfo.Speed = mapNode.SpeedLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
detailedPath1.Add(nodeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
// path1에 상세 경로 정보 설정
|
// path1에 상세 경로 정보 설정
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ namespace AGVNavigationCore.PathFinding.Planning
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
var result = $"{RfidId}[{NodeId}]:{MotorDirection}";
|
var result = $"R{RfidId}[N{NodeId}]:{MotorDirection}";
|
||||||
|
|
||||||
// 마그넷 방향이 직진이 아닌 경우 표시
|
// 마그넷 방향이 직진이 아닌 경우 표시
|
||||||
if (MagnetDirection != MagnetDirection.Straight)
|
if (MagnetDirection != MagnetDirection.Straight)
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\</OutputPath>
|
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\Simulator\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -186,6 +186,7 @@
|
|||||||
<Compile Include="Device\BMS.cs" />
|
<Compile Include="Device\BMS.cs" />
|
||||||
<Compile Include="Device\BMSInformationEventArgs.cs" />
|
<Compile Include="Device\BMSInformationEventArgs.cs" />
|
||||||
<Compile Include="Device\CFlag.cs" />
|
<Compile Include="Device\CFlag.cs" />
|
||||||
|
<Compile Include="Device\BMSSerialComm.cs" />
|
||||||
<Compile Include="Device\xbee.cs">
|
<Compile Include="Device\xbee.cs">
|
||||||
<SubType>Component</SubType>
|
<SubType>Component</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -196,6 +197,12 @@
|
|||||||
<Compile Include="Dialog\fCounter.Designer.cs">
|
<Compile Include="Dialog\fCounter.Designer.cs">
|
||||||
<DependentUpon>fCounter.cs</DependentUpon>
|
<DependentUpon>fCounter.cs</DependentUpon>
|
||||||
</Compile>
|
</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">
|
<Compile Include="Dialog\fStateMachineDebug.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -417,6 +424,9 @@
|
|||||||
<EmbeddedResource Include="Dialog\fCounter.resx">
|
<EmbeddedResource Include="Dialog\fCounter.resx">
|
||||||
<DependentUpon>fCounter.cs</DependentUpon>
|
<DependentUpon>fCounter.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Dialog\fXbeeSetting.resx">
|
||||||
|
<DependentUpon>fXbeeSetting.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Dialog\fUpdateForm.resx">
|
<EmbeddedResource Include="Dialog\fUpdateForm.resx">
|
||||||
<DependentUpon>fUpdateForm.cs</DependentUpon>
|
<DependentUpon>fUpdateForm.cs</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
|||||||
@@ -9,12 +9,12 @@ using System.CodeDom;
|
|||||||
|
|
||||||
namespace arDev
|
namespace arDev
|
||||||
{
|
{
|
||||||
public class BMS : arRS232
|
public class BMS : BMSSerialComm
|
||||||
{
|
{
|
||||||
public BMS()
|
public BMS()
|
||||||
{
|
{
|
||||||
|
|
||||||
MinRecvLength = 34;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -55,28 +55,60 @@ namespace arDev
|
|||||||
{
|
{
|
||||||
tempBuffer.Add(incomByte);
|
tempBuffer.Add(incomByte);
|
||||||
|
|
||||||
var queylen = QueryIndex == 0 ? 34 : 23;
|
if (tempBuffer.Count > 7)
|
||||||
if (tempBuffer.Count == queylen)
|
|
||||||
{
|
{
|
||||||
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")));
|
var hexstr = string.Join(" ", tempBuffer.Select(t => t.ToString("X2")));
|
||||||
RaiseMessage(MessageType.Error, $"discard : {hexstr}");
|
RaiseMessage(MessageType.Error, $"discard : {hexstr}");
|
||||||
tempBuffer.Clear();
|
tempBuffer.Clear();
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
//데이터가 맞게 수신됨
|
|
||||||
LastReceiveBuffer = tempBuffer.ToArray();
|
|
||||||
bComplete = true;
|
|
||||||
}
|
|
||||||
findSTX = false;
|
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
|
else
|
||||||
{
|
{
|
||||||
var rxstr = string.Join(" ", data.Select(t => t.ToString("X2")));
|
var rxstr = string.Join(" ", data.Select(t => t.ToString("X2")));
|
||||||
RaiseMessage(MessageType.Recv, $"Querh:{QueryIndex},Data:{rxstr}" );
|
RaiseMessage(MessageType.Recv, rxstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (QueryIndex == 0)
|
if (QueryIndex == 0)
|
||||||
@@ -179,6 +211,13 @@ namespace arDev
|
|||||||
batH = (UInt16)(batH | batL);
|
batH = (UInt16)(batH | batL);
|
||||||
Current_Volt = (float)(batH / 100.0);
|
Current_Volt = (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];
|
batH = (UInt16)LastReceiveBuffer[8];
|
||||||
batL = (UInt16)LastReceiveBuffer[9];
|
batL = (UInt16)LastReceiveBuffer[9];
|
||||||
@@ -224,107 +263,80 @@ namespace arDev
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
private bool _autocharge = false;
|
/// 현재 충전중인지?
|
||||||
public Boolean AutoCharge
|
/// </summary>
|
||||||
{
|
public bool IsCharging { get; private set; }
|
||||||
get { return _autocharge; }
|
DateTime ChargeStart = DateTime.Now;
|
||||||
set { _autocharge = false; }
|
DateTime ChargeEnd = DateTime.Now;
|
||||||
}
|
|
||||||
|
|
||||||
//public void ClearManualChargeCheckValue()
|
|
||||||
//{
|
|
||||||
// chk_timee = new DateTime(1982, 11, 23);
|
|
||||||
// chk_times = new DateTime(1982, 11, 23);
|
|
||||||
// chk_valuee = 0f;
|
|
||||||
// chk_values = 0f;
|
|
||||||
//}
|
|
||||||
|
|
||||||
void CheckManualCharge()
|
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);
|
IsCharging = true;
|
||||||
chk_valuee = 999f;
|
ChargeStart = DateTime.Now;
|
||||||
}
|
ChargeEnd = new DateTime(1982, 11, 23);
|
||||||
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;
|
|
||||||
try
|
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_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));
|
|
||||||
}
|
}
|
||||||
catch (Exception ex) { RaiseMessage(MessageType.Error, ex.Message); }
|
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
|
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_times { get; set; } = new DateTime(1982, 11, 23);
|
||||||
public DateTime chk_timee { get; set; } = new DateTime(1982, 11, 23);
|
public DateTime chk_timee { get; set; } = new DateTime(1982, 11, 23);
|
||||||
public float chk_values { get; set; } = 0f;
|
public float chk_values { get; set; } = 0f;
|
||||||
public float chk_valuee { get; set; } = 0f;
|
public float chk_valuee { get; set; } = 0f;
|
||||||
|
|
||||||
|
public float Charge_Amp { get; set; } = 0f;
|
||||||
|
public Int16 Charge_watt
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (Int16)((Charge_Amp) * Current_Volt);
|
||||||
|
}
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 전압
|
/// 전압
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -408,6 +420,7 @@ namespace arDev
|
|||||||
cmd.Add(0xFD);
|
cmd.Add(0xFD);
|
||||||
cmd.Add(0x77);
|
cmd.Add(0x77);
|
||||||
//cmd.Add(0x0D);
|
//cmd.Add(0x0D);
|
||||||
|
//_device.DiscardInBuffer();
|
||||||
return WriteData(cmd.ToArray());
|
return WriteData(cmd.ToArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -424,6 +437,7 @@ namespace arDev
|
|||||||
cmd.Add(0xFC);
|
cmd.Add(0xFC);
|
||||||
cmd.Add(0x77);
|
cmd.Add(0x77);
|
||||||
//cmd.Add(0x0D);
|
//cmd.Add(0x0D);
|
||||||
|
//_device.DiscardInBuffer();
|
||||||
return WriteData(cmd.ToArray());
|
return WriteData(cmd.ToArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,16 +4,14 @@ namespace arDev
|
|||||||
{
|
{
|
||||||
public class ChargetDetectArgs : EventArgs
|
public class ChargetDetectArgs : EventArgs
|
||||||
{
|
{
|
||||||
public DateTime times { get; set; }
|
public DateTime time { get; set; }
|
||||||
public DateTime timee { get; set; }
|
public float level { get; set; }
|
||||||
public float values { get; set; }
|
public bool Detected { get; set; }
|
||||||
public float valuee { get; set; }
|
public ChargetDetectArgs(DateTime times, bool detected, float values)
|
||||||
public ChargetDetectArgs(DateTime times, float values, DateTime timee, float valuee)
|
|
||||||
{
|
{
|
||||||
this.times = times;
|
this.time = times;
|
||||||
this.times = timee;
|
this.level = values;
|
||||||
this.values = values;
|
this.Detected = detected;
|
||||||
this.valuee = valuee;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public class BMSInformationEventArgs : EventArgs
|
public class BMSInformationEventArgs : EventArgs
|
||||||
|
|||||||
607
Cs_HMI/Project/Device/BMSSerialComm.cs
Normal file
607
Cs_HMI/Project/Device/BMSSerialComm.cs
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
180
Cs_HMI/Project/Dialog/fLog.Designer.cs
generated
180
Cs_HMI/Project/Dialog/fLog.Designer.cs
generated
@@ -31,16 +31,15 @@
|
|||||||
this.rtsys = new arCtl.LogTextBox();
|
this.rtsys = new arCtl.LogTextBox();
|
||||||
this.rtTx = new arCtl.LogTextBox();
|
this.rtTx = new arCtl.LogTextBox();
|
||||||
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
|
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.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.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.panel4 = new System.Windows.Forms.Panel();
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
this.rtAGV = new arCtl.LogTextBox();
|
||||||
this.label3 = new System.Windows.Forms.Label();
|
this.titleAGV = new System.Windows.Forms.Label();
|
||||||
this.tableLayoutPanel1.SuspendLayout();
|
this.tableLayoutPanel1.SuspendLayout();
|
||||||
this.panel1.SuspendLayout();
|
this.panel1.SuspendLayout();
|
||||||
this.panel2.SuspendLayout();
|
this.panel2.SuspendLayout();
|
||||||
@@ -99,8 +98,7 @@
|
|||||||
this.tableLayoutPanel1.Controls.Add(this.rtsys, 0, 0);
|
this.tableLayoutPanel1.Controls.Add(this.rtsys, 0, 0);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.rtTx, 2, 0);
|
this.tableLayoutPanel1.Controls.Add(this.rtTx, 2, 0);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.panel1, 1, 1);
|
this.tableLayoutPanel1.Controls.Add(this.panel1, 1, 1);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.panel2, 3, 1);
|
this.tableLayoutPanel1.Controls.Add(this.panel2, 2, 1);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.panel3, 2, 1);
|
|
||||||
this.tableLayoutPanel1.Controls.Add(this.panel4, 0, 1);
|
this.tableLayoutPanel1.Controls.Add(this.panel4, 0, 1);
|
||||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||||
@@ -111,45 +109,15 @@
|
|||||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(681, 495);
|
this.tableLayoutPanel1.Size = new System.Drawing.Size(681, 495);
|
||||||
this.tableLayoutPanel1.TabIndex = 2;
|
this.tableLayoutPanel1.TabIndex = 2;
|
||||||
//
|
//
|
||||||
// rtAGV
|
// panel1
|
||||||
//
|
//
|
||||||
this.rtAGV.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
|
this.panel1.Controls.Add(this.rtXbee);
|
||||||
this.rtAGV.ColorList = new arCtl.sLogMessageColor[0];
|
this.panel1.Controls.Add(this.titleXBEE);
|
||||||
this.rtAGV.DateFormat = "mm:ss.fff";
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.rtAGV.DefaultColor = System.Drawing.Color.LightGray;
|
this.panel1.Location = new System.Drawing.Point(173, 349);
|
||||||
this.rtAGV.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.panel1.Name = "panel1";
|
||||||
this.rtAGV.EnableDisplayTimer = false;
|
this.panel1.Size = new System.Drawing.Size(164, 143);
|
||||||
this.rtAGV.EnableGubunColor = true;
|
this.panel1.TabIndex = 3;
|
||||||
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 = "";
|
|
||||||
//
|
//
|
||||||
// rtXbee
|
// rtXbee
|
||||||
//
|
//
|
||||||
@@ -171,73 +139,96 @@
|
|||||||
this.rtXbee.TabIndex = 2;
|
this.rtXbee.TabIndex = 2;
|
||||||
this.rtXbee.Text = "";
|
this.rtXbee.Text = "";
|
||||||
//
|
//
|
||||||
// panel1
|
// titleXBEE
|
||||||
//
|
//
|
||||||
this.panel1.Controls.Add(this.rtXbee);
|
this.titleXBEE.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
this.panel1.Controls.Add(this.label1);
|
this.titleXBEE.Location = new System.Drawing.Point(0, 0);
|
||||||
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.titleXBEE.Name = "titleXBEE";
|
||||||
this.panel1.Location = new System.Drawing.Point(173, 349);
|
this.titleXBEE.Size = new System.Drawing.Size(164, 14);
|
||||||
this.panel1.Name = "panel1";
|
this.titleXBEE.TabIndex = 0;
|
||||||
this.panel1.Size = new System.Drawing.Size(164, 143);
|
this.titleXBEE.Text = "MC ID";
|
||||||
this.panel1.TabIndex = 3;
|
this.titleXBEE.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
//
|
|
||||||
// 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;
|
|
||||||
//
|
//
|
||||||
// panel2
|
// panel2
|
||||||
//
|
//
|
||||||
|
this.tableLayoutPanel1.SetColumnSpan(this.panel2, 2);
|
||||||
this.panel2.Controls.Add(this.rtBMS);
|
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.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.Name = "panel2";
|
||||||
this.panel2.Size = new System.Drawing.Size(165, 143);
|
this.panel2.Size = new System.Drawing.Size(335, 143);
|
||||||
this.panel2.TabIndex = 4;
|
this.panel2.TabIndex = 4;
|
||||||
//
|
//
|
||||||
// panel3
|
// rtBMS
|
||||||
//
|
//
|
||||||
this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.rtBMS.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
|
||||||
this.panel3.Location = new System.Drawing.Point(343, 349);
|
this.rtBMS.ColorList = new arCtl.sLogMessageColor[0];
|
||||||
this.panel3.Name = "panel3";
|
this.rtBMS.DateFormat = "mm:ss.fff";
|
||||||
this.panel3.Size = new System.Drawing.Size(164, 143);
|
this.rtBMS.DefaultColor = System.Drawing.Color.LightGray;
|
||||||
this.panel3.TabIndex = 5;
|
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
|
// panel4
|
||||||
//
|
//
|
||||||
this.panel4.Controls.Add(this.rtAGV);
|
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.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.panel4.Location = new System.Drawing.Point(3, 349);
|
this.panel4.Location = new System.Drawing.Point(3, 349);
|
||||||
this.panel4.Name = "panel4";
|
this.panel4.Name = "panel4";
|
||||||
this.panel4.Size = new System.Drawing.Size(164, 143);
|
this.panel4.Size = new System.Drawing.Size(164, 143);
|
||||||
this.panel4.TabIndex = 6;
|
this.panel4.TabIndex = 6;
|
||||||
//
|
//
|
||||||
// label2
|
// rtAGV
|
||||||
//
|
//
|
||||||
this.label2.Dock = System.Windows.Forms.DockStyle.Top;
|
this.rtAGV.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224)))));
|
||||||
this.label2.Location = new System.Drawing.Point(0, 0);
|
this.rtAGV.ColorList = new arCtl.sLogMessageColor[0];
|
||||||
this.label2.Name = "label2";
|
this.rtAGV.DateFormat = "mm:ss.fff";
|
||||||
this.label2.Size = new System.Drawing.Size(164, 14);
|
this.rtAGV.DefaultColor = System.Drawing.Color.LightGray;
|
||||||
this.label2.TabIndex = 3;
|
this.rtAGV.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.label2.Text = "AGV";
|
this.rtAGV.EnableDisplayTimer = false;
|
||||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
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.titleAGV.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
this.label3.Location = new System.Drawing.Point(0, 0);
|
this.titleAGV.Location = new System.Drawing.Point(0, 0);
|
||||||
this.label3.Name = "label3";
|
this.titleAGV.Name = "titleAGV";
|
||||||
this.label3.Size = new System.Drawing.Size(165, 14);
|
this.titleAGV.Size = new System.Drawing.Size(164, 14);
|
||||||
this.label3.TabIndex = 3;
|
this.titleAGV.TabIndex = 3;
|
||||||
this.label3.Text = "BMS";
|
this.titleAGV.Text = "AGV";
|
||||||
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
this.titleAGV.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
//
|
//
|
||||||
// fLog
|
// fLog
|
||||||
//
|
//
|
||||||
@@ -267,11 +258,10 @@
|
|||||||
private arCtl.LogTextBox rtBMS;
|
private arCtl.LogTextBox rtBMS;
|
||||||
private arCtl.LogTextBox rtXbee;
|
private arCtl.LogTextBox rtXbee;
|
||||||
private System.Windows.Forms.Panel panel1;
|
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 panel2;
|
||||||
private System.Windows.Forms.Panel panel3;
|
|
||||||
private System.Windows.Forms.Panel panel4;
|
private System.Windows.Forms.Panel panel4;
|
||||||
private System.Windows.Forms.Label label3;
|
private System.Windows.Forms.Label titleBMS;
|
||||||
private System.Windows.Forms.Label label2;
|
private System.Windows.Forms.Label titleAGV;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -29,7 +29,9 @@ namespace Project.Dialog
|
|||||||
|
|
||||||
private void fLog_Load(object sender, EventArgs e)
|
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[]
|
var colorlist = new arCtl.sLogMessageColor[]
|
||||||
{
|
{
|
||||||
new arCtl.sLogMessageColor("NOR",Color.Black),
|
new arCtl.sLogMessageColor("NOR",Color.Black),
|
||||||
|
|||||||
683
Cs_HMI/Project/Dialog/fSystem.Designer.cs
generated
683
Cs_HMI/Project/Dialog/fSystem.Designer.cs
generated
@@ -28,530 +28,307 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.lbMsg = new arCtl.arLabel();
|
this.btOpenDir = new System.Windows.Forms.Button();
|
||||||
this.arLabel4 = new arCtl.arLabel();
|
this.arLabel4 = new System.Windows.Forms.Button();
|
||||||
this.arLabel9 = new arCtl.arLabel();
|
this.btShutdown = new System.Windows.Forms.Button();
|
||||||
this.arLabel10 = new arCtl.arLabel();
|
this.btRestart = new System.Windows.Forms.Button();
|
||||||
this.arLabel1 = new arCtl.arLabel();
|
this.btStartMenu = new System.Windows.Forms.Button();
|
||||||
this.arLabel6 = new arCtl.arLabel();
|
this.btTaskMgr = new System.Windows.Forms.Button();
|
||||||
this.arLabel2 = new arCtl.arLabel();
|
this.btProcessList = new System.Windows.Forms.Button();
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
this.label2 = new System.Windows.Forms.Label();
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
this.arLabel3 = new arCtl.arLabel();
|
this.btEmulator = new System.Windows.Forms.Button();
|
||||||
this.arLabel5 = new arCtl.arLabel();
|
this.btMakePatch = new System.Windows.Forms.Button();
|
||||||
this.arLabel7 = new arCtl.arLabel();
|
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();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// lbMsg
|
// btOpenDir
|
||||||
//
|
//
|
||||||
this.lbMsg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
this.btOpenDir.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.btOpenDir.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
this.lbMsg.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
|
this.btOpenDir.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.lbMsg.BorderColor = System.Drawing.Color.LightSkyBlue;
|
this.btOpenDir.Font = new System.Drawing.Font("Consolas", 12F);
|
||||||
this.lbMsg.BorderColorOver = System.Drawing.Color.Red;
|
this.btOpenDir.ForeColor = System.Drawing.Color.White;
|
||||||
this.lbMsg.BorderSize = new System.Windows.Forms.Padding(1);
|
this.btOpenDir.Location = new System.Drawing.Point(5, 5);
|
||||||
this.lbMsg.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
|
this.btOpenDir.Margin = new System.Windows.Forms.Padding(5);
|
||||||
this.lbMsg.Cursor = System.Windows.Forms.Cursors.Hand;
|
this.btOpenDir.Name = "btOpenDir";
|
||||||
this.lbMsg.Font = new System.Drawing.Font("Consolas", 12F);
|
this.btOpenDir.Size = new System.Drawing.Size(201, 79);
|
||||||
this.lbMsg.ForeColor = System.Drawing.Color.White;
|
this.btOpenDir.TabIndex = 2;
|
||||||
this.lbMsg.GradientEnable = true;
|
this.btOpenDir.Text = "폴더열기";
|
||||||
this.lbMsg.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
this.btOpenDir.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
this.lbMsg.GradientRepeatBG = true;
|
this.btOpenDir.Click += new System.EventHandler(this.lbMsg_Click);
|
||||||
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);
|
|
||||||
//
|
//
|
||||||
// arLabel4
|
// arLabel4
|
||||||
//
|
//
|
||||||
this.arLabel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
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.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.Font = new System.Drawing.Font("Consolas", 12F);
|
||||||
this.arLabel4.ForeColor = System.Drawing.Color.White;
|
this.arLabel4.ForeColor = System.Drawing.Color.White;
|
||||||
this.arLabel4.GradientEnable = true;
|
this.arLabel4.Location = new System.Drawing.Point(10, 412);
|
||||||
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.Margin = new System.Windows.Forms.Padding(5);
|
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.Name = "arLabel4";
|
||||||
this.arLabel4.ProgressBorderColor = System.Drawing.Color.Black;
|
this.arLabel4.Size = new System.Drawing.Size(633, 51);
|
||||||
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.TabIndex = 2;
|
this.arLabel4.TabIndex = 2;
|
||||||
this.arLabel4.Text = "닫기";
|
this.arLabel4.Text = "닫기";
|
||||||
this.arLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
this.arLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
this.arLabel4.TextShadow = true;
|
|
||||||
this.arLabel4.TextVisible = true;
|
|
||||||
this.arLabel4.Click += new System.EventHandler(this.arLabel4_Click);
|
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.btShutdown.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
||||||
this.arLabel9.BackColor2 = System.Drawing.Color.Red;
|
this.btShutdown.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
this.arLabel9.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
|
this.btShutdown.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.arLabel9.BorderColor = System.Drawing.Color.LightSkyBlue;
|
this.btShutdown.Font = new System.Drawing.Font("Consolas", 12F);
|
||||||
this.arLabel9.BorderColorOver = System.Drawing.Color.Red;
|
this.btShutdown.ForeColor = System.Drawing.Color.White;
|
||||||
this.arLabel9.BorderSize = new System.Windows.Forms.Padding(1);
|
this.btShutdown.Location = new System.Drawing.Point(5, 94);
|
||||||
this.arLabel9.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
|
this.btShutdown.Margin = new System.Windows.Forms.Padding(5);
|
||||||
this.arLabel9.Cursor = System.Windows.Forms.Cursors.Hand;
|
this.btShutdown.Name = "btShutdown";
|
||||||
this.arLabel9.Font = new System.Drawing.Font("Consolas", 12F);
|
this.btShutdown.Size = new System.Drawing.Size(201, 79);
|
||||||
this.arLabel9.ForeColor = System.Drawing.Color.White;
|
this.btShutdown.TabIndex = 2;
|
||||||
this.arLabel9.GradientEnable = true;
|
this.btShutdown.Text = "시스템 종료";
|
||||||
this.arLabel9.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
this.btShutdown.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
this.arLabel9.GradientRepeatBG = true;
|
this.btShutdown.Click += new System.EventHandler(this.arLabel9_Click);
|
||||||
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);
|
|
||||||
//
|
//
|
||||||
// arLabel10
|
// btRestart
|
||||||
//
|
//
|
||||||
this.arLabel10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
this.btRestart.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
||||||
this.arLabel10.BackColor2 = System.Drawing.Color.DarkBlue;
|
this.btRestart.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
this.arLabel10.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
|
this.btRestart.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.arLabel10.BorderColor = System.Drawing.Color.LightSkyBlue;
|
this.btRestart.Font = new System.Drawing.Font("Consolas", 12F);
|
||||||
this.arLabel10.BorderColorOver = System.Drawing.Color.Red;
|
this.btRestart.ForeColor = System.Drawing.Color.White;
|
||||||
this.arLabel10.BorderSize = new System.Windows.Forms.Padding(1);
|
this.btRestart.Location = new System.Drawing.Point(216, 94);
|
||||||
this.arLabel10.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
|
this.btRestart.Margin = new System.Windows.Forms.Padding(5);
|
||||||
this.arLabel10.Cursor = System.Windows.Forms.Cursors.Hand;
|
this.btRestart.Name = "btRestart";
|
||||||
this.arLabel10.Font = new System.Drawing.Font("Consolas", 12F);
|
this.btRestart.Size = new System.Drawing.Size(201, 79);
|
||||||
this.arLabel10.ForeColor = System.Drawing.Color.White;
|
this.btRestart.TabIndex = 2;
|
||||||
this.arLabel10.GradientEnable = true;
|
this.btRestart.Text = "시스템 재시작";
|
||||||
this.arLabel10.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
this.btRestart.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
this.arLabel10.GradientRepeatBG = true;
|
this.btRestart.Click += new System.EventHandler(this.arLabel10_Click);
|
||||||
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);
|
|
||||||
//
|
//
|
||||||
// arLabel1
|
// btStartMenu
|
||||||
//
|
//
|
||||||
this.arLabel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
this.btStartMenu.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.btStartMenu.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
|
this.btStartMenu.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.arLabel1.BorderColor = System.Drawing.Color.LightSkyBlue;
|
this.btStartMenu.Font = new System.Drawing.Font("Consolas", 12F);
|
||||||
this.arLabel1.BorderColorOver = System.Drawing.Color.Red;
|
this.btStartMenu.ForeColor = System.Drawing.Color.White;
|
||||||
this.arLabel1.BorderSize = new System.Windows.Forms.Padding(1);
|
this.btStartMenu.Location = new System.Drawing.Point(427, 5);
|
||||||
this.arLabel1.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
|
this.btStartMenu.Margin = new System.Windows.Forms.Padding(5);
|
||||||
this.arLabel1.Cursor = System.Windows.Forms.Cursors.Hand;
|
this.btStartMenu.Name = "btStartMenu";
|
||||||
this.arLabel1.Font = new System.Drawing.Font("Consolas", 12F);
|
this.btStartMenu.Size = new System.Drawing.Size(201, 79);
|
||||||
this.arLabel1.ForeColor = System.Drawing.Color.White;
|
this.btStartMenu.TabIndex = 2;
|
||||||
this.arLabel1.GradientEnable = true;
|
this.btStartMenu.Text = "시작메뉴";
|
||||||
this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
this.btStartMenu.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
this.arLabel1.GradientRepeatBG = true;
|
this.btStartMenu.Click += new System.EventHandler(this.arLabel1_Click);
|
||||||
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);
|
|
||||||
//
|
//
|
||||||
// arLabel6
|
// btTaskMgr
|
||||||
//
|
//
|
||||||
this.arLabel6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
this.btTaskMgr.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.btTaskMgr.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
this.arLabel6.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
|
this.btTaskMgr.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.arLabel6.BorderColor = System.Drawing.Color.LightSkyBlue;
|
this.btTaskMgr.Font = new System.Drawing.Font("Consolas", 12F);
|
||||||
this.arLabel6.BorderColorOver = System.Drawing.Color.Red;
|
this.btTaskMgr.ForeColor = System.Drawing.Color.White;
|
||||||
this.arLabel6.BorderSize = new System.Windows.Forms.Padding(1);
|
this.btTaskMgr.Location = new System.Drawing.Point(216, 5);
|
||||||
this.arLabel6.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
|
this.btTaskMgr.Margin = new System.Windows.Forms.Padding(5);
|
||||||
this.arLabel6.Cursor = System.Windows.Forms.Cursors.Hand;
|
this.btTaskMgr.Name = "btTaskMgr";
|
||||||
this.arLabel6.Font = new System.Drawing.Font("Consolas", 12F);
|
this.btTaskMgr.Size = new System.Drawing.Size(201, 79);
|
||||||
this.arLabel6.ForeColor = System.Drawing.Color.White;
|
this.btTaskMgr.TabIndex = 2;
|
||||||
this.arLabel6.GradientEnable = true;
|
this.btTaskMgr.Text = "작업관리자";
|
||||||
this.arLabel6.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
this.btTaskMgr.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
this.arLabel6.GradientRepeatBG = true;
|
this.btTaskMgr.Click += new System.EventHandler(this.arLabel6_Click);
|
||||||
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);
|
|
||||||
//
|
//
|
||||||
// arLabel2
|
// btProcessList
|
||||||
//
|
//
|
||||||
this.arLabel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
this.btProcessList.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
||||||
this.arLabel2.BackColor2 = System.Drawing.Color.DarkBlue;
|
this.btProcessList.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
this.arLabel2.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
|
this.btProcessList.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.arLabel2.BorderColor = System.Drawing.Color.LightSkyBlue;
|
this.btProcessList.Font = new System.Drawing.Font("Consolas", 12F);
|
||||||
this.arLabel2.BorderColorOver = System.Drawing.Color.Red;
|
this.btProcessList.ForeColor = System.Drawing.Color.White;
|
||||||
this.arLabel2.BorderSize = new System.Windows.Forms.Padding(1);
|
this.btProcessList.Location = new System.Drawing.Point(427, 94);
|
||||||
this.arLabel2.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
|
this.btProcessList.Margin = new System.Windows.Forms.Padding(5);
|
||||||
this.arLabel2.Cursor = System.Windows.Forms.Cursors.Hand;
|
this.btProcessList.Name = "btProcessList";
|
||||||
this.arLabel2.Font = new System.Drawing.Font("Consolas", 12F);
|
this.btProcessList.Size = new System.Drawing.Size(201, 79);
|
||||||
this.arLabel2.ForeColor = System.Drawing.Color.White;
|
this.btProcessList.TabIndex = 2;
|
||||||
this.arLabel2.GradientEnable = true;
|
this.btProcessList.Text = "Process List";
|
||||||
this.arLabel2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
this.btProcessList.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
this.arLabel2.GradientRepeatBG = true;
|
this.btProcessList.Click += new System.EventHandler(this.arLabel2_Click);
|
||||||
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);
|
|
||||||
//
|
//
|
||||||
// label1
|
// 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.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.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.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.TabIndex = 3;
|
||||||
this.label1.Text = "label1";
|
this.label1.Text = "label1";
|
||||||
//
|
//
|
||||||
// label2
|
// 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.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.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.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.TabIndex = 3;
|
||||||
this.label2.Text = "label1";
|
this.label2.Text = "label1";
|
||||||
//
|
//
|
||||||
// arLabel3
|
// btEmulator
|
||||||
//
|
//
|
||||||
this.arLabel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
this.btEmulator.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.btEmulator.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
this.arLabel3.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
|
this.btEmulator.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.arLabel3.BorderColor = System.Drawing.Color.LightSkyBlue;
|
this.btEmulator.Font = new System.Drawing.Font("Consolas", 12F);
|
||||||
this.arLabel3.BorderColorOver = System.Drawing.Color.Red;
|
this.btEmulator.ForeColor = System.Drawing.Color.White;
|
||||||
this.arLabel3.BorderSize = new System.Windows.Forms.Padding(1);
|
this.btEmulator.Location = new System.Drawing.Point(5, 183);
|
||||||
this.arLabel3.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
|
this.btEmulator.Margin = new System.Windows.Forms.Padding(5);
|
||||||
this.arLabel3.Cursor = System.Windows.Forms.Cursors.Hand;
|
this.btEmulator.Name = "btEmulator";
|
||||||
this.arLabel3.Font = new System.Drawing.Font("Consolas", 12F);
|
this.btEmulator.Size = new System.Drawing.Size(201, 79);
|
||||||
this.arLabel3.ForeColor = System.Drawing.Color.White;
|
this.btEmulator.TabIndex = 4;
|
||||||
this.arLabel3.GradientEnable = true;
|
this.btEmulator.Text = "Emulator";
|
||||||
this.arLabel3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
this.btEmulator.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
this.arLabel3.GradientRepeatBG = true;
|
this.btEmulator.Click += new System.EventHandler(this.arLabel3_Click);
|
||||||
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);
|
|
||||||
//
|
//
|
||||||
// arLabel5
|
// btMakePatch
|
||||||
//
|
//
|
||||||
this.arLabel5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
this.btMakePatch.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
||||||
this.arLabel5.BackColor2 = System.Drawing.Color.Pink;
|
this.btMakePatch.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
this.arLabel5.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
|
this.btMakePatch.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.arLabel5.BorderColor = System.Drawing.Color.LightSkyBlue;
|
this.btMakePatch.Font = new System.Drawing.Font("Consolas", 12F);
|
||||||
this.arLabel5.BorderColorOver = System.Drawing.Color.Red;
|
this.btMakePatch.ForeColor = System.Drawing.Color.White;
|
||||||
this.arLabel5.BorderSize = new System.Windows.Forms.Padding(1);
|
this.btMakePatch.Location = new System.Drawing.Point(216, 183);
|
||||||
this.arLabel5.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
|
this.btMakePatch.Margin = new System.Windows.Forms.Padding(5);
|
||||||
this.arLabel5.Cursor = System.Windows.Forms.Cursors.Hand;
|
this.btMakePatch.Name = "btMakePatch";
|
||||||
this.arLabel5.Font = new System.Drawing.Font("Consolas", 12F);
|
this.btMakePatch.Size = new System.Drawing.Size(201, 79);
|
||||||
this.arLabel5.ForeColor = System.Drawing.Color.White;
|
this.btMakePatch.TabIndex = 5;
|
||||||
this.arLabel5.GradientEnable = true;
|
this.btMakePatch.Text = "패치파일 생성";
|
||||||
this.arLabel5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
this.btMakePatch.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
this.arLabel5.GradientRepeatBG = true;
|
this.btMakePatch.Click += new System.EventHandler(this.arLabel5_Click);
|
||||||
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);
|
|
||||||
//
|
//
|
||||||
// arLabel7
|
// btAutoRestart
|
||||||
//
|
//
|
||||||
this.arLabel7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
this.btAutoRestart.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(72)))), ((int)(((byte)(72)))), ((int)(((byte)(72)))));
|
||||||
this.arLabel7.BackColor2 = System.Drawing.Color.DarkBlue;
|
this.btAutoRestart.Cursor = System.Windows.Forms.Cursors.Hand;
|
||||||
this.arLabel7.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
|
this.btAutoRestart.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.arLabel7.BorderColor = System.Drawing.Color.LightSkyBlue;
|
this.btAutoRestart.Font = new System.Drawing.Font("Consolas", 12F);
|
||||||
this.arLabel7.BorderColorOver = System.Drawing.Color.Red;
|
this.btAutoRestart.ForeColor = System.Drawing.Color.White;
|
||||||
this.arLabel7.BorderSize = new System.Windows.Forms.Padding(1);
|
this.btAutoRestart.Location = new System.Drawing.Point(427, 183);
|
||||||
this.arLabel7.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
|
this.btAutoRestart.Margin = new System.Windows.Forms.Padding(5);
|
||||||
this.arLabel7.Cursor = System.Windows.Forms.Cursors.Hand;
|
this.btAutoRestart.Name = "btAutoRestart";
|
||||||
this.arLabel7.Font = new System.Drawing.Font("Consolas", 12F);
|
this.btAutoRestart.Size = new System.Drawing.Size(201, 79);
|
||||||
this.arLabel7.ForeColor = System.Drawing.Color.White;
|
this.btAutoRestart.TabIndex = 6;
|
||||||
this.arLabel7.GradientEnable = true;
|
this.btAutoRestart.Text = "자동 재시작";
|
||||||
this.arLabel7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
|
this.btAutoRestart.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||||
this.arLabel7.GradientRepeatBG = true;
|
this.btAutoRestart.Click += new System.EventHandler(this.arLabel7_Click);
|
||||||
this.arLabel7.isButton = true;
|
//
|
||||||
this.arLabel7.Location = new System.Drawing.Point(347, 216);
|
// tableLayoutPanel1
|
||||||
this.arLabel7.Margin = new System.Windows.Forms.Padding(5);
|
//
|
||||||
this.arLabel7.MouseDownColor = System.Drawing.Color.Yellow;
|
this.tableLayoutPanel1.ColumnCount = 3;
|
||||||
this.arLabel7.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
|
||||||
this.arLabel7.msg = null;
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
|
||||||
this.arLabel7.Name = "arLabel7";
|
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
|
||||||
this.arLabel7.ProgressBorderColor = System.Drawing.Color.Black;
|
this.tableLayoutPanel1.Controls.Add(this.btOpenDir, 0, 0);
|
||||||
this.arLabel7.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
|
this.tableLayoutPanel1.Controls.Add(this.btAutoRestart, 2, 2);
|
||||||
this.arLabel7.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
|
this.tableLayoutPanel1.Controls.Add(this.btTaskMgr, 1, 0);
|
||||||
this.arLabel7.ProgressEnable = false;
|
this.tableLayoutPanel1.Controls.Add(this.btMakePatch, 1, 2);
|
||||||
this.arLabel7.ProgressFont = new System.Drawing.Font("Consolas", 10F);
|
this.tableLayoutPanel1.Controls.Add(this.btStartMenu, 2, 0);
|
||||||
this.arLabel7.ProgressForeColor = System.Drawing.Color.Black;
|
this.tableLayoutPanel1.Controls.Add(this.btEmulator, 0, 2);
|
||||||
this.arLabel7.ProgressMax = 100F;
|
this.tableLayoutPanel1.Controls.Add(this.btShutdown, 0, 1);
|
||||||
this.arLabel7.ProgressMin = 0F;
|
this.tableLayoutPanel1.Controls.Add(this.btRestart, 1, 1);
|
||||||
this.arLabel7.ProgressPadding = new System.Windows.Forms.Padding(0);
|
this.tableLayoutPanel1.Controls.Add(this.btProcessList, 2, 1);
|
||||||
this.arLabel7.ProgressValue = 0F;
|
this.tableLayoutPanel1.Controls.Add(this.button1, 0, 3);
|
||||||
this.arLabel7.ShadowColor = System.Drawing.Color.Black;
|
this.tableLayoutPanel1.Controls.Add(this.button2, 1, 3);
|
||||||
this.arLabel7.Sign = "";
|
this.tableLayoutPanel1.Controls.Add(this.button3, 2, 3);
|
||||||
this.arLabel7.SignAlign = System.Drawing.ContentAlignment.BottomRight;
|
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.arLabel7.SignColor = System.Drawing.Color.Yellow;
|
this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 10);
|
||||||
this.arLabel7.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
|
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||||
this.arLabel7.Size = new System.Drawing.Size(165, 100);
|
this.tableLayoutPanel1.RowCount = 4;
|
||||||
this.arLabel7.TabIndex = 6;
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
|
||||||
this.arLabel7.Text = "자동 재시작";
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
|
||||||
this.arLabel7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
|
||||||
this.arLabel7.TextShadow = true;
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F));
|
||||||
this.arLabel7.TextVisible = true;
|
this.tableLayoutPanel1.Size = new System.Drawing.Size(633, 356);
|
||||||
this.arLabel7.Click += new System.EventHandler(this.arLabel7_Click);
|
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
|
// fSystem
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
|
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
|
||||||
this.ClientSize = new System.Drawing.Size(519, 451);
|
this.ClientSize = new System.Drawing.Size(653, 473);
|
||||||
this.Controls.Add(this.arLabel7);
|
this.Controls.Add(this.tableLayoutPanel1);
|
||||||
this.Controls.Add(this.arLabel5);
|
|
||||||
this.Controls.Add(this.arLabel3);
|
|
||||||
this.Controls.Add(this.label2);
|
this.Controls.Add(this.label2);
|
||||||
this.Controls.Add(this.label1);
|
this.Controls.Add(this.label1);
|
||||||
this.Controls.Add(this.arLabel4);
|
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.MaximizeBox = false;
|
||||||
this.MinimizeBox = false;
|
this.MinimizeBox = false;
|
||||||
this.Name = "fSystem";
|
this.Name = "fSystem";
|
||||||
|
this.Padding = new System.Windows.Forms.Padding(10);
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||||
this.Text = "fSystem";
|
this.Text = "fSystem";
|
||||||
this.Load += new System.EventHandler(this.fSystem_Load);
|
this.Load += new System.EventHandler(this.fSystem_Load);
|
||||||
|
this.tableLayoutPanel1.ResumeLayout(false);
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
private arCtl.arLabel lbMsg;
|
private System.Windows.Forms.Button btOpenDir;
|
||||||
private arCtl.arLabel arLabel4;
|
private System.Windows.Forms.Button arLabel4;
|
||||||
private arCtl.arLabel arLabel6;
|
private System.Windows.Forms.Button btTaskMgr;
|
||||||
private arCtl.arLabel arLabel9;
|
private System.Windows.Forms.Button btShutdown;
|
||||||
private arCtl.arLabel arLabel10;
|
private System.Windows.Forms.Button btRestart;
|
||||||
private arCtl.arLabel arLabel1;
|
private System.Windows.Forms.Button btStartMenu;
|
||||||
private arCtl.arLabel arLabel2;
|
private System.Windows.Forms.Button btProcessList;
|
||||||
private System.Windows.Forms.Label label1;
|
private System.Windows.Forms.Label label1;
|
||||||
private System.Windows.Forms.Label label2;
|
private System.Windows.Forms.Label label2;
|
||||||
private arCtl.arLabel arLabel3;
|
private System.Windows.Forms.Button btEmulator;
|
||||||
private arCtl.arLabel arLabel5;
|
private System.Windows.Forms.Button btMakePatch;
|
||||||
private arCtl.arLabel arLabel7;
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -154,5 +154,13 @@ namespace Project.Dialog
|
|||||||
{
|
{
|
||||||
PUB.SystemReboot(5,true);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
239
Cs_HMI/Project/Dialog/fXbeeSetting.Designer.cs
generated
Normal file
239
Cs_HMI/Project/Dialog/fXbeeSetting.Designer.cs
generated
Normal 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
193
Cs_HMI/Project/Dialog/fXbeeSetting.cs
Normal file
193
Cs_HMI/Project/Dialog/fXbeeSetting.cs
Normal 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;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
123
Cs_HMI/Project/Dialog/fXbeeSetting.resx
Normal file
123
Cs_HMI/Project/Dialog/fXbeeSetting.resx
Normal 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>
|
||||||
@@ -117,6 +117,11 @@ namespace Project
|
|||||||
PUB.sm.SetNewRunStep(ERunStep.READY);
|
PUB.sm.SetNewRunStep(ERunStep.READY);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PUB._mapCanvas.CurrentPath = PathResult.result;
|
||||||
|
PUB._virtualAGV.SetPath(PathResult.result);
|
||||||
|
}
|
||||||
|
|
||||||
PUB.log.AddI($"경로생성 {PUB._virtualAGV.StartNode.RfidId} -> {PUB._virtualAGV.TargetNode.RfidId}");
|
PUB.log.AddI($"경로생성 {PUB._virtualAGV.StartNode.RfidId} -> {PUB._virtualAGV.TargetNode.RfidId}");
|
||||||
}
|
}
|
||||||
@@ -133,8 +138,16 @@ namespace Project
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//predict 를 이용하여 다음 이동을 모두 확인한다.
|
//predict 를 이용하여 다음 이동을 모두 확인한다.
|
||||||
var nextAction = PUB._virtualAGV.Predict();
|
var nextAction = PUB._virtualAGV.Predict();
|
||||||
|
if(nextAction.Reason == AGVNavigationCore.Models.eAGVCommandReason.PathOut)
|
||||||
|
{
|
||||||
|
//경로이탈
|
||||||
|
PUB._virtualAGV.CurrentPath.DetailedPath.Clear();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
var message = $"[다음 행동 예측]\n\n" +
|
var message = $"[다음 행동 예측]\n\n" +
|
||||||
$"모터: {nextAction.Motor}\n" +
|
$"모터: {nextAction.Motor}\n" +
|
||||||
|
|||||||
@@ -106,8 +106,7 @@ namespace Project
|
|||||||
PUB.log.Add($"충전상태전환 {agv_chg}");
|
PUB.log.Add($"충전상태전환 {agv_chg}");
|
||||||
VAR.BOOL[eVarBool.FLAG_CHARGEONA] = 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])
|
if (PUB.AGV.error.Charger_pos_error != VAR.BOOL[eVarBool.CHG_POSERR])
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -25,15 +25,18 @@ namespace Project
|
|||||||
DateTime lastbmstime = DateTime.Now;
|
DateTime lastbmstime = DateTime.Now;
|
||||||
private void Bms_Message(object sender, arDev.BMS.MessageEventArgs e)
|
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
|
else
|
||||||
{
|
{
|
||||||
|
VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now;
|
||||||
|
|
||||||
var hexstr = e.Data.GetHexString().Trim();
|
var hexstr = e.Data.GetHexString().Trim();
|
||||||
bool addlog = false;
|
bool addlog = false;
|
||||||
var logtimesec = 30;
|
var logtimesec = 30;
|
||||||
if (hexstr.StartsWith("DD 04"))
|
if (hexstr.StartsWith("DD 04"))
|
||||||
{
|
{
|
||||||
if (lastbms04.Equals(hexstr.Substring(0,5)) == false)
|
if (lastbms04.Equals(hexstr.Substring(0, 5)) == false)
|
||||||
{
|
{
|
||||||
addlog = true;
|
addlog = true;
|
||||||
lastbms04 = "DD 04";
|
lastbms04 = "DD 04";
|
||||||
@@ -133,32 +136,44 @@ namespace Project
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(addlog)
|
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)
|
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;
|
VAR.BOOL[eVarBool.FLAG_CHARGEONM] = true;
|
||||||
PUB.Speak(Lang.충전이감지되어수동충전으로전환합니다);
|
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)
|
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.BatteryLevel = PUB.BMS.Current_Level;
|
||||||
//PUB.mapctl.Manager.agv.BatteryTemp1 = PUB.BMS.Current_temp1;
|
//PUB.mapctl.Manager.agv.BatteryTemp1 = PUB.BMS.Current_temp1;
|
||||||
//PUB.mapctl.Manager.agv.BatteryTemp2 = PUB.BMS.Current_temp2;
|
//PUB.mapctl.Manager.agv.BatteryTemp2 = PUB.BMS.Current_temp2;
|
||||||
@@ -188,6 +203,7 @@ namespace Project
|
|||||||
}
|
}
|
||||||
private void BMS_BMSCellDataReceive(object sender, arDev.BMSCelvoltageEventArgs e)
|
private void BMS_BMSCellDataReceive(object sender, arDev.BMSCelvoltageEventArgs e)
|
||||||
{
|
{
|
||||||
|
VAR.TIME[eVarTime.LastRecv_BAT] = DateTime.Now;
|
||||||
EEMStatus.MakeBMSInformation_Cell();
|
EEMStatus.MakeBMSInformation_Cell();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,9 +46,12 @@ namespace Project
|
|||||||
|
|
||||||
// XBee 연결
|
// XBee 연결
|
||||||
lock (connectobj)
|
lock (connectobj)
|
||||||
|
{
|
||||||
|
if (VAR.BOOL[eVarBool.DISABLE_AUTOCONN_XBEE] == false)
|
||||||
{
|
{
|
||||||
ConnectSerialPort(PUB.XBE, PUB.setting.Port_XBE, PUB.setting.Baud_XBE,
|
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)
|
else if (PUB.BMS.IsValid == false)
|
||||||
{
|
{
|
||||||
var ts = VAR.TIME.RUN(eVarTime.LastConnTry_BAT);
|
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(() =>
|
this.BeginInvoke(new Action(() =>
|
||||||
{
|
{
|
||||||
@@ -84,7 +87,6 @@ namespace Project
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ========== 2. XBee 상태 전송 ==========
|
// ========== 2. XBee 상태 전송 ==========
|
||||||
if (PUB.XBE != null && PUB.XBE.IsOpen)
|
if (PUB.XBE != null && PUB.XBE.IsOpen)
|
||||||
{
|
{
|
||||||
@@ -147,7 +149,7 @@ namespace Project
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 시리얼 포트 연결 (arDev.arRS232)
|
/// 시리얼 포트 연결 (arDev.arRS232)
|
||||||
/// </summary>
|
/// </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;
|
if (port.isEmpty()) return false;
|
||||||
|
|
||||||
@@ -159,13 +161,13 @@ namespace Project
|
|||||||
VAR.TIME.Update(conntry);
|
VAR.TIME.Update(conntry);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
VAR.TIME.Update(recvtime);
|
if (recvtime != null) VAR.TIME.Update(recvtime);
|
||||||
dev.PortName = port;
|
dev.PortName = port;
|
||||||
dev.BaudRate = baud;
|
dev.BaudRate = baud;
|
||||||
PUB.log.Add($"Connect to {port}:{baud}");
|
PUB.log.Add($"Connect to {port}:{baud}");
|
||||||
if (dev.Open())
|
if (dev.Open())
|
||||||
{
|
{
|
||||||
VAR.TIME[recvtime] = DateTime.Now; //값을 수신한것처럼한다
|
if (recvtime != null) VAR.TIME[recvtime] = DateTime.Now; //값을 수신한것처럼한다
|
||||||
PUB.log.Add(port, $"[{port}:{baud}] 연결 완료");
|
PUB.log.Add(port, $"[{port}:{baud}] 연결 완료");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -202,12 +204,12 @@ namespace Project
|
|||||||
|
|
||||||
VAR.TIME.Update(conntry);
|
VAR.TIME.Update(conntry);
|
||||||
}
|
}
|
||||||
else if (dev.IsOpen)
|
else if (dev.IsOpen && recvtime != null)
|
||||||
{
|
{
|
||||||
//연결은 되었으나 통신이 지난지 10초가 지났다면 자동종료한다
|
//연결은 되었으나 통신이 지난지 10초가 지났다면 자동종료한다
|
||||||
var tsRecv = VAR.TIME.RUN(recvtime);
|
var tsRecv = VAR.TIME.RUN(recvtime);
|
||||||
var tsConn = VAR.TIME.RUN(conntry);
|
var tsConn = VAR.TIME.RUN(conntry);
|
||||||
if (tsRecv.TotalSeconds > 10 && tsConn.TotalSeconds > 5)
|
if (tsRecv.TotalSeconds > 30 && tsConn.TotalSeconds > 5)
|
||||||
{
|
{
|
||||||
this.BeginInvoke(new Action(() =>
|
this.BeginInvoke(new Action(() =>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -566,10 +566,14 @@ namespace Project
|
|||||||
if (PUB.sm.Step > eSMStep.INIT)
|
if (PUB.sm.Step > eSMStep.INIT)
|
||||||
{
|
{
|
||||||
//오류가 있다면 오류를 표시해준다.
|
//오류가 있다면 오류를 표시해준다.
|
||||||
if (PUB.AGV.IsOpen == false)
|
if (PUB.AGV.IsOpen == false )
|
||||||
{
|
{
|
||||||
UpdateStatusMessage("AGV 연결실패", Color.Tomato, Color.Black);
|
UpdateStatusMessage("AGV 연결실패", Color.Tomato, Color.Black);
|
||||||
}
|
}
|
||||||
|
else if(PUB.AGV.IsValid==false)
|
||||||
|
{
|
||||||
|
UpdateStatusMessage("AGV 통신상태 불량", Color.Tomato, Color.Black);
|
||||||
|
}
|
||||||
else if (PUB.AGV.error.Emergency)
|
else if (PUB.AGV.error.Emergency)
|
||||||
{
|
{
|
||||||
if (PUB.AGV.error.runerror_by_no_magent_line)
|
if (PUB.AGV.error.runerror_by_no_magent_line)
|
||||||
@@ -581,6 +585,14 @@ namespace Project
|
|||||||
UpdateStatusMessage("비상 정지", Color.Tomato, Color.Black);
|
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)
|
//else if (PUB.PLC.IsOpen == false)
|
||||||
//{
|
//{
|
||||||
// UpdateStatusMessage(Lang.PLC연결실패, Color.Tomato, Color.Black);
|
// UpdateStatusMessage(Lang.PLC연결실패, Color.Tomato, Color.Black);
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ namespace Project
|
|||||||
|
|
||||||
case ENIGProtocol.AGVCommandHE.GotoAlias:
|
case ENIGProtocol.AGVCommandHE.GotoAlias:
|
||||||
case ENIGProtocol.AGVCommandHE.Goto: //move to tag
|
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)
|
if (data.Length > datalength)
|
||||||
{
|
{
|
||||||
var currTag = System.Text.Encoding.Default.GetString(data, 1, data.Length - 1).Trim();
|
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}");
|
else PUB.log.AddE($"[{logPrefix}-{cmd}] Length Error:{data.Length}");
|
||||||
break;
|
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
|
case ENIGProtocol.AGVCommandHE.Stop: //stop
|
||||||
PUB.log.Add($"[{logPrefix}-Stop]");
|
PUB.log.Add($"[{logPrefix}-Stop]");
|
||||||
PUB.AGV.AGVMoveStop("xbee");
|
PUB.AGV.AGVMoveStop("xbee");
|
||||||
@@ -205,6 +222,7 @@ namespace Project
|
|||||||
var MotDirection = data[1]; //0=back, 1=forward
|
var MotDirection = data[1]; //0=back, 1=forward
|
||||||
var MagDirection = data[2]; //0=straight, 1=left, 2=right
|
var MagDirection = data[2]; //0=straight, 1=left, 2=right
|
||||||
var AutSpeed = data[3]; //0=slow, 1=normal, 2=fast
|
var AutSpeed = data[3]; //0=slow, 1=normal, 2=fast
|
||||||
|
var Lidar = data[4]; //0=off, 1=on
|
||||||
|
|
||||||
var bunkidata = new arDev.Narumi.BunkiData();
|
var bunkidata = new arDev.Narumi.BunkiData();
|
||||||
|
|
||||||
@@ -221,6 +239,9 @@ namespace Project
|
|||||||
else if (MagDirection == 1) bunkidata.Bunki = arDev.Narumi.eBunki.Left;
|
else if (MagDirection == 1) bunkidata.Bunki = arDev.Narumi.eBunki.Left;
|
||||||
else bunkidata.Bunki = arDev.Narumi.eBunki.Strate;
|
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.log.Add($"[{logPrefix}-AutoMove] DIR:{bunkidata.Direction}-{bunkidata.Bunki},SPD:{bunkidata.Speed}");
|
||||||
PUB.AGV.AGVMoveSet(bunkidata);
|
PUB.AGV.AGVMoveSet(bunkidata);
|
||||||
PUB.AGV.AGVMoveRun((MotDirection == 0 ? arDev.Narumi.eRunOpt.Backward : arDev.Narumi.eRunOpt.Forward));
|
PUB.AGV.AGVMoveRun((MotDirection == 0 ? arDev.Narumi.eRunOpt.Backward : arDev.Narumi.eRunOpt.Forward));
|
||||||
@@ -255,7 +276,7 @@ namespace Project
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
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}");
|
PUB.XBE.SendError(ENIGProtocol.AGVErrorCode.UnknownCommand, $"{cmd}");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -301,6 +322,19 @@ namespace Project
|
|||||||
if (advancedResult.DockingValidation == null || !advancedResult.DockingValidation.IsValidationRequired)
|
if (advancedResult.DockingValidation == null || !advancedResult.DockingValidation.IsValidationRequired)
|
||||||
advancedResult.DockingValidation = DockingValidator.ValidateDockingDirection(advancedResult, _mapNodes);
|
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;
|
_simulatorCanvas.CurrentPath = advancedResult;
|
||||||
//_pathLengthLabel.Text = $"경로 길이: {advancedResult.TotalDistance:F1}";
|
//_pathLengthLabel.Text = $"경로 길이: {advancedResult.TotalDistance:F1}";
|
||||||
//_statusLabel.Text = $"경로 계산 완료 ({advancedResult.CalculationTimeMs}ms)";
|
//_statusLabel.Text = $"경로 계산 완료 ({advancedResult.CalculationTimeMs}ms)";
|
||||||
|
|||||||
@@ -43,11 +43,19 @@ namespace Project.ViewForm
|
|||||||
|
|
||||||
private void OnNodeSelected(object sender, NodeBase node, MouseEventArgs e)
|
private void OnNodeSelected(object sender, NodeBase node, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.Button != MouseButtons.Right) return;
|
|
||||||
if (node == null) return;
|
if (node == null) return;
|
||||||
var mapnode = node as MapNode;
|
var mapnode = node as MapNode;
|
||||||
if (mapnode == null) return;
|
if (mapnode == null) return;
|
||||||
|
|
||||||
|
// [Run Mode] Left Click: AGV Operation
|
||||||
|
if (PUB._mapCanvas.Mode == AGVNavigationCore.Controls.UnifiedAGVCanvas.CanvasMode.Run && e.Button == MouseButtons.Left)
|
||||||
|
{
|
||||||
|
HandleRunModeClick(mapnode);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.Button != MouseButtons.Right) return;
|
||||||
|
|
||||||
// 도킹 가능한 노드인지 또는 작업 노드인지 확인
|
// 도킹 가능한 노드인지 또는 작업 노드인지 확인
|
||||||
if (mapnode.isDockingNode == false) return;
|
if (mapnode.isDockingNode == false) return;
|
||||||
|
|
||||||
@@ -129,35 +137,15 @@ namespace Project.ViewForm
|
|||||||
private void fAuto_Load(object sender, EventArgs e)
|
private void fAuto_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ctlAuto1.dev_agv = PUB.AGV;
|
ctlAuto1.dev_agv = PUB.AGV;
|
||||||
// ctlAuto1.dev_plc = PUB.PLC;
|
|
||||||
ctlAuto1.dev_bms = PUB.BMS;
|
ctlAuto1.dev_bms = PUB.BMS;
|
||||||
ctlAuto1.dev_xbe = PUB.XBE;
|
ctlAuto1.dev_xbe = PUB.XBE;
|
||||||
|
|
||||||
PUB.AGV.DataReceive += AGV_DataReceive;
|
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();
|
this.timer1.Start();
|
||||||
|
|
||||||
|
// Set Run Mode
|
||||||
|
PUB._mapCanvas.Mode = AGVNavigationCore.Controls.UnifiedAGVCanvas.CanvasMode.Run;
|
||||||
}
|
}
|
||||||
private void AGV_DataReceive(object sender, arDev.Narumi.DataEventArgs e)
|
private void AGV_DataReceive(object sender, arDev.Narumi.DataEventArgs e)
|
||||||
{
|
{
|
||||||
@@ -194,6 +182,9 @@ namespace Project.ViewForm
|
|||||||
PUB.sm.StepChanged -= Sm_StepChanged;
|
PUB.sm.StepChanged -= Sm_StepChanged;
|
||||||
this.ctlAuto1.ButtonClick -= CtlAuto1_ButtonClick;
|
this.ctlAuto1.ButtonClick -= CtlAuto1_ButtonClick;
|
||||||
PUB.AGV.DataReceive -= AGV_DataReceive;
|
PUB.AGV.DataReceive -= AGV_DataReceive;
|
||||||
|
|
||||||
|
// Reset Mode to Edit
|
||||||
|
PUB._mapCanvas.Mode = AGVNavigationCore.Controls.UnifiedAGVCanvas.CanvasMode.Edit;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool tmrun = false;
|
bool tmrun = false;
|
||||||
@@ -201,7 +192,15 @@ namespace Project.ViewForm
|
|||||||
private void fAuto_VisibleChanged(object sender, EventArgs e)
|
private void fAuto_VisibleChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
this.timer1.Enabled = this.Visible;
|
this.timer1.Enabled = this.Visible;
|
||||||
if (timer1.Enabled) timer1.Start();
|
if (timer1.Enabled)
|
||||||
|
{
|
||||||
|
timer1.Start();
|
||||||
|
// 화면이 보일 때 Run 모드로 강제 설정
|
||||||
|
if (PUB._mapCanvas.Mode != AGVNavigationCore.Controls.UnifiedAGVCanvas.CanvasMode.Run)
|
||||||
|
{
|
||||||
|
PUB._mapCanvas.Mode = AGVNavigationCore.Controls.UnifiedAGVCanvas.CanvasMode.Run;
|
||||||
|
}
|
||||||
|
}
|
||||||
else timer1.Stop();
|
else timer1.Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -236,5 +235,49 @@ namespace Project.ViewForm
|
|||||||
|
|
||||||
//tmrun = false;
|
//tmrun = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void HandleRunModeClick(MapNode targetNode)
|
||||||
|
{
|
||||||
|
if (targetNode == null) return;
|
||||||
|
|
||||||
|
ENIGProtocol.AGVCommandHE targetCmd = ENIGProtocol.AGVCommandHE.Goto;
|
||||||
|
string confirmMsg = "";
|
||||||
|
|
||||||
|
if (targetNode.StationType == StationType.Charger)
|
||||||
|
{
|
||||||
|
if (MessageBox.Show($"[{targetNode.Id}] 충전기로 이동하여 충전을 진행하시겠습니까?", "작업 확인", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
targetCmd = ENIGProtocol.AGVCommandHE.Charger;
|
||||||
|
ExecuteManualCommand(targetNode, targetCmd);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (targetNode.isDockingNode)
|
||||||
|
{
|
||||||
|
// Loader, Unloader, Buffer, Cleaner - Pick/Drop Selection
|
||||||
|
ContextMenuStrip menu = new ContextMenuStrip();
|
||||||
|
|
||||||
|
var pickOn = new ToolStripMenuItem("Pick On (Move & Pick)");
|
||||||
|
pickOn.Click += (s, args) => ExecuteManualCommand(targetNode, ENIGProtocol.AGVCommandHE.PickOn);
|
||||||
|
menu.Items.Add(pickOn);
|
||||||
|
|
||||||
|
var pickOff = new ToolStripMenuItem("Pick Off (Move & Drop)");
|
||||||
|
pickOff.Click += (s, args) => ExecuteManualCommand(targetNode, ENIGProtocol.AGVCommandHE.PickOff);
|
||||||
|
menu.Items.Add(pickOff);
|
||||||
|
|
||||||
|
menu.Show(Cursor.Position);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Normal Node
|
||||||
|
if (MessageBox.Show($"[{targetNode.Id}] 노드로 이동하시겠습니까?", "이동 확인", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||||
|
{
|
||||||
|
targetCmd = ENIGProtocol.AGVCommandHE.Goto;
|
||||||
|
ExecuteManualCommand(targetNode, targetCmd);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ namespace Project.ViewForm
|
|||||||
{
|
{
|
||||||
timer1.Stop();
|
timer1.Stop();
|
||||||
this.arLabel1.Text = PUB.BMS.Current_Level.ToString("N1") + "%";
|
this.arLabel1.Text = PUB.BMS.Current_Level.ToString("N1") + "%";
|
||||||
this.arLabel1.Sign = 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.cv1.Text = PUB.BMS.CellVoltage[0].ToString("N3") + "v";
|
||||||
this.cv2.Text = PUB.BMS.CellVoltage[1].ToString("N3") + "v";
|
this.cv2.Text = PUB.BMS.CellVoltage[1].ToString("N3") + "v";
|
||||||
this.cv3.Text = PUB.BMS.CellVoltage[2].ToString("N3") + "v";
|
this.cv3.Text = PUB.BMS.CellVoltage[2].ToString("N3") + "v";
|
||||||
|
|||||||
313
Cs_HMI/Project/ViewForm/fFlag.Designer.cs
generated
313
Cs_HMI/Project/ViewForm/fFlag.Designer.cs
generated
@@ -29,34 +29,42 @@
|
|||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
this.components = new System.ComponentModel.Container();
|
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.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.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();
|
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();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// tableLayoutPanel1
|
// tableLayoutPanel1
|
||||||
//
|
//
|
||||||
this.tableLayoutPanel1.ColumnCount = 4;
|
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, 30F));
|
||||||
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, 30F));
|
||||||
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, 20F));
|
||||||
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, 20F));
|
||||||
this.tableLayoutPanel1.Controls.Add(this.listView1, 0, 0);
|
this.tableLayoutPanel1.Controls.Add(this.dv4, 2, 1);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.listView2, 1, 0);
|
this.tableLayoutPanel1.Controls.Add(this.dv3, 2, 0);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.listView3, 2, 0);
|
this.tableLayoutPanel1.Controls.Add(this.dv2, 1, 0);
|
||||||
this.tableLayoutPanel1.Controls.Add(this.listView4, 3, 0);
|
this.tableLayoutPanel1.Controls.Add(this.dv1, 0, 0);
|
||||||
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3);
|
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3);
|
||||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||||
@@ -66,92 +74,167 @@
|
|||||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(1050, 577);
|
this.tableLayoutPanel1.Size = new System.Drawing.Size(1050, 577);
|
||||||
this.tableLayoutPanel1.TabIndex = 6;
|
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
|
// timer1
|
||||||
//
|
//
|
||||||
this.timer1.Interval = 500;
|
this.timer1.Interval = 500;
|
||||||
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
|
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
|
// fFlag
|
||||||
//
|
//
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||||
@@ -165,6 +248,10 @@
|
|||||||
this.Load += new System.EventHandler(this.fFlag_Load);
|
this.Load += new System.EventHandler(this.fFlag_Load);
|
||||||
this.VisibleChanged += new System.EventHandler(this.fFlag_VisibleChanged);
|
this.VisibleChanged += new System.EventHandler(this.fFlag_VisibleChanged);
|
||||||
this.tableLayoutPanel1.ResumeLayout(false);
|
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);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -173,17 +260,17 @@
|
|||||||
|
|
||||||
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
|
||||||
private System.Windows.Forms.Timer timer1;
|
private System.Windows.Forms.Timer timer1;
|
||||||
private System.Windows.Forms.ListView listView1;
|
private System.Windows.Forms.DataGridView dv4;
|
||||||
private System.Windows.Forms.ListView listView2;
|
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5;
|
||||||
private System.Windows.Forms.ListView listView3;
|
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6;
|
||||||
private System.Windows.Forms.ListView listView4;
|
private System.Windows.Forms.DataGridView dv3;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader1;
|
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader2;
|
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader3;
|
private System.Windows.Forms.DataGridView dv2;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader4;
|
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader5;
|
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader6;
|
private System.Windows.Forms.DataGridView dv1;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader7;
|
private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
|
||||||
private System.Windows.Forms.ColumnHeader columnHeader8;
|
private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -30,16 +30,18 @@ namespace Project.ViewForm
|
|||||||
|
|
||||||
void MakeControl()
|
void MakeControl()
|
||||||
{
|
{
|
||||||
ListView[] lvs = new ListView[] { listView1, listView2, listView3, listView4 };
|
DataGridView[] dvs = new DataGridView[] { dv1, dv2, dv3, dv4 };
|
||||||
foreach (var lv in lvs)
|
|
||||||
|
foreach(var lv in dvs)
|
||||||
{
|
{
|
||||||
lv.Columns.Clear();
|
lv.Columns.Clear();
|
||||||
lv.Columns.Add("Idx");
|
lv.Columns.Add("idx", "*");
|
||||||
lv.Columns.Add("Title");
|
lv.Columns.Add("Title", "Title");
|
||||||
lv.Columns.Add("Value");
|
lv.Columns.Add("Value", "Value");
|
||||||
lv.Columns[0].Width = 25;
|
lv.Columns[0].Width = 25;
|
||||||
lv.Columns[1].Width = 150;
|
lv.Columns[1].Width = 150;
|
||||||
lv.Columns[2].Width = 100;
|
lv.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
|
||||||
|
|
||||||
}
|
}
|
||||||
Array valuelist;
|
Array valuelist;
|
||||||
|
|
||||||
@@ -47,38 +49,33 @@ namespace Project.ViewForm
|
|||||||
foreach (var item in valuelist)
|
foreach (var item in valuelist)
|
||||||
{
|
{
|
||||||
var v = (COMM.eVarBool)item;
|
var v = (COMM.eVarBool)item;
|
||||||
var lv = listView1.Items.Add($"{(int)v}");
|
dv1.Rows.Add($"{(int)v}", item, "--");
|
||||||
lv.SubItems.Add($"{item}");
|
|
||||||
lv.SubItems.Add("--");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
valuelist = Enum.GetValues(typeof(COMM.eVarInt32));
|
valuelist = Enum.GetValues(typeof(COMM.eVarInt32));
|
||||||
foreach (var item in valuelist)
|
foreach (var item in valuelist)
|
||||||
{
|
{
|
||||||
var v = (COMM.eVarInt32)item;
|
var v = (COMM.eVarInt32)item;
|
||||||
var lv = listView2.Items.Add($"{(int)v}");
|
dv2.Rows.Add($"{(int)v}", item, "--");
|
||||||
lv.SubItems.Add($"{item}");
|
|
||||||
lv.SubItems.Add("--");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
valuelist = Enum.GetValues(typeof(COMM.eVarString));
|
valuelist = Enum.GetValues(typeof(COMM.eVarString));
|
||||||
foreach (var item in valuelist)
|
foreach (var item in valuelist)
|
||||||
{
|
{
|
||||||
var v = (COMM.eVarString)item;
|
var v = (COMM.eVarString)item;
|
||||||
var lv = listView3.Items.Add($"{(int)v}");
|
dv3.Rows.Add($"{(int)v}", item, "--");
|
||||||
lv.SubItems.Add($"{item}");
|
|
||||||
lv.SubItems.Add("--");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
valuelist = Enum.GetValues(typeof(COMM.eVarTime));
|
valuelist = Enum.GetValues(typeof(COMM.eVarTime));
|
||||||
foreach (var item in valuelist)
|
foreach (var item in valuelist)
|
||||||
{
|
{
|
||||||
var v = (COMM.eVarString)item;
|
var v = (COMM.eVarString)item;
|
||||||
var lv = listView4.Items.Add($"{(int)v}");
|
dv4.Rows.Add($"{(int)v}", item, "--");
|
||||||
lv.SubItems.Add($"{item}");
|
|
||||||
lv.SubItems.Add("--");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (var dv in dvs)
|
||||||
|
dv.AutoResizeColumns();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,42 +88,32 @@ namespace Project.ViewForm
|
|||||||
private void timer1_Tick(object sender, EventArgs e)
|
private void timer1_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
timer1.Stop();
|
timer1.Stop();
|
||||||
listView1.SuspendLayout();
|
foreach(DataGridViewRow item in this.dv1.Rows)
|
||||||
foreach (ListViewItem item in listView1.Items)
|
|
||||||
{
|
{
|
||||||
var idx = int.Parse(item.SubItems[0].Text);
|
var idx = int.Parse(item.Cells["idx"].Value.ToString());
|
||||||
var v = VAR.BOOL.Get(idx);
|
var v = VAR.BOOL.Get(idx);
|
||||||
var desc = VAR.BOOL.GetCodeDesc(idx);
|
item.Cells["value"].Value = v ? "O" : "X";
|
||||||
item.SubItems[2].Text = v ? "O" : "X";
|
|
||||||
}
|
}
|
||||||
listView1.ResumeLayout();
|
|
||||||
listView2.SuspendLayout();
|
foreach (DataGridViewRow item in this.dv2.Rows)
|
||||||
foreach (ListViewItem item in listView2.Items)
|
|
||||||
{
|
{
|
||||||
var idx = int.Parse(item.SubItems[0].Text);
|
var idx = int.Parse(item.Cells["idx"].Value.ToString());
|
||||||
var v = VAR.I32.Get(idx);
|
var v = VAR.I32.Get(idx);
|
||||||
var desc = VAR.I32.GetCodeDesc(idx);
|
item.Cells["value"].Value = v.ToString();
|
||||||
item.SubItems[2].Text = v.ToString();
|
|
||||||
}
|
}
|
||||||
listView2.ResumeLayout();
|
|
||||||
listView3.SuspendLayout();
|
foreach (DataGridViewRow item in this.dv3.Rows)
|
||||||
foreach (ListViewItem item in listView3.Items)
|
|
||||||
{
|
{
|
||||||
var idx = int.Parse(item.SubItems[0].Text);
|
var idx = int.Parse(item.Cells["idx"].Value.ToString());
|
||||||
var v = VAR.STR.Get(idx);
|
var v = VAR.STR.Get(idx);
|
||||||
var desc = VAR.STR.GetCodeDesc(idx);
|
item.Cells["value"].Value = v;
|
||||||
item.SubItems[2].Text = v;
|
|
||||||
}
|
}
|
||||||
listView3.ResumeLayout();
|
foreach (DataGridViewRow item in this.dv4.Rows)
|
||||||
listView4.SuspendLayout();
|
|
||||||
foreach (ListViewItem item in listView4.Items)
|
|
||||||
{
|
{
|
||||||
var idx = int.Parse(item.SubItems[0].Text);
|
var idx = int.Parse(item.Cells["idx"].Value.ToString());
|
||||||
var v = VAR.TIME.Get(idx);
|
var v = VAR.TIME.Get(idx);
|
||||||
var desc = VAR.TIME.GetCodeDesc(idx);
|
item.Cells["value"].Value = v.ToString("HH:mm:ss.fff");
|
||||||
item.SubItems[2].Text = v.ToString("HH:mm:ss.fff");
|
|
||||||
}
|
}
|
||||||
listView4.ResumeLayout();
|
|
||||||
timer1.Start();
|
timer1.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -117,6 +117,30 @@
|
|||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</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">
|
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
|
|||||||
@@ -79,8 +79,9 @@ namespace Project.ViewForm
|
|||||||
}
|
}
|
||||||
if (PUB.CheckManualChargeMode() == false) return;
|
if (PUB.CheckManualChargeMode() == false) return;
|
||||||
arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low;
|
arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low;
|
||||||
|
|
||||||
if (radspdh.Checked) spd = arDev.Narumi.Speed.High;
|
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;
|
arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff;
|
||||||
if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn;
|
if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn;
|
||||||
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.BS, spd, ss);
|
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.BS, spd, ss);
|
||||||
@@ -109,7 +110,7 @@ namespace Project.ViewForm
|
|||||||
if (PUB.CheckManualChargeMode() == false) return;
|
if (PUB.CheckManualChargeMode() == false) return;
|
||||||
arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low;
|
arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low;
|
||||||
if (radspdh.Checked) spd = arDev.Narumi.Speed.High;
|
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;
|
arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff;
|
||||||
if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn;
|
if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn;
|
||||||
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.FS, spd, ss);
|
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.FS, spd, ss);
|
||||||
|
|||||||
184
Cs_HMI/Project/fMain.Designer.cs
generated
184
Cs_HMI/Project/fMain.Designer.cs
generated
@@ -109,6 +109,7 @@ namespace Project
|
|||||||
this.lbIDLE = new arCtl.arLabel();
|
this.lbIDLE = new arCtl.arLabel();
|
||||||
this.lbStStep = new arCtl.arLabel();
|
this.lbStStep = new arCtl.arLabel();
|
||||||
this.panTopMenu = new System.Windows.Forms.Panel();
|
this.panTopMenu = new System.Windows.Forms.Panel();
|
||||||
|
this.lbBat = new AGVControl.BatteryLevelGauge();
|
||||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||||
this.cmDebug = new System.Windows.Forms.ContextMenuStrip(this.components);
|
this.cmDebug = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||||
this.mapFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.mapFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
@@ -121,12 +122,12 @@ namespace Project
|
|||||||
this.debugtestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
this.debugtestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.pandBottomDIO = new System.Windows.Forms.Panel();
|
this.pandBottomDIO = new System.Windows.Forms.Panel();
|
||||||
this.panel9 = 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.panDlg = new System.Windows.Forms.Panel();
|
||||||
this.arPanel2 = new arCtl.arPanel();
|
this.arPanel2 = new arCtl.arPanel();
|
||||||
this.arPanel1 = new arCtl.arPanel();
|
this.arPanel1 = new arCtl.arPanel();
|
||||||
this.IOState = new arFrame.Control.GridView();
|
this.xbeeSettingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
this.SSInfo = new arFrame.Control.GridView();
|
|
||||||
this.lbBat = new AGVControl.BatteryLevelGauge();
|
|
||||||
this.panRight.SuspendLayout();
|
this.panRight.SuspendLayout();
|
||||||
this.tableLayoutPanel1.SuspendLayout();
|
this.tableLayoutPanel1.SuspendLayout();
|
||||||
this.panel4.SuspendLayout();
|
this.panel4.SuspendLayout();
|
||||||
@@ -1622,6 +1623,26 @@ namespace Project
|
|||||||
this.panTopMenu.Size = new System.Drawing.Size(1278, 50);
|
this.panTopMenu.Size = new System.Drawing.Size(1278, 50);
|
||||||
this.panTopMenu.TabIndex = 134;
|
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
|
// pictureBox1
|
||||||
//
|
//
|
||||||
this.pictureBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
|
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.선택상태보기ToolStripMenuItem,
|
||||||
this.demoListLotToolStripMenuItem,
|
this.demoListLotToolStripMenuItem,
|
||||||
this.toolStripMenuItem5,
|
this.toolStripMenuItem5,
|
||||||
this.refreshListToolStripMenuItem});
|
this.refreshListToolStripMenuItem,
|
||||||
|
this.xbeeSettingToolStripMenuItem});
|
||||||
this.cmDebug.Name = "cmVision";
|
this.cmDebug.Name = "cmVision";
|
||||||
this.cmDebug.Size = new System.Drawing.Size(229, 324);
|
this.cmDebug.Size = new System.Drawing.Size(229, 368);
|
||||||
//
|
//
|
||||||
// mapFileToolStripMenuItem
|
// mapFileToolStripMenuItem
|
||||||
//
|
//
|
||||||
@@ -1732,70 +1754,6 @@ namespace Project
|
|||||||
this.panel9.Size = new System.Drawing.Size(1278, 35);
|
this.panel9.Size = new System.Drawing.Size(1278, 35);
|
||||||
this.panel9.TabIndex = 0;
|
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
|
// IOState
|
||||||
//
|
//
|
||||||
this.IOState.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
|
this.IOState.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50)))));
|
||||||
@@ -1948,25 +1906,76 @@ namespace Project
|
|||||||
((ushort)(0))};
|
((ushort)(0))};
|
||||||
this.SSInfo.Click += new System.EventHandler(this.SSInfo_Click);
|
this.SSInfo.Click += new System.EventHandler(this.SSInfo_Click);
|
||||||
//
|
//
|
||||||
// lbBat
|
// panDlg
|
||||||
//
|
//
|
||||||
this.lbBat.BorderColor = System.Drawing.Color.DimGray;
|
this.panDlg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(64)))));
|
||||||
this.lbBat.CurA = 0F;
|
this.panDlg.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.lbBat.Dock = System.Windows.Forms.DockStyle.Right;
|
this.panDlg.Location = new System.Drawing.Point(1, 58);
|
||||||
this.lbBat.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
this.panDlg.Margin = new System.Windows.Forms.Padding(0);
|
||||||
this.lbBat.ForeColor = System.Drawing.Color.Gray;
|
this.panDlg.Name = "panDlg";
|
||||||
this.lbBat.IsOpen = true;
|
this.panDlg.Size = new System.Drawing.Size(1014, 706);
|
||||||
this.lbBat.Location = new System.Drawing.Point(830, 0);
|
this.panDlg.TabIndex = 146;
|
||||||
this.lbBat.MaxA = 0F;
|
//
|
||||||
this.lbBat.Name = "lbBat";
|
// arPanel2
|
||||||
this.lbBat.Padding = new System.Windows.Forms.Padding(0, 12, 0, 12);
|
//
|
||||||
this.lbBat.sign = "%";
|
this.arPanel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5)))));
|
||||||
this.lbBat.Size = new System.Drawing.Size(48, 50);
|
this.arPanel2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
|
||||||
this.lbBat.TabIndex = 23;
|
this.arPanel2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(25)))), ((int)(((byte)(25)))), ((int)(((byte)(25)))));
|
||||||
this.lbBat.Text = "12";
|
this.arPanel2.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 5);
|
||||||
this.lbBat.VLevel = 50F;
|
this.arPanel2.Dock = System.Windows.Forms.DockStyle.Top;
|
||||||
this.lbBat.Volt = 0F;
|
this.arPanel2.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic);
|
||||||
this.lbBat.Click += new System.EventHandler(this.lbBat_Click);
|
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
|
// fMain
|
||||||
//
|
//
|
||||||
@@ -2089,6 +2098,7 @@ namespace Project
|
|||||||
private ToolStripMenuItem saveToolStripMenuItem;
|
private ToolStripMenuItem saveToolStripMenuItem;
|
||||||
private ToolStripMenuItem loadToolStripMenuItem;
|
private ToolStripMenuItem loadToolStripMenuItem;
|
||||||
private ToolStripMenuItem editorToolStripMenuItem;
|
private ToolStripMenuItem editorToolStripMenuItem;
|
||||||
|
private ToolStripMenuItem xbeeSettingToolStripMenuItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -267,9 +267,11 @@ namespace Project
|
|||||||
if (mapPath.Exists == false) mapPath.Create();
|
if (mapPath.Exists == false) mapPath.Create();
|
||||||
|
|
||||||
//맵파일로딩
|
//맵파일로딩
|
||||||
if (PUB.setting.LastMapFile.isEmpty()) PUB.setting.LastMapFile = System.IO.Path.Combine(mapPath.FullName, "default.json");
|
var basefile = System.IO.Path.Combine(mapPath.FullName, "default.json");
|
||||||
System.IO.FileInfo filePath = new System.IO.FileInfo(PUB.setting.LastMapFile);
|
if (System.IO.File.Exists(basefile) == false)
|
||||||
if (filePath.Exists == false) filePath = new System.IO.FileInfo(System.IO.Path.Combine(mapPath.FullName, "default.json"));
|
if (PUB.setting.LastMapFile.isEmpty() == false) basefile = PUB.setting.LastMapFile;
|
||||||
|
|
||||||
|
System.IO.FileInfo filePath = new System.IO.FileInfo(basefile);
|
||||||
if (filePath.Exists == false) //그래도없다면 맵폴더에서 파일을 찾아본다.
|
if (filePath.Exists == false) //그래도없다면 맵폴더에서 파일을 찾아본다.
|
||||||
{
|
{
|
||||||
var files = mapPath.GetFiles("*.json");
|
var files = mapPath.GetFiles("*.json");
|
||||||
@@ -780,6 +782,12 @@ namespace Project
|
|||||||
{
|
{
|
||||||
if (VAR.BOOL[eVarBool.FLAG_CHARGEONM])
|
if (VAR.BOOL[eVarBool.FLAG_CHARGEONM])
|
||||||
{
|
{
|
||||||
|
if (PUB.BMS.IsValid && PUB.BMS.IsCharging)
|
||||||
|
{
|
||||||
|
UTIL.MsgE("현재 배터리에서 충전 상태가 감지되고 있어 해제할 수 없습니다");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var dlg = UTIL.MsgQ("수동 충전을 해제 할까요?");
|
var dlg = UTIL.MsgQ("수동 충전을 해제 할까요?");
|
||||||
if (dlg != DialogResult.Yes) return;
|
if (dlg != DialogResult.Yes) return;
|
||||||
VAR.BOOL[eVarBool.FLAG_CHARGEONM] = false;
|
VAR.BOOL[eVarBool.FLAG_CHARGEONM] = false;
|
||||||
@@ -1026,5 +1034,11 @@ namespace Project
|
|||||||
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void xbeeSettingToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
var f = new Dialog.fXbeeSetting();
|
||||||
|
f.Show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,160 +126,163 @@
|
|||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<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">
|
<data name="btDebug.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
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
|
||||||
hk4AAAAASUVORK5CYII=
|
XyHnuVDm6naC1JKaanrmONbppEB2abJrFoHn/QK21s0ynEiLrwAAAABJRU5ErkJggg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btOpenDir.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="btOpenDir.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAa9JREFUWEfl
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAb9JREFUWEft
|
||||||
ls8rhEEch/2IEoo/QKHcXJzEiaNyEA64cXLk5OAi/gInR04Or6IcnRy2t/b9fGbHbr0XkdoTYTlIUfbV
|
lr8vBEEUxxchEST8ARIkOo1KqFwpUQgKdFRKKoVG+AtUSirFSkiuVCk2m9zt7e7dJtcIkVxFcK4QCYld
|
||||||
+/a+b3aalux+N2XquWzPNE/T7Mzb1PTvh+/77SSXSG5UYdKcV7dB8ohk8A1lAHPm3LoMkm+WBW2Ustns
|
3517e9ZkHGLfRuEln8zsvLf7/e7M7A/tP8rlckehUFgCG03IUHnygYsfgeALfMuy5uiUZAMXf5bEPqOa
|
||||||
gDm/5mFZqBolktc1ogBM/TagXjw5jtNqCyiT1CSPSTqSZDKZbjPgnuRo+Fs+n+8sFAq9kgRB0FIRAGAR
|
y+UG6bTkQiHUjCq4/CU2ZnOK5H9sICkedF1vUxnwgQuOgc6JYRg9soFbMBaOlUqlLs/z+jgJgqD1gwGs
|
||||||
wDDJK8uWSfAMYCEJeHddt4PkoUWU5C4J0PFu3FgkSYpJwL7Wuic+hKYkBoDTKEAptRZet6bQAHaiAAAT
|
yyIYQf8iGmOmBr2FyMCLaZqdaA/pOC1uIgMuzcYVHadFJTKw77puL9pwE8pFbGAJssKAbdtraDPxZErs
|
||||||
ANYtgigA5sOAcvi3IHlgCtJorYeigxcfwAtTEOYlugtInsRP8k8fpboAwI0uIgBbAEZMoQHsJTfhDIAV
|
CANwMgnWpSQ70JwPDfjhY4H2IJ5MAyz7sNh4tAGL8WQKPIp3ATon9En+7kcpETD9ZnjjGjpbYFRVxMye
|
||||||
iyDNahSgte4nuWsRRMnlcmNRQBAEzUqpc1MQ5sP3/a40IHwYLJIkl9Hi8SEctAjSOGmAUmrWIogCYDMN
|
MIDODAysSMk0WBUGsBEGcLArJdlxHGdcGMBGaMF74ExVxMgr9l13wwAGalIBN+dCPAys/5CigBud5DUN
|
||||||
ILltCtIopabTgPBFMgVpPM/r+7oDRVMQ5jFdPA54sEiSnFUEKKWWSb5aRAluPc8brwgIB8k286tVgvRL
|
0z+rKGAFN71J8uIp2JYLuMFNT5O8WIKsqoiTfD7fT/JiBipyATP3JF0PDNxJBdycknQ9sB7LGHySiri4
|
||||||
+C+NT9lLlLEeyHt7AAAAAElFTkSuQmCC
|
xvRPkPR7INEu/7Vy0PgT/juhaW/ZS5SxdhC40QAAAABJRU5ErkJggg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btMReset.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="btMReset.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
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
|
||||||
|
eXSITOY/N4AkP6QQbUkAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btCapture.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="btCapture.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAkVJREFUWEft
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAkNJREFUWEft
|
||||||
ls+rjGEUxwcpCz8WJPnxD7j3rqRYSGRBLK4kkWyJLORPEJENdyULV8pm/Aeo2czined8zmtmMSiKxSBZ
|
lU1LVFEYx6+F0KKXhRKR9QVSVxLoQqJoUdjCiAgl3CpKi/AjiGG0KVfRIiVoM34DC2Yzi7nz1sxiKkjQ
|
||||||
+32vV+d6JzNnnhnvcEfJPfWpt/M9z3O+8z7v88xTKi3EvxKVSmUZMKWqgf5RA64CS/34Pw5gGsgKMuXH
|
xahEazVfp98znYnT47nTmRgHIg/8OM88/3PO87/n3HsmOG7/TIvH46cymcxsNptN0Ue1EJ5Bq5nWuMai
|
||||||
/zLK5fISERkXkT0e4FSkySBmVPW4nydn3Hp1NU/TdDvwMjLRqHihqtvmmler1RXA60jRqGk1m83lpfwV
|
c1D2ZNZM82+xWOxkOp3ugpsaFhxTBf7EHjv10LUWdEktU/Zny+VyfUxaUYscJcsY7K0UTyQSZ0isqQHN
|
||||||
e9H4FsnNK9a7ZGsVEc7Zl6yqd7yWM5vvhrtG/jwbqRuI9Y4aUNUttjwictJpM8C1EMI602u12mrDni0H
|
oFQsFk8Hsi0OUThw5BqK1A7krBzCY/pWtDdaM+ybr+GtYOJ9o3kjtZ0GyPXI8WBkVGl78DyVSl0QPQzD
|
||||||
XM9reprF6GsAeKyqV4B3Hbn3qroXWAVcAl51aC0RuZgkyUoR2We1kTl7GGSgB1U9EkLYBDz1WgdPkiTZ
|
NkFiyaG9MGPsOZFEGoCP5J/Sf7NyG+Ru0Z+DJ7Bq8kIJs9PJZPIs/W1+b1haJLUMHIJxD3jKy8SftWbx
|
||||||
CByLaD0MY+B+lmWL87X2miexWhF5GNG6KGxARA4ZPt8PVT0IHPZ5T2EDwBrgdiQfRURuNRqNtT7vKWrg
|
CROX6IdV3kk9BhbL5fIJxspZu3SbpIxlJ947tN/wNsBi9wSX5oI179Lf13mNtwFoh3mViwSzrwuFwnmX
|
||||||
a5Zli4q80jaq+sDG2FivubpCBjI7sYB7Pj+Acn7C+nwXhQ2o6g7grM/3Q1XPhBB2+rxnGAM3bI8Db70W
|
ZuNrYJctbfHZ0iqs+U7mEO9qzcZ7B+TGol/Q+RrEzA3r0n7hbYAx/fSPdD4Kxk/wxVxzaTb1GHgp3zjx
|
||||||
4U3+629GND9vMQPAlxDCmKruBj5G9DYfgF3AhI2J6F0MY8B4lqbp+hDCVhGRiF6zI9xqgOcRvYdhDRgt
|
V605WDdP/0rlD+FtAHZ4ok7G3iDeUprNJlyHbtgxuUjqMSB84W/7Ikau8kKmHXrIWj0yhnhJaU7qNSCU
|
||||||
YH9+9o+JyFEjTdPNllPVA+6IHsjvGGjzCLggIicMewbqkbqBzBkAJr3wF5ks1ev1DcDniDhqPtn3Mnct
|
YMDc/Z34GBIoekVyrHUH3b6ia/I3Bqp8gCmKjwgSQ95o3lQMEAxqoYkMBvl8voNgWwnN4Lu8L3J0cgwT
|
||||||
s307zP/4PGAn5Omft9If127bOueByyPGekx0NV+I/zq+A9PgZ1seSUA0AAAAAElFTkSuQmCC
|
JLz/xxuA3JDjleLVRkI+nUmYOWKkRrcpe9z++xYEPwDT4GdbjzYebAAAAABJRU5ErkJggg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btShowManual.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="btShowManual.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAPJJREFUWEft
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAP5JREFUWEft
|
||||||
lj0KwkAQhVNY6n0Uj6BtagvxEFqJvYWnEL1EmiDKvEmXG9gK3kDZsIZk3Jj4s7iEffBB2Pl5r9iEBIGX
|
lj0KwkAQhVNY6n0Uj6BtagvxEFqJvYWnEL1EmiBKfrrcIK3gDfSNTDZk2WQj65IQ9sFHZObtzCMkQc/J
|
||||||
lyti5j6A/Qt2ADYAJnEc9+S8OlM13aN65XyO8pLzAYAQwK0hVyKaPmaZeabODH1VhGX39wNkENESwEqe
|
qTdKkmQax/G1gQs4gVUYhhM+JkQ16rGHvKoZX2gXHyuFhg/eLXlFUbTmoxR+QzXJ04TPR0tRUTJpQYg9
|
||||||
N+A3Ab7AeoC13le103qA3MBQK9VztS1AHS0PQESHwofnqW49gAt3wAfwAf4bwIXXsA4HAxDR0NBohSRJ
|
rge53oL/BDDAeoAjoHl1M60HEAsUvUpfiIqSyYTOA+gYeAC8njdciw+PyjP8Z8AFcAG6DdCH11BHDwPg
|
||||||
BtI/iKKoA+Akmy1wVF7SP1Oapl1mXjDzVv5IGrgUlqpnWS+hd86Vh/T9SMw8BnDWjGTdy6up7uxqphcq
|
ts0VRiukaTrjtaWCIBih+ZDNFrjTLl5bVZZlY/y/24EzjMVDVMcTFEPpt8oj4Jlb2sHrzISBSwzMmQWX
|
||||||
UCfvAAAAAElFTkSuQmCC
|
nZx+lOd9AOxqphdZ7gKgAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btTopMenu_Volume.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="btTopMenu_Volume.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABGdBTUEAALGPC/xhBQAABGpJREFUWEe1
|
iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAABGdBTUEAALGPC/xhBQAABHFJREFUWEe1
|
||||||
WFtIdFUUnp8ur0U9dCGK6il6DrrwU1AP8Ue9DRFBvzhnrz0XFcX77R9BFARREVHqQRRRMQM172g+mIga
|
mFtIXFcUhifk8pqSPORCSGn7VPIcaFpCA+lDSUjfpIRCI97vKN5vGUEUhEFFRGkfRBEVa0GtdzQ+WBE1
|
||||||
hL4o+ntDJAXvqaNkumJt5gznrLMbxxnng485Z1/W+mbvtfbluFxxIiUl5UUhxMdSyh+klF4ASBNCpAoh
|
EPRF0XhDJAreo45Dra78a7tncs6e7ajjnAUfnnPW2mv97r32uYzNXwsODv4iPDz8+8jIyN9BVERERBzO
|
||||||
vjAM4w3ePinw+XzvAEAZAPwJANcAgFG4AQCNJJrbSRhCiPcB4JcYRPwf5wDgK273znC73c8DQBUA/KNx
|
Q8BPYWFh92SYtRYdHf01CueBd+AQkA/mQQWLlsMDZ0j6AMn/BqeJOIlR8Fym89+CgoKuIVER+E8mvij/
|
||||||
Eg9/9fv9r3I/MSE1NfX18D/jRhPlrmEYD7m/qACAd8MxwI3dFy+EEN9wv1oAwGsAsK4xct+89Hq9n3H/
|
xMTE3Jbpz2chISF3kYD/M13ii7CCHnssy5zNMOgbwD2gSxgI9tEGv8hyvg3Bd8CcYbBVuKKiop7IsnrL
|
||||||
NpSVlT0LAL9rOieLhx6P5y2uIwIAKNV0ipuBQAALCwsd5VZKKX9zuVwPuBaXYRhvA0CId7iN+fn5ODU1
|
y8u7gsB/lYFWshEaGvqlLO9tCMhVBlyI2NhYyszM1Prc4B72BqUvHSswGBrtKwQ41QGnkZ6eToODg1RU
|
||||||
hVVVVY66iooKDIVC2Nra6qizUkr5HdfjklL+xBtGo5QSm5ub8ezsDAn9/f22ehJKv+Xl5XhycqLachsW
|
VOTlKygoIKfTSTU1NV4+IxD1Usr4bLj4py74JBBPVVVVtLu7S2xtbW0mPwvlv/n5+bS9vS1ijX6F97jF
|
||||||
PnW73c9ExAQCgZcpyDQNtSwqKsKlpSUlxAQXtL29jePj4+j1erGyshLPz89VP27LpC3rhBB+3kBHGpW2
|
XJZSbDZM7U1cdClBJ5KVlUWTk5NCiNtUQUtLS9TX10doXCosLKS9vT0xzhhjxLTrcBKjC1LhWamtrSWX
|
||||||
tja8vLy0idEJys7OxvX1dRwYGFDvo6OjODs767BpUgjRbRU0yBsQ09LSsKamBmtra7GhoQE3Nja4jghM
|
yyVlfDZVUHJyMs3NzVF7e7s47+npoZGREVOMEWhoknKEoA5dUFxcHBUXF1NJSQmVl5fT/Py8LO9tbkH1
|
||||||
QR0dHWr0MjMzsaCgQE1pMBjEvLw8vLq6wpycHIefMP8GgOdIzwMAONE0UE5ihSnI5/Ph3NwczszMqPeR
|
9fVi9hITEykjI0Msqd1up7S0NDo4OKCUlBSvOpKP4CrruYSDbYPDAxc5q7kF4QFMo6OjNDw8LM67u7up
|
||||||
kREcGxtTzysrK9jS0uLwY1II8QGl+pu8wiQZihXWKcvIyFAjU1JSooL64OBAlff29uLk5KTDj4WPKd0f
|
t7dXHE9PT1N1dbUnvwom5iFv9fuqww0nOqsZlywhIUHMTE5Ojmjq9fV1cb2lpYUGBgY8cRpe8XZ/rHEI
|
||||||
aioSEkScnp7Grq4uFXfX19dq+inTlpeXHX4sDFK6P9JUJCyop6dHZRk9Hx0dqdGieNza2nL4sbA6aYIo
|
/BXEDA0NUWNjo+i7w8NDsfy806ampkxxCnbe7s80DsFFBDU3N4tdxsebm5titrgfFxcXTXEKDssE8e7q
|
||||||
u4aGhtQzpXxxcTHW1dXh2tqaw49NULKmbGFhQQUwxZN1yubn5x1+LAwmJahpAby4uMCsrCxsbGxU6xGV
|
7OwUx7zls7OzqbS0lGZnZ01xCg7Llmx8fFw0MPeTccnGxsZMcQp2S5qab4D7+/uUlJREFRUV4n7E13kJ
|
||||||
0xQODg46/Fj4OGra05wvLi4qrq6ucg02mIJIDMUJxRC904jQYkrPu7u7WF1d7fBjUqU9AQAGeKWO9fX1
|
Ozo6PHEaXvnc9rzmExMTgpmZGVlab25BLIb7hHuIz3lG+GbKxysrK+RwODz5VcS2Z8NJu+rUUVZWRhsb
|
||||||
eHh4yLUomII2Nzexr69PZVdTU5Pax2jaSMj+/r7aSrjdMCMLIwnyaRpoSbFAi93NzY1WkEka3dPTU/Un
|
G1KC2dyCFhYWqLW1VeyuyspK8RzjZWMha2tr4lGi5pV4bowsKNrg8An3At/sjo6OpJRjU3uIZ3dnZ0f8
|
||||||
SAQFc3t7u8OehT9Htg6Px/PSXTZXIh03dnZ2tII6Ozvx+PhYiaH34eFhJSjK6NCIfh0RFB6lH3mj20gH
|
EyyCm7murs4Uo/CXEMOGl6QbuHDmhyvDrxvLy8tSjllQQ0MDbW1tCTF83tXVJQT5mB2e0RdSzrHh4h9q
|
||||||
MNo0KYu6u7sj5TRFVJeeno4TExO4t7eHubm5jv4WrtiOHwQ6SsZzQCPS2cfv99vKaLenUaKgpmfex0op
|
0GnwCxg/NHkXNTU1ea7zErEvPj6e+vv7aXV1lVJTU01jFaZNrx9s/CoJx7lf0Bh+98HnjekaP+15lrip
|
||||||
5bc2MSYAoJg3jpcU1KWlpY5yDce4jgho2OiMq+mULB7QOsh12EA3SwBY03S+b9Ld7FPuX4vwRTGZd7OQ
|
+djoU8Hs/CplmA3ObDXYX7ipc3NztT6FXlne23jakOiNZpBVrIP7srze+MsSQbOGQVbB32Y/yrK+DcH8
|
||||||
I6tuQ/jCOKMxlij/8nq9n3B/MYFWTgCouMePDT2GYbzC/dwZhmG8J6XsivdzjBBiVkr5JbebMOgyKYR4
|
oWjlt5nTa1edZhjEH4zDhiSB4gO2/w+yzPkMg6+CAhCoHxua8TC/JdP7b0jyLaa4EQn9+jkGvTKC8T/L
|
||||||
AgB/AMC/3DHjKgA0SCk/4naSAgB4wTCMD4UQ31s+6aVIKT+nTzm8faz4DwnDvF8jQGuEAAAAAElFTkSu
|
dIEz/phE8tco8hb8byyqYQaUQ8gjOdxaQ7HrEPgdBP6Gou6f9IJx/JR/ypFh5zSb7RMJw7xfBlQNxwAA
|
||||||
QmCC
|
AABJRU5ErkJggg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="arLabel5.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="arLabel5.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAjpJREFUWEfV
|
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAlxJREFUWEfV
|
||||||
V7tu1UAQDb+CBBUiTSigAZE+SsTjCxAdCGo+ANrkK6DjkYiEd3v3nNnbkFBEfESSKxHpgi4atGutx2Nj
|
l81u00AUhcOrIMGqgg0sYEMFe1QE5QlQd63oug/QbstT0B2UVgEKgW1+7GxoWSAeghKJSgGF70bHlpnc
|
||||||
uA4RRzqN53HG9nh2vLDwPyKEcInktoi8VQJ4DeCC9TsxkHxMclYSwCPrd2IQkRdOAU+t31wAcJPkBxG5
|
cYbW5edIn6LcuefesT0e263/Ur1e7/pgMHiZZdmB0e/327Cg4fMXzTdhUoUJbGj4/MVRP3cm8FTDzYiC
|
||||||
aG0k920BJHetn8ZqDgA3rK0TInKb5DQlPhaRB7PZ7IzaQghXSX53CpjGGC+rj/qSvE/yW7aRvGV1XGi1
|
DyjcodkVhUoR/1RtLg41XMq8xDvUuq9QmjA+xDhW4RP+P55MJhdsjOt/i9h3jVUZ53l+w3Isl/9r8K0Y
|
||||||
hXjJjyQ/O9ctI4B3zvVprycB4KUTPAi1d6xeAwDOkjy0wQNwMhqNzls9FyJy10kwL+9YnVZoE7W8x7+i
|
g2UbmyubrQxhg3fwIYh55NR448THSWeCpF3H3Ai2dtQmLiZwkeTj0NwAo263e1lt6sVMV5wCZ+WRys+X
|
||||||
Diqr0YnUxV9sIkPFeqI49ooiEqxGJ2KMyzZJwQMAKzaG5GpX7+j4tjEV0mx/kr6AryR/2ASZnniGiKxZ
|
LaLIdTwV1GqrdJq0ij+GhQJM2yIDL2cKZ7Sn0mnidrrjFRJfOKK7Si1FfAmia8e2b6XOSnv7lu6Az/Cj
|
||||||
/4I6O3SAPddRHmNcqgJJbjkBDQJATdHB715Hwa0qSJvEcfC4XlNzQHLDiWuw1pinXgDJTevQQqmpOSA5
|
MIZ4zQtxpPc8j7C9wzawZ7DJQV6TbTr7ffBMv0DzvixRkVd7OSrsyzK99dpOgse2LFGR8yTwuFhPWf6B
|
||||||
duI8blZBukzoeU7yGcm9lrMgc7WmWCCdI9Y/U3PuqoZqdS4wInLdSZB5qN1uY5L4keP/i52foUXPQRTT
|
CRDYCxMiZLJERc4w8MTYk2V6BhZgg+AOHIH3LChYkm1G1LDniOcxrOYh7Fgv6ynbrFjNtyvGkGNb7Uot
|
||||||
+1Z2PvY/HkRagIh8sonm4Ju8T/QCgIdOknl5z+q40OYoNpkheRxjXLR6DegO5wQPxfdWr4G2lUz3/74r
|
peZfg9yS2tswVOJGlINdb6P2tP/2RmQTwPTeK3ZKXltNlZ8vTue6U+SsrKp8vWxxkFy8yTTJCbvfVbWJ
|
||||||
Gckd53q/lUyhC2RRxEQXlGwDcK3lsJqGEK5kv7TUTLKt91KaodXq6Tgej89ZWzoxbQF71k9jNUfvO+8L
|
i8ROYGySt2oTl1bzzG3ImjjgN+mVDF4FMSPtlcxE8rIZZBzRfEVDNsFFYt7DasytdlNpxUvNqBiDtJfS
|
||||||
kq9sAYP/mHRBdwengH/3a3bqP6dD4if8nu9RoGmrKgAAAABJRU5ErkJggg==
|
QjZb2B0Oh5cUKkUxe2KGEzjScCnzWo3kI08VzV4EzW1vb/bDpE403HIm8Oc+zfQC8/c+TptTq/UT/J7v
|
||||||
|
URSJG9cAAAAASUVORK5CYII=
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btClose.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="btClose.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
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
|
||||||
w16WomAQAAAAAElFTkSuQmCC
|
TGyh8J4XAcV0RbXSRjRQmoqVB16140KvUgbSv2bjop77vl5PcShKpb/SGsNeH5IytgAAAABJRU5ErkJg
|
||||||
|
gg==
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
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
|
||||||
p5p6qCR+AaqNxnTXLPGFAAAAAElFTkSuQmCC
|
P+G4Nz+qyUsTKij4DaqNxnRXLBhpAAAAAElFTkSuQmCC
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="cmDebug.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="cmDebug.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
|||||||
@@ -256,11 +256,8 @@ namespace Project.StateMachine
|
|||||||
if (handler != null)
|
if (handler != null)
|
||||||
{
|
{
|
||||||
var args = new StepChangeEventArgs(OldStep, newstep_);
|
var args = new StepChangeEventArgs(OldStep, newstep_);
|
||||||
System.Threading.ThreadPool.QueueUserWorkItem(_ =>
|
|
||||||
{
|
|
||||||
try { handler(this, args); }
|
try { handler(this, args); }
|
||||||
catch { /* 이벤트 핸들러 예외 무시 */ }
|
catch { /* 이벤트 핸들러 예외 무시 */ }
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -378,11 +375,8 @@ namespace Project.StateMachine
|
|||||||
if (handler != null)
|
if (handler != null)
|
||||||
{
|
{
|
||||||
var args = new StepChangeEventArgs(ostep, _step);
|
var args = new StepChangeEventArgs(ostep, _step);
|
||||||
System.Threading.ThreadPool.QueueUserWorkItem(_ =>
|
|
||||||
{
|
|
||||||
try { handler(this, args); }
|
try { handler(this, args); }
|
||||||
catch { /* 이벤트 핸들러 예외 무시 */ }
|
catch { /* 이벤트 핸들러 예외 무시 */ }
|
||||||
});
|
|
||||||
}
|
}
|
||||||
} //171214
|
} //171214
|
||||||
|
|
||||||
|
|||||||
@@ -229,7 +229,7 @@ namespace arDev
|
|||||||
private void RevSTS(Dataframe frame)
|
private void RevSTS(Dataframe frame)
|
||||||
{
|
{
|
||||||
LastSTS = frame.DataString;
|
LastSTS = frame.DataString;
|
||||||
string rcvdNow = frame.DataString;
|
string rcvdNow = frame.DataString.Replace("\0","");
|
||||||
byte[] bRcvData = frame.Buffer;
|
byte[] bRcvData = frame.Buffer;
|
||||||
var encoding = System.Text.Encoding.Default;
|
var encoding = System.Text.Encoding.Default;
|
||||||
try
|
try
|
||||||
@@ -267,8 +267,12 @@ namespace arDev
|
|||||||
nDataTemp = Convert.ToByte(rcvdNow.Substring(idx, 2), 16);
|
nDataTemp = Convert.ToByte(rcvdNow.Substring(idx, 2), 16);
|
||||||
signal1.SetValue(nDataTemp); idx += 2;
|
signal1.SetValue(nDataTemp); idx += 2;
|
||||||
|
|
||||||
|
if(idx <= rcvdNow.Length-2)
|
||||||
|
{
|
||||||
nDataTemp = Convert.ToByte(rcvdNow.Substring(idx, 2), 16);
|
nDataTemp = Convert.ToByte(rcvdNow.Substring(idx, 2), 16);
|
||||||
signal2.SetValue(nDataTemp);
|
signal2.SetValue(nDataTemp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
DataReceive?.Invoke(this, new DataEventArgs(DataType.STS));
|
DataReceive?.Invoke(this, new DataEventArgs(DataType.STS));
|
||||||
|
|
||||||
|
|||||||
@@ -51,6 +51,12 @@ namespace arDev
|
|||||||
public string WriteErrorMessage = string.Empty;
|
public string WriteErrorMessage = string.Empty;
|
||||||
public int WaitTimeout { get; set; } = 1000;
|
public int WaitTimeout { get; set; } = 1000;
|
||||||
public int MinRecvLength { get; set; } = 1;
|
public int MinRecvLength { get; set; } = 1;
|
||||||
|
|
||||||
|
// Polling Thread related
|
||||||
|
protected Thread _recvThread;
|
||||||
|
protected volatile bool _isReading = false;
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 포트이름
|
/// 포트이름
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -101,9 +107,9 @@ namespace arDev
|
|||||||
public NarumiSerialComm()
|
public NarumiSerialComm()
|
||||||
{
|
{
|
||||||
_device = new System.IO.Ports.SerialPort();
|
_device = new System.IO.Ports.SerialPort();
|
||||||
this.BaudRate = 9600;
|
this.BaudRate = 57600;
|
||||||
ScanInterval = 10;
|
ScanInterval = 10;
|
||||||
_device.DataReceived += barcode_DataReceived;
|
// _device.DataReceived += barcode_DataReceived; // Removed event handler
|
||||||
_device.ErrorReceived += this.barcode_ErrorReceived;
|
_device.ErrorReceived += this.barcode_ErrorReceived;
|
||||||
_device.WriteTimeout = 3000;
|
_device.WriteTimeout = 3000;
|
||||||
_device.ReadTimeout = 3000;
|
_device.ReadTimeout = 3000;
|
||||||
@@ -147,9 +153,23 @@ namespace arDev
|
|||||||
//
|
//
|
||||||
}
|
}
|
||||||
|
|
||||||
_device.DataReceived -= barcode_DataReceived;
|
// Stop reading thread
|
||||||
|
_isReading = false;
|
||||||
|
|
||||||
|
// _device.DataReceived -= barcode_DataReceived; // Removed event handler
|
||||||
_device.ErrorReceived -= this.barcode_ErrorReceived;
|
_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.
|
// Free any unmanaged objects here.
|
||||||
//
|
//
|
||||||
disposed = true;
|
disposed = true;
|
||||||
@@ -158,9 +178,25 @@ namespace arDev
|
|||||||
public Boolean Open()
|
public Boolean Open()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
{
|
||||||
|
if (_device.IsOpen == false)
|
||||||
{
|
{
|
||||||
_device.Open();
|
_device.Open();
|
||||||
return IsOpen;
|
}
|
||||||
|
|
||||||
|
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)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -193,6 +229,18 @@ namespace arDev
|
|||||||
|
|
||||||
public virtual bool Close()
|
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)
|
if (_device != null && _device.IsOpen)
|
||||||
{
|
{
|
||||||
_device.DiscardInBuffer();
|
_device.DiscardInBuffer();
|
||||||
@@ -202,6 +250,11 @@ namespace arDev
|
|||||||
}
|
}
|
||||||
else return false;
|
else return false;
|
||||||
}
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
protected Boolean RaiseRecvData()
|
protected Boolean RaiseRecvData()
|
||||||
{
|
{
|
||||||
return RaiseRecvData(LastReceiveBuffer.ToArray(), false);
|
return RaiseRecvData(LastReceiveBuffer.ToArray(), false);
|
||||||
@@ -226,6 +279,9 @@ namespace arDev
|
|||||||
|
|
||||||
try
|
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
|
Message?.Invoke(this, new MessageEventArgs(Data, true)); //recvmessage
|
||||||
if (ProcessRecvData(Data) == false)
|
if (ProcessRecvData(Data) == false)
|
||||||
{
|
{
|
||||||
@@ -262,6 +318,9 @@ namespace arDev
|
|||||||
}
|
}
|
||||||
|
|
||||||
byte[] buffer = new byte[] { };
|
byte[] buffer = new byte[] { };
|
||||||
|
|
||||||
|
// Replaced with ReadPort Loop
|
||||||
|
/*
|
||||||
void barcode_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
|
void barcode_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -308,6 +367,62 @@ namespace arDev
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
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
|
#endregion
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ namespace COMM
|
|||||||
WAIT_CHARGEACK,
|
WAIT_CHARGEACK,
|
||||||
|
|
||||||
//agv area start ( 64 ~ 95)
|
//agv area start ( 64 ~ 95)
|
||||||
|
DISABLE_AUTOCONN_XBEE,
|
||||||
|
|
||||||
//area start (96~127)
|
//area start (96~127)
|
||||||
|
|
||||||
|
|||||||
620
Cs_HMI/TestProject/Test_ACS/MainForm.Designer.cs
generated
620
Cs_HMI/TestProject/Test_ACS/MainForm.Designer.cs
generated
@@ -29,10 +29,33 @@ namespace Test_ACS
|
|||||||
this.rbAGV2 = new System.Windows.Forms.RadioButton();
|
this.rbAGV2 = new System.Windows.Forms.RadioButton();
|
||||||
this.rbAGV1 = new System.Windows.Forms.RadioButton();
|
this.rbAGV1 = new System.Windows.Forms.RadioButton();
|
||||||
this.grpCommands = new System.Windows.Forms.GroupBox();
|
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.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.btAMove = new System.Windows.Forms.Button();
|
||||||
this.grpManual = new System.Windows.Forms.GroupBox();
|
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.btnMarkStop = new System.Windows.Forms.Button();
|
||||||
this.btnReset = new System.Windows.Forms.Button();
|
this.btnReset = new System.Windows.Forms.Button();
|
||||||
this.btnStop = 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.lblRunSt = new System.Windows.Forms.Label();
|
||||||
this.lblModeValue = new System.Windows.Forms.Label();
|
this.lblModeValue = new System.Windows.Forms.Label();
|
||||||
this.lblMode = new System.Windows.Forms.Label();
|
this.lblMode = new System.Windows.Forms.Label();
|
||||||
this.radSpdL = new System.Windows.Forms.RadioButton();
|
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
|
||||||
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.grpConnection.SuspendLayout();
|
this.grpConnection.SuspendLayout();
|
||||||
this.grpAGV.SuspendLayout();
|
this.grpAGV.SuspendLayout();
|
||||||
this.grpCommands.SuspendLayout();
|
this.grpCommands.SuspendLayout();
|
||||||
|
this.groupBox2.SuspendLayout();
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
|
this.panel3.SuspendLayout();
|
||||||
|
this.panel2.SuspendLayout();
|
||||||
|
this.panel1.SuspendLayout();
|
||||||
this.grpManual.SuspendLayout();
|
this.grpManual.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.txtRFID)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.txtRFID)).BeginInit();
|
||||||
this.grpLift.SuspendLayout();
|
this.grpLift.SuspendLayout();
|
||||||
@@ -106,9 +118,7 @@ namespace Test_ACS
|
|||||||
this.tabInfo.SuspendLayout();
|
this.tabInfo.SuspendLayout();
|
||||||
this.tabPage1.SuspendLayout();
|
this.tabPage1.SuspendLayout();
|
||||||
this.grpAGVStatus.SuspendLayout();
|
this.grpAGVStatus.SuspendLayout();
|
||||||
this.groupBox2.SuspendLayout();
|
this.tableLayoutPanel2.SuspendLayout();
|
||||||
this.panel1.SuspendLayout();
|
|
||||||
this.panel2.SuspendLayout();
|
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// grpConnection
|
// grpConnection
|
||||||
@@ -121,7 +131,7 @@ namespace Test_ACS
|
|||||||
this.grpConnection.Controls.Add(this.lblPort);
|
this.grpConnection.Controls.Add(this.lblPort);
|
||||||
this.grpConnection.Location = new System.Drawing.Point(12, 12);
|
this.grpConnection.Location = new System.Drawing.Point(12, 12);
|
||||||
this.grpConnection.Name = "grpConnection";
|
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.TabIndex = 0;
|
||||||
this.grpConnection.TabStop = false;
|
this.grpConnection.TabStop = false;
|
||||||
this.grpConnection.Text = "연결 설정";
|
this.grpConnection.Text = "연결 설정";
|
||||||
@@ -138,9 +148,9 @@ namespace Test_ACS
|
|||||||
//
|
//
|
||||||
// btnConnect
|
// 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.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.TabIndex = 4;
|
||||||
this.btnConnect.Text = "연결";
|
this.btnConnect.Text = "연결";
|
||||||
this.btnConnect.UseVisualStyleBackColor = true;
|
this.btnConnect.UseVisualStyleBackColor = true;
|
||||||
@@ -150,7 +160,7 @@ namespace Test_ACS
|
|||||||
//
|
//
|
||||||
this.txtBaudRate.Location = new System.Drawing.Point(85, 53);
|
this.txtBaudRate.Location = new System.Drawing.Point(85, 53);
|
||||||
this.txtBaudRate.Name = "txtBaudRate";
|
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.TabIndex = 3;
|
||||||
this.txtBaudRate.Text = "9600";
|
this.txtBaudRate.Text = "9600";
|
||||||
this.txtBaudRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
this.txtBaudRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||||
@@ -190,7 +200,7 @@ namespace Test_ACS
|
|||||||
this.grpAGV.Controls.Add(this.rbAGV1);
|
this.grpAGV.Controls.Add(this.rbAGV1);
|
||||||
this.grpAGV.Location = new System.Drawing.Point(278, 12);
|
this.grpAGV.Location = new System.Drawing.Point(278, 12);
|
||||||
this.grpAGV.Name = "grpAGV";
|
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.TabIndex = 1;
|
||||||
this.grpAGV.TabStop = false;
|
this.grpAGV.TabStop = false;
|
||||||
this.grpAGV.Text = "AGV 선택";
|
this.grpAGV.Text = "AGV 선택";
|
||||||
@@ -198,7 +208,7 @@ namespace Test_ACS
|
|||||||
// rbAGV2
|
// rbAGV2
|
||||||
//
|
//
|
||||||
this.rbAGV2.AutoSize = true;
|
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.Name = "rbAGV2";
|
||||||
this.rbAGV2.Size = new System.Drawing.Size(95, 16);
|
this.rbAGV2.Size = new System.Drawing.Size(95, 16);
|
||||||
this.rbAGV2.TabIndex = 1;
|
this.rbAGV2.TabIndex = 1;
|
||||||
@@ -210,7 +220,7 @@ namespace Test_ACS
|
|||||||
//
|
//
|
||||||
this.rbAGV1.AutoSize = true;
|
this.rbAGV1.AutoSize = true;
|
||||||
this.rbAGV1.Checked = 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.Name = "rbAGV1";
|
||||||
this.rbAGV1.Size = new System.Drawing.Size(95, 16);
|
this.rbAGV1.Size = new System.Drawing.Size(95, 16);
|
||||||
this.rbAGV1.TabIndex = 0;
|
this.rbAGV1.TabIndex = 0;
|
||||||
@@ -221,11 +231,13 @@ namespace Test_ACS
|
|||||||
//
|
//
|
||||||
// grpCommands
|
// 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.groupBox2);
|
||||||
this.grpCommands.Controls.Add(this.groupBox1);
|
this.grpCommands.Controls.Add(this.groupBox1);
|
||||||
this.grpCommands.Controls.Add(this.grpManual);
|
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.btnReset);
|
||||||
this.grpCommands.Controls.Add(this.btnStop);
|
this.grpCommands.Controls.Add(this.btnStop);
|
||||||
this.grpCommands.Controls.Add(this.btnGotoAlias);
|
this.grpCommands.Controls.Add(this.btnGotoAlias);
|
||||||
@@ -235,30 +247,238 @@ namespace Test_ACS
|
|||||||
this.grpCommands.Controls.Add(this.lblAlias);
|
this.grpCommands.Controls.Add(this.lblAlias);
|
||||||
this.grpCommands.Controls.Add(this.txtRFID);
|
this.grpCommands.Controls.Add(this.txtRFID);
|
||||||
this.grpCommands.Controls.Add(this.lblRFID);
|
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.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.TabIndex = 2;
|
||||||
this.grpCommands.TabStop = false;
|
this.grpCommands.TabStop = false;
|
||||||
this.grpCommands.Text = "ACS 명령";
|
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
|
// groupBox1
|
||||||
//
|
//
|
||||||
|
this.groupBox1.Controls.Add(this.panel3);
|
||||||
|
this.groupBox1.Controls.Add(this.button6);
|
||||||
this.groupBox1.Controls.Add(this.panel2);
|
this.groupBox1.Controls.Add(this.panel2);
|
||||||
this.groupBox1.Controls.Add(this.panel1);
|
this.groupBox1.Controls.Add(this.panel1);
|
||||||
this.groupBox1.Controls.Add(this.btAMove);
|
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.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.TabIndex = 8;
|
||||||
this.groupBox1.TabStop = false;
|
this.groupBox1.TabStop = false;
|
||||||
this.groupBox1.Text = "자동 이동";
|
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
|
// btAMove
|
||||||
//
|
//
|
||||||
this.btAMove.Location = new System.Drawing.Point(155, 16);
|
this.btAMove.Location = new System.Drawing.Point(155, 16);
|
||||||
this.btAMove.Name = "btAMove";
|
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.TabIndex = 6;
|
||||||
this.btAMove.Text = "실행";
|
this.btAMove.Text = "실행";
|
||||||
this.btAMove.UseVisualStyleBackColor = true;
|
this.btAMove.UseVisualStyleBackColor = true;
|
||||||
@@ -271,30 +491,75 @@ namespace Test_ACS
|
|||||||
this.grpManual.Controls.Add(this.button3);
|
this.grpManual.Controls.Add(this.button3);
|
||||||
this.grpManual.Controls.Add(this.button2);
|
this.grpManual.Controls.Add(this.button2);
|
||||||
this.grpManual.Controls.Add(this.button1);
|
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.Name = "grpManual";
|
||||||
this.grpManual.Size = new System.Drawing.Size(125, 106);
|
this.grpManual.Size = new System.Drawing.Size(125, 106);
|
||||||
this.grpManual.TabIndex = 8;
|
this.grpManual.TabIndex = 8;
|
||||||
this.grpManual.TabStop = false;
|
this.grpManual.TabStop = false;
|
||||||
this.grpManual.Text = "수동 이동";
|
this.grpManual.Text = "수동 이동";
|
||||||
//
|
//
|
||||||
// chkMarkStop
|
// button5
|
||||||
//
|
//
|
||||||
this.chkMarkStop.AutoSize = true;
|
this.button5.Location = new System.Drawing.Point(43, 72);
|
||||||
this.chkMarkStop.Location = new System.Drawing.Point(193, 125);
|
this.button5.Name = "button5";
|
||||||
this.chkMarkStop.Name = "chkMarkStop";
|
this.button5.Size = new System.Drawing.Size(34, 27);
|
||||||
this.chkMarkStop.Size = new System.Drawing.Size(76, 16);
|
this.button5.TabIndex = 12;
|
||||||
this.chkMarkStop.TabIndex = 7;
|
this.button5.Tag = "1";
|
||||||
this.chkMarkStop.Text = "정지 설정";
|
this.button5.Text = "F";
|
||||||
this.chkMarkStop.UseVisualStyleBackColor = true;
|
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
|
// 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.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.TabIndex = 6;
|
||||||
this.btnMarkStop.Text = "마크센서 정지";
|
this.btnMarkStop.Text = "마크 정지";
|
||||||
this.btnMarkStop.UseVisualStyleBackColor = true;
|
this.btnMarkStop.UseVisualStyleBackColor = true;
|
||||||
this.btnMarkStop.Click += new System.EventHandler(this.btnMarkStop_Click);
|
this.btnMarkStop.Click += new System.EventHandler(this.btnMarkStop_Click);
|
||||||
//
|
//
|
||||||
@@ -399,21 +664,20 @@ namespace Test_ACS
|
|||||||
//
|
//
|
||||||
// grpLift
|
// grpLift
|
||||||
//
|
//
|
||||||
this.grpLift.Controls.Add(this.btnLiftStop);
|
this.grpLift.Controls.Add(this.tableLayoutPanel2);
|
||||||
this.grpLift.Controls.Add(this.btnLiftDown);
|
this.grpLift.Location = new System.Drawing.Point(12, 535);
|
||||||
this.grpLift.Controls.Add(this.btnLiftUp);
|
|
||||||
this.grpLift.Location = new System.Drawing.Point(298, 456);
|
|
||||||
this.grpLift.Name = "grpLift";
|
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.TabIndex = 9;
|
||||||
this.grpLift.TabStop = false;
|
this.grpLift.TabStop = false;
|
||||||
this.grpLift.Text = "리프트 제어";
|
this.grpLift.Text = "리프트 제어";
|
||||||
//
|
//
|
||||||
// btnLiftStop
|
// 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.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.TabIndex = 2;
|
||||||
this.btnLiftStop.Text = "정지";
|
this.btnLiftStop.Text = "정지";
|
||||||
this.btnLiftStop.UseVisualStyleBackColor = true;
|
this.btnLiftStop.UseVisualStyleBackColor = true;
|
||||||
@@ -421,9 +685,10 @@ namespace Test_ACS
|
|||||||
//
|
//
|
||||||
// btnLiftDown
|
// 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.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.TabIndex = 1;
|
||||||
this.btnLiftDown.Text = "하강";
|
this.btnLiftDown.Text = "하강";
|
||||||
this.btnLiftDown.UseVisualStyleBackColor = true;
|
this.btnLiftDown.UseVisualStyleBackColor = true;
|
||||||
@@ -431,9 +696,10 @@ namespace Test_ACS
|
|||||||
//
|
//
|
||||||
// btnLiftUp
|
// 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.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.TabIndex = 0;
|
||||||
this.btnLiftUp.Text = "상승";
|
this.btnLiftUp.Text = "상승";
|
||||||
this.btnLiftUp.UseVisualStyleBackColor = true;
|
this.btnLiftUp.UseVisualStyleBackColor = true;
|
||||||
@@ -451,9 +717,9 @@ namespace Test_ACS
|
|||||||
// grpLogs
|
// grpLogs
|
||||||
//
|
//
|
||||||
this.grpLogs.Controls.Add(this.tabLogs);
|
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.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.TabIndex = 3;
|
||||||
this.grpLogs.TabStop = false;
|
this.grpLogs.TabStop = false;
|
||||||
this.grpLogs.Text = "로그";
|
this.grpLogs.Text = "로그";
|
||||||
@@ -467,7 +733,7 @@ namespace Test_ACS
|
|||||||
this.tabLogs.Location = new System.Drawing.Point(3, 17);
|
this.tabLogs.Location = new System.Drawing.Point(3, 17);
|
||||||
this.tabLogs.Name = "tabLogs";
|
this.tabLogs.Name = "tabLogs";
|
||||||
this.tabLogs.SelectedIndex = 0;
|
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;
|
this.tabLogs.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// tabRX
|
// tabRX
|
||||||
@@ -476,7 +742,7 @@ namespace Test_ACS
|
|||||||
this.tabRX.Location = new System.Drawing.Point(4, 22);
|
this.tabRX.Location = new System.Drawing.Point(4, 22);
|
||||||
this.tabRX.Name = "tabRX";
|
this.tabRX.Name = "tabRX";
|
||||||
this.tabRX.Padding = new System.Windows.Forms.Padding(3);
|
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.TabIndex = 1;
|
||||||
this.tabRX.Text = "패킷";
|
this.tabRX.Text = "패킷";
|
||||||
this.tabRX.UseVisualStyleBackColor = true;
|
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.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.Absolute, 20F));
|
||||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(500, 512);
|
this.tableLayoutPanel1.Size = new System.Drawing.Size(500, 550);
|
||||||
this.tableLayoutPanel1.TabIndex = 1;
|
this.tableLayoutPanel1.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// txtRxLog
|
// txtRxLog
|
||||||
//
|
//
|
||||||
this.txtRxLog.Dock = System.Windows.Forms.DockStyle.Fill;
|
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.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.Multiline = true;
|
||||||
this.txtRxLog.Name = "txtRxLog";
|
this.txtRxLog.Name = "txtRxLog";
|
||||||
this.txtRxLog.ReadOnly = true;
|
this.txtRxLog.ReadOnly = true;
|
||||||
this.txtRxLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
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.TabIndex = 0;
|
||||||
this.txtRxLog.Text = "1";
|
this.txtRxLog.Text = "1";
|
||||||
//
|
//
|
||||||
@@ -522,7 +788,7 @@ namespace Test_ACS
|
|||||||
this.txtTxLog.Name = "txtTxLog";
|
this.txtTxLog.Name = "txtTxLog";
|
||||||
this.txtTxLog.ReadOnly = true;
|
this.txtTxLog.ReadOnly = true;
|
||||||
this.txtTxLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
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;
|
this.txtTxLog.TabIndex = 0;
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
@@ -538,7 +804,7 @@ namespace Test_ACS
|
|||||||
// label2
|
// label2
|
||||||
//
|
//
|
||||||
this.label2.Dock = System.Windows.Forms.DockStyle.Fill;
|
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.Name = "label2";
|
||||||
this.label2.Size = new System.Drawing.Size(494, 20);
|
this.label2.Size = new System.Drawing.Size(494, 20);
|
||||||
this.label2.TabIndex = 1;
|
this.label2.TabIndex = 1;
|
||||||
@@ -607,9 +873,9 @@ namespace Test_ACS
|
|||||||
this.grpAGVStatus.Controls.Add(this.lblRunSt);
|
this.grpAGVStatus.Controls.Add(this.lblRunSt);
|
||||||
this.grpAGVStatus.Controls.Add(this.lblModeValue);
|
this.grpAGVStatus.Controls.Add(this.lblModeValue);
|
||||||
this.grpAGVStatus.Controls.Add(this.lblMode);
|
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.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.TabIndex = 4;
|
||||||
this.grpAGVStatus.TabStop = false;
|
this.grpAGVStatus.TabStop = false;
|
||||||
this.grpAGVStatus.Text = "AGV 상태";
|
this.grpAGVStatus.Text = "AGV 상태";
|
||||||
@@ -757,189 +1023,28 @@ namespace Test_ACS
|
|||||||
this.lblMode.TabIndex = 0;
|
this.lblMode.TabIndex = 0;
|
||||||
this.lblMode.Text = "모드:";
|
this.lblMode.Text = "모드:";
|
||||||
//
|
//
|
||||||
// radSpdL
|
// tableLayoutPanel2
|
||||||
//
|
//
|
||||||
this.radSpdL.AutoSize = true;
|
this.tableLayoutPanel2.ColumnCount = 3;
|
||||||
this.radSpdL.Location = new System.Drawing.Point(9, 20);
|
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
|
||||||
this.radSpdL.Name = "radSpdL";
|
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
|
||||||
this.radSpdL.Size = new System.Drawing.Size(30, 16);
|
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
|
||||||
this.radSpdL.TabIndex = 7;
|
this.tableLayoutPanel2.Controls.Add(this.btnLiftStop, 2, 0);
|
||||||
this.radSpdL.TabStop = true;
|
this.tableLayoutPanel2.Controls.Add(this.btnLiftUp, 0, 0);
|
||||||
this.radSpdL.Tag = "0";
|
this.tableLayoutPanel2.Controls.Add(this.btnLiftDown, 1, 0);
|
||||||
this.radSpdL.Text = "L";
|
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||||
this.radSpdL.UseVisualStyleBackColor = true;
|
this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 17);
|
||||||
//
|
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
||||||
// radSpdM
|
this.tableLayoutPanel2.RowCount = 1;
|
||||||
//
|
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
|
||||||
this.radSpdM.AutoSize = true;
|
this.tableLayoutPanel2.Size = new System.Drawing.Size(427, 59);
|
||||||
this.radSpdM.Location = new System.Drawing.Point(9, 47);
|
this.tableLayoutPanel2.TabIndex = 0;
|
||||||
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;
|
|
||||||
//
|
//
|
||||||
// MainForm
|
// MainForm
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
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.grpLift);
|
||||||
this.Controls.Add(this.grpAGVStatus);
|
this.Controls.Add(this.grpAGVStatus);
|
||||||
this.Controls.Add(this.grpLogs);
|
this.Controls.Add(this.grpLogs);
|
||||||
@@ -957,7 +1062,15 @@ namespace Test_ACS
|
|||||||
this.grpAGV.PerformLayout();
|
this.grpAGV.PerformLayout();
|
||||||
this.grpCommands.ResumeLayout(false);
|
this.grpCommands.ResumeLayout(false);
|
||||||
this.grpCommands.PerformLayout();
|
this.grpCommands.PerformLayout();
|
||||||
|
this.groupBox2.ResumeLayout(false);
|
||||||
|
this.groupBox2.PerformLayout();
|
||||||
this.groupBox1.ResumeLayout(false);
|
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);
|
this.grpManual.ResumeLayout(false);
|
||||||
((System.ComponentModel.ISupportInitialize)(this.txtRFID)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.txtRFID)).EndInit();
|
||||||
this.grpLift.ResumeLayout(false);
|
this.grpLift.ResumeLayout(false);
|
||||||
@@ -971,12 +1084,7 @@ namespace Test_ACS
|
|||||||
this.tabPage1.ResumeLayout(false);
|
this.tabPage1.ResumeLayout(false);
|
||||||
this.grpAGVStatus.ResumeLayout(false);
|
this.grpAGVStatus.ResumeLayout(false);
|
||||||
this.grpAGVStatus.PerformLayout();
|
this.grpAGVStatus.PerformLayout();
|
||||||
this.groupBox2.ResumeLayout(false);
|
this.tableLayoutPanel2.ResumeLayout(false);
|
||||||
this.groupBox2.PerformLayout();
|
|
||||||
this.panel1.ResumeLayout(false);
|
|
||||||
this.panel1.PerformLayout();
|
|
||||||
this.panel2.ResumeLayout(false);
|
|
||||||
this.panel2.PerformLayout();
|
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1000,7 +1108,6 @@ namespace Test_ACS
|
|||||||
private System.Windows.Forms.Button btnStop;
|
private System.Windows.Forms.Button btnStop;
|
||||||
private System.Windows.Forms.Button btnReset;
|
private System.Windows.Forms.Button btnReset;
|
||||||
private System.Windows.Forms.Button btnMarkStop;
|
private System.Windows.Forms.Button btnMarkStop;
|
||||||
private System.Windows.Forms.CheckBox chkMarkStop;
|
|
||||||
private System.Windows.Forms.GroupBox grpManual;
|
private System.Windows.Forms.GroupBox grpManual;
|
||||||
private System.Windows.Forms.GroupBox grpLift;
|
private System.Windows.Forms.GroupBox grpLift;
|
||||||
private System.Windows.Forms.Button btnLiftStop;
|
private System.Windows.Forms.Button btnLiftStop;
|
||||||
@@ -1057,5 +1164,14 @@ namespace Test_ACS
|
|||||||
private System.Windows.Forms.RadioButton radStraight;
|
private System.Windows.Forms.RadioButton radStraight;
|
||||||
private System.Windows.Forms.RadioButton radForw;
|
private System.Windows.Forms.RadioButton radForw;
|
||||||
private System.Windows.Forms.RadioButton radBack;
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -299,7 +299,7 @@ namespace Test_ACS
|
|||||||
{
|
{
|
||||||
// MarkStop: data = TargetID(2 hex) + MarkStop(1 byte)
|
// MarkStop: data = TargetID(2 hex) + MarkStop(1 byte)
|
||||||
var targetID = selectedAGV.ToString("X2");
|
var targetID = selectedAGV.ToString("X2");
|
||||||
var markStop = chkMarkStop.Checked ? "01" : "00";
|
var markStop = "01";// chkMarkStop.Checked ? "01" : "00";
|
||||||
SendCommand(AGVCommandHE.MarkStop, targetID + markStop);
|
SendCommand(AGVCommandHE.MarkStop, targetID + markStop);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -556,7 +556,10 @@ namespace Test_ACS
|
|||||||
if (radSpdM.Checked) speed = 1;
|
if (radSpdM.Checked) speed = 1;
|
||||||
else if (radSpdH.Checked) speed = 2;
|
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")));
|
var dataStr = targetID + string.Join("", dataBytes.Select(b => b.ToString("X2")));
|
||||||
SendCommand(AGVCommandHE.AutoMove, dataStr);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\</OutputPath>
|
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\ACS\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
|
|||||||
@@ -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();
|
var sb = new System.Text.StringBuilder();
|
||||||
if (e.Data != null)
|
if (e.Data != null)
|
||||||
@@ -48,13 +48,13 @@ namespace Test_BMS
|
|||||||
}
|
}
|
||||||
else sb.Append(e.Message);
|
else sb.Append(e.Message);
|
||||||
|
|
||||||
if (e.MsgType == arDev.arRS232.MessageType.Error)
|
if (e.MsgType == arDev.BMSSerialComm.MessageType.Error)
|
||||||
addmsg(e.Message);
|
addmsg(e.Message);
|
||||||
else if(e.MsgType == arDev.arRS232.MessageType.Send)
|
else if(e.MsgType == arDev.BMSSerialComm.MessageType.Send)
|
||||||
{
|
{
|
||||||
addmsg($"Tx:{sb}");
|
addmsg($"Tx:{sb}");
|
||||||
}
|
}
|
||||||
else if(e.MsgType == arDev.arRS232.MessageType.Recv)
|
else if(e.MsgType == arDev.BMSSerialComm.MessageType.Recv)
|
||||||
{
|
{
|
||||||
addmsg($"Rx:{sb}");
|
addmsg($"Rx:{sb}");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,9 @@
|
|||||||
<Compile Include="..\..\Project\Device\BMSInformationEventArgs.cs">
|
<Compile Include="..\..\Project\Device\BMSInformationEventArgs.cs">
|
||||||
<Link>BMSInformationEventArgs.cs</Link>
|
<Link>BMSInformationEventArgs.cs</Link>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="..\..\Project\Device\BMSSerialComm.cs">
|
||||||
|
<Link>BMSSerialComm.cs</Link>
|
||||||
|
</Compile>
|
||||||
<Compile Include="Form1.cs">
|
<Compile Include="Form1.cs">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ namespace Test_BMS
|
|||||||
log2.Flush();
|
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}");
|
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.rt0.Text = $"system0-{dev.system0.Value:X2}\n" + dev.system0.ToString();
|
||||||
this.rt1.Text = $"system1-{dev.system1.Value:X2}\n" + dev.system1.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.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();
|
//this.rt4.Text = "data\n" + dev.data.ToString();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\</OutputPath>
|
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\AGV\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="arControl.Net4">
|
<Reference Include="arControl.Net4">
|
||||||
<HintPath>..\Sub\arCtl\obj\Debug\arControl.Net4.dll</HintPath>
|
<HintPath>..\..\DLL\arControl.Net4.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="ArLog.Net4">
|
<Reference Include="ArLog.Net4">
|
||||||
<HintPath>..\..\DLL\ArLog.Net4.dll</HintPath>
|
<HintPath>..\..\DLL\ArLog.Net4.dll</HintPath>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
<Optimize>false</Optimize>
|
<Optimize>false</Optimize>
|
||||||
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\</OutputPath>
|
<OutputPath>..\..\..\..\..\..\Amkor\AGV4\Test\PortScan\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
|
|||||||
7797
Document/Firmware/AGV_V350_LF CPU Ver1.0.4_251223.hex
Normal file
7797
Document/Firmware/AGV_V350_LF CPU Ver1.0.4_251223.hex
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Document/Layout.png
Normal file
BIN
Document/Layout.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 61 KiB |
Binary file not shown.
Binary file not shown.
368
Document/지그비셋팅패킷.txt
Normal file
368
Document/지그비셋팅패킷.txt
Normal 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 |
|
||||||
Reference in New Issue
Block a user