PAUL bookkeeping per chiusura milestone v0.6 (Phase 16: 16-01 + 16-02): - STATE.md — sezione v0.6 + Phase 16-01 + 16-02 fixup post-review. - ROADMAP.md — Milestone v0.6 + Phase 16 (2 plans). - paul.json — version 0.6.0, milestone Fagor Support, phase 16 fagor-ftp. - phases/16-fagor-ftp/ — 16-01-PLAN.md + 16-01-SUMMARY.md (impl iniziale), 16-02-PLAN.md + 16-02-SUMMARY.md (fix post-review). - ISSUES.md — ISS-012..ISS-017 derivati da code review v0.6: - ISS-012: Fagor ReadActiveProgramAsync/SelectMainProgram non impl - ISS-013: Program.Invia accoppia FanucProgram a tutti i produttori - ISS-014: ResolvePath null-folder NRE pattern (Siemens/Mitsubishi/Fagor) - ISS-015: encoding source-file rischio codepage Windows non-UTF8 - ISS-016: WriteProgramAsync validator riceve path se Name null - ISS-017: FagorFtpClient.Ping swallow senza log Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2.4 KiB
2.4 KiB
Phase 16-01 — Fagor FTP Support
Goal
Aggiungere supporto Fagor CNC via FTP a NcProgramManager. Riusare pattern Siemens/Mitsubishi (FtpWebRequest + ASCII). Refactor validator per gating per-produttore dei check generic (block 80, no tab, no lowercase, nested parens, comment 32) — applicati ora solo a Fanuc+Mitsubishi (Fagor esente). Estendere CLI con -manufacturer=fagor.
Modelli supportati
| Modello | Supporto | Note |
|---|---|---|
| 8055 | Solo con opzione Ethernet | Richiede attivazione server FTP via parametri macchina |
| 8060 | Sì | FTP nativo (Windows-based) |
| 8065 | Sì | FTP nativo (Windows-based) |
| 8070 | Sì | FTP nativo (Windows embedded) |
Modelli non supportati
| Modello | Motivo |
|---|---|
| 8055 base (senza Ethernet) | Solo RS232; protocollo seriale non implementato |
| 8025 / 8030 / 8040 / 8050 | Legacy, esclusivamente RS232 |
Files creati
Cnc/Fagor/FagorConnectionConfig.csCnc/Fagor/IFagorFtpClient.csCnc/Fagor/FagorFtpClient.csCnc/Fagor/FagorMachine.csNcProgramManager.Tests/Unit/FagorMachineTests.csNcProgramManager.Tests/Integration/FagorMachineIntegrationTests.cs
Files modificati
Cnc/Models/CncManufacturer.cs— enum aggiuntoFagorCnc/CncMachineFactory.cs— caseFagorCnc/NcProgramValidator.cs— refactor gating + case FagorArgParser.cs— case"fagor"Program.cs— help textNcProgramManager.csproj— 4<Compile Include>NcProgramManager.Tests/NcProgramManager.Tests.csproj— 2<Compile Include>NcProgramManager.Tests/Unit/NcProgramValidatorTests.cs— 3 test esistenti spostati Siemens → Fanuc, 8 nuovi FagorREADME.md— sezione Controller Fagor
Regole validatore Fagor
- Nome programma: max 24 caratteri, no
ñ, solo lettere/cifre/spazi - Contenuto programma: nessuna restrizione (Fagor permette ISO + linguaggio alto livello)
- Check generic (block 80, tab, lowercase, nested parens, comment 32) NON applicati a Fagor
Funzioni non supportate via FTP
ReadActiveProgramAsync— richiede DNC/OPC-UASelectMainProgramAsync— richiede DNCReadAsyncritornaMachineSnapshotcon valoriUnknown
Variabili d'ambiente test integration
FAGOR_TEST_IP— indirizzo IP macchina (test skippato se assente)FAGOR_USER— username FTP (defaultuser)FAGOR_PASS— password FTP (defaultpass)