# Roadmap: FanucProgramManager ## Overview Console tool for CNC program transfer and file management. Fanuc FOCAS base, expanding to multi-CN (Heidenhain LSV2, Siemens FTP) with robust offline licensing. ## Current Milestone **v0.1 Multi-CN Release** (v0.1.0) Status: In progress Phases: 0 of 4 complete ## Phases | Phase | Name | Plans | Status | Completed | |-------|------|-------|--------|-----------| | 1 | cnc-abstraction | 2 | In progress | - | | 2 | heidenhain | 1 | Not started | - | | 3 | siemens | 1 | Not started | - | | 4 | program-wiring | 1 | Not started | - | ## Phase Details ### Phase 1: cnc-abstraction **Goal:** Fix namespace, add all Cnc/ files to csproj, complete ICncMachine + IFanucMachine with 3-file support **Depends on:** Nothing **Research:** Unlikely **Scope:** - Fix namespace Fanuc_integration → FanucProgramManager.Cnc - Add using FanucProgramManager to Fanuc-specific files - Extend IFocasDialect to accept fileType for tool/work data - Add IFanucMachine interface with tool offset + work zero ops - Add CncManufacturer enum, CncMachineFactory stub - Add all Cnc/ to csproj **Plans:** - [ ] 01-01: Fix namespace, extend dialect interface, IFanucMachine - [ ] 01-02: CncManufacturer, CncMachineFactory, add to csproj ### Phase 2: heidenhain **Goal:** Implement ICncMachine for Heidenhain TNC via LSV2 protocol **Depends on:** Phase 1 **Research:** Likely (LSV2 binary protocol) **Scope:** - HeidenhainConnectionConfig - Lsv2Client (TCP framing, CRC16, commands) - HeidenhainMachine : ICncMachine **Plans:** - [ ] 02-01: Heidenhain LSV2 full implementation ### Phase 3: siemens **Goal:** Implement ICncMachine for Siemens Sinumerik via FTP **Depends on:** Phase 1 **Research:** Unlikely (standard FTP) **Scope:** - SiemensConnectionConfig - SiemensMachine : ICncMachine via FtpWebRequest **Plans:** - [ ] 03-01: Siemens FTP implementation ### Phase 4: program-wiring **Goal:** Wire all 3 manufacturers into Program.cs + InputArgs, replace old FANUCMachine **Depends on:** Phase 1, 2, 3 **Scope:** - Update InputArgs with -manufacturer= param - Refactor Program.cs to use ICncMachine factory - Keep 3-file logic for Fanuc only **Plans:** - [ ] 04-01: InputArgs + Program.cs refactor --- *Roadmap created: 2026-05-13*