# Test_ACS 변경 이력 ## v1.4.0 (2025-01-12) ### 설정 파일 저장 방식 변경 - **실행 폴더에 설정 파일 저장** - 이전: 사용자 프로파일 폴더 (`%LOCALAPPDATA%`) - 변경: 실행 파일과 같은 폴더에 `Test_ACS.config` 저장 - 형식: JSON 형식으로 저장 (가독성 향상) ### 코드 개선 - `AppSettings` 클래스 신규 생성 - JSON 직렬화/역직렬화 지원 - 실행 파일 경로 자동 감지 - 설정 파일 자동 생성 및 로드 - Newtonsoft.Json 패키지 참조 추가 ### 사용성 개선 - 설정 파일을 직접 편집 가능 (JSON 형식) - 프로그램 이동 시에도 설정 파일 함께 이동 - 여러 버전 동시 사용 가능 (각 폴더별 독립 설정) --- ## v1.3.0 (2025-01-12) ### 신규 기능 - **AGV 상태 실시간 표시** - AGV 상태 그룹박스 추가 - 8가지 AGV 상태 정보 표시: - 모드 (수동/자동) - 실행상태 (정지/실행/에러) - 방향 (직진/좌회전/우회전/마크정지) - 도달완료 (OFF/ON) - 충전 상태 (OFF/ON) - 카트 감지 (없음/있음/알 수 없음) - 리프트 위치 (하강/상승/알 수 없음) - 현재 RFID 태그 번호 (6자리) - 상태별 색상 표시로 직관적 모니터링 - AGV Status 메시지(cmd=3) 자동 수신 및 업데이트 ### UI 개선 - AGV 상태 그룹박스 추가 (2열 x 4행 레이아웃) - 메인 폼 크기 확장 (539 → 588 픽셀) - 상태별 색상 구분: - 수동(파란색) / 자동(녹색) - 정지(회색) / 실행(녹색) / 에러(빨간색) - 충전중(주황색) ### 프로토콜 업데이트 - ENIGProtocol ReadMe.MD 수정 - AGV Status 프로토콜 정의 명확화 (총 13바이트) - LastTag 필드 크기 수정 (4바이트 → 6바이트) - CurrentPath 필드 제거 (실제 구현과 일치) ### 코드 개선 - `UpdateAGVStatus()` 메서드 구현 - Status 메시지 수신 처리 로직 추가 - 스레드 안전성 보장 (InvokeRequired 체크) - 데이터 유효성 검사 추가 --- ## v1.2.0 (2025-01-12) ### 신규 기능 - **설정 자동 저장/불러오기 기능** - 마지막 사용 COM 포트 자동 저장 - 마지막 사용 보레이트 자동 저장 - 마지막 입력 RFID 번호 자동 저장 - 마지막 입력 별칭 자동 저장 - 마지막 선택 AGV (11/12) 자동 저장 - 프로그램 종료 시 자동 저장 - 프로그램 시작 시 자동 불러오기 ### 구현 상세 - **Settings.settings 파일 확장** - LastPort (string) - LastBaudRate (string) - LastRFID (string) - LastAlias (string) - LastAGV (int) - **자동 저장 이벤트** - COM 포트 선택 변경 시 - 보레이트 텍스트 변경 시 - RFID 번호 텍스트 변경 시 - 별칭 텍스트 변경 시 - AGV 선택 변경 시 - 프로그램 종료 시 (OnFormClosing) - **자동 불러오기** - 프로그램 시작 시 LoadSettings() 호출 - 포트 목록 로드 후 마지막 설정 적용 ### 사용자 경험 개선 - 프로그램 재실행 시 이전 설정 자동 복원 - 설정 저장/불러오기 상태 로그 표시 - 에러 발생 시 로그에 에러 메시지 표시 --- ## v1.1.0 (2025-01-12) ### 신규 기능 - **GotoAlias 명령어 추가** - 별칭(Alias)을 사용한 AGV 이동 명령 지원 - RFID 번호 대신 의미 있는 이름으로 목적지 지정 가능 - 예: "CHARGER1", "BUFFER2", "STATION_A" 등 ### UI 개선 - **별칭 입력 필드 추가** - 위치: RFID 입력 필드 아래 - 기본값: "CHARGER1" - **GotoAlias 버튼 추가** - 위치: Goto 버튼 우측 - 버튼명: "별칭 이동 (GotoAlias)" - **레이아웃 최적화** - RFID 번호 입력: 라인 1 - 별칭 입력: 라인 2 - SetCurrent / GotoAlias 버튼: 라인 3 - Goto / GotoAlias 버튼: 라인 4 - Stop / Reset 버튼: 라인 5 - MarkStop 버튼 및 체크박스: 라인 6 - 수동 제어 / 리프트 제어: 하단 그룹 ### 프로토콜 변경 - **AGVCommandHE Enum 확장** - GotoAlias = 107 추가 - 데이터 형식: TargetID(2 hex) + Alias(ASCII string) ### 코드 개선 - `btnGotoAlias_Click` 이벤트 핸들러 구현 - 별칭 유효성 검사 (빈 문자열 체크) - ASCII → HEX 변환 로직 추가 ### 문서 업데이트 - README.md에 GotoAlias 사용법 추가 - 프로토콜 명령어 표에 GotoAlias 추가 - 버전 이력 업데이트 --- ## v1.0.0 (2025-01-11) ### 초기 릴리즈 - ACS 시뮬레이터 기본 구현 - ENIGProtocol 프로젝트 참조 - RS232 통신 지원 - 7가지 기본 ACS 명령어: - SetCurrent (현재 위치 설정) - Goto (RFID 이동) - Stop (정지) - Reset (에러 리셋) - Manual (수동 제어) - MarkStop (마크센서 정지) - LiftControl (리프트 제어) - AGV 선택 기능 (AGV1/AGV2) - 로그 시스템 (TX/RX/Info 탭) - COM 포트 관리 (연결/해제/새로고침)