agv 정보 전송 수정
This commit is contained in:
31
ReadMe.MD
31
ReadMe.MD
@@ -74,8 +74,8 @@ public enum DeviceAlias : byte
|
|||||||
[STX][LEN][ID][CMD][DATA][CRC16][ETX]
|
[STX][LEN][ID][CMD][DATA][CRC16][ETX]
|
||||||
```
|
```
|
||||||
- **STX (Start of Text)**: 0x02
|
- **STX (Start of Text)**: 0x02
|
||||||
- **ID (Client ID)**: 데이터 길이 (1바이트) : 디바이스식별코드(=DeviceType)
|
|
||||||
- **LEN (Length)**: 데이터 길이 (1바이트) = {CMD+DATA}
|
- **LEN (Length)**: 데이터 길이 (1바이트) = {CMD+DATA}
|
||||||
|
- **ID (Client ID)**: 데이터 길이 (1바이트) : 디바이스식별코드(=DeviceType)
|
||||||
- **CMD (Command)**: 명령어 코드 (1바이트)
|
- **CMD (Command)**: 명령어 코드 (1바이트)
|
||||||
- **DATA**: 명령어에 따른 데이터 (가변 길이)
|
- **DATA**: 명령어에 따른 데이터 (가변 길이)
|
||||||
- **CRC16**: 데이터 무결성 검사 (2바이트)
|
- **CRC16**: 데이터 무결성 검사 (2바이트)
|
||||||
@@ -99,20 +99,20 @@ public enum DeviceAlias : byte
|
|||||||
3. **AGV**
|
3. **AGV**
|
||||||
- H -> E | Move : cmd(100) : 대상태그까지 이동(자동이동)
|
- H -> E | Move : cmd(100) : 대상태그까지 이동(자동이동)
|
||||||
- Target[1] = {DeviceType}
|
- Target[1] = {DeviceType}
|
||||||
- TagID[4] = 0000
|
- TagID[4] = "0000"
|
||||||
- H -> E | Move : cmd(107) : 대상별칭까지 이동(자동이동)
|
|
||||||
- Target[1] = {DeviceType}
|
|
||||||
- TagID[4] = 0000
|
|
||||||
- H -> E | Stop : cmd(101) : 멈춤
|
- H -> E | Stop : cmd(101) : 멈춤
|
||||||
- H -> E | Reset : cmd(102) : 오류 소거
|
- H -> E | Reset : cmd(102) : 오류 소거
|
||||||
- H -> E | Charge On: cmd(103) : 충전실행(충전기 이동 후 자동 충전 진행)
|
|
||||||
|
- H -> E | SetCurrent : cmd(103) : 현재위치설정
|
||||||
- Target[1] = {DeviceType}
|
- Target[1] = {DeviceType}
|
||||||
- Action[1] : 0=Charge Off, 1=Charge On
|
- TagID[4] = "0000"
|
||||||
|
|
||||||
- H -> E | MoveManual : cmd(104) : 메뉴얼이동
|
- H -> E | MoveManual : cmd(104) : 메뉴얼이동
|
||||||
- Target[1] = {DeviceType}
|
- Target[1] = {DeviceType}
|
||||||
- Direction[1] : 0=Backward, 1=Forward, 2=TurnLeft, 3=TurnRight
|
- Direction[1] : 0=Backward, 1=Forward, 2=TurnLeft, 3=TurnRight
|
||||||
- Speed[1] : 0=Slow, 1=Normal, 2=Fast
|
- Speed[1] : 0=Slow, 1=Normal, 2=Fast
|
||||||
- Runtime[1] : 0 second
|
|
||||||
- H -> E | MarkStop : cmd(105) : 마크센서스톱
|
- H -> E | MarkStop : cmd(105) : 마크센서스톱
|
||||||
- Target[1] = {DeviceType}
|
- Target[1] = {DeviceType}
|
||||||
|
|
||||||
@@ -120,6 +120,21 @@ public enum DeviceAlias : byte
|
|||||||
- Target[1] = {DeviceType}
|
- Target[1] = {DeviceType}
|
||||||
- Action[1] : 0=STOP, 1=UP, 2=DOWN
|
- Action[1] : 0=STOP, 1=UP, 2=DOWN
|
||||||
|
|
||||||
|
- H -> E | Move : cmd(107) : 대상별칭까지 이동(자동이동)
|
||||||
|
- Target[1] = {DeviceType}
|
||||||
|
- AliasName[n] = ".....
|
||||||
|
|
||||||
|
- H -> E | MoveAuto : cmd(108) : 자동이동
|
||||||
|
- Target[1] = {DeviceType}
|
||||||
|
- MotDirection[1] : 0=Backward, 1=Forward
|
||||||
|
- MagnetDirection[1] : 0=Straight,1=Left, 2=Right
|
||||||
|
- Speed[1] : 0=Slow, 1=Normal, 2=Fast
|
||||||
|
|
||||||
|
- H -> E | Charge On: cmd(109) : 충전실행(충전기 이동 후 자동 충전 진행)
|
||||||
|
- Target[1] = {DeviceType}
|
||||||
|
- Action[1] : 0=Charge Off, 1=Charge On
|
||||||
|
|
||||||
|
|
||||||
- E -> H | Move Complete : cmd(1) : 목적지이동완료 후 전송
|
- E -> H | Move Complete : cmd(1) : 목적지이동완료 후 전송
|
||||||
- TagID[4] : "0000"
|
- TagID[4] : "0000"
|
||||||
- E -> H | TagID Received : cmd(2) : 태그값 인식시 전송
|
- E -> H | TagID Received : cmd(2) : 태그값 인식시 전송
|
||||||
|
|||||||
@@ -11,11 +11,14 @@ namespace ENIGProtocol
|
|||||||
{
|
{
|
||||||
Goto = 100,
|
Goto = 100,
|
||||||
Stop = 101,
|
Stop = 101,
|
||||||
Reset,
|
Reset = 102,
|
||||||
SetCurrent,
|
SetCurrent = 103,
|
||||||
Manual,
|
Manual = 104,
|
||||||
MarkStop,
|
MarkStop = 105,
|
||||||
LiftControl
|
LiftControl = 106,
|
||||||
|
GotoAlias = 107,
|
||||||
|
AutoMove=108,
|
||||||
|
ChargeControl=109,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -34,5 +37,7 @@ namespace ENIGProtocol
|
|||||||
PredictFix,
|
PredictFix,
|
||||||
TurnTimeout,
|
TurnTimeout,
|
||||||
TurnError,
|
TurnError,
|
||||||
|
EmptyNode,
|
||||||
|
Goto,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -178,14 +178,16 @@ namespace ENIG
|
|||||||
OnDataReceived?.Invoke(this, new DataEventArgs { ReceivedPacket = packet });
|
OnDataReceived?.Invoke(this, new DataEventArgs { ReceivedPacket = packet });
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch
|
catch(Exception ex)
|
||||||
{
|
{
|
||||||
|
RaiseMessage(ex.Message, true);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 데이터 수신 처리 메서드 (시리얼 포트에서 데이터를 받았을 때 호출)
|
// 데이터 수신 처리 메서드 (시리얼 포트에서 데이터를 받았을 때 호출)
|
||||||
private List<byte> buffer = new List<byte>();
|
private List<byte> buffer = new List<byte>();
|
||||||
|
private int ProtocolParseError = 0;
|
||||||
public void ProcessReceivedData(byte[] data)
|
public void ProcessReceivedData(byte[] data)
|
||||||
{
|
{
|
||||||
buffer.AddRange(data);
|
buffer.AddRange(data);
|
||||||
@@ -216,7 +218,12 @@ namespace ENIG
|
|||||||
byte[] packetData = buffer.Take(expectedLength).ToArray();
|
byte[] packetData = buffer.Take(expectedLength).ToArray();
|
||||||
buffer.RemoveRange(0, expectedLength);
|
buffer.RemoveRange(0, expectedLength);
|
||||||
|
|
||||||
ParsePacket(packetData);
|
var parseOK = ParsePacket(packetData);
|
||||||
|
if(parseOK==false) //분석이 실패되었다면 해당 데이터는 삭제한다.
|
||||||
|
{
|
||||||
|
ProtocolParseError += 1;
|
||||||
|
if (ProtocolParseError > 3) buffer.Clear();
|
||||||
|
} else ProtocolParseError = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,6 +50,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include=".gitignore" />
|
<None Include=".gitignore" />
|
||||||
|
<None Include="ReadMe.MD" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
</Project>
|
</Project>
|
||||||
@@ -56,8 +56,8 @@ public enum DeviceType : byte
|
|||||||
[STX][LEN][ID][CMD][DATA][CRC16][ETX]
|
[STX][LEN][ID][CMD][DATA][CRC16][ETX]
|
||||||
```
|
```
|
||||||
- **STX (Start of Text)**: 0x02
|
- **STX (Start of Text)**: 0x02
|
||||||
|
- **LEN (Length)**: 데이터 길이 (1바이트) = {ID+CMD+DATA}
|
||||||
- **ID (Client ID)**: 데이터 길이 (1바이트) : 디바이스식별코드(=DeviceType)
|
- **ID (Client ID)**: 데이터 길이 (1바이트) : 디바이스식별코드(=DeviceType)
|
||||||
- **LEN (Length)**: 데이터 길이 (1바이트) = {CMD+DATA}
|
|
||||||
- **CMD (Command)**: 명령어 코드 (1바이트)
|
- **CMD (Command)**: 명령어 코드 (1바이트)
|
||||||
- **DATA**: 명령어에 따른 데이터 (가변 길이)
|
- **DATA**: 명령어에 따른 데이터 (가변 길이)
|
||||||
- **CRC16**: 데이터 무결성 검사 (2바이트)
|
- **CRC16**: 데이터 무결성 검사 (2바이트)
|
||||||
@@ -81,10 +81,10 @@ public enum DeviceType : byte
|
|||||||
3. **AGV**
|
3. **AGV**
|
||||||
- H -> E | Move : cmd(100) : 대상태그까지 이동(자동이동)
|
- H -> E | Move : cmd(100) : 대상태그까지 이동(자동이동)
|
||||||
- Target[1] = {DeviceType}
|
- Target[1] = {DeviceType}
|
||||||
- TagID[4] = 0000
|
- TagID[4] = "0000"
|
||||||
- H -> E | Move : cmd(107) : 대상별칭까지 이동(자동이동)
|
- H -> E | Move : cmd(107) : 대상별칭까지 이동(자동이동)
|
||||||
- Target[1] = {DeviceType}
|
- Target[1] = {DeviceType}
|
||||||
- TagID[4] = 0000
|
- AliasName[n] = "....."
|
||||||
- H -> E | Stop : cmd(101) : 멈춤
|
- H -> E | Stop : cmd(101) : 멈춤
|
||||||
- H -> E | Reset : cmd(102) : 오류 소거
|
- H -> E | Reset : cmd(102) : 오류 소거
|
||||||
- H -> E | Charge On: cmd(103) : 충전실행(충전기 이동 후 자동 충전 진행)
|
- H -> E | Charge On: cmd(103) : 충전실행(충전기 이동 후 자동 충전 진행)
|
||||||
@@ -107,15 +107,16 @@ public enum DeviceType : byte
|
|||||||
- E -> H | TagID Received : cmd(2) : 태그값 인식시 전송
|
- E -> H | TagID Received : cmd(2) : 태그값 인식시 전송
|
||||||
- TagID[4] : "0000"
|
- TagID[4] : "0000"
|
||||||
|
|
||||||
- E -> H | Status : cmd(3) - 총 13바이트
|
- E -> H | Status : cmd(3) - 총 12바이트
|
||||||
- Mode[1] : 0=manual, 1=auto
|
- Mode[1] : 0=manual, 1=auto
|
||||||
- RunSt[1] : 0=stop, 1=run, 2=error
|
- RunSt[1] : 0=stop, 1=run, 2=error
|
||||||
- Diection[1] : 0=straight, 1=left, 2=right, 3=markstop
|
MotDirection[1] : 0:Forward, 1:Backward, 0xFF:unknown
|
||||||
|
- MagDiection[1] : 0=straight, 1=left, 2=right , 0xFF:unknown
|
||||||
- Inposition[1] : 0=off, 1=on : 목적위치에 도달완료 시 설정 이동 이동시 OFF됨
|
- Inposition[1] : 0=off, 1=on : 목적위치에 도달완료 시 설정 이동 이동시 OFF됨
|
||||||
- ChargeSt[1] : 0=off, 1=on
|
- ChargeSt[1] : 0=off, 1=on
|
||||||
- CartSt[1] : 0=off, 1=on, 2=unknown
|
- CartSt[1] : 0=off, 1=on, 2=unknown
|
||||||
- LiftSt[1] : 0=down , 1=up, 2=unknown
|
- LiftSt[1] : 0=down , 1=up, 2=unknown
|
||||||
- LastTag[6] : "000000" (ASCII 6바이트)
|
- LastTag[4] : "0000" (ASCII 4바이트)
|
||||||
|
|
||||||
4. **Door**
|
4. **Door**
|
||||||
- H -> E | cmd(1): 출입문 열기
|
- H -> E | cmd(1): 출입문 열기
|
||||||
|
|||||||
Reference in New Issue
Block a user