# Agent Instructions: MAPO-IOB-WIN ## Project Overview A collection of .NET (C#/VB) projects for industrial communication with NC controls (Fanuc, Siemens, Mitsubishi, etc.) via the Mapo Protocol. ## Build & Release - **Toolchain**: MSBuild (`x86` target). - **Config**: Always use `Release` configuration and `x86` platform. - **Command Example**: ```powershell & "$env:MSBUILD_PATH" "ProjectName\ProjectName.csproj" -target:Build /p:Configuration=Release /p:Platform="x86" /p:OutputPath=bin/ /nodeReuse:false /verbosity:minimal /m ``` - **NuGet**: Requires Steamware Nexus Proxy sources (defined in `.gitlab-ci.yml`). - **Versioning**: Automated during CI via `VersGen\VersGen.cs` and `.nuspec` updates. - **Release Artifacts**: Zipped using `7z.exe`; MD5/SHA1 hashes are generated; uploaded to Nexus. ## Key Directories & Files - **`IOB-WIN-*`**: Protocol-specific implementations (e.g., `FANUC`, `SIEMENS`, `SHELLY`). - **`VersGen\`**: Handles automated assembly versioning during build. - **`UtilityScripts\`**: Contains `alarmFormatter.py` for converting alarm CSV/Excel to JSON. Requires `python3` and `pip install inquirer`. ## Environment & Setup - **Siemens PLC**: Must enable "PUT/GET" permission in TIA Portal. - **Dependencies**: Uses `saltminion` (via Chocolatey) and specific Windows accounts (`steamware`/`IOB`). - **Docs**: Documentation for several modules is generated via `docfx`.