diff --git a/.paul/PROJECT.md b/.paul/PROJECT.md index 93ec363..bbad1ce 100644 --- a/.paul/PROJECT.md +++ b/.paul/PROJECT.md @@ -1,4 +1,4 @@ -# FanucProgramManager +# NcProgramManager ## What This Is @@ -34,6 +34,7 @@ Machinists and operators transfer CNC programs to/from any controller without ma - [x] Multi-CN support — Fanuc, Heidenhain, Siemens, Mitsubishi — Phase 1–4 - [x] 3-file management mode (Fanuc) via IFanucMachine — Phase 4 - [x] NC program validation before upload (all 4 manufacturers) — Phase 5 +- [x] Project renamed FanucProgramManager → NcProgramManager — Phase 6 ### Planned (Next) - [ ] Hardware fingerprint license system (CPU ID + disk serial + encrypted file) @@ -96,4 +97,4 @@ Machinists and operators transfer CNC programs to/from any controller without ma --- *PROJECT.md — Updated when requirements or context change* -*Last updated: 2026-05-17 after Phase 5 (NC Validator)* +*Last updated: 2026-05-17 after Phase 6 (Rename Cleanup)* diff --git a/.paul/ROADMAP.md b/.paul/ROADMAP.md index a5b25a5..3346336 100644 --- a/.paul/ROADMAP.md +++ b/.paul/ROADMAP.md @@ -84,14 +84,33 @@ Completed: 2026-05-13 ## Next Milestone -**v0.2 License System** (proposed) -Status: Not started +**v0.2 NcProgramManager** (in progress) +Status: Planning +Phases: 0 of 4 complete -Planned scope: -- Hardware fingerprint (CPU ID + disk serial) -- Encrypted license file (AES, offline) -- License generator tool (internal) -- Replace hardcoded key/IV +| Phase | Name | Plans | Status | +|-------|------|-------|--------| +| 06 | rename-cleanup | 1 | ✅ Complete | +| 07 | license-core | 1 | Not started | +| 08 | license-integration | 1 | Not started | +| 09 | license-generator | 1 | Not started | + +### Phase 06: rename-cleanup ✅ +**Goal:** Rename FanucProgramManager → NcProgramManager (namespace, project files, test folder). Delete dead FANUCMachine.cs. +**Completed:** 2026-05-17 +**Plans:** [x] 06-01: Namespace + file rename + +### Phase 07: license-core (proposed) +**Goal:** `IMachineFingerprint`, `ILicenseValidator`, RSA signature verification, `.lic` file model +**Depends on:** Phase 06 + +### Phase 08: license-integration (proposed) +**Goal:** Wire license system into Program.cs, replace `checkLicense`, replace `-chiave=` with `-licfile=` +**Depends on:** Phase 07 + +### Phase 09: license-generator (proposed) +**Goal:** Separate generator console app — reads machine fingerprint, signs, writes `.lic` file +**Depends on:** Phase 07 --- *Roadmap updated: 2026-05-17 — v0.1 milestone complete* diff --git a/.paul/STATE.md b/.paul/STATE.md index 87b16b9..d3e2600 100644 --- a/.paul/STATE.md +++ b/.paul/STATE.md @@ -9,21 +9,23 @@ See: .paul/PROJECT.md (updated 2026-05-17) ## Current Position -Milestone: v0.1 Multi-CN Release — **COMPLETE** -Phase: 5 of 5 — Complete -Plan: All plans unified -Status: Milestone complete, ready for v0.2 planning -Last activity: 2026-05-17 — Phase 5 unified, milestone closed +Milestone: v0.2 NcProgramManager +Phase: 1 of 4 (06-rename-cleanup) — Complete +Plan: 06-01 unified +Status: Phase 06 complete, ready to plan Phase 07 +Last activity: 2026-05-17 — Phase 06 rename-cleanup unified Progress: -- Milestone v0.1: [██████████] 100% +- Milestone v0.1: [██████████] 100% (complete) +- Milestone v0.2: [██░░░░░░░░] 25% +- Phase 06: [██████████] 100% ## Loop Position Current loop state: ``` PLAN ──▶ APPLY ──▶ UNIFY - ✓ ✓ ✓ [Loop complete — milestone done] + ✓ ✓ ✓ [Loop complete — ready for next PLAN] ``` ## What Was Built (v0.1 Multi-CN Release) @@ -87,9 +89,9 @@ None — code complete, pending hardware testing on real machines. ## Session Continuity Last session: 2026-05-17 -Stopped at: v0.1 milestone UNIFY complete -Next action: `/paul:plan` for v0.2 License System, or `/paul:milestone` to define next milestone -Resume file: .paul/ROADMAP.md +Stopped at: Phase 06 complete — rename-cleanup unified +Next action: /paul:plan for Phase 07 (license-core) +Resume file: .paul/phases/06-rename-cleanup/06-01-SUMMARY.md --- *STATE.md — Updated after every significant action* diff --git a/.paul/phases/06-rename-cleanup/06-01-PLAN.md b/.paul/phases/06-rename-cleanup/06-01-PLAN.md new file mode 100644 index 0000000..c827790 --- /dev/null +++ b/.paul/phases/06-rename-cleanup/06-01-PLAN.md @@ -0,0 +1,220 @@ +--- +phase: 06-rename-cleanup +plan: 01 +type: execute +wave: 1 +depends_on: [] +files_modified: + - "**/*.cs (all ~62 files — namespace string replace)" + - Properties/AssemblyInfo.cs + - FanucProgramManager.csproj → NcProgramManager.csproj + - FanucProgramManager.sln → NcProgramManager.sln + - FanucProgramManager.Tests/FanucProgramManager.Tests.csproj → NcProgramManager.Tests/NcProgramManager.Tests.csproj + - FANUCMachine.cs (delete) +autonomous: true +--- + + +## Goal +Rename project from FanucProgramManager to NcProgramManager: namespace, assembly, project files, test folder, and delete dead legacy file. + +## Purpose +Product is no longer Fanuc-only. Name FanucProgramManager is wrong. NcProgramManager reflects multi-CN scope. + +## Output +- All namespaces: `FanucProgramManager` → `NcProgramManager` +- Project/solution files renamed +- Test folder renamed +- `FANUCMachine.cs` deleted (zero references outside itself) +- Solution builds with no errors + + + +## Project Context +@.paul/PROJECT.md +@.paul/STATE.md + +## Key Files +@FanucProgramManager.csproj +@FanucProgramManager.sln +@Properties/AssemblyInfo.cs +@FanucProgramManager.Tests/FanucProgramManager.Tests.csproj + + + + +## AC-1: Namespace renamed everywhere +```gherkin +Given any .cs file in the project +When opened +Then namespace declarations and using directives reference NcProgramManager (not FanucProgramManager) +``` + +## AC-2: Project and solution files updated +```gherkin +Given the renamed solution +When opened in Visual Studio or built with msbuild +Then assembly name is NcProgramManager, test assembly is NcProgramManager.Tests, project reference resolves +``` + +## AC-3: Dead code removed +```gherkin +Given FANUCMachine.cs +When cleanup completes +Then file does not exist (confirmed zero references before deletion) +``` + + + + + + + Task 1: Replace FanucProgramManager string in all .cs files + All *.cs files under project root (recursively) + + Run find+sed to replace all occurrences of `FanucProgramManager` with `NcProgramManager` in every .cs file: + + ```bash + find /path/to/project -name "*.cs" -exec sed -i 's/FanucProgramManager/NcProgramManager/g' {} + + ``` + + This covers: + - `namespace FanucProgramManager` → `namespace NcProgramManager` + - `namespace FanucProgramManager.Cnc` → `namespace NcProgramManager.Cnc` + - `using FanucProgramManager;` → `using NcProgramManager;` + - `using FanucProgramManager.Cnc.Fanuc;` → `using NcProgramManager.Cnc.Fanuc;` + - All sub-namespaces (.Cnc, .Cnc.Fanuc, .Cnc.Heidenhain, .Cnc.Siemens, .Cnc.Mitsubishi, .Cnc.Models) + - `InternalsVisibleTo("FanucProgramManager.Tests")` in AssemblyInfo.cs + - `AssemblyTitle`, `AssemblyProduct` in AssemblyInfo.cs + + Avoid: editing binary files, NuGet package cache, obj/bin folders. + Use: `-not -path "*/obj/*" -not -path "*/bin/*" -not -path "*/.paul/*"` + + + ```bash + grep -r "FanucProgramManager" --include="*.cs" . + ``` + Must return zero results. + + AC-1 satisfied: no .cs file contains FanucProgramManager + + + + Task 2: Update project and solution metadata files + + FanucProgramManager.csproj, + FanucProgramManager.Tests/FanucProgramManager.Tests.csproj, + FanucProgramManager.sln + + + In `FanucProgramManager.csproj`: + - `FanucProgramManager` → `NcProgramManager` + - `FanucProgramManager` → `NcProgramManager` + + In `FanucProgramManager.Tests/FanucProgramManager.Tests.csproj`: + - `FanucProgramManager.Tests` → `NcProgramManager.Tests` + - `FanucProgramManager.Tests` → `NcProgramManager.Tests` + - `` → `` + - `FanucProgramManager` → `NcProgramManager` + + In `FanucProgramManager.sln`: + - Project line: `"FanucProgramManager", "FanucProgramManager.csproj"` → `"NcProgramManager", "NcProgramManager.csproj"` + - Project line: `"FanucProgramManager.Tests", "FanucProgramManager.Tests\FanucProgramManager.Tests.csproj"` → `"NcProgramManager.Tests", "NcProgramManager.Tests\NcProgramManager.Tests.csproj"` + + + ```bash + grep -n "FanucProgramManager" FanucProgramManager.csproj FanucProgramManager.Tests/FanucProgramManager.Tests.csproj FanucProgramManager.sln + ``` + Must return zero results. + + AC-2 satisfied: all project metadata references NcProgramManager + + + + Task 3: Rename files/folder and delete dead code + + FANUCMachine.cs (delete), + FanucProgramManager.csproj → NcProgramManager.csproj (rename), + FanucProgramManager.sln → NcProgramManager.sln (rename), + FanucProgramManager.Tests/ → NcProgramManager.Tests/ (folder rename), + FanucProgramManager.Tests/FanucProgramManager.Tests.csproj → NcProgramManager.Tests/NcProgramManager.Tests.csproj (rename) + + + 1. Delete `FANUCMachine.cs` — confirmed dead: no file outside itself references `FANUCMachine`. Also remove its `` entry from csproj. + + 2. Rename project file: + ```bash + mv FanucProgramManager.csproj NcProgramManager.csproj + ``` + + 3. Rename solution file: + ```bash + mv FanucProgramManager.sln NcProgramManager.sln + ``` + + 4. Rename test folder (this moves all contents): + ```bash + mv FanucProgramManager.Tests NcProgramManager.Tests + ``` + + 5. Rename test csproj inside the now-renamed folder: + ```bash + mv NcProgramManager.Tests/FanucProgramManager.Tests.csproj NcProgramManager.Tests/NcProgramManager.Tests.csproj + ``` + + Order matters: rename folder BEFORE renaming csproj inside it. + The .sln file was already updated in Task 2 to reference new paths — verify paths match after rename. + + Avoid: renaming `Cnc/Fanuc/` folder or any Fanuc-prefixed class files — `FanucMachine`, `FanucConnectionConfig` etc. are manufacturer-specific names, keep them. + + + ```bash + ls NcProgramManager.csproj NcProgramManager.sln NcProgramManager.Tests/NcProgramManager.Tests.csproj + ls FANUCMachine.cs 2>&1 # must say: No such file + grep "FANUCMachine" NcProgramManager.csproj # must return nothing + ``` + + AC-2 and AC-3 satisfied: files renamed, dead code deleted, .sln paths match physical files + + + + + + +## DO NOT CHANGE +- `Cnc/Fanuc/` folder name — Fanuc is a manufacturer name, not a project name +- `FanucMachine.cs`, `FanucConnectionConfig.cs`, `FanucCapabilities.cs` — manufacturer-specific class names, keep +- `FanucProgram.cs` — Fanuc ISO program format class, name is accurate +- `FanucProgramParsingTests.cs` — test file for FanucProgram, name is accurate +- `IFanucMachine.cs` — interface name correct (Fanuc-specific capability set) +- Any class name that describes Fanuc-specific behavior + +## SCOPE LIMITS +- No Italian → English rename in this plan (deferred) +- No logic changes — pure rename/delete only +- No NuGet package changes +- No new files created + + + + +Before declaring plan complete: +- [ ] `grep -r "FanucProgramManager" --include="*.cs" .` returns zero results +- [ ] `grep -r "FanucProgramManager" --include="*.csproj" .` returns zero results +- [ ] `grep "FanucProgramManager" NcProgramManager.sln` returns zero results +- [ ] `ls FANUCMachine.cs` returns "No such file" +- [ ] `ls NcProgramManager.csproj NcProgramManager.sln NcProgramManager.Tests/` all exist +- [ ] All acceptance criteria met + + + +- All tasks completed +- All verification checks pass +- No FanucProgramManager references remain in .cs, .csproj, or .sln files +- FANUCMachine.cs deleted +- Project file names match NcProgramManager + + + +After completion, create `.paul/phases/06-rename-cleanup/06-01-SUMMARY.md` + diff --git a/.paul/phases/06-rename-cleanup/06-01-SUMMARY.md b/.paul/phases/06-rename-cleanup/06-01-SUMMARY.md new file mode 100644 index 0000000..eaec6e6 --- /dev/null +++ b/.paul/phases/06-rename-cleanup/06-01-SUMMARY.md @@ -0,0 +1,102 @@ +--- +phase: 06-rename-cleanup +plan: 01 +subsystem: infra +tags: [rename, namespace, csharp, dotnet472, cleanup] + +requires: [] +provides: + - NcProgramManager namespace across all 62 .cs files + - NcProgramManager.csproj / NcProgramManager.sln / NcProgramManager.Tests/ + - FANUCMachine.cs deleted +affects: [07-license-core, 08-license-integration, 09-license-generator] + +tech-stack: + added: [] + patterns: [] + +key-files: + created: [] + modified: + - NcProgramManager.csproj (was FanucProgramManager.csproj) + - NcProgramManager.sln (was FanucProgramManager.sln) + - NcProgramManager.Tests/NcProgramManager.Tests.csproj + - All 62 .cs files (namespace string replace) + +key-decisions: + - "Fanuc-prefixed class names kept: FanucMachine, FanucProgram, IFanucMachine — manufacturer names, not project names" + +patterns-established: [] + +duration: 5min +started: 2026-05-17T00:00:00Z +completed: 2026-05-17T00:00:00Z +--- + +# Phase 6 Plan 1: Rename Cleanup Summary + +**FanucProgramManager → NcProgramManager across 62 .cs files, 3 project/solution files, test folder rename, FANUCMachine.cs deleted.** + +## Performance + +| Metric | Value | +|--------|-------| +| Duration | ~5 min | +| Started | 2026-05-17 | +| Completed | 2026-05-17 | +| Tasks | 3 completed | +| Files modified | 62 .cs + 3 project files + 1 folder rename + 1 file deleted | + +## Acceptance Criteria Results + +| Criterion | Status | Notes | +|-----------|--------|-------| +| AC-1: Namespace renamed everywhere | Pass | grep returns zero results across all .cs files | +| AC-2: Project/solution files updated | Pass | AssemblyName, RootNamespace, ProjectReference all updated; files renamed | +| AC-3: Dead code removed | Pass | FANUCMachine.cs deleted; Compile entry removed from csproj | + +## Accomplishments + +- All namespaces, using directives, AssemblyTitle, AssemblyProduct, InternalsVisibleTo updated in one sed pass +- Project and test folder physically renamed to match new name +- Zero FanucProgramManager strings remain in .cs, .csproj, or .sln + +## Files Created/Modified + +| File | Change | Purpose | +|------|--------|---------| +| All 62 `.cs` files | Modified | `FanucProgramManager` → `NcProgramManager` namespace/usings | +| `NcProgramManager.csproj` | Renamed + modified | AssemblyName + RootNamespace updated | +| `NcProgramManager.sln` | Renamed + modified | Project references updated | +| `NcProgramManager.Tests/NcProgramManager.Tests.csproj` | Renamed + modified | AssemblyName, RootNamespace, ProjectReference updated | +| `FANUCMachine.cs` | Deleted | Dead code — zero references outside itself | + +## Decisions Made + +| Decision | Rationale | Impact | +|----------|-----------|--------| +| Keep `FanucMachine`, `FanucProgram`, `IFanucMachine` names | These are manufacturer-specific identifiers, not project names | Future phases reference these names unchanged | + +## Deviations from Plan + +None — plan executed exactly as written. + +## Issues Encountered + +None. + +## Next Phase Readiness + +**Ready:** +- All code under `NcProgramManager` namespace +- Project builds under new name (pending Windows build verification) +- Clean foundation for license system phases + +**Concerns:** +- Build not verifiable on Linux (fwlib32 Windows-only DLL) — same as before + +**Blockers:** None + +--- +*Phase: 06-rename-cleanup, Plan: 01* +*Completed: 2026-05-17* diff --git a/AesCrypt.cs b/AesCrypt.cs index 28e1894..fe0a204 100755 --- a/AesCrypt.cs +++ b/AesCrypt.cs @@ -2,7 +2,7 @@ using System.IO; using System.Security.Cryptography; -namespace FanucProgramManager +namespace NcProgramManager { class AesCrypt { diff --git a/Cnc/CncMachineFactory.cs b/Cnc/CncMachineFactory.cs index 8299373..ae12c39 100644 --- a/Cnc/CncMachineFactory.cs +++ b/Cnc/CncMachineFactory.cs @@ -1,11 +1,11 @@ using System; -using FanucProgramManager.Cnc.Fanuc; -using FanucProgramManager.Cnc.Heidenhain; -using FanucProgramManager.Cnc.Mitsubishi; -using FanucProgramManager.Cnc.Models; -using FanucProgramManager.Cnc.Siemens; +using NcProgramManager.Cnc.Fanuc; +using NcProgramManager.Cnc.Heidenhain; +using NcProgramManager.Cnc.Mitsubishi; +using NcProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Siemens; -namespace FanucProgramManager.Cnc +namespace NcProgramManager.Cnc { internal static class CncMachineFactory { diff --git a/Cnc/Fanuc/FanucCapabilities.cs b/Cnc/Fanuc/FanucCapabilities.cs index cd3e605..70a176b 100755 --- a/Cnc/Fanuc/FanucCapabilities.cs +++ b/Cnc/Fanuc/FanucCapabilities.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Fanuc +namespace NcProgramManager.Cnc.Fanuc { public sealed class FanucCapabilities { diff --git a/Cnc/Fanuc/FanucConnectionConfig.cs b/Cnc/Fanuc/FanucConnectionConfig.cs index 86e20d2..787e4c6 100755 --- a/Cnc/Fanuc/FanucConnectionConfig.cs +++ b/Cnc/Fanuc/FanucConnectionConfig.cs @@ -1,6 +1,6 @@ using System; -namespace FanucProgramManager.Cnc.Fanuc +namespace NcProgramManager.Cnc.Fanuc { public enum FanucTransport { diff --git a/Cnc/Fanuc/FanucDialect.cs b/Cnc/Fanuc/FanucDialect.cs index 70c83ea..0c4464e 100755 --- a/Cnc/Fanuc/FanucDialect.cs +++ b/Cnc/Fanuc/FanucDialect.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Fanuc +namespace NcProgramManager.Cnc.Fanuc { public enum FanucDialect { diff --git a/Cnc/Fanuc/FanucDialectDetector.cs b/Cnc/Fanuc/FanucDialectDetector.cs index c00ecd2..4692b6a 100755 --- a/Cnc/Fanuc/FanucDialectDetector.cs +++ b/Cnc/Fanuc/FanucDialectDetector.cs @@ -1,6 +1,6 @@ -using FanucProgramManager; +using NcProgramManager; -namespace FanucProgramManager.Cnc.Fanuc +namespace NcProgramManager.Cnc.Fanuc { internal static class FanucDialectDetector { diff --git a/Cnc/Fanuc/FanucErrorTranslator.cs b/Cnc/Fanuc/FanucErrorTranslator.cs index 00a7357..997edb7 100755 --- a/Cnc/Fanuc/FanucErrorTranslator.cs +++ b/Cnc/Fanuc/FanucErrorTranslator.cs @@ -1,8 +1,8 @@ using System.Collections.Generic; -using FanucProgramManager; -using FanucProgramManager.Cnc.Models; +using NcProgramManager; +using NcProgramManager.Cnc.Models; -namespace FanucProgramManager.Cnc.Fanuc +namespace NcProgramManager.Cnc.Fanuc { internal static class FanucErrorTranslator { diff --git a/Cnc/Fanuc/FanucMachine.cs b/Cnc/Fanuc/FanucMachine.cs index e5c5ca7..ffe8a39 100755 --- a/Cnc/Fanuc/FanucMachine.cs +++ b/Cnc/Fanuc/FanucMachine.cs @@ -5,11 +5,11 @@ using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; -using FanucProgramManager; -using FanucProgramManager.Cnc; -using FanucProgramManager.Cnc.Models; +using NcProgramManager; +using NcProgramManager.Cnc; +using NcProgramManager.Cnc.Models; -namespace FanucProgramManager.Cnc.Fanuc +namespace NcProgramManager.Cnc.Fanuc { public sealed class FanucMachine : IFanucMachine { diff --git a/Cnc/Fanuc/FocasDialectFactory.cs b/Cnc/Fanuc/FocasDialectFactory.cs index ee8b147..97d306f 100755 --- a/Cnc/Fanuc/FocasDialectFactory.cs +++ b/Cnc/Fanuc/FocasDialectFactory.cs @@ -1,6 +1,6 @@ using System; -namespace FanucProgramManager.Cnc.Fanuc +namespace NcProgramManager.Cnc.Fanuc { internal static class FocasDialectFactory { diff --git a/Cnc/Fanuc/IFocasDialect.cs b/Cnc/Fanuc/IFocasDialect.cs index 1bfdc20..b008e35 100755 --- a/Cnc/Fanuc/IFocasDialect.cs +++ b/Cnc/Fanuc/IFocasDialect.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Fanuc +namespace NcProgramManager.Cnc.Fanuc { internal interface IFocasDialect { diff --git a/Cnc/Fanuc/IsoProgramFormatter.cs b/Cnc/Fanuc/IsoProgramFormatter.cs index 6cdeb5a..069b3a8 100755 --- a/Cnc/Fanuc/IsoProgramFormatter.cs +++ b/Cnc/Fanuc/IsoProgramFormatter.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Fanuc +namespace NcProgramManager.Cnc.Fanuc { public static class IsoProgramFormatter { diff --git a/Cnc/Fanuc/LegacyFocasDialect.cs b/Cnc/Fanuc/LegacyFocasDialect.cs index 5120c64..f04b355 100755 --- a/Cnc/Fanuc/LegacyFocasDialect.cs +++ b/Cnc/Fanuc/LegacyFocasDialect.cs @@ -1,6 +1,6 @@ -using FanucProgramManager; +using NcProgramManager; -namespace FanucProgramManager.Cnc.Fanuc +namespace NcProgramManager.Cnc.Fanuc { internal sealed class LegacyFocasDialect : IFocasDialect { diff --git a/Cnc/Fanuc/ModernFocasDialect.cs b/Cnc/Fanuc/ModernFocasDialect.cs index 13dd273..60f2c44 100755 --- a/Cnc/Fanuc/ModernFocasDialect.cs +++ b/Cnc/Fanuc/ModernFocasDialect.cs @@ -1,7 +1,7 @@ using System.Text; -using FanucProgramManager; +using NcProgramManager; -namespace FanucProgramManager.Cnc.Fanuc +namespace NcProgramManager.Cnc.Fanuc { internal sealed class ModernFocasDialect : IFocasDialect { diff --git a/Cnc/Heidenhain/HeidenhainConnectionConfig.cs b/Cnc/Heidenhain/HeidenhainConnectionConfig.cs index b4ffc9f..951f757 100644 --- a/Cnc/Heidenhain/HeidenhainConnectionConfig.cs +++ b/Cnc/Heidenhain/HeidenhainConnectionConfig.cs @@ -1,6 +1,6 @@ using System; -namespace FanucProgramManager.Cnc.Heidenhain +namespace NcProgramManager.Cnc.Heidenhain { public sealed class HeidenhainConnectionConfig { diff --git a/Cnc/Heidenhain/HeidenhainMachine.cs b/Cnc/Heidenhain/HeidenhainMachine.cs index fb03314..a7eff40 100644 --- a/Cnc/Heidenhain/HeidenhainMachine.cs +++ b/Cnc/Heidenhain/HeidenhainMachine.cs @@ -3,10 +3,10 @@ using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; -using FanucProgramManager.Cnc; -using FanucProgramManager.Cnc.Models; +using NcProgramManager.Cnc; +using NcProgramManager.Cnc.Models; -namespace FanucProgramManager.Cnc.Heidenhain +namespace NcProgramManager.Cnc.Heidenhain { public sealed class HeidenhainMachine : ICncMachine { diff --git a/Cnc/Heidenhain/ILsv2Client.cs b/Cnc/Heidenhain/ILsv2Client.cs index 53a9519..b2b4f2c 100644 --- a/Cnc/Heidenhain/ILsv2Client.cs +++ b/Cnc/Heidenhain/ILsv2Client.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Heidenhain +namespace NcProgramManager.Cnc.Heidenhain { internal interface ILsv2Client { diff --git a/Cnc/Heidenhain/Lsv2Client.cs b/Cnc/Heidenhain/Lsv2Client.cs index 39b2ce7..0f1ba9b 100644 --- a/Cnc/Heidenhain/Lsv2Client.cs +++ b/Cnc/Heidenhain/Lsv2Client.cs @@ -2,7 +2,7 @@ using System; using System.Net.Sockets; using System.Text; -namespace FanucProgramManager.Cnc.Heidenhain +namespace NcProgramManager.Cnc.Heidenhain { /// LSV2 protocol client for Heidenhain TNC controls. internal sealed class Lsv2Client : ILsv2Client, IDisposable diff --git a/Cnc/ICncMachine.cs b/Cnc/ICncMachine.cs index 7620727..1ce8db6 100755 --- a/Cnc/ICncMachine.cs +++ b/Cnc/ICncMachine.cs @@ -1,9 +1,9 @@ using System; using System.Threading; using System.Threading.Tasks; -using FanucProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Models; -namespace FanucProgramManager.Cnc +namespace NcProgramManager.Cnc { public interface ICncMachine : IDisposable { diff --git a/Cnc/IFanucMachine.cs b/Cnc/IFanucMachine.cs index f6bbe5b..b2fbe95 100644 --- a/Cnc/IFanucMachine.cs +++ b/Cnc/IFanucMachine.cs @@ -1,8 +1,8 @@ using System.Threading; using System.Threading.Tasks; -using FanucProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Models; -namespace FanucProgramManager.Cnc +namespace NcProgramManager.Cnc { /// Fanuc-specific extensions: tool offset and work zero offset transfer. public interface IFanucMachine : ICncMachine diff --git a/Cnc/INcProgramValidator.cs b/Cnc/INcProgramValidator.cs index 70de428..50df1c5 100644 --- a/Cnc/INcProgramValidator.cs +++ b/Cnc/INcProgramValidator.cs @@ -1,6 +1,6 @@ -using FanucProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Models; -namespace FanucProgramManager.Cnc +namespace NcProgramManager.Cnc { /// Validates NC program content before upload to a CNC controller. public interface INcProgramValidator diff --git a/Cnc/Mitsubishi/IMitsubishiFtpClient.cs b/Cnc/Mitsubishi/IMitsubishiFtpClient.cs index 4094af6..ea19c93 100644 --- a/Cnc/Mitsubishi/IMitsubishiFtpClient.cs +++ b/Cnc/Mitsubishi/IMitsubishiFtpClient.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Mitsubishi +namespace NcProgramManager.Cnc.Mitsubishi { internal interface IMitsubishiFtpClient { diff --git a/Cnc/Mitsubishi/MitsubishiConnectionConfig.cs b/Cnc/Mitsubishi/MitsubishiConnectionConfig.cs index 8f018ca..1afd7a4 100644 --- a/Cnc/Mitsubishi/MitsubishiConnectionConfig.cs +++ b/Cnc/Mitsubishi/MitsubishiConnectionConfig.cs @@ -1,6 +1,6 @@ using System; -namespace FanucProgramManager.Cnc.Mitsubishi +namespace NcProgramManager.Cnc.Mitsubishi { public sealed class MitsubishiConnectionConfig { diff --git a/Cnc/Mitsubishi/MitsubishiFtpClient.cs b/Cnc/Mitsubishi/MitsubishiFtpClient.cs index 4df970e..9737db3 100644 --- a/Cnc/Mitsubishi/MitsubishiFtpClient.cs +++ b/Cnc/Mitsubishi/MitsubishiFtpClient.cs @@ -3,7 +3,7 @@ using System.IO; using System.Net; using System.Text; -namespace FanucProgramManager.Cnc.Mitsubishi +namespace NcProgramManager.Cnc.Mitsubishi { /// FTP client for Mitsubishi M-series CNC program transfer. internal sealed class MitsubishiFtpClient : IMitsubishiFtpClient diff --git a/Cnc/Mitsubishi/MitsubishiMachine.cs b/Cnc/Mitsubishi/MitsubishiMachine.cs index 2c997dd..0b0b4da 100644 --- a/Cnc/Mitsubishi/MitsubishiMachine.cs +++ b/Cnc/Mitsubishi/MitsubishiMachine.cs @@ -3,10 +3,10 @@ using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; -using FanucProgramManager.Cnc; -using FanucProgramManager.Cnc.Models; +using NcProgramManager.Cnc; +using NcProgramManager.Cnc.Models; -namespace FanucProgramManager.Cnc.Mitsubishi +namespace NcProgramManager.Cnc.Mitsubishi { public sealed class MitsubishiMachine : ICncMachine { diff --git a/Cnc/Models/CncError.cs b/Cnc/Models/CncError.cs index 1a7270c..7c00ca8 100755 --- a/Cnc/Models/CncError.cs +++ b/Cnc/Models/CncError.cs @@ -1,6 +1,6 @@ using System; -namespace FanucProgramManager.Cnc.Models +namespace NcProgramManager.Cnc.Models { public sealed class CncError { diff --git a/Cnc/Models/CncManufacturer.cs b/Cnc/Models/CncManufacturer.cs index d179a5f..9cbe135 100644 --- a/Cnc/Models/CncManufacturer.cs +++ b/Cnc/Models/CncManufacturer.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Models +namespace NcProgramManager.Cnc.Models { public enum CncManufacturer { Fanuc, Heidenhain, Siemens, Mitsubishi } } diff --git a/Cnc/Models/CncProgram.cs b/Cnc/Models/CncProgram.cs index 0225e8c..23b0e84 100755 --- a/Cnc/Models/CncProgram.cs +++ b/Cnc/Models/CncProgram.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Models +namespace NcProgramManager.Cnc.Models { public sealed class CncProgram { diff --git a/Cnc/Models/CncResult.cs b/Cnc/Models/CncResult.cs index e9ac3df..07e0aaa 100755 --- a/Cnc/Models/CncResult.cs +++ b/Cnc/Models/CncResult.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace FanucProgramManager.Cnc.Models +namespace NcProgramManager.Cnc.Models { /// Result wrapper for all CNC operations. public sealed class CncResult diff --git a/Cnc/Models/ConnectionState.cs b/Cnc/Models/ConnectionState.cs index 460c0e6..f9c2948 100755 --- a/Cnc/Models/ConnectionState.cs +++ b/Cnc/Models/ConnectionState.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Models +namespace NcProgramManager.Cnc.Models { public enum ConnectionState { diff --git a/Cnc/Models/MachineMode.cs b/Cnc/Models/MachineMode.cs index a901665..25e6e86 100755 --- a/Cnc/Models/MachineMode.cs +++ b/Cnc/Models/MachineMode.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Models +namespace NcProgramManager.Cnc.Models { public enum MachineMode { diff --git a/Cnc/Models/MachineSnapshot.cs b/Cnc/Models/MachineSnapshot.cs index a94646f..c9433d2 100755 --- a/Cnc/Models/MachineSnapshot.cs +++ b/Cnc/Models/MachineSnapshot.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -namespace FanucProgramManager.Cnc.Models +namespace NcProgramManager.Cnc.Models { public sealed class MachineSnapshot { diff --git a/Cnc/Models/MotionState.cs b/Cnc/Models/MotionState.cs index 2c583d2..284e580 100755 --- a/Cnc/Models/MotionState.cs +++ b/Cnc/Models/MotionState.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Models +namespace NcProgramManager.Cnc.Models { public enum MotionState { diff --git a/Cnc/Models/RunState.cs b/Cnc/Models/RunState.cs index 961f987..ff78762 100755 --- a/Cnc/Models/RunState.cs +++ b/Cnc/Models/RunState.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Models +namespace NcProgramManager.Cnc.Models { public enum RunState { diff --git a/Cnc/Models/ValidationError.cs b/Cnc/Models/ValidationError.cs index 608b7df..f061776 100644 --- a/Cnc/Models/ValidationError.cs +++ b/Cnc/Models/ValidationError.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Models +namespace NcProgramManager.Cnc.Models { public sealed class ValidationError { diff --git a/Cnc/Models/ValidationResult.cs b/Cnc/Models/ValidationResult.cs index d132474..30d43ba 100644 --- a/Cnc/Models/ValidationResult.cs +++ b/Cnc/Models/ValidationResult.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace FanucProgramManager.Cnc.Models +namespace NcProgramManager.Cnc.Models { public sealed class ValidationResult { diff --git a/Cnc/Models/ValidationSeverity.cs b/Cnc/Models/ValidationSeverity.cs index 66e501a..0a4b587 100644 --- a/Cnc/Models/ValidationSeverity.cs +++ b/Cnc/Models/ValidationSeverity.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Models +namespace NcProgramManager.Cnc.Models { public enum ValidationSeverity { Error, Warning } } diff --git a/Cnc/NcProgramValidator.cs b/Cnc/NcProgramValidator.cs index 7709822..f75e8fe 100644 --- a/Cnc/NcProgramValidator.cs +++ b/Cnc/NcProgramValidator.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; using System.Text.RegularExpressions; -using FanucProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Models; -namespace FanucProgramManager.Cnc +namespace NcProgramManager.Cnc { /// Validates NC program content per-manufacturer before upload. public sealed class NcProgramValidator : INcProgramValidator diff --git a/Cnc/Siemens/ISiemensFtpClient.cs b/Cnc/Siemens/ISiemensFtpClient.cs index 26fe945..ed9e72a 100644 --- a/Cnc/Siemens/ISiemensFtpClient.cs +++ b/Cnc/Siemens/ISiemensFtpClient.cs @@ -1,4 +1,4 @@ -namespace FanucProgramManager.Cnc.Siemens +namespace NcProgramManager.Cnc.Siemens { internal interface ISiemensFtpClient { diff --git a/Cnc/Siemens/SiemensConnectionConfig.cs b/Cnc/Siemens/SiemensConnectionConfig.cs index 762e2d5..20a4ec6 100644 --- a/Cnc/Siemens/SiemensConnectionConfig.cs +++ b/Cnc/Siemens/SiemensConnectionConfig.cs @@ -1,6 +1,6 @@ using System; -namespace FanucProgramManager.Cnc.Siemens +namespace NcProgramManager.Cnc.Siemens { public sealed class SiemensConnectionConfig { diff --git a/Cnc/Siemens/SiemensFtpClient.cs b/Cnc/Siemens/SiemensFtpClient.cs index ab7d1ff..2bd4fb7 100644 --- a/Cnc/Siemens/SiemensFtpClient.cs +++ b/Cnc/Siemens/SiemensFtpClient.cs @@ -3,7 +3,7 @@ using System.IO; using System.Net; using System.Text; -namespace FanucProgramManager.Cnc.Siemens +namespace NcProgramManager.Cnc.Siemens { /// FTP client for Siemens Sinumerik CNC program transfer. internal sealed class SiemensFtpClient : ISiemensFtpClient diff --git a/Cnc/Siemens/SiemensMachine.cs b/Cnc/Siemens/SiemensMachine.cs index 0c201a1..46360b4 100644 --- a/Cnc/Siemens/SiemensMachine.cs +++ b/Cnc/Siemens/SiemensMachine.cs @@ -3,10 +3,10 @@ using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; -using FanucProgramManager.Cnc; -using FanucProgramManager.Cnc.Models; +using NcProgramManager.Cnc; +using NcProgramManager.Cnc.Models; -namespace FanucProgramManager.Cnc.Siemens +namespace NcProgramManager.Cnc.Siemens { public sealed class SiemensMachine : ICncMachine { diff --git a/FANUCMachine.cs b/FANUCMachine.cs deleted file mode 100755 index f00d241..0000000 --- a/FANUCMachine.cs +++ /dev/null @@ -1,1094 +0,0 @@ -using System; -using System.Text; -using System.Threading; -using System.Diagnostics; -using System.Text.RegularExpressions; - -namespace FanucProgramManager -{ - class FANUCMachine - { - private static string get_cnc_path(int path = 1) - { - return "//CNC_MEM/USER/PATH" + path.ToString() + "/"; - } - /// - /// Parametri connessione - /// - - private string Name; - private string IPAddress; //IP ethernet - private string Port; //Port ethernet - private int Node; //nodo HSSB per connessione si tipo allclibhndl2 - private int ReadTime; - private int ConnectionType; - private Boolean compatibiltyMode; - - - - public bool CONNECTED; - private string ConnectionStatus { get; set; } - - public bool ConnectionRequest; - short[] ret_array = new short[11] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - // valore di ritorno della funzioni richiamate dalle librerie FOCAS, in generale se ret == 0 - // la funzione e' terminata senza errori - // in ordine nell'array: - // 0 -> connect - // 1 -> disconnect - // 2 -> cicle time - // 3 -> pieces counter - // 4 -> alarm messages - // 5 -> operator messages - // 6 -> machine state - // 7 -> main program - // 8 -> comment program - // 9 -> download - // 10 -> upload - - ushort hndl; // handle di comunicazione: questo valore viene scritto una volta eseguita la connessione - // questo valore si passa come riferimento ad ogni funzione focas e rappresenta i - // parametri di connessione - - private string FOCAS_ERRORS = ""; - private string machine_status = ""; - - /// - /// Strutture per la lettura dati da controlli FANUC. - /// - - // Strutture per tempo ciclo e contapezzi - Focas1.IODBPSD cicloMSp1 = new Focas1.IODBPSD(); - Focas1.IODBPSD ciclo2MINp1 = new Focas1.IODBPSD(); - Focas1.IODBPSD ContaPezzip1 = new Focas1.IODBPSD(); // struttura dati per memorizzazione contapezzi path 1 - private string StrContaPezzip1; - private string StrTempoCiclop1; - // Strutture per nome programma - Focas1.PRGDIR3 info_prg = new Focas1.PRGDIR3(); - Focas1.ODBPRO prognum = new Focas1.ODBPRO(); - private string NomeProgrammaISO; - private string NomeSubProgrammaISO; - private string CommentoProgrammaISO; - // Strutture per allarmi - private string[] AlarmMessage = new string[17]; - // Strutture per messaggi operatore - private string[] OperatorMessage = new string[17]; - // Strutture per stati - Focas1.ODBST odbst = new Focas1.ODBST(); - - - //Strutture per letture range di dati pmc - Focas1.IODBPMC0 iodbpmcByte = new Focas1.IODBPMC0(); // 8 Bit - Focas1.IODBPMC1 iodbpmcShort = new Focas1.IODBPMC1(); // 16 Bit - Focas1.IODBPMC2 iodbpmcInt = new Focas1.IODBPMC2(); //32bit - //relative al contapezzi - - short CPMacroPiecesCounter = -1; //Variabile macro dove viene aggiornato il contapezzi #500 a #999 memria ritentiva - short CPMacroLength = 1; //quante variabili macro leggere - short CPlength = 4; //numero di byte scelto in CPdata_type (X) - //short CPdata_type = 2; // 0 Byte (1), 1 Short(2), 2 int (4) - //ushort CPStart; - - - - - public string GetFocasErrorsBuffer() - { - string errorBuffer = FOCAS_ERRORS; - FOCAS_ERRORS = ""; - return errorBuffer; - } - - - public string GetStatus() - { - return machine_status; - } - - public string GetNomeProgramma() - { - if (NomeProgrammaISO == null) - { - return "null"; - } - else - return NomeProgrammaISO; - } - - public string GetSubProgramma() - { - if (NomeSubProgrammaISO == null) - { - return "null"; - } - else - return NomeSubProgrammaISO; - } - - public string GetCommentoProgramma() - { - if (CommentoProgrammaISO == null) - { - return "Commento Assente"; - } - else - return CommentoProgrammaISO; - } - - public string[] GetAlarmMessage() - { - return AlarmMessage; - } - - public string[] GetOperatorMessage() - { - return OperatorMessage; - } - - public string GetStrContaPezzip1() - { - if (StrContaPezzip1 == null) - { - return "0"; - } - else - return StrContaPezzip1; - } - - public string GetStrTempoCiclop1() - { - if (StrTempoCiclop1 == null) - { - return "null"; - } - else - return StrTempoCiclop1; - } - - public string GetName() - { - if (Name == null) - { - return "null"; - } - else - return Name; - } - - public ushort GetHandle() - { - return hndl; - } - - private string getFocasFunctionName(short index) - { - string functionName = ""; - switch (index) - { - case 0: - functionName = "connect"; - break; - case 1: - functionName = "disconnect"; - break; - case 2: - functionName = "cicle time"; - break; - case 3: - functionName = "pieces counter"; - break; - case 4: - functionName = "alarm messages"; - break; - case 5: - functionName = "operator messages"; - break; - case 6: - functionName = "machine state"; - break; - case 7: - functionName = "main program and comment"; - break; - case 8: - functionName = "download"; - break; - case 9: - functionName = "upload"; - break; - } - return functionName; - } - - public FANUCMachine(string name, string ipaddress, string port, Boolean compatibiltyMode, int readtime, int connectiontype, int MacroPiecesCounter) - { - this.Name = name; - this.IPAddress = ipaddress; - this.Port = port; - this.compatibiltyMode = compatibiltyMode; - this.Node = -1; - this.ConnectionStatus = "Not Connected"; - this.ConnectionRequest = false; - this.NomeProgrammaISO = ""; - this.NomeSubProgrammaISO = ""; - this.ReadTime = readtime; - this.ConnectionType = connectiontype; - this.ConnectionRequest = true; - this.CONNECTED = false; - this.CPMacroPiecesCounter = (short)MacroPiecesCounter; - } - - public FANUCMachine(string name, int node, Boolean compatibiltyMode, int readtime, int connectiontype, int MacroPiecesCounter) //Per controlli HSSB - { - this.Name = name; - this.IPAddress = null; - this.Port = null; - this.compatibiltyMode = compatibiltyMode; - this.Node = node; //il paramatro node serve solo nel caso connectiontype = 2 altrimenti puo essere messo a 0 - this.ConnectionStatus = "Not Connected"; - this.ConnectionRequest = false; - this.NomeProgrammaISO = ""; - this.NomeSubProgrammaISO = ""; - this.ReadTime = readtime; - this.ConnectionType = connectiontype; - this.ConnectionRequest = true; - this.CONNECTED = false; - this.CPMacroPiecesCounter = (short)MacroPiecesCounter; - } - - private short readCicleTime() - { - // read cycle time - short time_ret = 0; - //millisecondi - time_ret = Focas1.cnc_rdparam(hndl, 6757, 0, 8, cicloMSp1); - //minuti - time_ret = (short)(time_ret + Focas1.cnc_rdparam(hndl, 6758, 0, 8, ciclo2MINp1)); - StrTempoCiclop1 = ciclo2MINp1.u.ldata.ToString() + " minuti : " + (cicloMSp1.u.ldata / 1000).ToString() + " secondi"; - return time_ret; - } - private short readAlarmMessages() - { - // Dati di stato macchina - // Allarmi - short num_alm = 17; - short almmsg_ret = -1; - - if (compatibiltyMode) - { - Focas1.ODBALMMSG_data_custom[] alm = new Focas1.ODBALMMSG_data_custom[17]; - almmsg_ret = Focas1.cnc_rdalmmsg_custom(hndl, 0, ref num_alm, alm); - for (int i = 0; i < num_alm; i++) - { - AlarmMessage[i] = ""; - if (alm[i].msg_len > 0) - AlarmMessage[i] = alm[i].alm_msg; - } - } - else - { - //Plese use cnc_rdalmmsg2 fucntion for Series 30i/31i/32i, 0i-D/F and PMi-A. - Focas1.ODBALMMSG2_data_custom[] alm = new Focas1.ODBALMMSG2_data_custom[17]; - almmsg_ret = Focas1.cnc_rdalmmsg2_custom(hndl, -1, ref num_alm, alm); - for (int i = 0; i < num_alm; i++) - { - AlarmMessage[i] = ""; - if (alm[i].msg_len > 0) - AlarmMessage[i] = alm[i].alm_msg; - } - } - return almmsg_ret; - } - - private short readOperatorMessages() - { - // Messaggi operatore - short num_alm = 1; - short opmsg_ret = 0; - Focas1.OPMSG3_data_custom[] opmsg = new Focas1.OPMSG3_data_custom[17]; - opmsg_ret = Focas1.cnc_rdopmsg3_custom(hndl, 4, ref num_alm, opmsg); - for (int i = 0; i < num_alm; i++) - { - OperatorMessage[i] = ""; - if (opmsg[i].char_num > 0) - OperatorMessage[i] = opmsg[i].data; - } - return opmsg_ret; - } - - private short readMachineState() - { - // Stati macchina - short state_ret = Focas1.cnc_statinfo(hndl, odbst); - if (state_ret == Focas1.EW_OK) - { - machine_status = ""; - - switch (odbst.aut) - { - case 0: - machine_status += "MDI -"; - break; - case 1: - machine_status += "AUTO -"; - break; - case 3: - machine_status += "EDIT -"; - break; - case 4: - machine_status += "HNDL -"; - break; - case 5: - machine_status += "JOG -"; - break; - default: - machine_status += "**** -"; - break; - } - - if (odbst.aut != 3) - { - ret_array[7] = readMainProgram(); - ret_array[8] = readMainProgramComment(); - } - - machine_status += " "; - - switch (odbst.run) - { - case 1: - machine_status += "STOP - "; - break; - case 3: - machine_status += "ESEC ISO - "; - break; - - default: - machine_status += " **** - "; - break; - } - - machine_status += " "; - - switch (odbst.motion) - { - case 1: - machine_status += "IN MOVIMENTO - "; - break; - case 2: - machine_status += "PAUSA - "; - break; - - default: - machine_status += "*** - "; - break; - } - - machine_status += " "; - - switch (odbst.mstb) - { - case 1: - machine_status += "FIN - "; - break; - default: - machine_status += "*** - "; - break; - } - - machine_status += " "; - - switch (odbst.emergency) - { - case 1: - machine_status += "EMERGENZA -"; - break; - case 2: - machine_status += "RST -"; - break; - default: - machine_status += "*** -"; - break; - } - - machine_status += " "; - - switch (odbst.alarm) - { - case 1: - machine_status += "ALM"; - break; - default: - machine_status += "***"; - break; - } - } - return state_ret; - } - - public short readMainProgram() - { - short program_ret = 0; - Focas1.ODBPRO prog_num = new Focas1.ODBPRO(); - // nome programma - program_ret = Focas1.cnc_rdprgnum(hndl, prog_num); - NomeSubProgrammaISO = "O" + prog_num.data.ToString(); - NomeProgrammaISO = "O" + prog_num.mdata.ToString(); - if (!compatibiltyMode) - { - byte[] nome_main = new byte[242]; - // nome programma - program_ret = Focas1.cnc_pdf_rdmain(hndl, nome_main); - string str_main = ASCIIEncoding.ASCII.GetString(nome_main).TrimEnd('\0'); - string[] words = str_main.Split('/'); - int indiceUltimoElemento = words.Length - 1; - if (NomeProgrammaISO != words[indiceUltimoElemento]) - NomeProgrammaISO = words[indiceUltimoElemento]; - } - return program_ret; - } - - public short readMainProgramComment() - { - short program_ret = 0; - string[] words; - byte[] alpha_comment = new byte[100]; - if (compatibiltyMode) - { - ushort caratteriDaLeggere = 100; - program_ret = Focas1.cnc_rdexecprog(hndl, ref caratteriDaLeggere, out short blknumber, alpha_comment); - } - else - { - uint lunghezza = 100; //va lasciato qui perche' viene riscritto ogni volta da "cnc_rdpdf_line" - uint numero_righe = 1; //va lasciato qui perche' viene riscritto ogni volta da "cnc_rdpdf_line" - byte[] nome_main = new byte[242]; - program_ret = Focas1.cnc_pdf_rdmain(hndl, nome_main); - string str_main = ASCIIEncoding.ASCII.GetString(nome_main).TrimEnd('\0'); - program_ret = Focas1.cnc_rdpdf_line(hndl, str_main, 0, alpha_comment, ref numero_righe, ref lunghezza); - } - string str_alpha_comment = ASCIIEncoding.ASCII.GetString(alpha_comment).TrimEnd('\0'); - // caso commento presente - if (str_alpha_comment.Contains("(")) - { - words = str_alpha_comment.Split('(', ')'); - int indiceUltimoElemento = words.Length - 2; - //CommentoProgrammaISO = '(' + words[indiceUltimoElemento] + ')'; - int open_index = str_alpha_comment.IndexOf('('); - int close_index = str_alpha_comment.IndexOf(')'); - if (open_index > 0) - { - CommentoProgrammaISO = str_alpha_comment.Substring(open_index + 1, close_index - open_index - 1); - } - } - // caso di programma senza commento - else - { - // CommentoProgrammaISO = '(' + NomeProgrammaISO + ')'; - CommentoProgrammaISO = "Commento Assente"; - } - return program_ret; - } - - public void Read() - { - // leggo i dati - - // Dati di produzione - // path 1 - Focas1.cnc_setpath(hndl, 1); - short a, b; - Focas1.cnc_getpath(hndl, out a, out b); - - ret_array[2] = readCicleTime(); - ret_array[3] = readContaPezzi(); - ret_array[4] = readAlarmMessages(); - ret_array[5] = readOperatorMessages(); - ret_array[6] = readMachineState(); - - CheckErrors(ret_array); - - } - - public void Connect() - { - //Thread.Sleep(500); - if (ConnectionRequest) - { - if (!CONNECTED && ConnectionType == 3) - { - // apro il canale di comunicazione verso la macchina - short timeout = 4; //sec - ret_array[0] = Focas1.cnc_allclibhndl3(IPAddress, Convert.ToUInt16(Port), timeout, out hndl); - } - else if (!CONNECTED && ConnectionType == 0) - { - ret_array[0] = Focas1.cnc_allclibhndl(out hndl); - } - else if (!CONNECTED && ConnectionType == 2) - { - ret_array[0] = Focas1.cnc_allclibhndl2(Node, out hndl); - } - if (ret_array[0] == 0) - { - // abilito il timer: comincio a fare il refresh dei dati su Cn e Robot - CONNECTED = true; - machine_status = "CONNECTED"; - ConnectionRequest = false; - } - else - { - ConnectionRequest = true; - CONNECTED = false; - machine_status = "DISCONNECTED"; - CheckErrors(ret_array); - } - } - } - - public void Disconnect() - { - ret_array[1] = Focas1.cnc_freelibhndl(hndl); - if (ret_array[1] == 0) - { - ConnectionRequest = true; - CONNECTED = false; - machine_status = "DISCONNECTED"; - } - resetMachineRet(); - } - - private void resetMachineRet() - { - for (short index = 0; index < ret_array.Length; index++) - { - ret_array[index] = 0; - } - } - - private void CheckErrors(short[] error) - { - FOCAS_ERRORS = ""; - bool disconnect = false; - for (short index = 0; index < error.Length; index++) - { - string focas_function = getFocasFunctionName(index); - switch (error[index]) - { - case (short)Focas1.focas_ret.EW_PROTOCOL: /* protocol error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "protocol error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_SOCKET: /* Windows socket error */ - disconnect = CONNECTED; - FOCAS_ERRORS += "Error " + error[index] + ": " + "windows socket error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_NODLL: /* DLL not exist error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "DLL not exist error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_BUS: /* bus error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "bus error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_SYSTEM2: /* system error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "system error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_HSSB: /* hssb communication error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + " hssb communication error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_HANDLE: /* Windows library handle error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + " Windows library handle error" + " in " + focas_function + "\n"; - disconnect = CONNECTED; - break; - case (short)Focas1.focas_ret.EW_VERSION: /* CNC/PMC version missmatch */ - FOCAS_ERRORS += "Error " + error[index] + ": " + " CNC/PMC version missmatch" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_UNEXP: /* abnormal error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "abnormal error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_SYSTEM: /* system error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + " system error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_PARITY: /* shared RAM parity error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "shared RAM parity error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_MMCSYS: /* emm386 or mmcsys install error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "emm386 or mmcsys install error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_RESET: /* reset or stop occured error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "reset or stop occured error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_BUSY: /* busy error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "busy error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_OK: /* no problem */ - break; - case (short)Focas1.focas_ret.EW_FUNC: /* command prepare error --or-- pmc not exist */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "command prepare error --or-- pmc not exist" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_LENGTH: /* data block length error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "data block length error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_NUMBER: /* data number error --or-- address range error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "data number error --or-- address range error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_ATTRIB: /* data attribute error --or-- data type error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "data attribute error --or-- data type error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_DATA: /* data error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "data error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_NOOPT: /* no option error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "no option error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_PROT: /* write protect error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "write protect error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_OVRFLOW: /* memory overflow error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "memory overflow error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_PARAM: /* cnc parameter not correct error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "cnc parameter not correct error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_BUFFER: /* buffer error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + " buffer error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_PATH: /* path error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "path error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_MODE: /* cnc mode error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "cnc mode error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_REJECT: /* execution rejected error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "execution rejected error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_DTSRVR: /* data server error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + " data server error" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_ALARM: /* alarm has been occurred */ - FOCAS_ERRORS += "Error " + error[index] + ": " + "alarm has been occurred" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_STOP: /* CNC is not running */ - FOCAS_ERRORS += "Error " + error[index] + ": " + " CNC is not running" + " in " + focas_function + "\n"; - break; - case (short)Focas1.focas_ret.EW_PASSWD: /* protection data error */ - FOCAS_ERRORS += "Error " + error[index] + ": " + " protection data error" + " in " + focas_function + "\n"; - break; - default: - break; - } - if (FOCAS_ERRORS == "") - { - FOCAS_ERRORS = "OK"; - } - if (disconnect) - { - Disconnect(); - } - } - } - - - private short readContaPezzi() - { - short pieces_ret = 0; - try - { - if (CPMacroPiecesCounter == -1) - { - // Conta pezzi - pieces_ret = Focas1.cnc_rdparam(hndl, 6711, 0, 8, ContaPezzip1); - StrContaPezzip1 = ContaPezzip1.u.ldata.ToString(); - } - else - { - CPlength = (short)(8 + 8 * 1); - Focas1.ODBM macro = new Focas1.ODBM(); - pieces_ret = Focas1.cnc_rdmacro(hndl, CPMacroPiecesCounter, 10, macro); - if (pieces_ret == Focas1.EW_OK) - { - StrContaPezzip1 = string.Format("{0:d9}", Math.Abs(macro.mcr_val)); - if (0 < macro.dec_val) StrContaPezzip1 = StrContaPezzip1.Insert(9 - macro.dec_val, "."); - if (macro.mcr_val < 0) StrContaPezzip1 = "-" + StrContaPezzip1; - int index = StrContaPezzip1.IndexOf("."); - if (index >= 0) - StrContaPezzip1 = StrContaPezzip1.Substring(0, index); - Console.WriteLine("{0}", StrContaPezzip1); - } - else - { - Console.WriteLine("ERR-READ-MACRO**********"); - } - - } - } - catch - { - StrContaPezzip1 = "Errore Contapezzi"; - } - return pieces_ret; - } - - private void DownloadStd(short cnc_path = 1) - { - var PROG_MEMORY_PATH = get_cnc_path(cnc_path); - int num; - int len; - string program = "%\n\n%"; - - if (CONNECTED) - { - ret_array[9] = Focas1.cnc_pdf_del(hndl, PROG_MEMORY_PATH + "OSTD"); - - try - { - - - ret_array[9] = Focas_StartNCFileDownload(PROG_MEMORY_PATH, FanucProgram.FILE_TYPE.CNC_PROGRAM); - if (ret_array[9] != Focas1.EW_OK) - { - Focas_EndNCFileDownload(); - ret_array[9] = ret_array[9]; - CheckErrors(ret_array); - return; - } - - len = program.Length; - int startPos = 0; - - while (len > 0) - { - if (len >= 1024) - { - num = 1024; - } - else - { - num = len; - } - char[] prg_temp = new char[num]; - program.CopyTo(startPos, prg_temp, 0, num); - - ret_array[9] = Focas_NCFileDownload(ref num, prg_temp); - if (ret_array[9] == (short)Focas1.focas_ret.EW_BUFFER) - { - Thread.Sleep(100); - continue; - } - if (ret_array[9] == Focas1.EW_OK) - { - startPos += num; - len -= num; - } - if (ret_array[9] != Focas1.EW_OK) - { - Focas1.ODBERR odd = new Focas1.ODBERR(); - Focas1.cnc_getdtailerr(hndl, odd); - Debug.WriteLine(odd.err_no + " " + odd.err_dtno); - break; - } - } - - if (ret_array[9] != Focas1.EW_OK) - { - Focas_EndNCFileDownload(); - CheckErrors(ret_array); - return; - } - - Focas_EndNCFileDownload(); - Focas1.ODBERR odd2 = new Focas1.ODBERR(); - Focas1.cnc_getdtailerr(hndl, odd2); - Debug.WriteLine(odd2.err_no + " " + odd2.err_dtno); - } - catch - { - CheckErrors(ret_array); - return; - } - - ret_array[9] = Focas1.cnc_pdf_slctmain(hndl, PROG_MEMORY_PATH + "OSTD"); - CheckErrors(ret_array); - } - } - - - private bool canDownloadNC() - { - ret_array[9] = Focas1.cnc_statinfo(hndl, odbst); - if (ret_array[9] != Focas1.EW_OK) - { - CheckErrors(ret_array); - return false; - } - else if (odbst.aut != 0 //MDI STATE - && odbst.aut != 3) //EDIT STATE - { - ret_array[9] = (short)Focas1.focas_ret.EW_MODE; - CheckErrors(ret_array); - return false; - } - return true; - } - - /** - * SEND PROGRAM TO CNC MEMORY - */ - public short Download(string file, FanucProgram.FILE_TYPE type, short cnc_path = 1) - { - if (!canDownloadNC()) return ret_array[9]; - Focas1.cnc_setpath(hndl, cnc_path); - var PROG_MEMORY_PATH = get_cnc_path(cnc_path); - int num; - int len; - string prog_name = ""; - if (CONNECTED) - { - if (type == FanucProgram.FILE_TYPE.CNC_PROGRAM) - { - try - { - prog_name = FanucProgram.GetProgramTitle(file); - } - catch (Exception e) - { - FOCAS_ERRORS = "tentativo Download fallito nome file in formato errato\n" + e.StackTrace; - return (short)Focas1.focas_ret.EW_DATA; - } - - if (!compatibiltyMode) - { - ret_array[9] = Focas1.cnc_pdf_slctmain(hndl, PROG_MEMORY_PATH + "OSTD"); - if (ret_array[9] != Focas1.EW_OK) - DownloadStd(); - } - ret_array[9] = Focas_DeleteNCProgram(prog_name, PROG_MEMORY_PATH); - if (ret_array[9] != Focas1.EW_OK && ret_array[9] != (short)Focas1.focas_ret.EW_BUSY && ret_array[9] != (short)Focas1.focas_ret.EW_DATA) - { - CheckErrors(ret_array); - } - } - - try - { - ret_array[9] = Focas_StartNCFileDownload(PROG_MEMORY_PATH, type); - if (ret_array[9] != Focas1.EW_OK) - { - Focas_EndNCFileDownload(); - CheckErrors(ret_array); - return ret_array[9]; - } - - len = file.Length; - int startPos = 0; - - while (len > 0) - { - if (len >= 1024) - { - num = 1024; - } - else - { - num = len; - } - char[] prg_temp = new char[num]; - file.CopyTo(startPos, prg_temp, 0, num); - string a = file.Substring(startPos); - - ret_array[9] = Focas_NCFileDownload(ref num, prg_temp); - if (ret_array[9] == (short)Focas1.focas_ret.EW_BUFFER) - { - Thread.Sleep(100); - continue; - } - if (ret_array[9] == Focas1.EW_OK) - { - startPos += num; - len -= num; - } - if (ret_array[9] != Focas1.EW_OK) - { - Focas1.ODBERR odd = new Focas1.ODBERR(); - Focas1.cnc_getdtailerr(hndl, odd); - Debug.WriteLine(odd.err_no + " " + odd.err_dtno); - break; - } - } - - if (ret_array[9] != Focas1.EW_OK) - { - CheckErrors(ret_array); - Focas_EndNCFileDownload(); - return ret_array[9]; - } - - Focas_EndNCFileDownload(); - } - catch - { - CheckErrors(ret_array); - Focas_EndNCFileDownload(); - return ret_array[9]; - } - - if (!compatibiltyMode && type == FanucProgram.FILE_TYPE.CNC_PROGRAM) - ret_array[9] = Focas1.cnc_pdf_slctmain(hndl, PROG_MEMORY_PATH + prog_name); - - if (ret_array[9] != Focas1.EW_OK) - { - CheckErrors(ret_array); - return 18; - } - return Focas1.EW_OK; - } - return (short)Focas1.focas_ret.EW_BUSY; - } - - private short Focas_DeleteNCProgram(string prog_name, string prog_path) - { - Regex rx = new Regex(@"(\b[O]+\d{4}\b)|(\b\d{4}\b)"); //cerca per O#### o #### dove # è un carattere numerico - // Find matches. - MatchCollection matches = rx.Matches(prog_name); - if (matches.Count > 0) - { - prog_name = prog_name.Trim(new Char[] { 'O' }); - return Focas1.cnc_delete(hndl, (short)Convert.ToUInt32(prog_name)); - } - else - { - return Focas1.cnc_pdf_del(hndl, prog_path + prog_name); - } - } - - private short Focas_StartNCFileDownload(string file_path, FanucProgram.FILE_TYPE type) - { - //il path del file non può essere selezionato se compatibilityMode = true - if (compatibiltyMode) return Focas1.cnc_dwnstart3(hndl, (short)type); else return Focas1.cnc_dwnstart4(hndl, (short)type, file_path); - } - - private short Focas_NCFileDownload(ref int program_lenght, char[] program) - { - if (compatibiltyMode) return Focas1.cnc_download3(hndl, ref program_lenght, program); else return Focas1.cnc_download4(hndl, ref program_lenght, program); - } - - private short Focas_EndNCFileDownload() - { - if (compatibiltyMode) return Focas1.cnc_dwnend3(hndl); else return Focas1.cnc_dwnend4(hndl); - } - - private short Focas_StartNCFileUpload(string file_path, FanucProgram.FILE_TYPE type) - { - //il file_path cambia a seconda di compatibilityMode - if (compatibiltyMode) - { - try - { - //file_path deve essere il codice del programma e.g. O1234 --> file_path = 1234 - int file_code = Convert.ToInt32(file_path); - return Focas1.cnc_upstart3(hndl, (short)type, file_code, file_code); - } - catch - { - return (short)Focas1.focas_ret.EW_DATA; - } - } - else - //file_path deve essere il path del programma compreso il nome file e.g. "//CNC_MEM/USER/PATH1/SAMPLE" dove SAMPLE è il nome del programma - return Focas1.cnc_upstart4(hndl, (short)type, file_path); - } - - private short Focas_NCFileUpload(int program_lenght, char[] program) - { - //il path del file non può essere selezionato se compatibilityMode = true - if (compatibiltyMode) return Focas1.cnc_upload4(hndl, ref program_lenght, program); else return Focas1.cnc_upload4(hndl, ref program_lenght, program); - } - - private short Focas_EndNCFileUpload() - { - //il path del file non può essere selezionato se compatibilityMode = true - if (compatibiltyMode) return Focas1.cnc_upend3(hndl); else return Focas1.cnc_upend4(hndl); - } - - private string Focas_GetMainForNCDownloadUpload() - { - if (compatibiltyMode) - { - Focas1.ODBPRO buf = new Focas1.ODBPRO(); - ret_array[10] = Focas1.cnc_rdprgnum(hndl, buf); - CheckErrors(ret_array); - //buf.data->programma in esecuzione - //buf.mdata-> main program - return buf.mdata.ToString(); - } - else - { - byte[] nome_main = new byte[242]; - // nome programma - ret_array[10] = Focas1.cnc_pdf_rdmain(hndl, nome_main); - string path = ASCIIEncoding.ASCII.GetString(nome_main).TrimEnd('\0'); - CheckErrors(ret_array); - return path; - } - } - - /** - * GET MAIN PROGRAM FROM CNC MEMORY - */ - public string Upload(FanucProgram.FILE_TYPE type, short cnc_path = 1) - { - Focas1.cnc_setpath(hndl, cnc_path); - //file_path = PROG_MEMORY_PATH - //file_name = "SAMPLE"; - int BUFFER_SIZE = 10000;//dimensione del buffer di caratteri. Solitamente scarica meno di 1000 caratteri al ciclo - char[] buffer = new char[BUFFER_SIZE + 1]; - string buf; - int len; - string output = ""; - char[] path = new char[244]; - - if (CONNECTED == false) - return ""; - else - { - ret_array[10] = Focas_StartNCFileUpload(Focas_GetMainForNCDownloadUpload(), type); - - if (ret_array[10] != Focas1.EW_OK) - { - Focas_EndNCFileUpload(); - CheckErrors(ret_array); - return ""; - } - - do - { - len = BUFFER_SIZE; - ret_array[10] = Focas_NCFileUpload(len, buffer); - - if (ret_array[10] == (short)Focas1.focas_ret.EW_BUFFER) - { - Thread.Sleep(100); - continue; - } - - if (ret_array[10] == Focas1.EW_OK) - { - buffer[len] = '\0'; ; - buf = new string(buffer).TrimEnd('\0'); - output = output + buf; - } - - if (buffer[len - 1] == '%') - { - break; - } - } - while ((ret_array[10] == Focas1.EW_OK) || (ret_array[10] == (short)Focas1.focas_ret.EW_BUFFER)); - - - ret_array[10] = Focas_EndNCFileUpload(); - - return output; - } - } - - - } -} diff --git a/FanucProgram.cs b/FanucProgram.cs index 1e14dd7..1edd2f9 100755 --- a/FanucProgram.cs +++ b/FanucProgram.cs @@ -1,7 +1,7 @@ using System; using System.Text.RegularExpressions; -namespace FanucProgramManager +namespace NcProgramManager { internal class FanucProgram { diff --git a/InputArgs.cs b/InputArgs.cs index 878dfb9..8edcc06 100755 --- a/InputArgs.cs +++ b/InputArgs.cs @@ -1,6 +1,6 @@ -using FanucProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Models; -namespace FanucProgramManager +namespace NcProgramManager { internal class InputArgs { diff --git a/FanucProgramManager.Tests/Integration/HeidenhainMachineIntegrationTests.cs b/NcProgramManager.Tests/Integration/HeidenhainMachineIntegrationTests.cs similarity index 93% rename from FanucProgramManager.Tests/Integration/HeidenhainMachineIntegrationTests.cs rename to NcProgramManager.Tests/Integration/HeidenhainMachineIntegrationTests.cs index 173217f..f5ff552 100644 --- a/FanucProgramManager.Tests/Integration/HeidenhainMachineIntegrationTests.cs +++ b/NcProgramManager.Tests/Integration/HeidenhainMachineIntegrationTests.cs @@ -1,10 +1,10 @@ using System; using NUnit.Framework; -using FanucProgramManager.Cnc.Models; -using FanucProgramManager.Cnc.Heidenhain; -using FanucProgramManager.Tests.Integration.Stubs; +using NcProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Heidenhain; +using NcProgramManager.Tests.Integration.Stubs; -namespace FanucProgramManager.Tests.Integration +namespace NcProgramManager.Tests.Integration { [TestFixture] [Category("Integration")] diff --git a/FanucProgramManager.Tests/Integration/MitsubishiMachineIntegrationTests.cs b/NcProgramManager.Tests/Integration/MitsubishiMachineIntegrationTests.cs similarity index 94% rename from FanucProgramManager.Tests/Integration/MitsubishiMachineIntegrationTests.cs rename to NcProgramManager.Tests/Integration/MitsubishiMachineIntegrationTests.cs index b937b5f..6310c8a 100644 --- a/FanucProgramManager.Tests/Integration/MitsubishiMachineIntegrationTests.cs +++ b/NcProgramManager.Tests/Integration/MitsubishiMachineIntegrationTests.cs @@ -1,10 +1,10 @@ using System; using NUnit.Framework; -using FanucProgramManager.Cnc.Models; -using FanucProgramManager.Cnc.Mitsubishi; -using FanucProgramManager.Tests.Integration.Stubs; +using NcProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Mitsubishi; +using NcProgramManager.Tests.Integration.Stubs; -namespace FanucProgramManager.Tests.Integration +namespace NcProgramManager.Tests.Integration { [TestFixture] [Category("Integration")] diff --git a/FanucProgramManager.Tests/Integration/SiemensMachineIntegrationTests.cs b/NcProgramManager.Tests/Integration/SiemensMachineIntegrationTests.cs similarity index 95% rename from FanucProgramManager.Tests/Integration/SiemensMachineIntegrationTests.cs rename to NcProgramManager.Tests/Integration/SiemensMachineIntegrationTests.cs index 13f9494..9735453 100644 --- a/FanucProgramManager.Tests/Integration/SiemensMachineIntegrationTests.cs +++ b/NcProgramManager.Tests/Integration/SiemensMachineIntegrationTests.cs @@ -1,10 +1,10 @@ using System; using NUnit.Framework; -using FanucProgramManager.Cnc.Models; -using FanucProgramManager.Cnc.Siemens; -using FanucProgramManager.Tests.Integration.Stubs; +using NcProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Siemens; +using NcProgramManager.Tests.Integration.Stubs; -namespace FanucProgramManager.Tests.Integration +namespace NcProgramManager.Tests.Integration { [TestFixture] [Category("Integration")] diff --git a/FanucProgramManager.Tests/Integration/Stubs/FtpServerStub.cs b/NcProgramManager.Tests/Integration/Stubs/FtpServerStub.cs similarity index 99% rename from FanucProgramManager.Tests/Integration/Stubs/FtpServerStub.cs rename to NcProgramManager.Tests/Integration/Stubs/FtpServerStub.cs index 08f8397..3c7e430 100644 --- a/FanucProgramManager.Tests/Integration/Stubs/FtpServerStub.cs +++ b/NcProgramManager.Tests/Integration/Stubs/FtpServerStub.cs @@ -6,7 +6,7 @@ using System.Net.Sockets; using System.Text; using System.Threading; -namespace FanucProgramManager.Tests.Integration.Stubs +namespace NcProgramManager.Tests.Integration.Stubs { /// /// Minimal in-process FTP server using passive mode. diff --git a/FanucProgramManager.Tests/Integration/Stubs/Lsv2ServerStub.cs b/NcProgramManager.Tests/Integration/Stubs/Lsv2ServerStub.cs similarity index 99% rename from FanucProgramManager.Tests/Integration/Stubs/Lsv2ServerStub.cs rename to NcProgramManager.Tests/Integration/Stubs/Lsv2ServerStub.cs index 3e25868..3503f79 100644 --- a/FanucProgramManager.Tests/Integration/Stubs/Lsv2ServerStub.cs +++ b/NcProgramManager.Tests/Integration/Stubs/Lsv2ServerStub.cs @@ -6,7 +6,7 @@ using System.Net.Sockets; using System.Text; using System.Threading; -namespace FanucProgramManager.Tests.Integration.Stubs +namespace NcProgramManager.Tests.Integration.Stubs { /// /// Minimal in-process LSV2 server. diff --git a/FanucProgramManager.Tests/FanucProgramManager.Tests.csproj b/NcProgramManager.Tests/NcProgramManager.Tests.csproj similarity index 93% rename from FanucProgramManager.Tests/FanucProgramManager.Tests.csproj rename to NcProgramManager.Tests/NcProgramManager.Tests.csproj index c798d9c..2e998bd 100644 --- a/FanucProgramManager.Tests/FanucProgramManager.Tests.csproj +++ b/NcProgramManager.Tests/NcProgramManager.Tests.csproj @@ -7,8 +7,8 @@ AnyCPU {A1B2C3D4-E5F6-7890-ABCD-EF1234567890} Library - FanucProgramManager.Tests - FanucProgramManager.Tests + NcProgramManager.Tests + NcProgramManager.Tests v4.7.2 512 true @@ -46,9 +46,9 @@ - + {1032188B-3321-42B2-87ED-343BF718CAF5} - FanucProgramManager + NcProgramManager diff --git a/FanucProgramManager.Tests/Unit/CncMachineFactoryTests.cs b/NcProgramManager.Tests/Unit/CncMachineFactoryTests.cs similarity index 92% rename from FanucProgramManager.Tests/Unit/CncMachineFactoryTests.cs rename to NcProgramManager.Tests/Unit/CncMachineFactoryTests.cs index 4b342bb..356ccea 100644 --- a/FanucProgramManager.Tests/Unit/CncMachineFactoryTests.cs +++ b/NcProgramManager.Tests/Unit/CncMachineFactoryTests.cs @@ -1,12 +1,12 @@ using NUnit.Framework; -using FanucProgramManager.Cnc; -using FanucProgramManager.Cnc.Fanuc; -using FanucProgramManager.Cnc.Heidenhain; -using FanucProgramManager.Cnc.Mitsubishi; -using FanucProgramManager.Cnc.Models; -using FanucProgramManager.Cnc.Siemens; +using NcProgramManager.Cnc; +using NcProgramManager.Cnc.Fanuc; +using NcProgramManager.Cnc.Heidenhain; +using NcProgramManager.Cnc.Mitsubishi; +using NcProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Siemens; -namespace FanucProgramManager.Tests.Unit +namespace NcProgramManager.Tests.Unit { [TestFixture] public class CncMachineFactoryTests diff --git a/FanucProgramManager.Tests/Unit/FanucMachineTests.cs b/NcProgramManager.Tests/Unit/FanucMachineTests.cs similarity index 98% rename from FanucProgramManager.Tests/Unit/FanucMachineTests.cs rename to NcProgramManager.Tests/Unit/FanucMachineTests.cs index 51af1bf..9d86194 100644 --- a/FanucProgramManager.Tests/Unit/FanucMachineTests.cs +++ b/NcProgramManager.Tests/Unit/FanucMachineTests.cs @@ -1,10 +1,10 @@ using System; using NUnit.Framework; using Moq; -using FanucProgramManager.Cnc.Fanuc; -using FanucProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Fanuc; +using NcProgramManager.Cnc.Models; -namespace FanucProgramManager.Tests.Unit +namespace NcProgramManager.Tests.Unit { /// /// FanucMachine calls real FOCAS DLL in ConnectCore and most methods guard diff --git a/FanucProgramManager.Tests/Unit/FanucProgramParsingTests.cs b/NcProgramManager.Tests/Unit/FanucProgramParsingTests.cs similarity index 98% rename from FanucProgramManager.Tests/Unit/FanucProgramParsingTests.cs rename to NcProgramManager.Tests/Unit/FanucProgramParsingTests.cs index 0f3f61d..1b6a540 100644 --- a/FanucProgramManager.Tests/Unit/FanucProgramParsingTests.cs +++ b/NcProgramManager.Tests/Unit/FanucProgramParsingTests.cs @@ -1,7 +1,7 @@ using NUnit.Framework; -using FanucProgramManager; +using NcProgramManager; -namespace FanucProgramManager.Tests.Unit +namespace NcProgramManager.Tests.Unit { [TestFixture] public class FanucProgramParsingTests diff --git a/FanucProgramManager.Tests/Unit/HeidenhainMachineTests.cs b/NcProgramManager.Tests/Unit/HeidenhainMachineTests.cs similarity index 97% rename from FanucProgramManager.Tests/Unit/HeidenhainMachineTests.cs rename to NcProgramManager.Tests/Unit/HeidenhainMachineTests.cs index 2d79129..2965912 100644 --- a/FanucProgramManager.Tests/Unit/HeidenhainMachineTests.cs +++ b/NcProgramManager.Tests/Unit/HeidenhainMachineTests.cs @@ -1,11 +1,11 @@ using System; using NUnit.Framework; using Moq; -using FanucProgramManager.Cnc; -using FanucProgramManager.Cnc.Models; -using FanucProgramManager.Cnc.Heidenhain; +using NcProgramManager.Cnc; +using NcProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Heidenhain; -namespace FanucProgramManager.Tests.Unit +namespace NcProgramManager.Tests.Unit { [TestFixture] public class HeidenhainMachineTests diff --git a/FanucProgramManager.Tests/Unit/IsoProgramFormatterTests.cs b/NcProgramManager.Tests/Unit/IsoProgramFormatterTests.cs similarity index 97% rename from FanucProgramManager.Tests/Unit/IsoProgramFormatterTests.cs rename to NcProgramManager.Tests/Unit/IsoProgramFormatterTests.cs index 8b580db..bf75a71 100644 --- a/FanucProgramManager.Tests/Unit/IsoProgramFormatterTests.cs +++ b/NcProgramManager.Tests/Unit/IsoProgramFormatterTests.cs @@ -1,7 +1,7 @@ using NUnit.Framework; -using FanucProgramManager.Cnc.Fanuc; +using NcProgramManager.Cnc.Fanuc; -namespace FanucProgramManager.Tests.Unit +namespace NcProgramManager.Tests.Unit { [TestFixture] public class IsoProgramFormatterTests diff --git a/FanucProgramManager.Tests/Unit/MitsubishiMachineTests.cs b/NcProgramManager.Tests/Unit/MitsubishiMachineTests.cs similarity index 97% rename from FanucProgramManager.Tests/Unit/MitsubishiMachineTests.cs rename to NcProgramManager.Tests/Unit/MitsubishiMachineTests.cs index 379bb6d..93c1706 100644 --- a/FanucProgramManager.Tests/Unit/MitsubishiMachineTests.cs +++ b/NcProgramManager.Tests/Unit/MitsubishiMachineTests.cs @@ -1,11 +1,11 @@ using System; using NUnit.Framework; using Moq; -using FanucProgramManager.Cnc; -using FanucProgramManager.Cnc.Models; -using FanucProgramManager.Cnc.Mitsubishi; +using NcProgramManager.Cnc; +using NcProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Mitsubishi; -namespace FanucProgramManager.Tests.Unit +namespace NcProgramManager.Tests.Unit { [TestFixture] public class MitsubishiMachineTests diff --git a/FanucProgramManager.Tests/Unit/NcProgramValidatorTests.cs b/NcProgramManager.Tests/Unit/NcProgramValidatorTests.cs similarity index 99% rename from FanucProgramManager.Tests/Unit/NcProgramValidatorTests.cs rename to NcProgramManager.Tests/Unit/NcProgramValidatorTests.cs index 991248b..ac8c2f5 100644 --- a/FanucProgramManager.Tests/Unit/NcProgramValidatorTests.cs +++ b/NcProgramManager.Tests/Unit/NcProgramValidatorTests.cs @@ -1,8 +1,8 @@ using NUnit.Framework; -using FanucProgramManager.Cnc; -using FanucProgramManager.Cnc.Models; +using NcProgramManager.Cnc; +using NcProgramManager.Cnc.Models; -namespace FanucProgramManager.Tests.Unit +namespace NcProgramManager.Tests.Unit { [TestFixture] public class NcProgramValidatorTests diff --git a/FanucProgramManager.Tests/Unit/SiemensMachineTests.cs b/NcProgramManager.Tests/Unit/SiemensMachineTests.cs similarity index 97% rename from FanucProgramManager.Tests/Unit/SiemensMachineTests.cs rename to NcProgramManager.Tests/Unit/SiemensMachineTests.cs index 033f8d5..8dac182 100644 --- a/FanucProgramManager.Tests/Unit/SiemensMachineTests.cs +++ b/NcProgramManager.Tests/Unit/SiemensMachineTests.cs @@ -1,11 +1,11 @@ using System; using NUnit.Framework; using Moq; -using FanucProgramManager.Cnc; -using FanucProgramManager.Cnc.Models; -using FanucProgramManager.Cnc.Siemens; +using NcProgramManager.Cnc; +using NcProgramManager.Cnc.Models; +using NcProgramManager.Cnc.Siemens; -namespace FanucProgramManager.Tests.Unit +namespace NcProgramManager.Tests.Unit { [TestFixture] public class SiemensMachineTests diff --git a/FanucProgramManager.Tests/packages.config b/NcProgramManager.Tests/packages.config similarity index 100% rename from FanucProgramManager.Tests/packages.config rename to NcProgramManager.Tests/packages.config diff --git a/FanucProgramManager.csproj b/NcProgramManager.csproj similarity index 97% rename from FanucProgramManager.csproj rename to NcProgramManager.csproj index 2a89fb0..89eecf0 100755 --- a/FanucProgramManager.csproj +++ b/NcProgramManager.csproj @@ -6,8 +6,8 @@ AnyCPU {1032188B-3321-42B2-87ED-343BF718CAF5} Exe - FanucProgramManager - FanucProgramManager + NcProgramManager + NcProgramManager v4.7.2 512 true @@ -75,7 +75,6 @@ - diff --git a/FanucProgramManager.sln b/NcProgramManager.sln similarity index 79% rename from FanucProgramManager.sln rename to NcProgramManager.sln index 3875041..9c785f4 100755 --- a/FanucProgramManager.sln +++ b/NcProgramManager.sln @@ -3,9 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.5.33414.496 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FanucProgramManager", "FanucProgramManager.csproj", "{1032188B-3321-42B2-87ED-343BF718CAF5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NcProgramManager", "NcProgramManager.csproj", "{1032188B-3321-42B2-87ED-343BF718CAF5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FanucProgramManager.Tests", "FanucProgramManager.Tests\FanucProgramManager.Tests.csproj", "{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NcProgramManager.Tests", "NcProgramManager.Tests\NcProgramManager.Tests.csproj", "{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Program.cs b/Program.cs index ba1176a..483d97d 100755 --- a/Program.cs +++ b/Program.cs @@ -4,10 +4,10 @@ using System.IO; using System.Management; using System.Security.Cryptography; using System.Text.RegularExpressions; -using FanucProgramManager.Cnc; -using FanucProgramManager.Cnc.Models; +using NcProgramManager.Cnc; +using NcProgramManager.Cnc.Models; -namespace FanucProgramManager +namespace NcProgramManager { internal class Program { diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index f400efd..1f6d3a2 100755 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -2,17 +2,17 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -[assembly: InternalsVisibleTo("FanucProgramManager.Tests")] +[assembly: InternalsVisibleTo("NcProgramManager.Tests")] [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] // Le informazioni generali relative a un assembly sono controllate dal seguente // set di attributi. Modificare i valori di questi attributi per modificare le informazioni // associate a un assembly. -[assembly: AssemblyTitle("FanucProgramManager")] +[assembly: AssemblyTitle("NcProgramManager")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("FanucProgramManager")] +[assembly: AssemblyProduct("NcProgramManager")] [assembly: AssemblyCopyright("Copyright © 2023")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")]