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
+
+
+
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("")]