4.2 KiB
4.2 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
This is an industrial automation system for ATV (Automatic Test Vehicle) reel label attachment, modification, and transfer operations. The system is built in C# (.NET Framework 4.8) using Windows Forms and integrates with various hardware components including motion controllers, barcode readers, printers, and PLCs.
Build Commands
# Build the main solution
msbuild "STDLabelAttach(ATV).sln" /p:Configuration=Debug /p:Platform="Any CPU"
# Build for release
msbuild "STDLabelAttach(ATV).sln" /p:Configuration=Release /p:Platform="Any CPU"
# Build specific project (example)
msbuild "Project\STDLabelAttach(ATV).csproj" /p:Configuration=Debug
# Build for x86 platform (common configuration)
msbuild "STDLabelAttach(ATV).sln" /p:Configuration=Debug /p:Platform=x86
Architecture Overview
Core Components
-
Project/: Main application with UI and business logic
- Contains the primary Windows Forms application (
fMain.cs) - Implements state machine logic in
RunCode/StateMachine/andRunCode/Step/ - Device interfaces in
Device/folder (KeyenceBarcode, SATOPrinter, TowerLamp, etc.) - Dialog forms for user interactions
- Contains the primary Windows Forms application (
-
Project_form2/: Secondary receiver application for data handling
- Handles SID (Serial ID) conversion and processing
- Customer information management
- Import/export functionality
-
Sub/: Shared libraries and utilities
arCtl/: Custom UI controls and componentsarAzinAxt/: Motion controller interface (AzinAxt hardware)arRS232/: Serial communication libraryAmkorRestfulService/: RESTful API service for external integrationCommSM/: State machine communication libraryCommUtil/: Common utilities and dialogs
Key Technologies
- Hardware Integration: Motion controllers (AzinAxt), barcode readers (Keyence), SATO printers
- Database: Entity Framework 6.2.0 with SQL Server
- Communication: Serial (RS232), RESTful APIs, WebSocket
- Vision: EmguCV for image processing
- Protocols: Custom state machine implementation for equipment control
State Machine Architecture
The application uses a comprehensive state machine pattern:
RunCode/Step/: Main operational steps (INIT, IDLE, RUN, HOME, FINISH)RunCode/StateMachine/: Core state machine logic and event handlingRunCode/RunSequence/: Specific operation sequences (barcode reading, printing, picking)
Device Management
- Motion control through
arAzinAxtlibrary with position validation - Barcode reading with Keyence scanner integration
- Label printing via SATO printer API
- PLC communication for safety and I/O control
Development Patterns
Configuration Management
- Settings stored in
Setting/classes with UI forms for modification - System parameters in
System_Setting.csandSystem_MotParameter.cs - User-specific settings in
UserSetting.cs
Data Management
- Entity Framework models in
Model1.edmx - Database managers in
Manager/folder for different data types - Component classes for reel information, results, and SID conversion
UI Patterns
- Custom controls in
UIControl/folder - Consistent dialog patterns in
Dialog/folder - Resource management with embedded images and icons
Important Notes
- The system requires specific hardware drivers (AzinAxt motion controller, Keyence SDK, SATO printer drivers)
- Database connection strings are configured in
app.config - Motion parameters are stored in
.swppand.usrsfiles inMotParam/ - The application supports both Debug and Release configurations with different output paths
- Platform target is typically x64 for hardware compatibility
Testing
No formal unit test projects are present. Testing is typically done through:
- Manual operation using the main application
- Hardware-in-the-loop testing with actual equipment
- Debug dialogs and monitoring forms in the application
Dependencies
Key external dependencies include:
- Entity Framework 6.2.0
- Newtonsoft.Json 13.0.3
- EmguCV 4.5.1
- Microsoft OWIN stack for web services
- Various hardware-specific SDKs and drivers