Files
ATV_STDLabelAttach/Handler/CLAUDE.md
2025-08-06 10:05:24 +09:00

4.6 KiB

CLAUDE.md

이 파일은 Claude Code (claude.ai/code)가 이 저장소에서 코드 작업을 할 때 지침을 제공합니다.

프로젝트 개요

이것은 ATV (Automatic Test Vehicle) 릴 라벨 부착, 수정 및 전송 작업을 위한 산업 자동화 시스템입니다. 시스템은 Windows Forms를 사용하여 C# (.NET Framework 4.8)로 구축되었으며, 모션 컨트롤러, 바코드 리더, 프린터 및 PLC를 포함한 다양한 하드웨어 구성 요소와 통합됩니다.

빌드 명령어

# 메인 솔루션 빌드
msbuild "STDLabelAttach(ATV).sln" /p:Configuration=Debug /p:Platform="Any CPU"

# 릴리즈 빌드
msbuild "STDLabelAttach(ATV).sln" /p:Configuration=Release /p:Platform="Any CPU"

# 특정 프로젝트 빌드 (예시)
msbuild "Project\STDLabelAttach(ATV).csproj" /p:Configuration=Debug

# x86 플랫폼 빌드 (일반적인 구성)
msbuild "STDLabelAttach(ATV).sln" /p:Configuration=Debug /p:Platform=x86

아키텍처 개요

핵심 구성 요소

  • Project/: UI 및 비즈니스 로직이 포함된 메인 애플리케이션

    • 기본 Windows Forms 애플리케이션 포함 (fMain.cs)
    • RunCode/StateMachine/RunCode/Step/에서 상태 머신 로직 구현
    • Device/ 폴더의 디바이스 인터페이스 (KeyenceBarcode, SATOPrinter, TowerLamp 등)
    • 사용자 상호작용을 위한 다이얼로그 폼
  • Project_form2/: 데이터 처리를 위한 보조 수신기 애플리케이션

    • SID (Serial ID) 변환 및 처리 담당
    • 고객 정보 관리
    • 가져오기/내보내기 기능
  • Sub/: 공유 라이브러리 및 유틸리티

    • arCtl/: 사용자 정의 UI 컨트롤 및 구성 요소
    • arAzinAxt/: 모션 컨트롤러 인터페이스 (AzinAxt 하드웨어)
    • arRS232/: 시리얼 통신 라이브러리
    • AmkorRestfulService/: 외부 통합을 위한 RESTful API 서비스
    • CommSM/: 상태 머신 통신 라이브러리
    • CommUtil/: 공통 유틸리티 및 다이얼로그

주요 기술

  • 하드웨어 통합: 모션 컨트롤러 (AzinAxt), 바코드 리더 (Keyence), SATO 프린터
  • 데이터베이스: SQL Server를 사용한 Entity Framework 6.2.0
  • 통신: 시리얼 (RS232), RESTful API, WebSocket
  • 비전: 이미지 처리를 위한 EmguCV
  • 프로토콜: 장비 제어를 위한 사용자 정의 상태 머신 구현

상태 머신 아키텍처

애플리케이션은 포괄적인 상태 머신 패턴을 사용합니다:

  • RunCode/Step/: 주요 작업 단계 (INIT, IDLE, RUN, HOME, FINISH)
  • RunCode/StateMachine/: 핵심 상태 머신 로직 및 이벤트 처리
  • RunCode/RunSequence/: 특정 작업 시퀀스 (바코드 읽기, 인쇄, 피킹)

디바이스 관리

  • 위치 검증이 포함된 arAzinAxt 라이브러리를 통한 모션 제어
  • Keyence 스캐너 통합을 통한 바코드 읽기
  • SATO 프린터 API를 통한 라벨 인쇄
  • 안전 및 I/O 제어를 위한 PLC 통신

개발 패턴

구성 관리

  • 수정을 위한 UI 폼이 포함된 Setting/ 클래스에 설정 저장
  • System_Setting.csSystem_MotParameter.cs의 시스템 매개변수
  • UserSetting.cs의 사용자별 설정

데이터 관리

  • Model1.edmx의 Entity Framework 모델
  • 다양한 데이터 유형을 위한 Manager/ 폴더의 데이터베이스 관리자
  • 릴 정보, 결과 및 SID 변환을 위한 구성 요소 클래스

UI 패턴

  • UIControl/ 폴더의 사용자 정의 컨트롤
  • Dialog/ 폴더의 일관된 다이얼로그 패턴
  • 포함된 이미지 및 아이콘을 사용한 리소스 관리

중요 사항

  • 시스템에는 특정 하드웨어 드라이버가 필요합니다 (AzinAxt 모션 컨트롤러, Keyence SDK, SATO 프린터 드라이버)
  • 데이터베이스 연결 문자열은 app.config에서 구성됩니다
  • 모션 매개변수는 MotParam/.swpp.usrs 파일에 저장됩니다
  • 애플리케이션은 서로 다른 출력 경로를 가진 Debug 및 Release 구성을 모두 지원합니다
  • 플랫폼 대상은 일반적으로 하드웨어 호환성을 위해 x64입니다

테스트

공식적인 단위 테스트 프로젝트는 없습니다. 테스트는 일반적으로 다음을 통해 수행됩니다:

  • 메인 애플리케이션을 사용한 수동 작업
  • 실제 장비를 사용한 하드웨어 인 더 루프 테스트
  • 애플리케이션의 디버그 다이얼로그 및 모니터링 폼

종속성

주요 외부 종속성은 다음과 같습니다:

  • Entity Framework 6.2.0
  • Newtonsoft.Json 13.0.3
  • EmguCV 4.5.1
  • 웹 서비스를 위한 Microsoft OWIN 스택
  • 다양한 하드웨어별 SDK 및 드라이버