nc_program_manager/.paul/ROADMAP.md

83 lines
2.2 KiB
Markdown

# 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*