diff --git a/ENIGProtocol.sln b/ENIGProtocol.sln index 3fc2298..4377955 100644 --- a/ENIGProtocol.sln +++ b/ENIGProtocol.sln @@ -9,6 +9,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleProject", "sample\Sam EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ENIGProtocol.Tests", "ENIGProtocol.Tests\ENIGProtocol.Tests.csproj", "{3A677629-1F08-49B2-BC75-58282E439FD4}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "솔루션 항목", "솔루션 항목", "{0A11874A-E5C6-4170-9787-1FFF7AF0D289}" + ProjectSection(SolutionItems) = preProject + .gitignore = .gitignore + ReadMe.MD = ReadMe.MD + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/ReadMe.MD b/ReadMe.MD index cc3bb5a..10d67b3 100644 --- a/ReadMe.MD +++ b/ReadMe.MD @@ -55,20 +55,61 @@ This README provides a comprehensive overview of the `ENIGProtocol` library, mak ### 명령어 목록 1. **ACS (AGV Control System)** - - cmd(1): 출입문 열기 - - cmd(2): 출입문 닫기 - - cmd(3): 출입문 상태 확인 (응답: 1=열림, 0=닫힘) + 2. **Buffer** - - 버퍼 관리 관련 명령어 + - E -> H | cmd(3): 상태 (data len=1 : 0=카트없음, 1=카트있음, 2=바쁨, 3=알수없음, 255=오류) 3. **AGV** - - AGV 제어 관련 명령어 + - H -> E | Move : cmd(100) : 대상태그까지 이동(자동이동) + - TagID[6] = 000000 + - H -> E | Stop : cmd(101) : 멈춤 + - H -> E | Reset : cmd(102) : 오류 소거 + - H -> E | Charge : cmd(103) : 충전실행(충전기 이동 후 자동 충전 진행) + - Action[1] : 0=Charge Off, 1=Charge On + + - H -> E | MoveManual : cmd(104) : 메뉴얼이동 + - Direction[1] : 0=Backward, 1=Forward, 2=TurnLeft, 3=TurnRight + - Speed[1] : 0=Slow, 1=Normal, 2=Fast + - Runtime[1] : 0 second + - H -> E | MarkStop : cmd(105) : 마크센서스톱 + + - H -> E | Lift Control : cmd(106) : 리프트제어 + - Action[1] : 0=STOP, 1=UP, 2=DOWN + + - H -> E | ClearPath : cmd(107) : 설정된 경로를 삭제(기동중에 수신되는 경우 강제 정지) + + + - H <-> E | Send Path : cmd(108) : 경로정보를 반환 (태그목록이 콤마로 분리되어 ASCII로 전송) + - PathID[1] : 1 : 명령어 식별번호, AGV상태값에 Path ID가 출력됨 + - PathCount[1] : 전체 태그 갯수 + - PageNo[1] : 1 : 데이터 총길이가 255를 넘어서면 페이지 분리하여 전달 + - PageCount[1] : 1 + - TagID[6]....[n] + + - E <-> H | Request Path : cmd(1) + - PathID[1] : 식별용 Path ID, 데이터전송대상은 동일 ID로 값을 반환해야한다 + - PathPage[1] : 요청페이지 (최초 1번 요청 후 수신데이터에서 다음페이지 존재한다면 페이지번호를 변경하여 요청해야 함) + + - E -> H | Move Complete : cmd(2) : 목적지이동완료 후 전송 + - E -> H | TagID Received : cmd(3) : 태그값 인식시 전송 + - TagID[6] : "000000" + + - E -> H | Status : cmd(9) + - Mode[1] : 0=manual, 1=auto + - RunSt[1] : 0=stop, 1=run, 2=error + - Diection[1] : 0=straight, 1=left, 2=right, 3=markstop + - Inposition[1] : 0=off, 1=on : 목적위치에 도달완료 시 설정 이동 이동시 OFF됨 + - ChargeSt[1] : 0=off, 1=on + - CartSt[1] : 0=off, 1=on, 2=unknown + - LiftSt[1] : 0=down , 1=up, 2=unknown + - LastTag[6] : "000000" + - CurrentPath[1] : Path ID , 0=미설정, 1~255(순차증가) 4. **Door** - H -> E | cmd(1): 출입문 열기 - H -> E | cmd(2): 출입문 닫기 - - E -> H | cmd(3): 출입문 상태 (data len=1 : 1=열림, 0=닫힘) + - E -> H | cmd(3): 출입문 상태 (data len=1 : 0=닫힘, 1=열림, 2=바쁨, 3=알수없음, 255=오류) ### CRC16 계산 - CRC16 다항식 사용