Files
ENIG/Cs_HMI/TestProject/Test_ACS/CHANGELOG.md
backuppc 1c12beb3e7 Test_ACS 프로젝트 추가 - ACS 시뮬레이터 (v1.4.0)
## 신규 기능
- ACS(중앙제어시스템) 시뮬레이터 프로젝트 생성
- 8가지 AGV 제어 명령어 지원:
  * SetCurrent: 현재 위치 설정
  * Goto: RFID 이동
  * GotoAlias: 별칭 이동 (v1.1.0)
  * Stop: 정지
  * Reset: 에러 리셋
  * Manual: 수동 제어
  * MarkStop: 마크센서 정지
  * LiftControl: 리프트 제어

## AGV 상태 실시간 표시 (v1.3.0)
- AGV 상태 그룹박스 추가 (8가지 상태 정보)
- Status 메시지(cmd=3) 자동 수신 및 UI 업데이트
- 상태별 색상 표시로 직관적 모니터링

## 설정 관리
- 실행 폴더에 JSON 형식 설정 파일 저장 (v1.4.0)
- COM 포트, 보레이트, RFID, 별칭, AGV 선택 자동 저장
- 설정 파일 직접 편집 가능

## 기술 스택
- .NET Framework 4.8
- ENIGProtocol 프로젝트 참조
- RS232/Xbee 통신
- Newtonsoft.Json

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-12 17:35:36 +09:00

4.8 KiB

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 포트 관리 (연결/해제/새로고침)