From f3f895df829ede423bce2505a2da35ba973886e6 Mon Sep 17 00:00:00 2001 From: dtrentin Date: Sun, 17 May 2026 22:10:30 +0200 Subject: [PATCH] Initial commit: migrate from FanucProgramManager --- .gitignore | 8 + .paul/PROJECT.md | 88 + .paul/ROADMAP.md | 83 + .paul/STATE.md | 111 + .paul/paul.json | 25 + .paul/phases/05-nc-validator/PLAN.md | 69 + AesCrypt.cs | 93 + App.config | 14 + Cnc/CncMachineFactory.cs | 60 + Cnc/Fanuc/FanucCapabilities.cs | 26 + Cnc/Fanuc/FanucConnectionConfig.cs | 29 + Cnc/Fanuc/FanucDialect.cs | 9 + Cnc/Fanuc/FanucDialectDetector.cs | 86 + Cnc/Fanuc/FanucErrorTranslator.cs | 60 + Cnc/Fanuc/FanucMachine.cs | 739 + Cnc/Fanuc/FocasDialectFactory.cs | 21 + Cnc/Fanuc/IFocasDialect.cs | 23 + Cnc/Fanuc/IsoProgramFormatter.cs | 95 + Cnc/Fanuc/LegacyFocasDialect.cs | 76 + Cnc/Fanuc/ModernFocasDialect.cs | 79 + Cnc/Fanuc/libs/Fwlib32.dll | Bin 0 -> 628760 bytes Cnc/Fanuc/libs/fwlibNCG.dll | Bin 0 -> 2078744 bytes Cnc/Fanuc/libs/fwlibe1.dll | Bin 0 -> 1038360 bytes Cnc/Heidenhain/HeidenhainConnectionConfig.cs | 15 + Cnc/Heidenhain/HeidenhainMachine.cs | 201 + Cnc/Heidenhain/ILsv2Client.cs | 10 + Cnc/Heidenhain/Lsv2Client.cs | 180 + Cnc/ICncMachine.cs | 26 + Cnc/IFanucMachine.cs | 15 + Cnc/INcProgramValidator.cs | 12 + Cnc/Mitsubishi/IMitsubishiFtpClient.cs | 10 + Cnc/Mitsubishi/MitsubishiConnectionConfig.cs | 16 + Cnc/Mitsubishi/MitsubishiFtpClient.cs | 71 + Cnc/Mitsubishi/MitsubishiMachine.cs | 210 + Cnc/Models/CncError.cs | 25 + Cnc/Models/CncManufacturer.cs | 4 + Cnc/Models/CncProgram.cs | 10 + Cnc/Models/CncResult.cs | 41 + Cnc/Models/ConnectionState.cs | 10 + Cnc/Models/MachineMode.cs | 12 + Cnc/Models/MachineSnapshot.cs | 22 + Cnc/Models/MotionState.cs | 10 + Cnc/Models/RunState.cs | 9 + Cnc/Models/ValidationError.cs | 21 + Cnc/Models/ValidationResult.cs | 32 + Cnc/Models/ValidationSeverity.cs | 4 + Cnc/NcProgramValidator.cs | 215 + Cnc/Siemens/ISiemensFtpClient.cs | 10 + Cnc/Siemens/SiemensConnectionConfig.cs | 16 + Cnc/Siemens/SiemensFtpClient.cs | 71 + Cnc/Siemens/SiemensMachine.cs | 211 + Dockerfile.test | 37 + FANUCMachine.cs | 1094 ++ FanucProgram.cs | 192 + .../FanucProgramManager.Tests.csproj | 70 + .../HeidenhainMachineIntegrationTests.cs | 80 + .../MitsubishiMachineIntegrationTests.cs | 96 + .../SiemensMachineIntegrationTests.cs | 104 + .../Integration/Stubs/FtpServerStub.cs | 255 + .../Integration/Stubs/Lsv2ServerStub.cs | 212 + .../Unit/CncMachineFactoryTests.cs | 113 + .../Unit/FanucMachineTests.cs | 221 + .../Unit/FanucProgramParsingTests.cs | 185 + .../Unit/HeidenhainMachineTests.cs | 141 + .../Unit/IsoProgramFormatterTests.cs | 105 + .../Unit/MitsubishiMachineTests.cs | 163 + .../Unit/NcProgramValidatorTests.cs | 280 + .../Unit/SiemensMachineTests.cs | 161 + FanucProgramManager.Tests/packages.config | 7 + FanucProgramManager.csproj | 151 + FanucProgramManager.csproj.user | 20 + FanucProgramManager.sln | 31 + InputArgs.cs | 25 + Program.cs | 447 + Properties/AssemblyInfo.cs | 39 + fwlib32.cs | 11569 ++++++++++++++++ nunit.runsettings | 12 + packages.config | 61 + 78 files changed, 19154 insertions(+) create mode 100755 .gitignore create mode 100644 .paul/PROJECT.md create mode 100644 .paul/ROADMAP.md create mode 100644 .paul/STATE.md create mode 100644 .paul/paul.json create mode 100644 .paul/phases/05-nc-validator/PLAN.md create mode 100755 AesCrypt.cs create mode 100755 App.config create mode 100644 Cnc/CncMachineFactory.cs create mode 100755 Cnc/Fanuc/FanucCapabilities.cs create mode 100755 Cnc/Fanuc/FanucConnectionConfig.cs create mode 100755 Cnc/Fanuc/FanucDialect.cs create mode 100755 Cnc/Fanuc/FanucDialectDetector.cs create mode 100755 Cnc/Fanuc/FanucErrorTranslator.cs create mode 100755 Cnc/Fanuc/FanucMachine.cs create mode 100755 Cnc/Fanuc/FocasDialectFactory.cs create mode 100755 Cnc/Fanuc/IFocasDialect.cs create mode 100755 Cnc/Fanuc/IsoProgramFormatter.cs create mode 100755 Cnc/Fanuc/LegacyFocasDialect.cs create mode 100755 Cnc/Fanuc/ModernFocasDialect.cs create mode 100755 Cnc/Fanuc/libs/Fwlib32.dll create mode 100755 Cnc/Fanuc/libs/fwlibNCG.dll create mode 100755 Cnc/Fanuc/libs/fwlibe1.dll create mode 100644 Cnc/Heidenhain/HeidenhainConnectionConfig.cs create mode 100644 Cnc/Heidenhain/HeidenhainMachine.cs create mode 100644 Cnc/Heidenhain/ILsv2Client.cs create mode 100644 Cnc/Heidenhain/Lsv2Client.cs create mode 100755 Cnc/ICncMachine.cs create mode 100644 Cnc/IFanucMachine.cs create mode 100644 Cnc/INcProgramValidator.cs create mode 100644 Cnc/Mitsubishi/IMitsubishiFtpClient.cs create mode 100644 Cnc/Mitsubishi/MitsubishiConnectionConfig.cs create mode 100644 Cnc/Mitsubishi/MitsubishiFtpClient.cs create mode 100644 Cnc/Mitsubishi/MitsubishiMachine.cs create mode 100755 Cnc/Models/CncError.cs create mode 100644 Cnc/Models/CncManufacturer.cs create mode 100755 Cnc/Models/CncProgram.cs create mode 100755 Cnc/Models/CncResult.cs create mode 100755 Cnc/Models/ConnectionState.cs create mode 100755 Cnc/Models/MachineMode.cs create mode 100755 Cnc/Models/MachineSnapshot.cs create mode 100755 Cnc/Models/MotionState.cs create mode 100755 Cnc/Models/RunState.cs create mode 100644 Cnc/Models/ValidationError.cs create mode 100644 Cnc/Models/ValidationResult.cs create mode 100644 Cnc/Models/ValidationSeverity.cs create mode 100644 Cnc/NcProgramValidator.cs create mode 100644 Cnc/Siemens/ISiemensFtpClient.cs create mode 100644 Cnc/Siemens/SiemensConnectionConfig.cs create mode 100644 Cnc/Siemens/SiemensFtpClient.cs create mode 100644 Cnc/Siemens/SiemensMachine.cs create mode 100644 Dockerfile.test create mode 100755 FANUCMachine.cs create mode 100755 FanucProgram.cs create mode 100644 FanucProgramManager.Tests/FanucProgramManager.Tests.csproj create mode 100644 FanucProgramManager.Tests/Integration/HeidenhainMachineIntegrationTests.cs create mode 100644 FanucProgramManager.Tests/Integration/MitsubishiMachineIntegrationTests.cs create mode 100644 FanucProgramManager.Tests/Integration/SiemensMachineIntegrationTests.cs create mode 100644 FanucProgramManager.Tests/Integration/Stubs/FtpServerStub.cs create mode 100644 FanucProgramManager.Tests/Integration/Stubs/Lsv2ServerStub.cs create mode 100644 FanucProgramManager.Tests/Unit/CncMachineFactoryTests.cs create mode 100644 FanucProgramManager.Tests/Unit/FanucMachineTests.cs create mode 100644 FanucProgramManager.Tests/Unit/FanucProgramParsingTests.cs create mode 100644 FanucProgramManager.Tests/Unit/HeidenhainMachineTests.cs create mode 100644 FanucProgramManager.Tests/Unit/IsoProgramFormatterTests.cs create mode 100644 FanucProgramManager.Tests/Unit/MitsubishiMachineTests.cs create mode 100644 FanucProgramManager.Tests/Unit/NcProgramValidatorTests.cs create mode 100644 FanucProgramManager.Tests/Unit/SiemensMachineTests.cs create mode 100644 FanucProgramManager.Tests/packages.config create mode 100755 FanucProgramManager.csproj create mode 100755 FanucProgramManager.csproj.user create mode 100755 FanucProgramManager.sln create mode 100755 InputArgs.cs create mode 100755 Program.cs create mode 100755 Properties/AssemblyInfo.cs create mode 100755 fwlib32.cs create mode 100644 nunit.runsettings create mode 100755 packages.config diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..ed23405 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +################################################################################ +# Il file gitignore è stato creato automaticamente da Microsoft(R) Visual Studio. +################################################################################ + +/obj +/bin +/.vs +/packages diff --git a/.paul/PROJECT.md b/.paul/PROJECT.md new file mode 100644 index 0000000..941f0c6 --- /dev/null +++ b/.paul/PROJECT.md @@ -0,0 +1,88 @@ +# FanucProgramManager + +## What This Is + +Console EXE (C# .NET 4.7.2) for upload/download of CNC programs to/from machine controllers. Targets any CN manufacturer, not Fanuc-only. Runs on Windows, distributed to licensed machine operators and integrators. + +## Core Value + +Machinists and operators transfer CNC programs to/from any controller without manual intervention or internet access. + +## Current State + +| Attribute | Value | +|-----------|-------| +| Type | Application | +| Version | 0.0.0 | +| Status | In development | +| Last Updated | 2026-05-13 | + +## Requirements + +### Core Features + +- Upload programs to CNC controller +- Download programs from CNC controller +- Local file management (organize/store programs on disk) +- Multi-CN brand support (Fanuc + others) + +### Validated (Shipped) +- [x] Fanuc FOCAS upload/download — initial +- [x] AES encryption for program files +- [x] CLI argument parsing +- [x] Machine-bound license check (hardcoded) + +### Active (In Progress) +- [ ] 3-file management mode — branch `3FilesManagement` + +### Planned (Next) +- To be defined during /paul:plan + +### Out of Scope +- Cloud sync +- Web UI +- Internet-dependent license validation + +## Constraints + +### Technical Constraints +- .NET Framework 4.7.2 — max compatibility, no upgrade +- Fanuc FOCAS via `fwlib32` (32-bit DLL, Windows-only) +- Must run offline — no internet dependency at runtime +- License validation must work without network + +### Business Constraints +- Software must be license-protected (offline, machine-bound) +- Current approach: hardcoded machine check — needs improvement +- Target: hardware fingerprint + encrypted license file + +## Key Decisions + +| Decision | Rationale | Date | Status | +|----------|-----------|------|--------| +| .NET 4.7.2 | Max compatibility with operator machines | 2026-05-13 | Active | +| Console EXE output | Simple deployment, scriptable | 2026-05-13 | Active | +| Offline license only | Operators may have no internet on shop floor | 2026-05-13 | Active | + +## Success Metrics + +| Metric | Target | Current | Status | +|--------|--------|---------|--------| +| Program transfer correctness | 100% (byte-verified) | Unknown | Not measured | +| License validation (offline) | Works without network | Hardcoded | At risk | +| Multi-CN support | ≥2 manufacturers | Fanuc only | In progress | + +## Tech Stack / Tools + +| Layer | Technology | Notes | +|-------|------------|-------| +| Language | C# | .NET Framework 4.7.2 | +| UI | Console EXE | CLI args via InputArgs.cs | +| CN Protocol (Fanuc) | FOCAS fwlib32 | 32-bit DLL | +| CN Protocol (others) | To be defined | Multi-CN expansion | +| Encryption | AES (AesCrypt.cs) | Program file protection | +| Licensing | Machine fingerprint | Hardcoded now, needs design | + +--- +*PROJECT.md — Updated when requirements or context change* +*Last updated: 2026-05-13* diff --git a/.paul/ROADMAP.md b/.paul/ROADMAP.md new file mode 100644 index 0000000..3d2c5fa --- /dev/null +++ b/.paul/ROADMAP.md @@ -0,0 +1,83 @@ +# Roadmap: FanucProgramManager + +## Overview + +Console tool for CNC program transfer and file management. Fanuc FOCAS base, expanding to multi-CN (Heidenhain LSV2, Siemens FTP) with robust offline licensing. + +## Current Milestone + +**v0.1 Multi-CN Release** (v0.1.0) +Status: In progress +Phases: 0 of 4 complete + +## Phases + +| Phase | Name | Plans | Status | Completed | +|-------|------|-------|--------|-----------| +| 1 | cnc-abstraction | 2 | In progress | - | +| 2 | heidenhain | 1 | Not started | - | +| 3 | siemens | 1 | Not started | - | +| 4 | program-wiring | 1 | Not started | - | + +## Phase Details + +### Phase 1: cnc-abstraction + +**Goal:** Fix namespace, add all Cnc/ files to csproj, complete ICncMachine + IFanucMachine with 3-file support +**Depends on:** Nothing +**Research:** Unlikely + +**Scope:** +- Fix namespace Fanuc_integration → FanucProgramManager.Cnc +- Add using FanucProgramManager to Fanuc-specific files +- Extend IFocasDialect to accept fileType for tool/work data +- Add IFanucMachine interface with tool offset + work zero ops +- Add CncManufacturer enum, CncMachineFactory stub +- Add all Cnc/ to csproj + +**Plans:** +- [ ] 01-01: Fix namespace, extend dialect interface, IFanucMachine +- [ ] 01-02: CncManufacturer, CncMachineFactory, add to csproj + +### Phase 2: heidenhain + +**Goal:** Implement ICncMachine for Heidenhain TNC via LSV2 protocol +**Depends on:** Phase 1 +**Research:** Likely (LSV2 binary protocol) + +**Scope:** +- HeidenhainConnectionConfig +- Lsv2Client (TCP framing, CRC16, commands) +- HeidenhainMachine : ICncMachine + +**Plans:** +- [ ] 02-01: Heidenhain LSV2 full implementation + +### Phase 3: siemens + +**Goal:** Implement ICncMachine for Siemens Sinumerik via FTP +**Depends on:** Phase 1 +**Research:** Unlikely (standard FTP) + +**Scope:** +- SiemensConnectionConfig +- SiemensMachine : ICncMachine via FtpWebRequest + +**Plans:** +- [ ] 03-01: Siemens FTP implementation + +### Phase 4: program-wiring + +**Goal:** Wire all 3 manufacturers into Program.cs + InputArgs, replace old FANUCMachine +**Depends on:** Phase 1, 2, 3 + +**Scope:** +- Update InputArgs with -manufacturer= param +- Refactor Program.cs to use ICncMachine factory +- Keep 3-file logic for Fanuc only + +**Plans:** +- [ ] 04-01: InputArgs + Program.cs refactor + +--- +*Roadmap created: 2026-05-13* diff --git a/.paul/STATE.md b/.paul/STATE.md new file mode 100644 index 0000000..4991bf2 --- /dev/null +++ b/.paul/STATE.md @@ -0,0 +1,111 @@ +# Project State + +## Project Reference + +See: .paul/PROJECT.md (updated 2026-05-13) + +**Core value:** Machinists transfer CNC programs to/from any controller without manual steps or internet +**Current focus:** 4-CN implementation complete — awaiting user verification and UNIFY + +## Current Position + +Milestone: v0.1 Multi-CN Release +Phase: 5 of 5 — Applied +Plan: All plans applied, awaiting user UNIFY +Status: APPLY complete, ready for UNIFY +Last activity: 2026-05-13 — Phase 5 NC Validator applied by agent + +Progress: +- Milestone: [█████████░] 90% + +## Loop Position + +Current loop state: +``` +PLAN ──▶ APPLY ──▶ UNIFY + ✓ ✓ ○ [Awaiting user verification + /paul:unify] +``` + +## What was built (all 4 phases) + +### Phase 1 — Cnc abstraction fixed +- Namespace: `Fanuc_integration.Cnc.*` → `FanucProgramManager.Cnc.*` across 29 files +- `using FanucProgramManager;` added to all FOCAS-using files +- `IFocasDialect` extended: `UploadStart`/`DownloadStart` now accept `short fileType` +- `IFanucMachine` created: extends `ICncMachine` with tool offset + work zero R/W +- `FanucMachine` now implements `IFanucMachine` +- `CncManufacturer` enum: Fanuc, Heidenhain, Siemens +- All 29 `Cnc/**/*.cs` files added to `.csproj` (36 total Compile entries) + +### Phase 2 — Heidenhain LSV2 +- `HeidenhainConnectionConfig` — IP, port 19000, credentials, timeout +- `Lsv2Client` — TCP framing, CRC-16/CCITT, login (SELECT+LOG_IN), ReceiveFile/SendFile +- `HeidenhainMachine : ICncMachine` — RunGuardedAsync pattern, state machine + +### Phase 3.1 — Mitsubishi M-series (added post-apply) +- `MitsubishiConnectionConfig` — port 21, dir `/PRG/` (no file extensions) +- `MitsubishiFtpClient` / `MitsubishiMachine : ICncMachine` — FTP, same pattern as Siemens +- `CncManufacturer.Mitsubishi` added to enum + factory + CLI parsing + +### Phase 3 — Siemens Sinumerik FTP +- `SiemensConnectionConfig` — IP, port 21, creds, program dir `/_N_MPF_DIR/` +- `SiemensFtpClient` — FtpWebRequest wrapper, ASCII mode, passive +- `SiemensMachine : ICncMachine` — same pattern as FanucMachine + +### Phase 4 — Wiring +- `CncMachineFactory` — creates right ICncMachine from InputArgs +- `InputArgs` — added `manufacturer`, `username`, `password` fields +- `Program.cs` — full rewrite using ICncMachine; Fanuc 3-file via IFanucMachine cast + +### Phase 5 — NC Validator +- `ValidationSeverity` enum (Error/Warning) +- `ValidationError` — Line, Message, Severity +- `ValidationResult` — Success + IReadOnlyList, static Ok()/Fail() +- `INcProgramValidator` interface +- `NcProgramValidator` — universal rules (block length ≤80, no lowercase, no tabs, no nested parens, comment ≤32); per-manufacturer name format + forbidden char rules; `#` in Fanuc/Mitsubishi is Warning not Error +- All 4 machines injected: public constructor creates `NcProgramValidator(manufacturer)`, internal constructor accepts `INcProgramValidator` for testing +- All 4 machines call validator in `WriteProgramAsync` before upload; fail on any Error-severity violation +- `NcProgramValidatorTests` — 30+ test cases covering all rules and all manufacturers +- Existing machine unit tests updated: inject always-ok mock validator to preserve existing behaviour tests +- Integration tests updated: content+names corrected to pass validation per manufacturer +- 5 new Compile entries in main csproj + 1 in tests csproj + +## New CLI args +- `-manufacturer=fanuc|heidenhain|siemens` (default: fanuc) +- `-username=` (Heidenhain/Siemens) +- `-password=` (Heidenhain/Siemens) + +## Accumulated Context + +### Decisions +- .NET 4.7.2 locked — max compatibility +- Offline-only license check (AES, unchanged) +- Heidenhain: LSV2 port 19000, needs real hardware testing +- Siemens: FTP /_N_MPF_DIR/, needs Sinumerik FTP option enabled on machine + +### Phase 5 — Test project (added post-apply) +- `FanucProgramManager.Tests/` — NUnit 3.13.3 + Moq 4.18.4, .NET 4.7.2 +- 7 unit test files (14+ tests on `FanucProgram`, `IsoProgramFormatter`, factory, all 4 machines) +- `FtpServerStub` — in-process TCP FTP (PASV); `Lsv2ServerStub` — in-process LSV2 TCP +- 3 integration test files — write→read round-trips against local stubs +- `InternalsVisibleTo("FanucProgramManager.Tests")` added to `AssemblyInfo.cs` +- Fanuc FOCAS tests that need Windows DLL are `[Ignore]`-d with explanation + +### Deferred Issues +- License system: still hardcoded AES key/IV — needs Phase 2.x redesign +- Heidenhain LSV2: ReadActiveProgramAsync / SelectMainProgram not supported +- Siemens FTP: ReadActiveProgramAsync / SelectMainProgram not supported +- Build not verifiable on Linux (fwlib32 is Windows-only DLL) + +### Blockers/Concerns +None — code complete, pending hardware testing. + +## Session Continuity + +Last session: 2026-05-13 +Stopped at: Phase 5 (NC Validator) applied — all 12 files created/modified +Next action: Build to verify compilation; run unit tests; /paul:unify when ready +Resume file: .paul/STATE.md + +--- +*STATE.md — Updated after every significant action* diff --git a/.paul/paul.json b/.paul/paul.json new file mode 100644 index 0000000..087b36b --- /dev/null +++ b/.paul/paul.json @@ -0,0 +1,25 @@ +{ + "name": "FanucProgramManager", + "version": "0.0.0", + "milestone": { + "name": "None", + "version": "0.0.0", + "status": "not_started" + }, + "phase": { + "number": 0, + "name": "None", + "status": "not_started" + }, + "loop": { + "plan": null, + "position": "IDLE" + }, + "timestamps": { + "created_at": "2026-05-13T00:00:00Z", + "updated_at": "2026-05-13T00:00:00Z" + }, + "satellite": { + "groom": true + } +} diff --git a/.paul/phases/05-nc-validator/PLAN.md b/.paul/phases/05-nc-validator/PLAN.md new file mode 100644 index 0000000..d584672 --- /dev/null +++ b/.paul/phases/05-nc-validator/PLAN.md @@ -0,0 +1,69 @@ +# Phase 05 — NC Program Validator + +**Status:** PLAN + +## Goal + +Per-manufacturer NC program validator runs inside `WriteProgramAsync` before upload. +Catches format errors before bytes hit the controller. + +## Acceptance Criteria + +- `NcProgramValidator` validates content for all 4 manufacturers +- All universal rules checked: block length ≤ 80, no lowercase, no tabs, no nested parens, comment ≤ 32 chars +- Per-manufacturer name format and forbidden chars checked +- Fanuc `#` char is Warning not Error +- All 4 machine classes call validator in `WriteProgramAsync` before upload +- Unit tests cover all rules + all manufacturers +- Old-style csproj Compile entries added for all new files + +## File List + +| # | File | Action | +|---|------|--------| +| 1 | `Cnc/Models/ValidationSeverity.cs` | Create | +| 2 | `Cnc/Models/ValidationError.cs` | Create | +| 3 | `Cnc/Models/ValidationResult.cs` | Create | +| 4 | `Cnc/INcProgramValidator.cs` | Create | +| 5 | `Cnc/NcProgramValidator.cs` | Create | +| 6 | `Cnc/Fanuc/FanucMachine.cs` | Edit — inject validator | +| 7 | `Cnc/Heidenhain/HeidenhainMachine.cs` | Edit — inject validator | +| 8 | `Cnc/Siemens/SiemensMachine.cs` | Edit — inject validator | +| 9 | `Cnc/Mitsubishi/MitsubishiMachine.cs` | Edit — inject validator | +| 10 | `FanucProgramManager.Tests/Unit/NcProgramValidatorTests.cs` | Create | +| 11 | `FanucProgramManager.csproj` | Edit — add 5 Compile entries | +| 12 | `FanucProgramManager.Tests/FanucProgramManager.Tests.csproj` | Edit — add test Compile entry | + +## Validation Rules + +### Universal +- Block length ≤ 80 chars per line +- No lowercase letters +- No tab characters +- No nested parentheses (depth > 1) +- Comment content inside `()` ≤ 32 chars + +### Fanuc +- Name must match `O\d{4}` +- First line of content must be `O####` +- Forbidden chars: `;`, `[`, `]` +- `#` → Warning (macro variable indicator) + +### Mitsubishi +- Same as Fanuc (O#### naming, same forbidden chars) + +### Siemens +- Name must end with `.MPF` (uppercase) +- Forbidden chars: `;` + +### Heidenhain +- Name must end with `.H` +- No O#### header required +- Forbidden chars: `%`, `;` + +## Constraints + +- .NET 4.7.2: no `Array.Empty()`, no C# 8+ features +- No LINQ unless already imported +- Namespace: `FanucProgramManager.Cnc` (validator), `FanucProgramManager.Cnc.Models` (result types) +- English code + comments only diff --git a/AesCrypt.cs b/AesCrypt.cs new file mode 100755 index 0000000..28e1894 --- /dev/null +++ b/AesCrypt.cs @@ -0,0 +1,93 @@ +using System; +using System.IO; +using System.Security.Cryptography; + +namespace FanucProgramManager +{ + class AesCrypt + { + + public static byte[] EncryptStringToBytes_Aes(string plainText, byte[] Key, byte[] IV) + { + // Check arguments. + if (plainText == null || plainText.Length <= 0) + throw new ArgumentNullException("plainText"); + if (Key == null || Key.Length <= 0) + throw new ArgumentNullException("Key"); + if (IV == null || IV.Length <= 0) + throw new ArgumentNullException("IV"); + byte[] encrypted; + + // Create an Aes object + // with the specified key and IV. + using (Aes aesAlg = Aes.Create()) + { + aesAlg.Key = Key; + aesAlg.IV = IV; + + // Create an encryptor to perform the stream transform. + ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV); + + // Create the streams used for encryption. + using (MemoryStream msEncrypt = new MemoryStream()) + { + using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) + { + using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) + { + //Write all data to the stream. + swEncrypt.Write(plainText); + } + encrypted = msEncrypt.ToArray(); + } + } + } + + // Return the encrypted bytes from the memory stream. + return encrypted; + } + + public static string DecryptStringFromBytes_Aes(byte[] cipherText, byte[] Key, byte[] IV) + { + // Check arguments. + if (cipherText == null || cipherText.Length <= 0) + throw new ArgumentNullException("cipherText"); + if (Key == null || Key.Length <= 0) + throw new ArgumentNullException("Key"); + if (IV == null || IV.Length <= 0) + throw new ArgumentNullException("IV"); + + // Declare the string used to hold + // the decrypted text. + string plaintext = null; + + // Create an Aes object + // with the specified key and IV. + using (Aes aesAlg = Aes.Create()) + { + aesAlg.Key = Key; + aesAlg.IV = IV; + + // Create a decryptor to perform the stream transform. + ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV); + + // Create the streams used for decryption. + using (MemoryStream msDecrypt = new MemoryStream(cipherText)) + { + using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) + { + using (StreamReader srDecrypt = new StreamReader(csDecrypt)) + { + + // Read the decrypted bytes from the decrypting stream + // and place them in a string. + plaintext = srDecrypt.ReadToEnd(); + } + } + } + } + + return plaintext; + } + } + } diff --git a/App.config b/App.config new file mode 100755 index 0000000..7d84477 --- /dev/null +++ b/App.config @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Cnc/CncMachineFactory.cs b/Cnc/CncMachineFactory.cs new file mode 100644 index 0000000..8299373 --- /dev/null +++ b/Cnc/CncMachineFactory.cs @@ -0,0 +1,60 @@ +using System; +using FanucProgramManager.Cnc.Fanuc; +using FanucProgramManager.Cnc.Heidenhain; +using FanucProgramManager.Cnc.Mitsubishi; +using FanucProgramManager.Cnc.Models; +using FanucProgramManager.Cnc.Siemens; + +namespace FanucProgramManager.Cnc +{ + internal static class CncMachineFactory + { + internal static ICncMachine Create(InputArgs args) + { + switch (args.manufacturer) + { + case CncManufacturer.Heidenhain: + return new HeidenhainMachine(new HeidenhainConnectionConfig + { + Name = "Heidenhain", + IpAddress = args.ip, + Port = string.IsNullOrEmpty(args.porta) ? 19000 : int.Parse(args.porta), + Username = args.username, + Password = args.password, + ConnectTimeout = TimeSpan.FromSeconds(5) + }); + + case CncManufacturer.Siemens: + return new SiemensMachine(new SiemensConnectionConfig + { + Name = "Siemens", + IpAddress = args.ip, + Port = string.IsNullOrEmpty(args.porta) ? 21 : int.Parse(args.porta), + Username = args.username, + Password = args.password + }); + + case CncManufacturer.Mitsubishi: + return new MitsubishiMachine(new MitsubishiConnectionConfig + { + Name = "Mitsubishi", + IpAddress = args.ip, + Port = string.IsNullOrEmpty(args.porta) ? 21 : int.Parse(args.porta), + Username = args.username, + Password = args.password + }); + + default: // Fanuc + return new FanucMachine(new FanucConnectionConfig + { + Name = "Fanuc", + Transport = args.nodoHssb >= 0 ? FanucTransport.Hssb : FanucTransport.Ethernet, + IpAddress = args.ip, + Port = string.IsNullOrEmpty(args.porta) ? (ushort)8193 : ushort.Parse(args.porta), + HssbNode = args.nodoHssb, + ConnectTimeout = TimeSpan.FromSeconds(4) + }); + } + } + } +} diff --git a/Cnc/Fanuc/FanucCapabilities.cs b/Cnc/Fanuc/FanucCapabilities.cs new file mode 100755 index 0000000..cd3e605 --- /dev/null +++ b/Cnc/Fanuc/FanucCapabilities.cs @@ -0,0 +1,26 @@ +namespace FanucProgramManager.Cnc.Fanuc +{ + public sealed class FanucCapabilities + { + public string CncType { get; set; } + public char ModelLetter { get; set; } + public bool IsISeries { get; set; } + public string Series { get; set; } + public string Version { get; set; } + public string MtType { get; set; } + public int MaxAxis { get; set; } + + public FanucDialect Dialect { get; set; } + + public bool SupportsPathBasedPrograms { get; set; } + public bool SupportsPdfProgramApi { get; set; } + public bool SupportsAlmMsg2 { get; set; } + public bool SupportsUpDownload4 { get; set; } + + public override string ToString() + { + return "Fanuc " + (CncType ?? "?").Trim() + "i-" + ModelLetter + + " (" + Dialect + ", " + (MtType ?? "?").Trim() + ", " + MaxAxis + " axes)"; + } + } +} diff --git a/Cnc/Fanuc/FanucConnectionConfig.cs b/Cnc/Fanuc/FanucConnectionConfig.cs new file mode 100755 index 0000000..86e20d2 --- /dev/null +++ b/Cnc/Fanuc/FanucConnectionConfig.cs @@ -0,0 +1,29 @@ +using System; + +namespace FanucProgramManager.Cnc.Fanuc +{ + public enum FanucTransport + { + Ethernet = 3, + Hssb = 2, + Library = 0 + } + + public sealed class FanucConnectionConfig + { + public string Name { get; set; } + public FanucTransport Transport { get; set; } + public string IpAddress { get; set; } + public ushort Port { get; set; } + public int HssbNode { get; set; } + public int PieceCounterMacro { get; set; } + public TimeSpan ConnectTimeout { get; set; } + + public FanucConnectionConfig() + { + HssbNode = -1; + PieceCounterMacro = -1; + ConnectTimeout = TimeSpan.FromSeconds(4); + } + } +} diff --git a/Cnc/Fanuc/FanucDialect.cs b/Cnc/Fanuc/FanucDialect.cs new file mode 100755 index 0000000..70c83ea --- /dev/null +++ b/Cnc/Fanuc/FanucDialect.cs @@ -0,0 +1,9 @@ +namespace FanucProgramManager.Cnc.Fanuc +{ + public enum FanucDialect + { + Unknown = 0, + Legacy = 1, + Modern = 2 + } +} diff --git a/Cnc/Fanuc/FanucDialectDetector.cs b/Cnc/Fanuc/FanucDialectDetector.cs new file mode 100755 index 0000000..c00ecd2 --- /dev/null +++ b/Cnc/Fanuc/FanucDialectDetector.cs @@ -0,0 +1,86 @@ +using FanucProgramManager; + +namespace FanucProgramManager.Cnc.Fanuc +{ + internal static class FanucDialectDetector + { + public static FanucCapabilities Detect(ushort hndl) + { + var sys = new Focas1.ODBSYS(); + short ret = Focas1.cnc_sysinfo(hndl, sys); + if (ret != Focas1.EW_OK) + { + return new FanucCapabilities + { + CncType = "??", + ModelLetter = '?', + Dialect = FanucDialect.Unknown + }; + } + + string cncType = new string(sys.cnc_type ?? new char[] { '?', '?' }); + char modelLetter = ModelLetterFrom(sys.addinfo); + bool isI = (sys.addinfo & 0x02) != 0; + FanucDialect dialect = DialectFor(cncType, modelLetter); + + bool modern = dialect == FanucDialect.Modern; + return new FanucCapabilities + { + CncType = cncType, + ModelLetter = modelLetter, + IsISeries = isI, + Series = sys.series != null ? new string(sys.series) : "", + Version = sys.version != null ? new string(sys.version) : "", + MtType = sys.mt_type != null ? new string(sys.mt_type) : "", + MaxAxis = sys.max_axis, + Dialect = dialect, + SupportsUpDownload4 = modern, + SupportsAlmMsg2 = modern, + SupportsPathBasedPrograms = modern, + SupportsPdfProgramApi = modern + }; + } + + private static char ModelLetterFrom(short addinfo) + { + int model = (addinfo >> 8) & 0xFF; + switch (model) + { + case 1: return 'A'; + case 2: return 'B'; + case 3: return 'C'; + case 4: return 'D'; + case 6: return 'F'; + default: return ' '; + } + } + + private static FanucDialect DialectFor(string cncType, char modelLetter) + { + if (string.IsNullOrEmpty(cncType)) return FanucDialect.Unknown; + + string t = cncType; + string trimmed = cncType.Trim(); + + if (trimmed == "30" || trimmed == "31" || trimmed == "32" || trimmed == "35") + return FanucDialect.Modern; + + if (trimmed == "PM") + return FanucDialect.Modern; + + if (trimmed == "0" || t == " 0") + { + if (modelLetter == 'D' || modelLetter == 'F') return FanucDialect.Modern; + return FanucDialect.Legacy; + } + + if (trimmed == "15" || trimmed == "16" || trimmed == "18" || trimmed == "21") + return FanucDialect.Legacy; + + if (trimmed == "PD" || trimmed == "PH") + return FanucDialect.Legacy; + + return FanucDialect.Unknown; + } + } +} diff --git a/Cnc/Fanuc/FanucErrorTranslator.cs b/Cnc/Fanuc/FanucErrorTranslator.cs new file mode 100755 index 0000000..00a7357 --- /dev/null +++ b/Cnc/Fanuc/FanucErrorTranslator.cs @@ -0,0 +1,60 @@ +using System.Collections.Generic; +using FanucProgramManager; +using FanucProgramManager.Cnc.Models; + +namespace FanucProgramManager.Cnc.Fanuc +{ + internal static class FanucErrorTranslator + { + private static readonly Dictionary Messages = new Dictionary + { + { (short)Focas1.focas_ret.EW_PROTOCOL, "protocol error" }, + { (short)Focas1.focas_ret.EW_SOCKET, "windows socket error" }, + { (short)Focas1.focas_ret.EW_NODLL, "DLL not exist error" }, + { (short)Focas1.focas_ret.EW_BUS, "bus error" }, + { (short)Focas1.focas_ret.EW_SYSTEM2, "system error" }, + { (short)Focas1.focas_ret.EW_HSSB, "hssb communication error" }, + { (short)Focas1.focas_ret.EW_HANDLE, "Windows library handle error" }, + { (short)Focas1.focas_ret.EW_VERSION, "CNC/PMC version mismatch" }, + { (short)Focas1.focas_ret.EW_UNEXP, "abnormal error" }, + { (short)Focas1.focas_ret.EW_SYSTEM, "system error" }, + { (short)Focas1.focas_ret.EW_PARITY, "shared RAM parity error" }, + { (short)Focas1.focas_ret.EW_MMCSYS, "emm386 or mmcsys install error" }, + { (short)Focas1.focas_ret.EW_RESET, "reset or stop occurred" }, + { (short)Focas1.focas_ret.EW_BUSY, "busy" }, + { (short)Focas1.focas_ret.EW_FUNC, "command prepare error / pmc not exist" }, + { (short)Focas1.focas_ret.EW_LENGTH, "data block length error" }, + { (short)Focas1.focas_ret.EW_NUMBER, "data number / address range error" }, + { (short)Focas1.focas_ret.EW_ATTRIB, "data attribute / data type error" }, + { (short)Focas1.focas_ret.EW_DATA, "data error" }, + { (short)Focas1.focas_ret.EW_NOOPT, "no option" }, + { (short)Focas1.focas_ret.EW_PROT, "write protect" }, + { (short)Focas1.focas_ret.EW_OVRFLOW, "memory overflow" }, + { (short)Focas1.focas_ret.EW_PARAM, "CNC parameter not correct" }, + { (short)Focas1.focas_ret.EW_BUFFER, "buffer empty/full" }, + { (short)Focas1.focas_ret.EW_PATH, "path error" }, + { (short)Focas1.focas_ret.EW_MODE, "CNC mode error" }, + { (short)Focas1.focas_ret.EW_REJECT, "execution rejected" }, + { (short)Focas1.focas_ret.EW_DTSRVR, "data server error" }, + { (short)Focas1.focas_ret.EW_ALARM, "alarm has been occurred" }, + { (short)Focas1.focas_ret.EW_STOP, "CNC is not running" }, + { (short)Focas1.focas_ret.EW_PASSWD, "protection data error" } + }; + + public static CncError Translate(short code, string source) + { + string msg; + if (!Messages.TryGetValue(code, out msg)) + msg = "unknown FOCAS error"; + return new CncError(code, source, msg); + } + + public static bool IsDisconnectError(short code) + { + return code == (short)Focas1.focas_ret.EW_SOCKET + || code == (short)Focas1.focas_ret.EW_HANDLE + || code == (short)Focas1.focas_ret.EW_HSSB + || code == (short)Focas1.focas_ret.EW_PROTOCOL; + } + } +} diff --git a/Cnc/Fanuc/FanucMachine.cs b/Cnc/Fanuc/FanucMachine.cs new file mode 100755 index 0000000..e5c5ca7 --- /dev/null +++ b/Cnc/Fanuc/FanucMachine.cs @@ -0,0 +1,739 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using FanucProgramManager; +using FanucProgramManager.Cnc; +using FanucProgramManager.Cnc.Models; + +namespace FanucProgramManager.Cnc.Fanuc +{ + public sealed class FanucMachine : IFanucMachine + { + private const int AlarmSlots = 17; + private const int OperatorMsgSlots = 17; + private const int TransferChunkSize = 1024; + private const int UploadBufferSize = 10240; + private const int Param_PiecesCount = 6711; + private const int Param_CycleTimeMs = 6757; + private const int Param_CycleTimeMin = 6758; + private const string DefaultDownloadFolder = "//CNC_MEM/USER/PATH1/"; + private const string SeedProgramName = "OSTD"; + private const string SeedProgramBody = "%\n\n%"; + + private readonly FanucConnectionConfig _config; + private readonly INcProgramValidator _validator; + private readonly List _currentErrors = new List(); + private readonly SemaphoreSlim _gate = new SemaphoreSlim(1, 1); + + private ushort _hndl; + private FanucCapabilities _caps; + private IFocasDialect _dialect; + private ConnectionState _state = ConnectionState.Disconnected; + + public FanucMachine(FanucConnectionConfig config) + { + if (config == null) throw new ArgumentNullException("config"); + _config = config; + _validator = new NcProgramValidator(CncManufacturer.Fanuc); + } + + internal FanucMachine(FanucConnectionConfig config, INcProgramValidator validator) + { + if (config == null) throw new ArgumentNullException("config"); + _config = config; + _validator = validator ?? new NcProgramValidator(CncManufacturer.Fanuc); + } + + public string Name { get { return _config.Name; } } + public ConnectionState State { get { return _state; } } + public FanucCapabilities Capabilities { get { return _caps; } } + + public event EventHandler StateChanged; + + public Task> ConnectAsync(CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => ConnectCore(ct), ct); + } + + public Task DisconnectAsync() + { + return RunGuardedAsync(() => { DisconnectCore(); return true; }, CancellationToken.None); + } + + public Task> ReadAsync(CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => ReadCore(ct), ct); + } + + public Task> ReadActiveProgramAsync(CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => ReadActiveProgramCore(ct), ct); + } + + public Task> ReadProgramAsync(string path, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => ReadProgramCore(path, ct), ct); + } + + public Task> WriteProgramAsync(string path, CncProgram program, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => WriteProgramCore(path, program, ct), ct); + } + + public Task> SelectMainProgramAsync(string path, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => SelectMainProgramCore(path), ct); + } + + public Task> DeleteProgramAsync(string path, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => DeleteProgramCore(path), ct); + } + + public Task> ReadToolDataAsync(string path, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => UploadFocasFile(1, path, ct), ct); + } + + public Task> ReadWorkZeroDataAsync(string path, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => UploadFocasFile(5, path, ct), ct); + } + + public Task> WriteToolDataAsync(string folderPath, string content, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => DownloadFocasFile(1, folderPath, content, ct), ct); + } + + public Task> WriteWorkZeroDataAsync(string folderPath, string content, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => DownloadFocasFile(5, folderPath, content, ct), ct); + } + + public void Dispose() + { + try { DisconnectAsync().GetAwaiter().GetResult(); } catch { } + try { _gate.Dispose(); } catch { } + } + + private async Task> RunGuardedAsync(Func body, CancellationToken ct) + { + await _gate.WaitAsync(ct).ConfigureAwait(false); + try + { + return await Task.Run(() => + { + _currentErrors.Clear(); + try + { + T value = body(); + if (_currentErrors.Count > 0) + return CncResult.Fail(_currentErrors.ToArray()); + return CncResult.Ok(value); + } + catch (OperationCanceledException) + { + return CncResult.Cancelled(); + } + catch (Exception ex) + { + _currentErrors.Add(new CncError(0, "FanucMachine", ex.Message)); + return CncResult.Fail(_currentErrors.ToArray()); + } + }, ct).ConfigureAwait(false); + } + finally + { + _gate.Release(); + } + } + + private bool ConnectCore(CancellationToken ct) + { + if (_state == ConnectionState.Connected) return true; + SetState(ConnectionState.Connecting); + ct.ThrowIfCancellationRequested(); + + short ret; + switch (_config.Transport) + { + case FanucTransport.Ethernet: + short timeoutSec = (short)Math.Max(1, (int)_config.ConnectTimeout.TotalSeconds); + ret = Focas1.cnc_allclibhndl3(_config.IpAddress, _config.Port, timeoutSec, out _hndl); + break; + case FanucTransport.Hssb: + ret = Focas1.cnc_allclibhndl2(_config.HssbNode, out _hndl); + break; + case FanucTransport.Library: + ret = Focas1.cnc_allclibhndl(out _hndl); + break; + default: + Record((short)Focas1.focas_ret.EW_ATTRIB, "Connect"); + SetState(ConnectionState.Faulted); + return false; + } + + if (ret != Focas1.EW_OK) + { + Record(ret, "cnc_allclibhndl"); + SetState(ConnectionState.Faulted); + return false; + } + + if (ct.IsCancellationRequested) + { + try { Focas1.cnc_freelibhndl(_hndl); } catch { } + SetState(ConnectionState.Disconnected); + ct.ThrowIfCancellationRequested(); + } + + _caps = FanucDialectDetector.Detect(_hndl); + _dialect = FocasDialectFactory.Create(_caps); + if (_caps.Dialect == FanucDialect.Unknown) + _currentErrors.Add(new CncError(0, "cnc_sysinfo", "Unknown CNC model, falling back to Legacy dialect")); + + SetState(ConnectionState.Connected); + return true; + } + + private void DisconnectCore() + { + if (_state == ConnectionState.Disconnected) return; + short ret = Focas1.cnc_freelibhndl(_hndl); + if (ret != Focas1.EW_OK) + Record(ret, "cnc_freelibhndl"); + SetState(ConnectionState.Disconnected); + } + + private MachineSnapshot ReadCore(CancellationToken ct) + { + EnsureConnected(); + ct.ThrowIfCancellationRequested(); + + Focas1.cnc_setpath(_hndl, 1); + + var snap = new MachineSnapshot + { + CapturedAt = DateTime.Now, + Alarms = new List(), + OperatorMessages = new List(), + Mode = MachineMode.Unknown, + Run = RunState.Unknown, + Motion = MotionState.Unknown + }; + + snap.CycleTime = ReadCycleTime(); + ct.ThrowIfCancellationRequested(); + snap.PieceCount = ReadPieceCount(); + ct.ThrowIfCancellationRequested(); + snap.Alarms = ReadAlarms(); + ct.ThrowIfCancellationRequested(); + snap.OperatorMessages = ReadOperatorMessages(); + ct.ThrowIfCancellationRequested(); + + var stateInfo = ReadMachineState(); + snap.Mode = stateInfo.Mode; + snap.Run = stateInfo.Run; + snap.Motion = stateInfo.Motion; + snap.Emergency = stateInfo.Emergency; + snap.AlarmActive = stateInfo.Alarm; + + if (snap.Mode != MachineMode.Edit) + { + ct.ThrowIfCancellationRequested(); + var prog = ReadProgramInfo(); + snap.MainProgram = prog.MainProgram; + snap.SubProgram = prog.SubProgram; + snap.ProgramComment = prog.Comment; + } + + return snap; + } + + private string ReadActiveProgramCore(CancellationToken ct) + { + EnsureConnected(); + short ret; + string identifier = _dialect.ReadMainProgramIdentifier(_hndl, out ret); + if (ret != Focas1.EW_OK) + { + Record(ret, "ReadMainProgramIdentifier"); + return null; + } + return UploadProgramByIdentifier(identifier, ct); + } + + private string ReadProgramCore(string path, CancellationToken ct) + { + EnsureConnected(); + if (string.IsNullOrEmpty(path)) + { + _currentErrors.Add(new CncError(0, "ReadProgram", "Path is empty")); + return null; + } + return UploadProgramByIdentifier(path, ct); + } + + private bool WriteProgramCore(string folderPath, CncProgram program, CancellationToken ct) + { + EnsureConnected(); + if (program == null || string.IsNullOrEmpty(program.Content)) + { + _currentErrors.Add(new CncError(0, "WriteProgram", "Program content is empty")); + return false; + } + var vr = _validator.Validate(program.Name ?? folderPath, program.Content); + if (!vr.Success) + { + string msg = string.Join("; ", vr.Errors + .Where(e => e.Severity == ValidationSeverity.Error) + .Select(e => e.Message)); + _currentErrors.Add(new CncError(0, "Validator", msg)); + return false; + } + if (!CanDownload()) return false; + if (string.IsNullOrEmpty(folderPath)) folderPath = DefaultDownloadFolder; + + string fileName = ExtractFileNameFromContent(program); + if (string.IsNullOrEmpty(fileName)) + { + _currentErrors.Add(new CncError(0, "WriteProgram", "Cannot extract program name from content")); + return false; + } + + EnsureSeedProgram(folderPath, ct); + ct.ThrowIfCancellationRequested(); + + if (_dialect.SupportsPathBasedPrograms) + Focas1.cnc_pdf_del(_hndl, folderPath + fileName); + + short ret = _dialect.DownloadStart(_hndl, folderPath); + if (ret != Focas1.EW_OK) + { + Record(ret, "DownloadStart"); + _dialect.DownloadEnd(_hndl); + return false; + } + + try + { + if (!TransferChunked(program.Content, ct)) return false; + } + finally + { + _dialect.DownloadEnd(_hndl); + } + + if (_dialect.SupportsPathBasedPrograms) + { + ret = Focas1.cnc_pdf_slctmain(_hndl, folderPath + fileName); + if (ret != Focas1.EW_OK) + { + Record(ret, "cnc_pdf_slctmain"); + return false; + } + } + return true; + } + + private bool SelectMainProgramCore(string path) + { + EnsureConnected(); + if (!_dialect.SupportsPathBasedPrograms) + { + _currentErrors.Add(new CncError((short)Focas1.focas_ret.EW_NOOPT, + "SelectMainProgram", "Path-based selection not supported on this CNC")); + return false; + } + short ret = Focas1.cnc_pdf_slctmain(_hndl, path); + if (ret != Focas1.EW_OK) { Record(ret, "cnc_pdf_slctmain"); return false; } + return true; + } + + private bool DeleteProgramCore(string path) + { + EnsureConnected(); + if (!_dialect.SupportsPathBasedPrograms) + { + _currentErrors.Add(new CncError((short)Focas1.focas_ret.EW_NOOPT, + "DeleteProgram", "Path-based delete not supported on this CNC")); + return false; + } + short ret = Focas1.cnc_pdf_del(_hndl, path); + if (ret != Focas1.EW_OK) { Record(ret, "cnc_pdf_del"); return false; } + return true; + } + + private string UploadFocasFile(short fileType, string path, CancellationToken ct) + { + EnsureConnected(); + if (string.IsNullOrEmpty(path)) + { + _currentErrors.Add(new CncError(0, "UploadFocasFile", "Path is empty")); + return null; + } + long programNumber = TryParseProgramNumber(path); + short ret = _dialect.UploadStart(_hndl, path, programNumber, fileType); + if (ret != Focas1.EW_OK) + { + Record(ret, "UploadStart"); + _dialect.UploadEnd(_hndl); + return null; + } + var output = new StringBuilder(); + char[] buffer = new char[UploadBufferSize + 1]; + try + { + while (true) + { + ct.ThrowIfCancellationRequested(); + int len = UploadBufferSize; + short r = _dialect.UploadData(_hndl, ref len, buffer); + if (r == (short)Focas1.focas_ret.EW_BUFFER) + { + if (ct.WaitHandle.WaitOne(100)) ct.ThrowIfCancellationRequested(); + continue; + } + if (r == Focas1.EW_OK && len > 0) + { + output.Append(buffer, 0, len); + if (buffer[len - 1] == '%') break; + } + else + { + if (r != Focas1.EW_OK) Record(r, "UploadData"); + break; + } + } + } + finally { _dialect.UploadEnd(_hndl); } + return output.ToString(); + } + + private bool DownloadFocasFile(short fileType, string folderPath, string content, CancellationToken ct) + { + EnsureConnected(); + if (string.IsNullOrEmpty(content)) + { + _currentErrors.Add(new CncError(0, "DownloadFocasFile", "Content is empty")); + return false; + } + if (string.IsNullOrEmpty(folderPath)) folderPath = DefaultDownloadFolder; + short ret = _dialect.DownloadStart(_hndl, folderPath, fileType); + if (ret != Focas1.EW_OK) + { + Record(ret, "DownloadStart"); + _dialect.DownloadEnd(_hndl); + return false; + } + try { return TransferChunked(content, ct); } + finally { _dialect.DownloadEnd(_hndl); } + } + + private TimeSpan ReadCycleTime() + { + var ms = new Focas1.IODBPSD(); + var min = new Focas1.IODBPSD(); + short r1 = Focas1.cnc_rdparam(_hndl, Param_CycleTimeMs, 0, 8, ms); + short r2 = Focas1.cnc_rdparam(_hndl, Param_CycleTimeMin, 0, 8, min); + if (r1 != Focas1.EW_OK) Record(r1, "cnc_rdparam(cycle ms)"); + if (r2 != Focas1.EW_OK) Record(r2, "cnc_rdparam(cycle min)"); + return TimeSpan.FromMinutes(min.u.ldata) + TimeSpan.FromMilliseconds(ms.u.ldata); + } + + private long ReadPieceCount() + { + try + { + if (_config.PieceCounterMacro == -1) + { + var p = new Focas1.IODBPSD(); + short ret = Focas1.cnc_rdparam(_hndl, Param_PiecesCount, 0, 8, p); + if (ret != Focas1.EW_OK) { Record(ret, "cnc_rdparam(pieces)"); return 0; } + return p.u.ldata; + } + var macro = new Focas1.ODBM(); + short macRet = Focas1.cnc_rdmacro(_hndl, (short)_config.PieceCounterMacro, 10, macro); + if (macRet != Focas1.EW_OK) { Record(macRet, "cnc_rdmacro(pieces)"); return 0; } + long val = Math.Abs(macro.mcr_val); + if (macro.dec_val > 0) val = val / (long)Math.Pow(10, macro.dec_val); + return macro.mcr_val < 0 ? -val : val; + } + catch (Exception ex) + { + _currentErrors.Add(new CncError(0, "ReadPieceCount", ex.Message)); + return 0; + } + } + + private IReadOnlyList ReadAlarms() + { + string[] buf = new string[AlarmSlots]; + short num = AlarmSlots; + short ret = _dialect.ReadAlarmMessages(_hndl, ref num, buf); + if (ret != Focas1.EW_OK) Record(ret, "ReadAlarmMessages"); + var list = new List(num); + for (int i = 0; i < num; i++) + if (!string.IsNullOrEmpty(buf[i])) list.Add(buf[i]); + return list; + } + + private IReadOnlyList ReadOperatorMessages() + { + string[] buf = new string[OperatorMsgSlots]; + short num = 1; + short ret = _dialect.ReadOperatorMessages(_hndl, ref num, buf); + if (ret != Focas1.EW_OK) Record(ret, "ReadOperatorMessages"); + var list = new List(num); + for (int i = 0; i < num; i++) + if (!string.IsNullOrEmpty(buf[i])) list.Add(buf[i]); + return list; + } + + private struct StateInfo + { + public MachineMode Mode; + public RunState Run; + public MotionState Motion; + public bool Emergency; + public bool Alarm; + } + + private StateInfo ReadMachineState() + { + var s = new StateInfo + { + Mode = MachineMode.Unknown, + Run = RunState.Unknown, + Motion = MotionState.Unknown + }; + var odbst = new Focas1.ODBST(); + short ret = Focas1.cnc_statinfo(_hndl, odbst); + if (ret != Focas1.EW_OK) { Record(ret, "cnc_statinfo"); return s; } + + switch (odbst.aut) + { + case 0: s.Mode = MachineMode.Mdi; break; + case 1: s.Mode = MachineMode.Auto; break; + case 3: s.Mode = MachineMode.Edit; break; + case 4: s.Mode = MachineMode.Handle; break; + case 5: s.Mode = MachineMode.Jog; break; + } + switch (odbst.run) + { + case 1: s.Run = RunState.Stop; break; + case 3: s.Run = RunState.ExecutingIso; break; + } + switch (odbst.motion) + { + case 0: s.Motion = MotionState.Idle; break; + case 1: s.Motion = MotionState.Moving; break; + case 2: s.Motion = MotionState.Hold; break; + } + s.Emergency = odbst.emergency == 1; + s.Alarm = odbst.alarm == 1; + return s; + } + + private struct ProgramInfo + { + public string MainProgram; + public string SubProgram; + public string Comment; + } + + private ProgramInfo ReadProgramInfo() + { + var info = new ProgramInfo { MainProgram = "", SubProgram = "", Comment = "" }; + + var prog = new Focas1.ODBPRO(); + short ret = Focas1.cnc_rdprgnum(_hndl, prog); + if (ret != Focas1.EW_OK) { Record(ret, "cnc_rdprgnum"); return info; } + info.SubProgram = "O" + prog.data.ToString(); + info.MainProgram = "O" + prog.mdata.ToString(); + + if (_dialect.SupportsPathBasedPrograms) + { + byte[] mainPath = new byte[242]; + short pathRet = Focas1.cnc_pdf_rdmain(_hndl, mainPath); + if (pathRet == Focas1.EW_OK) + { + string str = ASCIIEncoding.ASCII.GetString(mainPath).TrimEnd('\0'); + string[] parts = str.Split('/'); + if (parts.Length > 0) info.MainProgram = parts[parts.Length - 1]; + } + } + + byte[] commentBuf = new byte[100]; + int charsRead; + short cret = _dialect.ReadActiveProgramComment(_hndl, commentBuf, out charsRead); + if (cret != Focas1.EW_OK) { Record(cret, "ReadActiveProgramComment"); return info; } + + string raw = ASCIIEncoding.ASCII.GetString(commentBuf).TrimEnd('\0'); + int open = raw.IndexOf('('); + int close = raw.IndexOf(')'); + if (open >= 0 && close > open) + info.Comment = raw.Substring(open + 1, close - open - 1); + else + info.Comment = ""; + return info; + } + + private string UploadProgramByIdentifier(string identifier, CancellationToken ct) + { + long programNumber = TryParseProgramNumber(identifier); + short ret = _dialect.UploadStart(_hndl, identifier, programNumber); + if (ret != Focas1.EW_OK) + { + Record(ret, "UploadStart"); + _dialect.UploadEnd(_hndl); + return null; + } + + var output = new StringBuilder(); + char[] buffer = new char[UploadBufferSize + 1]; + try + { + while (true) + { + ct.ThrowIfCancellationRequested(); + int len = UploadBufferSize; + short r = _dialect.UploadData(_hndl, ref len, buffer); + if (r == (short)Focas1.focas_ret.EW_BUFFER) + { + if (ct.WaitHandle.WaitOne(100)) ct.ThrowIfCancellationRequested(); + continue; + } + if (r == Focas1.EW_OK && len > 0) + { + output.Append(buffer, 0, len); + if (len > 0 && buffer[len - 1] == '%') break; + } + else + { + if (r != Focas1.EW_OK) Record(r, "UploadData"); + break; + } + } + } + finally + { + _dialect.UploadEnd(_hndl); + } + return output.ToString(); + } + + private bool TransferChunked(string content, CancellationToken ct) + { + int len = content.Length; + int startPos = 0; + while (len > 0) + { + ct.ThrowIfCancellationRequested(); + int num = len >= TransferChunkSize ? TransferChunkSize : len; + char[] chunk = new char[num]; + content.CopyTo(startPos, chunk, 0, num); + + short ret = _dialect.DownloadData(_hndl, ref num, chunk); + if (ret == (short)Focas1.focas_ret.EW_BUFFER) + { + if (ct.WaitHandle.WaitOne(100)) ct.ThrowIfCancellationRequested(); + continue; + } + if (ret == Focas1.EW_OK) + { + startPos += num; + len -= num; + continue; + } + Record(ret, "DownloadData"); + var dtl = new Focas1.ODBERR(); + Focas1.cnc_getdtailerr(_hndl, dtl); + Debug.WriteLine("FOCAS detail err: " + dtl.err_no + " " + dtl.err_dtno); + return false; + } + return true; + } + + private bool CanDownload() + { + var odbst = new Focas1.ODBST(); + short ret = Focas1.cnc_statinfo(_hndl, odbst); + if (ret != Focas1.EW_OK) { Record(ret, "cnc_statinfo(canDownload)"); return false; } + if (odbst.aut != 0 && odbst.aut != 3) + { + Record((short)Focas1.focas_ret.EW_MODE, "CanDownload"); + return false; + } + return true; + } + + private void EnsureSeedProgram(string folderPath, CancellationToken ct) + { + if (!_dialect.SupportsPathBasedPrograms) return; + short selRet = Focas1.cnc_pdf_slctmain(_hndl, folderPath + SeedProgramName); + if (selRet == Focas1.EW_OK) return; + + Focas1.cnc_pdf_del(_hndl, folderPath + SeedProgramName); + short sStart = _dialect.DownloadStart(_hndl, folderPath); + if (sStart != Focas1.EW_OK) { _dialect.DownloadEnd(_hndl); return; } + TransferChunked(SeedProgramBody, ct); + _dialect.DownloadEnd(_hndl); + Focas1.cnc_pdf_slctmain(_hndl, folderPath + SeedProgramName); + } + + private static string ExtractFileNameFromContent(CncProgram program) + { + if (!string.IsNullOrEmpty(program.Name)) return program.Name; + string content = program.Content ?? ""; + int start = content.IndexOf('<'); + int end = content.IndexOf('>'); + if (start >= 0 && end > start) return content.Substring(start + 1, end - start - 1); + return null; + } + + private static long TryParseProgramNumber(string identifier) + { + if (string.IsNullOrEmpty(identifier)) return 0; + string s = identifier; + int slash = s.LastIndexOf('/'); + if (slash >= 0 && slash < s.Length - 1) s = s.Substring(slash + 1); + if (s.Length > 0 && (s[0] == 'O' || s[0] == 'o')) s = s.Substring(1); + long n; + return long.TryParse(s, out n) ? n : 0; + } + + private void EnsureConnected() + { + if (_state != ConnectionState.Connected || _dialect == null) + throw new InvalidOperationException("FanucMachine is not connected."); + } + + private void Record(short code, string source) + { + var err = FanucErrorTranslator.Translate(code, source); + _currentErrors.Add(err); + if (FanucErrorTranslator.IsDisconnectError(code)) + { + SetState(ConnectionState.Faulted); + try { Focas1.cnc_freelibhndl(_hndl); } catch { } + SetState(ConnectionState.Disconnected); + } + } + + private void SetState(ConnectionState next) + { + if (_state == next) return; + _state = next; + var h = StateChanged; + if (h != null) + { + try { h(this, next); } catch { } + } + } + } +} diff --git a/Cnc/Fanuc/FocasDialectFactory.cs b/Cnc/Fanuc/FocasDialectFactory.cs new file mode 100755 index 0000000..ee8b147 --- /dev/null +++ b/Cnc/Fanuc/FocasDialectFactory.cs @@ -0,0 +1,21 @@ +using System; + +namespace FanucProgramManager.Cnc.Fanuc +{ + internal static class FocasDialectFactory + { + public static IFocasDialect Create(FanucCapabilities caps) + { + if (caps == null) return new LegacyFocasDialect(); + switch (caps.Dialect) + { + case FanucDialect.Modern: return new ModernFocasDialect(); + case FanucDialect.Legacy: + case FanucDialect.Unknown: + return new LegacyFocasDialect(); + default: + throw new InvalidOperationException("Unsupported FanucDialect: " + caps.Dialect); + } + } + } +} diff --git a/Cnc/Fanuc/IFocasDialect.cs b/Cnc/Fanuc/IFocasDialect.cs new file mode 100755 index 0000000..1bfdc20 --- /dev/null +++ b/Cnc/Fanuc/IFocasDialect.cs @@ -0,0 +1,23 @@ +namespace FanucProgramManager.Cnc.Fanuc +{ + internal interface IFocasDialect + { + FanucDialect Dialect { get; } + bool SupportsPathBasedPrograms { get; } + bool SupportsAlmMsg2 { get; } + + short ReadAlarmMessages(ushort hndl, ref short num, string[] outBuffer); + short ReadOperatorMessages(ushort hndl, ref short num, string[] outBuffer); + + short DownloadStart(ushort hndl, string folderPath, short fileType = 0); + short DownloadData(ushort hndl, ref int len, char[] data); + short DownloadEnd(ushort hndl); + + short UploadStart(ushort hndl, string fileName, long programNumber, short fileType = 0); + short UploadData(ushort hndl, ref int len, char[] data); + short UploadEnd(ushort hndl); + + string ReadMainProgramIdentifier(ushort hndl, out short ret); + short ReadActiveProgramComment(ushort hndl, byte[] buffer, out int charsRead); + } +} diff --git a/Cnc/Fanuc/IsoProgramFormatter.cs b/Cnc/Fanuc/IsoProgramFormatter.cs new file mode 100755 index 0000000..6cdeb5a --- /dev/null +++ b/Cnc/Fanuc/IsoProgramFormatter.cs @@ -0,0 +1,95 @@ +namespace FanucProgramManager.Cnc.Fanuc +{ + public static class IsoProgramFormatter + { + public static string EnsureTitleBrackets(string program) + { + if (string.IsNullOrEmpty(program)) return program; + string head, body; + if (!SplitFirstNonEmptyLine(program, out head, out body)) return program; + + int openAngle = head.IndexOf('<'); + if (openAngle >= 0) return program; + + int openPar = head.IndexOf('('); + int closePar = head.IndexOf(')'); + + int titleStart = FindTitleStart(head); + head = head.Insert(titleStart, "<"); + if (closePar > 0) + { + openPar = head.IndexOf('('); + head = head.Insert(openPar, ">"); + } + else + { + head = head + ">"; + } + return head + body; + } + + public static string InsertOrReplaceComment(string program, string comment) + { + if (string.IsNullOrEmpty(program)) return program; + program = EnsureTitleBrackets(program); + + string head, body; + if (!SplitFirstNonEmptyLine(program, out head, out body)) return program; + + int openPar = head.IndexOf('('); + int closePar = head.IndexOf(')'); + if (openPar > 0 && closePar > openPar) + { + head = head.Remove(openPar + 1, closePar - openPar - 1); + head = head.Insert(openPar + 1, comment ?? ""); + } + else + { + head = head + "(" + (comment ?? "") + ")"; + } + return head + body; + } + + public static string RenameAndComment(string program, string name, string comment) + { + if (string.IsNullOrEmpty(program)) return program; + string head, body; + if (!SplitFirstNonEmptyLine(program, out head, out body)) return program; + + string newHead = "%\n<" + (name ?? "") + ">(" + (comment ?? "") + ")"; + return newHead + body; + } + + private static bool SplitFirstNonEmptyLine(string program, out string head, out string body) + { + head = program; + body = ""; + bool sawFirstLf = false; + int lastLf = -1; + for (int i = 0; i < program.Length; i++) + { + if (program[i] == '\n') + { + if (sawFirstLf) + { + head = program.Substring(0, i); + body = program.Substring(i); + return true; + } + sawFirstLf = true; + lastLf = i; + } + } + return false; + } + + private static int FindTitleStart(string head) + { + for (int i = 0; i < head.Length; i++) + { + if (head[i] == '\n') return i + 1; + } + return 0; + } + } +} diff --git a/Cnc/Fanuc/LegacyFocasDialect.cs b/Cnc/Fanuc/LegacyFocasDialect.cs new file mode 100755 index 0000000..5120c64 --- /dev/null +++ b/Cnc/Fanuc/LegacyFocasDialect.cs @@ -0,0 +1,76 @@ +using FanucProgramManager; + +namespace FanucProgramManager.Cnc.Fanuc +{ + internal sealed class LegacyFocasDialect : IFocasDialect + { + public FanucDialect Dialect { get { return FanucDialect.Legacy; } } + public bool SupportsPathBasedPrograms { get { return false; } } + public bool SupportsAlmMsg2 { get { return false; } } + + public short DownloadStart(ushort hndl, string folderPath, short fileType = 0) + { + return Focas1.cnc_dwnstart3(hndl, fileType); + } + + public short DownloadData(ushort hndl, ref int len, char[] data) + { + return Focas1.cnc_download3(hndl, ref len, data); + } + + public short DownloadEnd(ushort hndl) + { + return Focas1.cnc_dwnend3(hndl); + } + + public short UploadStart(ushort hndl, string fileName, long programNumber, short fileType = 0) + { + int pn = (int)programNumber; + return Focas1.cnc_upstart3(hndl, fileType, pn, pn); + } + + public short UploadData(ushort hndl, ref int len, char[] data) + { + return Focas1.cnc_upload3(hndl, ref len, data); + } + + public short UploadEnd(ushort hndl) + { + return Focas1.cnc_upend3(hndl); + } + + public short ReadAlarmMessages(ushort hndl, ref short num, string[] outBuffer) + { + var arr = new Focas1.ODBALMMSG_data_custom[outBuffer.Length]; + short ret = Focas1.cnc_rdalmmsg_custom(hndl, 0, ref num, arr); + for (int i = 0; i < num && i < outBuffer.Length; i++) + outBuffer[i] = arr[i].msg_len > 0 ? arr[i].alm_msg : ""; + return ret; + } + + public short ReadOperatorMessages(ushort hndl, ref short num, string[] outBuffer) + { + var arr = new Focas1.OPMSG3_data_custom[outBuffer.Length]; + short ret = Focas1.cnc_rdopmsg3_custom(hndl, 4, ref num, arr); + for (int i = 0; i < num && i < outBuffer.Length; i++) + outBuffer[i] = arr[i].char_num > 0 ? arr[i].data : ""; + return ret; + } + + public string ReadMainProgramIdentifier(ushort hndl, out short ret) + { + var prog = new Focas1.ODBPRO(); + ret = Focas1.cnc_rdprgnum(hndl, prog); + return "O" + prog.mdata.ToString(); + } + + public short ReadActiveProgramComment(ushort hndl, byte[] buffer, out int charsRead) + { + ushort len = (ushort)buffer.Length; + short blk; + short ret = Focas1.cnc_rdexecprog(hndl, ref len, out blk, buffer); + charsRead = len; + return ret; + } + } +} diff --git a/Cnc/Fanuc/ModernFocasDialect.cs b/Cnc/Fanuc/ModernFocasDialect.cs new file mode 100755 index 0000000..13dd273 --- /dev/null +++ b/Cnc/Fanuc/ModernFocasDialect.cs @@ -0,0 +1,79 @@ +using System.Text; +using FanucProgramManager; + +namespace FanucProgramManager.Cnc.Fanuc +{ + internal sealed class ModernFocasDialect : IFocasDialect + { + public FanucDialect Dialect { get { return FanucDialect.Modern; } } + public bool SupportsPathBasedPrograms { get { return true; } } + public bool SupportsAlmMsg2 { get { return true; } } + + public short DownloadStart(ushort hndl, string folderPath, short fileType = 0) + { + return Focas1.cnc_dwnstart4(hndl, fileType, folderPath); + } + + public short DownloadData(ushort hndl, ref int len, char[] data) + { + return Focas1.cnc_download4(hndl, ref len, data); + } + + public short DownloadEnd(ushort hndl) + { + return Focas1.cnc_dwnend4(hndl); + } + + public short UploadStart(ushort hndl, string fileName, long programNumber, short fileType = 0) + { + return Focas1.cnc_upstart4(hndl, fileType, fileName); + } + + public short UploadData(ushort hndl, ref int len, char[] data) + { + return Focas1.cnc_upload4(hndl, ref len, data); + } + + public short UploadEnd(ushort hndl) + { + return Focas1.cnc_upend4(hndl); + } + + public short ReadAlarmMessages(ushort hndl, ref short num, string[] outBuffer) + { + var arr = new Focas1.ODBALMMSG2_data_custom[outBuffer.Length]; + short ret = Focas1.cnc_rdalmmsg2_custom(hndl, -1, ref num, arr); + for (int i = 0; i < num && i < outBuffer.Length; i++) + outBuffer[i] = arr[i].msg_len > 0 ? arr[i].alm_msg : ""; + return ret; + } + + public short ReadOperatorMessages(ushort hndl, ref short num, string[] outBuffer) + { + var arr = new Focas1.OPMSG3_data_custom[outBuffer.Length]; + short ret = Focas1.cnc_rdopmsg3_custom(hndl, 4, ref num, arr); + for (int i = 0; i < num && i < outBuffer.Length; i++) + outBuffer[i] = arr[i].char_num > 0 ? arr[i].data : ""; + return ret; + } + + public string ReadMainProgramIdentifier(ushort hndl, out short ret) + { + byte[] buf = new byte[242]; + ret = Focas1.cnc_pdf_rdmain(hndl, buf); + return ASCIIEncoding.ASCII.GetString(buf).TrimEnd('\0'); + } + + public short ReadActiveProgramComment(ushort hndl, byte[] buffer, out int charsRead) + { + uint len = (uint)buffer.Length; + uint rows = 1; + byte[] main = new byte[242]; + Focas1.cnc_pdf_rdmain(hndl, main); + string mainPath = ASCIIEncoding.ASCII.GetString(main).TrimEnd('\0'); + short ret = Focas1.cnc_rdpdf_line(hndl, mainPath, 0, buffer, ref rows, ref len); + charsRead = (int)len; + return ret; + } + } +} diff --git a/Cnc/Fanuc/libs/Fwlib32.dll b/Cnc/Fanuc/libs/Fwlib32.dll new file mode 100755 index 0000000000000000000000000000000000000000..4277c94bfa7f74b24941be2c43edeee346ef83f7 GIT binary patch literal 628760 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�^XF5@ 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

%o-Ngp4#nM_t4e5<`b$QpYv~3yUPx@P;- z>(9BOxNi?dby+@zIMcLCME>B|pMA>h4M_Mgq%e2-o9;(W^sv4%wz3J?s3b z?b<-P^NML5a}S5|X}6Ncy1ir>$jSrc3uKzg*v0zh#GAeq(!7 zT(&Q1JyQID?I^|{I63TsgboBD`3zL!zSNlZG`&@MT z$wA{Ae)ng)CUs#<TQbe^1g6mJb;mRz z{S{l23Z&W+S3~-da%4sG6a!GzJlHT@(1J=oYC{6co1Ry#QRtq%U)t{K`DL9(pL(Bd zIN_nnb)Zi5CY+0wz1$h{<2w4)-T}wMJ2z$w-bcC(5h4$MJ8q7Z-R==TebI5jfLFh? z$+^+NA^x<@ub10RyWZ_ddi7`b^oMT`nfEk*OaBVzvtBPa=XmnXo&uu-b*%i%COvN0 zPIY(?x^&a8#zB#dd+qztCw;h2i*M!?zWz_O@2h@yb-=8!ZHei#ht;gUIds`r!uEX9 zN(cXPKa?M?*H?`X=tJjhz4!aJsYBf=Y+ru&^+xRw+wAqW+gFbn)84Jzkf?ybv7d$S zjtjoII-`8E(@`x>23D(36xyTULL>WLO`EseI`Xxl$IpC^^a cR^|NYbbiUqv+GvIhaEjOx88_co3AbYKf;Hb8UO$Q literal 0 HcmV?d00001 diff --git a/Cnc/Fanuc/libs/fwlibNCG.dll b/Cnc/Fanuc/libs/fwlibNCG.dll new file mode 100755 index 0000000000000000000000000000000000000000..608187f244fcdf345e1f45575958078e4ec02c14 GIT binary patch literal 2078744 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 z z7OjW$0=xry$igNV`6SW73?}6%jS;_83P}h)&GtU?#6R3KiV1<7Us$Jbvd)y3;6~pM#(C=v@l)dfq^z^s?^1 zt9O(!V4(9x;Ffac!Xc)I>6@?aqFFv>Sm)+NAe;w$rX}3M&`Ao}}W89f}%7d!`grPJpapN$8fDVxm zP`t#(Ae}!0FNFSj-jD{-NTi`OwEV(?o;O$p#Gd!VyiB9lwxFbE=wy6-m?lUqnn=HC zZq?u8@H=GGL@%&`Aunc~Ym&(_KN+XJ^D$NIc7KVxH`Nh}_-d>)T9domDUY>sjLY6V zzLJnjSWicSocfAXPlu~hd&mzr4t+A8W5QqBPZupRyXQ278sWTWn4d4rD8+$v9c+#{ zdRpmRY;^|pp3g<#xi!OOcV-}<33pjW2YDU)^uU6^vnh%L)ETX@R`;g?k8(-tth4b7 z!6%V=4||^Ltn?Z6$?pXH$xXo6;FE``08i3q)F&qo)1TZA6Ik%ciBy0m=`-@l6yU6B z5@D{edLSl3oug5J7VR-8!QkKj+VC|-pfkyUUP8nu3@SX z@34wC1T5@cOC^IQhNNZ=#wqpcIlX+pG~;if{z|?3hwmWIES`@cuD@Zl{Mm{58(L%g z8@_omw=1g2UbxT6U-*c)4Kl!dP8?}+p1ABX}g)-{LqO}=KEr*QYK)}V>vq20pVbsMFm86LAk8v&2r z;uEJaNsGbb=jS&!o)85dr|=P}_&*2m5UQNVQb1X4t9_3X{fC6$X+1G4NT7>Dz4Fb>j11-RJplLgM6KjNgCqt0?pT2p^F; z|I;!5E@?w0);J3L6m9Xj{Cc#gBm32?rK2#>1YkY#%82jXeV*@`Omq2#@O|O&QRaIL zACWrW4mRI(>>8W%_-K6w+S6zI)Bh4C9fjFuXwC82`uD!dFJCcj@)w%l;m1Xp-@SZ9 zq4-SUEs5asiy4L)UddWI3NsuNpGWn1zRQ{A;1`L&cm0fxtjfN^i4OKS0qxV6_ z|7op!0kuyX#+rAjkIM|Dl-XS?t^82$W3HhJ<^JPUviFXAklZPSbq#!;#u=(n5=pJ4 zHK(JN|NWHUC~h&7R#Fr;pRYrPDwhSTRBb3g1H6w8LzUBmRd%f*ml40$P--=lR(`Da zahIXWM^MhRL2mejsxWxpYN*m+sIq1zy~lBe(#?j_$|4#hgZp`gDrJT$8}8QoNHbKK zW2mymNqzhiD5^nhvZ1u{YQ2w_4OLDsRN3$ws>0r5i=oQ5(6zKzUGrP&Bi~TkWhkwr z17rDn+-Rustf9&VMSqWJhAJBjRo2X=K0br|s=db|Lun-)p2z!0HZ)LVsIuV(s>0r* z+tA7wLzOiLFbuzFC`~t%R=V^)9x_z<915Z~5gYvadyu59jg)jqt;(8DsgKhPrP~dq zmAB}9*bP-=LzNAW= zy6<9(usju2d6{0CT{mt{7E(X+P6irUDADT(yEb&Qhp7{yvPmYZ$+Yx;+&Pmdqm}y< zm|S5Gyg_?|Qw>k9`2h6;UaiP#D5`v)8f7nc7i*r6?IY-i+WT*Kj}@TbzycT+(HC-z zrsq?DEi};Li%A1TtR#sT0Yp*q1~wZSShJrRD6)wI;)_1Bk1>coCwUdtD|wvR_7Of$$LD3ZZp8H(+WH#T*^pgu zj!&{BWlU;6YySZQ(*_+QjIj+qcFd6Up~Hq}9C!S$GEX>h%t=`%pK|Jm(@sC*%(KoO zdCs}NK5vZS-zdZPAMa9&BqySY@fkvS5vxWwvY1pyV-c2LiE3)kBsKca(;FDe8c^j#Y9O68KsP4)t$MXV z!3LPX_-}|Vyy-6?VyVObkeVjpjF-GcC2a8P>Q+{gl<2S03n_L?9TAfZAJ9u42{uSl zq2H&MtmF;4B=~t&k~rwUQ7l^FO7RJVPZM zDVW%|PA|DP*cyp^{@eAErNP!n((_-Vm)sC+jR|;{>LphMTO;Ale~w-r0dwEO0L)PA$7nYm!wsRF0L^=vtM&v!Bk9gR znLYpJlVQ&{Yd84w$KrXX@(=AMfnO;99#g;@9YBq8N~cCw*;Z~~a^Z(qlX(pVvX)wd zWJ3RLy@aGmby7$aTv_=jl|P}E(+} zBm%Ciq-kGS8SG~zlO9)AGV$ts{rL%a9`Ox~K-W{y>B1U=fap)tD-KpW!fY}r@C&rh zU-%FtD|Of;0s1@jl6RpGb(8%nG)~WIhV9k!_ay5-zfx%tf{W{y-f)z`OZ?9(Wjkc*$c_!g1_< zDp{eItPXZULR#R~NcpVa1xESoD&FGEU|;+3ocJIqIq`+FT8lwATi$&%g|mqhAp_xZ z<8n-boQ2Q1_*{%@6TWZ2=XP9exIV^Zx(G5Bu6$gLD8Ct>6}TS4^(?M_7eijc=V!Q1 z#&artaZpXIZ$?;7MY%J&e%-uIL2zZaWBPST zoYHS6TW>IYcD4h}5_8(i#2K3N4#FKQPkj$K^sQvZf#}2PM%9p4X39S`)-%+G*`GTH zT5ITr8mE``2zrTi9)jy(axgB{nzxh5~tD9tQ>? zgL)S`H1j)yKMgy<+qRF<93XT#J1CR89+e#-rQUn7)X06OlIwld+<6LNSc@|3-+I!0 z)r-KpP40odSAod;{S?BBqcCySW}u!o5-?}?ur}4!PSjc(&pol+DX1TKkC!eUR13|W zwZuYrzr5*d(teUZ$H=+gny~HVWadI9UTI};6qyH*SV`k>iOfO4B|0+-l!Q@Qhz3hkGHv2($8lNIQT?V(TM$Cdc#U-@_ra6^rh*juOo|;6#Ya+3=>oKp~ zO-^J^a!%#L@7P@Vx|768%266jUV+H5Xo$xZcJl86i&4@cy^@O-$M=H~_}-hpM0zJ1 zBb}Fnt*O}S!%_BM;W>dWzIc<3NL?R7a{_I+j$qh(P9Q7~`;PPr?!7(8 z+DvrsErIlJ>U?Kx4c$*JJCFgA?Ik4l;WzXt|9L~STfb$frcXE9e)I9s@agvd8@SJ0 zi*7ljl5l7sHZ5fS2K;d3PcQq+B+oV>?x~vuPio--!BWymUa(I{y(xq$GUYa3sisF`1O;0!?1p_uP!w$^RcQID0edTpM|OsdH%(cO_1P_ z&**Rz+&Y8z$vm1i`QHLu8E)DBtKt^UM@;59lBL7-J?7+|WSklTzoG~um)HS6o&s6+>pb(3kRKRgCRExeUu9tjh3=u#hc{tK zHwA!3qGK)L(5f8AW~u0&l{sdPLz3ejL=h7jqx<%yniED0y@_j43qay;UiM{c`nKOMQO-6_30c{cwn0iaYcOr z?dtQscMqHQko<1{D^Z`3B&V;neV*?QL`m!O9mk&{+WMK8KSlIpo{Z=Yfhdgg%^3RA zd_*ck_W>W(1Z$MA9O9oTFrN(KUY6%}@v%%l$6{yyD2G=}}fOroOm)%U7NrJAUBq&qLwG^2-Jc%B_ zkk}kZ%zlI@?BcsaAcnIc(p@cBkn}u-c)+RjXABW*7Fi)jHo6@+HwK4t`@XR+Nyk>K zs|B_21at(Ge?9)-o=|0@{L+JP9+*)3R`P4UZznD}U#rMgygyJQ^{%pSMkXzNF8IVg z?TNB)&%ql6c0;-<$fLt>p80KXP2C@7IkY;JMF$O-V@Ei7q*V1Qj5GQ!Z#ou1Yn(+e z%t4mpkM+q=dAs-cld&)Vg7{PXpD6fqEFY1IKQCc|!trM(?uFn_&$Ub#alcPP;l25alD zumr(TA?t78e}YS?Vez#sIVNQBg#@jxs-MkFcvU^cZ@__%nivj*WxqWNt19QOTlxF|Uu~053On9NZ`V#{rf5nCwZgn~e zkmNcMhi7}A;hElGfalM>US9ZdC_LGE`9(b&QR4jfeJMILHT|_L@u1$vJ~BY;CN_{n zb)i14mr^}NzYDtti?)`@7Hl&xD}GSFRm*E*m2-F>j(~Sg@Nho(aKaKDc|_mIbvnrT z`6JvCm<6FQK}+C&p;|<-1a>i_#I^gQ0QCgkCj)Ai|F3u+I;~jJ?o^WB$COKloyvXP z^qdttEKr=>i^{y2+Y1KT+<%bozUCm(=#_nYQu4xn?0A8|)$)oiWFv7+x-MnmRV|J- zXfVk0-h`uOYhW7OjD+oN`8ZPtMkdF z*T_aRm<@zZiIgob!Y|jPytidIJK*pumMO7Sbkwyt*mjvyc2uLcI_5wtJ6iK_mS4W) z&Fpzovwl;j9vc#Dr~3|Dyu;8ZsbzF3n}bqNoBa1;@GdD8D+TQkNms&pcDcD?ACjZ^ zmRL;Q(~;=6KzR_86hK--x&vLXJ5OnQuOHlSVPWrt0Vt5d=0(_fX{zYxDC?n#^PK9M zlx(6*D;5(Po0MYm^y3Fq_M_aUX0n8KV7SYkC2tm!`xvU|;iu1|1aFT43o8l;HAht3 z<1*Xisn9XVEHA7+A2+FiPB@v%=i!Hx(`*%UYgXpim^t+$dD^e^%2s1#vtGFgc~&oB zwfD=G2S}gMT7MJ9eZBQP_`zCNt^JB@dB<4!Z^p`-^~w!6PN_Lf%xSRF+jhs?9O#BW z7-1k!5#UtZFA#Brv+2_@I;gQ-@(t^v8FtTqlqU&_bJ!m2Azh8~Wv0R#%r?4~;(8L- z+qj78IX!1R6|Udr^-jw zpF9gxew%z(kjg=stwhp+S+dVa=bfC+J3!~vpz}?jyiU;hYoPOzPmOer!1h5tZ>MSD zAeF}N_t${zuzlOkx^45bM+xAwfAqD&;{VV?7h$!k2==2eYw#x{r1|+8KF2M*|RcP6v6nVf!6? z;wm(ArA5lkEc=EgFcE5R(`fqNpc2sZnKy%`FR|J?h1GVnuQoJ+w&A<&F9~uB5mP;K z!qRz5Z+YJqsvK_*G9mE^*uz`D@7Py@zi+Q{bgY~<+DeBnu_G>#Wm%AAJh>{T#kw+Q z6eB-Ho^~wj=QX^B+RsG2A380i*M2~KNX$I#O4d^|aR=7Zsd&~Up(`+xOIcqZ%a--T zwC$aX=S95ISJ+;Q)75+49e5?lu|u4;ChV1-qbJdim{ZALNjs~`-sy!shH-WOdQ{S1 zYo)QTcV>^Wva_mYkFwER?Tg8fuq0*?v1knG!)hZ#(vP7!6|cxS(%NVo>Cp#Oj^t=> zS;m}72!X1WQFa`xNa{vYSL501GJMb_U zC)f!UFAIgwXh_%gHHBI{;H1nw#mMfIGa@U$)J#r5=O~ZBzKvG0&|(H!OlPeX;7&$f zJ}5Vvw^RxuJPb#ntUNpim#K3wUX$X&vv8)EJEtK->qr%mLdJJ6VtntgAauj{Lh94{ z$TDx~@AG8b`b1%&^>g7Ff+arq{+xf$_%ZzZ&pQqLn?!KVzpJpyB`A-rM%5_tSSLU6 zZO_|L1hUn#=lR;J$B+7&f$@UkY;4J(XMPKP{`ze8GoJ1$8WHv z0lNB6EbPpe?F|2g+HBFY17>ca)+{=+$7V6ugUJ&Dy+B^ok(Abo-GpEz<#Zx2J9I1;rLRh+zv)vNU|4g2$L04 z&fNhyti7P8D2uaV5`a7deBN$^5g!5nr{r=T2tNF!nKWoY4}oN?%Qy=}YDWe&bWpKZ zDBp$ZV6G6gM%a0! zrEIqeZ|D-QGFRghoV!U|1YQQq$0AU38^up|Cu6Pa)_3D^VsUa^GVxgLrG?e~ux6Bb zv)E$8)`%|q%Ys~iR-`>RMdqDpW3WcNfi>a{b&Y6y>-TN@O7QoMRgSim)5ZrGY8Oe3 zSJ0D8YHVAXGmi1pk06f9mf!R?5-)hZHWIdqu#p_W>-9Pka7?V9)2<4xB5W)atHZ~_ zlK->8ATSMsxi@4Ek_|lv=b$Wp&+mC#F$a>PRh)Kb$Q*dD;BxH>*53i?<@)z61d95Q zKJQf56uhMOcy;X>WqoJ%IIA>sluevDj;$x}C406Lop`rPC7b-`(bD6o_BAJg3jO~; zSOehFE#*Q2fh!tieW$cPViGd{R1;x~HaZwFmg56fq&1*(eMQQD+PES~o_2jvQpMy> z`G%;A(lPgFVsd+&ji1iObN*nq(e+PUm)vT$J&j9SJ;)t)p2m+6xQGRX){=CrCCVbk zlrz~{!TIs6KZYMC{X^%+M*Vmv2q-~*ETL)?e$4gbOJ0w{j=$f|`c%bfiZZ4>Uw92l z02MfI5^-LpuKM2vfy3WskH&fBiQkjFBYL-rC7pOgs2wAEz*xb1LGN3{lGX^`+eEy# zNdhwf?=|1Yd2gGTyFFl4)9bC399!%Mq5ctzgTLqwa5*~Bz6k6V=aKGlTe$&TvWnVGQ>K+@^e##BWF% zwWlNbtkY8V66dqU8lTmL?XNHb@Y$R{A{O*5KuDgdx;&{&7AGSBZ1lP|`)k5#3d3Wn zxxHSH$(xq*rOn`xq$}fH0w2hhE1-IZbL+5%n!u~nhP(@SBb&67O{kTR_%3%J!EEtQQ-;vrqic)EgokP7lY%#zQ=5PFfOPMdm4ie zco$RU+QrjDD#O&c9(oO#8qt~OE<^ns)Rz{o2&w*&Y$DbP%2WezV0=6-Hxx6jbGgnfMlL74 z8_DOkM6(6ly+-A8=+hUp1#oobwgArOw*AR$qbq(e~j}F_!M_k^r+n9vuNDISIe>w2ieC8 z#y%+L3pcMm6l5P1KhzDTP^^sRbm0iO{-YaCVJ|i5~-SR z8#LcF6e5Q0iZrQ}starWg5Piil{1I?S}f?u-r`Ls?HCMALt+0O_Dr&vD(t)>8FtCk zRa1$<;6PlbrMwRIOh-qa^4xB1=z)}H@c>%w&?KxAknR~COW1(uw~Od4@CXwmQxUt9 z3gxBt(o|5o?{JE+;t)z9POV!Caq1fkN1h%gP60|?G=9W!t)8iqD}<>R@T9P7W`;$C zxY9DMISqw9#6aGYCtlTCO9O%}c^3+`Gp9zh@}WHOPD9s}8i8|)dheyuOkYI({qn?D z4fUTe)E_3z#G$zuB|2(^WX1X1hsmBMA0%4;3=*l>UQ;`S@DA8J(ivYNOmS6wEmYh< z6-sLSlp8B1bHO>g)vX5Ra>wQn=E8uB=X(_H(cUcIur(TUnXpP1q5$PswniFSGvbJh{uG`Gw~PVF4GxLun~8O%}*|QK8&9bHyOmAjLuDLcp{XWg!NDS zg!*q`+=TVd`G*q0KN65X{_zOsA7S!GM>GyHKC1lj1gb`pKgc{+sC?ec2+JiJ1(2=0 zQ&j*dMg!xYr|>dLcft2(rsCfHOe$$7NhBzhv=^|IvtM4JlDfwzmC*L-OQ2kzx7`#J zOK5o$s&Z>^a-vZzX)jb-8&ry~!zKcZXv*DEh*V--{Jc=xPsG{Tbm$_u##~EKENR!o zk`K@di6wiLMXWs%OZJ9{CCi%Bejt|ENG!2&vBc56tXdOGyd98BS{xlDnFLNj6yjb5Oc(kdPc}KKDI>?E}Ar;LQrxLaZX^AZCM^Wd4!{_3KunYawi`Rqx$`7?(dEQXHO9h_t5jgwRoCOUWKy#U{yn)HJ3p3@`JoQCsuj)WcK_yVdWgY<09aj0RR4cqt3r+e_hib zDM?BsRHO3m7F3PGzq=Xx9#bEMeSgOLWPt4UFU0fU)KK97XX3ow;N2!aWd?FlltD!g z*~z+zxA~{h%}L9W7Vt#kU4edJ_{(sU`L1-piGfV}$#u#A5TuB}HrV~DB@f&ivFiin z5K+oYEE44?A$wirf6=A{L8}$UJ*lY6-T-ZEak5whOJk>4)W(c~*aC-Dunm^Lj(o1= z@W@X{BUmw>K?@`a!TJNE*f4wjf+@-ELX`kx)CR=64Wl2l50bONs%eo!*=-qjgsQ=1 zAN0^GiGxW5#0IRlHSjco9&nrm44AYT4pSmNEXjLZ;xLTL{?h!Z;~gCfF2XkTS;%^r zTkU5aDlr&b2^OktwS?Ae`Gh`yzmdU(=~&${xLbCa#@*Uu=~&=yh79+>XFdLNp6NHh zS(1S0oYevt$VjEqG#wrPgY_pH>z~ql{bk1bUoh4f-ae;~YkmxU?75fI2V;T3{mUN! zwMhDSFx0-nA|L&)p=wNf`LVlH`ruKLII#xqC;#Gos^X0g&y&3z3V&5Um%VYRZbYD% zRoA3@O`wKa$Y0zjd@td2NxM)BkaUu+08EiB_cN;aYB{G0IDS;Splre9kV*Dxawiei zuxxF3PvCMVjMHWb7Tq?!2iaNxPdiQne4)iABqsxI_}-|JK@-RTG;ozr1yhWGqX5{J zArcX!VwVn^;7+(Q6oW3V9Dv`ze-V=vbVo3u1mgp)&EW0a{1UTZWe?cA0djNJs+q^t=|31tXc70cZ^GQ;yTc7E)Pn7G|ryjg~t;sKbcSrSWda55aN&U`)`(+49z z#0EAXuwTl_`A6_0da${Y_AHawOu&u~Jum~dL>wmumm~_WEmlS{GRIzD-O2~4uG&D{ zINQgcGr+c#b)2aCYep~On<4O979D>|99T{x`Bzl`x#LkailBz{Fo0^ov!PIB?sJ29pDO=)3ClV2l&b-KsnsXV z%mQn&2^E_GJn4w&t?|_@@*Q5dFdxY(_y3tCt8Bx^^Gu_e_>2i+AYTvWq zRCLP(psUcWoL0fyz4lQ4cYb>uZiD&ZF;&z#$*YSxo7D|Y*hwlsqaLuii9PTRsi@B0 zupkBdi-8oes8wo^XO8O;i*}$9NIVd4I#vG?ghXSLK2O<~L0;$jo+sQ)+K`<7J~YXJ z%4DCXsD~o(*i1PMa!MzAjdSJnOT;4B@WrAn*mJeFFPJ7Z!}*W~ViFx2u`%zfH{%#_ zJP_C?r!QA4!;NMWDi1eQMn#KS@x3J2@vw=uN7(k7yBZ(`_LbeUsCUiDG#2V#yJ$?>7+2!ER&HFtIDhJl;7bAQ?iqz>(U6UJ{gaQchEu&bLDC!I6hTn9etLFdgm(5yo=ffMo?N z=QW?Vj#v(PuC@kQ&SliD>S5X%WI1DSoB2~{EN3gQTh*?%ko;)mH*n4XziEobZ>mH1 z4R^BO{AT3v1o+M0F&m-$2Jc|tH(((<4E&~s_|2wR{ARnDyV<~RsB&C>Q*GckTXcTo z0ed+{<2Tc+J*29^f(K@EWhk?WV|EapHZYsLa(rg9HX5_JYe53cMzcRXbr*b(a5dtp zQ9oPp8A;Ek?cw&K1mbTVUd`zlI~8r&U)z6Bca+Ma(sNa)zQi|_oVvVW*ifQ$bhMrH z!FH9N`F4`MnYNQ2;C-s}oQmg3-te>*D?|RFlP}Wez}XUh7_hcoVpheC-wHdIt-X)L zjfzG1;3PVqlkv@bk-xrJ`JQ(QspIToCGYQQlO%N%D^s+ekUG*BQPbX6Yv5ez-N0GE z1fg~cI%C4aQ1oKGAHC4>9?%&95ji&RTO2j`0@JLm;%j0DILg313OpzD5)a z?xquGU_SdW_>yoS)Oyo=J=Vpug({?c%eRp1Lec`J!Q>}9jyyIfo-~ZChjxWUUlmV& z81Lv@fEBY7@<{*=NZ2szgnJPaN@|Eh%!E+#?SkQ&^g$bFvV{vJhXbET*kNlHw!u2X z%`SJjIb%Rv#1`MnSbkwiX_tD))7R+B&2DDi5@3FbhjJk};# zs_6mGcIi#^fxYg9Qc-KgUiT^FBv6I?n^3aPV@EWf<(d@eaU+!I(;oK;FuGhw$We8P z*){3A9(S5+(vcoF_U*py@ti16PrCPzw;Oc;&|$u29NCQi@rHpx^qTZTqT8YkW5KZe zx068P-2(0gH#A68l4rA%u%Rm7%pxkFC+92wOxL&`1ObRtp6RkP3Gxu8Z6pO}K#8sM z*TL2o(`wn~RN9|3u#daMXzW8x+Y~FnXXYO``$z+mZ;Q3b#n{KycO&mCuDQ5exPFgo zGp=ZINwj;q=#j{m1Y{K&OPk@MF==Cb5#P0PE}xtk!Owa<|8j*coW#u^_><(DI;3)z zkn>%i<|AUPZhznw@Hx4t3xNj54<%HBMTHb;*ikhrcsI9#cd1tJ4|=hJTb;@>bgNsz zr?T!st>7nsuRth)3vraZp|G@AW81;CHHO0@F9IID?MFCzvk`DUA{W5QopA2>4|6vR|~hJTdtEB=pj< zB^*95r7q_q;_&hNfV!%vPhs&C34(lKL__VMAy+sJ&4eWY-lRd`bOJcoClK>+yIY(= z$7{wC>;R|>Fd&_hzVY=1PzmI4)@X@7IlMMSz$>0T5J%=JUoHOy;Whm6aCpHWxR;Me zrKdUJzzQbV8_y_7Wq9#(X+QOt0S>pZ4vsQMp=URb$$F8XgIsR4f8s-Y1*XF8>&A+o7#xU(fa4MYI__={oFx?Z$FY zeH}?R_QS%Rui}ePdq}7~Jo1NRSg1S8dT65=j=%GvfVIoymG1gFO!yBS^XvI2Yk4#B*P<_Zhw-z zlERps4vUIzsHS9(qzl*BKVOh5^`oftVvAUW$eeDMubO7UnRC^1Zz!OPN4@I-LT#u^Uf1@hszzc%} zPT!I1 zz2l3O_wQA)RwyqA2KausZb`~6B05yDzq@q7$S=7iv+M_=um!ikMBr@;{Gsf~SNQ1_ z%6=d!S+aK*BbJxTj*xUsw~0!YJim)R0z2fph*F49Os0jI#mX&Or*70F5?S)+UGx!H zWq;Q#tIj2Xxv-T|r;@h~o9RT{+hxo5gr~~$*D=x-Z)jrv#uZ=x@jNNF330ymL&(Sc z19*TuvmcR?Y&l6zf02^|+;kfjASnu)5Xsx6Vv_$uv`B=p0}toO=_g{EWJ|l0XT{cx zP&*kL_J~I7a`~RqXoRIBK-{(My+8nfZW$UWWh4NH5Y4 zVH5-BlBg8(#vI-HfGJuLbm7+>#(CaogL{dVKRSY5dXsl8i}b}Ou0H>h=#OV`eyvJD zs!!Vo3)zSmDeVswf#$FQ3HZTdCN~YIo|+i|VK@4J+b;^bPxe`LTS(`1xhINa=i`|oz9mz<|fIt&CNL{zqj){zgOUkRIF%DE0fdP z_>2k}o7lK|_x%{>Lb4~+bNRG6VR&y{c@g1V{mXDw0OyNRzM=~O?_!LvsIQr0DXo^)vDZqyCSM#{iOj{1$T@18ujrLEBE2i;Z1ULlptQH zz4C~>TTFx0i`XqZEZQ$3UF=fa%cH>XLXPpE2)JX<2zJD4PvN3A5U)-79tGa7%T!eE zYr^*^u$I2>nKX7K9mOH24gLqEB167YtgNM#7I<$C&^{?BWFF0jEX93>&9J6)WT&pU zQ8G^Ey4TU1UWTLT;}4;h3lptvF3-8X<%2B;-cD)SRM_8CRXD-4{xJH-97^(k>alku zA+g)P7q({3Sd<_hg|kZ93%vI|MVOW&=*F<$5~!i11PK2S>(a1_NralLzj}|)8Dgk- zov=v_c2Fa~q&-?F9pgCl>7JeMJ)NT%#}w~ixAyQyFH(0 zcp5XZ4omY*r@zcT4nzCLLdh{W{b8%yr_LG4M z7BzPcp~E56f;590>9C!m{dgXlH55oiC#lHFQ&2Je2x;tu8kLXELIsljB&8+nz;!6E z2ofaK)3Tm=Yp`&GC-FkGcOhe3veinqcO~OmgH~Hb#FTyE8-yLvQ{H7*-H(=nPQl4&WTOUN@7p-=LJ-L1XGa7R z$J?(8mtREr`M?tz@^dU-kt{!*q$7rISb02PQ_qGq7!xQ0^uuNJQ!kVN4S{~ZK4#h( zeqN0S|JM62BK%K3t^xm@d_^kw7lgw9T^2Tm+UfBXh9@zB0{=N|;2wqlm1S zR0aPS@rqjZ86Jxp&)#p+3eDvKiw`^&3V#-wJC?7A!{4_JA_-w|+yyi8Ql^~;Trl;# z?-!XFAbn8R0dWBxRIA1be>EE!d!q$4(UMaT?cF#nIT;;XoZdR+GrOgF8eEY^!|H5L z?bod8O-vJ8;}#Vlvoia+MBDdj7Y`A2168>&KHZ2Q`LjH|HC6>L1cY@^q#&*8l`VR&cWqYvIa(obUA z&o$tk%vU7Cdk#C_ga-3Ez0aow4yjO6V#EILkE&q*yQQ4Q5$dUf#%(%%U$k{__-~JZ zzYhE6uVJZ^TjunHee*LZ9LTV5KF8-|K<+{N=AQg-)xKH1F(4%`ynXZR*Z|3WTlUR9 z-}Jrs_RSYX75m(MH)9{!DiyHSe2>&^7T2n2tr?Ze)!Rg@n*n}mIUjz?b8&v^A^YZI zn`C}c+c$IhoQ$6mwQnX>%2fMp+BY9rA7GX9v~M1n{r`e}(|%Uw5#9F9UDrhN@ddPR zmQ|_v<+_DxehJz)WsZqv-#m4T%rUyHo6XIh&M_{}s>~bumiMK@xu;Z_G3(6-nj$Wmg1$$I}nX z?ou{Os8G@Sv-XI-@{0{J>#O5=^7)El>MK8GW_TR2$WjwqU&+E8imrI-PDVgFV|5bL zS3I5RLHiKw$1oA$=rOtxCJwQ!;;aEK38Cb;P|``>%T9U=i&sjmYzp#zGy`UxBjQQH zeay0-uhCJZBB{0Jq3DYT6Gnc7@vy7ORY~QTh>VnXlTvg7MImFnC5-TqkJ8 zL(j#n+}|A%58c7yp$~gP_b(O?E%734y$m)%=8*GUf>*NNZ7}z{Ssv{MikR=sN4e9o`wgFxr_J){r}Qbk z^nJiSwT^_9(U$$OWj%S*Wj~wmemD#(&SuQUXO~r+8-ZuI0O<)fyBA>bqY}BkpR)m8 z*pOr>pHOk`S9r!v^aSN(8%V7TWXwvYyC&kJduSYX3q8rD5&cCKXD9bhVeY{j@x0o; zpPu}aD$Y*nZ!we)t2j3q&ls1USRpIK+zR#%Q6a~76faqdPu;|_X~C&bVBIeF8m zP)ONTAZ55}Y6&S;^&2SVRbPdq-onAf*oJx9|yKf{<8N=E|Qql?fAUaP+m9j!Eo) zVe;2Jx~@PadY#3Pys*Y21K}iuoO6o^a+T155&_@h6D;KiED28iyHJ{WzO)q7(D9M0yjy%F3VA_A51?V`I$FYk)Lg`T5vt4f&bN=al7V zC&f3Eu=oaZFutJ~SFz2CY2q^EHnx)otQDezR=5~7laQql z246BB!o}#nfl)3-kKt9t*`OHx1n&c4bVg8&jtmi_SdJ`7DMklbBACM9qZIv$vrM4g z5F$|N_Ml8~(+eh32{4LG9TFx}*@RdFiPg&)ok6UAU-5t!i*I?KV{(-{!9(OK z`7LF++9U^z^roDWeSXsclB~!9MhOFwuG<5V9AAJkk-8=<+CfQcsklkB?|>-FJ`H8( zG}1Dp!T~&xW4NrkKoXj>-?gkuhTI?th>`>^XP;Y?jEjzvC;4 zAZ#T;Xx|M%+>qy8@^4uXS`p7gksEm44gH*CAXQ+m@k0vkAnv4oJIx3IXmfa5`-KQ@ zW95+tiWQ;lo|OXU-ge~nB1snETvs8vseB&_;Q6i~i5A75=|-E9=N?u`$OXlr60$8| z35YKtFP+FGBoar;+oDNGForsGgGmG~50*v9gLvnK948kB$Zq`h&kJ`yq;X!jg0F}n z<(NNc-=z2rB=oah-~-G7EXF-Aq+kx^yl|+9VWwx!3kWKBDq;9H6kbI5fBv8b{I~HH z#f1MPMg55je-GwR;D0k4Td!?D!Sfp6Uz;%ea|-mqzenPi?tVZ6{#Wo7$?$iD$BRb> zG));m%%Cfv>C{RUGWO;t!VK{Onl#UM-h}b7JMSXm;{&$_J|5#M(vOcj8FT2uhYJ%b z%yAW)NH24o7e1`J!_V89aq^Ec9s2OmBmTx|Wg7TM<|~r%u?Bjigv}kD$oDe1BX)^`J%f{;qLh#c-_!+8&AC?RTeUR{h6tGs57QwrZ z@ooTWX5nOtcO7^~iDA+7FO$=I8CIe&Qb+Cu!VeKrJr`^oKMNx86OVt6&AN#A>AgH0 zKX7dx2S#gm05oy0EAHz>492KomvXa|~ zWjOqIgu%a}GabjnI3n%Ow>Hf z7;Fy)-)1~e^$C=YN4@POtfM1^WLCD~sLT?esrGUKr0MOK6K7JrHrnlAX}S$5K0qAG z|Dh!3T-L9(E!%D?pDaG|I(=IRG(?S>etyszu=<;Meco@M; zGJL2|3bx=I`HEzEp)CdSgk(td!-!?P+!Y`Zl;Bm%l)o^U(p^5l>HTJrd=JXcvE~R8 zJcCSjuoNjpo~*+)lm~wkrtXgHy7D37Ds&du_j(7(gRQS0!xK#E{?9B2vL%TwB0pwo zVCa^7SjKKjc0kyyW_bfBUI%hK7QVs>VR9g-Lk=mNqPTD+?w46cLu5lda*~qF@bu5sB_clDbGM= z=`r|vorw8IV-3Xg!(lAt9?Q!wc6bXBB8!-RS5zLb0wppH^ux@ zU3=!1A|iqt80Gxjonp~(u?tm#x+L=uDx4@8B@;f*ZV_@%TGs8w%dFbU?v*!CXUn4F z(!4Du@olk>&=0LS#X3~)>4L9`Dl0=XA8qfV9^ulsLnz%-Z_I8iZKd%3TudZ3o_2SM zs5X^*T+H=m*O51hIYf|i+GeRtW~SBSv>@DtGeEjaxR%mrv69BTlFDgg|uc=bX8_ebp>Cc!r=5hCJaEHRgTi678 z)pQhg)l(3K%X3G<@ZWmlMTCF#PeO$`kALPXlEHd^_+g3=f`kGsgp6m21-cM25i=_Y zF|ZjgEJ8Rw9*n?;j`-Z9NeW8T{V$(@LK{s%4?8I>#jRTPyq^K=oZcySg+iTepbfSBSV=iAyhGkd5e?Z!%6XgkN!{O# zPH*;|@&~oqUDyT6Tm2}A`@O(Luuv=M>6Qa-n_MZfMXvvLmMTRyk^FBWHyKJ5G(nEH zp{0qp@q4OpU--%>6PgOj!r$M5{9|6=5k=f6rC%;6i>kB~K+((!=5tS0prY*F@6ZVV zn{u#==0+;$2r*yQkC9`$?^T+C6>oL7F;U-&+;7P?0v&jf#f7B5G)$`07m!HeBR8ui z`<)dNQHB6_q1Sc*RZxLh3PHFkw*`rUR94_D)D7BL+&HmZE7r4Hr5uQTWMBhl5dC>n@KI?w z60^JGWeZgN(UDEG5s^w74Zo zf3O>IZ-o1u(%*Ri)4=&MzbNV6C@|2>Cxyy`+kF292Y|QW(?)@T{(<&fJ}RXQHPj{c zb7jvouI|4detzV;cKE0#gUj=9vVl~m%Ws!C0}5FiwToauL&e@c0aj{)`2fnMQS9=Y zi@hgG0vu*J0Hy%j+-@A*##E(!oMm9>OL>F-JAEb_+EX*}4*IF0NMS>xy$Mqj2@@a4 z!8~iPlpW5sEQeCA=nMr0PURIt0>4I89)LouDvzxE7b;t@>dnmoRjY+mEl?vWCYs=) zZl#P&J8Mb4JG%)d=Rld|qNbF00T{9Hag$(eoNR>3(k=5qH&~!Ie(>lB;b8HsE!;!+Yf*nTrWAtR2@)7#x;Rj4$Lij4o+G zgEk*TZ1j?ah|swVKvwpLj`3>x2M?)&biPlR6w#eaGZy{X;hYCZ4`<(s5~D+FRa9}N zQt|zxDS{s;YBCtohn5G&7ygDYO0{mOURJ|(oEb18HniyRsy*Ug_?%O+3^=)dz&5@j zc|V^AHj&T>$?5%rjS!`(2RMn0Ei3~qmd(wC`hS>4LC#HVc)go<45MeraY(kO9FKs1 z-1>h%)(8Kd@qf;hC6zi}_zJ!v8U7D2_=nX03snAFa!FwSll?u@6R-UDk2xyTZ2uAC z8=cVsF&uEAs8R7p+MZDRg{O0RkU8)xz$~FGg6LY}lIO=MSlZ6IOmJf~6_?hjVhzWw z{9uh2N*@Wd0EdFraa$-Fn1b~TpOT^BWgi8b1{JKA5$kMVx&>^5G@ewn102$o9^{ah zVd}6{QqY}ck9|i~?@hUXuDUg8Q_;?CJyQ-$8h`GDb!Gt0hi*bV7CrrcHuU5E~ zqIra38`LIYS{kBu=`Hnvb}2B z^i8=(t8TqzQ_;s&#WQf}ld5SmkJ`5$9dXqD?9utC67V9!>vrJvsQu-m^V5#ncORV( zi~{SU7}l>oYHv6?f6P&P^U?X^Y40zdj7?RTmh(&u^giPBX5yzQ=>7cKAbOQD5;A@_ zYvK3hA!__S5(U4T75pxaz;8Tz!Lcz4X21RYt#?r<-r0HeAYYLzUt`pRoHH!Q&T*15 zo-b5k;Z8Qe1>WH}e{D_}{tK_Ui16Q7paK7>d`0o$KS6&2^>9q2aKWcPeSm?7~rfb?S$r9uAu5@T17Nir|GEOdNe(g$ATsgAu%O8wPNiSCa3q*tt!0i9UbHoWw(f4iaTAOVN*6RbAB;Z zhwFRs>T~S=zCQf)$a(04*&671jIT&W&+>5eEC6mN&PUU7HSm$lS0v*@M||k7*}+v; zJmTMGsgUsWs33m?BG{v|M~vf;f&`g2=!xUwwuJGqb)-IgTxj{l#8>r94SbaH70LK0 z4d;(L!=zVeZ6P;1!$Nq`kuf%dT#v~W2KnZDiQp!N=nCM5<6~{Y_%O1C7{z$@n;yZ( z$Qc^=`0TrkLe38#mCPEa3m<>DMTL+1*ra*|mTr7(kHE*6*yl+y7A((HSVUbfa{nYVUg0w$@%T3B%eF@(kM`BAyq^!9GVL6hYj8j)JkM+0R6Kl;|#8f6-d~G zr@eWTZ7TYqRux{GN@<6=t^QA`N^))XJ8)pTn^4s5DmaVE+kD7DhrRYZ>mx6mrlO*e zS2C^+3%CmUEp}*~VZA1PhK(0})gEH7<^0}qKJ+yZ$xw)cAeLAA`*v#57Z0Ebqpyv) zRmeO@BVpkE>;f(Vj zs>f3~Q6XL?W=NkxRGgl=BIxPr`0}c5ghEg4=+4DWo0`<*VbV%fKa~gCB85GYoJfjv zFoH_T2_Yz|pX&7Peodg&P>1S*mYABe1&F{aH&h z`i#1ZSq{{aEbD@66aBXWM8^x-GXk_D`>z!@8l+nxaSms{TlyO=+g<_Rvb4!&*6*)- z45lNo}K1`?~?LIR2mGK_+?s^-(h);907ls-mS0!_~AT zQj4{(;l}Oua<@{wv}m`Mh_V|wHNmY^(m@kP>E208mZcP@r;M8L^OK(a?=pp+)bi@zyh4khP~Df2)6OX&Yh#>|J@i$YOED>GG7rR zwPU`=Kn@^F-pZbJs7K|?-q_u;>&vMMG(rUo{v||OL{Cax=wiyHm5NO8rPU%dY&bJD zVmGaY&W48a=rhj_BvETP(=PM-Nh)04J4_3g(PPD9ZY+UANyK?^S;F{RI8?zOwDWJ- zzr1l`IQ|fEG?lN2pdaRhJ)L%0MzxFTONPnOI-7w1*JD9kb9 zX}vH98Bp_3M_rg>CSm$P)NQm0{jalCIJ%LoED)d+5PWh^NraBTn2O0SJtFUluMa_EHuF~v;wzH*B{Kc_3JW1lmwD^- z1Qilq`A#B?63@KF;q6Tr-VL^k2=C9wYruOOUr|(eAJ(64z7gXqf@uaDSFedgAH1!5 z!}Y^>^j&y~K6v+tef@#!G~hj!uSkY>uzvC%7@Xz(Achm%)imv zft80Xk5WWH#aDeM;@tD|KjO7hTyFH7OR@ZX3*Mj^g5{Aayx26wc0-bTo;byn-LmH9 ziFEs#8^v49o--+HMtRO8t-5mbLG+mzeMrhNC3(7Luj%FKN-CdN(+l5q2^-hq>5h6= zBYR;)FNI#gw<+@5^|kIn;w@Isnb~WaXvBId$QbxeYUp>8L*Js_8Ac4q$$*NncD2ob zCEsj)dM`pekknBuc8NC|rCHW)EPM6Hnj-u=?Hm2>yI+Y1>%1dU4oWtYWS%Of;^ddo zDBNrkW}D~NSH9skn&DJ!W2KMs^9d9)^@60 z|86&KjR+uxHHX)~8z&Q~T)&mqzvFW`*zQed!?S}IQfqTXNPpeUw_t4*W3sQFtH&dT@-QeF@$+)5cZt@K_jX%*2;gO1(k zihVmpe0n#Z8O#qlEo23J8lPmJW#2;^s}xvDq#S5Fc7%3P)gcN+!T}qeLNsgo?_}B= zcu4?SihD6Drq&OhLowfoGG2(;Jd9~j4J~DgdGtY#H-+M#8xZ_CLK=rWm9~^KVo8fQ zZWoT;!nju{=CiyBCm#PtNeJp>jnYQbkHNBi^V!*_4XQTcq=V6?{s~b{H8@@`%u=!L zNDE_K`CJ~XhbkY5qSZtF?~`0PprS!>%Bm?e$mwrE1pUQ}7qksfh>w!#&bp%{=V~R> z@m^_4{{Ti`Vag6VxtO(Dr&0faV()chLrD{+LBtpLXDj0Jlc{+Veia~1o_x6u6a&)c zq?vVACQX!xsCVD(O+i+SI2f_N;CAW{KHG$Le4-OYs5+>DAI`XW#oiw#$#fLkO;c_v z_C9_sA(Z{LVy}~}4S-^rCpVQuccGyz=Mki*39KlkrCR1c7G)N3BI5X~iooBfIPtcH zW{yARuld&dKa2_8|CniaEMJj~KeF)$0}VO;JcPgUuMd!57Ro!Ao!@(wu{Ldw)YQ?P zae#IYd`bpZB=NVyDm+sxtZWi&6{MX13)n9EJJast_}LC$qvFUX`Z12wi9l?o(V9Ml zBaq{7M+E-j^@HBpSB1ZC`#f9y!%+P3{3pI5jz7O@M>U_;rfpg*JzW;HD|xG+Ej67{csfFy~HK#S_`=Z zC5gn7@B6q3##Axc)75{CHT%#iGbNr>e8q0I$qKNCz5&(A_ceQNnMm)U?~qrE=}Gh+ z##X7U5A~nL8)!;v`)4CC8oqy0_7-!OnzP?hlji=l_y9IyMw%jC zt4Omkgfs`pq`85<;lEm%)d!W4kxB?R)fCVbJV_n2Ig=Nj;#*Lk;B=6b;>h~DMyX`Y zciE58t1!Vx5N*E=wO$6|jT{N%J2T}X;(OXi4SXl_6!Y&wZQs>E_a%HaGP*m#Wng8e_v_2qy_&U$YH^d(`w;Hn`<3)W8_wRacXv1nus`KF zyNl9!;xI2AWT||VePerYOjM&dSZa29p9oy4rR}FfGQP&EjO0?)BE`Ry52d>(4W}n; zHdd4yqUi$VhI~|vC`QQ;oPif)swm=0R40#={X?-pII)gJh|BsI?qszL;PU>3^Pz{! zyU&q;4aU2CTl6sfN)38Q;j5A9fhv%YXfJ`|f@;V7V?=-~!fMC7P5`Xzrj++P1NR__ zy`A!R+rblZdM`@LY*RjtC@q8H=s~2flPPu!^7;ixrJp%;@!ET3nkt0M&-k zp(QVWDH{ClfXM*-5^VOu?>FOq6Ye)IexVQU&s%E9_dWr`7k(U!7>cEZzX%!scrczWB`dXt{nuCgCs1n{_Ag{TZ2kQAI=qKjnGjpZuVwHFjvrWm zaC|A|_-y@w@k?Wkj}+@nvjTssvi={$96x0JgW``LSbuQ*zoP38p;#L}A?x4CuoVs; zE?=4=TYQ7MlN*N`#4;wzG6%s;t|aeAvR4G0$$TMDapw;wkl zKM;4YZ<(YgNC;rhF*ypH-gBRlI>?=?RIDzrVTGr&4p=+hz<(Z5@9PZb$T}h#|vnPD*~4S8saw?7h#d18sd+$-XIMz zw+)qLGQ>I*iaENz7tMEcp4B8i+p7aFg?Uyh94!71q39v7Y-)1W5dwq%x@dL-H+09$ zVJfQm{6A_=R&u&x=?GC{5d(}I+%IYW}E%_mAh;z8t!L1n+l5+<#yA{hU50 zN6@D=K7Cf4ROpjjGG8X*lF?_9(5`RDY4kT~p)!Nf=pB4XGL2ICm2evM;~LQ@3tXEI z&2{v50;C$YvuwnjR7n-8X>a8oe=oA(8N@g1J~evksF0Bv5!K3p#7SPfj_fzfWm?M_ zZ#v3}Oq@5~Dm>fEOYkRJvm6+K%7=J|%7@c!fhFV@P^W0xxfXsvl1)zfd?v;@#^m%q z1y)cb*zI3x(qi;&MStx>B1uj!i^J%}(|L6qVODrTMJzG=2U^O8zWv3jxxa9Ev~qAL zv9N%~Yx$C7VxbDS;W<=mh}8J5L*e#hWU>aTfL!u789}7fQ*Gp7N9{-nu^mN?fd(pD zmD?^%M@8v76J0Gzj>@eyy|IxxUkVZ8mc%-cAXzGao~2|JapLD4C& zzF8SUX8m9RWvkj0F@re2Eu8adr;$0Ic%5;+yx&pKyrue9s>o!{hh>DHO^KL@+hgdE zf4D?NE%*J8Cb!4hd7_?9+0GMkKFcsE=TV1uC;b2%F_qS%k>|N(>igGe-p}PnO&C4K zmmju&E5!J%>Ze?O{CJRt{P^NuY)LXfk{vr-emoSEAEdQ5$XaXD;V`Wgq63YjtRy;G z6B8ZJfjkw_v4AazE3Z04M-1&XXsF=$>WIMC`1t;^J3AGWarwbBY)*i4qnR)je;H4( zp>!z?t0m8e*v1(*R7jNYIT=pceGh~P30|J@C%8uYe-R=#lcCzKQK}I3!6z(-tHsm3 z06qqmz_kEqrCpwS!clf0>M8c}KJY$sc8Lv$`=QXF2HZqux_!u6$UcKC!853K2!uBS z;Z%AJsevau3Fj=*ol*l$l}9WaH__Ns6}6omO*i1JWIKvS!|3<0lSszREGURIf^5!y zbH!wrI2bJ{jMS^qN}(c-RMBY_9DPNnjrvwN(*(yL(U~qd2BT==p`7GY10;^;PzF^_ ztWEdtO8JQL2tO#bB^9+^RStI<+-e=@VCF+@FdSs?68dkNKZSCycv@NvB^bxq5f&Bo zefCeaC<+7@%g(cQY0>sD8!B_2{ia26o+Xm+W!e{do(hy?zSiEA^*Tf-l#$SSR^-2Z z*Qd~9FyBiA(j%xbN-+3*+#4ATj&dg*%rri5K!}jw!Qjn&QcE?Nv3&zDf@eQDa1HMM z2gnObSE*+t6b&4HEY+w%Sy{WL{{g7q>@(V_kSl@M@QDU|4Fw8`ESu@I6y43p=1LZilT(!vy9Oh3OEQywVmUBtMyg=;km2<21<2?k ziba9IY*YC&xE)&W1QTHpHl)f^nh~zb|nn=WQqBEFK z0*PFW(xMtIGFkPu5{6zLE0K$q8X95gLNi$PmKFY<%eOHR^rRympyKl&J*hf%%mnHp zC~5-NVZ-EG25yZYDEtIQP6zvikQ2oNIKAb3P9`-vd@Ud+dCyVeA@|`L5fgG#v&&iW zS>_^Tv6JFk&{0r)(`qQc6#XGm*#udKT@wp4EL&0dbxL$#+UCB~^nCKk^3@ZC4&O5 zGS=?ae-8=K8t7{2Vxyr z#};_sHOU0e17Jvg7I+`wlgjmD-zNFV0$?CN_cQs4DzVh>87vcCRhBg{$BrhNT-npr zRb^R9PWe8U=RxTB!wbCAQz98b{0bdMu^&oi*{);-Ygi84W*q$yDC6m{`3xdCU8P!Jrgcd3dfcNh{yNe7(wQrBP%}# zC9?9dErIf}tyDf1MA^j4$F^antiwXl?(CKoqr|saBjy^hygB77svW!PRg*BGaS8$) zpuZnP9PvJ}q}Km#5|y@XLpiXc3vMA-|`Rv(LYPILMN4R=Lt~q z*Qozs3HWcfnQ$yHu7|ASLzZD9Z$%z0V)igu)+w>v zCb*kXW7?X1!XjOQYmIi=_F4Fxl)D2bj5gTLDeu56+WyQA8{ODW*|9>t6-u6H+=;Ua zk`)U023wQ2v|B2wm2ZdbVGIQ{d&=8WEbAoV^u%*9*! z(wEV-tz+#g)Exx#(D^Cr4HWuL?PYnQ&f`n+e46Zg1{d+;EY(xB28Iick6k?jf@`W- zeAk1b@gI8ro}BVt))CjlWP|02dXGQJ^LL|Ud))N{WZ#@_yR_ERan4hloYLa?G%4j> zwjfAt2)@2l2HaBZF!g(ruMSOAN}ATzumzTl+QO!vBS*<}C9AZzZ&FvS6Z*X`|X!^55?kDP!;~^a0 zgPQkq`Q8#HPjtmw)g9sT1o|xbFQTTDXo+}zDJ7=pDJ93cIhF8?4d!Ai_Wp{mh|$L} zUoW6MJf-9dpogM;OU&XW0t>G~d<(d-k{r=4@g_8Us{9x)*B;=Md%0_(ktIvvzS~jzLc+s6N`5K12ZjqKm3Z2 zpez1eQ$PK8sbIf_O`sR{Iu9Tm{!b+g|E=#`MEF;q)_{L0Ur~Jc@Ad13|7=X8(EdO+ zL65+{HevYN4(o%zQR6JAkN%A@=>L=k{7<~ArvJI&^5+(IsQlv*vZ8=Vi2q|p0UZ91 z3ieO1!S%x47(EUR+IX;er4qm4O&I=LTlB%dXXO7$4fvPx73q`z?vDr$P(*dee@v$E zKz}xgUOecQ|JMBp>p$=4gMZJ+|1UM*f8uR5{cGmma{Y78hXi|F`sdpxRIuN|CeRD} zgyjGDgyFySuNM*i)n919zm%^izWg8BrW^jVF_A+11K9*U0{;bJ@Yi)-AK0u91wA5y z#vKnw0labl^OlMQSjoS&S6;%194^ccOR3!mLZEhs5Eg&x-jc;6Yuqm`ZlM}209(qt2!OlkrS(y+I`lBxBJ{DxBJZ9 zfx@;vq^*U!ZCfMVwyJoS81~a^z>$i0Jkdzx7|tNF+ZORIFK7ia?D}KSZQBv8o*uvw zR^NEX`S8o9hd950=7Rk`E3~*JO25w{+#6A@Dd4X~KTf~QFuY(4`D=^4?R-+%UrW7k zJqP4?m;C{M?f%6;w4gruAzWAs?%@^e5MRBN*D4%FuK%e}B+RKY?>F5H=_mj2={)lH!Y^YZ@ z6KFW!a(&j%IStDolkK_N_==cFJr>KJ`+J5nUHbHDOr#)Y3Y(xu^f|+UM9(uh2QMQ0 z@BVLDa;fd>TKk4hN+4Ym5<-y`;v&!HTXi&Rj< ze;Z$s4F4$h6zM&ZSGw#e>oAEz`*t?CUfNICp5jOt{y7Kq!M{h&^LPJU1O8X=6~(9j zIe8SbpiBOo`%Hy{y8S&y{|_b%|AyBtBK$x9R0ICo_=4 zD~b>Qp|f?ve>Elw(m$J^N9g}}!tl@8s}KG*4cmr3e}*l(KjZGB8t}h@uSkZ!W`92k zHMS5aO0i~0TYYyH;Q`TC@qHVoU@KAZu(u`=KCtQcZ3OdE(`pmdM|W52!$*(wll$O^ z20k9+E7FgTFJ|h-hYJ%b__&Hqq?a#r^pInTf${^_PbWv`Jg(&J;cb<3&I7mQI1hhu-8S^~##sbk{%=hkk zW-#4}AgO2uD1=l0*M};+E&mJSBb=?VB!q?XL>k!ug__MxS_Y`Gm_}sPj`igYaQrQf zz+b%c^}^i>@?sVT(8~AbvAgl=iCDEz%j*?xY|}vPRK6n4Pd-9p5VhP`zZTaxYF*jy ztx9!yzA~<+)P6#)|0jX2O7*K#DYlb+0`r!^e+zQ;9C;`{SUZ7`4S^Wn$@q^CREXTZ ziy`vD7o$`By_+NO7pI>Us;N`T-19p*7AfTi8DN|N$7=;#M=>Fqac`sv5e81APNJ~( z$A6O%r8Xfx%_n7GZ1BCJG9kix+(1S|-*0gdOuQ?J`l(Q$VI>1S=d%W8kA4`pY=ZH8 zPo0qJvg|={@4G@#ElL2b{|82}?6JQu+-%%r{~KioHM=}#Oyxr@dulCv-n+5|jn#z0 z{nmHAlpIvv-b=Nn8{_b%@ad>x!O}j(-o@jC zLWl$B4#-e3w{{bn$e@dXyD!=rq&B7!HM`JBpf9>8;4M&x>TLA!^>y?f-!Y)=Kvz;( zA5T|`rE(}Pga9yI4ZyAYt8l;aqmD$v@CpvYOI0v@axK1-@4e}lBnz$np(-$LppP8h zQS2jgEJ!X;CRGp@3zD8gw?UVAn$I{rI3v5hmt7~R93^6`ys6lm)=JDQmtH^eCoQS` zT`V5%xdttf{HrIpNTwjxrf4=#=vWODRb3>#oJol|6`e0)$ff5N*MzZlMdv8sQMJ2P zzJMDe5@Mete~o|^1F!AF3$gNLJUYDp^xuF!l)&05QzS~Kt@N;~jK1itEWJf^IME0Uudl0WGI zGbItYN6`&sSJcoRKyX=Ot+^roycdY`FF7XXpm(DYcMlSb(MSXZS_%Wmu|F zXr>O=SK(!yOGuF_n~(~CN}Ce>iahZN`gz!u-W*5Vudabc+1`{d*5=B-#3G@sH^zGt zA>Z^paK1QCGWdIo&$5LGBO0gCZ#SUe&C&J!X^NxsO?cJ9URjY*=4ni0ohVxTFUQhd zPPC}DyuZAx<`NXxQ~=r!bNQ-RQbRkgt9@jTE`vydfGR_#R~=x%_(ALh6Lf?zfu}QG zepkc)Q7D}|lcN;B(;(~#`t%c9bp7P>cS7hK^|h`+{Y$}zQNB-^kkh+e+3!3skg>(}7^>_? zG*sC&0p183YE-nL%55&sjfOSX)X;ttxrF1ms`ZnJ!Q3Y59k?{vpGpP(h=HC(cXG~X zoIl(@upHX5@Og>*gjTe&H@xFyIqYaVP4*UK11&vNb5pH z(28!+Oj%ZS_(DbZ6YTY0XgRYoZ;)~_368~i-b>J6g-aPr<+J$Ig^vfgvd@&6=esbP zJXV1?FVl9a9;W*NWvQ;ln^8vDB|4K`r#}+ky7aK;vk@c@K23o*wNxK|;K$vW(&UFz zASCbwr_ujCY1Sa4KmByQ!Ab=XB-;}tTG&VZB=h_H&1_irXB$t|rQBXN#PjLbo;u@v zmoVEXFQA5UH%BAxir5@q zqiW6KU()HZ(uzlick4@BUQnx8CHZ+0C^+IM8YTI85bot^s~Atc^QCq8S)4X2Bs`N4boAElO7L5*jfp+lz$E^NE+2s=rAQSf}_9^`W zx&fc#$t27hWAqP@KasDK3SZLUUuUWA?V7mB45FR5)$IO`XOf}JiY4M7qbU3qe`ZDF zTD(W;mICiz4#~@}mBtS zZf||{?A9g>@77;mM0lTmU4y=N@)bpe_f)rTc>e<9EAXDn#??#b`ry4iVR$cmK_9$( z#J{}}R-y?1-c-J#2zm160^RcD8jP#J`NXdhq3gutNlU`;KKZ;pc=w1r8B(tS@56jW zQR#bZsc!nNKB$8GLu}j&OW$1y!+ZU67ZKhs)oH-{F216u@V;WXZg@|__zIo(W#e90 zcxN08SIXn*C$?uVBD}9d!>R~*a^e}bq6m1K;U2ZZJz83#8{QwF6r2L@U$Sv8EWD>D z4DT0zsSn;gBEK6EDjWgtb$mq;@_Pn@vo3w`evGTYc`O@GFPsyT-^&t)_qeC^!MjJ~ zckyc)@E*ih6hYqs_y1kQp3pFEW?yc>RT5#jy$s~Yg$##a;- z-s|+kdn3kI=zInn_rk)vHeq-dKB*7hJ(9fjz$+T?9?MrG!#lKGz>^Hty3$22#n=k0 zKYk(++SZXSDxWXC3B&u?R(*|64vM18Rpa7vF~g3x-p; zvKryan%LJs375RW?Z03fh3f6few&7@ClmOS`Hj%fgG^;Qk0a}uu931 z+(&h4$p>a32`_=a-><%eZ zwS1MZiM#I-bCG3<3f==z!A>%7f$e)Qt;F&t3PM5ji}Mj1!95N(Z9`T*~pQP=pr$m$Zwy`+T>;Wy@=4VoZa7LR9w@LdG86 zrJ|)tKWDrvd%eVu1LkM~2W1aSi(U?My|F6Y-<0tP1!{2{we}`{7HV(uc(JMo`ighH z8}}$DF4iAD20v^0WA)iXW5mN2@6_PuL3~9rKhHt95jqJW{ME+Jcf7R0@R5Xj*|(1J z9#QI>QF8T{e^%jPkHqkx(M;UB7> z-OPASmwxsz##Z*ONo-8LvQ)o*)|N25bHs}X@4Nq`0q-mLiZtP!`bXKz9zU|NAI4VT z{r09r=v+U%4GoFvXRU%hc=w2WIsHcsc<naCfq?_0oCb@?})Q z@Gq>=2mdq;T|%FHPm7-K@W9I&@E^-pB*VXi$@g@~_cX|N8{6NZW;oElAXDDo|DK`$-)X>qEMHMv`ky;mzx>BM z3Jwle^c?*kPZ<8KYxTjuNBlXbU(|sAPQD@;{=xX3zP}+|QVg zKPT<=MD@*uYxKdpN93eM};cs)bkixY%5=D`-zRU-MeVNO$YCUguqpVtXUHK4kmB%RTd%Yb2 zy~5VlJMcuUHa?Rix`KnBDIYx*l0g*K9kN7Zns3aI-|sxHB8s-3F`|&ItN|Nq?9z!H z>O>b_76)JxD>`dIPs}-z)gY|Tq-;5tXJ2Luo=wH#zRWhfSds2R zB>sHy5%zIbv$wef@!Jix_z0PC;?~S2yebf%&1}W9Q{2s-k$PcvET-|ClIVrEB+r@e zJ^CpNttTJCK(s=!3DXe$ew|C0pX|!2#rQPP9k^5l8BoEh3A!%9n2DA=nZ}Abf~jQ8bf8mD zW~vN32JbwfFw^G!46P`GLl09A9b8^BvS5s!P7{rj=UwwJ<<}0OMl~+cmPvUsD7lKp zsnZEZ&|D9i48Z}AujBHp%Dka(d0+Z1l#v53%B;+Bl*L2oH%7|q!? zM=Z=V)7Thz40^s|coT+ai7)C7%o^j{;L6F#98X`)QNV#KlO%*6C2ybmnJN}nwq$Ci@rePJkdm>#EY*U9o-JHMcO9@_wx&(jeh`Z83m%StQm zipb}w%*0isc!^|z788nghMls%^KEG%!zv=Don79 zR+i9u?iV3~k4j`Zy?gnjJaxlI86SZhR!Y8M`R)G$O2$@+jGnc4CD{$|IkqE%?X?Un z+j8Ioq;>9koHUkTTBmz8vQu1*$fI$2y1U)USxD-9N9ecIEEO5@rJIZn@AA7?g^5Eq zS>PsZ7iLV0hmRgPPhYn+93Nog z6Zf+f$;xd7$Tl1$%gCo-w@nydo-B-)4;n9T2^=(B6VG+K`%)-_Fg~l+pNgVNE@7yi zYD(K5S0U>jwhX<@VF>>IrC_um0DE?_c~p6#n(JU*z)@ z$?$i}6$8lfK`MrSAsxlbtrJE-IE|oa7F4Uc|H%;HWE4hZA*hL@cx;o%5X`Tz#z#vz zYa9WB183jMv^RBDhbrrc=r#$@Q+BJRS}q7%ubg~2K3WpS$FU_Ue8f2K_J};{{b(pY z*#3QxuPC-W>i-MEfG&BoO;Q1U5gS}DD}_IzA+WO`pwo2s6t>r8plEuS9Pq{7nmY#k^{cLC+o^n~$~vq*)X zZ(BayErjBS$)_v$iek&B``A{kOFkuI5`{HhUziAMBrKnnB@F+DpXh_X)_(oJwugSc zQ3L+l_=;rs|0G;r%BRBwoE2o+hHbh*khkjiQ5iqOYziW7V6*7mDB@d4sou)?ugN~s z1YSnHm8T+5VN=^@8gN&Hede`RToo%@@aXV<|1JeH>NY=PwX8C7DW))^OmEy8US&)u z;iVz(-4F_TCYna_DP_?_mC?dWL%xV>f#NH0BQTqay&ZU%^?;%>W!JlJ5_1iLManfw z#YTx5m>V`FRVAYa3CiMJU++GFm~f$(`ZT4vglRS@H(e?o9C`;STyao}3M0R(RH1aq zot(GS0&NVY*0Q1y_+dr4dKy_#2xDYL!A=AntRt!prZ(tteXKSD$?@X53l}I@1@T4q zKlF$`@WA>|q%(Opmaj+#HM0y_Y{qsMS^9crYeVSnR|393TH{ zH9*6B637Qj82+tysNf$%AJBrozVnGG(hwS8y3^}I;m^(|JNb$f_?OG@FDQ`V|LaF| z!~aQ4pum3)8(8lK&xv3201_Sk)~0ZMEMC32!V(4kF`cto_A7nxk5Lczfr@bW!+tfE zuSgbpk3(QE^~)v>5sFNko__)t$d)MOnqW%o#rA#jkHbGI3|W7qtS?i+EU;YlW3PJE z^v5@{-WdNVebchF4w{=w=qn!|$3*q0Lz=a%RblU$d5n8>J5S+FiDLp*i?3#1Hk`bw zD_ow9PZ*!;Z&&acv%ay``BEP~jnVn(r8VLB#CiWNz9N~Q?g27UFPf>%P}e}p9WHE8 zL&h`2x-B)7jzkxQ{c8zdI*Pboi&+&WJ2{u3Nv9SKg)Z7DKa9zIuv)0`-L7x=+T=kyge?bKPV?XN={qd#pQ2ev~>@L0{8UK3x1Is+R z1?-P7qk{Xc+c@s^ZE!Jk$S~X!TXK9G9pB5)rtf5dJ{Ch-xeg0rL{GpF*<13Q+g-VdhM_|P(UWIE=)1{&| z7Pjj2e!@x`$x(ZV>vQAC1ARTW%_YE_Q1p>Ya3texJK__7vZ9ai9uZZ!*z~5;=bzzy z-`GvrCt{@v5)EvH7vSuyl6#zg3~z+%lkxT+V}U;W^$7ord>|Zu&_6!QXDgEV=N2H! z>3#H1y4mHul`2R-$;Q$P=>*tC-d{!~4DYRZ7ZKjoZVh;s@)d=`TfaN=Cm2(q?C-I$ zdJf)>2zbXkFJ(IP!CULRs&9WVMUPjUR;B^(WWFL9-t(9s>VWt1mul}N386{k(-%p~ zm>^uD^bMet@QxKK6#V8^`oVfppwD@r=u;0S4F4BrUqtvfmTJI%9bZud{AaK;j_f^7 z2>uH&jlu#~vf+CO{x2j9|IFNr2>)rzHQ=AjR}=yNuYOK4{(Ruyu}lU3-^}U}`e)}o zIkqu)zG#ZTM~=!!9j*S!Oa&$F%!J9q1-}a`YDBo;1TKTZ4AWmhljq%Vn7fl*g6iIwe2J}|nAMkz19h?y?)qSDspbAReN~lL0x~4b*}DO^c_JChRTPU#5OC8@n-ScV^|)M^db>n(!Kx)+dy-Ssv-c zYs;QuW0lj0r_?HEFCRtvzKUO_+(U8Emg-`J$vUCo6(b^*-Q2gzX~K8pRuOeeqpTb1|$}PMEKX2jCehCd~GNa{!(P;TiBRw&8gYo(JRE=C{9UQ-)qO z5tnHxP&$iK@f=tZ4NJq*urxdkOT*K!G`tnRw|oR}fJ&hoQVo`h6-M z{$x7i;V|3XC|a~=ZjT-oRgw zpN~iIb3FaIVVc6skonR55j}JMxhI^}p+9fqE0X2w0;XS3I461gTn7W@0L0?(Jr0GA zn1yv<>;udyOr`8`H?k@8?s2*dH~jpP_Gb9`MTb0{aF^yUg=`T1!Nc=KqdV)SNHnHsm=-7JGlWjV_1E;e(-an7YJ}9ELH! zndC5a{*vWzf6KY2Hv-xxgxvPvMsQQCjQ~!ZOYT+) zn!imwkB#6LqxeRU9>=58T93Xazx_DH`Y!(Zf0ANdfxrFu8`6U>ap_xRMR8cW+4W{JA(` z_-9VOi144bPy_zSd_@uPe~5We&g=a16BYb_b0cFJoh9KCg#YFU_{Y+SPqz!l zIsNZ4C?b*P`CoELmBR9!qq7zi_rWgCapDeP>4od zy|~CLmbVpq3+EHMd3T_A5j2cWF5ORv?kvZI)5! z5}VLiGvzIYy23+*JJ>D?55a1YXRazd)ECbK@Z8TO-U6h~I+RM7gefLECO4I+FqzBN zn;<3!jL?rsj=wSIgTE=`IsPE>)cxJlH1Wq{X2R@gRPi?=`xa&+@E`Q0d7(m$Iprtv zIc5AkNBArMnls+E%NgQ;opNBOO+>liTa!^Q;s=b&Zk5uJwERoUfjLHD7#>rFxki^| z{~TazE_kd@)r`J`nL~)rEl!44psb7}rOdWy9~`Zq2uvs+-ma3A&t6ABNf2QrmnjH~ zX+lxz^WGMLueA8`a?6huej|JZlOb&<>O)(3d$IQltXGkk|M*dCv^8m2zJ7P9g0}K@of4Dt+u8{H#nb0n$0^MA z?Vo2(-xkV>EZ$-#UlBv?F@I2>d-Fcs`rNNDuA*by#m4IyeQtZg@Lrgu58geZ&uuK$ zfcI3sA{pLXpZhnn+3V8hvM{Cs>r-PHx$8WvB(Bf3BnV1`!HWoD7;tb z)}QN(RPf%w#?njMiNHHvJSCSmT?yl3;h2kvkBx;I_?XI9B;#WybOdVD-pMe6(|i0A z&9xX+;eeCZ^b7}ZcxN<+>%;NvRVRO_58gduuNqRI0q?_nMKZjD@e-Rhs^oh@{`wvH zDg>-x!|P><1nedEW?HE>k69d0jJDbcheuJLa)Y(J&-^=ByXBJl0#{>_6}D+uYUdG4T>iyc82Jf%9r9tkX*d;TaCpB{nPw2JpPWo)oVqHOB0ne+lE?N(*i`GNyqV>?a2oQu2t0#rSAw!-wa72wV ze|i`^(i5E@-~bc=1oqpP;DInmF3;?8r@yG4;P7p{2=yR+~SdRG1QXpbEIHDAUvK+cbDVDMv zoKXsdEC*$l0wK$BQYr;PmJbk1t-^AvSZWiN+r-i|VL5yvrRlDUbKUUGxf-XWcX#_~ zAb8gDhr24i>Necrw&D74)Q++nIy}8IJSiFTOKz_RB!`DyA^4%-l(}L&tEPxwViNl? zh7*en7Zh~7$p77CY9RuPR7yY%imTQI^lG$ zNTK;F>;`%Q`)Ab>rSpH$;7bIjUSPTkzO+DsFD;DVOK>Il5?l$s1XqGDEe!AlWC345 z7TzZ{WYc8G0^lK#9mXJg4D{$p86`t@7$B><5?DQ_&qV1Xq4i_U5FmkHAeN?c3dzu> zkSn54NM;0uuq&XCS)h*z)YAx*Vk!{Rh(63A^xfc{KCe+B|QW@7a-Kprz8{${`rI1}P;1~4%bB47smfHNTi zW&i~<)A2kE&%^PY?ktv8WJnKX?Cs0wNSrxcm@!?PIZK!^3%59Mi$hvbC_PlD+^|ZR zu}T!z;&x#ZJzA>8^>}g#o9Ic}MZwh4EA+TG0}o&RR@z0iHKkYRaj!|fG>ToKN9C^V z>=Hf7cL8MS6-h9xbc3XuaJ_;(h7q<*A{@RZayZ9;uL*#?81Nmw*UEqRiUra`3j(kd z2};5ydKAS+*lT(OL^tCJ5Tz$+7sV4vuh66NMG7epHqoOf*0R_1h%Ywa316fqX;%|H zzCw=*kf$>s)1!il#q1J2DtCF=C3*}&MHgJPKm`H0f<3BG5oP}fsyBQ;wZ_=b!uHX8 z5I7W?6t2%$!}hEw^Xc9{p;lnu!loV6AxL)s6EWR^bO`7UOoteZ=eYYQ=+7t)EFcZf zDh{U|4EZ#k8;z>{9Q&%YFwy<|`CuRTddPpXk?BLRQ%^a%Z2NB^|EE4hk}{%K8! zclkv2HyAbJU0x0KH?W>)z7K&>Za>?l@;4yRuN?i;9-AgB;d1}9M(UrI%jaZDc#BWK z_hCO<`zlc+g}S&~d_N^tv_rz7aauA36H*qw!B>pSmTH)0_X*|AELzZnxG==TAZCz< zyOf%_{S7Hh5NC$$@irSN{}#^`+Ce`gHi!YrAmO z6MppwuKJgSETHNPE|r8_djBh2nh|m-8B_bO3%PU+3NQFGLoPi+mj;Gh>H~2AsKXjf zfQJXk;;}a;c@8B3xxU9Bwq3|DbN53)A-oXTMICOS6Cs-|bZdccIBr0o86pIwS;=^X zZ45>0aI0xF4{?uL7rCUV!23-O9oZN~7IQXHwJ$<;V-DYF#h&* zW-?=V*6XO@Nf|{{nJ>Eu2~{gm)GNgxEoy-@5OcpqA%(y9VymkMt5DqSX+X8+WIy7v zV_8SMxAqxqs5~Vs>a=Y5F45w`OoQiK){5TZA;Es!-?!0zJPYI@+Ko1MN=ae{kcD+dXwA+$7|ll;(}?ivVGNikN%SQa$BsmvGZLmzdY( z5-zdqNvgUDJMa|a)B6|V%cswI>?d!KmfNI<&7S%(p8GnIstVqNXDYR-pw+TximB?R z_wlZ8Rl(oz&RliV2h3|#(1syEE;oH7?@sQmqPg!YF>oSsIU-5Ku z=VEmHwkh~ck-u%J29!S>eHLrw_$}|uI_15;H}KmnEIMx4U=856oABEx*iRCEPjdX8 z6pM~?{H8_Vw;mIK63k4kB(va$g0Ik1mzw=9qChR{j^fkGBP-Wn zZ~)D7&~(qKaZ*kybkP~W=Ja!T1~#FJV#A&ebk2aLN_lWIaFCf!cR^#NJh&P3IW*N7 z&{(HKQ=NegeL6JN8Nl6iD-JKxgM%0bJ+^7jX z#OtX~8Vz@Pr={{Fp)wa@BTXtC06bzY2h~TG76pO(yJQ)arwEn7>yOIUIVywKSIXBT z_*I2Z(QaB>!?ri@D;42O0yPAO$O;Utuyuf^gZEhEd(=Elo0;J51W!KI6WdtiW{$v-CMa(*@rm29;A7)G~9w)c&A0k$TzpT*0{ zH!K@yzai9vt&Kzq22jB0dMW2ns`#PbB)ynP*ER!<7mye*8Z@rygQU_l>A}G=QH=K- zoXm;hG11+L^%GIF5m7WL{0&6{MDdP_D2TbWh+>OD&EG++{7k+cP84^_*Q4-v9D2Ai zFlr2X=Ip@6xvw z{ui5;yg_2dQ)i4K0gOvdF*yVw;7{fChgA4K7a|OhL%@Uq2?Y`cBos&(kWe6DKtjPR zm71jo2QcGBFB-YxAX@;F0KbhR0Zyop9Zdqfc#ea%GE4$IB3})|A@T)uvO{GJsUH5UHm zd(`-M!0y8N{b5K0dC&if;lGy}|Go6!|F#XG`2PswFn)gxFGBgQCAI!`oRIMX`Fw==pwE?d!)tkt6;u5Mh;Yr%bOeZx|9YgtI4c-Vna+Ifs!`Ydo) zFM=NA8Xg%@TPpW5E%X>^Hz03K?Iu-+Y->8BP1rl+>*0j`lzcrX+vpXnWNENj*w7Bb z>cAUop5*|VLgcgeI3DDCA8PLIKA0A$aD!WHxZg_cBj|o}9$DP-9ZL;M(eGe3-K)xm z4A?W4Mc6aq#gnWbq|e{jBmER#`mu(;@h-k1c6L4HkJ7LE1a+7I8N&t5~um_zaQ zrn0g1IvW%3r~6dG@HY;;i0~izBMta}W@Rgi3IEml;a@*a1^*3f?4E;vZNl(hZ@Gx@ ze<@1?{&(>e#f1Oc`r&^Q<_OY18@uP=?@bu~#sL=*{v*d~!2h%U@#+7LFLleG`fFA2 z-@wN1Irv-u8Xj*FSN@wXBK%((qXGZB_=;lFzkc}NggJur&&KXK_>WH*{>FY65&k2u z(SZMFedE*rY?$SB?!WavRKb4(8@ngqkKSBHgJ=~7iVmZYXA~VKA$Qy&FOd)R^ zp1vpKjmOg{ArD=!9N&ktY;sv|7e*b6I0n&iHCA9s!qus`>4!pI4xYvcdDBJ54MN^5 z(J@&-UauoZ$SV{b(}ld-M8_;4Z=UFI2zd)cN1>3nP;}fTSUWgQDYJA#auFSSD;)3k_IwlnGnbvlkBvTbN7Ju}auNI=Q%+ZVaCTw{MkCw{g>~>}Id&PGL(8drfx=TgZ+lZvMZ_eG6a{Rn~tW0U{JrFi6#^EL#P{2LdZ# zQ2~imK8k5eTYMCig@E|@5F0_)B3LRNhOmGruImF`T+vTmM5J{^TS}!>t5&R1wX2oI zb!u@J5qbFP|99@4OeV=><_=5fA8nH+les77ch0%zo^$TGbfvVanmwm0rB$`;IbA8O zs%OvXN@-OCdtS|+H?rq+rL?MvJ*O+BRn6=!g$$&2choOAJ7KRgb>V}Cpj$72Q_N8<5pJdVcWKs=7Y<2l22j+&C; zC_Vwt&s~-?uDyGKPriMePnvt~G$ugh-l4d3Jl;MZk6CyeBIit!yrbnDujCyg=S-2j z*Gk~d4vxlZy$@sYgu$V_&mm5YdfOm-wDM>3NgiOG>FK}>d} zmCM+oAzxsp9+60vd(d(I?c<-_bblZcfhNAfBr5i8fR=bQ0cT1lUhne0d_=~FV3 z9cd+fN@lVnF*%Z%>_{u=Q!#%w$Je$s}$SlZcho?DZ!6mR6D+$xL>nl_W

Y|x^{eGE$VI>>A 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%0A90mb_)8(9P*=wMI-71 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
-OmVWpk`fc@{0DUGs4MtXJ^Mw#H9b)@5Hmq zS;%yvFL54BbctHl=G&|1iO2r$%e9TK23lp397ERQ{DZ8znSqDs6SaGLc7gwBXx&#~ zXxUZe#@O2%wj^&L10}cX$fp)3+o(LGoixJOqt_|J)~)PjpCo-tfZk0 z%?$aoV<*qUi+K!cEJ+7?c-hVtzoDMDQBHBPN+o-m90!|~AbDo{)H#Gvl1Jz<$>!`J z*}3hkQ*k2$yGd;sVNt=B<5rSVF!EKXTjQ@Fl+jE;`}RVD`zG>Rx$lg`Vjhk6CEthp z>cXmhW#uPVhHH1HUJZ1dpS|?;ElvsJKsF-y@p$&{8?ooV-T!?P_l?Y7pOO51!&58A zPkJOZU`gDU`_4%IW#1lYecQvS9pMHHwku}|@dL#28PYC*r?hVzfoPyn@?HvHlx$w; z?W2N-KJ3MX-V2ZtWn#|r-oB5oTtoTE-uq+tjqJ(QZO#vFGL@z=wArU^SL#q$OLvv- zvb`oCty1=*csY5Ez2eFyHwaIs1!514;fG!urfBx(fknu?f=JL7rkR889suWj!t9GN zQW8JG>kH5tUd3<6VV|L7agJSS+9WwHS5oqGgoI}DY`tbyk|(rJg()T{J|rP{aE<0! zNNUeUKcsPQU>OoR`@1j#74e;1rE~hkm2bH6r7c09!TjKlIyDv(!iy(E@x%$vWmnh+ zu-)O`F1Aj^gXKJca>eK*vU&Occy4k27YW1R_NgP|p*#C} zXP)6az~}9mD@#}z*Q*?zui1mP01s|gj?T7OwzqaZ-=p9^8~q~ge9;ogLpnFzlPmuZ zH>x%>*&q<g(CXrr)dZ@7@~P{ND{P-Fz0*P?4(lFDv&9&;8kX zL$-AnL&et6hG$tKn|gI9sT~R{crw+0!!v1rZ67uT49g5nFD;t_-lDeUacgM9<2ZAC z;!)%F+Ow4fBM2UY0Z4tk8Nf=I(70i@Oh;I~`gNx3T-C2LVx}igd+qb^3Ku^VZTs2w zkS~2&>|iK#$5yuX-RgeerN5K(aVK;Ug7X8N3KJ=q;r`6sV!rssV}gpc6+__F)f02= zHGKX?xy=?aOmA~869}3v%CJWPmIS&DYXsSo7!86gMRC>B*!95N6X;mMj0_-nL4_WO zhq$j{X=M;Q)imCZ!${M>b9R?wtPDLcQ`;n5M2lDR;^KJ>MNK@^G*51l?Qb@lflQ5F z7=?JPUrs5{%|_8DFOZ|zd!5^GfAL0j$iw2tOl(iz*2yQ-ABz<1XiM9$2_g?)A6+hd z{kEYPU#7TAUAHJNl`YN0EXx|^qQ}FWi^0PFC?}Go2`EBZlL*_y6!Mz|rU+IKekwD~ z?#6nVS-K6bX&$|%X^b!_MpO<$PLy_#i{5h35W)PgxY0Bh0gXXfBQ6#K&T!VvIR*jD z53LgdU@o#ZdG$>uRo}l%E3R*WJ~sS4`iLrvD)xUN3)Qd29bi?bg5U$XZH<$pKlbkM zCOZzD$*oQ91ML)N|7`0V!`Pk&-!Bt_@5*8D9j`q;@sHc1*#4^AZMwLz&AEXh1V6S; zBCx1^W((NN2w^`nH^5Exnwg_$mI&0U$?lppb4LUCyCjZ4vlleeJ`iwx3~iO$IOcGU zR@Fo~8nq^ZMi<21?F_#6s3uwvgGT?uqtQB}(bHS=wlEJL4>L$WIT7ps(BZ>7Jic;t z4<=C{-kf@T$T@MUSbm^$qq@H@QI?%qvWOY|?RnN~1e@8CH_wv_FDw=}=Q5ejQ+}xfEYDjXh(Qa`jdgHixQ*`@4q>mUJ+Pyb^7G|S3Q06J5J9$w`xM>C3k&a z|J{?eK6RK4nKOHmFK4z4o^@zXPhaNQRald3eWv$*z;mFm+l<@ za?io5Za$@hN>c5cSAhM@Gl-+KA$=ymChf>;ag?Q@f!GYU&>KcivK4JQg_riz#83zDm)NOgBhGY=Q> zP@Ru*!|4Qir{X37^CLa)B+I0&UQsAfvf!Q_aHe-YHR>fE->)SjW6%NJv*(1Xks zfy`xrhMmb#5Y43RdbD`b7JK9G>FXF}<7F;kOQ7MA&K*_sedbq(o-5t0|4F|pec82- z6|&k2Vl1m{@W;Z`L#orHr!plfDdrHw_O0sGE0lt}W2^RolH@vQ(1u9on-mbC~P&H!q;nem~npnk0Z{p2=Fx*LcFii4|g#eR( zUCj9#RfL#hw}Y>!5E60z9s6=Vx72@)a-Om@EBEm*?9|aP;)m#d4S{=v%9XEVT7#)+ z6IWd>V|LSnXYi}~Q;^&x&Hp;$RLT(d7e5_r(DFGzrfvgFv99V0Kw)YVu}~tDn0M6H zB)*4Ux8^E+Dc4{nx%A3h7%;H;FzWnDcxLP6sS|IG8XQ(@K_y^B$EtOua~oXRplAn* zi+qp#XG3NVk#3Wth${d5-^ySuim1WPq``DeVnk-#q36=$JfhBZ>ePXtsT39L9^9JQ zgXlG0^4EzzV?U4A$x_{?Y28ZaGw*bDuC9&u0}6)RF`kH@+7|3@I3skc0xNeN>HOSX zl1`&cfct&Rr%4cr5S#JZ-FngR+_I{TAAe-=#}EB}%b%IN*hFuOF=Z>WC z6a0Kz;%jxzuo43ecS(s3-9pd=U+Ty;%g$+a%6O9rAr3V3$`faKd#m$u4UcZu9gou| z56O{3EBHK~&bOQ~OIXv<3S&NdOsqV$)yAcyMRe5eKDs z*?Fx_%P|Ffn*tIl;A|wC!Fx9SiIjt%%cg3&-W<9}pRaglt8?1XpM`F{9>&9`Yx%VH z;J}Bu+0@_Z_YJ&{D`6gL3AHQ@FS)iF-!Ma^le`qJ$8V21{>Z(K z94+dc?R{y_&`{T_p|?vdLcv@?h?Tr3**kg z$)0TZ36l*^j5{ynp8PL8NuJMqllz2B7Fi}0+1|dFU#BRaFX&qyEbIKY=Z7xZy#0LN z3U={R%uoX>-d20i`Hx&?=Ueu;vDBL2+2*Xwy_sxp2#&M8eFwV)Eb4D_K9qa+j^cNU zbAw)t0%HX*W|d2&FK=_Hs#Xe)%G|#m&X$^xqu4ib7YX|T;P4Iwi#GrscvUo?6Qx?og@j!w{xT001a{H zBe^Hm00|~8=UFD#lS!E}C;3HZ;E5VqeL7if)aAf7c#vT)35lksic-I^Eb(4g8|F-%l)Rdh@s)6s=2lrA>C3?sb6(i@{ zd~W-$cD>Oww$!(*T*yh>GwiQ`?E zi!xj6E;!W>bMj9;_iDKcl;%V$qhI_56h}oPd6s`n~uTxm=W>yFDFFX%G0u5GZ@}$(O{^YpyL}WGihJvBMAFBG(BjhaO-B_uGANG?L zdDlEJ7blPnPa%pCFC2A}3+d0QNco#b;q%Q!DhXQjGvb#pw^ z?=+!-c+{%N6LU?taME8hS4XhNPOU|PYg{%))BT>zr&zaDCF~%btUx5pw3ch6Lgm_n zr0gX@O#nx4pSQGp$;*rIU~wAF>Jlc_6UI#v`*w&S(Rpp($2sIuk=YJC)zDM4ETL*} z4E5E{3pM109YdYd`Z4WblRIx`_a2I8j-9tFPS+&GQos4{&6ZDNBS?Dt^JdQ-WWNn| zn3p%(EX|qKvunhCBg){dcvvStRy#yE!s=C%HCM84`s+>ExdGPUA1L2f8FS8lnH);Z zD-)aY_VNZ&c05PQMxd+jq8s?A`hx=LT)gA_fLpqyVLQOqht@Xa`m(8zip=*K5iZas zY5%SR)qE(I548~U7DqlvyZqE5VFDsufmgG5mD%px`^vEPxl~Utne-+a%~bb;G_w-R z@>}mJ<9>Q4YsEtALQ1?gCT9$=8&S%^k+MH=ks69-{?bwQGeKW_u;;~9SMfCB@z0Z6 zoLQ>;HVh=8o@bO~*VGUjAzY5&JCr;jJ^Pi$9n)WFB4e#;JnT2~WDDa{5a(a4qA1%7#mD}&CB3L}b?0#7YR;HRnShG;Nc#dw1R zXYOTMdT%>sF@!t9JY8H*E%TSs9xa}5&HC62BnRM}O9PZ7-^&o;r<|JP znXQ>4&XYM0CrxsNy0-`+7B~4JuAoB;v>t6;a$OjTa&{j^vt$k2RT@IV{k*Tt%wbix zyj*qyRK-du-P+=0e6D-OoqOJ8<=X^lqBc8!2;h-V$tKbR=fv3V{(>VwY<+=It;r!}kpY!{x#jnB{+-e~_ z|1d^`ZkwH6J_KYH+VZtR=&sCcaTHJ97@CXjMNj}u8Of{+W=ba=f+p#q2@o+tA7x%b z*`>>kZ}yngymYOTMPUVdEzr~NcTDzT8CzeRvgJZLq-u1_23vU9s#3L zr3_qU4@GGtB$3ww9kp&mk-$w)R>k*#|?^9ZpGc4a%ZHFZ6YfO^SazecqxNRlx^1IWxR(!2%U0wD zxrn!C{?>lzH}tN`%-Wcqa9Q3ax;X8ib->ggqnVwxL&$pOj1fss3$1$?5JQ`PNvevC z+AsC)LvPZ6;X&EiBGfKC>4}D&nSqXyjFSz%Lvm?0aE3K8#7lEc=Sy2PsxT8Zd=P6f zf#$MRCeXlN#XaBS`m4;gjeh2`UmL5|aP^af$}|Pb#E^>ME~{4H9nN)7-F+4&@j!(Z zdoiu)r!+tVs4714`x_qaIH8n5gb^_kTH6dAFu=iCsrg}Qf#CDW2KmbgZT*=Yl2H~P zdUDa*wiKn9Q_qJ{;`2Q2TAgFW#$Wg37;)`lDuigE3guF|d^idp-ui~psY{G0N=F+tP6sE|faf*grg8eCwpG_=p@_W__0C6aq<4U?TH_0pJWet!sVri5 znw3B$+{}W(J$$u!@jiQj3xqr32bL_fMHBa6IaxD1_O{LeKfUkZv!TtuI&D|#`GM4y zGa8<{ImLd6Y{f<+J{sw`sm|$hzwP$K2b%M^#;W!!wy78DQWHFhIludtdlX&N=(+vp?2ad+oK>UVH5aGt~}^MkAhP*#koy zHhYFj56Q`R7Im8IHP8>E$Th4V-e@yc)N$N6Q$VzS(zq@y{Ec#F=WD}+DSl~dkDx>3#no_Edl&b>dR=EXz*vcgj6%s!63|RRpCP3-R*2eI z;X@wkfmmp5NNw`3$0IkI@UX6$kmKd~#<6|EP&qj6#^8wF12y7q)KO6iK(`jX(Q%>; z-!SN}r5)z|3Cp7Re1wKL*zzjs)z*I(kj2YNh)p41yxSKjLn8+; zbcW(VIEnu=(m4<3$$#Y#LUH!YJD{qzivYv)rc34 zmH$!Od}uJ9D^lL^4(vH}(X4+PGA*Gld^_GWLrzrULhB;2*0hMw5^d`5@F(yw#Dxw& zy(tl|gE1K}yEECc7VJe4H9)`u=4f4!S_Liz)Y>8qQJ?W+Ku6I<^jzer;gBY@%sv@2 z)%*C>I3zYc*B)~#`Kvz{@PJocjlTuC7XY@}j+Y_$#rs`Uz`4@1pyht>ph^}-lUlTx z#~N7ov_?TW00Z^-|+ zHwg+}DFW**gMohAe-96IuH-|urDl$i?qOH}S|V^@ z8F}8fR8DKeuVb$3Y(+}F2cBkk$UYE2F@J@&h*l5CTBfpHdZ@EIxmn(88%p@)1Ijdk zSq=Ts54Vik?gN=%#2sl3>tn;lE)nR(2Ju(Y&)Cv^@GLlAzt*%u)SZA8;sl#&OHYAt z2P*`U(s_CRo28A=m2)o`em;w68cXL+h|Z1Ts*{Jq!1Kv%99sl&YHz9u8x~ za#5R1V?@RX0f&3cdRLvv2yx-X5UXJXu9~^tzW|Lg2MURF28p!s=xf0jTCM@gJihpD zUvL?;P@bIT8Tf>>^OS(bw(5Mq&4QVL5K%Zx5So2JgKG%CO@f+KP2LbrRN#)4%y+}Q zo_E+!SxXhGqCrjA>u&~$fQ^F!5YabBTYC@KCN1nWrjR^#5rhJfk^^$sLUsE|uJEL) z0@N=Hmb=`)Vv6u&MMPgtMG>-?W;#g&ndktu>z?kx9DM-;?>}|#c^t6vZ~=AKylS6Zywk+J^X4Mze`o+P#9!9egC>R*CtB$GJrbW3j_R9 zL8lgfxc0&}yd$~JT}KasGC1db(OBnKq{+1jy*@*kFgTaJU@lEKJNK=+OXm6rs1b`3 zH7!fnsd&FHIH;}Xx-fxjc8+`C@wN^d1*F=DvFdjs$Z+z6>(nPExMcM=K*wYSKG9Tw zUZ@#}@sU*^P!9)Rg4XgUvFz7$*&*S=9`wqMAlyYtAST_0L@M#>qS<9zso{2Fl57n~ z79h@$?2J=Lc4F#2A=%?3S#516fR|e2F>ZL?6Ww1CQ*Gd78 z0$SH&UeWhwi-k$M_YN{-n8dTJOby1&8CjHAp1Kj**FUWaWZ9S+j3$pPJjxJp$q+FG zOi0z{j3p%Ih}F>kjY(xbP9GH-FrLXEBL=W!Lx6t47^ux4O z`72?iioy2gN;&r@@%B1*%AMnQrEQ1Ud{Lwi0}h@sIl^*FRQy|5sz~K{tIkHDr3!nL zKmx;-sye@U&ToV9v-3^bo;e;~*qMd5EV35vTLkX=YzxDx)35@4&IgMq9<=qBqQS%c zCmougu()Vgc9(k^jM^K3$|#I`koo7rCtkQD?N`Q+$D1m`f?m+%u&t>UJg~s{_>UGf zErh2$>4MUq*YZ=?fyj;hT+X+xst{BHCi5G}g1oT8%z7^~u%;7%=Kz7MS=q2q6uceL zd^AI0`qo~{o=Ocvxx7)|$VbC$Mpreu5aSSH53boa>O45E+ZUuI#I3Eb7(p-Oq7(8|0VG-TjT_+1eS>x0qJo74(x4Xgk4R)3T zalnPgc;pR>q_oaw0c&jsQX>sU0Hz$h<9-GSB&9YabB)h2Y5o25>}bFuyD^T>o9?F@ zM+2f$7@xqrq8u|ClJnfgdwfhRP`N$EAMx0PjXF)iE;`OMK>6&pHzntJjop0nE51q4 z8>ZpheQ?o2yo)Kuqj(eF<+D6FE@?2nD=AQ+l_y7jgRvGV%GUv1O3s4z2FFk;TSFMv#1Q1$j8P2I{FfL`u9gmnG@DT*ln6&XdD9~q z5F8)F#?UuKK#=C+FbIB+M=?P(>93v&hJ0f?-Ztsap9+O($;H@7ytu%45bptu^84x5 z5}ngvq$I&vem`Lmozh^mAYlY3l3$qy{?F6|ok0kon^D+T3dG8K8hi$5@5%z0*pDFP zKMaS0h%uezKzJ|RTb|%Fg8fT9O)zEUBE589c^AEokhT-&o#YrFj8;*8J>>~{95E}S zLfqmsO+!+Pln;M< zKjnMliz7e9rY9KDg6Fm328OiG11(1*#zibfL-oM~+tM-t=dUxVi%)D7PfT$l8Vh*D z$OFhC#=EW&T{~m>eaK^$&$hDsUofeQPoG-8ipNTItQc7%#))f)ra_{)*CR?o)?9ALAq72_6CLbu-6H$b{P&<`{KXB&3#FXD_<;uBONE?pn{^j^~_ z0KI{QftTfjL7C?#iZ4%zCOb7a0b|b=7F^W?Y;LNN<%794W6m`2Pc_eiO)elS4fG5+ zqc`f%15vOYn;%*ks;S&u4{OpxCz_H|bPxUIvAHJ#*J)QWg5`TGt9!7SGWG_f%y`;| z^#qSvPXI<57co?q9|aCuMir66A4o#AAz)O`7YMpw9;o&JWU=!53A`8=W?_1a!;1#Z zaEZT?ib;CO=8U(@$T)r=0>D){FWq)drh^EMMzbqJMU*9T$epCrtiguc_`xN^_R`ys z{chSyn@Q$T>RnOp_ALZR{akqj+&#ul}mbc>|5X= zzXdBK1JoM~EM^#OW~kTiawez4C#qN5U;z30^F^FoAYx!rEPx*vsz$TKGzwM2qyufo zR7|1_eC0`1lsH~=hz~}ps*r2g5@dsMB5D6ER%W6v{#bxl%_((03_|EtUE($z&Qz42 z4X_d_*VSlZK30l)TQ!28!LefJvpa6+zh2X10ZZAJFqfvU4E~iipK3U#1)qgQhdYEX zf=MS+#uPS^*1Ay2T>=k|OH@(72eK@q;tObe>{H+ZJ{An)qmGL0?Zm}0;-a|$c<_R> z3xErc(S9{z9UC7zIovZt&qTu_lwF5%|3k`MfHnT%(|}^rNM?nY#0U{&DLhN1tOiq<5HnLdH!}m>adjOfezl zoCPfTQ9xnJePya{<`8mK5vGMmXV@>SkPsu+xMc8Vt@)v+HGPPGZ8O$Q$shaqM~|#IG8CJ`xz7bNCn@Bv*~1v)DXiGMZ-c zNwSf3Xf?jAPFQTD%;Ib6{9duom4SUlj5H+7h;c{G$X1V2T+KXaR$s69yIt`H_X@ri zYg-{%CT9f5tLJDN#!^z>ESwpW0p|q34?8J{$zf(dQ5s9kc!j+I_=7HUA)DDviTY6) z{5%Rnoo9eq0r!>Y>NUnCUUZcrwdyZs1Bhj@I=w>58AM@BlPOJ5L5j?EHP24NSBeGl8jLZr7kmct_WyqX}Y5$FXg0au2 zFrA0==UW-0v_gNmNryM;f~wku)p2G;kBJZ(hQM8W-s1kF zGE!%N)X5cqd`#|am|_VfW32fcWLby`MH|8h_QY)@q6Uth;~@`rP2(Cl&8c5j;6T88?TCksLz;~-6E~? zBBtgk3nXM8JaK59!5gm|-gqC82(rBKI0#L9iW-T!k?oIH15jl7<86~||6&X0=BU|u zF>m}HCw=kYZI|)I8+T?0yzL+ywl3v$fJO@7ghvNFbPk6YDz4@S-7truo2&js=%!p; zh5{DdTr&zIewn`t#Dfs-SK{c&VJYw|E_X9XCx6%Fj;MD*KKMj}HN>}3=fU#dllYrj z!%Z4s;?S)xNp0XmLvpO~MPxM{outK>91G`(#@N_IbMb-5NeMBpt@Y z;qR`_cCeqL9PFGOIB3$2DA6!VZH4Rh9(~zB=0y10!OpCLaUry8Na&->2ox9pi=^>^_8m zYUgv4pVNL zRw*wWln^RLt;J~@aJH{_xP3sXhPdQTyOsS9x7_D;5|ZS0AF$M<-z59oFTqhb?n&fL zP51=z%Jfv-1TGo)_)Jsu6=+;JiH^G^eQ+O!cgLY|S(K!8-b>_z6_wfZ;5v8G*}|A> zo>b(MH>!4(({b(`+U|DZ$@j*s1}=qf+VKMg0ZwnXB7X zu6*Y74`ESSt$gm`9*UqgdRUWY9z@=415 znyKG>)`orVQyWIssWzOFBbv7|KaI5Ki9ffo2djUdiGDueE{GBI^Ymept)4f`;K=jVl(@%GfG!ZRmmhl6+yM$)vG6!|9R2iHkbB8PuuK?D%^28rW!2nVr zCP`AWOp+xu8A9m;v%5kq_FX~$$Z|@e2zz0akIf?5SdkFy%sdD$Zn{a1q%8NDDeD}e ztVx_VwX-816cFaLNc&$2m6e+j`cdXj+LLSup+ahbHzS8HoXVqqZ}9L+7lc8W{cr6p z>LYiB4+7W7R*Z%yg-H|Xwe>XVf>#->*eEKDoaC@Dc0CZ`#~KkCMVOIb5#yu5nEj$< zgpNrWc9sF|BM(?hK>hdx!#Y(}G9>n%MT?OrZm zQHWx#z|9Itljf7Bm?4ovch+<4rsd@J=hS9y&UwjK#A==YQHI+8dgnc z&*2l!5=K1+QtX5={cmO?7Ta3Hg|g{mX5WO{`*0iFvmyuXpgD}f1{oJssnw_T(j8QF zky%x1F1N!=uGODIrTO!X&l7)`Md8Ye&xs^dl;(y%54*=|^@&B8r+3=5$6lU2Wd%xC z`*<>?@6l98+E)8ziwM4fr)StRA0e~DsSZCShS>DBUrCf+&e|Y)5YUt02I&io4qggQ zd;1BKM;Uz?mZ5e0nhp*O(pCUgh)TRO(YUtNh32xC*2(>sTss9cgVVINx1e6ODRwz1 zB)@H&RlhHs+T0%tV>iqO_iVk$oX_=59S^ZRH66a>RM@`bxpweR_#nZ>$lLN3nnWW&fjyTS z|EHxY`n5H;pkD*u#Yfi4Y6ir2j5lcoi)A3NVEL-p*_zmp)x>6YW|VO`E~<$?k|tgt z`v*F9N&D(Ld~ckataX{~>-7w`&z{@!rqjXLAq8-O36`(a+ny3?v_;1-vE4?84s+JY zwDnix%(kxge+1%$41)OFm`99<%ol3>p#a9nV4PeJB9Y)f8I~ClijYA-Eu%qLmuzD^ zCBOZQ`7b_8els`Dc^VNP+Bhn#PRegTct2W8o%|tOBelk(MN~8|`~c(QaU#DKbHC4+ z%x7z8cOF@lv8V9sUMN71;F?-DJeKMF^aRo{q6$!oZPoPlLj+qAl!RnBGg)t$s=u6y z28M#a)z)sn_O{@w+S)a^Lf&3Ajhv-lPz5DyJMFI-&;O9`GmaG-)qo6DSFEP zI5Gld+GF57*y8mR9u#XqX(k!NR<)*8>8_j(q~T z`-uSeVC`}RAr!O>q-PoTo}T+0eF*t)Jwtwdy)=dh4L+mA@4{#czKe~_?IKL&fU@pr#YTV_vyVyqu4Hh1#K<<13;1@iDS2;Lsjqs zEE#0A_GE|qalYNT3f6=U0Si0?^@bC8L6_^~CO0{Ai&M{|{i>so-8<>STe@ktT(5&C zpk|X_M4}!JD7*=Www2Am`t$hICV8G8+BVr|vz6>KzGMjw#D~^-KloJX5lSMA=ZFFS zhPECiOjtsr*Zt##J4Y6dKx)dreZ9a3-@+>(9e|BDnEiE1gJ0C%BnpC`b_SqRuR1@NvlK0Ip5X$sskv2KYl zF7VOY&E1vx?1Q!*QV0P)$E0!=YNE|5)T%=Y1s1b>Na78kQkH|yV ze}6H}Ktl&b9F1=yqp+gL{gOx0@8fyLJ zQs$$~E(IdKqkL)#6rDq>#)y*}jMbIB_$E}J+CYX=dZ_)Fh!11i-y<`5ntxJt}@wu8LAE@V7@h~po7d7Q!5v~PCdRq*J!``UN@Pl%mRS9^zo zN2$k1pkZ37Jrxj`Lh zQi(ulNW2{hRdPZ|vr4EQ3k6?5vk=QN>?N)u67rt664SHNlI1v~v>$YV;N=9-0^Gpc zW`C3Zf$`@HsqWkb_yOEabLxE2@k(k39{E8p1`P9a6O+7w1DW}zbqrP&!KTgEtIugL z^4z93#k2>ZjULz7=XLIp_+N6G>`#bS zP1_D($5B_jL!RN&h&|HyM7AD7Va#us&%atn8xm6;ejf@6VSS5n>X{KLmhn4@idn#& z8PWzU1Dc%~7M!3r!>49nYau$qh0!-UcG0g!k9K(9I4Aj47p0UQ58R~H>z4h%4nn}y zV;d9{8nZam{}7sSYW){y>W{WbjXxo~s*xJ^wq63?ornGS%*Or0n>se(E;&iB>+mLP zo$>2zA|S!hwx{K7P=%+c$9^5W`?6{!=ERXzz^dd3>u>wPE_9~B_~-&6y!G8-gu^Ok z$38N?=1MLiPauRY9-xt4Y}vLHD|rTe;KxlR@ui1p^>@?9N{-8O%R-4eXy|WX7vBETL+F1BvJYBthh%kO9*2Ma z?5N+}`Z=|}0UwmFe<<^>KQsTjTLwr1IHYY>=CjWMR9>)jh;8{%SNkUnwX*yN>KeO_ z$9F7VX!W4M=o_$R`k;Zq>oyyNS-r@+BVd1J7n)sHY?GhEnZ2Hq-2^=T$Z@%7jY6{ z_ga4iS_` zYMMosA@S}v@{=Jx)Q!bb&0-~Ss8-U((kQo}Z=q{z61o8SPY3lCGa$umvIq-h%MMFq z^^j0#;}dL%eiGm19i}~V{EVd63>!A2uy8~6Ji*+CqK;jmvga9&O5pR1xldC=I@arWh!RLFt3`; z!n_z`%5XygJj@gDcPdPewyXy*%5=ElUAC!%`^>OMbl85-)ACNyfPEGxMypJ~3uth0 ziPXh`=_POrz?Zgw&jDyS&KU9~-FUIN3iA^zC?X5epMk6F+6LAlbo%f+!*qJj*FPhT zW{9)tqf?1<0eVOGpnwQ?6-vOn4GEQ!utX(Pjm26`<6}FT(_Fp zo#qC^j_#x&eB%5{v=_4~$IPr&8A~J2KSevs6FjZj0U5C(2 zi79-%EHRHp$w1;}?*A-HL>y>yd2${F)(RX!hQvxZ9U!p^j;BbhhI=IvYmyNTi%@c2 z0TSzyH~WydAQ_<@`L^V|!sN}x$w&aWL-GlCj0LHfelM!GnRwC{o=g7q%{R}& zUm5Y}pX7K#R~Bz(8Cm{qZ%q^U;A~6SJ|qcifjR;FR+c(M&qOQ%r?yV=ZYh zsAs;Z(uwzykM?yrDa1M<^E-57lB2|NYMXJ_aC59$5$|65R~0e7gbIiIhu!}~#x-ry zze;o|fFE6g%1JOa=-Sp0RZt7lD8a>bxFSU zCV47C9H&kXqf+in`DOQ1;`6dM&W2AEk-=p?r@4IY`Nh$`h_v_G5@GQcKCxU7W&HN# zC=z+jdR|Y~Q9V#F1sE6Y=K{S~_!goZ`rglAH*TGnW45>R_iU*%zRgF;&9XG0yVzw3 z2|QS+t^FBTd2K_abjVnsGS8OGD`!7hg>NFpH7Yf@EdR~rS450b^RYO8<N=NKO$jt<3dbeJlRRWb56u~58mTwR`7vstYd|kwi|V*?aJR34&Bcohu$Ht z0URGPqY(40S=a~+L7ziEhF4}dL5X!1SK3q`z?I(5G!)U(hNiuG%)AB0hlnXtZ`>v= zf``yg2&m|}^~M)f8{4)$Dkd%2@{BAq2%(B{d^KUTSvYvCv zdVvSrDCxs`<&m+}ckvq2=<%WSTLf(TL8@$o*yFq!&v{AsSG;Z#zJk*9h~bwMIOHoR zSsqRNSUj4x;U?7~M@@%dtGWZ$w=96shC%Ff<687S)KX~DyKoQBHdt-M*IY`X-yH2sy}+p0g?GD=*c`p~Y5&kJj)m=r#1HOV8oHK=T7}+GvQwxMwB3)z}1Hrum^IG7{A87 zj_4qMJfLs12f{0@QMTbCChUW1KrVk>PhzASm2 z!NuO^P242zu2c7Pf*O6lsY-d|wk7zJ1VVv2@@!ihgGyvGQd@t4$01JrvR=lR@L;~OszZ(Gn@h`yUG76|(w%Dco z92vCw3*1o zzhQsmZ%vT-vkbx8D_tlBhAPk_3C@r50{9$@HMDu{Q#0K~<1o|F`x?B!z}iC#>;)t5!+Yr&-ORypQu8d_2iFWDI%GBV!iz@X4xcksjIzvKWJdH7v6es6(U{S5dO+=AMRBMpc@t_d702;Yxi$;TVvOY5KJp9P5MWydA`E(J_TrK!l(%+6ZgYht37D%+t zqYBzmkAAJ7_AMmMu7&BEHe0~y`XUCv^Q6iuS@KA@M*(+e?397ZQ_f#2xYrvuj;w^o zg*i^@wJv?3J9RDn`?!&agqkT%^atY=1?cjW_g6TY!f<966Gbc#g+B4`!9iuGqD_$k zgjYjnIU}32?ax{LmUGgq;yB(Bk6sjJUxV@Q<3xg;5<ATJZ}^fc_YSge~r;ara+#ysqJRiRBa}aDNDBc(nGms+F9Ou;+whOsSNQzKy|v z?H3jHtS#^kTdLxlv9ZB)EDzEf2vp)xTifD;uiSGk)H5p#b^C7CkB}tTf42zT1>fVY zDt1%mPl<-qu}$R(SqSg=uB)>GWBAC@FHQ&Er^o4diVtaB`-wq zo1L5Wifxov3}1VQ0OM4|sS$ByQK5WMly3ioEnPn9X#p5KGC6x=o`s)h$~%^9ouI>+ zZY1zoi?~Cl0PUsZ;m3!ViLE%YM)WNOw(^5yh@k5>Wp@UnH&Kh%phtxkytl7&!G$ zU}o)w@~gASYuOPTPX^(JWZbs!r9m z(x+)#DIiB*FTLYj0c~rqL2Zk`$kMhfeTxuz91U-%H5TTf+wjG~QwlB_xP*{;q2(Q| zdVdJXpQb-y{Z%v$9Fjs$8SdghYp6fzyD7H<=g>Fl-v#{Pd`D}WCc=Yvx6*>=vE(t) zq}G>1euNtc5@PGz|;ZcaYj27iH z7XKkbO`!99wOtb&i>g%cZ`%6Biao$R*6LCFK}-!)#bNnT%lN#(1YC}DiA#@wn|hP^ z#uUW%syEu6744$@e(I<(4TzBaKkd6%L~p&ZMBZa_JhfW${b(+Q%X>uNU!lH{C3;Ci zy(jQ(swHnI*srZ6T-k8|(Noknhgd-a%9oGY##_*moWaLkxQHO)>~td$=bK=HJ8tcj z0(B0X?eK<&3L?8=wUuvVpabqXpWL~$JNWF%OSA0%AjghMj3XxmIH(UX8+BgH=RM2+ zjMPCi7L6+h@@>dK;k7?`xwhtd1y_=$*;{MOn)>OhPO4{DKO+FNj3bvvj7udYqxPSN z!cSWOiWqq($a)Y%6HPvC@h4(bzh}NirD3XSJRkJSsIeXp@Bm1dPxp?f`8u3;BPp4h z=_TR=qbtzIgIr-Q$)VK^-hlPSk5Rj*AUvWty4sv47QtNfChIJHpu09x)Xbi8y(;WoBSj{ zaP#)#JPAcxD+Tms|<44(?yMy zJOd89B<{I)dLR>h(Pp&2o*`dyY%*pM9Ja0fQvRBwZxucB@_^%+o`GBxRuHXAMPapn ztxKPGLLa}>o6N%rrl|(FNu=hv;1&zqVkfLI9?^tBSn)w`@_N?_#AYwYR^aR45z5jcDWYs8yozqboAcyOm?!cF$-LQcQW7t42g(F>@ud^(wIE_ z%0i;@2Z!%>`@zlV5Z1~<#v^v12)@t5=y?&Z5b+N|rbmRm*(TW7DdEvQzy>(6-a{jc zw&s7y7u-Ydg)d&c8|3Z5wwFQQ^1N+6yyLmGE8WtuJt^>*zy8p&!ecT53v#>yz-;|sr$+84EEC6Bs!Wvv4+1iNljXhkb z+z;rC4K>5JAC{m;go%k0yc?@|c^%!+G0vfMPDwYEkGv*rOLr3vpX4s^W_YIAB0X>6 zpxr%iozH8+5tzoE@;NQPu{ouCn>r7yyn>n4_|dlHU^zKDg@4B4PfTM(lk{l(%}F~D z3q@v9J7Nzk{|!jAkfOoQ-sHlbT19F<7(nkS5tZ|5)F7}b_K)@nJLD!FIve4^Biq!Wqr@=t4J+^yx zhkpsa0bKJ}d``T?f#2cA7;j`+o>DuS^*#)(YXAB##bIZK|Z0>xYq4w3~v4`TkHHY(m-Pa-^CRmW{Vf$^lX`x?)iNN z(3$mw3qK}dkzQbW7d8RsVjk;;_^aK*pX1xeBW%%W5#wt}Q7i+)Dl2G`P}eXkl__u7 zp1t!pjVu&OERN=5UlSaK6$Pi*am1;N*AtuJ^{ zI9lZjHJ|qlj=U$pK}A#}+g}``@{aS#y=dZujP0Hs9`5hHV{9HQ_0~j-)o*qPCSybk zA==%h;l9>~rcuh5sW>1Otd5tnI&BFLxU%oCYvG74?0=gM%6EmDD4`m!^vDu~ms9ER z4!DNa%OF|dgSqpK%Yim@LEG^n@&xzXGZ}BZ@qTQJo7>pbj{w$WN(`}{y(bRwCID7| z{0TqDAkP086u@AWemy-MZ1CD^CUtM^rumS5E?Vb@K!iE4DIynZTl;6*SB%fZ*kzI2 z#6q%6+R2C!ah$yNk_*9WPca(|qwH?Tq=Ew;)TVWEaTGDv?JM08qke}FDdMwpn3bbk zZR?8+8~~`&i9V$b!t0cS>_4?!gutzgTHNg)9MIY&7ll>F73vF zAutKa(Y56p)fVI^;D)NFoColMi~wfYBuQ{HeR?hpu`?FOc>dA!O3*37A;IGXhh6>T z1yZ)PL9+c|0&u0v*i-)dao1q{+YtmN!}cgVz+ewjjSuE&Yl%|O;KR5Cr)z7uVOvH} z3XZ(Ehp+P6mf9wg)vWkj*UH@fTo*|(7e}8gqdbgqHzT*U^?6Lqlr|hn(xCmYeHUBO z%g_sXPs>Qbb`LIp;AAoIDs97mvMAVDkW24J5#K#}jJt$ZFNBaJt#z+-?3RigdmVcb zWgpSc+!)&KeC4Ffc5=Z6n}F)v1ucx_`~Z?ddLMdHVC=J&xK#jzJ1JQl0o}2|;xFL} z&Td(Q%_cKI9sF><`Qdj*ei*=q=noKSb&2Cnc9cj5v#FEzqxGau^lKBY5txdm{SEMc zN}Qro*Jt3*9aVro9i1_utzCjg3;s;Q`5pfR*I{#XV*W3VpLDGpwVmK66LiaQM)mr8 z+G7UR>gnALIlz?j6!h7S-daO{lCU2nO zuy%6oB4*&5!I%ATo}^yXtI(6bdX;|H37y-vlFQr$Koz~cfhV=4sLJhMnG19jrrl&5 z>?9lgZ&Diw^Wo4|C@Ni0uoR&h&zrVxf*qU zJvr3;8zfLln7R1&8e1c9DGNsR(-2-FC2(FB&JF0Xx~U z$?rtNwJq!Yqj=p)&(?z|9Da)0mJWX|5))HEmWPp+fYT!OWbzIUiyhJ)crdaM9PVm^ z`y$J6@pfJTzaGu6;mx?oe?mSdv$Zj89!~HnDCsU|OCx@GG)5~+_mwhMZvesR)fNx^ z>SW91A-%<2ma3aSIazTZkXD|oyL^Guu5EuQ<(|*6Sbm#3kZN%UVlSg;wo%*O-I!eS z67ClBzzr%fowffI}ZvP~f% z(y)(eWpQtNkonYGm@>_`v(2{>2`)bbH?XhHlOR+a1=j+M`nV+p1s)iQ^vSpLrr!De zW?r%FecUp6<6bxUZrmj5p&mP$9DPlf@(iavBF^tw4Z+*NQTbbupNgJw^r$_f+J-(f zr-`lCw*Eo;COxts$>7X4z_pNa)pR;MNzCPo`6%a@$Rh&Q9lVx}^s|xwh7ZdT={ow) z+K&E|dp90!IQBD|vZdyEe&xfzq-&`QMU}zPaXwt#L&<8l@r~EVqLBa@rGw(0Hz$m0 z!*`{7fkiI3+LQBqh(rp8jY5-=La6IO%pS>`{n7E@2u(OI98oW8z$IX4Ld?7uVM9$a z6qNpmeVWr1>k7L7PbnY#u5!RIKe`vnTV)2=H(AT~X;*I(X z`We#Q_WcfG0A9x961>5XoxC154XJrvf()kuM%>2T9p>tV#Bhc-Am@;IDJsITVqU%! z6qSMs^l@L4f_(bq7T!es54GWnG2DpGskKWsOYFmK+o$kbtnXpLdvPzfximZAEfDEj z!xs+Y$W(HfZpxFem*%NtiPVtwy#wEGqmBZCkv%iD>mKCM<=jZ}!|CAJyWFLFuX+vT zER2q6nsag}HW??=i4Cl2+c@M;Y?zAMpWDkf@atHvdN%!>rM`&q%k!i`L^B-O zd(_u4ulb2P^#$0d*0kYswkHex(73FVwN>ihdk)t&EG4UUV_7^9vi5h~+3c!Z0w_gF z4j9LGofsPB#bXH1#z8#kgZL(5;0!a8c7=U;iM9pyr*As3rzc`OBgt+VJg(?ecvs1X zzsOFGjfdEe;{qf!i|ZHmjswXx++YcuBxwayn%hAw33c?DP(Nn!4Vz0dWv5s`MxnF@_u9~%6r7&n^c+!WeT zjY%~+YDWN<(j)NCTIztx_FpehW&n$idZ?(t!SrNq%by!dV9r^0t)n8a{G*E5s}46l zZeQHnelUN0w*KJ76ScoWTxsp+mD+?{jq(32)NRez1rQK1V=sgh&F>&1mhPd{%p!Xc za`F~vqDr`h)Z`VptslZq8@P$F;%}yUsPv=@F>@g9XqWDO+K;|0bz$K({k+wUbExnR zIhMb*gKMWv$?Ys+;1D3g)CnU}e}`0K_n?$6D%f5mK%AhlY6BE`@HPq&a9$Z_8~7_hsORko;r5-(Uixw01n0GcMr!A^(r;Fo*F1Yu6Z74kh{cy(zbEA1Xu#a&leNO36da@~ajJ8=&Ay?34 zmLA2RpE5MQ{nQEA`5d~;(d|8jNEgCeE$P?h==X8*Zr^zc{>nJGUA=Ic1r=Kb)u{Ab ztE5?0Nu}zA%PJ{gl{8Jg7^7`n!5D+@zG>{w_(k=iLdI5+~Ubo~U!FGo7>41?oaT}Rs>OSeI=GEkK*Xu_?yS#-Fb~% z*72hsqFHOZh%|N^EKTq=a=1}Qa~uEhb{4C#TcSP9#~yuZ{J4F^)TZ|B*MMt$eqwZ# zQ4b_x?#E7#UR_3@Dze`3GCUYxTInppV(aY7V$+-SHTS>;Gvx1V#--0OFJ08<_(J-kKF7`J^ZOk2 z>4HATwdtvSj``_{eU4kw1b3SmTEy%KW7c<6MxQ z;vZVaNn`>K(K`Ny8h_{ni+1zd*X{D1K2w+CgZGhH#>VtZD!O2sJu`X}TRgCb zi(4jhEZC8USLw-$A)c8TW)n^UrXei9%Ft9a6O?u+!m!288%Z(PeKV3|7$JtsB)85R z?^%rBm+@=H?_cp-j^8T$TJUSfZw-Dndyd07DmQQRKm5<-BFB*N0^3u^A5RWp9wGmP zNxEG0WbEORc}w+R&%$1%_~#@al&SVXnQ9*-btN9;R0~YNayCNV zHRpr+Km7gqV59Ph6q$i0C9?(pnIW?OpU&^rPgSikXFlMSXv7>Yko98R?+!)PFi!PM^7jrbv~ ziwp$c*E)Xs{M1!GT=odBt#8meUPohhp!>GeUG`KX zBsva$6&sZlo@+c5d~wCaiV-&t;l1M}VaAgHImNnRgR#pjl)gEB%z?ZD zWGw0;?;e429`pW8CPw7_nXva6s>r27W_b?gkrB%BWRR+s1Z85;I(cFToXP)1tyW>w z;fVST9M?gafVIxck)drn=?0cT_|SDP>{Vb>u>BUK5rH3q<`2`jCI7viB|T&ei=fD- zFvtn#vq^X<{dtB>#!f#GloZz9FOw5$wGGor-x~5h zoAHI8iJn0wh>}f$QT_{c_Asx4aBE)vf}cvxQ0wq1~c-FSUQWoAO5z#h9bdu$@Z3&veCG0+cAGL-6~LIwpS zF=z0PtBL`LPWX+GWDAlAZ=0FE^AI>soJa5`A02^3J%h8;@c;?A6lBW|V+ajf--qRi zvfs&oDaDB6{GJodLslBEn`UpP>=3(3VII7$Krzl0(@w7^?N#qq(R0vc+#*ZBgIUcs zrH(5=QpWew8L4C54>N-zL%E88t^FsU;ElgMiSRLMy$yaIIkBk`zZkXHtKw6(v-N6>8F{M#sP?Mt{{cON;p6r%+|1|HP!g~52%z#m7x z&EfJao9vOdJS{`Kyi!~HIXpu{sf&n)V#7tsoDdk`9$UG01qR&K{iMJEjrClw zly_4D1BX$9+)oY+{K>i>6ByWU-H#3oJZIgH4GeT!_wK;J6V`nwFz|?VzceuLfOY@R zfq^dTzBw?^fqTTq`kr8quD)7lmDRK_1qR47*i&iFU4emmK3h%2^L2Oz;63<6H5qA_ zBTe%EYhZvLzjD8duH~MA$=35%)$=GkV?B;|O>hWLHSwD1(p~2dyoDFTXsl3Z{JcWr zs&fDnf^{PubamyN#kEmBmmFFj9gzT`{Kk()bw=`y+bvM*gEHx0hD z93wg-;!B?+DGPjQ1<+f4={!mKALmolKEM3IcL;=0Y=y6>eaO)k9asL~ZETsORhpu# zq5T4j|LXKS$oc=1fzf9)wI9=b(aE?hLXb;bastsjCI(_($KoyBlaF~;eMQ@nJS^Qw z{T`PrAPImn&rskAu*@@D&qh2;08RiD+U|^mtnMLe@;-WYl9dav;jadM$XnP$Kb}9{ zlUF<5GYP*7@VgAZAb!{5SBqaGe#i0q7yMS?7sv0L_??H}_wf5Qe$U|dI)3lrH>S?i z;k;1dTwZE%UN0}|FE9KzMyYpW-Fz4~Uh{e;Oq|q@Z(qXiHT>SjFOAKkn z3pN44Q4gz_A4kstTdj{yszn$VBaXQ#zRM$?2>#xBuv8D0Am5mQPnPlcbr=1}JX%MJ zpbvf=Q;wP?0TPzqVXKFi$&!yV=S+ZHu;hy6{7w(ZDwsBhg1D{m3vASl-L1w2IdK4k zqhw$Mi$;sIP98QFOf%y}tyT?q;KU^3oS)w)AExKCF>vKa) z(s-qCKrA2jzyptEjhPs>`_=g2vLU|6ihx14ba>)7z!CNv(DW3jHGc4-5@DbGFZL2E zD%^Jk@754Ji`M|M@m+3wRM-ovV4!xsaqamhG1BQC14I4A&d?~fD3SNc12(Y~p5ndKUH6SF& zt*uu?Gn`YHJYob4`_o+Wf~g`X_>PVkZDU6f=RjN`Nd3d}2v9*30lM7;XpMi00Ca|( zu9WaIS!%}twD<;xZKdiaLVkcD&baUi@#6s(5-*U2psvB!FH7KUVa7o4*8G zzv;jWwE7sz`S6BH&8$X84IkuOB{_ zAwVF#tTxR0FEJjS4!uJlRlyMfSm8JW6He&wBErdg7Scm8JkR4Sr1xFCut<+wXqfa? zlJwMiH7L(BpWI81>F|dY{pJ4r|9kq|`7GhJh65JxDvk)eW*Fc2oCU8ki?U!vvLIG$ zJd38s5fas;EZB3X@)jT-4a!45$A*^rn!kaqp^?5S|G9SK8$Y0o<%OL;&(85Znlq{w zXOYw0+_}U4eKBZFuJC2%zB%GICF){2SV-cX&s~O z*on|Ch8;EU8TQqv4n{y$hgWW(!Z#llgotsa)Qa`V*gCwRM_kh! z8&8RKwJ@FlokR%}7qS+s2GW9ZbiWieJeGK;{HbMy62f4_SoRDis1EU##vq87dsQ%H z>>KjoeQ#~QjbUH_r$V(q-SWA=URR;TW>C=NdE2TaB1qVgoPuG*c6p; zcuXTMPo)b1E#M+u>B5;Am~Ixh^xx9$8_wUyy)8e&nC6Lu()O+&p@jSJ+koGL`27q& zn>}m3m)o2XQ$FD9Y(My>0~R$Sv{ztr5Dx;I3bmQAeHUN%LM(W~{}JvQN^u%<1prVw zRNu9YH&A>BD|7>a3-|;)22wSb4be}Z8w~UH_5MLtpu!d?NEU-((VN~+2&&+hJr89= z@Sf6r!Su>IP)2#GW~x0oUavj@zq56&#Lc+Hq2W%wdNAJe>-e!rgkrLM389$shQVzsgy*0Dw;4ka@hG zk5^?LZ{=fA=5Zb$3o?&*!tn)}NA!0{U+hfY<}BB?EFObv1s3?(6#CP{AJIT8pKI*F zdG6>Ubk7stiPaQPHBLwZahIW?`E;P3q? zr^Y+U7tJ_KibHkSfeG7JtWQXrWSFWJBpeHBYwslz_QARWcQb9xop@5N(N28SfFs=) zub{)vCo0huI3Hv`I_XW1ev)(!!u8^?ioJ~fpsk@%8tnq|a`ah194v?y;<~;(jJS%C zh^rWhxQda8s~CwmR+@#l3WYcq5LOAqjmNc0;jtPLqSr*;pou(BbdiZTj3<9Z>bfBc zB19aOQ=i#Sg}AE};>u4sBU2EE<1zF9cV?i9Wy&MS<65vM__0DB<^de%Ua{O8-&qla zH#k5@I??Xk49wC4wMlpS+jkLHvZ2C_rO(CzuS(KCt)wrEEa_MHh;WJ|@1x7K zac{Go(*kAgd0DWN7P=;ojmzwKI{XLzEvv7wJ6LA&z9nd9#JD*j2A(5r`+t;U^F&W8 zck-u|yKzLh<5anf1IbA-uGA&&M-qJ&0cyUwGqXhb6mrGJKm`zO#@CB02o#b9Wzrd9 zA2fFshQ;zH{_f~m)_gx{MD3#!53)?uOie9IrZ?9c{?=nE6U-%%?Zpv!4RH)X+HLN@ zGwrPrWA|C|lTOc+|J!HGA2ANC$p$bZ>f_)A80iV75#?B8%xv#%3p|skZHeuN|{WYzz$+n(-V=%(7T5Xfd9~W8-3_qX?FU^}YFM%^CKao@xKYMeUZ6 z!Ej5(5|LW)PLj&jD2v9#k2zP5qT6Y&Qj@i)0NrbU$h8OtgR${a47skYM zbI(xTSgSl*crgWsAy*<6f7k^H6;JLaDLe!Ztgxr4edkLELlDB2&@hS&A(~VeJ5odF zaTpj1O~loQE6!33LzW9c1-JpBI;!*Ix!k4DTZHzzGWCJotNLDk7kOEk%c=mdK+R|e zuHaHqJ1b{7bF}RMw6~Ji5 zmf<_c;`UF`MJ? z!ej||2b%Sr)*sSPJ-VZMb9yh@cawm!yK*OLX+|w~qL$`~xB}13UR9q{Z5=O<3SHq2hp)+(#kZ_${9O&djA*> z=hNVu1=@eOwlmQuy&Xov^Hcg~(Pwte`kndG%R4b#o8h%^!*uj^`WbtBruy?fdw)^8 zkdlJ$XR7yf_|ls28R2WyhpUjTs!_kQK>B$n_+YaS{bl6T8E5G)_Df*ObL(J(T-W#L zqd9}-&!)cTqCw>N5Ud!k-hTUNv;}HzdM0=%K=7xDXFtOoYFvhl-QoVm#cK2;ZoO0?BXy4>gH!jUFmXhRg79 zQzCqm9x6|Up-zTwPK0mPLlwzz1s-lmgm2M9mB}#ll~5=V4(Xw)WVi|s;Y2vBhw75y zIy|%_!Yz7eK{C7m536ev;njNRw)%!-_%=MZCc>?HXh|}>1P}Kl!uRN*+mqqju^iS0 zfF(BauO4bnhMSSpE=l~Whn6M7%aC-hB=N5vx;q)Z8%c3V;$J-!O@?voMpuU<@vk2G zS~C1KBz5v(FtL%>)cst@h|f<{k+DOdj}9V9#lE^ngqX7A;f~B1t2Q zJDq9#a1K0e{9<~+?1D)}aSKfAiYtE#7ryiFGb^+tvJ_kJr+$AdmqO(rok&9jfwNvk zI9!p3P9JYDJ)Yh^jHpxQy&FK))#FbaMLJ>z*=E}#`jx98%wn+g_9ONl0-D(EIS2us zyb?22wu=C^Z99kM4^(Z_!;qgKeL*sy_+iOBe@F5FHjua4)1O28;P4#J@<(Upb`XLp zU&&_~p$Z~M3B?ae8n|G_6=8}J7N9Ib6$T>)uzrKjtZ8C@PT`1}6xvze|LgLb*@XQ5 z9RI0J7zt0#z379p>Hkum8-}XStcc~0$-t9yt(2cF&z(h1)WbMY%A<#IhMQO0E<$NO z&MLTpq2h?TY5h3`W+ho8i1oQM^>Oa|to3E%PAc}HVm<7KG>BJ)Kqu$EVzc(?{W-qV zYsY%t2z+wxGwY`uoDs;CI1K(S;xNVHj2x~ytcOv1KDtdAynx+ie0+8r6=&1Y$o_Kf z`v>boc9QBuRipH`0QIuJKGth>c*Yrs2XM!lsB;Ty&48TK+?ks2|3n8td2A2yP>d_) zI+5Nn*Fkz$1y9$*2KpE+(i89)05@l7#tiBW()_nHBYo)Z3FGOoc%?sWLHc+#{)&8#g{DscgQ!@g+&c^tkaik}8wq z<1#sR$+X!1CepL_hgJ_J*DV3V*0xliNNnJp?n*)-sdgsDb3Vjmh~P5s+hebSfIW@< zIeWlVhnYI*_x~sQ-WmDIsro-i&I#s4<(f()*Bvm^lUe>$!K8JYSGp!^=#4Dd3G{XJJ(+MNpD z9)EVojE|9=mUzHUI)o{P=olQ`dJtKJ`e+ZA_uV7kr#2p>1k}C^e}Cn}yM_I2L@e%X zefP>;KksdQIOn6=2@u2w-~%r0fUm%WWC-LMb|$)5ub3e~s8HIwxN571Jwl>T+q>xS zA#5JR3B|qZoAT^ShCr53-Mct!^l)J^1cD3~C%WhsqK5;?Pz#>R5?$Q;#Bnc!0!bB# zE{TJQ(JvAolByD2n9#~yk0dQg zc0Ht$ZclXWl%(cl7sn@ZElYIuO48lQE{;?rMH5{dXXF!I9I{AiNp$UIlHwL!9K0A| z9C3-RK6$~WCA&D5@q%DWbP>cR=jh_V#tZf&(Z!Lg*hjL9;~X!9fpqP~L+WwCT^Dhe zYG;#Vux9*kvB>sW$E$25fI2~yg?1^#z6%Mxi{|2KiXU%`@ND7R+xwOYxqsM{{3`Vq z>M7J;sGm@Op^SZ`_+%oyTDevO0fj zud;H=Gpxwy)CLj)*`+$9Cp!QF;{O2F67c6RZeVp?ikcAi=LDW$&PO~nL|%mrM_LWR;#UL z;2$g_x{(tx?h$SXFLfhgEWG=ZA@NJ)TEgtEhY<>UWh3fIT|Wvzq;vEhEGyDS#t(Fs zrEZZEIJlCm4h&c??GBY5k+tNK_2<)Fh{4P%0I#_=WA(k6wFdDf`x*L_&Ov}BR)CY4 zSOMD4#&G$Pv06~HlpjjnHKa;ik%^WKxAapgC>T*eEUaU3i-5`r4z9>Sl(tP)*(?{$ zmh+wRRXnzm^^oAA2u^f*vAf&FehtHPQ?O5Mw$l(aCV<_EeOM{?Xd8Zno?v|ud*23c z(ANJFPl#K!xkB4owYePANz3L+I6B@4?WksRH6|8p-sP(*q(PFb*<3errm5QubLF+r zfT}i!nsCfD95*)C;AV{30em(-^$ky|X7hsi+i6KeZnyD1Lr|evJg>-$t%^4QhwZ)M zv1e%Ozr?v5ZPhyjB*AiRjT5VV7*jkpz$6dciha_2R57cpmlzKmFuE(!b1Wx*Y#MiS zx|5o=maGqJ{Gm2k<1fdBk)3&*n^!-q_Z#;aFzW+&*f4=8J1QRYi$?buQuiSD;91f` z1E-h5{P$FAQKLp-3m^WT`p-#rlD!`F)_;yz zkBVYFiks!BHlKL~O8n7f6$(~{S@0jmy;|a2b5Dlsv4>7Ge*5;&P~RFddqxJxUXsH3 z2vFK2d|m-=8jOW#1%@YFGKC$S1UsN7o4%Ga7LQNj!ZxUa84$+z18psL@v88>dJe`? zAzsKaH{b>103bO{jg|D)f)|w3t7DhIP|A=7R`8T6>LqHm(s zM3@?y<~VK9B2rp>w+{kmupg(%cks9;TQKl{h8N&)fupD#KcK(hA%^Dm2SIhyFUACce~y0u5DeQt(C+; z(5jW%)?#&A?cZ+5Zf1lts!$sBk?oNTv)G;{-e}l$7HdVy;_~K+k(3)=1jj`dwz&K(!W2y zP_(>@RG0+(Wst-C-wGc#u@KTHL%G;hX1-R815K;}T$Qo#wK76Bg(BQA6JNW6SWsDM z`g0}C84hio?0$j>@!YMrP@%iZ{S^Qa#%6R~{?MA#g_g5^jP@sbls!_MWO4P`<3rr+ zIV>t%2p$8skN3bfi{wIfY(fK<7o-*f_*KQx)KXw=1=coTy*v;dC-@fv?^W1tmI7}p zeb)xKmt&D!$cTOwBmGh=lC4-I+ptJp&WOK|3a`Qp9(}}>8o&1 zxV?P&Lk(2St5e-H8$+DSuTL$!KDg6KayOaQf2Z}vR2xcUBBfhB`tMw|HnkKz@@_fM zC3on*bNTwzLS{RTB7r8;`tP*foN7axOqdSUqyNrTvD8u&%Dbg~CU=+)diiash3J&* zbkm2XhPHO3+E6PK(m|6wrinV8oTt+I&*xG`lRHc$O-O#FdORuSNGnaIO*g$;8d_?H z{!^6r6-+04bmBPDHB)I%d}9S>f?}1>%VjNxAkC${!`S$deEc)jw59>mDYcX z>equE`tKy9KBRi|pQ85aL0bQvyQPe#c6cgj!t~m|BztsB-|Zq>(&;As|KVEw?|Fp# zm9J;5sO;}5D`a2O&a#V>XFKPmzI-2#gFDYjenlsmOAxz6sX{X5)1N}ivO-o|=;wdA zU;o3`@USvj2I(4-n8{lNZhQ0-nyh_Xw0Kzl!2z-xj4yvGvIM7 z7Y#R0PTy7nFob9gd+h0cSKFZRhGWdUZogly=@QK+v7_uG0jc;FbuZ)`%n=;ozTmEf z2#(8vV`;I;kG9Net;EH`kjH|T!-7j;wX0ykHdw3`7F-B;m&1Zf%efB=wxLwF!h#Et zsF%ZnOPMZS1q-%Sa~}p=SOWtFXbM|l(w{3&FRjgT;pJ1^Kd}$lS$JFO^6P^;mv$tL z5uF{Kz?W);3ysi|#*2=zXX+{#afh*(v7^%?wn$wLFQ!HNN#jUohf#bh>}bTDG^TXY z_vziM;K&^!;H2@TV>Fw(9HvZ*NR!5z&JLr_R`}8gF=^cCq>TcNJ1IoWl{D^jdU`oe z8Fx~S(X4T&vqNM^N2QEGDeZB6WDM%059lM~PD=Z^9vF8zJqPu`xRcVJ(*xs9XUFq; zVBASjzt;ofPABc^fpI5A9nu5iPN(Ov9vF90)N6WR-0AE%st3lM6m?t=j60pQl(dv_ zCq*d~LejX?>0!n~Q668W1A1WG>Fki+mNM?7DA8lmxHFBfE{@av;>WIi<@|rBoO-hH zGnXDsIiCHd?Rav#*>A|}!Ag2tK{Ax+XDZ}R>NEMIVh|UTl6ffP%p=b^J;sp8{RP?32xp-vtd@2 z=hBNqBT5Qjgwg363YZ}uOl#BLZ+uJgKi}G&8bk6(%L| zwsfoHl9gR_>atHN`Ib|Z%zTHOCuxetfzsv;__loru%)2a&wA?nH-nrbuhjhvpc{xY z%M;t!SeEL*4{w`x#HZusY+zqP%0A>t`*Ekpxh|a1LY7kG)r!H%1C)@ZNRX?MByC8P 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
?s=l_ygq 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 F&zPJp^3kEC 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� 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
g``UdYM0{%847N|J2g%T>oygE13R$ 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

F+~T`k4DH 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ν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 literal 0 HcmV?d00001 diff --git a/Cnc/Fanuc/libs/fwlibe1.dll b/Cnc/Fanuc/libs/fwlibe1.dll new file mode 100755 index 0000000000000000000000000000000000000000..b6782bc20b1f98019bb5827485ff800ac5fa3930 GIT binary patch literal 1038360 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�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 z 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⋘kR`uN8B@jwp=fF=--v= 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 VnhzcS{dc;ItDVmtT`*qpzX0kGe$M~^ literal 0 HcmV?d00001 diff --git a/Cnc/Heidenhain/HeidenhainConnectionConfig.cs b/Cnc/Heidenhain/HeidenhainConnectionConfig.cs new file mode 100644 index 0000000..b4ffc9f --- /dev/null +++ b/Cnc/Heidenhain/HeidenhainConnectionConfig.cs @@ -0,0 +1,15 @@ +using System; + +namespace FanucProgramManager.Cnc.Heidenhain +{ + public sealed class HeidenhainConnectionConfig + { + public string Name { get; set; } + public string IpAddress { get; set; } + ///

LSV2 data port — default 19000. + public int Port { get; set; } = 19000; + public string Username { get; set; } = string.Empty; + public string Password { get; set; } = string.Empty; + public TimeSpan ConnectTimeout { get; set; } = TimeSpan.FromSeconds(5); + } +} diff --git a/Cnc/Heidenhain/HeidenhainMachine.cs b/Cnc/Heidenhain/HeidenhainMachine.cs new file mode 100644 index 0000000..fb03314 --- /dev/null +++ b/Cnc/Heidenhain/HeidenhainMachine.cs @@ -0,0 +1,201 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using FanucProgramManager.Cnc; +using FanucProgramManager.Cnc.Models; + +namespace FanucProgramManager.Cnc.Heidenhain +{ + public sealed class HeidenhainMachine : ICncMachine + { + private readonly HeidenhainConnectionConfig _config; + private readonly INcProgramValidator _validator; + private readonly List _errors = new List(); + private readonly SemaphoreSlim _gate = new SemaphoreSlim(1, 1); + private ILsv2Client _client; + private ConnectionState _state = ConnectionState.Disconnected; + + public HeidenhainMachine(HeidenhainConnectionConfig config) + { + if (config == null) throw new ArgumentNullException("config"); + _config = config; + _validator = new NcProgramValidator(CncManufacturer.Heidenhain); + } + + internal HeidenhainMachine(HeidenhainConnectionConfig config, ILsv2Client client, + INcProgramValidator validator = null) + { + _config = config ?? throw new ArgumentNullException("config"); + _client = client ?? throw new ArgumentNullException("client"); + _validator = validator ?? new NcProgramValidator(CncManufacturer.Heidenhain); + _state = ConnectionState.Connected; + } + + public string Name => _config.Name; + public ConnectionState State => _state; + + public event EventHandler StateChanged; + + public Task> ConnectAsync(CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + SetState(ConnectionState.Connecting); + _client = new Lsv2Client(_config); + if (!_client.Connect()) + { + SetState(ConnectionState.Faulted); + _errors.Add(new CncError(0, "Connect", "LSV2 connection or login failed")); + return false; + } + SetState(ConnectionState.Connected); + return true; + }, ct); + } + + public Task DisconnectAsync() + { + return RunGuardedAsync(() => + { + if (_client != null) + { + _client.Disconnect(); + _client = null; + } + SetState(ConnectionState.Disconnected); + return true; + }, CancellationToken.None); + } + + public Task> ReadProgramAsync(string path, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + EnsureConnected(); + string content = _client.ReceiveFile(path); + if (content == null) + _errors.Add(new CncError(0, "ReadProgram", "ReceiveFile returned null for: " + path)); + return content; + }, ct); + } + + public Task> WriteProgramAsync(string path, CncProgram program, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + EnsureConnected(); + if (program == null || string.IsNullOrEmpty(program.Content)) + { + _errors.Add(new CncError(0, "WriteProgram", "Program content is empty")); + return false; + } + var vr = _validator.Validate(program.Name ?? path, program.Content); + if (!vr.Success) + { + string msg = string.Join("; ", vr.Errors + .Where(e => e.Severity == ValidationSeverity.Error) + .Select(e => e.Message)); + _errors.Add(new CncError(0, "Validator", msg)); + return false; + } + string ncPath = BuildNcPath(path, program.Name); + bool ok = _client.SendFile(ncPath, program.Content); + if (!ok) _errors.Add(new CncError(0, "WriteProgram", "SendFile failed for: " + ncPath)); + return ok; + }, ct); + } + + public Task> ReadAsync(CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + EnsureConnected(); + return new MachineSnapshot + { + CapturedAt = DateTime.Now, + Mode = MachineMode.Unknown, + Run = RunState.Unknown, + Motion = MotionState.Unknown, + Alarms = new List(), + OperatorMessages = new List() + }; + }, ct); + } + + public Task> ReadActiveProgramAsync(CancellationToken ct = default(CancellationToken)) => + Task.FromResult(CncResult.Fail("ReadActiveProgram", "Not supported via basic LSV2")); + + public Task> SelectMainProgramAsync(string path, CancellationToken ct = default(CancellationToken)) => + Task.FromResult(CncResult.Fail("SelectMainProgram", "Not supported via basic LSV2")); + + public Task> DeleteProgramAsync(string path, CancellationToken ct = default(CancellationToken)) => + Task.FromResult(CncResult.Fail("DeleteProgram", "Not supported via basic LSV2")); + + public void Dispose() + { + try { DisconnectAsync().GetAwaiter().GetResult(); } catch { } + try { _gate.Dispose(); } catch { } + } + + // ── private ────────────────────────────────────────────────────────── + + private async Task> RunGuardedAsync(Func body, CancellationToken ct) + { + await _gate.WaitAsync(ct).ConfigureAwait(false); + try + { + return await Task.Run(() => + { + _errors.Clear(); + try + { + T value = body(); + return _errors.Count > 0 + ? CncResult.Fail(_errors.ToArray()) + : CncResult.Ok(value); + } + catch (OperationCanceledException) + { + return CncResult.Cancelled(); + } + catch (Exception ex) + { + _errors.Add(new CncError(0, "HeidenhainMachine", ex.Message)); + return CncResult.Fail(_errors.ToArray()); + } + }, ct).ConfigureAwait(false); + } + finally + { + _gate.Release(); + } + } + + private void EnsureConnected() + { + if (_state != ConnectionState.Connected || _client == null) + throw new InvalidOperationException("HeidenhainMachine is not connected."); + } + + private void SetState(ConnectionState next) + { + if (_state == next) return; + _state = next; + var h = StateChanged; + if (h != null) + { + try { h(this, next); } catch { } + } + } + + private static string BuildNcPath(string folder, string name) + { + if (string.IsNullOrEmpty(name)) return folder; + string sep = (folder.EndsWith("\\") || folder.EndsWith("/")) ? "" : "\\"; + string ext = name.Contains(".") ? "" : ".H"; + return folder + sep + name + ext; + } + } +} diff --git a/Cnc/Heidenhain/ILsv2Client.cs b/Cnc/Heidenhain/ILsv2Client.cs new file mode 100644 index 0000000..53a9519 --- /dev/null +++ b/Cnc/Heidenhain/ILsv2Client.cs @@ -0,0 +1,10 @@ +namespace FanucProgramManager.Cnc.Heidenhain +{ + internal interface ILsv2Client + { + bool Connect(); + void Disconnect(); + string ReceiveFile(string ncPath); + bool SendFile(string ncPath, string content); + } +} diff --git a/Cnc/Heidenhain/Lsv2Client.cs b/Cnc/Heidenhain/Lsv2Client.cs new file mode 100644 index 0000000..39b2ce7 --- /dev/null +++ b/Cnc/Heidenhain/Lsv2Client.cs @@ -0,0 +1,180 @@ +using System; +using System.Net.Sockets; +using System.Text; + +namespace FanucProgramManager.Cnc.Heidenhain +{ + /// LSV2 protocol client for Heidenhain TNC controls. + internal sealed class Lsv2Client : ILsv2Client, IDisposable + { + private TcpClient _tcp; + private NetworkStream _stream; + private readonly HeidenhainConnectionConfig _config; + + private const ushort T_OK = 0x0000; + private const ushort T_SE = 0x0001; + private const ushort T_LS_SELECT = 0x00A0; + private const ushort T_LS_LOG_IN = 0x00A1; + private const ushort T_LS_LOG_OUT = 0x00A2; + private const ushort T_R_FL = 0x0023; + private const ushort T_S_FL = 0x0024; + private const ushort T_FD = 0x0025; + + public Lsv2Client(HeidenhainConnectionConfig config) + { + _config = config; + } + + public bool Connect() + { + _tcp = new TcpClient(); + _tcp.SendTimeout = (int)_config.ConnectTimeout.TotalMilliseconds; + _tcp.ReceiveTimeout = (int)_config.ConnectTimeout.TotalMilliseconds; + if (!_tcp.ConnectAsync(_config.IpAddress, _config.Port).Wait(_config.ConnectTimeout)) + return false; + _stream = _tcp.GetStream(); + return Login(); + } + + public void Disconnect() + { + try { SendCommand(T_LS_LOG_OUT, new byte[0]); } catch { } + try { if (_stream != null) _stream.Close(); } catch { } + try { if (_tcp != null) _tcp.Close(); } catch { } + } + + /// Upload file from NC to PC. Returns file content or null on failure. + public string ReceiveFile(string ncPath) + { + byte[] pathBytes = Encoding.ASCII.GetBytes(ncPath + "\0"); + SendCommand(T_R_FL, pathBytes); + + var sb = new StringBuilder(); + while (true) + { + ushort cmd; + byte[] data = ReadFrame(out cmd); + if (cmd == T_SE || data == null) return null; + if (cmd == T_OK) break; + if (cmd == T_FD) sb.Append(Encoding.ASCII.GetString(data)); + } + return sb.ToString(); + } + + /// Download file from PC to NC. + public bool SendFile(string ncPath, string content) + { + byte[] pathBytes = Encoding.ASCII.GetBytes(ncPath + "\0"); + byte[] contentBytes = Encoding.ASCII.GetBytes(content); + byte[] payload = new byte[pathBytes.Length + contentBytes.Length]; + Buffer.BlockCopy(pathBytes, 0, payload, 0, pathBytes.Length); + Buffer.BlockCopy(contentBytes, 0, payload, pathBytes.Length, contentBytes.Length); + SendCommand(T_S_FL, payload); + + ushort cmd; + ReadFrame(out cmd); + return cmd == T_OK; + } + + public void Dispose() => Disconnect(); + + // ── private ────────────────────────────────────────────────────────── + + private bool Login() + { + // Select programming mode (3) + byte[] mode = { 0x03 }; + SendCommand(T_LS_SELECT, mode); + ushort cmd; + ReadFrame(out cmd); + if (cmd != T_OK) return false; + + // Authenticate + byte[] user = Encoding.ASCII.GetBytes(_config.Username + "\0"); + byte[] pass = Encoding.ASCII.GetBytes(_config.Password + "\0"); + byte[] cred = new byte[user.Length + pass.Length]; + Buffer.BlockCopy(user, 0, cred, 0, user.Length); + Buffer.BlockCopy(pass, 0, cred, user.Length, pass.Length); + SendCommand(T_LS_LOG_IN, cred); + ReadFrame(out cmd); + return cmd == T_OK; + } + + private void SendCommand(ushort cmdCode, byte[] data) + { + int dataLen = data.Length; + ushort size = (ushort)(2 + dataLen); + + byte sizeHi = (byte)(size >> 8); + byte sizeLo = (byte)(size & 0xFF); + byte cmdHi = (byte)(cmdCode >> 8); + byte cmdLo = (byte)(cmdCode & 0xFF); + + byte[] crcInput = new byte[4 + dataLen]; + crcInput[0] = sizeHi; crcInput[1] = sizeLo; + crcInput[2] = cmdHi; crcInput[3] = cmdLo; + Buffer.BlockCopy(data, 0, crcInput, 4, dataLen); + ushort crc = Crc16(crcInput); + + byte[] frame = new byte[1 + 4 + dataLen + 2]; + int i = 0; + frame[i++] = 0x02; + frame[i++] = sizeHi; + frame[i++] = sizeLo; + frame[i++] = cmdHi; + frame[i++] = cmdLo; + Buffer.BlockCopy(data, 0, frame, i, dataLen); + i += dataLen; + frame[i++] = (byte)(crc >> 8); + frame[i] = (byte)(crc & 0xFF); + + _stream.Write(frame, 0, frame.Length); + } + + private byte[] ReadFrame(out ushort cmd) + { + cmd = 0xFFFF; + int stx = _stream.ReadByte(); + if (stx != 0x02) return null; + + byte sizeHi = (byte)_stream.ReadByte(); + byte sizeLo = (byte)_stream.ReadByte(); + int size = (sizeHi << 8) | sizeLo; + if (size < 2) return null; + + byte cmdHi = (byte)_stream.ReadByte(); + byte cmdLo = (byte)_stream.ReadByte(); + cmd = (ushort)((cmdHi << 8) | cmdLo); + + int dataLen = size - 2; + byte[] data = new byte[dataLen]; + int read = 0; + while (read < dataLen) + { + int n = _stream.Read(data, read, dataLen - read); + if (n == 0) break; + read += n; + } + + // consume CRC bytes + _stream.ReadByte(); + _stream.ReadByte(); + + return data; + } + + private static ushort Crc16(byte[] data) + { + ushort crc = 0xFFFF; + foreach (byte b in data) + { + crc ^= (ushort)(b << 8); + for (int i = 0; i < 8; i++) + crc = (crc & 0x8000) != 0 + ? (ushort)((crc << 1) ^ 0x1021) + : (ushort)(crc << 1); + } + return crc; + } + } +} diff --git a/Cnc/ICncMachine.cs b/Cnc/ICncMachine.cs new file mode 100755 index 0000000..7620727 --- /dev/null +++ b/Cnc/ICncMachine.cs @@ -0,0 +1,26 @@ +using System; +using System.Threading; +using System.Threading.Tasks; +using FanucProgramManager.Cnc.Models; + +namespace FanucProgramManager.Cnc +{ + public interface ICncMachine : IDisposable + { + string Name { get; } + ConnectionState State { get; } + + event EventHandler StateChanged; + + Task> ConnectAsync(CancellationToken ct = default); + Task DisconnectAsync(); + + Task> ReadAsync(CancellationToken ct = default); + + Task> ReadActiveProgramAsync(CancellationToken ct = default); + Task> ReadProgramAsync(string path, CancellationToken ct = default); + Task> WriteProgramAsync(string path, CncProgram program, CancellationToken ct = default); + Task> SelectMainProgramAsync(string path, CancellationToken ct = default); + Task> DeleteProgramAsync(string path, CancellationToken ct = default); + } +} diff --git a/Cnc/IFanucMachine.cs b/Cnc/IFanucMachine.cs new file mode 100644 index 0000000..f6bbe5b --- /dev/null +++ b/Cnc/IFanucMachine.cs @@ -0,0 +1,15 @@ +using System.Threading; +using System.Threading.Tasks; +using FanucProgramManager.Cnc.Models; + +namespace FanucProgramManager.Cnc +{ + /// Fanuc-specific extensions: tool offset and work zero offset transfer. + public interface IFanucMachine : ICncMachine + { + Task> ReadToolDataAsync(string path, CancellationToken ct = default(CancellationToken)); + Task> ReadWorkZeroDataAsync(string path, CancellationToken ct = default(CancellationToken)); + Task> WriteToolDataAsync(string folderPath, string content, CancellationToken ct = default(CancellationToken)); + Task> WriteWorkZeroDataAsync(string folderPath, string content, CancellationToken ct = default(CancellationToken)); + } +} diff --git a/Cnc/INcProgramValidator.cs b/Cnc/INcProgramValidator.cs new file mode 100644 index 0000000..70de428 --- /dev/null +++ b/Cnc/INcProgramValidator.cs @@ -0,0 +1,12 @@ +using FanucProgramManager.Cnc.Models; + +namespace FanucProgramManager.Cnc +{ + /// Validates NC program content before upload to a CNC controller. + public interface INcProgramValidator + { + /// File name or program identifier (used for name-format checks). + /// Full program content string. + ValidationResult Validate(string programName, string content); + } +} diff --git a/Cnc/Mitsubishi/IMitsubishiFtpClient.cs b/Cnc/Mitsubishi/IMitsubishiFtpClient.cs new file mode 100644 index 0000000..4094af6 --- /dev/null +++ b/Cnc/Mitsubishi/IMitsubishiFtpClient.cs @@ -0,0 +1,10 @@ +namespace FanucProgramManager.Cnc.Mitsubishi +{ + internal interface IMitsubishiFtpClient + { + bool Ping(); + string DownloadFile(string ncPath); + void UploadFile(string ncPath, string content); + void DeleteFile(string ncPath); + } +} diff --git a/Cnc/Mitsubishi/MitsubishiConnectionConfig.cs b/Cnc/Mitsubishi/MitsubishiConnectionConfig.cs new file mode 100644 index 0000000..8f018ca --- /dev/null +++ b/Cnc/Mitsubishi/MitsubishiConnectionConfig.cs @@ -0,0 +1,16 @@ +using System; + +namespace FanucProgramManager.Cnc.Mitsubishi +{ + public sealed class MitsubishiConnectionConfig + { + public string Name { get; set; } + public string IpAddress { get; set; } + public int Port { get; set; } = 21; + public string Username { get; set; } = string.Empty; + public string Password { get; set; } = string.Empty; + /// NC directory for programs on the Mitsubishi FTP server. + public string ProgramDirectory { get; set; } = "/PRG/"; + public TimeSpan RequestTimeout { get; set; } = TimeSpan.FromSeconds(10); + } +} diff --git a/Cnc/Mitsubishi/MitsubishiFtpClient.cs b/Cnc/Mitsubishi/MitsubishiFtpClient.cs new file mode 100644 index 0000000..4df970e --- /dev/null +++ b/Cnc/Mitsubishi/MitsubishiFtpClient.cs @@ -0,0 +1,71 @@ +using System; +using System.IO; +using System.Net; +using System.Text; + +namespace FanucProgramManager.Cnc.Mitsubishi +{ + /// FTP client for Mitsubishi M-series CNC program transfer. + internal sealed class MitsubishiFtpClient : IMitsubishiFtpClient + { + private readonly MitsubishiConnectionConfig _config; + + public MitsubishiFtpClient(MitsubishiConnectionConfig config) + { + _config = config ?? throw new ArgumentNullException("config"); + } + + /// Verify FTP server is reachable by listing the program directory. + public bool Ping() + { + try + { + var req = CreateRequest(_config.ProgramDirectory, WebRequestMethods.Ftp.ListDirectory); + using (var resp = (FtpWebResponse)req.GetResponse()) + return resp.StatusCode == FtpStatusCode.DataAlreadyOpen + || resp.StatusCode == FtpStatusCode.OpeningData + || (int)resp.StatusCode / 100 == 2; + } + catch { return false; } + } + + /// Download file from Mitsubishi to string. + public string DownloadFile(string ncPath) + { + var req = CreateRequest(ncPath, WebRequestMethods.Ftp.DownloadFile); + using (var resp = (FtpWebResponse)req.GetResponse()) + using (var reader = new StreamReader(resp.GetResponseStream(), Encoding.ASCII)) + return reader.ReadToEnd(); + } + + /// Upload string content to Mitsubishi. + public void UploadFile(string ncPath, string content) + { + var req = CreateRequest(ncPath, WebRequestMethods.Ftp.UploadFile); + byte[] data = Encoding.ASCII.GetBytes(content); + req.ContentLength = data.Length; + using (var stream = req.GetRequestStream()) + stream.Write(data, 0, data.Length); + using ((FtpWebResponse)req.GetResponse()) { } + } + + public void DeleteFile(string ncPath) + { + var req = CreateRequest(ncPath, WebRequestMethods.Ftp.DeleteFile); + using ((FtpWebResponse)req.GetResponse()) { } + } + + private FtpWebRequest CreateRequest(string path, string method) + { + string uri = string.Format("ftp://{0}:{1}{2}", _config.IpAddress, _config.Port, path); + var req = (FtpWebRequest)WebRequest.Create(uri); + req.Method = method; + req.Credentials = new NetworkCredential(_config.Username, _config.Password); + req.Timeout = (int)_config.RequestTimeout.TotalMilliseconds; + req.KeepAlive = false; + req.UseBinary = false; + req.UsePassive = true; + return req; + } + } +} diff --git a/Cnc/Mitsubishi/MitsubishiMachine.cs b/Cnc/Mitsubishi/MitsubishiMachine.cs new file mode 100644 index 0000000..2c997dd --- /dev/null +++ b/Cnc/Mitsubishi/MitsubishiMachine.cs @@ -0,0 +1,210 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using FanucProgramManager.Cnc; +using FanucProgramManager.Cnc.Models; + +namespace FanucProgramManager.Cnc.Mitsubishi +{ + public sealed class MitsubishiMachine : ICncMachine + { + private readonly MitsubishiConnectionConfig _config; + private readonly IMitsubishiFtpClient _ftp; + private readonly INcProgramValidator _validator; + private readonly List _errors = new List(); + private readonly SemaphoreSlim _gate = new SemaphoreSlim(1, 1); + private ConnectionState _state = ConnectionState.Disconnected; + + public MitsubishiMachine(MitsubishiConnectionConfig config) + { + _config = config ?? throw new ArgumentNullException("config"); + _ftp = new MitsubishiFtpClient(config); + _validator = new NcProgramValidator(CncManufacturer.Mitsubishi); + } + + internal MitsubishiMachine(MitsubishiConnectionConfig config, IMitsubishiFtpClient ftpClient, + INcProgramValidator validator = null) + { + _config = config ?? throw new ArgumentNullException("config"); + _ftp = ftpClient ?? throw new ArgumentNullException("ftpClient"); + _validator = validator ?? new NcProgramValidator(CncManufacturer.Mitsubishi); + } + + public string Name { get { return _config.Name; } } + public ConnectionState State { get { return _state; } } + public event EventHandler StateChanged; + + public Task> ConnectAsync(CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + SetState(ConnectionState.Connecting); + if (!_ftp.Ping()) + { + SetState(ConnectionState.Faulted); + _errors.Add(new CncError(0, "Connect", + string.Format("FTP server unreachable at {0}:{1}", _config.IpAddress, _config.Port))); + return false; + } + SetState(ConnectionState.Connected); + return true; + }, ct); + } + + public Task DisconnectAsync() + { + return RunGuardedAsync(() => + { + SetState(ConnectionState.Disconnected); + return true; + }, CancellationToken.None); + } + + public Task> ReadProgramAsync(string path, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + EnsureConnected(); + string ncPath = ResolvePath(path, null); + try { return _ftp.DownloadFile(ncPath); } + catch (Exception ex) + { + _errors.Add(new CncError(0, "ReadProgram", ex.Message)); + return null; + } + }, ct); + } + + public Task> WriteProgramAsync(string path, CncProgram program, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + EnsureConnected(); + if (program == null || string.IsNullOrEmpty(program.Content)) + { + _errors.Add(new CncError(0, "WriteProgram", "Content is empty")); + return false; + } + var vr = _validator.Validate(program.Name ?? path, program.Content); + if (!vr.Success) + { + string msg = string.Join("; ", vr.Errors + .Where(e => e.Severity == ValidationSeverity.Error) + .Select(e => e.Message)); + _errors.Add(new CncError(0, "Validator", msg)); + return false; + } + string ncPath = ResolvePath(path, program.Name); + try { _ftp.UploadFile(ncPath, program.Content); return true; } + catch (Exception ex) + { + _errors.Add(new CncError(0, "WriteProgram", ex.Message)); + return false; + } + }, ct); + } + + public Task> DeleteProgramAsync(string path, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + EnsureConnected(); + try { _ftp.DeleteFile(path); return true; } + catch (Exception ex) + { + _errors.Add(new CncError(0, "DeleteProgram", ex.Message)); + return false; + } + }, ct); + } + + public Task> ReadAsync(CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + EnsureConnected(); + return new MachineSnapshot + { + CapturedAt = DateTime.Now, + Mode = MachineMode.Unknown, + Run = RunState.Unknown, + Motion = MotionState.Unknown, + Alarms = new List(), + OperatorMessages = new List() + }; + }, ct); + } + + public Task> ReadActiveProgramAsync(CancellationToken ct = default(CancellationToken)) + { + return Task.FromResult(CncResult.Fail("ReadActiveProgram", "Not supported via FTP")); + } + + public Task> SelectMainProgramAsync(string path, CancellationToken ct = default(CancellationToken)) + { + return Task.FromResult(CncResult.Fail("SelectMainProgram", "Not supported via FTP")); + } + + public void Dispose() + { + try { DisconnectAsync().GetAwaiter().GetResult(); } catch { } + try { _gate.Dispose(); } catch { } + } + + private async Task> RunGuardedAsync(Func body, CancellationToken ct) + { + await _gate.WaitAsync(ct).ConfigureAwait(false); + try + { + return await Task.Run(() => + { + _errors.Clear(); + try + { + T value = body(); + return _errors.Count > 0 + ? CncResult.Fail(_errors.ToArray()) + : CncResult.Ok(value); + } + catch (OperationCanceledException) { return CncResult.Cancelled(); } + catch (Exception ex) + { + _errors.Add(new CncError(0, "MitsubishiMachine", ex.Message)); + return CncResult.Fail(_errors.ToArray()); + } + }, ct).ConfigureAwait(false); + } + finally { _gate.Release(); } + } + + private void EnsureConnected() + { + if (_state != ConnectionState.Connected) + throw new InvalidOperationException("MitsubishiMachine is not connected."); + } + + private void SetState(ConnectionState next) + { + if (_state == next) return; + _state = next; + var h = StateChanged; + if (h != null) + { + try { h(this, next); } catch { } + } + } + + /// Build full FTP path. Mitsubishi programs have no extension. + private string ResolvePath(string folder, string name) + { + if (string.IsNullOrEmpty(name)) + return folder.Contains("/") ? folder : _config.ProgramDirectory + folder; + + string dir = folder ?? _config.ProgramDirectory; + if (!dir.EndsWith("/")) dir += "/"; + return dir + name; + } + } +} diff --git a/Cnc/Models/CncError.cs b/Cnc/Models/CncError.cs new file mode 100755 index 0000000..1a7270c --- /dev/null +++ b/Cnc/Models/CncError.cs @@ -0,0 +1,25 @@ +using System; + +namespace FanucProgramManager.Cnc.Models +{ + public sealed class CncError + { + public int Code { get; } + public string Source { get; } + public string Message { get; } + public DateTime At { get; } + + public CncError(int code, string source, string message) + { + Code = code; + Source = source ?? ""; + Message = message ?? ""; + At = DateTime.Now; + } + + public override string ToString() + { + return "[" + Code + "] " + Source + ": " + Message; + } + } +} diff --git a/Cnc/Models/CncManufacturer.cs b/Cnc/Models/CncManufacturer.cs new file mode 100644 index 0000000..d179a5f --- /dev/null +++ b/Cnc/Models/CncManufacturer.cs @@ -0,0 +1,4 @@ +namespace FanucProgramManager.Cnc.Models +{ + public enum CncManufacturer { Fanuc, Heidenhain, Siemens, Mitsubishi } +} diff --git a/Cnc/Models/CncProgram.cs b/Cnc/Models/CncProgram.cs new file mode 100755 index 0000000..0225e8c --- /dev/null +++ b/Cnc/Models/CncProgram.cs @@ -0,0 +1,10 @@ +namespace FanucProgramManager.Cnc.Models +{ + public sealed class CncProgram + { + public string Name { get; set; } + public string Comment { get; set; } + public string Content { get; set; } + public string Path { get; set; } + } +} diff --git a/Cnc/Models/CncResult.cs b/Cnc/Models/CncResult.cs new file mode 100755 index 0000000..e9ac3df --- /dev/null +++ b/Cnc/Models/CncResult.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; + +namespace FanucProgramManager.Cnc.Models +{ + /// Result wrapper for all CNC operations. + public sealed class CncResult + { + public bool Success { get; } + public T Value { get; } + public IReadOnlyList Errors { get; } + public bool WasCancelled { get; } + + private CncResult(bool success, T value, IReadOnlyList errors, bool cancelled) + { + Success = success; + Value = value; + Errors = errors ?? (IReadOnlyList)Array.Empty(); + WasCancelled = cancelled; + } + + public static CncResult Ok(T value) => + new CncResult(true, value, null, false); + + public static CncResult Fail(IReadOnlyList errors) => + new CncResult(false, default(T), errors, false); + + public static CncResult Fail(string source, string message) => + Fail(new[] { new CncError(0, source, message) }); + + public static CncResult Cancelled() => + new CncResult(false, default(T), null, true); + + public override string ToString() + { + if (WasCancelled) return $"CncResult<{typeof(T).Name}>: Cancelled"; + if (!Success) return $"CncResult<{typeof(T).Name}>: Fail ({Errors.Count} errors)"; + return $"CncResult<{typeof(T).Name}>: Ok"; + } + } +} diff --git a/Cnc/Models/ConnectionState.cs b/Cnc/Models/ConnectionState.cs new file mode 100755 index 0000000..460c0e6 --- /dev/null +++ b/Cnc/Models/ConnectionState.cs @@ -0,0 +1,10 @@ +namespace FanucProgramManager.Cnc.Models +{ + public enum ConnectionState + { + Disconnected, + Connecting, + Connected, + Faulted + } +} diff --git a/Cnc/Models/MachineMode.cs b/Cnc/Models/MachineMode.cs new file mode 100755 index 0000000..a901665 --- /dev/null +++ b/Cnc/Models/MachineMode.cs @@ -0,0 +1,12 @@ +namespace FanucProgramManager.Cnc.Models +{ + public enum MachineMode + { + Mdi = 0, + Auto = 1, + Edit = 3, + Handle = 4, + Jog = 5, + Unknown = 255 + } +} diff --git a/Cnc/Models/MachineSnapshot.cs b/Cnc/Models/MachineSnapshot.cs new file mode 100755 index 0000000..a94646f --- /dev/null +++ b/Cnc/Models/MachineSnapshot.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; + +namespace FanucProgramManager.Cnc.Models +{ + public sealed class MachineSnapshot + { + public string MainProgram { get; set; } + public string SubProgram { get; set; } + public string ProgramComment { get; set; } + public MachineMode Mode { get; set; } + public RunState Run { get; set; } + public MotionState Motion { get; set; } + public bool Emergency { get; set; } + public bool AlarmActive { get; set; } + public TimeSpan CycleTime { get; set; } + public long PieceCount { get; set; } + public IReadOnlyList Alarms { get; set; } + public IReadOnlyList OperatorMessages { get; set; } + public DateTime CapturedAt { get; set; } + } +} diff --git a/Cnc/Models/MotionState.cs b/Cnc/Models/MotionState.cs new file mode 100755 index 0000000..2c583d2 --- /dev/null +++ b/Cnc/Models/MotionState.cs @@ -0,0 +1,10 @@ +namespace FanucProgramManager.Cnc.Models +{ + public enum MotionState + { + Idle = 0, + Moving = 1, + Hold = 2, + Unknown = 255 + } +} diff --git a/Cnc/Models/RunState.cs b/Cnc/Models/RunState.cs new file mode 100755 index 0000000..961f987 --- /dev/null +++ b/Cnc/Models/RunState.cs @@ -0,0 +1,9 @@ +namespace FanucProgramManager.Cnc.Models +{ + public enum RunState + { + Stop = 1, + ExecutingIso = 3, + Unknown = 255 + } +} diff --git a/Cnc/Models/ValidationError.cs b/Cnc/Models/ValidationError.cs new file mode 100644 index 0000000..608b7df --- /dev/null +++ b/Cnc/Models/ValidationError.cs @@ -0,0 +1,21 @@ +namespace FanucProgramManager.Cnc.Models +{ + public sealed class ValidationError + { + public int Line { get; } + public string Message { get; } + public ValidationSeverity Severity { get; } + + public ValidationError(int line, string message, ValidationSeverity severity) + { + Line = line; + Message = message ?? ""; + Severity = severity; + } + + public override string ToString() + { + return string.Format("[{0}] Line {1}: {2}", Severity, Line, Message); + } + } +} diff --git a/Cnc/Models/ValidationResult.cs b/Cnc/Models/ValidationResult.cs new file mode 100644 index 0000000..d132474 --- /dev/null +++ b/Cnc/Models/ValidationResult.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; + +namespace FanucProgramManager.Cnc.Models +{ + public sealed class ValidationResult + { + public bool Success { get; } + public IReadOnlyList Errors { get; } + + private ValidationResult(bool success, IReadOnlyList errors) + { + Success = success; + Errors = errors ?? new ValidationError[0]; + } + + public static ValidationResult Ok() + { + return new ValidationResult(true, new ValidationError[0]); + } + + public static ValidationResult Fail(IReadOnlyList errors) + { + return new ValidationResult(false, errors); + } + + /// Success result that still carries warning-level entries. + public static ValidationResult OkWithWarnings(IReadOnlyList warnings) + { + return new ValidationResult(true, warnings); + } + } +} diff --git a/Cnc/Models/ValidationSeverity.cs b/Cnc/Models/ValidationSeverity.cs new file mode 100644 index 0000000..66e501a --- /dev/null +++ b/Cnc/Models/ValidationSeverity.cs @@ -0,0 +1,4 @@ +namespace FanucProgramManager.Cnc.Models +{ + public enum ValidationSeverity { Error, Warning } +} diff --git a/Cnc/NcProgramValidator.cs b/Cnc/NcProgramValidator.cs new file mode 100644 index 0000000..7709822 --- /dev/null +++ b/Cnc/NcProgramValidator.cs @@ -0,0 +1,215 @@ +using System; +using System.Collections.Generic; +using System.Text.RegularExpressions; +using FanucProgramManager.Cnc.Models; + +namespace FanucProgramManager.Cnc +{ + /// Validates NC program content per-manufacturer before upload. + public sealed class NcProgramValidator : INcProgramValidator + { + private const int MaxBlockLength = 80; + private const int MaxCommentLength = 32; + + private static readonly Regex FanucNamePattern = new Regex(@"^O\d{4}$", RegexOptions.Compiled); + private static readonly Regex FanucFirstLinePattern = new Regex(@"^O\d{4}", RegexOptions.Compiled); + + private readonly CncManufacturer _manufacturer; + + public NcProgramValidator(CncManufacturer manufacturer) + { + _manufacturer = manufacturer; + } + + public ValidationResult Validate(string programName, string content) + { + var errors = new List(); + + // Name-format check (uses just the bare filename without path) + string name = ExtractName(programName); + ValidateName(name, errors); + + if (string.IsNullOrEmpty(content)) + return errors.Count == 0 ? ValidationResult.Ok() : ValidationResult.Fail(errors); + + // Normalise: strip CR, split on LF + string normalized = content.Replace("\r", ""); + string[] lines = normalized.Split('\n'); + + // First-line check (Fanuc/Mitsubishi) + if ((_manufacturer == CncManufacturer.Fanuc || _manufacturer == CncManufacturer.Mitsubishi) + && lines.Length > 0) + { + string first = lines[0].Trim(); + if (!FanucFirstLinePattern.IsMatch(first)) + errors.Add(new ValidationError(1, "First line must be O#### program number", ValidationSeverity.Error)); + } + + for (int i = 0; i < lines.Length; i++) + { + int lineNum = i + 1; + string line = lines[i]; + + // Tab check + if (line.IndexOf('\t') >= 0) + errors.Add(new ValidationError(lineNum, "Tab character not allowed", ValidationSeverity.Error)); + + // Lowercase check + for (int ci = 0; ci < line.Length; ci++) + { + if (char.IsLower(line[ci])) + { + errors.Add(new ValidationError(lineNum, "Lowercase letters not allowed", ValidationSeverity.Error)); + break; + } + } + + // Block length + if (line.Length > MaxBlockLength) + errors.Add(new ValidationError(lineNum, + string.Format("Block length {0} exceeds 80 chars", line.Length), + ValidationSeverity.Error)); + + // Nested parens + comment length + ValidateParensAndComments(line, lineNum, errors); + + // Forbidden chars per manufacturer + ValidateForbiddenChars(line, lineNum, errors); + } + + bool hasErrors = false; + for (int i = 0; i < errors.Count; i++) + if (errors[i].Severity == ValidationSeverity.Error) { hasErrors = true; break; } + + if (hasErrors) + return ValidationResult.Fail(errors); + // Preserve warnings even when overall result is Success + return errors.Count == 0 ? ValidationResult.Ok() : ValidationResult.OkWithWarnings(errors); + } + + // ── private helpers ─────────────────────────────────────────────────── + + private void ValidateName(string name, List errors) + { + if (string.IsNullOrEmpty(name)) return; + + switch (_manufacturer) + { + case CncManufacturer.Fanuc: + case CncManufacturer.Mitsubishi: + if (!FanucNamePattern.IsMatch(name)) + errors.Add(new ValidationError(0, + string.Format("Program name '{0}' must match O####", name), + ValidationSeverity.Error)); + break; + + case CncManufacturer.Siemens: + if (!name.EndsWith(".MPF")) + errors.Add(new ValidationError(0, + string.Format("Program name '{0}' must end with .MPF", name), + ValidationSeverity.Error)); + break; + + case CncManufacturer.Heidenhain: + if (!name.EndsWith(".H")) + errors.Add(new ValidationError(0, + string.Format("Program name '{0}' must end with .H", name), + ValidationSeverity.Error)); + break; + } + } + + private void ValidateParensAndComments(string line, int lineNum, List errors) + { + int depth = 0; + int commentStart = -1; + + for (int i = 0; i < line.Length; i++) + { + char c = line[i]; + if (c == '(') + { + depth++; + if (depth > 1) + { + errors.Add(new ValidationError(lineNum, "Nested parentheses not allowed", ValidationSeverity.Error)); + // Don't keep adding the same error for this line + return; + } + commentStart = i; + } + else if (c == ')') + { + if (depth == 1 && commentStart >= 0) + { + // Extract comment content between the parens + int len = i - commentStart - 1; + if (len > MaxCommentLength) + errors.Add(new ValidationError(lineNum, + string.Format("Comment length {0} exceeds 32 chars", len), + ValidationSeverity.Error)); + } + if (depth > 0) depth--; + commentStart = -1; + } + } + } + + private void ValidateForbiddenChars(string line, int lineNum, List errors) + { + switch (_manufacturer) + { + case CncManufacturer.Fanuc: + case CncManufacturer.Mitsubishi: + for (int i = 0; i < line.Length; i++) + { + char c = line[i]; + if (c == ';' || c == '[' || c == ']') + { + errors.Add(new ValidationError(lineNum, + string.Format("Forbidden char '{0}' for Fanuc/Mitsubishi", c), + ValidationSeverity.Error)); + } + else if (c == '#') + { + errors.Add(new ValidationError(lineNum, + "Macro variable '#' detected — verify macro support on target CNC", + ValidationSeverity.Warning)); + } + } + break; + + case CncManufacturer.Siemens: + for (int i = 0; i < line.Length; i++) + { + if (line[i] == ';') + errors.Add(new ValidationError(lineNum, + "Forbidden char ';' for Siemens (use () for comments)", + ValidationSeverity.Error)); + } + break; + + case CncManufacturer.Heidenhain: + for (int i = 0; i < line.Length; i++) + { + char c = line[i]; + if (c == '%' || c == ';') + errors.Add(new ValidationError(lineNum, + string.Format("Forbidden char '{0}' for Heidenhain", c), + ValidationSeverity.Error)); + } + break; + } + } + + /// Extracts bare filename from a path (strips directory prefix). + private static string ExtractName(string programName) + { + if (string.IsNullOrEmpty(programName)) return programName; + int slash = programName.LastIndexOf('/'); + int backslash = programName.LastIndexOf('\\'); + int sep = slash > backslash ? slash : backslash; + return sep >= 0 ? programName.Substring(sep + 1) : programName; + } + } +} diff --git a/Cnc/Siemens/ISiemensFtpClient.cs b/Cnc/Siemens/ISiemensFtpClient.cs new file mode 100644 index 0000000..26fe945 --- /dev/null +++ b/Cnc/Siemens/ISiemensFtpClient.cs @@ -0,0 +1,10 @@ +namespace FanucProgramManager.Cnc.Siemens +{ + internal interface ISiemensFtpClient + { + bool Ping(); + string DownloadFile(string ncPath); + void UploadFile(string ncPath, string content); + void DeleteFile(string ncPath); + } +} diff --git a/Cnc/Siemens/SiemensConnectionConfig.cs b/Cnc/Siemens/SiemensConnectionConfig.cs new file mode 100644 index 0000000..762e2d5 --- /dev/null +++ b/Cnc/Siemens/SiemensConnectionConfig.cs @@ -0,0 +1,16 @@ +using System; + +namespace FanucProgramManager.Cnc.Siemens +{ + public sealed class SiemensConnectionConfig + { + public string Name { get; set; } + public string IpAddress { get; set; } + public int Port { get; set; } = 21; + public string Username { get; set; } = string.Empty; + public string Password { get; set; } = string.Empty; + /// NC directory for main programs on the CNC FTP server. + public string ProgramDirectory { get; set; } = "/_N_MPF_DIR/"; + public TimeSpan RequestTimeout { get; set; } = TimeSpan.FromSeconds(10); + } +} diff --git a/Cnc/Siemens/SiemensFtpClient.cs b/Cnc/Siemens/SiemensFtpClient.cs new file mode 100644 index 0000000..ab7d1ff --- /dev/null +++ b/Cnc/Siemens/SiemensFtpClient.cs @@ -0,0 +1,71 @@ +using System; +using System.IO; +using System.Net; +using System.Text; + +namespace FanucProgramManager.Cnc.Siemens +{ + /// FTP client for Siemens Sinumerik CNC program transfer. + internal sealed class SiemensFtpClient : ISiemensFtpClient + { + private readonly SiemensConnectionConfig _config; + + public SiemensFtpClient(SiemensConnectionConfig config) + { + _config = config ?? throw new ArgumentNullException("config"); + } + + /// Verify FTP server is reachable by listing the program directory. + public bool Ping() + { + try + { + var req = CreateRequest(_config.ProgramDirectory, WebRequestMethods.Ftp.ListDirectory); + using (var resp = (FtpWebResponse)req.GetResponse()) + return resp.StatusCode == FtpStatusCode.DataAlreadyOpen + || resp.StatusCode == FtpStatusCode.OpeningData + || (int)resp.StatusCode / 100 == 2; + } + catch { return false; } + } + + /// Download file from Sinumerik to string (upload from CNC perspective). + public string DownloadFile(string ncPath) + { + var req = CreateRequest(ncPath, WebRequestMethods.Ftp.DownloadFile); + using (var resp = (FtpWebResponse)req.GetResponse()) + using (var reader = new StreamReader(resp.GetResponseStream(), Encoding.ASCII)) + return reader.ReadToEnd(); + } + + /// Upload string content to Sinumerik (download from CNC perspective). + public void UploadFile(string ncPath, string content) + { + var req = CreateRequest(ncPath, WebRequestMethods.Ftp.UploadFile); + byte[] data = Encoding.ASCII.GetBytes(content); + req.ContentLength = data.Length; + using (var stream = req.GetRequestStream()) + stream.Write(data, 0, data.Length); + using ((FtpWebResponse)req.GetResponse()) { } + } + + public void DeleteFile(string ncPath) + { + var req = CreateRequest(ncPath, WebRequestMethods.Ftp.DeleteFile); + using ((FtpWebResponse)req.GetResponse()) { } + } + + private FtpWebRequest CreateRequest(string path, string method) + { + string uri = string.Format("ftp://{0}:{1}{2}", _config.IpAddress, _config.Port, path); + var req = (FtpWebRequest)WebRequest.Create(uri); + req.Method = method; + req.Credentials = new NetworkCredential(_config.Username, _config.Password); + req.Timeout = (int)_config.RequestTimeout.TotalMilliseconds; + req.KeepAlive = false; + req.UseBinary = false; + req.UsePassive = true; + return req; + } + } +} diff --git a/Cnc/Siemens/SiemensMachine.cs b/Cnc/Siemens/SiemensMachine.cs new file mode 100644 index 0000000..0c201a1 --- /dev/null +++ b/Cnc/Siemens/SiemensMachine.cs @@ -0,0 +1,211 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using FanucProgramManager.Cnc; +using FanucProgramManager.Cnc.Models; + +namespace FanucProgramManager.Cnc.Siemens +{ + public sealed class SiemensMachine : ICncMachine + { + private readonly SiemensConnectionConfig _config; + private readonly ISiemensFtpClient _ftp; + private readonly INcProgramValidator _validator; + private readonly List _errors = new List(); + private readonly SemaphoreSlim _gate = new SemaphoreSlim(1, 1); + private ConnectionState _state = ConnectionState.Disconnected; + + public SiemensMachine(SiemensConnectionConfig config) + { + _config = config ?? throw new ArgumentNullException("config"); + _ftp = new SiemensFtpClient(config); + _validator = new NcProgramValidator(CncManufacturer.Siemens); + } + + internal SiemensMachine(SiemensConnectionConfig config, ISiemensFtpClient ftpClient, + INcProgramValidator validator = null) + { + _config = config ?? throw new ArgumentNullException("config"); + _ftp = ftpClient ?? throw new ArgumentNullException("ftpClient"); + _validator = validator ?? new NcProgramValidator(CncManufacturer.Siemens); + } + + public string Name { get { return _config.Name; } } + public ConnectionState State { get { return _state; } } + public event EventHandler StateChanged; + + public Task> ConnectAsync(CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + SetState(ConnectionState.Connecting); + if (!_ftp.Ping()) + { + SetState(ConnectionState.Faulted); + _errors.Add(new CncError(0, "Connect", + string.Format("FTP server unreachable at {0}:{1}", _config.IpAddress, _config.Port))); + return false; + } + SetState(ConnectionState.Connected); + return true; + }, ct); + } + + public Task DisconnectAsync() + { + return RunGuardedAsync(() => + { + SetState(ConnectionState.Disconnected); + return true; + }, CancellationToken.None); + } + + public Task> ReadProgramAsync(string path, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + EnsureConnected(); + string ncPath = ResolvePath(path, null); + try { return _ftp.DownloadFile(ncPath); } + catch (Exception ex) + { + _errors.Add(new CncError(0, "ReadProgram", ex.Message)); + return null; + } + }, ct); + } + + public Task> WriteProgramAsync(string path, CncProgram program, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + EnsureConnected(); + if (program == null || string.IsNullOrEmpty(program.Content)) + { + _errors.Add(new CncError(0, "WriteProgram", "Content is empty")); + return false; + } + var vr = _validator.Validate(program.Name ?? path, program.Content); + if (!vr.Success) + { + string msg = string.Join("; ", vr.Errors + .Where(e => e.Severity == ValidationSeverity.Error) + .Select(e => e.Message)); + _errors.Add(new CncError(0, "Validator", msg)); + return false; + } + string ncPath = ResolvePath(path, program.Name); + try { _ftp.UploadFile(ncPath, program.Content); return true; } + catch (Exception ex) + { + _errors.Add(new CncError(0, "WriteProgram", ex.Message)); + return false; + } + }, ct); + } + + public Task> DeleteProgramAsync(string path, CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + EnsureConnected(); + try { _ftp.DeleteFile(path); return true; } + catch (Exception ex) + { + _errors.Add(new CncError(0, "DeleteProgram", ex.Message)); + return false; + } + }, ct); + } + + public Task> ReadAsync(CancellationToken ct = default(CancellationToken)) + { + return RunGuardedAsync(() => + { + EnsureConnected(); + return new MachineSnapshot + { + CapturedAt = DateTime.Now, + Mode = MachineMode.Unknown, + Run = RunState.Unknown, + Motion = MotionState.Unknown, + Alarms = new List(), + OperatorMessages = new List() + }; + }, ct); + } + + public Task> ReadActiveProgramAsync(CancellationToken ct = default(CancellationToken)) + { + return Task.FromResult(CncResult.Fail("ReadActiveProgram", "Not supported via FTP")); + } + + public Task> SelectMainProgramAsync(string path, CancellationToken ct = default(CancellationToken)) + { + return Task.FromResult(CncResult.Fail("SelectMainProgram", "Not supported via FTP")); + } + + public void Dispose() + { + try { DisconnectAsync().GetAwaiter().GetResult(); } catch { } + try { _gate.Dispose(); } catch { } + } + + private async Task> RunGuardedAsync(Func body, CancellationToken ct) + { + await _gate.WaitAsync(ct).ConfigureAwait(false); + try + { + return await Task.Run(() => + { + _errors.Clear(); + try + { + T value = body(); + return _errors.Count > 0 + ? CncResult.Fail(_errors.ToArray()) + : CncResult.Ok(value); + } + catch (OperationCanceledException) { return CncResult.Cancelled(); } + catch (Exception ex) + { + _errors.Add(new CncError(0, "SiemensMachine", ex.Message)); + return CncResult.Fail(_errors.ToArray()); + } + }, ct).ConfigureAwait(false); + } + finally { _gate.Release(); } + } + + private void EnsureConnected() + { + if (_state != ConnectionState.Connected) + throw new InvalidOperationException("SiemensMachine is not connected."); + } + + private void SetState(ConnectionState next) + { + if (_state == next) return; + _state = next; + var h = StateChanged; + if (h != null) + { + try { h(this, next); } catch { } + } + } + + /// Build full FTP path. If name given, appends it with .MPF extension. + private string ResolvePath(string folder, string name) + { + if (string.IsNullOrEmpty(name)) + return folder.Contains("/") ? folder : _config.ProgramDirectory + folder + ".MPF"; + + string dir = folder ?? _config.ProgramDirectory; + if (!dir.EndsWith("/")) dir += "/"; + string ext = name.Contains(".") ? "" : ".MPF"; + return dir + name + ext; + } + } +} diff --git a/Dockerfile.test b/Dockerfile.test new file mode 100644 index 0000000..85b1c56 --- /dev/null +++ b/Dockerfile.test @@ -0,0 +1,37 @@ +FROM mono:6.12 + +WORKDIR /build + +# Sync Mozilla root certs into Mono trust store — required for NuGet HTTPS on Buster +RUN cert-sync /etc/ssl/certs/ca-certificates.crt + +# Copy solution + projects first for layer caching +COPY FanucProgramManager.csproj ./ +COPY packages.config ./ +COPY FanucProgramManager.Tests/FanucProgramManager.Tests.csproj ./FanucProgramManager.Tests/ +COPY FanucProgramManager.Tests/packages.config ./FanucProgramManager.Tests/ +COPY FanucProgramManager.sln ./ + +# Restore all packages (sln now includes test project) +RUN nuget restore FanucProgramManager.sln -NonInteractive +# Explicit fallback: restore test packages.config directly to same packages dir +RUN nuget restore FanucProgramManager.Tests/packages.config \ + -OutputDirectory packages -NonInteractive +# Grab NUnit console runner +RUN nuget install NUnit.ConsoleRunner -Version 3.16.3 -OutputDirectory packages -NonInteractive + +# Copy source +COPY . . + +# Make libs dir explicit (native Win32 DLLs — needed by csproj Content entries, not executed on Linux) +RUN ls Cnc/Fanuc/libs/ || true + +# Build test project (Debug) +RUN msbuild FanucProgramManager.Tests/FanucProgramManager.Tests.csproj \ + /p:Configuration=Debug /p:Platform=AnyCPU \ + /v:minimal /nologo + +# Run tests — skip Fanuc FOCAS tests (marked [Ignore] — need fwlib32.dll) +CMD mono packages/NUnit.ConsoleRunner.3.16.3/tools/nunit3-console.exe \ + FanucProgramManager.Tests/bin/Debug/FanucProgramManager.Tests.dll \ + --labels=All diff --git a/FANUCMachine.cs b/FANUCMachine.cs new file mode 100755 index 0000000..f00d241 --- /dev/null +++ b/FANUCMachine.cs @@ -0,0 +1,1094 @@ +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 new file mode 100755 index 0000000..1e14dd7 --- /dev/null +++ b/FanucProgram.cs @@ -0,0 +1,192 @@ +using System; +using System.Text.RegularExpressions; + +namespace FanucProgramManager +{ + internal class FanucProgram + { + + private static Regex titleRegex = new Regex(@"(\b[O]+\d{4}\b)|(\b\d{4}\b)"); //cerca per O#### o #### dove # è un carattere numerico + private static Regex oldTitleRegex = new Regex(@"\<((\b[O]+\d{4}\b)|(\b\d{4}\b))\>");//cerca per o #### dove # è un carattere numerico + private static Regex titleAndCommentRegex = new Regex(@"((\b[O]+\d{4}\b)|(\b\d{4}\b))+(\n|(\s*\((.*?)\)))"); + private static Regex commentRegex = new Regex(@"\((.*?)\)"); + + private const string programStringName = "program:"; + private const string toolOffsetDataName = "tooloffsetdata:"; + private const string workZeroOffsetDataName = "workzerooffset:"; + + private static Regex programRegex = new Regex(@"program:\{\n((?:.*?|\n)*?)\}"); + private static Regex toolOffsetDataRegex = new Regex(@"tooloffsetdata:\{\n((?:.*?|\n)*?)\}"); + private static Regex workZeroOffsetDataRegex = new Regex(@"workzerooffset:\{\n((?:.*?|\n)*?)\}"); + + + public String Program; + public String ToolOffsetData; + public String WorkZeroOffsetData; + + public void setValue(String value, FILE_TYPE type) + { + switch (type) + { + case FILE_TYPE.CNC_PROGRAM: Program = value; break; + case FILE_TYPE.TOOL_OFFEST_DATA: ToolOffsetData = value; break; + case FILE_TYPE.WORK_ZERO_OFFSET: WorkZeroOffsetData = value; break; + } + Standardize(); + } + public enum FILE_TYPE : short + { + CNC_PROGRAM = 0, + TOOL_OFFEST_DATA = 1, + WORK_ZERO_OFFSET = 5 + } + + public FanucProgram(string _program) + { + var programMatch = programRegex.Match(_program); + if (programMatch.Success) + { + Program = programMatch.Value.Substring(9); + Program = Program.Trim('}'); + } + else Program = null; + + var toolOffsetDataMatch = toolOffsetDataRegex.Match(_program); + if (toolOffsetDataMatch.Success) + { + ToolOffsetData = toolOffsetDataMatch.Value.Substring(16); + ToolOffsetData = ToolOffsetData.Trim('}'); + } + else ToolOffsetData = null; + + var workZeroOffsetDataMatch = workZeroOffsetDataRegex.Match(_program); + if (workZeroOffsetDataMatch.Success) + { + WorkZeroOffsetData = workZeroOffsetDataMatch.Value.Substring(16); + WorkZeroOffsetData = WorkZeroOffsetData.Trim('}'); + } + else WorkZeroOffsetData = null; + + //Old program format with ONLY the program outside of brachets + if (!programMatch.Success && !toolOffsetDataMatch.Success && !workZeroOffsetDataMatch.Success) + { + Program = _program; + } + + Standardize(); + } + + public string GetProgramTitle() + { + var match = titleRegex.Match(Program); + if (match.Success) + { + return match.Value; + } + throw new InvalidOperationException("Regex could not match any program title in the file, check program formatting for a O#### patern"); + } + + public static string GetProgramTitle(string program) + { + var match = titleRegex.Match(program); + if (match.Success) + { + return match.Value; + } + throw new InvalidOperationException("Regex could not match any program title in the file, check program formatting for a O#### patern"); + } + + public string GetProgramComment() + { + var groupMatch = titleAndCommentRegex.Match(Program); + if (groupMatch.Success) + { + Match match = commentRegex.Match(groupMatch.Value); + if (match.Success) + { + return match.Value.Trim(new Char[] { '(', ')' }); + } + } + return ""; + } + + private void Standardize() + { + //removes % from start of file + int percent_index = Program.IndexOf('%'); + if (percent_index == 0) + { + Program = Program.Remove(percent_index, 1); + } + //removes % from start of file + if (ToolOffsetData != null) + { + percent_index = ToolOffsetData.IndexOf('%'); + if (percent_index == 0) + { + ToolOffsetData = ToolOffsetData.Remove(percent_index, 1); + } + } + //removes % from start of file + if (WorkZeroOffsetData != null) + { + percent_index = WorkZeroOffsetData.IndexOf('%'); + if (percent_index == 0) + { + WorkZeroOffsetData = WorkZeroOffsetData.Remove(percent_index, 1); + } + } + + //replace with O#### + var oldTitleMatch = oldTitleRegex.Match(Program); + if (oldTitleMatch.Success) + { + Program = Program.Replace(oldTitleMatch.Value, GetProgramTitle()); + } + + //adds \n to file beginning if missing + int new_line_index = Program.IndexOf('\n'); + if (new_line_index != 0) + { + Program = Program.Substring(Program.IndexOf(GetProgramTitle())); + Program = Program.Insert(0, "\n"); + } + } + + //fornendo un programma CNC e un commento in INPUT restituisce un output nel formato corretto per il caricamento con la funzione download + public void ChangeComment(string comment) + { + string previousComment = GetProgramComment(); + if (previousComment != "") + Program = Program.Replace(previousComment, "(" + comment + ")"); + else + { + Program = Program.Replace(GetProgramTitle(), GetProgramTitle() + "(" + comment + ")"); + } + + } + + public void ChangeProgName(string progName) + { + var match = titleRegex.Match(progName); + if (!match.Success) + { + throw new InvalidOperationException("New Program Name does Not respect the proper formattings O#### patern"); + } + Program.Replace(GetProgramTitle(), progName); + } + + public void ChangeNameAndComment(string progName, string comment) + { + ChangeProgName(progName); + ChangeComment(comment); + } + + public override string ToString() + { + return programStringName + "{\n" + Program + "\n}\n" + + toolOffsetDataName + "{\n" + ToolOffsetData + "\n}\n" + + workZeroOffsetDataName + "{\n" + WorkZeroOffsetData + "\n}\n"; + } + } +} diff --git a/FanucProgramManager.Tests/FanucProgramManager.Tests.csproj b/FanucProgramManager.Tests/FanucProgramManager.Tests.csproj new file mode 100644 index 0000000..c798d9c --- /dev/null +++ b/FanucProgramManager.Tests/FanucProgramManager.Tests.csproj @@ -0,0 +1,70 @@ + + + + + Debug + AnyCPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890} + Library + FanucProgramManager.Tests + FanucProgramManager.Tests + v4.7.2 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + ..\packages\NUnit.3.13.3\lib\net45\nunit.framework.dll + + + ..\packages\Moq.4.18.4\lib\net462\Moq.dll + + + ..\packages\Castle.Core.5.1.1\lib\net462\Castle.Core.dll + + + + + {1032188B-3321-42B2-87ED-343BF718CAF5} + FanucProgramManager + + + + + + + + + + + + + + + + + + + diff --git a/FanucProgramManager.Tests/Integration/HeidenhainMachineIntegrationTests.cs b/FanucProgramManager.Tests/Integration/HeidenhainMachineIntegrationTests.cs new file mode 100644 index 0000000..173217f --- /dev/null +++ b/FanucProgramManager.Tests/Integration/HeidenhainMachineIntegrationTests.cs @@ -0,0 +1,80 @@ +using System; +using NUnit.Framework; +using FanucProgramManager.Cnc.Models; +using FanucProgramManager.Cnc.Heidenhain; +using FanucProgramManager.Tests.Integration.Stubs; + +namespace FanucProgramManager.Tests.Integration +{ + [TestFixture] + [Category("Integration")] + public class HeidenhainMachineIntegrationTests + { + private Lsv2ServerStub _stub; + private HeidenhainMachine _machine; + + [SetUp] + public void SetUp() + { + _stub = new Lsv2ServerStub(); + var config = new HeidenhainConnectionConfig + { + Name = "HeidenhainIntegration", + IpAddress = "127.0.0.1", + Port = _stub.Port, + Username = "user", + Password = "pass", + ConnectTimeout = TimeSpan.FromSeconds(5) + }; + _machine = new HeidenhainMachine(config); + } + + [TearDown] + public void TearDown() + { + _machine?.Dispose(); + _stub?.Dispose(); + } + + [Test] + public void ConnectAsync_StubHandlesLoginHandshake_ResultOk() + { + var result = _machine.ConnectAsync().GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + Assert.That(_machine.State, Is.EqualTo(ConnectionState.Connected)); + } + + [Test] + public void WriteThenRead_ProgramRoundTrips() + { + _machine.ConnectAsync().GetAwaiter().GetResult(); + // Heidenhain: name must end with .H; no % or ; forbidden chars; no lowercase; no O#### required + string content = "L X+0 Y+0 R0 FMAX\nM30"; + var prog = new CncProgram { Name = "O1234.H", Content = content }; + string folder = "TNC:/nc_prog/"; + + var writeResult = _machine.WriteProgramAsync(folder, prog).GetAwaiter().GetResult(); + Assert.That(writeResult.Success, Is.True); + + // HeidenhainMachine appends .H only if name has no extension — name already has .H + string storedPath = folder + "O1234.H"; + Assert.That(_stub.Files.ContainsKey(storedPath), Is.True, + "File should be in stub at " + storedPath); + + var readResult = _machine.ReadProgramAsync(storedPath).GetAwaiter().GetResult(); + Assert.That(readResult.Success, Is.True); + Assert.That(readResult.Value, Is.EqualTo(content)); + } + + [Test] + public void ReadProgramAsync_UnknownPath_ResultIsFail() + { + _machine.ConnectAsync().GetAwaiter().GetResult(); + + var result = _machine.ReadProgramAsync("TNC:/nc_prog/DOESNOTEXIST.H").GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + } + } +} diff --git a/FanucProgramManager.Tests/Integration/MitsubishiMachineIntegrationTests.cs b/FanucProgramManager.Tests/Integration/MitsubishiMachineIntegrationTests.cs new file mode 100644 index 0000000..b937b5f --- /dev/null +++ b/FanucProgramManager.Tests/Integration/MitsubishiMachineIntegrationTests.cs @@ -0,0 +1,96 @@ +using System; +using NUnit.Framework; +using FanucProgramManager.Cnc.Models; +using FanucProgramManager.Cnc.Mitsubishi; +using FanucProgramManager.Tests.Integration.Stubs; + +namespace FanucProgramManager.Tests.Integration +{ + [TestFixture] + [Category("Integration")] + public class MitsubishiMachineIntegrationTests + { + private FtpServerStub _stub; + private MitsubishiMachine _machine; + private const string ProgramDir = "/PRG/"; + + [SetUp] + public void SetUp() + { + _stub = new FtpServerStub(); + var config = new MitsubishiConnectionConfig + { + Name = "MitsubishiIntegration", + IpAddress = "127.0.0.1", + Port = _stub.Port, + Username = "user", + Password = "pass", + ProgramDirectory = ProgramDir, + RequestTimeout = TimeSpan.FromSeconds(5) + }; + _machine = new MitsubishiMachine(config); + } + + [TearDown] + public void TearDown() + { + _machine?.Dispose(); + _stub?.Dispose(); + } + + [Test] + public void ConnectAsync_StubListens_ResultOk() + { + var result = _machine.ConnectAsync().GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + Assert.That(_machine.State, Is.EqualTo(ConnectionState.Connected)); + } + + [Test] + public void WriteThenRead_ProgramRoundTripsNoExtension() + { + _machine.ConnectAsync().GetAwaiter().GetResult(); + // Mitsubishi: name O\d{4}; first line must be O####; no semicolons/brackets; no lowercase + string content = "O1234\nG0 X0 Y0\nM30"; + var prog = new CncProgram { Name = "O1234", Content = content }; + + var writeResult = _machine.WriteProgramAsync(ProgramDir, prog).GetAwaiter().GetResult(); + Assert.That(writeResult.Success, Is.True); + + // Mitsubishi: no extension + string storedPath = ProgramDir + "O1234"; + Assert.That(_stub.Files.ContainsKey(storedPath), Is.True, + "File should be stored without extension at " + storedPath); + Assert.That(_stub.Files.ContainsKey(storedPath + ".MPF"), Is.False, + "File must NOT be stored with .MPF extension"); + + var readResult = _machine.ReadProgramAsync(storedPath).GetAwaiter().GetResult(); + Assert.That(readResult.Success, Is.True); + Assert.That(readResult.Value, Is.EqualTo(content)); + } + + [Test] + public void DeleteProgramAsync_FileExistsInStub_RemovedFromStub() + { + _machine.ConnectAsync().GetAwaiter().GetResult(); + string path = ProgramDir + "O5678"; + _stub.Files[path] = "SOME_CONTENT"; + + var result = _machine.DeleteProgramAsync(path).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + Assert.That(_stub.Files.ContainsKey(path), Is.False); + } + + [Test] + public void ReadProgramAsync_FileNotInStub_ResultFail() + { + _machine.ConnectAsync().GetAwaiter().GetResult(); + + var result = _machine.ReadProgramAsync(ProgramDir + "O9999").GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + } + } +} diff --git a/FanucProgramManager.Tests/Integration/SiemensMachineIntegrationTests.cs b/FanucProgramManager.Tests/Integration/SiemensMachineIntegrationTests.cs new file mode 100644 index 0000000..13f9494 --- /dev/null +++ b/FanucProgramManager.Tests/Integration/SiemensMachineIntegrationTests.cs @@ -0,0 +1,104 @@ +using System; +using NUnit.Framework; +using FanucProgramManager.Cnc.Models; +using FanucProgramManager.Cnc.Siemens; +using FanucProgramManager.Tests.Integration.Stubs; + +namespace FanucProgramManager.Tests.Integration +{ + [TestFixture] + [Category("Integration")] + public class SiemensMachineIntegrationTests + { + private FtpServerStub _stub; + private SiemensMachine _machine; + private const string ProgramDir = "/_N_MPF_DIR/"; + + [SetUp] + public void SetUp() + { + _stub = new FtpServerStub(); + var config = new SiemensConnectionConfig + { + Name = "SiemensIntegration", + IpAddress = "127.0.0.1", + Port = _stub.Port, + Username = "user", + Password = "pass", + ProgramDirectory = ProgramDir, + RequestTimeout = TimeSpan.FromSeconds(5) + }; + _machine = new SiemensMachine(config); + } + + [TearDown] + public void TearDown() + { + _machine?.Dispose(); + _stub?.Dispose(); + } + + [Test] + public void ConnectAsync_StubListens_ResultOk() + { + var result = _machine.ConnectAsync().GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + Assert.That(_machine.State, Is.EqualTo(ConnectionState.Connected)); + } + + [Test] + public void WriteThenRead_ProgramRoundTrips() + { + _machine.ConnectAsync().GetAwaiter().GetResult(); + // Siemens: name must end with .MPF; no semicolons; no lowercase + string content = "G0 X0 Y0\nM30"; + var prog = new CncProgram { Name = "O1234.MPF", Content = content }; + + var writeResult = _machine.WriteProgramAsync(ProgramDir, prog).GetAwaiter().GetResult(); + Assert.That(writeResult.Success, Is.True); + + // Determine where SiemensMachine stored the file + string storedPath = ProgramDir + "O1234.MPF"; + var readResult = _machine.ReadProgramAsync(storedPath).GetAwaiter().GetResult(); + + Assert.That(readResult.Success, Is.True); + Assert.That(readResult.Value, Is.EqualTo(content)); + } + + [Test] + public void DeleteProgramAsync_FileExistsInStub_RemovedFromStub() + { + _machine.ConnectAsync().GetAwaiter().GetResult(); + string path = ProgramDir + "O5678.MPF"; + _stub.Files[path] = "SOME_CONTENT"; + + var result = _machine.DeleteProgramAsync(path).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + Assert.That(_stub.Files.ContainsKey(path), Is.False); + } + + [Test] + public void ReadProgramAsync_FileNotInStub_ResultFail() + { + _machine.ConnectAsync().GetAwaiter().GetResult(); + + var result = _machine.ReadProgramAsync(ProgramDir + "DOESNOTEXIST.MPF").GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + } + + [Test] + public void WriteProgramAsync_InvalidName_ValidationFails() + { + _machine.ConnectAsync().GetAwaiter().GetResult(); + // Siemens requires .MPF extension — validator rejects before any FTP call + var prog = new CncProgram { Name = "INVALID", Content = "G00 X10\nM30" }; + + var result = _machine.WriteProgramAsync(ProgramDir, prog).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + } + } +} diff --git a/FanucProgramManager.Tests/Integration/Stubs/FtpServerStub.cs b/FanucProgramManager.Tests/Integration/Stubs/FtpServerStub.cs new file mode 100644 index 0000000..08f8397 --- /dev/null +++ b/FanucProgramManager.Tests/Integration/Stubs/FtpServerStub.cs @@ -0,0 +1,255 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading; + +namespace FanucProgramManager.Tests.Integration.Stubs +{ + /// + /// Minimal in-process FTP server using passive mode. + /// Supports USER, PASS, SYST, PWD, CWD, TYPE, PASV, LIST, NLST, RETR, STOR, DELE, QUIT. + /// Also accepts OPTS, FEAT, NOOP, CLNT, MODE, STRU as no-ops. + /// All replies use CRLF (per RFC 959), independent of host platform. + /// + public sealed class FtpServerStub : IDisposable + { + private const string CRLF = "\r\n"; + + private readonly TcpListener _listener; + private readonly Thread _acceptThread; + private volatile bool _running; + + public int Port { get; } + + /// In-memory file store: full path → content. + public Dictionary Files { get; } = new Dictionary(StringComparer.OrdinalIgnoreCase); + + public FtpServerStub() + { + _listener = new TcpListener(IPAddress.Loopback, 0); + _listener.Start(); + Port = ((IPEndPoint)_listener.LocalEndpoint).Port; + _running = true; + _acceptThread = new Thread(AcceptLoop) { IsBackground = true, Name = "FtpStub-Accept" }; + _acceptThread.Start(); + } + + public void Dispose() + { + _running = false; + try { _listener.Stop(); } catch { } + } + + private void AcceptLoop() + { + while (_running) + { + TcpClient client; + try { client = _listener.AcceptTcpClient(); } + catch { break; } + var t = new Thread(() => HandleClient(client)) { IsBackground = true, Name = "FtpStub-Client" }; + t.Start(); + } + } + + private static void SendLine(Stream stream, string line) + { + byte[] bytes = Encoding.ASCII.GetBytes(line + CRLF); + stream.Write(bytes, 0, bytes.Length); + stream.Flush(); + } + + private static string ReadLine(Stream stream) + { + var sb = new StringBuilder(); + int prev = -1; + while (true) + { + int b = stream.ReadByte(); + if (b < 0) return sb.Length == 0 ? null : sb.ToString(); + if (b == '\n') + { + if (prev == '\r') + sb.Length = sb.Length - 1; // strip CR + return sb.ToString(); + } + sb.Append((char)b); + prev = b; + } + } + + private void HandleClient(TcpClient client) + { + using (client) + using (var stream = client.GetStream()) + { + string cwd = "/"; + TcpListener dataListener = null; + + SendLine(stream, "220 FtpServerStub ready"); + + string line; + while ((line = ReadLine(stream)) != null) + { + line = line.Trim(); + if (string.IsNullOrEmpty(line)) continue; + + string cmd, arg; + int sp = line.IndexOf(' '); + if (sp >= 0) + { + cmd = line.Substring(0, sp).ToUpperInvariant(); + arg = line.Substring(sp + 1).Trim(); + } + else + { + cmd = line.ToUpperInvariant(); + arg = ""; + } + + switch (cmd) + { + case "USER": + SendLine(stream, "331 Password required"); + break; + + case "PASS": + SendLine(stream, "230 Logged in"); + break; + + case "SYST": + SendLine(stream, "215 UNIX Type: L8"); + break; + + case "FEAT": + SendLine(stream, "211-Features:"); + SendLine(stream, " UTF8"); + SendLine(stream, "211 End"); + break; + + case "OPTS": + case "CLNT": + case "NOOP": + case "MODE": + case "STRU": + case "ALLO": + SendLine(stream, "200 OK"); + break; + + case "PWD": + SendLine(stream, "257 \"" + cwd + "\""); + break; + + case "CWD": + cwd = arg.StartsWith("/") ? arg : cwd.TrimEnd('/') + "/" + arg; + if (!cwd.EndsWith("/")) cwd += "/"; + SendLine(stream, "250 CWD successful"); + break; + + case "TYPE": + SendLine(stream, "200 Type set"); + break; + + case "PASV": + dataListener = new TcpListener(IPAddress.Loopback, 0); + dataListener.Start(); + int dataPort = ((IPEndPoint)dataListener.LocalEndpoint).Port; + int p1 = dataPort >> 8; + int p2 = dataPort & 0xFF; + SendLine(stream, "227 Entering Passive Mode (127,0,0,1," + p1 + "," + p2 + ")"); + break; + + case "LIST": + case "NLST": + if (dataListener == null) { SendLine(stream, "425 No data connection"); break; } + SendLine(stream, "150 Opening data connection"); + try + { + using (var dc = dataListener.AcceptTcpClient()) + using (var ds = dc.GetStream()) + { + // Empty listing — enough for Ping() + } + } + catch { } + try { dataListener.Stop(); } catch { } + dataListener = null; + SendLine(stream, "226 Transfer complete"); + break; + + case "RETR": + if (dataListener == null) { SendLine(stream, "425 No data connection"); break; } + string retrPath = NormalizePath(cwd, arg); + string retrContent; + if (!Files.TryGetValue(retrPath, out retrContent)) + { + try { dataListener.Stop(); } catch { } + dataListener = null; + SendLine(stream, "550 File not found"); + break; + } + SendLine(stream, "150 Opening data connection"); + try + { + using (var dc = dataListener.AcceptTcpClient()) + using (var ds = dc.GetStream()) + { + byte[] bytes = Encoding.ASCII.GetBytes(retrContent); + ds.Write(bytes, 0, bytes.Length); + } + } + catch { } + try { dataListener.Stop(); } catch { } + dataListener = null; + SendLine(stream, "226 Transfer complete"); + break; + + case "STOR": + if (dataListener == null) { SendLine(stream, "425 No data connection"); break; } + string storPath = NormalizePath(cwd, arg); + SendLine(stream, "150 Opening data connection"); + var sb = new StringBuilder(); + try + { + using (var dc = dataListener.AcceptTcpClient()) + using (var ds = dc.GetStream()) + using (var dr = new StreamReader(ds, Encoding.ASCII)) + { + sb.Append(dr.ReadToEnd()); + } + } + catch { } + Files[storPath] = sb.ToString(); + try { dataListener.Stop(); } catch { } + dataListener = null; + SendLine(stream, "226 Transfer complete"); + break; + + case "DELE": + string delePath = NormalizePath(cwd, arg); + Files.Remove(delePath); + SendLine(stream, "250 DELE successful"); + break; + + case "QUIT": + SendLine(stream, "221 Goodbye"); + return; + + default: + SendLine(stream, "500 Unknown command"); + break; + } + } + } + } + + private static string NormalizePath(string cwd, string arg) + { + if (arg.StartsWith("/")) return arg; + return cwd.TrimEnd('/') + "/" + arg; + } + } +} diff --git a/FanucProgramManager.Tests/Integration/Stubs/Lsv2ServerStub.cs b/FanucProgramManager.Tests/Integration/Stubs/Lsv2ServerStub.cs new file mode 100644 index 0000000..3e25868 --- /dev/null +++ b/FanucProgramManager.Tests/Integration/Stubs/Lsv2ServerStub.cs @@ -0,0 +1,212 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; +using System.Net.Sockets; +using System.Text; +using System.Threading; + +namespace FanucProgramManager.Tests.Integration.Stubs +{ + /// + /// Minimal in-process LSV2 server. + /// Frame format: [0x02][SIZE_HI][SIZE_LO][CMD_HI][CMD_LO][data...][CRC_HI][CRC_LO] + /// SIZE = len(CMD) + len(data) = 2 + dataLen + /// + public sealed class Lsv2ServerStub : IDisposable + { + private const ushort T_OK = 0x0000; + private const ushort T_SE = 0x0001; + private const ushort T_LS_SELECT = 0x00A0; + private const ushort T_LS_LOG_IN = 0x00A1; + private const ushort T_LS_LOG_OUT = 0x00A2; + private const ushort T_R_FL = 0x0023; + private const ushort T_S_FL = 0x0024; + private const ushort T_FD = 0x0025; + + private readonly TcpListener _listener; + private readonly Thread _acceptThread; + private volatile bool _running; + + public int Port { get; } + + /// In-memory file store: full path → content. + public Dictionary Files { get; } = new Dictionary(StringComparer.Ordinal); + + public Lsv2ServerStub() + { + _listener = new TcpListener(IPAddress.Loopback, 0); + _listener.Start(); + Port = ((IPEndPoint)_listener.LocalEndpoint).Port; + _running = true; + _acceptThread = new Thread(AcceptLoop) { IsBackground = true, Name = "Lsv2Stub-Accept" }; + _acceptThread.Start(); + } + + public void Dispose() + { + _running = false; + try { _listener.Stop(); } catch { } + } + + private void AcceptLoop() + { + while (_running) + { + TcpClient client; + try { client = _listener.AcceptTcpClient(); } + catch { break; } + var t = new Thread(() => HandleClient(client)) { IsBackground = true, Name = "Lsv2Stub-Client" }; + t.Start(); + } + } + + private void HandleClient(TcpClient client) + { + using (client) + using (var stream = client.GetStream()) + { + while (true) + { + ushort cmd; + byte[] data = ReadFrame(stream, out cmd); + if (data == null) break; + + switch (cmd) + { + case T_LS_SELECT: + case T_LS_LOG_IN: + SendFrame(stream, T_OK, new byte[0]); + break; + + case T_LS_LOG_OUT: + SendFrame(stream, T_OK, new byte[0]); + return; + + case T_R_FL: + { + // data = path\0 + string path = ExtractString(data, 0); + string content; + if (!Files.TryGetValue(path, out content)) + { + SendFrame(stream, T_SE, new byte[0]); + break; + } + byte[] contentBytes = Encoding.ASCII.GetBytes(content); + SendFrame(stream, T_FD, contentBytes); + SendFrame(stream, T_OK, new byte[0]); + break; + } + + case T_S_FL: + { + // data = path\0 + content + string path = ExtractString(data, 0); + int pathLen = Encoding.ASCII.GetByteCount(path) + 1; // +1 for \0 + int contentLen = data.Length - pathLen; + string content = contentLen > 0 + ? Encoding.ASCII.GetString(data, pathLen, contentLen) + : ""; + Files[path] = content; + SendFrame(stream, T_OK, new byte[0]); + break; + } + + default: + SendFrame(stream, T_SE, new byte[0]); + break; + } + } + } + } + + private static byte[] ReadFrame(Stream stream, out ushort cmd) + { + cmd = 0xFFFF; + int stx = stream.ReadByte(); + if (stx != 0x02) return null; + + int sizeHi = stream.ReadByte(); + int sizeLo = stream.ReadByte(); + if (sizeHi < 0 || sizeLo < 0) return null; + int size = (sizeHi << 8) | sizeLo; + if (size < 2) return null; + + int cmdHi = stream.ReadByte(); + int cmdLo = stream.ReadByte(); + if (cmdHi < 0 || cmdLo < 0) return null; + cmd = (ushort)((cmdHi << 8) | cmdLo); + + int dataLen = size - 2; + byte[] data = new byte[dataLen]; + int read = 0; + while (read < dataLen) + { + int n = stream.Read(data, read, dataLen - read); + if (n == 0) return null; + read += n; + } + + // consume CRC + stream.ReadByte(); + stream.ReadByte(); + + return data; + } + + private static void SendFrame(Stream stream, ushort cmdCode, byte[] data) + { + int dataLen = data.Length; + ushort size = (ushort)(2 + dataLen); + + byte sizeHi = (byte)(size >> 8); + byte sizeLo = (byte)(size & 0xFF); + byte cmdHi = (byte)(cmdCode >> 8); + byte cmdLo = (byte)(cmdCode & 0xFF); + + byte[] crcInput = new byte[4 + dataLen]; + crcInput[0] = sizeHi; crcInput[1] = sizeLo; + crcInput[2] = cmdHi; crcInput[3] = cmdLo; + Buffer.BlockCopy(data, 0, crcInput, 4, dataLen); + ushort crc = Crc16(crcInput); + + byte[] frame = new byte[1 + 4 + dataLen + 2]; + int i = 0; + frame[i++] = 0x02; + frame[i++] = sizeHi; + frame[i++] = sizeLo; + frame[i++] = cmdHi; + frame[i++] = cmdLo; + Buffer.BlockCopy(data, 0, frame, i, dataLen); + i += dataLen; + frame[i++] = (byte)(crc >> 8); + frame[i] = (byte)(crc & 0xFF); + + stream.Write(frame, 0, frame.Length); + stream.Flush(); + } + + private static string ExtractString(byte[] data, int offset) + { + int end = offset; + while (end < data.Length && data[end] != 0) end++; + return Encoding.ASCII.GetString(data, offset, end - offset); + } + + // CRC16 CCITT — same poly/init as Lsv2Client + private static ushort Crc16(byte[] data) + { + ushort crc = 0xFFFF; + foreach (byte b in data) + { + crc ^= (ushort)(b << 8); + for (int i = 0; i < 8; i++) + crc = (crc & 0x8000) != 0 + ? (ushort)((crc << 1) ^ 0x1021) + : (ushort)(crc << 1); + } + return crc; + } + } +} diff --git a/FanucProgramManager.Tests/Unit/CncMachineFactoryTests.cs b/FanucProgramManager.Tests/Unit/CncMachineFactoryTests.cs new file mode 100644 index 0000000..4b342bb --- /dev/null +++ b/FanucProgramManager.Tests/Unit/CncMachineFactoryTests.cs @@ -0,0 +1,113 @@ +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; + +namespace FanucProgramManager.Tests.Unit +{ + [TestFixture] + public class CncMachineFactoryTests + { + private static T GetRequiredField(object target, string name) + { + var f = target.GetType().GetField(name, + System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) + ?? throw new InvalidOperationException( + string.Format("Field '{0}' not found on {1}. Field may have been renamed.", name, target.GetType().Name)); + return (T)f.GetValue(target); + } + + private InputArgs BaseArgs() + { + return new InputArgs + { + ip = "192.168.1.1", + porta = "", + username = "user", + password = "pass", + nodoHssb = -1 + }; + } + + [Test] + public void Create_Fanuc_ReturnsFanucMachine() + { + var args = BaseArgs(); + args.manufacturer = CncManufacturer.Fanuc; + + using (var m = CncMachineFactory.Create(args)) + { + Assert.That(m, Is.InstanceOf()); + } + } + + [Test] + public void Create_Heidenhain_ReturnsHeidenhainMachine() + { + var args = BaseArgs(); + args.manufacturer = CncManufacturer.Heidenhain; + + using (var m = CncMachineFactory.Create(args)) + { + Assert.That(m, Is.InstanceOf()); + } + } + + [Test] + public void Create_Siemens_ReturnsSiemensMachine() + { + var args = BaseArgs(); + args.manufacturer = CncManufacturer.Siemens; + + using (var m = CncMachineFactory.Create(args)) + { + Assert.That(m, Is.InstanceOf()); + } + } + + [Test] + public void Create_Mitsubishi_ReturnsMitsubishiMachine() + { + var args = BaseArgs(); + args.manufacturer = CncManufacturer.Mitsubishi; + + using (var m = CncMachineFactory.Create(args)) + { + Assert.That(m, Is.InstanceOf()); + } + } + + [Test] + public void Create_FanucHssbNode_TransportIsHssb() + { + var args = BaseArgs(); + args.manufacturer = CncManufacturer.Fanuc; + args.nodoHssb = 0; + + using (var m = CncMachineFactory.Create(args) as FanucMachine) + { + var config = GetRequiredField(m, "_config"); + + Assert.That(config.Transport, Is.EqualTo(FanucTransport.Hssb)); + } + } + + [Test] + public void Create_FanucNoHssb_TransportIsEthernet() + { + var args = BaseArgs(); + args.manufacturer = CncManufacturer.Fanuc; + args.nodoHssb = -1; + + using (var m = CncMachineFactory.Create(args) as FanucMachine) + { + var config = GetRequiredField(m, "_config"); + + Assert.That(config.Transport, Is.EqualTo(FanucTransport.Ethernet)); + } + } + } +} diff --git a/FanucProgramManager.Tests/Unit/FanucMachineTests.cs b/FanucProgramManager.Tests/Unit/FanucMachineTests.cs new file mode 100644 index 0000000..51af1bf --- /dev/null +++ b/FanucProgramManager.Tests/Unit/FanucMachineTests.cs @@ -0,0 +1,221 @@ +using System; +using NUnit.Framework; +using Moq; +using FanucProgramManager.Cnc.Fanuc; +using FanucProgramManager.Cnc.Models; + +namespace FanucProgramManager.Tests.Unit +{ + /// + /// FanucMachine calls real FOCAS DLL in ConnectCore and most methods guard + /// via EnsureConnected. Tests that require an active FOCAS handle are marked Ignore. + /// The tests here verify dialect call patterns by setting machine state via + /// reflection (bypass EnsureConnected) after injecting a mock dialect. + /// + [TestFixture] + public class FanucMachineTests + { + // Used in Returns() to modify the ref int len parameter — lambdas cannot have ref params. + private delegate short UploadDataDelegate(ushort hndl, ref int len, char[] data); + + private FanucConnectionConfig EthernetConfig() + { + return new FanucConnectionConfig + { + Name = "TestFanuc", + Transport = FanucTransport.Ethernet, + IpAddress = "127.0.0.1", + Port = 8193, + ConnectTimeout = TimeSpan.FromSeconds(1) + }; + } + + private static T GetRequiredField(object target, string name) + { + var f = target.GetType().GetField(name, + System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) + ?? throw new InvalidOperationException( + string.Format("Field '{0}' not found on {1}. Field may have been renamed.", name, target.GetType().Name)); + return (T)f.GetValue(target); + } + + private static void SetRequiredField(object target, string name, T value) + { + var f = target.GetType().GetField(name, + System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance) + ?? throw new InvalidOperationException( + string.Format("Field '{0}' not found on {1}. Field may have been renamed.", name, target.GetType().Name)); + f.SetValue(target, value); + } + + private FanucMachine CreateConnectedWithMockDialect(Mock dialectMock) + { + var machine = new FanucMachine(EthernetConfig()); + SetRequiredField(machine, "_state", ConnectionState.Connected); + SetRequiredField(machine, "_dialect", dialectMock.Object); + return machine; + } + + [Test] + [Ignore("Requires Fanuc FOCAS DLL — no mock injection path for ConnectCore")] + public void ConnectAsync_FocasReturnsOk_ResultSuccess() + { + // Would need real FOCAS DLL or a way to intercept Focas1.cnc_allclibhndl3 + } + + [Test] + [Ignore("Requires Fanuc FOCAS DLL")] + public void ConnectAsync_FocasReturnsError_ResultFail() + { + // Same — Focas1 static calls cannot be intercepted without DLL + } + + [Test] + // Moq default: ref int len stays 0 after UploadData call, loop exits via else-branch (len == 0). + // This test verifies call sequence only, not data content. + // See ReadProgramAsync_UploadDataReturnsContent_ContentInResult for data-reading coverage. + public void ReadProgramAsync_CallsUploadStartThenDataThenEnd() + { + var dialect = new Mock(); + dialect.Setup(d => d.UploadStart(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(Focas1.EW_OK); + dialect.Setup(d => d.UploadData(It.IsAny(), ref It.Ref.IsAny, It.IsAny())) + .Returns(Focas1.EW_OK); + dialect.Setup(d => d.UploadEnd(It.IsAny())).Returns(Focas1.EW_OK); + + using (var machine = CreateConnectedWithMockDialect(dialect)) + { + machine.ReadProgramAsync("O1234").GetAwaiter().GetResult(); + } + + dialect.Verify(d => d.UploadStart(It.IsAny(), "O1234", It.IsAny(), 0), Times.Once); + dialect.Verify(d => d.UploadEnd(It.IsAny()), Times.Once); + } + + [Test] + public void ReadProgramAsync_UploadDataReturnsContent_ContentInResult() + { + var programContent = "O1234\nG0 X0\nM30\n%"; + var chars = programContent.ToCharArray(); + + var dialect = new Mock(); + dialect.Setup(d => d.UploadStart(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(Focas1.EW_OK); + dialect.Setup(d => d.UploadData(It.IsAny(), ref It.Ref.IsAny, It.IsAny())) + .Returns(new UploadDataDelegate(delegate(ushort h, ref int len, char[] buf) + { + Array.Copy(chars, buf, chars.Length); + len = chars.Length; + return Focas1.EW_OK; + })); + dialect.Setup(d => d.UploadEnd(It.IsAny())).Returns(Focas1.EW_OK); + + using (var machine = CreateConnectedWithMockDialect(dialect)) + { + var result = machine.ReadProgramAsync("O1234").GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + Assert.That(result.Value, Is.EqualTo(programContent)); + } + } + + [Test] + public void ReadToolDataAsync_CallsUploadStartWithFileType1() + { + var dialect = new Mock(); + dialect.Setup(d => d.UploadStart(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(Focas1.EW_OK); + dialect.Setup(d => d.UploadData(It.IsAny(), ref It.Ref.IsAny, It.IsAny())) + .Returns(Focas1.EW_OK); + dialect.Setup(d => d.UploadEnd(It.IsAny())).Returns(Focas1.EW_OK); + + using (var machine = CreateConnectedWithMockDialect(dialect)) + { + machine.ReadToolDataAsync("O1234").GetAwaiter().GetResult(); + } + + dialect.Verify(d => d.UploadStart(It.IsAny(), "O1234", It.IsAny(), (short)1), Times.Once); + } + + [Test] + public void ReadWorkZeroDataAsync_CallsUploadStartWithFileType5() + { + var dialect = new Mock(); + dialect.Setup(d => d.UploadStart(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(Focas1.EW_OK); + dialect.Setup(d => d.UploadData(It.IsAny(), ref It.Ref.IsAny, It.IsAny())) + .Returns(Focas1.EW_OK); + dialect.Setup(d => d.UploadEnd(It.IsAny())).Returns(Focas1.EW_OK); + + using (var machine = CreateConnectedWithMockDialect(dialect)) + { + machine.ReadWorkZeroDataAsync("O1234").GetAwaiter().GetResult(); + } + + dialect.Verify(d => d.UploadStart(It.IsAny(), "O1234", It.IsAny(), (short)5), Times.Once); + } + + [Test] + public void ReadProgramAsync_UploadStartFails_ResultIsFail() + { + var dialect = new Mock(); + dialect.Setup(d => d.UploadStart(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(-3); // EW_SOCKET or any error + dialect.Setup(d => d.UploadEnd(It.IsAny())).Returns(Focas1.EW_OK); + + using (var machine = CreateConnectedWithMockDialect(dialect)) + { + var result = machine.ReadProgramAsync("O1234").GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + } + } + + [Test] + public void WriteProgramAsync_NullContent_ResultFail() + { + var dialect = new Mock(); + + using (var machine = CreateConnectedWithMockDialect(dialect)) + { + var prog = new CncProgram { Name = "O1234", Content = null }; + var result = machine.WriteProgramAsync("//CNC_MEM/USER/PATH1/", prog).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + } + } + + [Test] + public void WriteProgramAsync_InvalidProgramName_ValidationFails() + { + var dialect = new Mock(); + + using (var machine = CreateConnectedWithMockDialect(dialect)) + { + // "PROG" does not match Fanuc O#### name rule — validator rejects before any FOCAS call + var prog = new CncProgram { Name = "PROG", Content = "O1234\nG00 X0\nM30" }; + var result = machine.WriteProgramAsync("//CNC_MEM/USER/PATH1/", prog).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + } + } + + [Test] + public void State_InitialState_IsDisconnected() + { + using (var machine = new FanucMachine(EthernetConfig())) + { + Assert.That(machine.State, Is.EqualTo(ConnectionState.Disconnected)); + } + } + + [Test] + public void Name_ReturnsConfigName() + { + using (var machine = new FanucMachine(EthernetConfig())) + { + Assert.That(machine.Name, Is.EqualTo("TestFanuc")); + } + } + } +} diff --git a/FanucProgramManager.Tests/Unit/FanucProgramParsingTests.cs b/FanucProgramManager.Tests/Unit/FanucProgramParsingTests.cs new file mode 100644 index 0000000..0f3f61d --- /dev/null +++ b/FanucProgramManager.Tests/Unit/FanucProgramParsingTests.cs @@ -0,0 +1,185 @@ +using NUnit.Framework; +using FanucProgramManager; + +namespace FanucProgramManager.Tests.Unit +{ + [TestFixture] + public class FanucProgramParsingTests + { + private const string SimpleProgram = + "\nO1234(COMMENT)\n" + + "G0 X0 Y0\n" + + "M30\n" + + "%"; + + private const string ThreeFileInput = + "program:{\n" + + "\nO1234(COMMENT)\n" + + "G0 X0 Y0\n" + + "M30\n" + + "%\n" + + "}\n" + + "tooloffsetdata:{\n" + + "TOOL_DATA_LINE1\n" + + "}\n" + + "workzerooffset:{\n" + + "WORK_ZERO_LINE1\n" + + "}\n"; + + [Test] + public void Constructor_OldFormat_ProgramFieldSet() + { + var p = new FanucProgram(SimpleProgram); + + Assert.That(p.Program, Is.Not.Null); + Assert.That(p.ToolOffsetData, Is.Null); + Assert.That(p.WorkZeroOffsetData, Is.Null); + } + + [Test] + public void Constructor_ThreeFileFormat_AllSectionsSet() + { + var p = new FanucProgram(ThreeFileInput); + + Assert.That(p.Program, Is.Not.Null); + Assert.That(p.ToolOffsetData, Is.Not.Null); + Assert.That(p.WorkZeroOffsetData, Is.Not.Null); + } + + [Test] + public void Constructor_ThreeFileFormat_ToolOffsetDataContent() + { + var p = new FanucProgram(ThreeFileInput); + + Assert.That(p.ToolOffsetData, Does.Contain("TOOL_DATA_LINE1")); + } + + [Test] + public void Constructor_ThreeFileFormat_WorkZeroOffsetDataContent() + { + var p = new FanucProgram(ThreeFileInput); + + Assert.That(p.WorkZeroOffsetData, Does.Contain("WORK_ZERO_LINE1")); + } + + [Test] + public void GetProgramTitle_StandardProgram_ReturnsO1234() + { + var p = new FanucProgram(SimpleProgram); + + string title = p.GetProgramTitle(); + + Assert.That(title, Is.EqualTo("O1234")); + } + + [Test] + public void GetProgramTitle_Static_ReturnsTitle() + { + string title = FanucProgram.GetProgramTitle("\nO5678\nG0\n%"); + + Assert.That(title, Is.EqualTo("O5678")); + } + + [Test] + public void GetProgramComment_ProgramWithComment_ReturnsComment() + { + var p = new FanucProgram(SimpleProgram); + + string comment = p.GetProgramComment(); + + Assert.That(comment, Is.EqualTo("COMMENT")); + } + + [Test] + public void GetProgramComment_ProgramWithoutComment_ReturnsEmpty() + { + var p = new FanucProgram("\nO1234\nG0 X0\nM30\n%"); + + string comment = p.GetProgramComment(); + + Assert.That(comment, Is.EqualTo("")); + } + + [Test] + public void ChangeComment_ReplaceExistingComment_CommentUpdated() + { + var p = new FanucProgram(SimpleProgram); + + p.ChangeComment("NEW_COMMENT"); + + Assert.That(p.GetProgramComment(), Is.EqualTo("NEW_COMMENT")); + } + + [Test] + public void ChangeComment_NoExistingComment_CommentInserted() + { + var p = new FanucProgram("\nO1234\nG0 X0\nM30\n%"); + + p.ChangeComment("INSERTED"); + + Assert.That(p.GetProgramComment(), Is.EqualTo("INSERTED")); + } + + [Test] + public void Standardize_LeadingPercent_Removed() + { + var p = new FanucProgram("%\nO1234\nG0\n%"); + + Assert.That(p.Program, Does.Not.StartWith("%")); + } + + [Test] + public void Standardize_AngleBracketTitle_ConvertedToPlain() + { + var p = new FanucProgram("\n\nG0\n%"); + + Assert.That(p.Program, Does.Contain("O1234")); + Assert.That(p.Program, Does.Not.Contain("")); + } + + [Test] + public void ToString_ThreeFileFormat_ContainsAllSections() + { + var p = new FanucProgram(ThreeFileInput); + + string output = p.ToString(); + + Assert.That(output, Does.Contain("program:{")); + Assert.That(output, Does.Contain("tooloffsetdata:{")); + Assert.That(output, Does.Contain("workzerooffset:{")); + } + + [Test] + public void ToString_ProgramContent_RoundTrips() + { + var p = new FanucProgram(ThreeFileInput); + + string output = p.ToString(); + var p2 = new FanucProgram(output); + + Assert.That(p2.GetProgramTitle(), Is.EqualTo(p.GetProgramTitle())); + Assert.That(p2.ToolOffsetData, Does.Contain("TOOL_DATA_LINE1")); + Assert.That(p2.WorkZeroOffsetData, Does.Contain("WORK_ZERO_LINE1")); + } + + [Test] + public void SetValue_ToolOffsetData_ValueStored() + { + var p = new FanucProgram(SimpleProgram); + + p.setValue("TOOL_DATA\n%", FanucProgram.FILE_TYPE.TOOL_OFFEST_DATA); + + Assert.That(p.ToolOffsetData, Does.Contain("TOOL_DATA")); + } + + [Test] + public void SetValue_WorkZeroOffset_ValueStored() + { + var p = new FanucProgram(SimpleProgram); + + p.setValue("WORK_DATA\n%", FanucProgram.FILE_TYPE.WORK_ZERO_OFFSET); + + Assert.That(p.WorkZeroOffsetData, Does.Contain("WORK_DATA")); + } + } +} diff --git a/FanucProgramManager.Tests/Unit/HeidenhainMachineTests.cs b/FanucProgramManager.Tests/Unit/HeidenhainMachineTests.cs new file mode 100644 index 0000000..2d79129 --- /dev/null +++ b/FanucProgramManager.Tests/Unit/HeidenhainMachineTests.cs @@ -0,0 +1,141 @@ +using System; +using NUnit.Framework; +using Moq; +using FanucProgramManager.Cnc; +using FanucProgramManager.Cnc.Models; +using FanucProgramManager.Cnc.Heidenhain; + +namespace FanucProgramManager.Tests.Unit +{ + [TestFixture] + public class HeidenhainMachineTests + { + private HeidenhainConnectionConfig _config; + private Mock _clientMock; + private Mock _validatorMock; + private HeidenhainMachine _machine; + + [SetUp] + public void SetUp() + { + _config = new HeidenhainConnectionConfig + { + Name = "TestHeidenhain", + IpAddress = "192.168.1.4", + Port = 19000 + }; + _clientMock = new Mock(MockBehavior.Strict); + // Always-ok validator so existing write tests are not affected by validation rules + _validatorMock = new Mock(); + _validatorMock.Setup(v => v.Validate(It.IsAny(), It.IsAny())) + .Returns(ValidationResult.Ok()); + // Internal constructor sets state = Connected immediately + _machine = new HeidenhainMachine(_config, _clientMock.Object, _validatorMock.Object); + } + + [TearDown] + public void TearDown() + { + _clientMock.Setup(c => c.Disconnect()); + _machine?.Dispose(); + } + + // State on construction + + [Test] + public void Constructor_WithInjectedClient_StateIsConnected() + { + Assert.That(_machine.State, Is.EqualTo(ConnectionState.Connected)); + } + + // ReadProgramAsync + + [Test] + public void ReadProgramAsync_ReceiveFileReturnsContent_ResultOk() + { + _clientMock.Setup(c => c.ReceiveFile("TNC:/nc_prog/O1234.H")).Returns("NC_CONTENT"); + + var result = _machine.ReadProgramAsync("TNC:/nc_prog/O1234.H").GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + Assert.That(result.Value, Is.EqualTo("NC_CONTENT")); + _clientMock.Verify(c => c.ReceiveFile("TNC:/nc_prog/O1234.H"), Times.Once); + } + + [Test] + public void ReadProgramAsync_ReceiveFileReturnsNull_ResultIsFail() + { + _clientMock.Setup(c => c.ReceiveFile(It.IsAny())).Returns((string)null); + + var result = _machine.ReadProgramAsync("TNC:/nc_prog/MISSING.H").GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + } + + // WriteProgramAsync + + [Test] + public void WriteProgramAsync_WithName_AppendsDotHExtension() + { + _clientMock.Setup(c => c.SendFile("TNC:/nc_prog/O1234.H", "CONTENT")).Returns(true); + + var prog = new CncProgram { Name = "O1234", Content = "CONTENT" }; + var result = _machine.WriteProgramAsync("TNC:/nc_prog/", prog).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + _clientMock.Verify(c => c.SendFile("TNC:/nc_prog/O1234.H", "CONTENT"), Times.Once); + } + + [Test] + public void WriteProgramAsync_NameAlreadyHasExtension_NoDoubleExtension() + { + _clientMock.Setup(c => c.SendFile("TNC:/nc_prog/O1234.H", "CONTENT")).Returns(true); + + var prog = new CncProgram { Name = "O1234.H", Content = "CONTENT" }; + _machine.WriteProgramAsync("TNC:/nc_prog/", prog).GetAwaiter().GetResult(); + + _clientMock.Verify(c => c.SendFile("TNC:/nc_prog/O1234.H", "CONTENT"), Times.Once); + _clientMock.Verify(c => c.SendFile(It.Is(s => s.EndsWith(".H.H")), It.IsAny()), Times.Never); + } + + [Test] + public void WriteProgramAsync_EmptyContent_FailsWithoutCallingSendFile() + { + var prog = new CncProgram { Name = "O1234", Content = "" }; + var result = _machine.WriteProgramAsync("TNC:/nc_prog/", prog).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + _clientMock.Verify(c => c.SendFile(It.IsAny(), It.IsAny()), Times.Never); + } + + [Test] + public void WriteProgramAsync_NullProgram_FailsWithoutCallingSendFile() + { + var result = _machine.WriteProgramAsync("TNC:/nc_prog/", null).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + _clientMock.Verify(c => c.SendFile(It.IsAny(), It.IsAny()), Times.Never); + } + + [Test] + public void WriteProgramAsync_SendFileFails_ResultIsFail() + { + _clientMock.Setup(c => c.SendFile(It.IsAny(), It.IsAny())).Returns(false); + + var prog = new CncProgram { Name = "O1234", Content = "DATA" }; + var result = _machine.WriteProgramAsync("TNC:/nc_prog/", prog).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + } + + // ReadActiveProgramAsync + + [Test] + public void ReadActiveProgramAsync_ReturnsFailNotSupported() + { + var result = _machine.ReadActiveProgramAsync().GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + } + } +} diff --git a/FanucProgramManager.Tests/Unit/IsoProgramFormatterTests.cs b/FanucProgramManager.Tests/Unit/IsoProgramFormatterTests.cs new file mode 100644 index 0000000..8b580db --- /dev/null +++ b/FanucProgramManager.Tests/Unit/IsoProgramFormatterTests.cs @@ -0,0 +1,105 @@ +using NUnit.Framework; +using FanucProgramManager.Cnc.Fanuc; + +namespace FanucProgramManager.Tests.Unit +{ + [TestFixture] + public class IsoProgramFormatterTests + { + // EnsureTitleBrackets + // The formatter works on programs with a leading blank line then a title line. + // e.g. "%\nO1234(COMMENT)\nG0...\n" + // SplitFirstNonEmptyLine splits after the SECOND newline, so we need at least 2 newlines. + + private const string ProgramWithBrackets = + "%\n(COMMENT)\nG0 X0\nM30\n"; + + private const string ProgramNoBrackets = + "%\nO1234(COMMENT)\nG0 X0\nM30\n"; + + private const string ProgramNoComment = + "%\nO1234\nG0 X0\nM30\n"; + + [Test] + public void EnsureTitleBrackets_NoBrackets_AddsBrackets() + { + string result = IsoProgramFormatter.EnsureTitleBrackets(ProgramNoBrackets); + + Assert.That(result, Does.Contain("")); + } + + [Test] + public void EnsureTitleBrackets_AlreadyHasBrackets_NoChange() + { + string result = IsoProgramFormatter.EnsureTitleBrackets(ProgramWithBrackets); + + Assert.That(result, Is.EqualTo(ProgramWithBrackets)); + } + + [Test] + public void EnsureTitleBrackets_NullOrEmpty_ReturnsInput() + { + Assert.That(IsoProgramFormatter.EnsureTitleBrackets(null), Is.Null); + Assert.That(IsoProgramFormatter.EnsureTitleBrackets(""), Is.EqualTo("")); + } + + // InsertOrReplaceComment + + [Test] + public void InsertOrReplaceComment_NoComment_InsertsComment() + { + string result = IsoProgramFormatter.InsertOrReplaceComment(ProgramNoComment, "TEST"); + + Assert.That(result, Does.Contain("(TEST)")); + } + + [Test] + public void InsertOrReplaceComment_ExistingComment_ReplacesComment() + { + string result = IsoProgramFormatter.InsertOrReplaceComment(ProgramNoBrackets, "NEW"); + + Assert.That(result, Does.Contain("(NEW)")); + Assert.That(result, Does.Not.Contain("(COMMENT)")); + } + + [Test] + public void InsertOrReplaceComment_EmptyComment_InsertsEmptyParens() + { + string result = IsoProgramFormatter.InsertOrReplaceComment(ProgramNoComment, ""); + + Assert.That(result, Does.Contain("()")); + } + + [Test] + public void InsertOrReplaceComment_NullOrEmpty_ReturnsInput() + { + Assert.That(IsoProgramFormatter.InsertOrReplaceComment(null, "X"), Is.Null); + Assert.That(IsoProgramFormatter.InsertOrReplaceComment("", "X"), Is.EqualTo("")); + } + + // RenameAndComment + + [Test] + public void RenameAndComment_ProducesCorrectHeader() + { + string result = IsoProgramFormatter.RenameAndComment(ProgramNoBrackets, "O9999", "DESC"); + + Assert.That(result, Does.StartWith("%\n(DESC)")); + } + + [Test] + public void RenameAndComment_BodyAppendedAfterHeader() + { + string result = IsoProgramFormatter.RenameAndComment(ProgramNoBrackets, "O9999", "DESC"); + + Assert.That(result, Does.Contain("G0 X0")); + } + + [Test] + public void RenameAndComment_NullOrEmpty_ReturnsInput() + { + Assert.That(IsoProgramFormatter.RenameAndComment(null, "X", "Y"), Is.Null); + Assert.That(IsoProgramFormatter.RenameAndComment("", "X", "Y"), Is.EqualTo("")); + } + } +} diff --git a/FanucProgramManager.Tests/Unit/MitsubishiMachineTests.cs b/FanucProgramManager.Tests/Unit/MitsubishiMachineTests.cs new file mode 100644 index 0000000..379bb6d --- /dev/null +++ b/FanucProgramManager.Tests/Unit/MitsubishiMachineTests.cs @@ -0,0 +1,163 @@ +using System; +using NUnit.Framework; +using Moq; +using FanucProgramManager.Cnc; +using FanucProgramManager.Cnc.Models; +using FanucProgramManager.Cnc.Mitsubishi; + +namespace FanucProgramManager.Tests.Unit +{ + [TestFixture] + public class MitsubishiMachineTests + { + private MitsubishiConnectionConfig _config; + private Mock _ftpMock; + private Mock _validatorMock; + private MitsubishiMachine _machine; + + [SetUp] + public void SetUp() + { + _config = new MitsubishiConnectionConfig + { + Name = "TestMitsubishi", + IpAddress = "192.168.1.3", + Port = 21, + ProgramDirectory = "/PRG/" + }; + _ftpMock = new Mock(MockBehavior.Strict); + // Always-ok validator so existing write tests are not affected by validation rules + _validatorMock = new Mock(); + _validatorMock.Setup(v => v.Validate(It.IsAny(), It.IsAny())) + .Returns(ValidationResult.Ok()); + _machine = new MitsubishiMachine(_config, _ftpMock.Object, _validatorMock.Object); + } + + [TearDown] + public void TearDown() + { + _machine?.Dispose(); + } + + // ConnectAsync + + [Test] + public void ConnectAsync_PingTrue_StateConnectedAndResultOk() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + + var result = _machine.ConnectAsync().GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + Assert.That(_machine.State, Is.EqualTo(ConnectionState.Connected)); + } + + [Test] + public void ConnectAsync_PingFalse_StateFaultedAndResultFail() + { + _ftpMock.Setup(f => f.Ping()).Returns(false); + + var result = _machine.ConnectAsync().GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + Assert.That(_machine.State, Is.EqualTo(ConnectionState.Faulted)); + } + + // ReadProgramAsync — no .MPF extension for Mitsubishi + + [Test] + public void ReadProgramAsync_FullPath_CallsDownloadFileNoExtension() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + _ftpMock.Setup(f => f.DownloadFile("/PRG/O1234")).Returns("NC_DATA"); + _machine.ConnectAsync().GetAwaiter().GetResult(); + + var result = _machine.ReadProgramAsync("/PRG/O1234").GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + Assert.That(result.Value, Is.EqualTo("NC_DATA")); + _ftpMock.Verify(f => f.DownloadFile("/PRG/O1234"), Times.Once); + } + + [Test] + public void ReadProgramAsync_ShortName_ResolvesWithDirectoryNoExtension() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + _ftpMock.Setup(f => f.DownloadFile("/PRG/O1234")).Returns("DATA"); + _machine.ConnectAsync().GetAwaiter().GetResult(); + + _machine.ReadProgramAsync("O1234").GetAwaiter().GetResult(); + + // Must NOT append .MPF + _ftpMock.Verify(f => f.DownloadFile("/PRG/O1234"), Times.Once); + _ftpMock.Verify(f => f.DownloadFile(It.Is(s => s.EndsWith(".MPF"))), Times.Never); + } + + // WriteProgramAsync + + [Test] + public void WriteProgramAsync_ValidContent_CallsUploadFileNoExtension() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + _ftpMock.Setup(f => f.UploadFile("/PRG/O1234", "CONTENT")); + _machine.ConnectAsync().GetAwaiter().GetResult(); + + var prog = new CncProgram { Name = "O1234", Content = "CONTENT" }; + var result = _machine.WriteProgramAsync("/PRG/", prog).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + _ftpMock.Verify(f => f.UploadFile("/PRG/O1234", "CONTENT"), Times.Once); + _ftpMock.Verify(f => f.UploadFile(It.Is(s => s.EndsWith(".MPF")), It.IsAny()), Times.Never); + } + + [Test] + public void WriteProgramAsync_EmptyContent_FailsWithoutCallingUploadFile() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + _machine.ConnectAsync().GetAwaiter().GetResult(); + + var prog = new CncProgram { Name = "O1234", Content = "" }; + var result = _machine.WriteProgramAsync("/PRG/", prog).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + _ftpMock.Verify(f => f.UploadFile(It.IsAny(), It.IsAny()), Times.Never); + } + + [Test] + public void WriteProgramAsync_NullProgram_FailsWithoutCallingUploadFile() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + _machine.ConnectAsync().GetAwaiter().GetResult(); + + var result = _machine.WriteProgramAsync("/PRG/", null).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + _ftpMock.Verify(f => f.UploadFile(It.IsAny(), It.IsAny()), Times.Never); + } + + // DeleteProgramAsync + + [Test] + public void DeleteProgramAsync_ValidPath_CallsDeleteFile() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + _ftpMock.Setup(f => f.DeleteFile("/PRG/O1234")); + _machine.ConnectAsync().GetAwaiter().GetResult(); + + var result = _machine.DeleteProgramAsync("/PRG/O1234").GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + _ftpMock.Verify(f => f.DeleteFile("/PRG/O1234"), Times.Once); + } + + // ReadActiveProgramAsync + + [Test] + public void ReadActiveProgramAsync_ReturnsFailNotSupported() + { + var result = _machine.ReadActiveProgramAsync().GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + } + } +} diff --git a/FanucProgramManager.Tests/Unit/NcProgramValidatorTests.cs b/FanucProgramManager.Tests/Unit/NcProgramValidatorTests.cs new file mode 100644 index 0000000..991248b --- /dev/null +++ b/FanucProgramManager.Tests/Unit/NcProgramValidatorTests.cs @@ -0,0 +1,280 @@ +using NUnit.Framework; +using FanucProgramManager.Cnc; +using FanucProgramManager.Cnc.Models; + +namespace FanucProgramManager.Tests.Unit +{ + [TestFixture] + public class NcProgramValidatorTests + { + // ── Universal rules ─────────────────────────────────────────────────── + + [Test] + public void Validate_BlockTooLong_ReturnsError() + { + var v = new NcProgramValidator(CncManufacturer.Fanuc); + string longLine = "O1234\n" + new string('X', 81); + var r = v.Validate("O1234", longLine); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, "80"), Is.True); + } + + [Test] + public void Validate_BlockExactly80_NoLengthError() + { + var v = new NcProgramValidator(CncManufacturer.Fanuc); + string line80 = new string('G', 80); + var r = v.Validate("O1234", "O1234\n" + line80); + // Should not have a block-length error (may still have other errors) + Assert.That(HasErrorContaining(r, "Block length"), Is.False); + } + + [Test] + public void Validate_LowercaseLetter_ReturnsError() + { + var v = new NcProgramValidator(CncManufacturer.Siemens); + var r = v.Validate("PROG.MPF", "PROG.MPF\ng00 X10"); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, "Lowercase"), Is.True); + } + + [Test] + public void Validate_NoLowercase_NoLowercaseError() + { + var v = new NcProgramValidator(CncManufacturer.Siemens); + var r = v.Validate("PROG.MPF", "G00 X10 Y20"); + Assert.That(HasErrorContaining(r, "Lowercase"), Is.False); + } + + [Test] + public void Validate_TabCharacter_ReturnsError() + { + var v = new NcProgramValidator(CncManufacturer.Siemens); + var r = v.Validate("PROG.MPF", "G00\tX10"); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, "Tab"), Is.True); + } + + [Test] + public void Validate_NestedParentheses_ReturnsError() + { + var v = new NcProgramValidator(CncManufacturer.Fanuc); + var r = v.Validate("O1234", "O1234\nG00 ((NESTED))"); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, "Nested"), Is.True); + } + + [Test] + public void Validate_SingleParenComment_NoNestedError() + { + var v = new NcProgramValidator(CncManufacturer.Fanuc); + var r = v.Validate("O1234", "O1234\nG00 (COMMENT) X10"); + Assert.That(HasErrorContaining(r, "Nested"), Is.False); + } + + [Test] + public void Validate_CommentExceeds32Chars_ReturnsError() + { + var v = new NcProgramValidator(CncManufacturer.Fanuc); + string longComment = "(" + new string('A', 33) + ")"; + var r = v.Validate("O1234", "O1234\n" + longComment); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, "Comment length"), Is.True); + } + + [Test] + public void Validate_CommentExactly32Chars_NoCommentLengthError() + { + var v = new NcProgramValidator(CncManufacturer.Fanuc); + string comment = "(" + new string('A', 32) + ")"; + var r = v.Validate("O1234", "O1234\n" + comment); + Assert.That(HasErrorContaining(r, "Comment length"), Is.False); + } + + // ── Fanuc rules ─────────────────────────────────────────────────────── + + [Test] + public void Validate_Fanuc_ValidNameAndContent_Succeeds() + { + var v = new NcProgramValidator(CncManufacturer.Fanuc); + var r = v.Validate("O1234", "O1234\nG00 X10 Y20\nM30"); + Assert.That(r.Success, Is.True); + } + + [Test] + public void Validate_Fanuc_NameNotOFourDigits_ReturnsError() + { + var v = new NcProgramValidator(CncManufacturer.Fanuc); + var r = v.Validate("PROG", "O1234\nG00"); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, "O####"), Is.True); + } + + [Test] + public void Validate_Fanuc_NameO12345_ReturnsError() + { + var v = new NcProgramValidator(CncManufacturer.Fanuc); + // 5 digits — invalid for Fanuc + var r = v.Validate("O12345", "O1234\nG00"); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, "O####"), Is.True); + } + + [Test] + public void Validate_Fanuc_FirstLineNotONumber_ReturnsError() + { + var v = new NcProgramValidator(CncManufacturer.Fanuc); + var r = v.Validate("O1234", "G00 X10\nM30"); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, "First line"), Is.True); + } + + [TestCase(CncManufacturer.Fanuc, "O1234", "O1234\nG00 X10;")] + [TestCase(CncManufacturer.Mitsubishi, "O1234", "O1234\nG00 X10;")] + [TestCase(CncManufacturer.Siemens, "PROG.MPF", "G00 X10;")] + [TestCase(CncManufacturer.Heidenhain, "PROG.H", "L X+10;")] + public void Validate_SemicolonForbidden_ReturnsError(CncManufacturer m, string name, string content) + { + var r = new NcProgramValidator(m).Validate(name, content); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, ";"), Is.True); + } + + [Test] + public void Validate_Fanuc_BracketForbidden_ReturnsError() + { + var v = new NcProgramValidator(CncManufacturer.Fanuc); + var r = v.Validate("O1234", "O1234\nG00 [X10]"); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, "["), Is.True); + } + + [Test] + public void Validate_Fanuc_MacroHash_ReturnsWarningNotError() + { + var v = new NcProgramValidator(CncManufacturer.Fanuc); + var r = v.Validate("O1234", "O1234\n#100=10"); + // Warnings alone do not cause failure + Assert.That(r.Success, Is.True); + Assert.That(HasWarningContaining(r, "#"), Is.True); + } + + [Test] + public void Validate_Fanuc_NameFromPathStripped() + { + var v = new NcProgramValidator(CncManufacturer.Fanuc); + // Full path — name part is O1234 + var r = v.Validate("//CNC_MEM/USER/PATH1/O1234", "O1234\nG00 X10"); + Assert.That(HasErrorContaining(r, "O####"), Is.False); + } + + // ── Mitsubishi rules ────────────────────────────────────────────────── + + [Test] + public void Validate_Mitsubishi_ValidNameAndContent_Succeeds() + { + var v = new NcProgramValidator(CncManufacturer.Mitsubishi); + var r = v.Validate("O1234", "O1234\nG00 X10\nM30"); + Assert.That(r.Success, Is.True); + } + + [Test] + public void Validate_Mitsubishi_BadName_ReturnsError() + { + var v = new NcProgramValidator(CncManufacturer.Mitsubishi); + var r = v.Validate("PROG", "O1234\nG00"); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, "O####"), Is.True); + } + + // ── Siemens rules ───────────────────────────────────────────────────── + + [Test] + public void Validate_Siemens_ValidNameAndContent_Succeeds() + { + var v = new NcProgramValidator(CncManufacturer.Siemens); + var r = v.Validate("PROG.MPF", "G00 X10 Y20\nM30"); + Assert.That(r.Success, Is.True); + } + + [Test] + public void Validate_Siemens_NameNoDotMpf_ReturnsError() + { + var v = new NcProgramValidator(CncManufacturer.Siemens); + var r = v.Validate("PROG", "G00 X10"); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, ".MPF"), Is.True); + } + + [Test] + public void Validate_Siemens_LowercaseMpf_ReturnsNameError() + { + var v = new NcProgramValidator(CncManufacturer.Siemens); + var r = v.Validate("prog.mpf", "G00 X10"); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, ".MPF"), Is.True); + } + + [Test] + public void Validate_Siemens_NoFirstLineRequired() + { + var v = new NcProgramValidator(CncManufacturer.Siemens); + var r = v.Validate("PROG.MPF", "G00 X10\nM30"); + Assert.That(HasErrorContaining(r, "First line"), Is.False); + } + + // ── Heidenhain rules ────────────────────────────────────────────────── + + [Test] + public void Validate_Heidenhain_ValidNameAndContent_Succeeds() + { + var v = new NcProgramValidator(CncManufacturer.Heidenhain); + var r = v.Validate("PROG.H", "L X+10 Y+20 R0 FMAX\nL Z-5 F500"); + Assert.That(r.Success, Is.True); + } + + [Test] + public void Validate_Heidenhain_NameNoDotH_ReturnsError() + { + var v = new NcProgramValidator(CncManufacturer.Heidenhain); + var r = v.Validate("PROG", "L X+10"); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, ".H"), Is.True); + } + + [Test] + public void Validate_Heidenhain_PercentForbidden_ReturnsError() + { + var v = new NcProgramValidator(CncManufacturer.Heidenhain); + var r = v.Validate("PROG.H", "L X+10 % COMMENT"); + Assert.That(r.Success, Is.False); + Assert.That(HasErrorContaining(r, "%"), Is.True); + } + + [Test] + public void Validate_Heidenhain_NoFirstLineRequired() + { + var v = new NcProgramValidator(CncManufacturer.Heidenhain); + var r = v.Validate("PROG.H", "L X+10\nM30"); + Assert.That(HasErrorContaining(r, "First line"), Is.False); + } + + // ── Helpers ─────────────────────────────────────────────────────────── + + private static bool HasErrorContaining(ValidationResult r, string fragment) + { + foreach (var e in r.Errors) + if (e.Severity == ValidationSeverity.Error && e.Message.Contains(fragment)) + return true; + return false; + } + + private static bool HasWarningContaining(ValidationResult r, string fragment) + { + foreach (var e in r.Errors) + if (e.Severity == ValidationSeverity.Warning && e.Message.Contains(fragment)) + return true; + return false; + } + } +} diff --git a/FanucProgramManager.Tests/Unit/SiemensMachineTests.cs b/FanucProgramManager.Tests/Unit/SiemensMachineTests.cs new file mode 100644 index 0000000..033f8d5 --- /dev/null +++ b/FanucProgramManager.Tests/Unit/SiemensMachineTests.cs @@ -0,0 +1,161 @@ +using System; +using NUnit.Framework; +using Moq; +using FanucProgramManager.Cnc; +using FanucProgramManager.Cnc.Models; +using FanucProgramManager.Cnc.Siemens; + +namespace FanucProgramManager.Tests.Unit +{ + [TestFixture] + public class SiemensMachineTests + { + private SiemensConnectionConfig _config; + private Mock _ftpMock; + private Mock _validatorMock; + private SiemensMachine _machine; + + [SetUp] + public void SetUp() + { + _config = new SiemensConnectionConfig + { + Name = "TestSiemens", + IpAddress = "192.168.1.2", + Port = 21, + ProgramDirectory = "/_N_MPF_DIR/" + }; + _ftpMock = new Mock(MockBehavior.Strict); + // Always-ok validator so existing write tests are not affected by validation rules + _validatorMock = new Mock(); + _validatorMock.Setup(v => v.Validate(It.IsAny(), It.IsAny())) + .Returns(ValidationResult.Ok()); + _machine = new SiemensMachine(_config, _ftpMock.Object, _validatorMock.Object); + } + + [TearDown] + public void TearDown() + { + _machine?.Dispose(); + } + + // ConnectAsync + + [Test] + public void ConnectAsync_PingTrue_StateConnectedAndResultOk() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + + var result = _machine.ConnectAsync().GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + Assert.That(result.Value, Is.True); + Assert.That(_machine.State, Is.EqualTo(ConnectionState.Connected)); + } + + [Test] + public void ConnectAsync_PingFalse_StateFaultedAndResultFail() + { + _ftpMock.Setup(f => f.Ping()).Returns(false); + + var result = _machine.ConnectAsync().GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + Assert.That(_machine.State, Is.EqualTo(ConnectionState.Faulted)); + } + + // ReadProgramAsync + + [Test] + public void ReadProgramAsync_FullPath_CallsDownloadFileWithPath() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + _ftpMock.Setup(f => f.DownloadFile("/_N_MPF_DIR/O1234.MPF")).Returns("PROGRAM_CONTENT"); + _machine.ConnectAsync().GetAwaiter().GetResult(); + + var result = _machine.ReadProgramAsync("/_N_MPF_DIR/O1234.MPF").GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + Assert.That(result.Value, Is.EqualTo("PROGRAM_CONTENT")); + _ftpMock.Verify(f => f.DownloadFile("/_N_MPF_DIR/O1234.MPF"), Times.Once); + } + + [Test] + public void ReadProgramAsync_ShortName_ResolvesWithDirectoryAndMpfExtension() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + _ftpMock.Setup(f => f.DownloadFile("/_N_MPF_DIR/O1234.MPF")).Returns("DATA"); + _machine.ConnectAsync().GetAwaiter().GetResult(); + + _machine.ReadProgramAsync("O1234").GetAwaiter().GetResult(); + + _ftpMock.Verify(f => f.DownloadFile("/_N_MPF_DIR/O1234.MPF"), Times.Once); + } + + // WriteProgramAsync + + [Test] + public void WriteProgramAsync_ValidContent_CallsUploadFile() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + _ftpMock.Setup(f => f.UploadFile(It.IsAny(), "CONTENT")); + _machine.ConnectAsync().GetAwaiter().GetResult(); + + var prog = new CncProgram { Name = "O1234", Content = "CONTENT" }; + var result = _machine.WriteProgramAsync("/_N_MPF_DIR/", prog).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + _ftpMock.Verify(f => f.UploadFile(It.IsAny(), "CONTENT"), Times.Once); + } + + [Test] + public void WriteProgramAsync_EmptyContent_FailsWithoutCallingUploadFile() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + _machine.ConnectAsync().GetAwaiter().GetResult(); + + var prog = new CncProgram { Name = "O1234", Content = "" }; + var result = _machine.WriteProgramAsync("/_N_MPF_DIR/", prog).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + _ftpMock.Verify(f => f.UploadFile(It.IsAny(), It.IsAny()), Times.Never); + } + + [Test] + public void WriteProgramAsync_NullProgram_FailsWithoutCallingUploadFile() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + _machine.ConnectAsync().GetAwaiter().GetResult(); + + var result = _machine.WriteProgramAsync("/_N_MPF_DIR/", null).GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + _ftpMock.Verify(f => f.UploadFile(It.IsAny(), It.IsAny()), Times.Never); + } + + // DeleteProgramAsync + + [Test] + public void DeleteProgramAsync_ValidPath_CallsDeleteFile() + { + _ftpMock.Setup(f => f.Ping()).Returns(true); + _ftpMock.Setup(f => f.DeleteFile("/_N_MPF_DIR/O1234.MPF")); + _machine.ConnectAsync().GetAwaiter().GetResult(); + + var result = _machine.DeleteProgramAsync("/_N_MPF_DIR/O1234.MPF").GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.True); + _ftpMock.Verify(f => f.DeleteFile("/_N_MPF_DIR/O1234.MPF"), Times.Once); + } + + // ReadActiveProgramAsync + + [Test] + public void ReadActiveProgramAsync_ReturnsFailNotSupported() + { + var result = _machine.ReadActiveProgramAsync().GetAwaiter().GetResult(); + + Assert.That(result.Success, Is.False); + } + } +} diff --git a/FanucProgramManager.Tests/packages.config b/FanucProgramManager.Tests/packages.config new file mode 100644 index 0000000..fd5acb3 --- /dev/null +++ b/FanucProgramManager.Tests/packages.config @@ -0,0 +1,7 @@ + + + + + + + diff --git a/FanucProgramManager.csproj b/FanucProgramManager.csproj new file mode 100755 index 0000000..2a89fb0 --- /dev/null +++ b/FanucProgramManager.csproj @@ -0,0 +1,151 @@ + + + + + Debug + AnyCPU + {1032188B-3321-42B2-87ED-343BF718CAF5} + Exe + FanucProgramManager + FanucProgramManager + v4.7.2 + 512 + true + true + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + false + + + + packages\Microsoft.Bcl.AsyncInterfaces.7.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + False + + + + + + packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + False + + + packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + + False + Microsoft .NET Framework 4.7.2 %28x86 e x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + + \ No newline at end of file diff --git a/FanucProgramManager.csproj.user b/FanucProgramManager.csproj.user new file mode 100755 index 0000000..091fd47 --- /dev/null +++ b/FanucProgramManager.csproj.user @@ -0,0 +1,20 @@ + + + + -chiave=YQXnxVoz6MjuH18d9/XDHzfTyxd/prRciP3C8bwMYb1vv3oUDjR250JKBh1X84f9 -azione=invia -pathprogramma=c:\temp\FanucProgrammiSalvati\M0108.txt -nodo=9 -tipo=2 -tooloffset -workzero -debug + + + -chiave=YQXnxVoz6MjuH18d9/XDHzfTyxd/prRciP3C8bwMYb1vv3oUDjR250JKBh1X84f9 -azione=invia -tipo=2 -nodo=9 -porta=8193 -path=2 -pathprogramma\temp\FanucProgrammiSalvati\programma.txt -debug + + + publish\ + + + + + + it-IT + false + ShowAllFiles + + \ No newline at end of file diff --git a/FanucProgramManager.sln b/FanucProgramManager.sln new file mode 100755 index 0000000..3875041 --- /dev/null +++ b/FanucProgramManager.sln @@ -0,0 +1,31 @@ + +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}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FanucProgramManager.Tests", "FanucProgramManager.Tests\FanucProgramManager.Tests.csproj", "{A1B2C3D4-E5F6-7890-ABCD-EF1234567890}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1032188B-3321-42B2-87ED-343BF718CAF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1032188B-3321-42B2-87ED-343BF718CAF5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1032188B-3321-42B2-87ED-343BF718CAF5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1032188B-3321-42B2-87ED-343BF718CAF5}.Release|Any CPU.Build.0 = Release|Any CPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.ActiveCfg = Debug|AnyCPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Debug|Any CPU.Build.0 = Debug|AnyCPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.ActiveCfg = Release|AnyCPU + {A1B2C3D4-E5F6-7890-ABCD-EF1234567890}.Release|Any CPU.Build.0 = Release|AnyCPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {79CE0E5A-A8EA-4EAD-B78D-EE8E0E9BADAB} + EndGlobalSection +EndGlobal diff --git a/InputArgs.cs b/InputArgs.cs new file mode 100755 index 0000000..878dfb9 --- /dev/null +++ b/InputArgs.cs @@ -0,0 +1,25 @@ +using FanucProgramManager.Cnc.Models; + +namespace FanucProgramManager +{ + internal class InputArgs + { + public CncManufacturer manufacturer = CncManufacturer.Fanuc; + public int tipo = 0; // kept for legacy parsing only + public string azione = ""; + public string ip = ""; + public string porta = ""; + public short pathCNC = 1; + public int nodoHssb = -1; + public string chiave = ""; + public string username = ""; + public string password = ""; + public string commentoProgramma = ""; + public string pathLocaleProgramma = ""; + public bool compatibilityMode = false; + public bool hasToolOffsetData = false; + public bool hasWorkZeroOffsetData = false; + public bool mostraHelp = false; + public bool debugMode = false; + } +} diff --git a/Program.cs b/Program.cs new file mode 100755 index 0000000..ba1176a --- /dev/null +++ b/Program.cs @@ -0,0 +1,447 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Management; +using System.Security.Cryptography; +using System.Text.RegularExpressions; +using FanucProgramManager.Cnc; +using FanucProgramManager.Cnc.Models; + +namespace FanucProgramManager +{ + internal class Program + { + private static InputArgs inputArgs = new InputArgs(); + + public static int Main(string[] args) + { + try + { + parseArgomenti(args); + } + catch (Exception e) + { + Console.Write("Gestore Programmi FANUC: "); + Console.WriteLine(e.Message); + Console.WriteLine("Errore parametri input. Consulta `-help' per maggiori informazioni."); + vediErrore(-101); + return -101; + } + + if (inputArgs.mostraHelp) + { + MostraAiuto(); + vediErrore(0); + return 0; + } + + if (!checkLicense(inputArgs.chiave)) + { + Console.WriteLine("Licenza ERRATA"); + vediErrore(-100); + return -1; + } + + // Validate required params + bool needsIp = inputArgs.manufacturer != CncManufacturer.Fanuc || inputArgs.nodoHssb == -1; + if (inputArgs.azione == "" || (needsIp && string.IsNullOrEmpty(inputArgs.ip)) || inputArgs.pathLocaleProgramma == "") + { + vediErrore(-102); + return -102; + } + + Console.WriteLine( + "manufacturer: " + inputArgs.manufacturer + "\n" + + "IndirizzoIP: " + inputArgs.ip + "\n" + + "Porta: " + inputArgs.porta + "\n" + + "Compatibility: " + inputArgs.compatibilityMode + "\n" + + "commentoProgramma: " + inputArgs.commentoProgramma + "\n" + + "pathCNC: " + inputArgs.pathCNC + "\n" + + "pathLocaleProgramma: " + inputArgs.pathLocaleProgramma + "\n" + ); + + ICncMachine machine = null; + try + { + machine = CncMachineFactory.Create(inputArgs); + + switch (inputArgs.azione.ToUpperInvariant()) + { + case "SCARICA": return Scarica(machine); + case "INVIA": return Invia(machine); + default: + vediErrore(-103); + return -103; + } + } + finally + { + if (machine != null) + machine.Dispose(); + } + } + + static int Scarica(ICncMachine macchina) + { + Console.WriteLine("RICEVI DA CNC-->"); + try + { + var connResult = macchina.ConnectAsync().GetAwaiter().GetResult(); + if (!connResult.Success) + { + Console.WriteLine("Macchina non connessa"); + vediErrore(-201); + return -201; + } + + Console.WriteLine("Inizio RICEZIONE NCProgram"); + var progResult = macchina.ReadProgramAsync(inputArgs.pathCNC.ToString()).GetAwaiter().GetResult(); + Console.WriteLine("Fine RICEZIONE NCProgram"); + if (!progResult.Success || string.IsNullOrEmpty(progResult.Value)) + { + macchina.DisconnectAsync().GetAwaiter().GetResult(); + vediErrore(-204); + return -204; + } + + FanucProgram programma = new FanucProgram(progResult.Value); + + IFanucMachine fanuc = macchina as IFanucMachine; + + if (inputArgs.hasToolOffsetData) + { + if (fanuc == null) + { + Console.WriteLine("ToolOffset non supportato per questo produttore"); + macchina.DisconnectAsync().GetAwaiter().GetResult(); + vediErrore(-205); + return -205; + } + Console.WriteLine("Inizio RICEZIONE ToolOffsetData"); + var toolResult = fanuc.ReadToolDataAsync(inputArgs.pathCNC.ToString()).GetAwaiter().GetResult(); + Console.WriteLine("Fine RICEZIONE ToolOffsetData"); + if (!toolResult.Success || string.IsNullOrEmpty(toolResult.Value)) + { + macchina.DisconnectAsync().GetAwaiter().GetResult(); + vediErrore(-205); + return -205; + } + programma.setValue(toolResult.Value, FanucProgram.FILE_TYPE.TOOL_OFFEST_DATA); + } + + if (inputArgs.hasWorkZeroOffsetData) + { + if (fanuc == null) + { + Console.WriteLine("WorkZeroOffset non supportato per questo produttore"); + macchina.DisconnectAsync().GetAwaiter().GetResult(); + vediErrore(-206); + return -206; + } + Console.WriteLine("Inizio RICEZIONE WorkZeroOffsetData"); + var workResult = fanuc.ReadWorkZeroDataAsync(inputArgs.pathCNC.ToString()).GetAwaiter().GetResult(); + Console.WriteLine("Fine RICEZIONE WorkZeroOffsetData"); + if (!workResult.Success || string.IsNullOrEmpty(workResult.Value)) + { + macchina.DisconnectAsync().GetAwaiter().GetResult(); + vediErrore(-206); + return -206; + } + programma.setValue(workResult.Value, FanucProgram.FILE_TYPE.WORK_ZERO_OFFSET); + } + + macchina.DisconnectAsync().GetAwaiter().GetResult(); + File.WriteAllText(inputArgs.pathLocaleProgramma, programma.ToString()); + vediErrore(0); + return 0; + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + vediErrore(-202); + return -202; + } + } + + static int Invia(ICncMachine macchina) + { + Console.WriteLine("INVIA A CNC-->"); + try + { + var connResult = macchina.ConnectAsync().GetAwaiter().GetResult(); + if (!connResult.Success) + { + Console.WriteLine("Macchina non connessa"); + vediErrore(-201); + return -201; + } + + FanucProgram programma = new FanucProgram(File.ReadAllText(inputArgs.pathLocaleProgramma)); + if (!string.IsNullOrEmpty(inputArgs.commentoProgramma)) + programma.ChangeComment(inputArgs.commentoProgramma); + + if (programma.Program != null) + { + Console.WriteLine("Inizio INVIO NCProgram"); + var cncProg = new CncProgram + { + Name = programma.GetProgramTitle(), + Comment = programma.GetProgramComment(), + Content = programma.Program, + Path = inputArgs.pathCNC.ToString() + }; + var writeResult = macchina.WriteProgramAsync(inputArgs.pathCNC.ToString(), cncProg).GetAwaiter().GetResult(); + Console.WriteLine("Fine INVIO NCProgram"); + if (!writeResult.Success) + { + macchina.DisconnectAsync().GetAwaiter().GetResult(); + vediErrore(-204); + return -204; + } + } + + IFanucMachine fanuc = macchina as IFanucMachine; + + if (programma.ToolOffsetData != null && inputArgs.hasToolOffsetData) + { + if (fanuc == null) + { + Console.WriteLine("ToolOffset non supportato per questo produttore"); + macchina.DisconnectAsync().GetAwaiter().GetResult(); + vediErrore(-205); + return -205; + } + Console.WriteLine("Inizio INVIO ToolOffsetData"); + var toolResult = fanuc.WriteToolDataAsync(inputArgs.pathCNC.ToString(), programma.ToolOffsetData).GetAwaiter().GetResult(); + Console.WriteLine("Fine INVIO ToolOffsetData"); + if (!toolResult.Success) + { + macchina.DisconnectAsync().GetAwaiter().GetResult(); + vediErrore(-205); + return -205; + } + } + + if (programma.WorkZeroOffsetData != null && inputArgs.hasWorkZeroOffsetData) + { + if (fanuc == null) + { + Console.WriteLine("WorkZeroOffset non supportato per questo produttore"); + macchina.DisconnectAsync().GetAwaiter().GetResult(); + vediErrore(-206); + return -206; + } + Console.WriteLine("Inizio INVIO WorkZeroOffsetData"); + var workResult = fanuc.WriteWorkZeroDataAsync(inputArgs.pathCNC.ToString(), programma.WorkZeroOffsetData).GetAwaiter().GetResult(); + Console.WriteLine("Fine INVIO WorkZeroOffsetData"); + if (!workResult.Success) + { + macchina.DisconnectAsync().GetAwaiter().GetResult(); + vediErrore(-206); + return -206; + } + } + + macchina.DisconnectAsync().GetAwaiter().GetResult(); + vediErrore(0); + return 0; + } + catch (Exception ex) + { + Console.WriteLine(ex.Message); + vediErrore(-202); + return -202; + } + } + + static void vediErrore(int errore) + { + Console.WriteLine("Errore:" + errore); + Console.WriteLine(); + Console.WriteLine("Codici Errori:"); + Console.WriteLine("-100 : Licenza Errata/non valida."); + Console.WriteLine("-101 : Impossibile parsare i parametri."); + Console.WriteLine("-102 : Parametri mancanti. "); + Console.WriteLine("-103 : Codice connessione errato: 3->Ethernet 2->HSSB. "); + Console.WriteLine("-201 : Macchina non connessa. "); + Console.WriteLine("-202 : Eccezione nell'esecuzione dell'AZIONE. "); + Console.WriteLine("-203 : L'azione è fallita. "); + Console.WriteLine("-204 : Errore in fase invio/ricezione Programma CN. "); + Console.WriteLine("-205 : Errore in fase invio/ricezione tool offset data "); + Console.WriteLine("-206 : Errore in fase invio/ricezione work zero offest data"); + Console.WriteLine("-207 : Posizionare il CN in MDI o EDIT per eseguire l'invio di un programma"); + Console.WriteLine("-208 : Programma CN Caricato ma non settato a main."); + if (inputArgs.debugMode) + Console.ReadLine(); + } + + static Boolean checkLicense(string chiave) + { + string pcInfo = string.Empty; + ManagementClass mc = new ManagementClass("win32_processor"); + ManagementObjectCollection moc = mc.GetInstances(); + + foreach (ManagementObject mo in moc) + { + //Get only the first CPU's ID + pcInfo = mo.Properties["processorID"].Value.ToString(); + } + + ManagementObjectSearcher baseboardSearcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_BaseBoard"); + foreach (ManagementObject queryObj in baseboardSearcher.Get()) + { + //Get motherboardSerialNumber + pcInfo += queryObj["SerialNumber"].ToString(); + break; + } + + using (Aes myAes = Aes.Create()) + { + if (chiave == "") + return false; + myAes.IV = Convert.FromBase64String("qqxNM8Li99Cwx61VX/QoWA=="); + myAes.Key = Convert.FromBase64String("7/12mP3dFLGqPGjujlwBCVblURxBaBcGGQ2c2FatfP4="); + byte[] encrypted = AesCrypt.EncryptStringToBytes_Aes(pcInfo, myAes.Key, myAes.IV); + string roundtrip = AesCrypt.DecryptStringFromBytes_Aes(encrypted, myAes.Key, myAes.IV); + string decoded = ""; + try + { + decoded = AesCrypt.DecryptStringFromBytes_Aes(Convert.FromBase64String(chiave), myAes.Key, myAes.IV); + } + catch (Exception ex) + { + Console.WriteLine(ex.ToString()); + } + return pcInfo == decoded; + } + } + + static void MostraAiuto() + { + Console.WriteLine("Utilizzo del Software gestore Programmi FANUC"); + Console.WriteLine("Le funzioni pricipali sono due."); + Console.WriteLine("INVIA: caricamento di programma su CNC."); + Console.WriteLine("SCARICA: scaricamento di programma su CNC."); + Console.WriteLine(); + Console.WriteLine(); + Console.WriteLine("Lista dei parametri da fornire all'eseguibile\nDevono essere separati da uno spazio tra l'uno e l'altro,\nnon andare a capo e non lasciare spazi dopo l'= "); + Console.WriteLine(); + Console.WriteLine("-chiave="); + Console.WriteLine(" la stringa chiave per eseguire il software."); + Console.WriteLine("-azione="); + Console.WriteLine(" l'{AZIONE} da eseguire."); + Console.WriteLine("-manufacturer="); + Console.WriteLine(" Il produttore del CNC: fanuc (default), heidenhain, siemens, mitsubishi"); + Console.WriteLine("-tipo="); + Console.WriteLine(" Il tipo di connessione utilizzato dalla macchina: 3 per ethernet\n 2 per HSSB (solo Fanuc, legacy)"); + Console.WriteLine("-ip="); + Console.WriteLine(" Dato per Ethernet indirizzo IP della macchina"); + Console.WriteLine("-porta="); + Console.WriteLine(" Dato per Ethernet PORTA di connessione"); + Console.WriteLine("-nodo="); + Console.WriteLine(" Dato per HSSB Nodo di connesione (solo Fanuc)"); + Console.WriteLine("-username="); + Console.WriteLine(" Username per autenticazione (Heidenhain/Siemens)"); + Console.WriteLine("-password="); + Console.WriteLine(" Password per autenticazione (Heidenhain/Siemens)"); + Console.WriteLine("-compatibility"); + Console.WriteLine(" Attivazione modalità compatibilità"); + Console.WriteLine("-commento="); + Console.WriteLine(" Commento da applicare al programma scelto"); + Console.WriteLine("-path="); + Console.WriteLine(" Path dei programmi del CNC dove vengono salvati i programmi, se non definito è impostato a 1 cioè //CNC_MEM/USER/PATH1/"); + Console.WriteLine("-pathprogramma="); + Console.WriteLine(" Necessario per INVIO: Path del programma locale da caricare sul CNC"); + Console.WriteLine("-workzero="); + Console.WriteLine(" Invia/Scarica anche i dati relativi al workzero offset"); + Console.WriteLine("-tooloffset="); + Console.WriteLine(" Invia/Scarica anche i dati relativi al tool offset"); + Console.WriteLine("-debug="); + Console.WriteLine(" Mantiene il terminale aperto alla fine delle operazioni"); + Console.WriteLine("-help"); + Console.WriteLine(" Mostra questo messaggio e termina"); + Console.WriteLine(); + Console.WriteLine("Codici Errori:"); + Console.WriteLine("-100 : Licenza Errata/non valida."); + Console.WriteLine("-101 : Impossibile parsare i parametri."); + Console.WriteLine("-102 : Parametri mancanti. "); + Console.WriteLine("-103 : Codice connessione errato: 3->Ethernet 2->HSSB. "); + Console.WriteLine("-201 : Macchina non connessa. "); + Console.WriteLine("-202 : Eccezione nell'esecuzione dell'AZIONE. "); + Console.WriteLine("-203 : L'azione è fallita. "); + Console.WriteLine("-204 : Errore in fase invio/ricezione Programma CN. "); + Console.WriteLine("-205 : Errore in fase invio/ricezione tool offset data "); + Console.WriteLine("-206 : Errore in fase invio/ricezione work zero offest data"); + Console.WriteLine("-207 : Posizionare il CN in MDI o EDIT per eseguire l'invio di un programma"); + Console.WriteLine("-208 : Programma CN Caricato ma non settato a main."); + } + + private static void parseArgomenti(string[] args) + { + List arguments = new List(args); + var help = arguments.Find(it => new Regex("-help.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(help)) + { + inputArgs.mostraHelp = true; + return; + } + var chiave = arguments.Find(it => new Regex("-chiave=.*", RegexOptions.IgnoreCase).IsMatch(it)); + inputArgs.chiave = chiave.Substring(8); + var azione = arguments.Find(it => new Regex("-azione=.*", RegexOptions.IgnoreCase).IsMatch(it)); + inputArgs.azione = azione.Substring(8); + var manufacturer = arguments.Find(it => new Regex("-manufacturer=.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(manufacturer)) + { + string mfgVal = manufacturer.Substring(14).Trim().ToLowerInvariant(); + switch (mfgVal) + { + case "heidenhain": inputArgs.manufacturer = CncManufacturer.Heidenhain; break; + case "siemens": inputArgs.manufacturer = CncManufacturer.Siemens; break; + case "mitsubishi": inputArgs.manufacturer = CncManufacturer.Mitsubishi; break; + default: inputArgs.manufacturer = CncManufacturer.Fanuc; break; + } + } + string tipo = arguments.Find(it => new Regex("-tipo=.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(tipo)) + inputArgs.tipo = Int32.Parse(tipo.Substring(6)); + else inputArgs.tipo = 3; + var ip = arguments.Find(it => new Regex("-ip=.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(ip)) + inputArgs.ip = ip.Substring(4); + var porta = arguments.Find(it => new Regex("-porta=.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(porta)) + inputArgs.porta = porta.Substring(7); + var nodo = arguments.Find(it => new Regex("-nodo=.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(nodo)) + inputArgs.nodoHssb = Int32.Parse(nodo.Substring(6)); + else inputArgs.nodoHssb = -1; + var username = arguments.Find(it => new Regex("-username=.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(username)) + inputArgs.username = username.Substring(10); + var password = arguments.Find(it => new Regex("-password=.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(password)) + inputArgs.password = password.Substring(10); + var compatibility = arguments.Find(it => new Regex("-compatibility.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(compatibility)) + inputArgs.compatibilityMode = true; + var commento = arguments.Find(it => new Regex("-commento=.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(commento)) + inputArgs.commentoProgramma = commento.Substring(10); + var path = arguments.Find(it => new Regex("-path=.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(path)) + inputArgs.pathCNC = Int16.Parse(path.Substring(6)); + var pathprogramma = arguments.Find(it => new Regex("-pathprogramma=.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(pathprogramma)) + inputArgs.pathLocaleProgramma = pathprogramma.Substring(15); + var hasToolOffestData = arguments.Find(it => new Regex("-tooloffset.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(hasToolOffestData)) + inputArgs.hasToolOffsetData = true; + var hasWorkZeroOffsetData = arguments.Find(it => new Regex("-workzero.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(hasWorkZeroOffsetData)) + inputArgs.hasWorkZeroOffsetData = true; + var debugMode = arguments.Find(it => new Regex("-debug.*", RegexOptions.IgnoreCase).IsMatch(it)); + if (!string.IsNullOrEmpty(debugMode)) + inputArgs.debugMode = true; + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100755 index 0000000..f400efd --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,39 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +[assembly: InternalsVisibleTo("FanucProgramManager.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: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("FanucProgramManager")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili +// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da +// COM, impostare su true l'attributo ComVisible per tale tipo. +[assembly: ComVisible(false)] + +// Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi +[assembly: Guid("1032188b-3321-42b2-87ed-343bf718caf5")] + +// Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori: +// +// Versione principale +// Versione secondaria +// Numero di build +// Revisione +// +// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build +// usando l'asterisco '*' come illustrato di seguito: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.1.0.0")] +[assembly: AssemblyFileVersion("1.1.0.0")] diff --git a/fwlib32.cs b/fwlib32.cs new file mode 100755 index 0000000..db679b0 --- /dev/null +++ b/fwlib32.cs @@ -0,0 +1,11569 @@ +/*-------------------------------------------------------------------*/ +/* FWLIB32.cs */ +/* */ +/* CNC/PMC Data Window Library for FOCAS1/Ethernet */ +/* */ +/* Copyright (C) 2002-2014 by FANUC CORPORATION All rights reserved. */ +/* */ +/*-------------------------------------------------------------------*/ + +#define LEAVE_OLD_STYLE + +using System; +using System.Runtime.InteropServices; + +public class Focas1 +{ + /* Axis define */ +#if FS30D + public const short MAX_AXIS = 32; +#elif M_AXIS2 + public const short MAX_AXIS = 24; +#elif FS15D + public const short MAX_AXIS = 10; +#else + public const short MAX_AXIS = 8; +#endif + + public const short ALL_AXES = (-1); + public const short ALL_SPINDLES = (-1); + public const short EW_OK = (short)focas_ret.EW_OK; + + /* Error Codes */ + public enum focas_ret { + EW_PROTOCOL = (-17), /* protocol error */ + EW_SOCKET = (-16), /* Windows socket error */ + EW_NODLL = (-15), /* DLL not exist error */ + EW_BUS = (-11), /* bus error */ + EW_SYSTEM2 = (-10), /* system error */ + EW_HSSB = (-9) , /* hssb communication error */ + EW_HANDLE = (-8) , /* Windows library handle error */ + EW_VERSION = (-7) , /* CNC/PMC version missmatch */ + EW_UNEXP = (-6) , /* abnormal error */ + EW_SYSTEM = (-5) , /* system error */ + EW_PARITY = (-4) , /* shared RAM parity error */ + EW_MMCSYS = (-3) , /* emm386 or mmcsys install error */ + EW_RESET = (-2) , /* reset or stop occured error */ + EW_BUSY = (-1) , /* busy error */ + EW_OK = 0 , /* no problem */ + EW_FUNC = 1 , /* command prepare error */ + EW_NOPMC = 1 , /* pmc not exist */ + EW_LENGTH = 2 , /* data block length error */ + EW_NUMBER = 3 , /* data number error */ + EW_RANGE = 3 , /* address range error */ + EW_ATTRIB = 4 , /* data attribute error */ + EW_TYPE = 4 , /* data type error */ + EW_DATA = 5 , /* data error */ + EW_NOOPT = 6 , /* no option error */ + EW_PROT = 7 , /* write protect error */ + EW_OVRFLOW = 8 , /* memory overflow error */ + EW_PARAM = 9 , /* cnc parameter not correct error */ + EW_BUFFER = 10 , /* buffer error */ + EW_PATH = 11 , /* path error */ + EW_MODE = 12 , /* cnc mode error */ + EW_REJECT = 13 , /* execution rejected error */ + EW_DTSRVR = 14 , /* data server error */ + EW_ALARM = 15 , /* alarm has been occurred */ + EW_STOP = 16 , /* CNC is not running */ + EW_PASSWD = 17 , /* protection data error */ + /* + Result codes of DNC operation + */ + DNC_NORMAL = (-1) , /* normal completed */ + DNC_CANCEL = (-32768), /* DNC operation was canceled by CNC */ + DNC_OPENERR = (-514) , /* file open error */ + DNC_NOFILE = (-516) , /* file not found */ + DNC_READERR = (-517) /* read error */ + }; + +/*--------------------*/ +/* */ +/* Structure Template */ +/* */ +/*--------------------*/ +/*-------------------------------------*/ +/* CNC: Control axis / spindle related */ +/*-------------------------------------*/ + + /* cnc_actf:read actual axis feedrate(F) */ + /* cnc_acts:read actual spindle speed(S) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBACT + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] dummy; /* dummy */ + public int data ; /* actual feed / actual spindle */ + } + + /* cnc_acts2:read actual spindle speed(S) */ + /* (All or specified ) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBACT2 + { + public short datano; /* spindle number */ + public short type; /* dummy */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=4)] + public int[] data; /* spindle data */ + } + + /* cnc_absolute:read absolute axis position */ + /* cnc_machine:read machine axis position */ + /* cnc_relative:read relative axis position */ + /* cnc_distance:read distance to go */ + /* cnc_skip:read skip position */ + /* cnc_srvdelay:read servo delay value */ + /* cnc_accdecdly:read acceleration/deceleration delay value */ + /* cnc_absolute2:read absolute axis position 2 */ + /* cnc_relative2:read relative axis position 2 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBAXIS + { + public short dummy ; /* dummy */ + public short type ; /* axis number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] data; /* data value */ + } + + /* cnc_rddynamic:read all dynamic data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class FAXIS + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] absolute; /* absolute position */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] machine; /* machine position */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] relative; /* relative position */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] distance; /* distance to go */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class OAXIS + { + public int absolute ; /* absolute position */ + public int machine ; /* machine position */ + public int relative ; /* relative position */ + public int distance ; /* distance to go */ + } +#if (!ONO8D) + [StructLayout(LayoutKind.Sequential, Pack=4)] + public class ODBDY_1 + { + public short dummy ; + public short axis ; /* axis number */ + public short alarm ; /* alarm status */ + public short prgnum ; /* current program number */ + public short prgmnum ; /* main program number */ + public int seqnum ; /* current sequence number */ + public int actf ; /* actual feedrate */ + public int acts ; /* actual spindle speed */ + public FAXIS pos = new FAXIS(); + } + + [StructLayout(LayoutKind.Sequential, Pack=4)] + public class ODBDY_2 + { + public short dummy ; + public short axis ; /* axis number */ + public short alarm ; /* alarm status */ + public short prgnum ; /* current program number */ + public short prgmnum ; /* main program number */ + public int seqnum ; /* current sequence number */ + public int actf ; /* actual feedrate */ + public int acts ; /* actual spindle speed */ + public OAXIS pos = new OAXIS(); + } +#else + [StructLayout(LayoutKind.Sequential, Pack=4)] + public class ODBDY_1 + { + public short dummy ; + public short axis ; /* axis number */ + public short alarm ; /* alarm status */ + public int prgnum ; /* current program number */ + public int prgmnum ; /* main program number */ + public int seqnum ; /* current sequence number */ + public int actf ; /* actual feedrate */ + public int acts ; /* actual spindle speed */ + public FAXIS pos = new FAXIS(); + } + [StructLayout(LayoutKind.Sequential, Pack=4)] + public class ODBDY_2 + { + public short dummy ; + public short axis ; /* axis number */ + public short alarm ; /* alarm status */ + public int prgnum ; /* current program number */ + public int prgmnum ; /* main program number */ + public int seqnum ; /* current sequence number */ + public int actf ; /* actual feedrate */ + public int acts ; /* actual spindle speed */ + public OAXIS pos = new OAXIS(); + } +#endif + + /* cnc_rddynamic2:read all dynamic data */ + [StructLayout(LayoutKind.Sequential, Pack=4)] + public class ODBDY2_1 + { + public short dummy ; + public short axis ; /* axis number */ + public int alarm ; /* alarm status */ + public int prgnum ; /* current program number */ + public int prgmnum ; /* main program number */ + public int seqnum ; /* current sequence number */ + public int actf ; /* actual feedrate */ + public int acts ; /* actual spindle speed */ + public FAXIS pos = new FAXIS(); + } + [StructLayout(LayoutKind.Sequential, Pack=4)] + public class ODBDY2_2 + { + public short dummy; + public short axis; /* axis number */ + public int alarm; /* alarm status */ + public int prgnum; /* current program number */ + public int prgmnum; /* main program number */ + public int seqnum; /* current sequence number */ + public int actf; /* actual feedrate */ + public int acts; /* actual spindle speed */ + public OAXIS pos = new OAXIS(); /* In case of 1 axis */ + } + + /* cnc_wrrelpos:set origin / preset relative axis position */ + [StructLayout(LayoutKind.Sequential, Pack=4)] + public class IDBWRR + { + public short datano; /* dummy */ + public short type; /* axis number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] data = new int[MAX_AXIS]; /* preset data */ + } + + /* cnc_prstwkcd:preset work coordinate */ + [StructLayout(LayoutKind.Sequential, Pack=4)] + public class IDBWRA + { + public short datano; /* dummy */ + public short type; /* axis number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] data = new int[MAX_AXIS]; /* preset data */ + } + + /* cnc_rdmovrlap:read manual overlapped motion value */ + [StructLayout(LayoutKind.Sequential, Pack=4)] + public class IODBOVL + { + public short datano; /* dummy */ + public short type; /* axis number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2*MAX_AXIS)] + public int[] data; /* data value:[2][MAX_AXIS] */ + } + + /* cnc_rdspload:read load information of serial spindle */ + /* cnc_rdspmaxrpm:read maximum r.p.m. ratio of serial spindle */ + /* cnc_rdspgear:read gear ratio of serial spindle */ + [StructLayout(LayoutKind.Sequential, Pack=4)] + public class ODBSPN + { + public short datano; /* dummy */ + public short type; /* axis number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=4)] + public short[] data; /* preset data */ + } + + /* cnc_rdposition:read tool position */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class POSELM + { + public int data; /* position data */ + public short dec; /* place of decimal point of position data */ + public short unit; /* unit of position data */ + public short disp; /* status of display */ + public char name; /* axis name */ + public char suff; /* axis name preffix */ + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class POSELMALL + { + public POSELM abs=new POSELM(); + public POSELM mach=new POSELM(); + public POSELM rel=new POSELM(); + public POSELM dist=new POSELM(); + } + +#if M_AXIS2 + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPOS + { + public POSELMALL p1=new POSELMALL(); + public POSELMALL p2=new POSELMALL(); + public POSELMALL p3=new POSELMALL(); + public POSELMALL p4=new POSELMALL(); + public POSELMALL p5=new POSELMALL(); + public POSELMALL p6=new POSELMALL(); + public POSELMALL p7=new POSELMALL(); + public POSELMALL p8=new POSELMALL(); + public POSELMALL p9=new POSELMALL(); + public POSELMALL p10=new POSELMALL(); + public POSELMALL p11=new POSELMALL(); + public POSELMALL p12=new POSELMALL(); + public POSELMALL p13=new POSELMALL(); + public POSELMALL p14=new POSELMALL(); + public POSELMALL p15=new POSELMALL(); + public POSELMALL p16=new POSELMALL(); + public POSELMALL p17=new POSELMALL(); + public POSELMALL p18=new POSELMALL(); + public POSELMALL p19=new POSELMALL(); + public POSELMALL p20=new POSELMALL(); + public POSELMALL p21=new POSELMALL(); + public POSELMALL p22=new POSELMALL(); + public POSELMALL p23=new POSELMALL(); + public POSELMALL p24=new POSELMALL(); + // In case of 24 axes. + // if you need the more information, you must be add the member. + } +#elif FS15D + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPOS + { + public POSELMALL p1=new POSELMALL(); + public POSELMALL p2=new POSELMALL(); + public POSELMALL p3=new POSELMALL(); + public POSELMALL p4=new POSELMALL(); + public POSELMALL p5=new POSELMALL(); + public POSELMALL p6=new POSELMALL(); + public POSELMALL p7=new POSELMALL(); + public POSELMALL p8=new POSELMALL(); + public POSELMALL p9=new POSELMALL(); + public POSELMALL p10=new POSELMALL(); + // In case of 10 axes. + // if you need the more information, you must be add the member. + } +#else + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPOS + { + public POSELMALL p1=new POSELMALL(); + public POSELMALL p2=new POSELMALL(); + public POSELMALL p3=new POSELMALL(); + public POSELMALL p4=new POSELMALL(); + public POSELMALL p5=new POSELMALL(); + public POSELMALL p6=new POSELMALL(); + public POSELMALL p7=new POSELMALL(); + public POSELMALL p8=new POSELMALL(); + // In case of 8 axes. + // if you need the more information, you must be add the member. + } +#endif + + /* cnc_rdhndintrpt:read handle interruption */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBHND_data + { + public POSELM input=new POSELM(); /* input unit */ + public POSELM output=new POSELM(); /* output unit */ + } +#if M_AXIS2 + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBHND + { + public ODBHND_data p1=new ODBHND_data(); + public ODBHND_data p2=new ODBHND_data(); + public ODBHND_data p3=new ODBHND_data(); + public ODBHND_data p4=new ODBHND_data(); + public ODBHND_data p5=new ODBHND_data(); + public ODBHND_data p6=new ODBHND_data(); + public ODBHND_data p7=new ODBHND_data(); + public ODBHND_data p8=new ODBHND_data(); + public ODBHND_data p9=new ODBHND_data(); + public ODBHND_data p10=new ODBHND_data(); + public ODBHND_data p11=new ODBHND_data(); + public ODBHND_data p12=new ODBHND_data(); + public ODBHND_data p13=new ODBHND_data(); + public ODBHND_data p14=new ODBHND_data(); + public ODBHND_data p15=new ODBHND_data(); + public ODBHND_data p16=new ODBHND_data(); + public ODBHND_data p17=new ODBHND_data(); + public ODBHND_data p18=new ODBHND_data(); + public ODBHND_data p19=new ODBHND_data(); + public ODBHND_data p20=new ODBHND_data(); + public ODBHND_data p21=new ODBHND_data(); + public ODBHND_data p22=new ODBHND_data(); + public ODBHND_data p23=new ODBHND_data(); + public ODBHND_data p24=new ODBHND_data(); + // In case of 24 axes. + // if you need the more information, you must be add the member. + } +#elif FS15D + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBHND + { + public ODBHND_data p1=new ODBHND_data(); + public ODBHND_data p2=new ODBHND_data(); + public ODBHND_data p3=new ODBHND_data(); + public ODBHND_data p4=new ODBHND_data(); + public ODBHND_data p5=new ODBHND_data(); + public ODBHND_data p6=new ODBHND_data(); + public ODBHND_data p7=new ODBHND_data(); + public ODBHND_data p8=new ODBHND_data(); + public ODBHND_data p9=new ODBHND_data(); + public ODBHND_data p10=new ODBHND_data(); + // In case of 10 axes. + // if you need the more information, you must be add the member. + } +#else + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBHND + { + public ODBHND_data p1=new ODBHND_data(); + public ODBHND_data p2=new ODBHND_data(); + public ODBHND_data p3=new ODBHND_data(); + public ODBHND_data p4=new ODBHND_data(); + public ODBHND_data p5=new ODBHND_data(); + public ODBHND_data p6=new ODBHND_data(); + public ODBHND_data p7=new ODBHND_data(); + public ODBHND_data p8=new ODBHND_data(); + // In case of 8 axes. + // if you need the more information, you must be add the member. + } +#endif + + /* cnc_rdspeed:read current speed */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class SPEEDELM + { + public int data; /* speed data */ + public short dec; /* decimal position */ + public short unit; /* data unit */ + public short disp; /* display flag */ + public byte name; /* name of data */ + public byte suff; /* suffix */ + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSPEED + { + public SPEEDELM actf=new SPEEDELM(); /* actual feed rate */ + public SPEEDELM acts=new SPEEDELM(); /* actual spindle speed */ + } + + /* cnc_rdsvmeter:read servo load meter */ + /* cnc_rdspmeter:read spindle load meter */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class LOADELM + { + public int data; /* load meter */ + public short dec; /* decimal position */ + public short unit; /* unit */ + public byte name; /* name of data */ + public byte suff1; /* suffix */ + public byte suff2; /* suffix */ + public byte reserve; /* reserve */ + } + +#if M_AXIS2 + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSVLOAD + { + public LOADELM svload1 = new LOADELM(); /* servo load meter */ + public LOADELM svload2 = new LOADELM(); /* servo load meter */ + public LOADELM svload3 = new LOADELM(); /* servo load meter */ + public LOADELM svload4 = new LOADELM(); /* servo load meter */ + public LOADELM svload5 = new LOADELM(); /* servo load meter */ + public LOADELM svload6 = new LOADELM(); /* servo load meter */ + public LOADELM svload7 = new LOADELM(); /* servo load meter */ + public LOADELM svload8 = new LOADELM(); /* servo load meter */ + public LOADELM svload9 = new LOADELM(); /* servo load meter */ + public LOADELM svload10= new LOADELM(); /* servo load meter */ + public LOADELM svload11= new LOADELM(); /* servo load meter */ + public LOADELM svload12= new LOADELM(); /* servo load meter */ + public LOADELM svload13= new LOADELM(); /* servo load meter */ + public LOADELM svload14= new LOADELM(); /* servo load meter */ + public LOADELM svload15= new LOADELM(); /* servo load meter */ + public LOADELM svload16= new LOADELM(); /* servo load meter */ + public LOADELM svload17= new LOADELM(); /* servo load meter */ + public LOADELM svload18= new LOADELM(); /* servo load meter */ + public LOADELM svload19= new LOADELM(); /* servo load meter */ + public LOADELM svload20= new LOADELM(); /* servo load meter */ + public LOADELM svload21= new LOADELM(); /* servo load meter */ + public LOADELM svload22= new LOADELM(); /* servo load meter */ + public LOADELM svload23= new LOADELM(); /* servo load meter */ + public LOADELM svload24= new LOADELM(); /* servo load meter */ + } +#elif FS15D + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSVLOAD + { + public LOADELM svload1 = new LOADELM(); /* servo load meter */ + public LOADELM svload2 = new LOADELM(); /* servo load meter */ + public LOADELM svload3 = new LOADELM(); /* servo load meter */ + public LOADELM svload4 = new LOADELM(); /* servo load meter */ + public LOADELM svload5 = new LOADELM(); /* servo load meter */ + public LOADELM svload6 = new LOADELM(); /* servo load meter */ + public LOADELM svload7 = new LOADELM(); /* servo load meter */ + public LOADELM svload8 = new LOADELM(); /* servo load meter */ + public LOADELM svload9 = new LOADELM(); /* servo load meter */ + public LOADELM svload10= new LOADELM(); /* servo load meter */ + } +#else + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSVLOAD + { + public LOADELM svload1 = new LOADELM(); /* servo load meter */ + public LOADELM svload2 = new LOADELM(); /* servo load meter */ + public LOADELM svload3 = new LOADELM(); /* servo load meter */ + public LOADELM svload4 = new LOADELM(); /* servo load meter */ + public LOADELM svload5 = new LOADELM(); /* servo load meter */ + public LOADELM svload6 = new LOADELM(); /* servo load meter */ + public LOADELM svload7 = new LOADELM(); /* servo load meter */ + public LOADELM svload8 = new LOADELM(); /* servo load meter */ + } +#endif + + /* cnc_rdexecpt:read execution program pointer */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class PRGPNT + { + public int prog_no; /* program number */ + public int blk_no; /* block number */ + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSPLOAD_data + { + public LOADELM spload=new LOADELM(); /* spindle load meter */ + public LOADELM spspeed=new LOADELM(); /* spindle speed */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSPLOAD + { + public ODBSPLOAD_data spload1 = new ODBSPLOAD_data(); /* spindle load */ + public ODBSPLOAD_data spload2 = new ODBSPLOAD_data(); /* spindle load */ + public ODBSPLOAD_data spload3 = new ODBSPLOAD_data(); /* spindle load */ + public ODBSPLOAD_data spload4 = new ODBSPLOAD_data(); /* spindle load */ + } + + /* cnc_rd5axmandt:read manual feed for 5-axis machining */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODB5AXMAN + { + public short type1; + public short type2; + public short type3; + public int data1; + public int data2; + public int data3; + public int c1; + public int c2; + public int dummy; + public int td; + public int r1; + public int r2; + public int vr; + public int h1; + public int h2; + } + +/*----------------------*/ +/* CNC: Program related */ +/*----------------------*/ + + /* cnc_rddncdgndt:read the diagnosis data of DNC operation */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDNCDGN + { + public short ctrl_word; + public short can_word; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public char[] nc_file; + public ushort read_ptr; + public ushort write_ptr; + public ushort empty_cnt; + public uint total_size; + } + + /* cnc_upload:upload NC program */ + /* cnc_cupload:upload NC program(conditional) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBUP + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] dummy; /* dummy */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=256)] + public char[] data ; /* data */ + } /* In case that the number of data is 256 */ + + /* cnc_buff:read buffer status for downloading/verification NC program */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBBUF + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] dummy; /* dummy */ + public short data ; /* buffer status */ + } + + /* cnc_rdprogdir:read program directory */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class PRGDIR + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=256)] + public char[] prg_data ; /* directory data */ + } /* In case that the number of data is 256 */ + + /* cnc_rdproginfo:read program information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBNC_1 + { + public short reg_prg ; /* registered program number */ + public short unreg_prg ; /* unregistered program number */ + public int used_mem ; /* used memory area */ + public int unused_mem ; /* unused memory area */ + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBNC_2 + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=31)] + public char[] asc; /* ASCII string type */ + } + + /* cnc_rdprgnum:read program number under execution */ +#if (!ONO8D) + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPRO + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] dummy ; /* dummy */ + public short data ; /* running program number */ + public short mdata ; /* main program number */ + } +#else + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPRO + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] dummy ; /* dummy */ + public int data ; /* running program number */ + public int mdata ; /* main program number */ + } +#endif + + /* cnc_exeprgname:read program name under execution */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBEXEPRG + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=36)] + public char[] name; /* running program name */ + public int o_num; /* running program number */ + } + + /* cnc_rdseqnum:read sequence number under execution */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSEQ + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] dummy; /* dummy */ + public int data; /* sequence number */ + } + + /* cnc_rdmdipntr:read execution pointer for MDI operation */ +#if (!ONO8D) + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBMDIP + { + public short mdiprog; /* exec. program number */ + public int mdipntr; /* exec. pointer */ + public short crntprog; /* prepare program number */ + public int crntpntr; /* prepare pointer */ + } +#else + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBMDIP + { + public int mdiprog; /* exec. program number */ + public int mdipntr; /* exec. pointer */ + public int crntprog; /* prepare program number */ + public int crntpntr; /* prepare pointer */ + } +#endif + + /* cnc_rdaxisdata:read various axis data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBAXDT_data + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string name = new string(' ',4); /* axis name */ + public int data; /* position data */ + public short dec; /* decimal position */ + public short unit; /* data unit */ + public short flag; /* flags */ + public short reserve; /* reserve */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBAXDT + { + public ODBAXDT_data data1 =new ODBAXDT_data(); + public ODBAXDT_data data2 =new ODBAXDT_data(); + public ODBAXDT_data data3 =new ODBAXDT_data(); + public ODBAXDT_data data4 =new ODBAXDT_data(); + public ODBAXDT_data data5 =new ODBAXDT_data(); + public ODBAXDT_data data6 =new ODBAXDT_data(); + public ODBAXDT_data data7 =new ODBAXDT_data(); + public ODBAXDT_data data8 =new ODBAXDT_data(); + public ODBAXDT_data data9 =new ODBAXDT_data(); + public ODBAXDT_data data10 =new ODBAXDT_data(); + public ODBAXDT_data data11 =new ODBAXDT_data(); + public ODBAXDT_data data12 =new ODBAXDT_data(); + public ODBAXDT_data data13 =new ODBAXDT_data(); + public ODBAXDT_data data14 =new ODBAXDT_data(); + public ODBAXDT_data data15 =new ODBAXDT_data(); + public ODBAXDT_data data16 =new ODBAXDT_data(); + public ODBAXDT_data data17 =new ODBAXDT_data(); + public ODBAXDT_data data18 =new ODBAXDT_data(); + public ODBAXDT_data data19 =new ODBAXDT_data(); + public ODBAXDT_data data20 =new ODBAXDT_data(); + public ODBAXDT_data data21 =new ODBAXDT_data(); + public ODBAXDT_data data22 =new ODBAXDT_data(); + public ODBAXDT_data data23 =new ODBAXDT_data(); + public ODBAXDT_data data24 =new ODBAXDT_data(); + public ODBAXDT_data data25 =new ODBAXDT_data(); + public ODBAXDT_data data26 =new ODBAXDT_data(); + public ODBAXDT_data data27 =new ODBAXDT_data(); + public ODBAXDT_data data28 =new ODBAXDT_data(); + public ODBAXDT_data data29 =new ODBAXDT_data(); + public ODBAXDT_data data30 =new ODBAXDT_data(); + public ODBAXDT_data data31 =new ODBAXDT_data(); + public ODBAXDT_data data32 =new ODBAXDT_data(); + public ODBAXDT_data data33 =new ODBAXDT_data(); + public ODBAXDT_data data34 =new ODBAXDT_data(); + public ODBAXDT_data data35 =new ODBAXDT_data(); + public ODBAXDT_data data36 =new ODBAXDT_data(); + public ODBAXDT_data data37 =new ODBAXDT_data(); + public ODBAXDT_data data38 =new ODBAXDT_data(); + public ODBAXDT_data data39 =new ODBAXDT_data(); + public ODBAXDT_data data40 =new ODBAXDT_data(); + public ODBAXDT_data data41 =new ODBAXDT_data(); + public ODBAXDT_data data42 =new ODBAXDT_data(); + public ODBAXDT_data data43 =new ODBAXDT_data(); + public ODBAXDT_data data44 =new ODBAXDT_data(); + public ODBAXDT_data data45 =new ODBAXDT_data(); + public ODBAXDT_data data46 =new ODBAXDT_data(); + public ODBAXDT_data data47 =new ODBAXDT_data(); + public ODBAXDT_data data48 =new ODBAXDT_data(); + public ODBAXDT_data data49 =new ODBAXDT_data(); + public ODBAXDT_data data50 =new ODBAXDT_data(); + public ODBAXDT_data data51 =new ODBAXDT_data(); + public ODBAXDT_data data52 =new ODBAXDT_data(); + public ODBAXDT_data data53 =new ODBAXDT_data(); + public ODBAXDT_data data54 =new ODBAXDT_data(); + public ODBAXDT_data data55 =new ODBAXDT_data(); + public ODBAXDT_data data56 =new ODBAXDT_data(); + public ODBAXDT_data data57 =new ODBAXDT_data(); + public ODBAXDT_data data58 =new ODBAXDT_data(); + public ODBAXDT_data data59 =new ODBAXDT_data(); + public ODBAXDT_data data60 =new ODBAXDT_data(); + public ODBAXDT_data data61 =new ODBAXDT_data(); + public ODBAXDT_data data62 =new ODBAXDT_data(); + public ODBAXDT_data data63 =new ODBAXDT_data(); + public ODBAXDT_data data64 =new ODBAXDT_data(); + public ODBAXDT_data data65 =new ODBAXDT_data(); + public ODBAXDT_data data66 =new ODBAXDT_data(); + public ODBAXDT_data data67 =new ODBAXDT_data(); + public ODBAXDT_data data68 =new ODBAXDT_data(); + public ODBAXDT_data data69 =new ODBAXDT_data(); + public ODBAXDT_data data70 =new ODBAXDT_data(); + public ODBAXDT_data data71 =new ODBAXDT_data(); + public ODBAXDT_data data72 =new ODBAXDT_data(); + public ODBAXDT_data data73 =new ODBAXDT_data(); + public ODBAXDT_data data74 =new ODBAXDT_data(); + public ODBAXDT_data data75 =new ODBAXDT_data(); + public ODBAXDT_data data76 =new ODBAXDT_data(); + public ODBAXDT_data data77 =new ODBAXDT_data(); + public ODBAXDT_data data78 =new ODBAXDT_data(); + public ODBAXDT_data data79 =new ODBAXDT_data(); + public ODBAXDT_data data80 =new ODBAXDT_data(); + public ODBAXDT_data data81 =new ODBAXDT_data(); + public ODBAXDT_data data82 =new ODBAXDT_data(); + public ODBAXDT_data data83 =new ODBAXDT_data(); + public ODBAXDT_data data84 =new ODBAXDT_data(); + public ODBAXDT_data data85 =new ODBAXDT_data(); + public ODBAXDT_data data86 =new ODBAXDT_data(); + public ODBAXDT_data data87 =new ODBAXDT_data(); + public ODBAXDT_data data88 =new ODBAXDT_data(); + public ODBAXDT_data data89 =new ODBAXDT_data(); + public ODBAXDT_data data90 =new ODBAXDT_data(); + public ODBAXDT_data data91 =new ODBAXDT_data(); + public ODBAXDT_data data92 =new ODBAXDT_data(); + public ODBAXDT_data data93 =new ODBAXDT_data(); + public ODBAXDT_data data94 =new ODBAXDT_data(); + public ODBAXDT_data data95 =new ODBAXDT_data(); + public ODBAXDT_data data96 =new ODBAXDT_data(); + public ODBAXDT_data data97 =new ODBAXDT_data(); + public ODBAXDT_data data98 =new ODBAXDT_data(); + public ODBAXDT_data data99 =new ODBAXDT_data(); + public ODBAXDT_data data100 =new ODBAXDT_data(); + public ODBAXDT_data data101 =new ODBAXDT_data(); + public ODBAXDT_data data102 =new ODBAXDT_data(); + public ODBAXDT_data data103 =new ODBAXDT_data(); + public ODBAXDT_data data104 =new ODBAXDT_data(); + public ODBAXDT_data data105 =new ODBAXDT_data(); + public ODBAXDT_data data106 =new ODBAXDT_data(); + public ODBAXDT_data data107 =new ODBAXDT_data(); + public ODBAXDT_data data108 =new ODBAXDT_data(); + public ODBAXDT_data data109 =new ODBAXDT_data(); + public ODBAXDT_data data110 =new ODBAXDT_data(); + public ODBAXDT_data data111 =new ODBAXDT_data(); + public ODBAXDT_data data112 =new ODBAXDT_data(); + public ODBAXDT_data data113 =new ODBAXDT_data(); + public ODBAXDT_data data114 =new ODBAXDT_data(); + public ODBAXDT_data data115 =new ODBAXDT_data(); + public ODBAXDT_data data116 =new ODBAXDT_data(); + public ODBAXDT_data data117 =new ODBAXDT_data(); + public ODBAXDT_data data118 =new ODBAXDT_data(); + public ODBAXDT_data data119 =new ODBAXDT_data(); + public ODBAXDT_data data120 =new ODBAXDT_data(); + public ODBAXDT_data data121 =new ODBAXDT_data(); + public ODBAXDT_data data122 =new ODBAXDT_data(); + public ODBAXDT_data data123 =new ODBAXDT_data(); + public ODBAXDT_data data124 =new ODBAXDT_data(); + public ODBAXDT_data data125 =new ODBAXDT_data(); + public ODBAXDT_data data126 =new ODBAXDT_data(); + public ODBAXDT_data data127 =new ODBAXDT_data(); + public ODBAXDT_data data128 =new ODBAXDT_data(); + } + + /* cnc_rdspcss:read constant surface speed data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBCSS + { + public int srpm; /* order spindle speed */ + public int sspm; /* order constant spindle speed */ + public int smax; /* order maximum spindle speed */ + } + + /* cnc_rdpdf_drive:read program drive directory */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPDFDRV + { + public short max_num; /* maximum drive number */ + public short dummy; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive1 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive2 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive3 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive4 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive5 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive6 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive7 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive8 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive9 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive10 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive11 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive12 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive13 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive14 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive15 = new string(' ',12) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string drive16 = new string(' ',12) ; + } + + /* cnc_rdpdf_inf:read program drive information */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBPDFINF + { + public int used_page; /* used capacity */ + public int all_page; /* all capacity */ + public int used_dir; /* used directory number */ + public int all_dir; /* all directory number */ + } + + /* cnc_rdpdf_subdir:read directory (sub directories) */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class IDBPDFSDIR + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=212)] + public string path = new string(' ',212) ; /* path name */ + public short req_num; /* entry number */ + public short dummy; + } + + /* cnc_rdpdf_subdir:read directory (sub directories) */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBPDFSDIR + { + public short sub_exist; /* existence of sub directory */ + public short dummy; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=36)] + public string d_f = new string(' ',36) ; /* path name */ + } + + /* cnc_rdpdf_alldir:read directory (all files) */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class IDBPDFADIR + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=212)] + public string path = new string(' ',212) ; /* path name */ + public short req_num; /* entry number */ + public short size_kind; /* kind of size */ + public short type; /* kind of format */ + public short dummy; + } + + /* cnc_rdpdf_alldir:read directory (all files) */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBPDFADIR + { + public short data_kind; /* kinf of data */ + public short year; /* last date and time */ + public short mon; /* last date and time */ + public short day; /* last date and time */ + public short hour; /* last date and time */ + public short min; /* last date and time */ + public short sec; /* last date and time */ + public short dummy; + public int dummy2; + public int size; /* size */ + public int attr; /* attribute */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=36)] + public string d_f = new string(' ',36) ; /* path name */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=52)] + public string comment = new string(' ',52) ; /* comment */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string o_time = new string(' ',12) ; /* machining time stamp */ + } + + /* cnc_rdpdf_subdirn:read file count the directory has */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPDFNFIL + { + public short dir_num; /* directory */ + public short file_num; /* file */ + } + + /* cnc_wrpdf_attr:change attribute of program file and directory */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IDBPDFTDIR + { + public uint slct; /* selection */ + public uint attr; /* data */ + } + +/*---------------------------*/ +/* CNC: NC file data related */ +/*---------------------------*/ + + /* cnc_rdtofs:read tool offset value */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBTOFS + { + public short datano; /* data number */ + public short type; /* data type */ + public int data; /* data */ + } + + /* cnc_rdtofsr:read tool offset value(area specified) */ + /* cnc_wrtofsr:write tool offset value(area specified) */ + [StructLayout(LayoutKind.Explicit)] + public class OFS_1 + { + [ FieldOffset( 0 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public int[] m_ofs = new int[5]; /* M Each */ + [ FieldOffset( 0 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public int[] m_ofs_a = new int[5] ; /* M-A All */ + [ FieldOffset( 0 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public short[] t_tip = new short[5] ; /* T Each, 2-byte */ + [ FieldOffset( 0 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public int[] t_ofs = new int[5]; /* T Each, 4-byte */ + } /* In case that the number of data is 5 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class OFS_2 + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2*5)] + public int[] m_ofs_b = new int[10] ; /* M-B All */ + } /* In case that the number of data is 5 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class OFS_3 + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=4*5)] + public int[] m_ofs_c = new int[20]; /* M-C All */ + } /* In case that the number of data is 5 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class T_OFS_A + { + public short tip ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=4)] + public int[] data ; + } /* T-A All */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class T_OFS_A_data + { + public T_OFS_A data1 = new T_OFS_A(); + public T_OFS_A data2 = new T_OFS_A(); + public T_OFS_A data3 = new T_OFS_A(); + public T_OFS_A data4 = new T_OFS_A(); + public T_OFS_A data5 = new T_OFS_A(); + } /* In case that the number of data is 5 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class T_OFS_B + { + public short tip ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public int[] data ; + } /* T-B All */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class T_OFS_B_data + { + public T_OFS_B data1 = new T_OFS_B(); + public T_OFS_B data2 = new T_OFS_B(); + public T_OFS_B data3 = new T_OFS_B(); + public T_OFS_B data4 = new T_OFS_B(); + public T_OFS_B data5 = new T_OFS_B(); + } /* In case that the number of data is 5 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTO_1_1 + { + public short datano_s ; /* start offset number */ + public short type ; /* offset type */ + public short datano_e ; /* end offset number */ + public OFS_1 ofs = new OFS_1(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTO_1_2 + { + public short datano_s ; /* start offset number */ + public short type ; /* offset type */ + public short datano_e ; /* end offset number */ + public OFS_2 ofs = new OFS_2(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTO_1_3 + { + public short datano_s ; /* start offset number */ + public short type ; /* offset type */ + public short datano_e ; /* end offset number */ + public OFS_3 ofs = new OFS_3(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTO_2 + { + public short datano_s ; /* start offset number */ + public short type ; /* offset type */ + public short datano_e ; /* end offset number */ + public T_OFS_A_data tofsa = new T_OFS_A_data(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTO_3 + { + public short datano_s ; /* start offset number */ + public short type ; /* offset type */ + public short datano_e ; /* end offset number */ + public T_OFS_B_data tofsb = new T_OFS_B_data(); + } + + /* cnc_rdzofs:read work zero offset value */ + /* cnc_wrzofs:write work zero offset value */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBZOFS + { + public short datano ; /* offset NO. */ + public short type ; /* axis number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] data = new int[MAX_AXIS]; /* data value */ + } + + /* cnc_rdzofsr:read work zero offset value(area specified) */ + /* cnc_wrzofsr:write work zero offset value(area specified) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBZOR + { + public short datano_s ; /* start offset number */ + public short type ; /* axis number */ + public short datano_e ; /* end offset number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=7*MAX_AXIS)] + public int[] data = new int[7*MAX_AXIS] ; /* offset value */ + } /* In case that the number of axes is MAX_AXIS, the number of data is 7 */ + + /* cnc_rdmsptype:read mesured point value */ + /* cnc_wrmsptype:write mesured point value */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBMSTP + { + public short datano_s ; /* start offset number */ + public short dummy ; /* dummy */ + public short datano_e ; /* end offset number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=7)] + public sbyte[] data = new sbyte[7]; /* mesured point value */ + } + + /* cnc_rdparam:read parameter */ + /* cnc_wrparam:write parameter */ + /* cnc_rdset:read setting data */ + /* cnc_wrset:write setting data */ + /* cnc_rdparar:read parameter(area specified) */ + /* cnc_wrparas:write parameter(plural specified) */ + /* cnc_rdsetr:read setting data(area specified) */ + /* cnc_wrsets:write setting data(plural specified) */ + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class IODBPSD + { + public short datano; /* data number */ + public short type; /* axis number */ + public IODBPSD_U u = new IODBPSD_U(); + + [StructLayout(LayoutKind.Explicit)] + public class IODBPSD_U + { + [FieldOffset(0), MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_AXIS)] + public byte[] cdatas; + [FieldOffset(0), MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_AXIS)] + public short[] idatas; + [FieldOffset(0), MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_AXIS)] + public int[] ldatas; + [FieldOffset(0), MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_AXIS)] + public REALPRM[] rdatas = new REALPRM[MAX_AXIS]; + + public byte cdata { get { return cdatas[0]; } set { cdatas[0] = value; } } + public short idata { get { return idatas[0]; } set { idatas[0] = value; } } + public int ldata { get { return ldatas[0]; } set { ldatas[0] = value; } } + public REALPRM rdata { get { return rdatas[0]; } set { rdatas[0] = value; } } + } + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public struct REALPRM + { + public int prm_val; /* data of real parameter */ + public int dec_val; /* decimal point of real parameter */ + } +#if LEAVE_OLD_STYLE +#if M_AXIS2 + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REALPRMS + { + public REALPRM rdata1=new REALPRM(); + public REALPRM rdata2=new REALPRM(); + public REALPRM rdata3=new REALPRM(); + public REALPRM rdata4=new REALPRM(); + public REALPRM rdata5=new REALPRM(); + public REALPRM rdata6=new REALPRM(); + public REALPRM rdata7=new REALPRM(); + public REALPRM rdata8=new REALPRM(); + public REALPRM rdata9=new REALPRM(); + public REALPRM rdata10=new REALPRM(); + public REALPRM rdata11=new REALPRM(); + public REALPRM rdata12=new REALPRM(); + public REALPRM rdata13=new REALPRM(); + public REALPRM rdata14=new REALPRM(); + public REALPRM rdata15=new REALPRM(); + public REALPRM rdata16=new REALPRM(); + public REALPRM rdata17=new REALPRM(); + public REALPRM rdata18=new REALPRM(); + public REALPRM rdata19=new REALPRM(); + public REALPRM rdata20=new REALPRM(); + public REALPRM rdata21=new REALPRM(); + public REALPRM rdata22=new REALPRM(); + public REALPRM rdata23=new REALPRM(); + public REALPRM rdata24=new REALPRM(); + } /* In case that the number of alarm is 24 */ +#elif FS15D + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REALPRMS + { + public REALPRM rdata1=new REALPRM(); + public REALPRM rdata2=new REALPRM(); + public REALPRM rdata3=new REALPRM(); + public REALPRM rdata4=new REALPRM(); + public REALPRM rdata5=new REALPRM(); + public REALPRM rdata6=new REALPRM(); + public REALPRM rdata7=new REALPRM(); + public REALPRM rdata8=new REALPRM(); + public REALPRM rdata9=new REALPRM(); + public REALPRM rdata10=new REALPRM(); + } /* In case that the number of alarm is 10 */ +#else + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REALPRMS + { + public REALPRM rdata1=new REALPRM(); + public REALPRM rdata2=new REALPRM(); + public REALPRM rdata3=new REALPRM(); + public REALPRM rdata4=new REALPRM(); + public REALPRM rdata5=new REALPRM(); + public REALPRM rdata6=new REALPRM(); + public REALPRM rdata7=new REALPRM(); + public REALPRM rdata8=new REALPRM(); + } /* In case that the number of alarm is 8 */ +#endif + + [StructLayout(LayoutKind.Explicit)] + public class IODBPSD_1 + { + [ FieldOffset( 0 )] + public short datano ; /* data number */ + [ FieldOffset( 2 )] + public short type ; /* axis number */ + [ FieldOffset( 4 )] + public byte cdata; /* parameter / setting data */ + [ FieldOffset( 4 )] + public short idata; + [ FieldOffset( 4 )] + public int ldata; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPSD_2 + { + public short datano ; /* data number */ + public short type ; /* axis number */ + public REALPRM rdata=new REALPRM(); + } + [StructLayout(LayoutKind.Explicit)] + public class IODBPSD_3 + { + [ FieldOffset( 0 )] + public short datano ; /* data number */ + [ FieldOffset( 2 )] + public short type ; /* axis number */ + [ FieldOffset( 4 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public byte[] cdatas = new byte[MAX_AXIS]; + [ FieldOffset( 4 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public short[] idatas = new short[MAX_AXIS]; + [ FieldOffset( 4 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ldatas = new int[MAX_AXIS]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPSD_4 + { + public short datano ; /* data number */ + public short type ; /* axis number */ + public REALPRMS rdatas=new REALPRMS(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPSD_A + { + public IODBPSD_1 data1=new IODBPSD_1(); + public IODBPSD_1 data2=new IODBPSD_1(); + public IODBPSD_1 data3=new IODBPSD_1(); + public IODBPSD_1 data4=new IODBPSD_1(); + public IODBPSD_1 data5=new IODBPSD_1(); + public IODBPSD_1 data6=new IODBPSD_1(); + public IODBPSD_1 data7=new IODBPSD_1(); + } /* (sample) must be modified */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPSD_B + { + public IODBPSD_2 data1=new IODBPSD_2(); + public IODBPSD_2 data2=new IODBPSD_2(); + public IODBPSD_2 data3=new IODBPSD_2(); + public IODBPSD_2 data4=new IODBPSD_2(); + public IODBPSD_2 data5=new IODBPSD_2(); + public IODBPSD_2 data6=new IODBPSD_2(); + public IODBPSD_2 data7=new IODBPSD_2(); + } /* (sample) must be modified */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPSD_C + { + public IODBPSD_3 data1=new IODBPSD_3(); + public IODBPSD_3 data2=new IODBPSD_3(); + public IODBPSD_3 data3=new IODBPSD_3(); + public IODBPSD_3 data4=new IODBPSD_3(); + public IODBPSD_3 data5=new IODBPSD_3(); + public IODBPSD_3 data6=new IODBPSD_3(); + public IODBPSD_3 data7=new IODBPSD_3(); + } /* (sample) must be modified */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPSD_D + { + public IODBPSD_4 data1=new IODBPSD_4(); + public IODBPSD_4 data2=new IODBPSD_4(); + public IODBPSD_4 data3=new IODBPSD_4(); + public IODBPSD_4 data4=new IODBPSD_4(); + public IODBPSD_4 data5=new IODBPSD_4(); + public IODBPSD_4 data6=new IODBPSD_4(); + public IODBPSD_4 data7=new IODBPSD_4(); + } /* (sample) must be modified */ +#endif + + /* cnc_rdparam_ext:read parameters */ + /* cnc_rddiag_ext:read diagnosis data */ + /* cnc_start_async_wrparam:async parameter write start */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPRMNO + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public int[] prm = new int[10]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPRM_data + { + public int prm_val ; /* parameter / setting data */ + public int dec_val ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPRM1 + { + public IODBPRM_data data1=new IODBPRM_data(); + public IODBPRM_data data2=new IODBPRM_data(); + public IODBPRM_data data3=new IODBPRM_data(); + public IODBPRM_data data4=new IODBPRM_data(); + public IODBPRM_data data5=new IODBPRM_data(); + public IODBPRM_data data6=new IODBPRM_data(); + public IODBPRM_data data7=new IODBPRM_data(); + public IODBPRM_data data8=new IODBPRM_data(); + public IODBPRM_data data9=new IODBPRM_data(); + public IODBPRM_data data10=new IODBPRM_data(); + public IODBPRM_data data11=new IODBPRM_data(); + public IODBPRM_data data12=new IODBPRM_data(); + public IODBPRM_data data13=new IODBPRM_data(); + public IODBPRM_data data14=new IODBPRM_data(); + public IODBPRM_data data15=new IODBPRM_data(); + public IODBPRM_data data16=new IODBPRM_data(); + public IODBPRM_data data17=new IODBPRM_data(); + public IODBPRM_data data18=new IODBPRM_data(); + public IODBPRM_data data19=new IODBPRM_data(); + public IODBPRM_data data20=new IODBPRM_data(); + public IODBPRM_data data21=new IODBPRM_data(); + public IODBPRM_data data22=new IODBPRM_data(); + public IODBPRM_data data23=new IODBPRM_data(); + public IODBPRM_data data24=new IODBPRM_data(); + public IODBPRM_data data25=new IODBPRM_data(); + public IODBPRM_data data26=new IODBPRM_data(); + public IODBPRM_data data27=new IODBPRM_data(); + public IODBPRM_data data28=new IODBPRM_data(); + public IODBPRM_data data29=new IODBPRM_data(); + public IODBPRM_data data30=new IODBPRM_data(); + public IODBPRM_data data31=new IODBPRM_data(); + public IODBPRM_data data32=new IODBPRM_data(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPRM2 + { + public int datano ; /* data number */ + public short type ; /* data type */ + public short axis ; /* axis information */ + public short info ; /* misc information */ + public short unit ; /* unit information */ + public IODBPRM1 data = new IODBPRM1(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPRM + { + public IODBPRM2 prm1 = new IODBPRM2(); + public IODBPRM2 prm2 = new IODBPRM2(); + public IODBPRM2 prm3 = new IODBPRM2(); + public IODBPRM2 prm4 = new IODBPRM2(); + public IODBPRM2 prm5 = new IODBPRM2(); + public IODBPRM2 prm6 = new IODBPRM2(); + public IODBPRM2 prm7 = new IODBPRM2(); + public IODBPRM2 prm8 = new IODBPRM2(); + public IODBPRM2 prm9 = new IODBPRM2(); + public IODBPRM2 prm10= new IODBPRM2(); + } /* In case that the number of alarm is 10 */ + + /* cnc_rdpitchr:read pitch error compensation data(area specified) */ + /* cnc_wrpitchr:write pitch error compensation data(area specified) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPI + { + public short datano_s ; /* start pitch number */ + public short dummy ; /* dummy */ + public short datano_e ; /* end pitch number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public sbyte[] data = new sbyte[5]; /* offset value */ + } /* In case that the number of data is 5 */ + + /* cnc_rdmacro:read custom macro variable */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBM + { + public short datano ; /* variable number */ + public short dummy ; /* dummy */ + public int mcr_val ; /* macro variable */ + public short dec_val ; /* decimal point */ + } + + /* cnc_rdmacror:read custom macro variables(area specified) */ + /* cnc_wrmacror:write custom macro variables(area specified) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBMR_data + { + public int mcr_val ; /* macro variable */ + public short dec_val ; /* decimal point */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBMR1 + { + public IODBMR_data data1=new IODBMR_data(); + public IODBMR_data data2=new IODBMR_data(); + public IODBMR_data data3=new IODBMR_data(); + public IODBMR_data data4=new IODBMR_data(); + public IODBMR_data data5=new IODBMR_data(); + } /* In case that the number of data is 5 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBMR + { + public short datano_s ; /* start macro number */ + public short dummy ; /* dummy */ + public short datano_e ; /* end macro number */ + public IODBMR1 data = new IODBMR1(); + } + + /* cnc_rdpmacro:read P code macro variable */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPM + { + public int datano ; /* variable number */ + public short dummy ; /* dummy */ + public int mcr_val ; /* macro variable */ + public short dec_val ; /* decimal point */ + } + + /* cnc_rdpmacror:read P code macro variables(area specified) */ + /* cnc_wrpmacror:write P code macro variables(area specified) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPR_data + { + public int mcr_val ; /* macro variable */ + public short dec_val ; /* decimal point */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPR1 + { + public IODBPR_data data1=new IODBPR_data(); + public IODBPR_data data2=new IODBPR_data(); + public IODBPR_data data3=new IODBPR_data(); + public IODBPR_data data4=new IODBPR_data(); + public IODBPR_data data5=new IODBPR_data(); + } /* In case that the number of data is 5 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPR + { + public int datano_s ; /* start macro number */ + public short dummy ; /* dummy */ + public int datano_e ; /* end macro number */ + public IODBPR1 data = new IODBPR1(); + } + + /* cnc_rdtofsinfo:read tool offset information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBTLINF + { + public short ofs_type; + public short use_no; + } + + /* cnc_rdtofsinfo2:read tool offset information(2) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBTLINF2 + { + public short ofs_type; + public short use_no; + public short ofs_enable; + } + + /* cnc_rdmacroinfo:read custom macro variable information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBMVINF + { + public short use_no1; + public short use_no2; + } + + /* cnc_rdpmacroinfo:read P code macro variable information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPMINF + { + public short use_no1; +#if PCD_UWORD + public ushort use_no2; +#else + public short use_no2; +#endif + public short v2_type; + } + + /* cnc_tofs_rnge:read validity of tool offset */ + /* cnc_zofs_rnge:read validity of work zero offset */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDATRNG + { + public int data_min; /* lower limit */ + public int data_max; /* upper limit */ + public int status; /* status of setting */ + } + + /* cnc_rdhsprminfo:read the information for function cnc_rdhsparam() */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class HSPINFO_data + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] data1 = new byte[16]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] data2 = new byte[16]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] data3 = new byte[16]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] data4 = new byte[16]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] data5 = new byte[16]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] data6 = new byte[16]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] data7 = new byte[16]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] data8 = new byte[16]; + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class HSPINFO + { + public HSPINFO_data prminfo1 = new HSPINFO_data(); + public HSPINFO_data prminfo2 = new HSPINFO_data(); + public HSPINFO_data prminfo3 = new HSPINFO_data(); + public HSPINFO_data prminfo4 = new HSPINFO_data(); + public HSPINFO_data prminfo5 = new HSPINFO_data(); + public HSPINFO_data prminfo6 = new HSPINFO_data(); + public HSPINFO_data prminfo7 = new HSPINFO_data(); + public HSPINFO_data prminfo8 = new HSPINFO_data(); + public HSPINFO_data prminfo9 = new HSPINFO_data(); + public HSPINFO_data prminfo10 = new HSPINFO_data(); + } + + /* cnc_rdhsparam:read parameters at the high speed */ + [StructLayout(LayoutKind.Explicit)] + public class HSPDATA_1 + { + [ FieldOffset( 0 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public byte[] cdatas1 = new byte[MAX_AXIS]; + [ FieldOffset( 4*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public byte[] cdatas2 = new byte[MAX_AXIS]; + [ FieldOffset( 4*2*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public byte[] cdatas3 = new byte[MAX_AXIS]; + [ FieldOffset( 4*3*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public byte[] cdatas4 = new byte[MAX_AXIS]; + [ FieldOffset( 4*4*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public byte[] cdatas5 = new byte[MAX_AXIS]; + [ FieldOffset( 4*5*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public byte[] cdatas6 = new byte[MAX_AXIS]; + [ FieldOffset( 4*6*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public byte[] cdatas7 = new byte[MAX_AXIS]; + [ FieldOffset( 4*7*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public byte[] cdatas8 = new byte[MAX_AXIS]; + [ FieldOffset( 4*8*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public byte[] cdatas9 = new byte[MAX_AXIS]; + [ FieldOffset( 4*9*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public byte[] cdatas10 = new byte[MAX_AXIS]; + } + + [StructLayout(LayoutKind.Explicit)] + public class HSPDATA_2 + { + [ FieldOffset( 0 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public short[] idatas1 = new short[MAX_AXIS]; + [ FieldOffset( 2*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public short[] idatas2 = new short[MAX_AXIS]; + [ FieldOffset( 2*2*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public short[] idatas3 = new short[MAX_AXIS]; + [ FieldOffset( 2*3*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public short[] idatas4 = new short[MAX_AXIS]; + [ FieldOffset( 2*4*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public short[] idatas5 = new short[MAX_AXIS]; + [ FieldOffset( 2*5*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public short[] idatas6 = new short[MAX_AXIS]; + [ FieldOffset( 2*6*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public short[] idatas7 = new short[MAX_AXIS]; + [ FieldOffset( 2*7*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public short[] idatas8 = new short[MAX_AXIS]; + [ FieldOffset( 2*8*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public short[] idatas9 = new short[MAX_AXIS]; + [ FieldOffset( 2*9*MAX_AXIS ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public short[] idatas10 = new short[MAX_AXIS]; + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class HSPDATA_3 + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ldatas1 = new int[MAX_AXIS]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ldatas2 = new int[MAX_AXIS]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ldatas3 = new int[MAX_AXIS]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ldatas4 = new int[MAX_AXIS]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ldatas5 = new int[MAX_AXIS]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ldatas6 = new int[MAX_AXIS]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ldatas7 = new int[MAX_AXIS]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ldatas8 = new int[MAX_AXIS]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ldatas9 = new int[MAX_AXIS]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ldatas10 = new int[MAX_AXIS]; + } + +/*----------------------------------------*/ +/* CNC: Tool life management data related */ +/*----------------------------------------*/ + + /* cnc_rdgrpid:read tool life management data(tool group number) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBTLIFE1 + { + public short dummy ; /* dummy */ + public short type ; /* data type */ + public int data ; /* data */ + } + + /* cnc_rdngrp:read tool life management data(number of tool groups) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBTLIFE2 + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] dummy; /* dummy */ + public int data; /* data */ + } + + /* cnc_rdntool:read tool life management data(number of tools) */ + /* cnc_rdlife:read tool life management data(tool life) */ + /* cnc_rdcount:read tool life management data(tool lift counter) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBTLIFE3 + { + public short datano ; /* data number */ + public short dummy ; /* dummy */ + public int data ; /* data */ + } + + /* cnc_rd1length:read tool life management data(tool length number-1) */ + /* cnc_rd2length:read tool life management data(tool length number-2) */ + /* cnc_rd1radius:read tool life management data(cutter compensation no.-1) */ + /* cnc_rd2radius:read tool life management data(cutter compensation no.-2) */ + /* cnc_t1info:read tool life management data(tool information-1) */ + /* cnc_t2info:read tool life management data(tool information-2) */ + /* cnc_toolnum:read tool life management data(tool number) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBTLIFE4 + { + public short datano ; /* data number */ + public short type ; /* data type */ + public int data ; /* data */ + } + + /* cnc_rdgrpid2:read tool life management data(tool group number) 2 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBTLIFE5 + { + public int dummy ; /* dummy */ + public int type ; /* data type */ + public int data ; /* data */ + } + + /* cnc_rdtoolrng:read tool life management data(tool number, tool life, tool life counter)(area specified) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTR_data + { + public int ntool ; /* tool number */ + public int life ; /* tool life */ + public int count ; /* tool life counter */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTR1 + { + public IODBTR_data data1 = new IODBTR_data(); + public IODBTR_data data2 = new IODBTR_data(); + public IODBTR_data data3 = new IODBTR_data(); + public IODBTR_data data4 = new IODBTR_data(); + public IODBTR_data data5 = new IODBTR_data(); + } /* In case that the number of data is 5 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTR + { + public short datano_s ; /* start group number */ + public short dummy ; /* dummy */ + public short datano_e ; /* end group number */ + public IODBTR1 data = new IODBTR1(); + } + + /* cnc_rdtoolgrp:read tool life management data(all data within group) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBTG_data + { + public int tuse_num ; /* tool number */ + public int tool_num ; /* tool life */ + public int length_num ; /* tool life counter */ + public int radius_num ; /* tool life counter */ + public int tinfo ; /* tool life counter */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBTG1 + { + public ODBTG_data data1 = new ODBTG_data(); + public ODBTG_data data2 = new ODBTG_data(); + public ODBTG_data data3 = new ODBTG_data(); + public ODBTG_data data4 = new ODBTG_data(); + public ODBTG_data data5 = new ODBTG_data(); + } /* In case that the number of data is 5 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBTG + { + public short grp_num ; /* start group number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] dummy ; /* dummy */ + public int ntool ; /* tool number */ + public int life ; /* tool life */ + public int count ; /* tool life counter */ + public ODBTG1 data = new ODBTG1(); + } + + /* cnc_wrcountr:write tool life management data(tool life counter) (area specified) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IDBWRC_data + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public int[] dummy ; /* dummy */ + public int count ; /* tool life counter */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IDBWRC1 + { + public IDBWRC_data data1 = new IDBWRC_data(); + public IDBWRC_data data2 = new IDBWRC_data(); + public IDBWRC_data data3 = new IDBWRC_data(); + public IDBWRC_data data4 = new IDBWRC_data(); + public IDBWRC_data data5 = new IDBWRC_data(); + } /* In case that the number of data is 5 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IDBWRC + { + public short datano_s ; /* start group number */ + public short dummy ; /* dummy */ + public short datano_e ; /* end group number */ + public IDBWRC1 data = new IDBWRC1(); + } + + /* cnc_rdusegrpid:read tool life management data(used tool group number) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBUSEGR + { + public short datano; /* dummy */ + public short type; /* dummy */ + public int next; /* next use group number */ + public int use; /* using group number */ + public int slct; /* selecting group number */ + } + + /* cnc_rdmaxgrp:read tool life management data(max. number of tool groups) */ + /* cnc_rdmaxtool:read tool life management data(maximum number of tool within group) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBLFNO + { + public short datano; /* dummy */ + public short type; /* dummy */ + public short data; /* number of data */ + } + + /* cnc_rdusetlno:read tool life management data(used tool no within group) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBTLUSE + { + public short s_grp; /* start group number */ + public short dummy; /* dummy */ + public short e_grp; /* end group number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public int[] data; /* tool using number */ + } /* In case that the number of group is 5 */ + + /* cnc_rd1tlifedata:read tool life management data(tool data1) */ + /* cnc_rd2tlifedata:read tool life management data(tool data2) */ + /* cnc_wr1tlifedata:write tool life management data(tool data1) */ + /* cnc_wr2tlifedata:write tool life management data(tool data2) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTD + { + public short datano; /* tool group number */ + public short type; /* tool using number */ + public int tool_num; /* tool number */ + public int h_code; /* H code */ + public int d_code; /* D code */ + public int tool_inf; /* tool information */ + } + + /* cnc_rd1tlifedat2:read tool life management data(tool data1) 2 */ + /* cnc_wr1tlifedat2:write tool life management data(tool data1) 2 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTD2 + { + public short datano; /* tool group number */ + public short dummy; /* dummy */ + public int type; /* tool using number */ + public int tool_num; /* tool number */ + public int h_code; /* H code */ + public int d_code; /* D code */ + public int tool_inf; /* tool information */ + } + + /* cnc_rdgrpinfo:read tool life management data(tool group information) */ + /* cnc_wrgrpinfo:write tool life management data(tool group information) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTGI_data + { + public int n_tool; /* number of tool */ + public int count_value; /* tool life */ + public int counter; /* tool life counter */ + public int count_type; /* tool life counter type */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTGI1 + { + public IODBTGI_data data1 = new IODBTGI_data(); + public IODBTGI_data data2 = new IODBTGI_data(); + public IODBTGI_data data3 = new IODBTGI_data(); + public IODBTGI_data data4 = new IODBTGI_data(); + public IODBTGI_data data5 = new IODBTGI_data(); + } /* In case that the number of data is 5 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTGI + { + public short s_grp; /* start group number */ + public short dummy; /* dummy */ + public short e_grp; /* end group number */ + public IODBTGI1 data = new IODBTGI1(); + } + + /* cnc_rdgrpinfo2:read tool life management data(tool group information 2) */ + /* cnc_wrgrpinfo2:write tool life management data(tool group information 2) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTGI2 + { + public short s_grp; /* start group number */ + public short dummy; /* dummy */ + public short e_grp; /* end group number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public int[] opt_grpno = new int[5]; /* optional group number of tool */ + } /* In case that the number of group is 5 */ + + /* cnc_rdgrpinfo3:read tool life management data(tool group information 3) */ + /* cnc_wrgrpinfo3:write tool life management data(tool group information 3) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTGI3 + { + public short s_grp; /* start group number */ + public short dummy; /* dummy */ + public short e_grp; /* end group number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public int[] life_rest = new int[5]; /* tool life rest count */ + } /* In case that the number of group is 5 */ + + /* cnc_rdgrpinfo4:read tool life management data(tool group information 4) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTGI4 + { + public short grp_no; + public int n_tool; + public int count_value; + public int counter; + public int count_type; + public int opt_grpno; + public int life_rest; + } + + /* cnc_instlifedt:insert tool life management data(tool data) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IDBITD + { + public short datano; /* tool group number */ + public short type; /* tool using number */ + public int data; /* tool number */ + } + + /* cnc_rdtlinfo:read tool life management data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBTLINFO + { + public int max_group; /* maximum number of tool groups */ + public int max_tool; /* maximum number of tool within group */ + public int max_minute; /* maximum number of life count (minutes) */ + public int max_cycle; /* maximum number of life count (cycles) */ + } + + /* cnc_rdtlusegrp:read tool life management data(used tool group number) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBUSEGRP + { + public int next; /* next use group number */ + public int use; /* using group number */ + public int slct; /* selecting group number */ + public int opt_next; /* next use optional group number */ + public int opt_use; /* using optional group number */ + public int opt_slct; /* selecting optional group number */ + } + + /* cnc_rdtlgrp:read tool life management data(tool group information 2) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLGRP_data + { + public int ntool; /* number of all tool */ + public int nfree; /* number of free tool */ + public int life; /* tool life */ + public int count; /* tool life counter */ + public int use_tool; /* using tool number */ + public int opt_grpno; /* optional group number */ + public int life_rest; /* tool life rest count */ + public short rest_sig; /* tool life rest signal */ + public short count_type; /* tool life counter type */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLGRP + { + public IODBTLGRP_data data1 = new IODBTLGRP_data(); + public IODBTLGRP_data data2 = new IODBTLGRP_data(); + public IODBTLGRP_data data3 = new IODBTLGRP_data(); + public IODBTLGRP_data data4 = new IODBTLGRP_data(); + public IODBTLGRP_data data5 = new IODBTLGRP_data(); + } /* In case that the number of group is 5 */ + + /* cnc_rdtltool:read tool life management data (tool data1) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLTOOL_data + { + public int tool_num; /* tool number */ + public int h_code; /* H code */ + public int d_code; /* D code */ + public int tool_inf; /* tool information */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLTOOL + { + public IODBTLTOOL_data data1 = new IODBTLTOOL_data(); + public IODBTLTOOL_data data2 = new IODBTLTOOL_data(); + public IODBTLTOOL_data data3 = new IODBTLTOOL_data(); + public IODBTLTOOL_data data4 = new IODBTLTOOL_data(); + public IODBTLTOOL_data data5 = new IODBTLTOOL_data(); + } /* In case that the number of group is 5 */ + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBEXGP_data + { + public int grp_no; /* group number */ + public int opt_grpno; /* optional group number */ + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBEXGP + { + public ODBEXGP_data data1 = new ODBEXGP_data(); + public ODBEXGP_data data2 = new ODBEXGP_data(); + public ODBEXGP_data data3 = new ODBEXGP_data(); + public ODBEXGP_data data4 = new ODBEXGP_data(); + public ODBEXGP_data data5 = new ODBEXGP_data(); + public ODBEXGP_data data6 = new ODBEXGP_data(); + public ODBEXGP_data data7 = new ODBEXGP_data(); + public ODBEXGP_data data8 = new ODBEXGP_data(); + public ODBEXGP_data data9 = new ODBEXGP_data(); + public ODBEXGP_data data10 = new ODBEXGP_data(); + public ODBEXGP_data data11 = new ODBEXGP_data(); + public ODBEXGP_data data12 = new ODBEXGP_data(); + public ODBEXGP_data data13 = new ODBEXGP_data(); + public ODBEXGP_data data14 = new ODBEXGP_data(); + public ODBEXGP_data data15 = new ODBEXGP_data(); + public ODBEXGP_data data16 = new ODBEXGP_data(); + public ODBEXGP_data data17 = new ODBEXGP_data(); + public ODBEXGP_data data18 = new ODBEXGP_data(); + public ODBEXGP_data data19 = new ODBEXGP_data(); + public ODBEXGP_data data20 = new ODBEXGP_data(); + public ODBEXGP_data data21 = new ODBEXGP_data(); + public ODBEXGP_data data22 = new ODBEXGP_data(); + public ODBEXGP_data data23 = new ODBEXGP_data(); + public ODBEXGP_data data24 = new ODBEXGP_data(); + public ODBEXGP_data data25 = new ODBEXGP_data(); + public ODBEXGP_data data26 = new ODBEXGP_data(); + public ODBEXGP_data data27 = new ODBEXGP_data(); + public ODBEXGP_data data28 = new ODBEXGP_data(); + public ODBEXGP_data data29 = new ODBEXGP_data(); + public ODBEXGP_data data30 = new ODBEXGP_data(); + public ODBEXGP_data data31 = new ODBEXGP_data(); + public ODBEXGP_data data32 = new ODBEXGP_data(); + } + +/*-----------------------------------*/ +/* CNC: Tool management data related */ +/*-----------------------------------*/ + + /* cnc_regtool:new registration of tool management data */ + /* cnc_rdtool:lead of tool management data */ + /* cnc_wrtool:write of tool management data */ + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class IODBTLMNG_data + { + public int T_code; + public int life_count; + public int max_life; + public int rest_life; + public byte life_stat; + public byte cust_bits; + public ushort tool_info; + public short H_code; + public short D_code; + public int spindle_speed; + public int feedrate; + public short magazine; + public short pot; + public short G_code; + public short W_code; + public short gno; + public short grp; + public short edge; + public short org_magazine; + public short org_pot; + public byte edge_num; + private byte reserve_c; + private int reserved_1; + private int reserved_2; + public int custom1; + public int custom2; + public int custom3; + public int custom4; + public int custom5; + public int custom6; + public int custom7; + public int custom8; + public int custom9; + public int custom10; + public int custom11; + public int custom12; + public int custom13; + public int custom14; + public int custom15; + public int custom16; + public int custom17; + public int custom18; + public int custom19; + public int custom20; + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLMNG + { + public IODBTLMNG_data data1 = new IODBTLMNG_data(); + public IODBTLMNG_data data2 = new IODBTLMNG_data(); + public IODBTLMNG_data data3 = new IODBTLMNG_data(); + public IODBTLMNG_data data4 = new IODBTLMNG_data(); + public IODBTLMNG_data data5 = new IODBTLMNG_data(); + } /* In case that the number of group is 5 */ + + + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class IODBTLMNG_F2_data + { + public int T_code; + public int life_count; + public int max_life; + public int rest_life; + public byte life_stat; + public byte cust_bits; + public ushort tool_info; + public short H_code; + public short D_code; + public int spindle_speed; + public int feedrate; + public short magazine; + public short pot; + public short G_code; + public short W_code; + public short gno; + public short grp; + public short edge; + public short org_magazine; + public short org_pot; + public byte edge_num; + private byte reserve_c; + private long reserved_1; + private long reserved_2; + public int custom1; + public int custom2; + public int custom3; + public int custom4; + public int custom5; + public int custom6; + public int custom7; + public int custom8; + public int custom9; + public int custom10; + public int custom11; + public int custom12; + public int custom13; + public int custom14; + public int custom15; + public int custom16; + public int custom17; + public int custom18; + public int custom19; + public int custom20; + public int custom21; + public int custom22; + public int custom23; + public int custom24; + public int custom25; + public int custom26; + public int custom27; + public int custom28; + public int custom29; + public int custom30; + public int custom31; + public int custom32; + public int custom33; + public int custom34; + public int custom35; + public int custom36; + public int custom37; + public int custom38; + public int custom39; + public int custom40; + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLMNG_F2 + { + public IODBTLMNG_F2_data data1 = new IODBTLMNG_F2_data(); + public IODBTLMNG_F2_data data2 = new IODBTLMNG_F2_data(); + public IODBTLMNG_F2_data data3 = new IODBTLMNG_F2_data(); + public IODBTLMNG_F2_data data4 = new IODBTLMNG_F2_data(); + public IODBTLMNG_F2_data data5 = new IODBTLMNG_F2_data(); + } /* In case that the number of group is 5 */ + + /* cnc_wrtool2:write of individual data of tool management data */ + [StructLayout(LayoutKind.Explicit)] + public class IDBTLM_item + { + [ FieldOffset( 0 )] + public sbyte data1; + [ FieldOffset( 0 )] + public short data2; + [ FieldOffset( 0 )] + public int data4; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IDBTLM + { + public short data_id; + public IDBTLM_item item = new IDBTLM_item(); + } + + /* cnc_regmagazine:new registration of magazine management data */ + /* cnc_rdmagazine:lead of magazine management data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLMAG_data + { + public short magazine; + public short pot; + public short tool_index; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLMAG + { + public IODBTLMAG_data data1 = new IODBTLMAG_data(); + public IODBTLMAG_data data2 = new IODBTLMAG_data(); + public IODBTLMAG_data data3 = new IODBTLMAG_data(); + public IODBTLMAG_data data4 = new IODBTLMAG_data(); + public IODBTLMAG_data data5 = new IODBTLMAG_data(); + } /* In case that the number of group is 5 */ + + /* cnc_delmagazine:deletion of magazine management data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLMAG2_data + { + public short magazine; + public short pot; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLMAG2 + { + public IODBTLMAG2_data data1 = new IODBTLMAG2_data(); + public IODBTLMAG2_data data2 = new IODBTLMAG2_data(); + public IODBTLMAG2_data data3 = new IODBTLMAG2_data(); + public IODBTLMAG2_data data4 = new IODBTLMAG2_data(); + public IODBTLMAG2_data data5 = new IODBTLMAG2_data(); + } /* In case that the number of group is 5 */ + + +/*-------------------------------------*/ +/* CNC: Operation history data related */ +/*-------------------------------------*/ + + /* cnc_rdophistry:read operation history data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_ALM + { + public short rec_type; /* record type */ + public short alm_grp; /* alarm group */ + public short alm_no; /* alarm number */ + public sbyte axis_no; /* axis number */ + public sbyte dummy; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_MDI + { + public short rec_type; /* record type */ + public byte key_code; /* key code */ + public byte pw_flag; /* power on flag */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=4)] + public sbyte[] dummy; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_SGN + { + public short rec_type; /* record type */ + public sbyte sig_name; /* signal name */ + public byte sig_old; /* old signal bit pattern */ + public byte sig_new; /* new signal bit pattern */ + public sbyte dummy; + public short sig_no; /* signal number */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_DATE + { + public short rec_type; /* record type */ + public sbyte year; /* year */ + public sbyte month; /* month */ + public sbyte day; /* day */ + public sbyte pw_flag; /* power on flag */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public sbyte[] dummy; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_TIME + { + public short rec_type; /* record flag */ + public sbyte hour; /* hour */ + public sbyte minute; /* minute */ + public sbyte second; /* second */ + public sbyte pw_flag; /* power on flag */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public sbyte[] dummy; + } + [StructLayout(LayoutKind.Explicit,Size=8)] + public class ODBHIS_data + { + // record type + [ FieldOffset( 0 )] + public short rec_type; /* record type */ + + // alarm record + [ FieldOffset( 0 )] + public short alm_rec_type; /* record type */ + [ FieldOffset( 2 )] + public short alm_alm_grp; /* alarm group */ + [ FieldOffset( 4 )] + public short alm_alm_no; /* alarm number */ + [ FieldOffset( 6 )] + public sbyte alm_axis_no; /* axis number */ + [ FieldOffset( 7 )] + public sbyte alm_dummy; + + // mdi record + [ FieldOffset( 0 )] + public short mdi_rec_type; /* record type */ + [ FieldOffset( 2 )] + public byte mdi_key_code; /* key code */ + [ FieldOffset( 3 )] + public byte mdi_pw_flag; /* power on flag */ + [ FieldOffset( 4 )] + public sbyte mdi_dummy1; + [ FieldOffset( 5 )] + public sbyte mdi_dummy2; + [ FieldOffset( 6 )] + public sbyte mdi_dummy3; + [ FieldOffset( 7 )] + public sbyte mdi_dummy4; + + // sign record + [ FieldOffset( 0 )] + public short sgn_rec_type; /* record type */ + [ FieldOffset( 2 )] + public sbyte sgn_sig_name; /* signal name */ + [ FieldOffset( 3 )] + public byte sgn_sig_old; /* old signal bit pattern */ + [ FieldOffset( 4 )] + public byte sgn_sig_new; /* new signal bit pattern */ + [ FieldOffset( 5 )] + public sbyte sgn_dummy; + [ FieldOffset( 6 )] + public short sgn_sig_no; /* signal number */ + + // date record + [ FieldOffset( 0 )] + public short date_rec_type; /* record type */ + [ FieldOffset( 2 )] + public sbyte date_year; /* year */ + [ FieldOffset( 3 )] + public sbyte date_month; /* month */ + [ FieldOffset( 4 )] + public sbyte date_day; /* day */ + [ FieldOffset( 5 )] + public sbyte date_pw_flag; /* power on flag */ + [ FieldOffset( 6 )] + public sbyte date_dummy1; + [ FieldOffset( 7 )] + public sbyte date_dummy2; + + // time record + [ FieldOffset( 0 )] + public short time_rec_type; /* record flag */ + [ FieldOffset( 2 )] + public sbyte time_hour; /* hour */ + [ FieldOffset( 3 )] + public sbyte time_minute; /* minute */ + [ FieldOffset( 4 )] + public sbyte time_second; /* second */ + [ FieldOffset( 5 )] + public sbyte time_pw_flag; /* power on flag */ + [ FieldOffset( 6 )] + public sbyte time_dummy1; + [ FieldOffset( 7 )] + public sbyte time_dummy2; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBHIS1 + { + public ODBHIS_data data1 = new ODBHIS_data(); + public ODBHIS_data data2 = new ODBHIS_data(); + public ODBHIS_data data3 = new ODBHIS_data(); + public ODBHIS_data data4 = new ODBHIS_data(); + public ODBHIS_data data5 = new ODBHIS_data(); + public ODBHIS_data data6 = new ODBHIS_data(); + public ODBHIS_data data7 = new ODBHIS_data(); + public ODBHIS_data data8 = new ODBHIS_data(); + public ODBHIS_data data9 = new ODBHIS_data(); + public ODBHIS_data data10= new ODBHIS_data(); + } /* In case that the number of data is 10 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBHIS + { + public ushort s_no; /* start number */ + public short type; /* dummy */ + public ushort e_no; /* end number */ + public ODBHIS1 data = new ODBHIS1(); + } + + /* cnc_rdophistry2:read operation history data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_MDI2 + { + public byte key_code; /* key code */ + public byte pw_flag; /* power on flag */ + public short dummy; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_MDI2_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_MDI2 data = new REC_MDI2(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_SGN2 + { + public short sig_name; /* signal name */ + public short sig_no; /* signal number */ + public byte sig_old; /* old signal bit pattern */ + public byte sig_new; /* new signal bit pattern */ + public short dummy; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_SGN2_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_SGN2 data = new REC_SGN2(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_ALM2 + { + public short alm_grp; /* alarm group */ + public short alm_no; /* alarm number */ + public short axis_no; /* axis number */ + public short year; /* year */ + public short month; /* month */ + public short day; /* day */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short dummy; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_ALM2_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_ALM2 data = new REC_ALM2(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_DATE2 + { + public short evnt_type; /* event type */ + public short year; /* year */ + public short month; /* month */ + public short day; /* day */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short dummy; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_DATE2_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_DATE2 data = new REC_DATE2(); + } + [StructLayout(LayoutKind.Explicit)] + public class ODBOPHIS + { + [ FieldOffset( 0 )] + public REC_MDI2_data rec_mdi = new REC_MDI2_data(); + [ FieldOffset( 0 )] + public REC_SGN2_data rec_sgn = new REC_SGN2_data(); + [ FieldOffset( 0 )] + public REC_ALM2_data rec_alm = new REC_ALM2_data(); + [ FieldOffset( 0 )] + public REC_DATE2_data rec_date = new REC_DATE2_data(); + } + + /* cnc_rdophistry4:read operation history data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_MDI4 + { + public char key_code; /* key code */ + public char pw_flag; /* power on flag */ + public short pth_no; /* path index */ + public short ex_flag; /* kxternal key flag */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_MDI4_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_MDI4 data = new REC_MDI4(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_SGN4 + { + public short sig_name; /* signal name */ + public short sig_no; /* signal number */ + public char sig_old; /* old signal bit pattern */ + public char sig_new; /* new signal bit pattern */ + public short pmc_no; /* pmc index */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short dummy; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_SGN4_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_SGN4 data = new REC_SGN4(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_ALM4 + { + public short alm_grp; /* alarm group */ + public short alm_no; /* alarm number */ + public short axis_no; /* axis number */ + public short year; /* year */ + public short month; /* month */ + public short day; /* day */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short pth_no; /* path index */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_ALM4_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_ALM4 data = new REC_ALM4(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_DATE4 + { + public short evnt_type; /* event type */ + public short year; /* year */ + public short month; /* month */ + public short day; /* day */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short dummy; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_DATE4_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_DATE4 data = new REC_DATE4(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_IAL4 + { + public short alm_grp; /* alarm group */ + public short alm_no; /* alarm number */ + public short axis_no; /* axis number */ + public short year; /* year */ + public short month; /* month */ + public short day; /* day */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short pth_no; /* path index */ + public short sys_alm; /* sys alarm */ + public short dsp_flg; /* message dsp flag */ + public short axis_num; /* axis num */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public int[] g_modal; /* G code Modal */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public char[] g_dp; /* #7:1 Block */ + /* #6`#0 dp*/ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public int[] a_modal; /* B,D,E,F,H,M,N,O,S,T code Modal */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public char[] a_dp; /* #7:1 Block */ + /* 6`#0 dp*/ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public int[] abs_pos; /* Abs pos */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public char[] abs_dp; /* Abs dp */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public int[] mcn_pos; /* Mcn pos */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public char[] mcn_dp; /* Mcn dp */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_IAL4_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_IAL4 data = new REC_IAL4(); + } + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class REC_MAL4 + { + public short alm_grp; /* alarm group */ + public short alm_no; /* alarm number */ + public short axis_no; /* axis number */ + public short year; /* year */ + public short month; /* month */ + public short day; /* day */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short pth_no; /* path index */ + public short sys_alm; /* sys alarm */ + public short dsp_flg; /* message dsp flag */ + public short axis_num; /* axis num */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=64)] + public string alm_msg = new string(' ',64) ; /* alarm message */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public int[] g_modal; /* G code Modal */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public char[] g_dp; /* #7:1 Block */ + /* #6`#0 dp*/ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public int[] a_modal; /* B,D,E,F,H,M,N,O,S,T code Modal */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public char[] a_dp; /* #7:1 Block */ + /* 6`#0 dp*/ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public int[] abs_pos; /* Abs pos */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public char[] abs_dp; /* Abs dp */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public int[] mcn_pos; /* Mcn pos */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public char[] mcn_dp; /* Mcn dp */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_MAL4_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_MAL4 data = new REC_MAL4(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_OPM4 + { + public short dsp_flg; /* Dysplay flag(ON/OFF) */ + public short om_no; /* message number */ + public short year; /* year */ + public short month; /* month */ + public short day; /* day */ + public short hour; /* Hour */ + public short minute; /* Minute */ + public short second; /* Second */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=256)] + public string ope_msg = new string(' ',256) ; /* Messege */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_OPM4_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_OPM4 data = new REC_OPM4(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_OFS4 + { + public short ofs_grp; /* Tool offset group */ + public short ofs_no; /* Tool offset number */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short pth_no; /* path index */ + public int ofs_old; /* old data */ + public int ofs_new; /* new data */ + public short old_dp; /* old data decimal point */ + public short new_dp; /* new data decimal point */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_OFS4_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_OFS4 data = new REC_OFS4(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_PRM4 + { + public short prm_grp; /* paramater group */ + public short prm_num; /* paramater number */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short prm_len; /* paramater data length */ + public int prm_no; /* paramater no */ + public int prm_old; /* old data */ + public int prm_new; /* new data */ + public short old_dp; /* old data decimal point */ + public short new_dp; /* new data decimal point */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_PRM4_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_PRM4 data = new REC_PRM4(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_WOF4 + { + public short ofs_grp; /* Work offset group */ + public short ofs_no; /* Work offset number */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short pth_no; /* path index */ + public short axis_no; /* path axis num $*/ + public short dummy; + public int ofs_old; /* old data */ + public int ofs_new; /* new data */ + public short old_dp; /* old data decimal point */ + public short new_dp; /* new data decimal point */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_WOF4_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_WOF4 data = new REC_WOF4(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_MAC4 + { + public short mac_no; /* macro val number */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short pth_no; /* path index */ + public int mac_old; /* old data */ + public int mac_new; /* new data */ + public short old_dp; /* old data decimal point */ + public short new_dp; /* old data decimal point */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REC_MAC4_data + { + public short rec_len; /* length */ + public short rec_type; /* record type */ + public REC_MAC4 data = new REC_MAC4(); + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOPHIS4_1 + { + public REC_MDI4_data rec_mdi1 = new REC_MDI4_data(); + public REC_MDI4_data rec_mdi2 = new REC_MDI4_data(); + public REC_MDI4_data rec_mdi3 = new REC_MDI4_data(); + public REC_MDI4_data rec_mdi4 = new REC_MDI4_data(); + public REC_MDI4_data rec_mdi5 = new REC_MDI4_data(); + public REC_MDI4_data rec_mdi6 = new REC_MDI4_data(); + public REC_MDI4_data rec_mdi7 = new REC_MDI4_data(); + public REC_MDI4_data rec_mdi8 = new REC_MDI4_data(); + public REC_MDI4_data rec_mdi9 = new REC_MDI4_data(); + public REC_MDI4_data rec_mdi10 = new REC_MDI4_data(); + } /* In case that the number of data is 10 */ + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOPHIS4_2 + { + public REC_SGN4_data rec_sgn1 = new REC_SGN4_data(); + public REC_SGN4_data rec_sgn2 = new REC_SGN4_data(); + public REC_SGN4_data rec_sgn3 = new REC_SGN4_data(); + public REC_SGN4_data rec_sgn4 = new REC_SGN4_data(); + public REC_SGN4_data rec_sgn5 = new REC_SGN4_data(); + public REC_SGN4_data rec_sgn6 = new REC_SGN4_data(); + public REC_SGN4_data rec_sgn7 = new REC_SGN4_data(); + public REC_SGN4_data rec_sgn8 = new REC_SGN4_data(); + public REC_SGN4_data rec_sgn9 = new REC_SGN4_data(); + public REC_SGN4_data rec_sgn10 = new REC_SGN4_data(); + } /* In case that the number of data is 10 */ + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOPHIS4_3 + { + public REC_ALM4_data rec_alm1 = new REC_ALM4_data(); + public REC_ALM4_data rec_alm2 = new REC_ALM4_data(); + public REC_ALM4_data rec_alm3 = new REC_ALM4_data(); + public REC_ALM4_data rec_alm4 = new REC_ALM4_data(); + public REC_ALM4_data rec_alm5 = new REC_ALM4_data(); + public REC_ALM4_data rec_alm6 = new REC_ALM4_data(); + public REC_ALM4_data rec_alm7 = new REC_ALM4_data(); + public REC_ALM4_data rec_alm8 = new REC_ALM4_data(); + public REC_ALM4_data rec_alm9 = new REC_ALM4_data(); + public REC_ALM4_data rec_alm10 = new REC_ALM4_data(); + } /* In case that the number of data is 10 */ + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOPHIS4_4 + { + public REC_DATE4_data rec_date1 = new REC_DATE4_data(); + public REC_DATE4_data rec_date2 = new REC_DATE4_data(); + public REC_DATE4_data rec_date3 = new REC_DATE4_data(); + public REC_DATE4_data rec_date4 = new REC_DATE4_data(); + public REC_DATE4_data rec_date5 = new REC_DATE4_data(); + public REC_DATE4_data rec_date6 = new REC_DATE4_data(); + public REC_DATE4_data rec_date7 = new REC_DATE4_data(); + public REC_DATE4_data rec_date8 = new REC_DATE4_data(); + public REC_DATE4_data rec_date9 = new REC_DATE4_data(); + public REC_DATE4_data rec_date10 = new REC_DATE4_data(); + } /* In case that the number of data is 10 */ + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOPHIS4_5 + { + public REC_IAL4_data rec_ial1 = new REC_IAL4_data(); + public REC_IAL4_data rec_ial2 = new REC_IAL4_data(); + public REC_IAL4_data rec_ial3 = new REC_IAL4_data(); + public REC_IAL4_data rec_ial4 = new REC_IAL4_data(); + public REC_IAL4_data rec_ial5 = new REC_IAL4_data(); + public REC_IAL4_data rec_ial6 = new REC_IAL4_data(); + public REC_IAL4_data rec_ial7 = new REC_IAL4_data(); + public REC_IAL4_data rec_ial8 = new REC_IAL4_data(); + public REC_IAL4_data rec_ial9 = new REC_IAL4_data(); + public REC_IAL4_data rec_ial10 = new REC_IAL4_data(); + } /* In case that the number of data is 10 */ + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOPHIS4_6 + { + public REC_MAL4_data rec_mal1 = new REC_MAL4_data(); + public REC_MAL4_data rec_mal2 = new REC_MAL4_data(); + public REC_MAL4_data rec_mal3 = new REC_MAL4_data(); + public REC_MAL4_data rec_mal4 = new REC_MAL4_data(); + public REC_MAL4_data rec_mal5 = new REC_MAL4_data(); + public REC_MAL4_data rec_mal6 = new REC_MAL4_data(); + public REC_MAL4_data rec_mal7 = new REC_MAL4_data(); + public REC_MAL4_data rec_mal8 = new REC_MAL4_data(); + public REC_MAL4_data rec_mal9 = new REC_MAL4_data(); + public REC_MAL4_data rec_mal10 = new REC_MAL4_data(); + } /* In case that the number of data is 10 */ + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOPHIS4_7 + { + public REC_OPM4_data rec_opm1 = new REC_OPM4_data(); + public REC_OPM4_data rec_opm2 = new REC_OPM4_data(); + public REC_OPM4_data rec_opm3 = new REC_OPM4_data(); + public REC_OPM4_data rec_opm4 = new REC_OPM4_data(); + public REC_OPM4_data rec_opm5 = new REC_OPM4_data(); + public REC_OPM4_data rec_opm6 = new REC_OPM4_data(); + public REC_OPM4_data rec_opm7 = new REC_OPM4_data(); + public REC_OPM4_data rec_opm8 = new REC_OPM4_data(); + public REC_OPM4_data rec_opm9 = new REC_OPM4_data(); + public REC_OPM4_data rec_opm10 = new REC_OPM4_data(); + } /* In case that the number of data is 10 */ + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOPHIS4_8 + { + public REC_OFS4_data rec_ofs1 = new REC_OFS4_data(); + public REC_OFS4_data rec_ofs2 = new REC_OFS4_data(); + public REC_OFS4_data rec_ofs3 = new REC_OFS4_data(); + public REC_OFS4_data rec_ofs4 = new REC_OFS4_data(); + public REC_OFS4_data rec_ofs5 = new REC_OFS4_data(); + public REC_OFS4_data rec_ofs6 = new REC_OFS4_data(); + public REC_OFS4_data rec_ofs7 = new REC_OFS4_data(); + public REC_OFS4_data rec_ofs8 = new REC_OFS4_data(); + public REC_OFS4_data rec_ofs9 = new REC_OFS4_data(); + public REC_OFS4_data rec_ofs10 = new REC_OFS4_data(); + } /* In case that the number of data is 10 */ + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOPHIS4_9 + { + public REC_PRM4_data rec_prm1 = new REC_PRM4_data(); + public REC_PRM4_data rec_prm2 = new REC_PRM4_data(); + public REC_PRM4_data rec_prm3 = new REC_PRM4_data(); + public REC_PRM4_data rec_prm4 = new REC_PRM4_data(); + public REC_PRM4_data rec_prm5 = new REC_PRM4_data(); + public REC_PRM4_data rec_prm6 = new REC_PRM4_data(); + public REC_PRM4_data rec_prm7 = new REC_PRM4_data(); + public REC_PRM4_data rec_prm8 = new REC_PRM4_data(); + public REC_PRM4_data rec_prm9 = new REC_PRM4_data(); + public REC_PRM4_data rec_prm10 = new REC_PRM4_data(); + } /* In case that the number of data is 10 */ + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOPHIS4_10 + { + public REC_WOF4_data rec_wof1 = new REC_WOF4_data(); + public REC_WOF4_data rec_wof2 = new REC_WOF4_data(); + public REC_WOF4_data rec_wof3 = new REC_WOF4_data(); + public REC_WOF4_data rec_wof4 = new REC_WOF4_data(); + public REC_WOF4_data rec_wof5 = new REC_WOF4_data(); + public REC_WOF4_data rec_wof6 = new REC_WOF4_data(); + public REC_WOF4_data rec_wof7 = new REC_WOF4_data(); + public REC_WOF4_data rec_wof8 = new REC_WOF4_data(); + public REC_WOF4_data rec_wof9 = new REC_WOF4_data(); + public REC_WOF4_data rec_wof10 = new REC_WOF4_data(); + } /* In case that the number of data is 10 */ + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOPHIS4_11 + { + public REC_MAC4_data rec_mac1 = new REC_MAC4_data(); + public REC_MAC4_data rec_mac2 = new REC_MAC4_data(); + public REC_MAC4_data rec_mac3 = new REC_MAC4_data(); + public REC_MAC4_data rec_mac4 = new REC_MAC4_data(); + public REC_MAC4_data rec_mac5 = new REC_MAC4_data(); + public REC_MAC4_data rec_mac6 = new REC_MAC4_data(); + public REC_MAC4_data rec_mac7 = new REC_MAC4_data(); + public REC_MAC4_data rec_mac8 = new REC_MAC4_data(); + public REC_MAC4_data rec_mac9 = new REC_MAC4_data(); + public REC_MAC4_data rec_mac10 = new REC_MAC4_data(); + } /* In case that the number of data is 10 */ + + /* cnc_rdalmhistry:read alarm history data */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ALM_HIS_data + { + public short dummy; + public short alm_grp; /* alarm group */ + public short alm_no; /* alarm number */ + public byte axis_no; /* axis number */ + public byte year; /* year */ + public byte month; /* month */ + public byte day; /* day */ + public byte hour; /* hour */ + public byte minute; /* minute */ + public byte second; /* second */ + public byte dummy2; + public short len_msg; /* alarm message length */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] + public string alm_msg = new string(' ',32) ; /* alarm message */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ALM_HIS1 + { + public ALM_HIS_data data1 = new ALM_HIS_data(); + public ALM_HIS_data data2 = new ALM_HIS_data(); + public ALM_HIS_data data3 = new ALM_HIS_data(); + public ALM_HIS_data data4 = new ALM_HIS_data(); + public ALM_HIS_data data5 = new ALM_HIS_data(); + public ALM_HIS_data data6 = new ALM_HIS_data(); + public ALM_HIS_data data7 = new ALM_HIS_data(); + public ALM_HIS_data data8 = new ALM_HIS_data(); + public ALM_HIS_data data9 = new ALM_HIS_data(); + public ALM_HIS_data data10= new ALM_HIS_data(); + } /* In case that the number of data is 10 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBAHIS + { + public ushort s_no; /* start number */ + public short type; /* dummy */ + public ushort e_no; /* end number */ + public ALM_HIS1 alm_his = new ALM_HIS1(); + } + + /* cnc_rdalmhistry2:read alarm history data */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ALM_HIS2_data + { + public short alm_grp; /* alarm group */ + public short alm_no; /* alarm number */ + public short axis_no; /* axis number */ + public short year; /* year */ + public short month; /* month */ + public short day; /* day */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short len_msg; /* alarm message length */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] + public string alm_msg = new string(' ',32) ; /* alarm message */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ALM_HIS2 + { + public ALM_HIS2_data data1 = new ALM_HIS2_data(); + public ALM_HIS2_data data2 = new ALM_HIS2_data(); + public ALM_HIS2_data data3 = new ALM_HIS2_data(); + public ALM_HIS2_data data4 = new ALM_HIS2_data(); + public ALM_HIS2_data data5 = new ALM_HIS2_data(); + public ALM_HIS2_data data6 = new ALM_HIS2_data(); + public ALM_HIS2_data data7 = new ALM_HIS2_data(); + public ALM_HIS2_data data8 = new ALM_HIS2_data(); + public ALM_HIS2_data data9 = new ALM_HIS2_data(); + public ALM_HIS2_data data10= new ALM_HIS2_data(); + } /* In case that the number of data is 10 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBAHIS2 + { + public ushort s_no; /* start number */ + public ushort e_no; /* end number */ + public ALM_HIS2 alm_his = new ALM_HIS2(); + } + + /* cnc_rdalmhistry3:read alarm history data */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ALM_HIS3_data + { + public short alm_grp; /* alarm group */ + public short alm_no; /* alarm number */ + public short axis_no; /* axis number */ + public short year; /* year */ + public short month; /* month */ + public short day; /* day */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short len_msg; /* alarm message length */ + public short pth_no; /* path index */ + public short dummy; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] + public string alm_msg = new string(' ',32) ; /* alarm message */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ALM_HIS3 + { + public ALM_HIS3_data data1 = new ALM_HIS3_data(); + public ALM_HIS3_data data2 = new ALM_HIS3_data(); + public ALM_HIS3_data data3 = new ALM_HIS3_data(); + public ALM_HIS3_data data4 = new ALM_HIS3_data(); + public ALM_HIS3_data data5 = new ALM_HIS3_data(); + public ALM_HIS3_data data6 = new ALM_HIS3_data(); + public ALM_HIS3_data data7 = new ALM_HIS3_data(); + public ALM_HIS3_data data8 = new ALM_HIS3_data(); + public ALM_HIS3_data data9 = new ALM_HIS3_data(); + public ALM_HIS3_data data10= new ALM_HIS3_data(); + } /* In case that the number of data is 10 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBAHIS3 + { + public ushort s_no; /* start number */ + public ushort e_no; /* end number */ + public ALM_HIS3 alm_his = new ALM_HIS3(); + } + + /* cnc_rdalmhistry5:read alarm history data */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ALM_HIS5_data + { + public short alm_grp; /* alarm group */ + public short alm_no; /* alarm number */ + public short axis_no; /* axis number */ + public short year; /* year */ + public short month; /* month */ + public short day; /* day */ + public short hour; /* hour */ + public short minute; /* minute */ + public short second; /* second */ + public short len_msg; /* alarm message length */ + public short pth_no; /* path index */ + public short dummy; /* dummy */ + public short dsp_flg; /* Flag for displaying */ + public short axis_num; /* Total axis number */ + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] + public string alm_msg = new string(' ', 64); /* alarm message */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public int[] g_modal; /* G code Modal */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public byte[] g_dp; /* #7:1 Block #6`#0 dp */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public int[] a_modal; /* B,D,E,F,H,M,N,O,S,T code Modal */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public byte[] a_dp; /* #7:1 Block #6`#0 dp */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public int[] abs_pos; /* Abs pos */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public byte[] abs_dp; /* Abs dp */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public int[] mcn_pos; /* Mcn pos */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public byte[] mcn_dp; /* Mcn dp */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ALM_HIS5 + { + public ALM_HIS5_data data1 = new ALM_HIS5_data(); + public ALM_HIS5_data data2 = new ALM_HIS5_data(); + public ALM_HIS5_data data3 = new ALM_HIS5_data(); + public ALM_HIS5_data data4 = new ALM_HIS5_data(); + public ALM_HIS5_data data5 = new ALM_HIS5_data(); + public ALM_HIS5_data data6 = new ALM_HIS5_data(); + public ALM_HIS5_data data7 = new ALM_HIS5_data(); + public ALM_HIS5_data data8 = new ALM_HIS5_data(); + public ALM_HIS5_data data9 = new ALM_HIS5_data(); + public ALM_HIS5_data data10= new ALM_HIS5_data(); + } /* In case that the number of data is 10 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBAHIS5 + { + public ushort s_no; /* start number */ + public ushort e_no; /* end number */ + public ALM_HIS5 alm_his = new ALM_HIS5(); + } + + /* cnc_rdomhistry2:read operater message history data */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBOMHIS2_data + { + public short dsp_flg; /* Dysplay flag(ON/OFF) */ + public short om_no; /* operater message number */ + public short year; /* year */ + public short month; /* month */ + public short day; /* day */ + public short hour; /* Hour */ + public short minute; /* Minute */ + public short second; /* Second */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=256)] + public string alm_msg = new string(' ',256) ; /* alarm message */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class OPM_HIS + { + public ODBOMHIS2_data data1 = new ODBOMHIS2_data(); + public ODBOMHIS2_data data2 = new ODBOMHIS2_data(); + public ODBOMHIS2_data data3 = new ODBOMHIS2_data(); + public ODBOMHIS2_data data4 = new ODBOMHIS2_data(); + public ODBOMHIS2_data data5 = new ODBOMHIS2_data(); + public ODBOMHIS2_data data6 = new ODBOMHIS2_data(); + public ODBOMHIS2_data data7 = new ODBOMHIS2_data(); + public ODBOMHIS2_data data8 = new ODBOMHIS2_data(); + public ODBOMHIS2_data data9 = new ODBOMHIS2_data(); + public ODBOMHIS2_data data10 = new ODBOMHIS2_data(); + } /* In case that the number of data is 10 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOMHIS2 + { + public ushort s_no; /* start number */ + public ushort e_no; /* end number */ + public OPM_HIS opm_his = new OPM_HIS(); + } + + /* cnc_rdhissgnl:read signals related operation history */ + /* cnc_wrhissgnl:write signals related operation history */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class IODBSIG_data + { + public short ent_no; /* entry number */ + public short sig_no; /* signal number */ + public byte sig_name; /* signal name */ + public byte mask_pat; /* signal mask pattern */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSIG1 + { + public IODBSIG_data data1 = new IODBSIG_data(); + public IODBSIG_data data2 = new IODBSIG_data(); + public IODBSIG_data data3 = new IODBSIG_data(); + public IODBSIG_data data4 = new IODBSIG_data(); + public IODBSIG_data data5 = new IODBSIG_data(); + public IODBSIG_data data6 = new IODBSIG_data(); + public IODBSIG_data data7 = new IODBSIG_data(); + public IODBSIG_data data8 = new IODBSIG_data(); + public IODBSIG_data data9 = new IODBSIG_data(); + public IODBSIG_data data10= new IODBSIG_data(); + public IODBSIG_data data11= new IODBSIG_data(); + public IODBSIG_data data12= new IODBSIG_data(); + public IODBSIG_data data13= new IODBSIG_data(); + public IODBSIG_data data14= new IODBSIG_data(); + public IODBSIG_data data15= new IODBSIG_data(); + public IODBSIG_data data16= new IODBSIG_data(); + public IODBSIG_data data17= new IODBSIG_data(); + public IODBSIG_data data18= new IODBSIG_data(); + public IODBSIG_data data19= new IODBSIG_data(); + public IODBSIG_data data20= new IODBSIG_data(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSIG + { + public short datano; /* dummy */ + public short type; /* dummy */ + public IODBSIG1 data = new IODBSIG1(); + } + + /* cnc_rdhissgnl2:read signals related operation history 2 */ + /* cnc_wrhissgnl2:write signals related operation history 2 */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class _IODBSIG2_data + { + public short ent_no; /* entry number */ + public short sig_no; /* signal number */ + public byte sig_name; /* signal name */ + public byte mask_pat; /* signal mask pattern */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSIG2_data + { + public _IODBSIG2_data data1 = new _IODBSIG2_data(); + public _IODBSIG2_data data2 = new _IODBSIG2_data(); + public _IODBSIG2_data data3 = new _IODBSIG2_data(); + public _IODBSIG2_data data4 = new _IODBSIG2_data(); + public _IODBSIG2_data data5 = new _IODBSIG2_data(); + public _IODBSIG2_data data6 = new _IODBSIG2_data(); + public _IODBSIG2_data data7 = new _IODBSIG2_data(); + public _IODBSIG2_data data8 = new _IODBSIG2_data(); + public _IODBSIG2_data data9 = new _IODBSIG2_data(); + public _IODBSIG2_data data10= new _IODBSIG2_data(); + public _IODBSIG2_data data11= new _IODBSIG2_data(); + public _IODBSIG2_data data12= new _IODBSIG2_data(); + public _IODBSIG2_data data13= new _IODBSIG2_data(); + public _IODBSIG2_data data14= new _IODBSIG2_data(); + public _IODBSIG2_data data15= new _IODBSIG2_data(); + public _IODBSIG2_data data16= new _IODBSIG2_data(); + public _IODBSIG2_data data17= new _IODBSIG2_data(); + public _IODBSIG2_data data18= new _IODBSIG2_data(); + public _IODBSIG2_data data19= new _IODBSIG2_data(); + public _IODBSIG2_data data20= new _IODBSIG2_data(); + public _IODBSIG2_data data31= new _IODBSIG2_data(); + public _IODBSIG2_data data32= new _IODBSIG2_data(); + public _IODBSIG2_data data33= new _IODBSIG2_data(); + public _IODBSIG2_data data34= new _IODBSIG2_data(); + public _IODBSIG2_data data35= new _IODBSIG2_data(); + public _IODBSIG2_data data36= new _IODBSIG2_data(); + public _IODBSIG2_data data37= new _IODBSIG2_data(); + public _IODBSIG2_data data38= new _IODBSIG2_data(); + public _IODBSIG2_data data39= new _IODBSIG2_data(); + public _IODBSIG2_data data40= new _IODBSIG2_data(); + public _IODBSIG2_data data41= new _IODBSIG2_data(); + public _IODBSIG2_data data42= new _IODBSIG2_data(); + public _IODBSIG2_data data43= new _IODBSIG2_data(); + public _IODBSIG2_data data44= new _IODBSIG2_data(); + public _IODBSIG2_data data45= new _IODBSIG2_data(); + + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSIG2 + { + public short datano; /* dummy */ + public short type; /* dummy */ + public IODBSIG2_data data = new IODBSIG2_data(); + } + + /* cnc_rdhissgnl3:read signals related operation history */ + /* cnc_wrhissgnl3:write signals related operation history */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class _IODBSIG3_data + { + public short ent_no; /* entry number */ + public short pmc_no; /* pmc number */ + public short sig_no; /* signal number */ + public byte sig_name; /* signal name */ + public byte mask_pat; /* signal mask pattern */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSIG3_data + { + public _IODBSIG3_data data1 = new _IODBSIG3_data(); + public _IODBSIG3_data data2 = new _IODBSIG3_data(); + public _IODBSIG3_data data3 = new _IODBSIG3_data(); + public _IODBSIG3_data data4 = new _IODBSIG3_data(); + public _IODBSIG3_data data5 = new _IODBSIG3_data(); + public _IODBSIG3_data data6 = new _IODBSIG3_data(); + public _IODBSIG3_data data7 = new _IODBSIG3_data(); + public _IODBSIG3_data data8 = new _IODBSIG3_data(); + public _IODBSIG3_data data9 = new _IODBSIG3_data(); + public _IODBSIG3_data data10= new _IODBSIG3_data(); + public _IODBSIG3_data data11= new _IODBSIG3_data(); + public _IODBSIG3_data data12= new _IODBSIG3_data(); + public _IODBSIG3_data data13= new _IODBSIG3_data(); + public _IODBSIG3_data data14= new _IODBSIG3_data(); + public _IODBSIG3_data data15= new _IODBSIG3_data(); + public _IODBSIG3_data data16= new _IODBSIG3_data(); + public _IODBSIG3_data data17= new _IODBSIG3_data(); + public _IODBSIG3_data data18= new _IODBSIG3_data(); + public _IODBSIG3_data data19= new _IODBSIG3_data(); + public _IODBSIG3_data data20= new _IODBSIG3_data(); + public _IODBSIG3_data data21= new _IODBSIG3_data(); + public _IODBSIG3_data data22= new _IODBSIG3_data(); + public _IODBSIG3_data data23= new _IODBSIG3_data(); + public _IODBSIG3_data data24= new _IODBSIG3_data(); + public _IODBSIG3_data data25= new _IODBSIG3_data(); + public _IODBSIG3_data data26= new _IODBSIG3_data(); + public _IODBSIG3_data data27= new _IODBSIG3_data(); + public _IODBSIG3_data data28= new _IODBSIG3_data(); + public _IODBSIG3_data data29= new _IODBSIG3_data(); + public _IODBSIG3_data data30= new _IODBSIG3_data(); + public _IODBSIG3_data data31= new _IODBSIG3_data(); + public _IODBSIG3_data data32= new _IODBSIG3_data(); + public _IODBSIG3_data data33= new _IODBSIG3_data(); + public _IODBSIG3_data data34= new _IODBSIG3_data(); + public _IODBSIG3_data data35= new _IODBSIG3_data(); + public _IODBSIG3_data data36= new _IODBSIG3_data(); + public _IODBSIG3_data data37= new _IODBSIG3_data(); + public _IODBSIG3_data data38= new _IODBSIG3_data(); + public _IODBSIG3_data data39= new _IODBSIG3_data(); + public _IODBSIG3_data data40= new _IODBSIG3_data(); + public _IODBSIG3_data data41= new _IODBSIG3_data(); + public _IODBSIG3_data data42= new _IODBSIG3_data(); + public _IODBSIG3_data data43= new _IODBSIG3_data(); + public _IODBSIG3_data data44= new _IODBSIG3_data(); + public _IODBSIG3_data data45= new _IODBSIG3_data(); + public _IODBSIG3_data data46= new _IODBSIG3_data(); + public _IODBSIG3_data data47= new _IODBSIG3_data(); + public _IODBSIG3_data data48= new _IODBSIG3_data(); + public _IODBSIG3_data data49= new _IODBSIG3_data(); + public _IODBSIG3_data data50= new _IODBSIG3_data(); + public _IODBSIG3_data data51= new _IODBSIG3_data(); + public _IODBSIG3_data data52= new _IODBSIG3_data(); + public _IODBSIG3_data data53= new _IODBSIG3_data(); + public _IODBSIG3_data data54= new _IODBSIG3_data(); + public _IODBSIG3_data data55= new _IODBSIG3_data(); + public _IODBSIG3_data data56= new _IODBSIG3_data(); + public _IODBSIG3_data data57= new _IODBSIG3_data(); + public _IODBSIG3_data data58= new _IODBSIG3_data(); + public _IODBSIG3_data data59= new _IODBSIG3_data(); + public _IODBSIG3_data data60= new _IODBSIG3_data(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSIG3 + { + public short datano; /* dummy */ + public short type; /* dummy */ + public IODBSIG3_data data = new IODBSIG3_data(); + } + +/*-------------*/ +/* CNC: Others */ +/*-------------*/ + + /* cnc_sysinfo:read CNC system information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSYS + { + public short addinfo; + public short max_axis; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public char[] cnc_type; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public char[] mt_type; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=4)] + public char[] series; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=4)] + public char[] version; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public char[] axes; + } + +#if FS15D + /* cnc_statinfo:read CNC status information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBST + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] dummy; /* dummy */ + public short aut; /* selected automatic mode */ + public short manual; /* selected manual mode */ + public short run; /* running status */ + public short edit; /* editting status */ + public short motion; /* axis, dwell status */ + public short mstb; /* m, s, t, b status */ + public short emergency; /* emergency stop status */ + public short write; /* writting status */ + public short labelskip; /* label skip status */ + public short alarm; /* alarm status */ + public short warning; /* warning status */ + public short battery; /* battery status */ + } +#else + /* cnc_statinfo:read CNC status information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBST + { + public short dummy ; /* dummy */ + public short tmmode ; /* T/M mode */ + public short aut ; /* selected automatic mode */ + public short run ; /* running status */ + public short motion ; /* axis, dwell status */ + public short mstb ; /* m, s, t, b status */ + public short emergency ; /* emergency stop status */ + public short alarm ; /* alarm status */ + public short edit ; /* editting status */ + } +#endif + + /* cnc_alarm:read alarm status */ + [StructLayout(LayoutKind.Sequential, Pack=4)] + public class ODBALM + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] dummy={0,0}; + public ushort data=0; + } + + /* cnc_rdalminfo:read alarm information */ +#if (M_AXIS2 || FS30D) + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ALMINFO1_data + { + public int axis; + public short alm_no; + } + + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ALMINFO2_data + { + public int axis=0 ; + public short alm_no=0 ; + public short msg_len=0 ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] + public string alm_msg= new string(' ',32) ; + } +#else + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ALMINFO1_data + { + public short axis; + public short alm_no; + } + + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ALMINFO2_data + { + public short axis=0 ; + public short alm_no=0 ; + public short msg_len=0 ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] + public string alm_msg= new string(' ',32) ; + } +#endif + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ALMINFO_1 + { + public ALMINFO1_data msg1=new ALMINFO1_data(); + public ALMINFO1_data msg2=new ALMINFO1_data(); + public ALMINFO1_data msg3=new ALMINFO1_data(); + public ALMINFO1_data msg4=new ALMINFO1_data(); + public ALMINFO1_data msg5=new ALMINFO1_data(); + public short data_end ; + } /* In case that the number of alarm is 5 */ + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ALMINFO_2 + { + public ALMINFO2_data msg1=new ALMINFO2_data(); + public ALMINFO2_data msg2=new ALMINFO2_data(); + public ALMINFO2_data msg3=new ALMINFO2_data(); + public ALMINFO2_data msg4=new ALMINFO2_data(); + public ALMINFO2_data msg5=new ALMINFO2_data(); + public short dataend=0; + } /* In case that the number of alarm is 5 */ + + /* cnc_rdalmmsg:read alarm messages */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBALMMSG_data + { + public int alm_no; + public short type; + public short axis; + public short dummy; + public short msg_len; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] + public string alm_msg= new string(' ',32) ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBALMMSG + { + public ODBALMMSG_data msg1 = new ODBALMMSG_data(); + public ODBALMMSG_data msg2 = new ODBALMMSG_data(); + public ODBALMMSG_data msg3 = new ODBALMMSG_data(); + public ODBALMMSG_data msg4 = new ODBALMMSG_data(); + public ODBALMMSG_data msg5 = new ODBALMMSG_data(); + public ODBALMMSG_data msg6 = new ODBALMMSG_data(); + public ODBALMMSG_data msg7 = new ODBALMMSG_data(); + public ODBALMMSG_data msg8 = new ODBALMMSG_data(); + public ODBALMMSG_data msg9 = new ODBALMMSG_data(); + public ODBALMMSG_data msg10= new ODBALMMSG_data(); + } /* In case that the number of alarm is 10 */ + + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBALMMSG2_data + { + public int alm_no; + public short type; + public short axis; + public short dummy; + public short msg_len; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=64)] + public string alm_msg= new string(' ',64) ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBALMMSG2 + { + public ODBALMMSG2_data msg1 = new ODBALMMSG2_data(); + public ODBALMMSG2_data msg2 = new ODBALMMSG2_data(); + public ODBALMMSG2_data msg3 = new ODBALMMSG2_data(); + public ODBALMMSG2_data msg4 = new ODBALMMSG2_data(); + public ODBALMMSG2_data msg5 = new ODBALMMSG2_data(); + public ODBALMMSG2_data msg6 = new ODBALMMSG2_data(); + public ODBALMMSG2_data msg7 = new ODBALMMSG2_data(); + public ODBALMMSG2_data msg8 = new ODBALMMSG2_data(); + public ODBALMMSG2_data msg9 = new ODBALMMSG2_data(); + public ODBALMMSG2_data msg10= new ODBALMMSG2_data(); + } /* In case that the number of alarm is 10 */ + + /* cnc_modal:read modal data */ + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class ODBMDL + { + public short datano; + public short type; + public ODBMDL_U modal; + + [StructLayout(LayoutKind.Explicit)] + public struct ODBMDL_U + { + [FieldOffset(0), + MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] + public byte[] g_1shot; + [FieldOffset(0), + MarshalAs(UnmanagedType.ByValArray, SizeConst = 35)] + public byte[] g_rdata; + [FieldOffset(0), + MarshalAs(UnmanagedType.ByValArray, SizeConst = 27)] + public MODAL_AUX_data[] raux1; + [FieldOffset(0), + MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_AXIS)] + public MODAL_AUX_data[] raux2; + + public byte g_data { get { return g_1shot[0]; } } + public MODAL_AUX_data aux { get { return raux1[0]; } } + } + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public struct MODAL_AUX_data + { + public int aux_data; + public byte flag1; + public byte flag2; + } +#if LEAVE_OLD_STYLE + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class MODAL_RAUX1_data + { + public MODAL_AUX_data data1 = new MODAL_AUX_data(); + public MODAL_AUX_data data2 = new MODAL_AUX_data(); + public MODAL_AUX_data data3 = new MODAL_AUX_data(); + public MODAL_AUX_data data4 = new MODAL_AUX_data(); + public MODAL_AUX_data data5 = new MODAL_AUX_data(); + public MODAL_AUX_data data6 = new MODAL_AUX_data(); + public MODAL_AUX_data data7 = new MODAL_AUX_data(); + public MODAL_AUX_data data8 = new MODAL_AUX_data(); + public MODAL_AUX_data data9 = new MODAL_AUX_data(); + public MODAL_AUX_data data10= new MODAL_AUX_data(); + public MODAL_AUX_data data11= new MODAL_AUX_data(); + public MODAL_AUX_data data12= new MODAL_AUX_data(); + public MODAL_AUX_data data13= new MODAL_AUX_data(); + public MODAL_AUX_data data14= new MODAL_AUX_data(); + public MODAL_AUX_data data15= new MODAL_AUX_data(); + public MODAL_AUX_data data16= new MODAL_AUX_data(); + public MODAL_AUX_data data17= new MODAL_AUX_data(); + public MODAL_AUX_data data18= new MODAL_AUX_data(); + public MODAL_AUX_data data19= new MODAL_AUX_data(); + public MODAL_AUX_data data20= new MODAL_AUX_data(); + public MODAL_AUX_data data21= new MODAL_AUX_data(); + public MODAL_AUX_data data22= new MODAL_AUX_data(); + public MODAL_AUX_data data23= new MODAL_AUX_data(); + public MODAL_AUX_data data24= new MODAL_AUX_data(); + public MODAL_AUX_data data25= new MODAL_AUX_data(); + public MODAL_AUX_data data26= new MODAL_AUX_data(); + public MODAL_AUX_data data27= new MODAL_AUX_data(); + } +#if M_AXIS2 + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class MODAL_RAUX2_data + { + public MODAL_AUX_data data1 = new MODAL_AUX_data(); + public MODAL_AUX_data data2 = new MODAL_AUX_data(); + public MODAL_AUX_data data3 = new MODAL_AUX_data(); + public MODAL_AUX_data data4 = new MODAL_AUX_data(); + public MODAL_AUX_data data5 = new MODAL_AUX_data(); + public MODAL_AUX_data data6 = new MODAL_AUX_data(); + public MODAL_AUX_data data7 = new MODAL_AUX_data(); + public MODAL_AUX_data data8 = new MODAL_AUX_data(); + public MODAL_AUX_data data9 = new MODAL_AUX_data(); + public MODAL_AUX_data data10= new MODAL_AUX_data(); + public MODAL_AUX_data data11= new MODAL_AUX_data(); + public MODAL_AUX_data data12= new MODAL_AUX_data(); + public MODAL_AUX_data data13= new MODAL_AUX_data(); + public MODAL_AUX_data data14= new MODAL_AUX_data(); + public MODAL_AUX_data data15= new MODAL_AUX_data(); + public MODAL_AUX_data data16= new MODAL_AUX_data(); + public MODAL_AUX_data data17= new MODAL_AUX_data(); + public MODAL_AUX_data data18= new MODAL_AUX_data(); + public MODAL_AUX_data data19= new MODAL_AUX_data(); + public MODAL_AUX_data data20= new MODAL_AUX_data(); + public MODAL_AUX_data data21= new MODAL_AUX_data(); + public MODAL_AUX_data data22= new MODAL_AUX_data(); + public MODAL_AUX_data data23= new MODAL_AUX_data(); + public MODAL_AUX_data data24= new MODAL_AUX_data(); + } +#elif FS15D + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class MODAL_RAUX2_data + { + public MODAL_AUX_data data1 = new MODAL_AUX_data(); + public MODAL_AUX_data data2 = new MODAL_AUX_data(); + public MODAL_AUX_data data3 = new MODAL_AUX_data(); + public MODAL_AUX_data data4 = new MODAL_AUX_data(); + public MODAL_AUX_data data5 = new MODAL_AUX_data(); + public MODAL_AUX_data data6 = new MODAL_AUX_data(); + public MODAL_AUX_data data7 = new MODAL_AUX_data(); + public MODAL_AUX_data data8 = new MODAL_AUX_data(); + public MODAL_AUX_data data9 = new MODAL_AUX_data(); + public MODAL_AUX_data data10= new MODAL_AUX_data(); + } +#else + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class MODAL_RAUX2_data + { + public MODAL_AUX_data data1 = new MODAL_AUX_data(); + public MODAL_AUX_data data2 = new MODAL_AUX_data(); + public MODAL_AUX_data data3 = new MODAL_AUX_data(); + public MODAL_AUX_data data4 = new MODAL_AUX_data(); + public MODAL_AUX_data data5 = new MODAL_AUX_data(); + public MODAL_AUX_data data6 = new MODAL_AUX_data(); + public MODAL_AUX_data data7 = new MODAL_AUX_data(); + public MODAL_AUX_data data8 = new MODAL_AUX_data(); + } +#endif + + [StructLayout(LayoutKind.Explicit)] + public class ODBMDL_1 + { + [ FieldOffset( 0 )] + public short datano; + [ FieldOffset( 2 )] + public short type; + [ FieldOffset( 4 )] + public byte g_data; + } + [StructLayout(LayoutKind.Explicit)] + public class ODBMDL_2 + { + [ FieldOffset( 0 )] + public short datano; + [ FieldOffset( 2 )] + public short type; + [ FieldOffset( 4 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=4)] + public byte[] g_1shot = new byte[4]; + [ FieldOffset( 4 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=35)] + public byte[] g_rdata = new byte[35]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBMDL_3 + { + public short datano; + public short type; + public MODAL_AUX_data aux = new MODAL_AUX_data(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBMDL_4 + { + public short datano; + public short type; + public MODAL_RAUX1_data raux1 = new MODAL_RAUX1_data(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBMDL_5 + { + public short datano; + public short type; + public MODAL_RAUX2_data raux2 = new MODAL_RAUX2_data(); + } +#endif + + /* cnc_rdgcode: read G code */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBGCD_data + { + public short group ; + public short flag ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=8)] + public string code= new string(' ',8) ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBGCD + { + public ODBGCD_data gcd0 =new ODBGCD_data(); + public ODBGCD_data gcd1 =new ODBGCD_data(); + public ODBGCD_data gcd2 =new ODBGCD_data(); + public ODBGCD_data gcd3 =new ODBGCD_data(); + public ODBGCD_data gcd4 =new ODBGCD_data(); + public ODBGCD_data gcd5 =new ODBGCD_data(); + public ODBGCD_data gcd6 =new ODBGCD_data(); + public ODBGCD_data gcd7 =new ODBGCD_data(); + public ODBGCD_data gcd8 =new ODBGCD_data(); + public ODBGCD_data gcd9 =new ODBGCD_data(); + public ODBGCD_data gcd10=new ODBGCD_data(); + public ODBGCD_data gcd11=new ODBGCD_data(); + public ODBGCD_data gcd12=new ODBGCD_data(); + public ODBGCD_data gcd13=new ODBGCD_data(); + public ODBGCD_data gcd14=new ODBGCD_data(); + public ODBGCD_data gcd15=new ODBGCD_data(); + public ODBGCD_data gcd16=new ODBGCD_data(); + public ODBGCD_data gcd17=new ODBGCD_data(); + public ODBGCD_data gcd18=new ODBGCD_data(); + public ODBGCD_data gcd19=new ODBGCD_data(); + public ODBGCD_data gcd20=new ODBGCD_data(); + public ODBGCD_data gcd21=new ODBGCD_data(); + public ODBGCD_data gcd22=new ODBGCD_data(); + public ODBGCD_data gcd23=new ODBGCD_data(); + public ODBGCD_data gcd24=new ODBGCD_data(); + public ODBGCD_data gcd25=new ODBGCD_data(); + public ODBGCD_data gcd26=new ODBGCD_data(); + public ODBGCD_data gcd27=new ODBGCD_data(); + } + + /* cnc_rdcommand: read command value */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBCMD_data + { + public byte adrs ; + public byte num ; + public short flag ; + public int cmd_val ; + public int dec_val ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBCMD + { + public ODBCMD_data cmd0 =new ODBCMD_data(); + public ODBCMD_data cmd1 =new ODBCMD_data(); + public ODBCMD_data cmd2 =new ODBCMD_data(); + public ODBCMD_data cmd3 =new ODBCMD_data(); + public ODBCMD_data cmd4 =new ODBCMD_data(); + public ODBCMD_data cmd5 =new ODBCMD_data(); + public ODBCMD_data cmd6 =new ODBCMD_data(); + public ODBCMD_data cmd7 =new ODBCMD_data(); + public ODBCMD_data cmd8 =new ODBCMD_data(); + public ODBCMD_data cmd9 =new ODBCMD_data(); + public ODBCMD_data cmd10=new ODBCMD_data(); + public ODBCMD_data cmd11=new ODBCMD_data(); + public ODBCMD_data cmd12=new ODBCMD_data(); + public ODBCMD_data cmd13=new ODBCMD_data(); + public ODBCMD_data cmd14=new ODBCMD_data(); + public ODBCMD_data cmd15=new ODBCMD_data(); + public ODBCMD_data cmd16=new ODBCMD_data(); + public ODBCMD_data cmd17=new ODBCMD_data(); + public ODBCMD_data cmd18=new ODBCMD_data(); + public ODBCMD_data cmd19=new ODBCMD_data(); + public ODBCMD_data cmd20=new ODBCMD_data(); + public ODBCMD_data cmd21=new ODBCMD_data(); + public ODBCMD_data cmd22=new ODBCMD_data(); + public ODBCMD_data cmd23=new ODBCMD_data(); + public ODBCMD_data cmd24=new ODBCMD_data(); + public ODBCMD_data cmd25=new ODBCMD_data(); + public ODBCMD_data cmd26=new ODBCMD_data(); + public ODBCMD_data cmd27=new ODBCMD_data(); + public ODBCMD_data cmd28=new ODBCMD_data(); + public ODBCMD_data cmd29=new ODBCMD_data(); + } + + /* cnc_diagnoss:read diagnosis data */ + /* cnc_diagnosr:read diagnosis data(area specified) */ + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class ODBDGN + { + public short datano; /* data number */ + public short type; /* axis number */ + public ODBDGN_U u; + + [StructLayout(LayoutKind.Explicit)] + public struct ODBDGN_U + { + [FieldOffset(0), MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_AXIS)] + public byte[] cdatas; + [FieldOffset(0), MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_AXIS)] + public short[] idatas; + [FieldOffset(0), MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_AXIS)] + public int[] ldatas; + [FieldOffset(0), MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_AXIS)] + public REALDGN[] rdatas; + + public byte cdata { get { return cdatas[0]; } } + public short idata { get { return idatas[0]; } } + public int ldata { get { return ldatas[0]; } } + public REALDGN rdata { get { return rdatas[0]; } } + } + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public struct REALDGN + { + public int dgn_val; /* data of real diagnoss */ + public int dec_val; /* decimal point of real diagnoss */ + } +#if LEAVE_OLD_STYLE +#if M_AXIS2 + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REALDGNS + { + public REALDGN rdata1=new REALDGN(); + public REALDGN rdata2=new REALDGN(); + public REALDGN rdata3=new REALDGN(); + public REALDGN rdata4=new REALDGN(); + public REALDGN rdata5=new REALDGN(); + public REALDGN rdata6=new REALDGN(); + public REALDGN rdata7=new REALDGN(); + public REALDGN rdata8=new REALDGN(); + public REALDGN rdata9=new REALDGN(); + public REALDGN rdata10=new REALDGN(); + public REALDGN rdata11=new REALDGN(); + public REALDGN rdata12=new REALDGN(); + public REALDGN rdata13=new REALDGN(); + public REALDGN rdata14=new REALDGN(); + public REALDGN rdata15=new REALDGN(); + public REALDGN rdata16=new REALDGN(); + public REALDGN rdata17=new REALDGN(); + public REALDGN rdata18=new REALDGN(); + public REALDGN rdata19=new REALDGN(); + public REALDGN rdata20=new REALDGN(); + public REALDGN rdata21=new REALDGN(); + public REALDGN rdata22=new REALDGN(); + public REALDGN rdata23=new REALDGN(); + public REALDGN rdata24=new REALDGN(); + } /* In case that the number of alarm is 24 */ +#elif FS15D + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REALDGNS + { + public REALDGN rdata1=new REALDGN(); + public REALDGN rdata2=new REALDGN(); + public REALDGN rdata3=new REALDGN(); + public REALDGN rdata4=new REALDGN(); + public REALDGN rdata5=new REALDGN(); + public REALDGN rdata6=new REALDGN(); + public REALDGN rdata7=new REALDGN(); + public REALDGN rdata8=new REALDGN(); + public REALDGN rdata9=new REALDGN(); + public REALDGN rdata10=new REALDGN(); + } /* In case that the number of alarm is 10 */ +#else + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class REALDGNS + { + public REALDGN rdata1=new REALDGN(); + public REALDGN rdata2=new REALDGN(); + public REALDGN rdata3=new REALDGN(); + public REALDGN rdata4=new REALDGN(); + public REALDGN rdata5=new REALDGN(); + public REALDGN rdata6=new REALDGN(); + public REALDGN rdata7=new REALDGN(); + public REALDGN rdata8=new REALDGN(); + } /* In case that the number of alarm is 8 */ +#endif + + [StructLayout(LayoutKind.Explicit)] + public class ODBDGN_1 + { + [ FieldOffset( 0 )] + public short datano ; /* data number */ + [ FieldOffset( 2 )] + public short type ; /* axis number */ + [ FieldOffset( 4 )] + public byte cdata; /* parameter / setting data */ + [ FieldOffset( 4 )] + public short idata; + [ FieldOffset( 4 )] + public int ldata; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDGN_2 + { + public short datano ; /* data number */ + public short type ; /* axis number */ + public REALDGN rdata=new REALDGN(); + } + [StructLayout(LayoutKind.Explicit)] + public class ODBDGN_3 + { + [ FieldOffset( 0 )] + public short datano ; /* data number */ + [ FieldOffset( 2 )] + public short type ; /* axis number */ + [ FieldOffset( 4 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public byte[] cdatas; + [ FieldOffset( 4 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public short[] idatas; + [ FieldOffset( 4 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ldatas; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDGN_4 + { + public short datano ; /* data number */ + public short type ; /* axis number */ + public REALDGNS rdatas=new REALDGNS(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDGN_A + { + public ODBDGN_1 data1=new ODBDGN_1(); + public ODBDGN_1 data2=new ODBDGN_1(); + public ODBDGN_1 data3=new ODBDGN_1(); + public ODBDGN_1 data4=new ODBDGN_1(); + public ODBDGN_1 data5=new ODBDGN_1(); + public ODBDGN_1 data6=new ODBDGN_1(); + public ODBDGN_1 data7=new ODBDGN_1(); + } /* (sample) must be modified */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDGN_B + { + public ODBDGN_2 data1=new ODBDGN_2(); + public ODBDGN_2 data2=new ODBDGN_2(); + public ODBDGN_2 data3=new ODBDGN_2(); + public ODBDGN_2 data4=new ODBDGN_2(); + public ODBDGN_2 data5=new ODBDGN_2(); + public ODBDGN_2 data6=new ODBDGN_2(); + public ODBDGN_2 data7=new ODBDGN_2(); + } /* (sample) must be modified */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDGN_C + { + public ODBDGN_3 data1=new ODBDGN_3(); + public ODBDGN_3 data2=new ODBDGN_3(); + public ODBDGN_3 data3=new ODBDGN_3(); + public ODBDGN_3 data4=new ODBDGN_3(); + public ODBDGN_3 data5=new ODBDGN_3(); + public ODBDGN_3 data6=new ODBDGN_3(); + public ODBDGN_3 data7=new ODBDGN_3(); + } /* (sample) must be modified */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDGN_D + { + public ODBDGN_4 data1=new ODBDGN_4(); + public ODBDGN_4 data2=new ODBDGN_4(); + public ODBDGN_4 data3=new ODBDGN_4(); + public ODBDGN_4 data4=new ODBDGN_4(); + public ODBDGN_4 data5=new ODBDGN_4(); + public ODBDGN_4 data6=new ODBDGN_4(); + public ODBDGN_4 data7=new ODBDGN_4(); + } /* (sample) must be modified */ +#endif + + /* cnc_adcnv:read A/D conversion data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBAD + { + public short datano ; /* input analog voltage type */ + public short type ; /* analog voltage type */ + public short data ; /* digital voltage data */ + } + +#if FS15D + /* cnc_rdopmsg:read operator's message */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class OPMSG_data + { + public short datano ; /* operator's message number */ + public short type ; /* operator's message type */ + public short char_num ; /* message string length */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=129)] + public string data= new string(' ',129) ; /* operator's message string */ + } /* In case that the data length is 129 */ +#else + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class OPMSG_data + { + public short datano ; /* operator's message number */ + public short type ; /* operator's message type */ + public short char_num ; /* message string length */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=256)] + public string data= new string(' ',256) ; /* operator's message string */ + } /* In case that the data length is 256 */ +#endif + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class OPMSG + { + public OPMSG_data msg1 =new OPMSG_data(); + public OPMSG_data msg2 =new OPMSG_data(); + public OPMSG_data msg3 =new OPMSG_data(); + public OPMSG_data msg4 =new OPMSG_data(); + public OPMSG_data msg5 =new OPMSG_data(); + } + + /* cnc_rdopmsg2:read operator's message */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class OPMSG2_data + { + public short datano ; /* operator's message number */ + public short type ; /* operator's message type */ + public short char_num ; /* message string length */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=64)] + public string data= new string(' ',64) ; /* operator's message string */ + } /* In case that the data length is 64 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class OPMSG2 + { + public OPMSG2_data msg1 =new OPMSG2_data(); + public OPMSG2_data msg2 =new OPMSG2_data(); + public OPMSG2_data msg3 =new OPMSG2_data(); + public OPMSG2_data msg4 =new OPMSG2_data(); + public OPMSG2_data msg5 =new OPMSG2_data(); + } + + /* cnc_rdopmsg3:read operator's message */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class OPMSG3_data + { + public short datano ; /* operator's message number */ + public short type ; /* operator's message type */ + public short char_num ; /* message string length */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=256)] + public string data= new string(' ',256) ; /* operator's message string */ + } /* In case that the data length is 256 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class OPMSG3 + { + public OPMSG3_data msg1 =new OPMSG3_data(); + public OPMSG3_data msg2 =new OPMSG3_data(); + public OPMSG3_data msg3 =new OPMSG3_data(); + public OPMSG3_data msg4 =new OPMSG3_data(); + public OPMSG3_data msg5 =new OPMSG3_data(); + } + + /* cnc_sysconfig:read CNC configuration information */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBSYSC + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] slot_no_p; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] slot_no_l; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public short[] mod_id; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public short[] soft_id; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series1 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series2 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series3 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series4 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series5 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series6 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series7 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series8 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series9 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series10= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series11= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series12= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series13= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series14= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series15= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_series16= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version1 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version2 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version3 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version4 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version5 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version6 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version7 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version8 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version9 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version10= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version11= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version12= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version13= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version14= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version15= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string s_version16= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] dummy; + public short m_rom; + public short s_rom; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public char[] svo_soft; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=6)] + public char[] pmc_soft; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=6)] + public char[] lad_soft; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public char[] mcr_soft; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=6)] + public char[] spl1_soft; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=6)] + public char[] spl2_soft; + public short frmmin; + public short drmmin; + public short srmmin; + public short pmcmin; + public short crtmin; + public short sv1min; + public short sv3min; + public short sicmin; + public short posmin; + public short drmmrc; + public short drmarc; + public short pmcmrc; + public short dmaarc; + public short iopt; + public short hdiio; + public short frmsub; + public short drmsub; + public short srmsub; + public short sv5sub; + public short sv7sub; + public short sicsub; + public short possub; + public short hamsub; + public short gm2gr1; + public short crtgr2; + public short gm1gr2; + public short gm2gr2; + public short cmmrb; + public short sv5axs; + public short sv7axs; + public short sicaxs; + public short posaxs; + public short hanaxs; + public short romr64; + public short srmr64; + public short dr1r64; + public short dr2r64; + public short iopio2; + public short hdiio2; + public short cmmrb2; + public short romfap; + public short srmfap; + public short drmfap; + } + + /* cnc_rdprstrinfo:read program restart information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPRS + { + public short datano; /* dummy */ + public short type; /* dummy */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public short[] data_info; /* data setting information */ + public int rstr_bc; /* block counter */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=35)] + public int[] rstr_m; /* M code value */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public int[] rstr_t; /* T code value */ + public int rstr_s; /* S code value */ + public int rstr_b; /* B code value */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] dest; /* program re-start position */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] dist; /* program re-start distance */ + } + +#if FS15D + /* cnc_rdopnlsgnl:read output signal image of software operator's panel */ + /* cnc_wropnlsgnl:write output signal of software operator's panel */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSGNL + { + public short datano; /* dummy */ + public short type; /* data select flag */ + public short mode; /* mode signal */ + public short hndl_ax; /* Manual handle feed axis selection signal */ + public short hndl_mv; /* Manual handle feed travel distance selection signal */ + public short rpd_ovrd; /* rapid traverse override signal */ + public short jog_ovrd; /* manual feedrate override signal */ + public short feed_ovrd; /* feedrate override signal */ + public short spdl_ovrd; /* spindle override signal */ + public short blck_del; /* optional block skip signal */ + public short sngl_blck; /* single block signal */ + public short machn_lock; /* machine lock signal */ + public short dry_run; /* dry run signal */ + public short mem_prtct; /* memory protection signal */ + public short feed_hold; /* automatic operation halt signal */ + public short manual_rpd; /* (not used) */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] dummy; /* (not used) */ + } +#else + /* cnc_rdopnlsgnl:read output signal image of software operator's panel */ + /* cnc_wropnlsgnl:write output signal of software operator's panel */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSGNL + { + public short datano; /* dummy */ + public short type; /* data select flag */ + public short mode; /* mode signal */ + public short hndl_ax; /* Manual handle feed axis selection signal */ + public short hndl_mv; /* Manual handle feed travel distance selection signal */ + public short rpd_ovrd; /* rapid traverse override signal */ + public short jog_ovrd; /* manual feedrate override signal */ + public short feed_ovrd; /* feedrate override signal */ + public short spdl_ovrd; /* (not used) */ + public short blck_del; /* optional block skip signal */ + public short sngl_blck; /* single block signal */ + public short machn_lock; /* machine lock signal */ + public short dry_run; /* dry run signal */ + public short mem_prtct; /* memory protection signal */ + public short feed_hold; /* automatic operation halt signal */ + } +#endif + + /* cnc_rdopnlgnrl:read general signal image of software operator's panel */ + /* cnc_wropnlgnrl:write general signal image of software operator's panel */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBGNRL + { + public short datano; /* dummy */ + public short type; /* data select flag */ + public byte sgnal; /* general signal */ + } + + /* cnc_rdopnlgsname:read general signal name of software operator's panel */ + /* cnc_wropnlgsname:write general signal name of software operator's panel*/ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class IODBRDNA + { + public short datano; /* dummy */ + public short type; /* data select flag */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=9)] + public string sgnl1_name= new string(' ',9) ; /* general signal 1 name */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=9)] + public string sgnl2_name= new string(' ',9) ; /* general signal 2 name */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=9)] + public string sgnl3_name= new string(' ',9) ; /* general signal 3 name */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=9)] + public string sgnl4_name= new string(' ',9) ; /* general signal 4 name */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=9)] + public string sgnl5_name= new string(' ',9) ; /* general signal 5 name */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=9)] + public string sgnl6_name= new string(' ',9) ; /* general signal 6 name */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=9)] + public string sgnl7_name= new string(' ',9) ; /* general signal 7 name */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=9)] + public string sgnl8_name= new string(' ',9) ; /* general signal 8 name */ + } + + /* cnc_getdtailerr:get detail error */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBERR + { + public short err_no ; + public short err_dtno ; + } + + + /* cnc_rdparainfo:read informations of CNC parameter */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPARAIF_info + { + public short prm_no ; + public short prm_type ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPARAIF1 + { + public ODBPARAIF_info info1 = new ODBPARAIF_info(); + public ODBPARAIF_info info2 = new ODBPARAIF_info(); + public ODBPARAIF_info info3 = new ODBPARAIF_info(); + public ODBPARAIF_info info4 = new ODBPARAIF_info(); + public ODBPARAIF_info info5 = new ODBPARAIF_info(); + public ODBPARAIF_info info6 = new ODBPARAIF_info(); + public ODBPARAIF_info info7 = new ODBPARAIF_info(); + public ODBPARAIF_info info8 = new ODBPARAIF_info(); + public ODBPARAIF_info info9 = new ODBPARAIF_info(); + public ODBPARAIF_info info10= new ODBPARAIF_info(); + } /* In case that the number of data is 10 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPARAIF + { + public ushort info_no ; + public short prev_no ; + public short next_no ; + public ODBPARAIF1 info = new ODBPARAIF1(); + } + + /* cnc_rdsetinfo:read informations of CNC setting data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSETIF_info + { + public short set_no ; + public short set_type ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSETIF1 + { + public ODBSETIF_info info1 = new ODBSETIF_info(); + public ODBSETIF_info info2 = new ODBSETIF_info(); + public ODBSETIF_info info3 = new ODBSETIF_info(); + public ODBSETIF_info info4 = new ODBSETIF_info(); + public ODBSETIF_info info5 = new ODBSETIF_info(); + public ODBSETIF_info info6 = new ODBSETIF_info(); + public ODBSETIF_info info7 = new ODBSETIF_info(); + public ODBSETIF_info info8 = new ODBSETIF_info(); + public ODBSETIF_info info9 = new ODBSETIF_info(); + public ODBSETIF_info info10= new ODBSETIF_info(); + } /* In case that the number of data is 10 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSETIF + { + public ushort info_no ; + public short prev_no ; + public short next_no ; + public ODBSETIF1 info = new ODBSETIF1(); + } + + /* cnc_rddiaginfo:read informations of CNC diagnose data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDIAGIF_info + { + public short diag_no ; + public short diag_type ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDIAGIF1 + { + public ODBDIAGIF_info info1 = new ODBDIAGIF_info(); + public ODBDIAGIF_info info2 = new ODBDIAGIF_info(); + public ODBDIAGIF_info info3 = new ODBDIAGIF_info(); + public ODBDIAGIF_info info4 = new ODBDIAGIF_info(); + public ODBDIAGIF_info info5 = new ODBDIAGIF_info(); + public ODBDIAGIF_info info6 = new ODBDIAGIF_info(); + public ODBDIAGIF_info info7 = new ODBDIAGIF_info(); + public ODBDIAGIF_info info8 = new ODBDIAGIF_info(); + public ODBDIAGIF_info info9 = new ODBDIAGIF_info(); + public ODBDIAGIF_info info10= new ODBDIAGIF_info(); + } /* In case that the number of data is 10 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDIAGIF + { + public ushort info_no ; + public short prev_no ; + public short next_no ; + public ODBDIAGIF1 info = new ODBDIAGIF1(); + } + + /* cnc_rdparanum:read maximum, minimum and total number of CNC parameter */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPARANUM + { + public ushort para_min ; + public ushort para_max ; + public ushort total_no ; + } + + /* cnc_rdsetnum:read maximum, minimum and total number of CNC setting data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSETNUM + { + public ushort set_min ; + public ushort set_max ; + public ushort total_no ; + } + + /* cnc_rddiagnum:read maximum, minimum and total number of CNC diagnose data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDIAGNUM + { + public ushort diag_min ; + public ushort diag_max ; + public ushort total_no ; + } + + /* cnc_rdfrominfo:read F-ROM information on CNC */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBFINFO_info + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string sysname= new string(' ',12) ; /* F-ROM SYSTEM data Name */ + public int fromsize; /* F-ROM Size */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBFINFO1 + { + public ODBFINFO_info info1 = new ODBFINFO_info(); + public ODBFINFO_info info2 = new ODBFINFO_info(); + public ODBFINFO_info info3 = new ODBFINFO_info(); + public ODBFINFO_info info4 = new ODBFINFO_info(); + public ODBFINFO_info info5 = new ODBFINFO_info(); + public ODBFINFO_info info6 = new ODBFINFO_info(); + public ODBFINFO_info info7 = new ODBFINFO_info(); + public ODBFINFO_info info8 = new ODBFINFO_info(); + public ODBFINFO_info info9 = new ODBFINFO_info(); + public ODBFINFO_info info10= new ODBFINFO_info(); + public ODBFINFO_info info11= new ODBFINFO_info(); + public ODBFINFO_info info12= new ODBFINFO_info(); + public ODBFINFO_info info13= new ODBFINFO_info(); + public ODBFINFO_info info14= new ODBFINFO_info(); + public ODBFINFO_info info15= new ODBFINFO_info(); + public ODBFINFO_info info16= new ODBFINFO_info(); + public ODBFINFO_info info17= new ODBFINFO_info(); + public ODBFINFO_info info18= new ODBFINFO_info(); + public ODBFINFO_info info19= new ODBFINFO_info(); + public ODBFINFO_info info20= new ODBFINFO_info(); + public ODBFINFO_info info21= new ODBFINFO_info(); + public ODBFINFO_info info22= new ODBFINFO_info(); + public ODBFINFO_info info23= new ODBFINFO_info(); + public ODBFINFO_info info24= new ODBFINFO_info(); + public ODBFINFO_info info25= new ODBFINFO_info(); + public ODBFINFO_info info26= new ODBFINFO_info(); + public ODBFINFO_info info27= new ODBFINFO_info(); + public ODBFINFO_info info28= new ODBFINFO_info(); + public ODBFINFO_info info29= new ODBFINFO_info(); + public ODBFINFO_info info30= new ODBFINFO_info(); + public ODBFINFO_info info31= new ODBFINFO_info(); + public ODBFINFO_info info32= new ODBFINFO_info(); + } + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBFINFO + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string slotname= new string(' ',12) ; /* Slot Name */ + public int fromnum; /* Number of F-ROM SYSTEM data */ + public ODBFINFO1 info = new ODBFINFO1(); + } + + /* cnc_getfrominfo:read F-ROM information on CNC */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBFINFORM_info + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string sysname= new string(' ',12) ; /* F-ROM SYSTEM data Name */ + public int fromsize; /* F-ROM Size */ + public int fromattrib; /* F-ROM data attribute */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBFINFORM1 + { + public ODBFINFORM_info info1 = new ODBFINFORM_info(); + public ODBFINFORM_info info2 = new ODBFINFORM_info(); + public ODBFINFORM_info info3 = new ODBFINFORM_info(); + public ODBFINFORM_info info4 = new ODBFINFORM_info(); + public ODBFINFORM_info info5 = new ODBFINFORM_info(); + public ODBFINFORM_info info6 = new ODBFINFORM_info(); + public ODBFINFORM_info info7 = new ODBFINFORM_info(); + public ODBFINFORM_info info8 = new ODBFINFORM_info(); + public ODBFINFORM_info info9 = new ODBFINFORM_info(); + public ODBFINFORM_info info10= new ODBFINFORM_info(); + public ODBFINFORM_info info11= new ODBFINFORM_info(); + public ODBFINFORM_info info12= new ODBFINFORM_info(); + public ODBFINFORM_info info13= new ODBFINFORM_info(); + public ODBFINFORM_info info14= new ODBFINFORM_info(); + public ODBFINFORM_info info15= new ODBFINFORM_info(); + public ODBFINFORM_info info16= new ODBFINFORM_info(); + public ODBFINFORM_info info17= new ODBFINFORM_info(); + public ODBFINFORM_info info18= new ODBFINFORM_info(); + public ODBFINFORM_info info19= new ODBFINFORM_info(); + public ODBFINFORM_info info20= new ODBFINFORM_info(); + public ODBFINFORM_info info21= new ODBFINFORM_info(); + public ODBFINFORM_info info22= new ODBFINFORM_info(); + public ODBFINFORM_info info23= new ODBFINFORM_info(); + public ODBFINFORM_info info24= new ODBFINFORM_info(); + public ODBFINFORM_info info25= new ODBFINFORM_info(); + public ODBFINFORM_info info26= new ODBFINFORM_info(); + public ODBFINFORM_info info27= new ODBFINFORM_info(); + public ODBFINFORM_info info28= new ODBFINFORM_info(); + public ODBFINFORM_info info29= new ODBFINFORM_info(); + public ODBFINFORM_info info30= new ODBFINFORM_info(); + public ODBFINFORM_info info31= new ODBFINFORM_info(); + public ODBFINFORM_info info32= new ODBFINFORM_info(); + } + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBFINFORM + { + public int slotno; /* Slot Number */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string slotname= new string(' ',12) ; /* Slot Name */ + public int fromnum; /* Number of F-ROM SYSTEM data */ + public ODBFINFORM1 info = new ODBFINFORM1(); + } + + /* cnc_rdsraminfo:read S-RAM information on CNC */ + /* cnc_getsraminfo:read S-RAM information on CNC */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBSINFO_info + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string sramname= new string(' ',12) ; /* S-RAM data Name */ + public int sramsize; /* S-RAM data Size */ + public short divnumber; /* Division number of S-RAM file */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string fname1= new string(' ',16) ; /* S-RAM data Name1 */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string fname2= new string(' ',16) ; /* S-RAM data Name2 */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string fname3= new string(' ',16) ; /* S-RAM data Name3 */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string fname4= new string(' ',16) ; /* S-RAM data Name4 */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string fname5= new string(' ',16) ; /* S-RAM data Name5 */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string fname6= new string(' ',16) ; /* S-RAM data Name6 */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSINFO1 + { + public ODBSINFO_info info1 = new ODBSINFO_info(); + public ODBSINFO_info info2 = new ODBSINFO_info(); + public ODBSINFO_info info3 = new ODBSINFO_info(); + public ODBSINFO_info info4 = new ODBSINFO_info(); + public ODBSINFO_info info5 = new ODBSINFO_info(); + public ODBSINFO_info info6 = new ODBSINFO_info(); + public ODBSINFO_info info7 = new ODBSINFO_info(); + public ODBSINFO_info info8 = new ODBSINFO_info(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSINFO + { + public int sramnum; /* Number of S-RAM data */ + public ODBSINFO1 info = new ODBSINFO1(); + } + + /* cnc_rdsramaddr:read S-RAM address on CNC */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class SRAMADDR + { + public short type ; /* SRAM data type */ + public int size ; /* SRAM data size */ + public int offset ; /* offset from top address of SRAM */ + } + + /* cnc_dtsvrdpgdir:read file directory in Data Server */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBDSDIR_data + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string file_name= new string(' ',16) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=64)] + public string comment= new string(' ',64) ; + public int size; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string date= new string(' ',16) ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDSDIR1 + { + public ODBDSDIR_data data1 = new ODBDSDIR_data(); + public ODBDSDIR_data data2 = new ODBDSDIR_data(); + public ODBDSDIR_data data3 = new ODBDSDIR_data(); + public ODBDSDIR_data data4 = new ODBDSDIR_data(); + public ODBDSDIR_data data5 = new ODBDSDIR_data(); + public ODBDSDIR_data data6 = new ODBDSDIR_data(); + public ODBDSDIR_data data7 = new ODBDSDIR_data(); + public ODBDSDIR_data data8 = new ODBDSDIR_data(); + public ODBDSDIR_data data9 = new ODBDSDIR_data(); + public ODBDSDIR_data data10= new ODBDSDIR_data(); + public ODBDSDIR_data data11= new ODBDSDIR_data(); + public ODBDSDIR_data data12= new ODBDSDIR_data(); + public ODBDSDIR_data data13= new ODBDSDIR_data(); + public ODBDSDIR_data data14= new ODBDSDIR_data(); + public ODBDSDIR_data data15= new ODBDSDIR_data(); + public ODBDSDIR_data data16= new ODBDSDIR_data(); + public ODBDSDIR_data data17= new ODBDSDIR_data(); + public ODBDSDIR_data data18= new ODBDSDIR_data(); + public ODBDSDIR_data data19= new ODBDSDIR_data(); + public ODBDSDIR_data data20= new ODBDSDIR_data(); + public ODBDSDIR_data data21= new ODBDSDIR_data(); + public ODBDSDIR_data data22= new ODBDSDIR_data(); + public ODBDSDIR_data data23= new ODBDSDIR_data(); + public ODBDSDIR_data data24= new ODBDSDIR_data(); + public ODBDSDIR_data data25= new ODBDSDIR_data(); + public ODBDSDIR_data data26= new ODBDSDIR_data(); + public ODBDSDIR_data data27= new ODBDSDIR_data(); + public ODBDSDIR_data data28= new ODBDSDIR_data(); + public ODBDSDIR_data data29= new ODBDSDIR_data(); + public ODBDSDIR_data data30= new ODBDSDIR_data(); + public ODBDSDIR_data data31= new ODBDSDIR_data(); + public ODBDSDIR_data data32= new ODBDSDIR_data(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDSDIR + { + public int file_num ; + public int remainder ; + public short data_num ; + public ODBDSDIR1 data = new ODBDSDIR1(); + } + + /* cnc_dtsvrdset:read setting data for Data Server */ + /* cnc_dtsvwrset:write setting data for Data Server */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class IODBDSSET + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string host_ip= new string(' ',16) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] + public string host_uname= new string(' ',32) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] + public string host_passwd= new string(' ',32) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=128)] + public string host_dir= new string(' ',128) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=13)] + public string dtsv_mac= new string(' ',13) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string dtsv_ip= new string(' ',16) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string dtsv_mask= new string(' ',16) ; + } + + /* cnc_dtsvmntinfo:read maintenance information for Data Server */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDSMNT + { + public int empty_cnt ; + public int total_size ; + public int read_ptr ; + public int write_ptr ; + } + + /* cnc_rdposerrs2:read the position deviation S1 and S2 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPSER + { + public int poserr1 ; + public int poserr2 ; + } + + /* cnc_rdctrldi:read the control input signal */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSPDI_data + { + public byte sgnl1 ; + public byte sgnl2 ; + public byte sgnl3 ; + public byte sgnl4 ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSPDI + { + public ODBSPDI_data di1 = new ODBSPDI_data(); + public ODBSPDI_data di2 = new ODBSPDI_data(); + public ODBSPDI_data di3 = new ODBSPDI_data(); + public ODBSPDI_data di4 = new ODBSPDI_data(); + } + + /* cnc_rdctrldo:read the control output signal */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSPDO_data + { + public byte sgnl1 ; + public byte sgnl2 ; + public byte sgnl3 ; + public byte sgnl4 ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSPDO + { + public ODBSPDO_data do1 = new ODBSPDO_data(); + public ODBSPDO_data do2 = new ODBSPDO_data(); + public ODBSPDO_data do3 = new ODBSPDO_data(); + public ODBSPDO_data do4 = new ODBSPDO_data(); + } + + /* cnc_rdwaveprm:read the parameter of wave diagnosis */ + /* cnc_wrwaveprm:write the parameter of wave diagnosis */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBWAVE_io + { + public byte adr ; + public byte bit ; + public short no ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBWAVE_axis + { + public short axis ; + } + [StructLayout(LayoutKind.Explicit)] + public class IODBWAVE_u + { + [ FieldOffset( 0 )] + public IODBWAVE_io io = new IODBWAVE_io(); + [ FieldOffset( 0 )] + public IODBWAVE_axis axis = new IODBWAVE_axis(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBWAVE_ch_data + { + public short kind ; + public IODBWAVE_u u = new IODBWAVE_u(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBWAVE_ch + { + public IODBWAVE_ch_data ch1 = new IODBWAVE_ch_data(); + public IODBWAVE_ch_data ch2 = new IODBWAVE_ch_data(); + public IODBWAVE_ch_data ch3 = new IODBWAVE_ch_data(); + public IODBWAVE_ch_data ch4 = new IODBWAVE_ch_data(); + public IODBWAVE_ch_data ch5 = new IODBWAVE_ch_data(); + public IODBWAVE_ch_data ch6 = new IODBWAVE_ch_data(); + public IODBWAVE_ch_data ch7 = new IODBWAVE_ch_data(); + public IODBWAVE_ch_data ch8 = new IODBWAVE_ch_data(); + public IODBWAVE_ch_data ch9 = new IODBWAVE_ch_data(); + public IODBWAVE_ch_data ch10= new IODBWAVE_ch_data(); + public IODBWAVE_ch_data ch11= new IODBWAVE_ch_data(); + public IODBWAVE_ch_data ch12= new IODBWAVE_ch_data(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBWAVE + { + public short condition ; + public char trg_adr ; + public byte trg_bit ; + public short trg_no ; + public short delay ; + public short t_range ; + public IODBWAVE_ch ch = new IODBWAVE_ch(); + } + + /* cnc_rdwaveprm2:read the parameter of wave diagnosis 2 */ + /* cnc_wrwaveprm2:write the parameter of wave diagnosis 2 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBWVPRM_io + { + public byte adr ; + public byte bit ; + public short no ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBWVPRM_axis + { + public short axis ; + } + [StructLayout(LayoutKind.Explicit)] + public class IODBWVPRM_u + { + [ FieldOffset( 0 )] + public IODBWVPRM_io io = new IODBWVPRM_io(); + [ FieldOffset( 0 )] + public IODBWVPRM_axis axis = new IODBWVPRM_axis(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBWVPRM_ch_data + { + public short kind ; + public IODBWVPRM_u u = new IODBWVPRM_u(); + public int reserve2 ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBWVPRM_ch + { + public IODBWVPRM_ch_data ch1 = new IODBWVPRM_ch_data(); + public IODBWVPRM_ch_data ch2 = new IODBWVPRM_ch_data(); + public IODBWVPRM_ch_data ch3 = new IODBWVPRM_ch_data(); + public IODBWVPRM_ch_data ch4 = new IODBWVPRM_ch_data(); + public IODBWVPRM_ch_data ch5 = new IODBWVPRM_ch_data(); + public IODBWVPRM_ch_data ch6 = new IODBWVPRM_ch_data(); + public IODBWVPRM_ch_data ch7 = new IODBWVPRM_ch_data(); + public IODBWVPRM_ch_data ch8 = new IODBWVPRM_ch_data(); + public IODBWVPRM_ch_data ch9 = new IODBWVPRM_ch_data(); + public IODBWVPRM_ch_data ch10= new IODBWVPRM_ch_data(); + public IODBWVPRM_ch_data ch11= new IODBWVPRM_ch_data(); + public IODBWVPRM_ch_data ch12= new IODBWVPRM_ch_data(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBWVPRM + { + public short condition ; + public byte trg_adr ; + public byte trg_bit ; + public short trg_no ; + public short reserve1 ; + public int delay ; + public int t_range ; + public IODBWVPRM_ch ch = new IODBWVPRM_ch(); + } + + /* cnc_rdwavedata:read the data of wave diagnosis */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBWVDT_io + { + public byte adr ; + public byte bit ; + public short no ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBWVDT_axis + { + public short axis ; + } + [StructLayout(LayoutKind.Explicit)] + public class ODBWVDT_u + { + [ FieldOffset( 0 )] + public ODBWVDT_io io = new ODBWVDT_io(); + [ FieldOffset( 0 )] + public ODBWVDT_axis axis = new ODBWVDT_axis(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBWVDT + { + public short channel ; + public short kind ; + public ODBWVDT_u u = new ODBWVDT_u(); + public byte year ; + public byte month ; + public byte day ; + public byte hour ; + public byte minute ; + public byte second ; + public short t_cycle ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8192)] + public short[] data ; + } + + /* cnc_rdrmtwaveprm:read the parameter of wave diagnosis for remort diagnosis */ + /* cnc_wrrmtwaveprm:write the parameter of wave diagnosis for remort diagnosis */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBRMTPRM_alm + { + public short no ; + public sbyte axis ; + public byte type ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBRMTPRM_io + { + public char adr ; + public byte bit ; + public short no ; + } + [StructLayout(LayoutKind.Explicit)] + public class IODBRMTPRM_trg + { + [ FieldOffset( 0 )] + public IODBRMTPRM_alm alm = new IODBRMTPRM_alm(); + [ FieldOffset( 0 )] + public IODBRMTPRM_io io = new IODBRMTPRM_io(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBRMTPRM_smpl + { + public char adr ; + public byte bit ; + public short no ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBRMTPRM1 + { + public IODBRMTPRM_smpl ampl1 = new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl2 = new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl3 = new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl4 = new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl5 = new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl6 = new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl7 = new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl8 = new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl9 = new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl10= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl11= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl12= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl13= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl14= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl15= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl16= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl17= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl18= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl19= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl20= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl21= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl22= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl23= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl24= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl25= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl26= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl27= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl28= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl29= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl30= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl31= new IODBRMTPRM_smpl(); + public IODBRMTPRM_smpl ampl32= new IODBRMTPRM_smpl(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBRMTPRM + { + public short condition ; + public short reserve ; + public IODBRMTPRM_trg trg = new IODBRMTPRM_trg(); + public int delay ; + public short wv_intrvl ; + public short io_intrvl ; + public short kind1 ; + public short kind2 ; + public IODBRMTPRM1 ampl= new IODBRMTPRM1(); + } + + /* cnc_rdrmtwavedt:read the data of wave diagnosis for remort diagnosis */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBRMTDT + { + public short channel ; + public short kind ; + public byte year ; + public byte month ; + public byte day ; + public byte hour ; + public byte minute ; + public byte second ; + public short t_intrvl ; + public short trg_data; + public int ins_ptr; + public short t_delta; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=1917)] + public short[] data; + } + + /* cnc_rdsavsigadr:read of address for PMC signal batch save */ + /* cnc_wrsavsigadr:write of address for PMC signal batch save */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSIGAD + { + public byte adr ; + public byte reserve ; + public short no ; + public short size ; + } + + /* cnc_rdmgrpdata:read M-code group data */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBMGRP_data + { + public int m_code ; + public short grp_no ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=21)] + public string m_name= new string(' ',21) ; + public byte dummy ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBMGRP + { + public ODBMGRP_data mgrp1 = new ODBMGRP_data(); + public ODBMGRP_data mgrp2 = new ODBMGRP_data(); + public ODBMGRP_data mgrp3 = new ODBMGRP_data(); + public ODBMGRP_data mgrp4 = new ODBMGRP_data(); + public ODBMGRP_data mgrp5 = new ODBMGRP_data(); + public ODBMGRP_data mgrp6 = new ODBMGRP_data(); + public ODBMGRP_data mgrp7 = new ODBMGRP_data(); + public ODBMGRP_data mgrp8 = new ODBMGRP_data(); + public ODBMGRP_data mgrp9 = new ODBMGRP_data(); + public ODBMGRP_data mgrp10= new ODBMGRP_data(); + } + + /* cnc_wrmgrpdata:write M-code group data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IDBMGRP + { + public short s_no ; + public short dummy ; + public short num ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=500)] + public short[] group = new short[500]; + } + + /* cnc_rdexecmcode:read executing M-code group data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBEXEM_data + { + public int no; + public short flag; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBEXEM1 + { + public ODBEXEM_data m_code1 = new ODBEXEM_data(); + public ODBEXEM_data m_code2 = new ODBEXEM_data(); + public ODBEXEM_data m_code3 = new ODBEXEM_data(); + public ODBEXEM_data m_code4 = new ODBEXEM_data(); + public ODBEXEM_data m_code5 = new ODBEXEM_data(); + } + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBEXEM + { + public short grp_no; + public short mem_no; + public ODBEXEM1 m_code = new ODBEXEM1(); + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=21)] + public string m_name= new string(' ',21) ; + public byte dummy; + } + + /* cnc_rdrstrmcode:read program restart M-code group data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class M_CODE_data + { + public int no; + public short flag; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class M_CODE1 + { + public M_CODE_data m_code1 = new M_CODE_data(); + public M_CODE_data m_code2 = new M_CODE_data(); + public M_CODE_data m_code3 = new M_CODE_data(); + public M_CODE_data m_code4 = new M_CODE_data(); + public M_CODE_data m_code5 = new M_CODE_data(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBRSTRM + { + public short grp_no; + public short mem_no; + public M_CODE1 m_code = new M_CODE1(); + } + + /* cnc_rdproctime:read processing time stamp data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPTIME_data + { + public int prg_no; + public short hour; + public byte minute; + public byte second; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPTIME1 + { + public ODBPTIME_data data1 = new ODBPTIME_data(); + public ODBPTIME_data data2 = new ODBPTIME_data(); + public ODBPTIME_data data3 = new ODBPTIME_data(); + public ODBPTIME_data data4 = new ODBPTIME_data(); + public ODBPTIME_data data5 = new ODBPTIME_data(); + public ODBPTIME_data data6 = new ODBPTIME_data(); + public ODBPTIME_data data7 = new ODBPTIME_data(); + public ODBPTIME_data data8 = new ODBPTIME_data(); + public ODBPTIME_data data9 = new ODBPTIME_data(); + public ODBPTIME_data data10= new ODBPTIME_data(); + } /* In case that the number of data is 10 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPTIME + { + public short num; + public ODBPTIME1 data = new ODBPTIME1(); + } + + /* cnc_rdprgdirtime:read program directory for processing time data */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class PRGDIRTM_data + { + public int prg_no; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=51)] + public string comment= new string(' ',51) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=13)] + public string cuttime= new string(' ',13) ; + } + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class PRGDIRTM + { + public PRGDIRTM_data data1 = new PRGDIRTM_data(); + public PRGDIRTM_data data2 = new PRGDIRTM_data(); + public PRGDIRTM_data data3 = new PRGDIRTM_data(); + public PRGDIRTM_data data4 = new PRGDIRTM_data(); + public PRGDIRTM_data data5 = new PRGDIRTM_data(); + public PRGDIRTM_data data6 = new PRGDIRTM_data(); + public PRGDIRTM_data data7 = new PRGDIRTM_data(); + public PRGDIRTM_data data8 = new PRGDIRTM_data(); + public PRGDIRTM_data data9 = new PRGDIRTM_data(); + public PRGDIRTM_data data10= new PRGDIRTM_data(); + } /* In case that the number of data is 10 */ + + /* cnc_rdprogdir2:read program directory 2 */ +#if (!ONO8D) + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class PRGDIR2_data + { + public short number ; + public int length ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=51)] + public string comment= new string(' ',51) ; + public byte dummy ; + } +#else + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class PRGDIR2_data + { + public int number ; + public int length ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=51)] + public string comment= new string(' ',51) ; + public byte dummy ; + } +#endif + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class PRGDIR2 + { + public PRGDIR2_data dir1 = new PRGDIR2_data(); + public PRGDIR2_data dir2 = new PRGDIR2_data(); + public PRGDIR2_data dir3 = new PRGDIR2_data(); + public PRGDIR2_data dir4 = new PRGDIR2_data(); + public PRGDIR2_data dir5 = new PRGDIR2_data(); + public PRGDIR2_data dir6 = new PRGDIR2_data(); + public PRGDIR2_data dir7 = new PRGDIR2_data(); + public PRGDIR2_data dir8 = new PRGDIR2_data(); + public PRGDIR2_data dir9 = new PRGDIR2_data(); + public PRGDIR2_data dir10= new PRGDIR2_data(); + } /* In case that the number of data is 10 */ + + /* cnc_rdprogdir3:read program directory 3 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class DIR3_MDATE + { + public short year; + public short month; + public short day; + public short hour; + public short minute; + public short dummy; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class DIR3_CDATE + { + public short year; + public short month; + public short day; + public short hour; + public short minute; + public short dummy; + } + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class PRGDIR3_data + { + public int number ; + public int length ; + public int page ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=52)] + public string comment= new string(' ',52) ; + public DIR3_MDATE mdate = new DIR3_MDATE(); + public DIR3_CDATE cdate = new DIR3_CDATE(); + } + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class PRGDIR3 + { + public PRGDIR3_data dir1 = new PRGDIR3_data(); + public PRGDIR3_data dir2 = new PRGDIR3_data(); + public PRGDIR3_data dir3 = new PRGDIR3_data(); + public PRGDIR3_data dir4 = new PRGDIR3_data(); + public PRGDIR3_data dir5 = new PRGDIR3_data(); + public PRGDIR3_data dir6 = new PRGDIR3_data(); + public PRGDIR3_data dir7 = new PRGDIR3_data(); + public PRGDIR3_data dir8 = new PRGDIR3_data(); + public PRGDIR3_data dir9 = new PRGDIR3_data(); + public PRGDIR3_data dir10= new PRGDIR3_data(); + } /* In case that the number of data is 10 */ + + + /* cnc_rdprogdir4:read program directory 4 */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class DIR4_MDATE + { + public short year; + public short month; + public short day; + public short hour; + public short minute; + public short dummy; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class DIR4_CDATE + { + public short year; + public short month; + public short day; + public short hour; + public short minute; + public short dummy; + } + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class PRGDIR4_data + { + public int number ; + public int length ; + public int page ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=52)] + public string comment= new string(' ',52) ; + public DIR4_MDATE mdate = new DIR4_MDATE(); + public DIR4_CDATE cdate = new DIR4_CDATE(); + } + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class PRGDIR4 + { + public PRGDIR4_data dir1 = new PRGDIR4_data(); + public PRGDIR4_data dir2 = new PRGDIR4_data(); + public PRGDIR4_data dir3 = new PRGDIR4_data(); + public PRGDIR4_data dir4 = new PRGDIR4_data(); + public PRGDIR4_data dir5 = new PRGDIR4_data(); + public PRGDIR4_data dir6 = new PRGDIR4_data(); + public PRGDIR4_data dir7 = new PRGDIR4_data(); + public PRGDIR4_data dir8 = new PRGDIR4_data(); + public PRGDIR4_data dir9 = new PRGDIR4_data(); + public PRGDIR4_data dir10= new PRGDIR4_data(); + } /* In case that the number of data is 10 */ + + /* cnc_rdcomparam:read communication parameter for DNC1, DNC2, OSI-Ethernet */ + /* cnc_wrcomparam:write communication parameter for DNC1, DNC2, OSI-Ethernet */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class IODBCPRM + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=65)] + public string NcApli= new string(' ',65) ; + public byte Dummy1 ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=65)] + public string HostApli= new string(' ',65) ; + public byte Dummy2 ; + public uint StatPstv ; + public uint StatNgtv ; + public uint Statmask ; + public uint AlarmStat ; + public uint PsclHaddr ; + public uint PsclLaddr ; + public ushort SvcMode1 ; + public ushort SvcMode2 ; + public int FileTout ; + public int RemTout ; + } + + /* cnc_rdintchk:read interference check */ + /* cnc_wrintchk:write interference check */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBINT + { + public short datano_s; /* start offset No. */ + public short type; /* kind of position */ + public short datano_e; /* end offset No. */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8*3)] + public int[] data = new int[8*3]; /* position value of area for not attach */ + } + + /* cnc_rdwkcdshft:read work coordinate shift */ + /* cnc_wrwkcdshft:write work coordinate shift */ + /* cnc_rdwkcdsfms:read work coordinate shift measure */ + /* cnc_wrwkcdsfms:write work coordinate shift measure */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBWCSF + { + public short datano; /* datano */ + public short type; /* axis number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] data = new int[MAX_AXIS]; /* data */ + } + + /* cnc_rdomhisinfo:read operator message history information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOMIF + { + public ushort om_max ; /* maximum operator message history */ + public ushort om_sum ; /* actually operator message history */ + public ushort om_char ; /* maximum character (include NULL) */ + } + + /* cnc_rdomhistry:read operator message history */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBOMHIS_data + { + public short om_no; /* operator message number */ + public short year; /* year */ + public short month; /* month */ + public short day; /* day */ + public short hour; /* hour */ + public short minute; /* mimute */ + public short second; /* second */ + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=256)] + public string om_msg= new string(' ',256) ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBOMHIS + { + public ODBOMHIS_data omhis1 = new ODBOMHIS_data(); + public ODBOMHIS_data omhis2 = new ODBOMHIS_data(); + public ODBOMHIS_data omhis3 = new ODBOMHIS_data(); + public ODBOMHIS_data omhis4 = new ODBOMHIS_data(); + public ODBOMHIS_data omhis5 = new ODBOMHIS_data(); + public ODBOMHIS_data omhis6 = new ODBOMHIS_data(); + public ODBOMHIS_data omhis7 = new ODBOMHIS_data(); + public ODBOMHIS_data omhis8 = new ODBOMHIS_data(); + public ODBOMHIS_data omhis9 = new ODBOMHIS_data(); + public ODBOMHIS_data omhis10= new ODBOMHIS_data(); + } /* In case that the number of data is 10 */ + + /* cnc_rdbtofsr:read b-axis tool offset value(area specified) */ + /* cnc_wrbtofsr:write b-axis tool offset value(area specified) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBBTO + { + public short datano_s; /* start offset number */ + public short type; /* offset type */ + public short datano_e; /* end offset number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=18)] + public int[] ofs = new int [18]; /* offset */ + } /* In case that the number of data is 9 (B type) */ + + /* cnc_rdbtofsinfo:read b-axis tool offset information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBBTLINF + { + public short ofs_type; /* memory type */ + public short use_no; /* sum of b-axis offset */ + public short sub_no; /* sub function number of offset cancel */ + } + + /* cnc_rdbaxis:read b-axis command */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBBAXIS + { + public short flag ; /* b-axis command exist or not */ + public short command ; /* b-axis command */ + public ushort speed ; /* b-axis speed */ + public int sub_data ; /* b-axis sub data */ + } + + /* cnc_rdsyssoft:read CNC system soft series and version */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBSYSS + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] slot_no_p; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] slot_no_l; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public short[] module_id; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public short[] soft_id; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series1 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series2 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series3 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series4 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series5 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series6 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series7 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series8 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series9 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series10= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series11= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series12= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series13= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series14= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series15= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series16= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version1 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version2 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version3 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version4 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version5 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version6 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version7 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version8 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version9 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version10= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version11= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version12= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version13= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version14= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version15= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version16= new string(' ',5) ; + public short soft_inst; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string boot_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string boot_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string servo_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string servo_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string ladder_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string ladder_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcrlib_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcrlib_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcrapl_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcrapl_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl1_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl1_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl2_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl2_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl3_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl3_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string c_exelib_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string c_exelib_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string c_exeapl_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string c_exeapl_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string int_vga_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string int_vga_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string out_vga_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string out_vga_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmm_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmm_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_mng_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_mng_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_shin_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_shin_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_shout_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_shout_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_c_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_c_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_edit_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_edit_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string lddr_mng_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string lddr_mng_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string lddr_apl_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string lddr_apl_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl4_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl4_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcr2_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcr2_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcr3_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcr3_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string eth_boot_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string eth_boot_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8*5)] + public byte[] reserve; + } + + /* cnc_rdsyssoft2:read CNC system soft series and version (2) */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBSYSS2 + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] slot_no_p; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public byte[] slot_no_l; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public short[] module_id; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public short[] soft_id; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series1 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series2 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series3 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series4 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series5 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series6 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series7 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series8 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series9 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series10= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series11= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series12= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series13= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series14= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series15= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_series16= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version1 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version2 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version3 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version4 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version5 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version6 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version7 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version8 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version9 = new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version10= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version11= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version12= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version13= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version14= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version15= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string soft_version16= new string(' ',5) ; + public short soft_inst; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string boot_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string boot_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string servo_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string servo_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string ladder_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string ladder_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcrlib_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcrlib_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcrapl_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcrapl_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl1_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl1_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl2_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl2_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl3_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl3_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string c_exelib_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string c_exelib_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string c_exeapl_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string c_exeapl_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string int_vga_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string int_vga_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string out_vga_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string out_vga_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmm_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmm_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_mng_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_mng_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_shin_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_shin_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_shout_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_shout_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_c_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_c_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_edit_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string pmc_edit_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string lddr_mng_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string lddr_mng_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string lddr_apl_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string lddr_apl_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl4_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string spl4_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcr2_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcr2_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcr3_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string mcr3_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string eth_boot_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string eth_boot_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8*5)] + public byte[] reserve; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string embEthe_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string embEthe_ver= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=38*5)] + public byte[] reserve2; + } + + /* cnc_rdsyssoft3:read CNC system soft series and version (3) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSYSS3_data + { + public short soft_id; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public char[] soft_series; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public char[] soft_edition; + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSYSS3 + { + public ODBSYSS3_data p1 =new ODBSYSS3_data(); + public ODBSYSS3_data p2 =new ODBSYSS3_data(); + public ODBSYSS3_data p3 =new ODBSYSS3_data(); + public ODBSYSS3_data p4 =new ODBSYSS3_data(); + public ODBSYSS3_data p5 =new ODBSYSS3_data(); + public ODBSYSS3_data p6 =new ODBSYSS3_data(); + public ODBSYSS3_data p7 =new ODBSYSS3_data(); + public ODBSYSS3_data p8 =new ODBSYSS3_data(); + public ODBSYSS3_data p9 =new ODBSYSS3_data(); + public ODBSYSS3_data p10 =new ODBSYSS3_data(); + public ODBSYSS3_data p11 =new ODBSYSS3_data(); + public ODBSYSS3_data p12 =new ODBSYSS3_data(); + public ODBSYSS3_data p13 =new ODBSYSS3_data(); + public ODBSYSS3_data p14 =new ODBSYSS3_data(); + public ODBSYSS3_data p15 =new ODBSYSS3_data(); + public ODBSYSS3_data p16 =new ODBSYSS3_data(); + public ODBSYSS3_data p17 =new ODBSYSS3_data(); + public ODBSYSS3_data p18 =new ODBSYSS3_data(); + public ODBSYSS3_data p19 =new ODBSYSS3_data(); + public ODBSYSS3_data p20 =new ODBSYSS3_data(); + public ODBSYSS3_data p21 =new ODBSYSS3_data(); + public ODBSYSS3_data p22 =new ODBSYSS3_data(); + public ODBSYSS3_data p23 =new ODBSYSS3_data(); + public ODBSYSS3_data p24 =new ODBSYSS3_data(); + public ODBSYSS3_data p25 =new ODBSYSS3_data(); + public ODBSYSS3_data p26 =new ODBSYSS3_data(); + public ODBSYSS3_data p27 =new ODBSYSS3_data(); + public ODBSYSS3_data p28 =new ODBSYSS3_data(); + public ODBSYSS3_data p29 =new ODBSYSS3_data(); + public ODBSYSS3_data p30 =new ODBSYSS3_data(); + public ODBSYSS3_data p31 =new ODBSYSS3_data(); + public ODBSYSS3_data p32 =new ODBSYSS3_data(); + public ODBSYSS3_data p33 =new ODBSYSS3_data(); + public ODBSYSS3_data p34 =new ODBSYSS3_data(); + public ODBSYSS3_data p35 =new ODBSYSS3_data(); + public ODBSYSS3_data p36 =new ODBSYSS3_data(); + public ODBSYSS3_data p37 =new ODBSYSS3_data(); + public ODBSYSS3_data p38 =new ODBSYSS3_data(); + public ODBSYSS3_data p39 =new ODBSYSS3_data(); + public ODBSYSS3_data p40 =new ODBSYSS3_data(); + } + + /* cnc_rdsyshard:read CNC system hard info */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSYSH_data + { + public uint id1 ; + public uint id2 ; + public short group_id ; + public short hard_id ; + public short hard_num ; + public short slot_no ; + public short id1_format ; + public short id2_format ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSYSH + { + public ODBSYSH_data data1 = new ODBSYSH_data(); + public ODBSYSH_data data2 = new ODBSYSH_data(); + public ODBSYSH_data data3 = new ODBSYSH_data(); + public ODBSYSH_data data4 = new ODBSYSH_data(); + public ODBSYSH_data data5 = new ODBSYSH_data(); + public ODBSYSH_data data6 = new ODBSYSH_data(); + public ODBSYSH_data data7 = new ODBSYSH_data(); + public ODBSYSH_data data8 = new ODBSYSH_data(); + public ODBSYSH_data data9 = new ODBSYSH_data(); + public ODBSYSH_data data10 = new ODBSYSH_data(); + public ODBSYSH_data data11 = new ODBSYSH_data(); + public ODBSYSH_data data12 = new ODBSYSH_data(); + public ODBSYSH_data data13 = new ODBSYSH_data(); + public ODBSYSH_data data14 = new ODBSYSH_data(); + public ODBSYSH_data data15 = new ODBSYSH_data(); + public ODBSYSH_data data16 = new ODBSYSH_data(); + public ODBSYSH_data data17 = new ODBSYSH_data(); + public ODBSYSH_data data18 = new ODBSYSH_data(); + public ODBSYSH_data data19 = new ODBSYSH_data(); + public ODBSYSH_data data20 = new ODBSYSH_data(); + public ODBSYSH_data data21 = new ODBSYSH_data(); + public ODBSYSH_data data22 = new ODBSYSH_data(); + public ODBSYSH_data data23 = new ODBSYSH_data(); + public ODBSYSH_data data24 = new ODBSYSH_data(); + public ODBSYSH_data data25 = new ODBSYSH_data(); + } + + /* cnc_rdmdlconfig:read CNC module configuration information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBMDLC + { + public short from; + public short dram; + public short sram; + public short pmc; + public short crtc; + public short servo12; + public short servo34; + public short servo56; + public short servo78; + public short sic; + public short pos_lsi; + public short hi_aio; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=12)] + public short[] reserve; + public short drmmrc; + public short drmarc; + public short pmcmrc; + public short dmaarc; + public short iopt; + public short hdiio; + public short gm2gr1; + public short crtgr2; + public short gm1gr2; + public short gm2gr2; + public short cmmrb; + public short sv5axs; + public short sv7axs; + public short sicaxs; + public short posaxs; + public short hamaxs; + public short romr64; + public short srmr64; + public short dr1r64; + public short dr2r64; + public short iopio2; + public short hdiio2; + public short cmmrb2; + public short romfap; + public short srmfap; + public short drmfap; + public short drmare; + public short pmcmre; + public short dmaare; + public short frmbgg; + public short drmbgg; + public short asrbgg; + public short edtpsc; + public short slcpsc; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=34)] + public short[] reserve2; + } + + /* cnc_rdpscdproc:read processing condition file (processing data) */ + /* cnc_wrpscdproc:write processing condition file (processing data) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPSCD_data + { + public short slct; + public int feed; + public short power; + public short freq; + public short duty; + public short g_press; + public short g_kind; + public short g_ready_t; + public short displace; + public int supple; + public short edge_slt; + public short appr_slt; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public short[] reserve = new short[5]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPSCD + { + public IODBPSCD_data data1 = new IODBPSCD_data(); + public IODBPSCD_data data2 = new IODBPSCD_data(); + public IODBPSCD_data data3 = new IODBPSCD_data(); + public IODBPSCD_data data4 = new IODBPSCD_data(); + public IODBPSCD_data data5 = new IODBPSCD_data(); + public IODBPSCD_data data6 = new IODBPSCD_data(); + public IODBPSCD_data data7 = new IODBPSCD_data(); + public IODBPSCD_data data8 = new IODBPSCD_data(); + public IODBPSCD_data data9 = new IODBPSCD_data(); + public IODBPSCD_data data10= new IODBPSCD_data(); + } /* In case that the number of data is 10 */ + + /* cnc_rdpscdpirc:read processing condition file (piercing data) */ + /* cnc_wrpscdpirc:write processing condition file (piercing data) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPIRC_data + { + public short slct; + public short power; + public short freq; + public short duty; + public short i_freq; + public short i_duty; + public short step_t; + public short step_sum; + public int pier_t; + public short g_press; + public short g_kind; + public short g_time; + public short def_pos; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=4)] + public short[] reserve = new short[4]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPIRC + { + public IODBPIRC_data data1 = new IODBPIRC_data(); + public IODBPIRC_data data2 = new IODBPIRC_data(); + public IODBPIRC_data data3 = new IODBPIRC_data(); + } + + /* cnc_rdpscdedge:read processing condition file (edging data) */ + /* cnc_wrpscdedge:write processing condition file (edging data) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBEDGE_data + { + public short slct; + public short angle; + public short power; + public short freq; + public short duty; + public int pier_t; + public short g_press; + public short g_kind; + public int r_len; + public short r_feed; + public short r_freq; + public short r_duty; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public short[] reserve = new short[5]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBEDGE + { + public IODBEDGE_data data1 = new IODBEDGE_data(); + public IODBEDGE_data data2 = new IODBEDGE_data(); + public IODBEDGE_data data3 = new IODBEDGE_data(); + public IODBEDGE_data data4 = new IODBEDGE_data(); + public IODBEDGE_data data5 = new IODBEDGE_data(); + } + + /* cnc_rdpscdslop:read processing condition file (slope data) */ + /* cnc_wrpscdslop:write processing condition file (slope data) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSLOP_data + { + public int slct; + public int upleng; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public short[] upsp = new short[10]; + public int dwleng; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public short[] dwsp = new short[10]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=10)] + public short[] reserve = new short[10]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSLOP + { + public IODBSLOP_data data1 = new IODBSLOP_data(); + public IODBSLOP_data data2 = new IODBSLOP_data(); + public IODBSLOP_data data3 = new IODBSLOP_data(); + public IODBSLOP_data data4 = new IODBSLOP_data(); + public IODBSLOP_data data5 = new IODBSLOP_data(); + } + + /* cnc_rdlpwrdty:read power controll duty data */ + /* cnc_wrlpwrdty:write power controll duty data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBLPWDT + { + public short slct; + public short dty_const; + public short dty_min; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=6)] + public short[] reserve = new short[6]; + } + + /* cnc_rdlpwrdat:read laser power data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBLOPDT + { + public short slct; + public short pwr_mon; + public short pwr_ofs; + public short pwr_act; + public int feed_act; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=4)] + public short[] reserve; + } + + /* cnc_rdlagslt:read laser assist gas selection */ + /* cnc_wrlagslt:write laser assist gas selection */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBLAGSL + { + public short slct; + public short ag_slt; + public short agflow_slt; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=6)] + public short[] reserve = new short[6]; + } + + /* cnc_rdlagst:read laser assist gas flow */ + /* cnc_wrlagst:write laser assist gas flow */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class GASFLOW + { + public short slct; + public short pre_time; + public short pre_press; + public short proc_press; + public short end_time; + public short end_press; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=3)] + public short[] reserve = new short[3]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBLAGST + { + public GASFLOW data1 = new GASFLOW(); + public GASFLOW data2 = new GASFLOW(); + public GASFLOW data3 = new GASFLOW(); + } + + /* cnc_rdledgprc:read laser power for edge processing */ + /* cnc_wrledgprc:write laser power for edge processing */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBLEGPR + { + public short slct; + public short power; + public short freq; + public short duty; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public short[] reserve = new short[5]; + } + + /* cnc_rdlprcprc:read laser power for piercing */ + /* cnc_wrlprcprc:write laser power for piercing */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBLPCPR + { + public short slct; + public short power; + public short freq; + public short duty; + public int time; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=4)] + public short[] reserve = new short[4]; + } + + /* cnc_rdlcmddat:read laser command data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBLCMDT + { + public short slct; + public int feed; + public short power; + public short freq; + public short duty; + public short g_kind; + public short g_ready_t; + public short g_press; + public short error; + public int dsplc; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=7)] + public short[] reserve = new short[7]; + } + + /* cnc_rdlactnum:read active number */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBLACTN + { + public short slct; + public short act_proc; + public short act_pirce; + public short act_slop; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public short[] reserve = new short[5]; + } + + /* cnc_rdlcmmt:read laser comment */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBLCMMT + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=25)] + public string comment= new string(' ',25) ; + } + + /* cnc_rdpwofsthis:read power correction factor history data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPWOFST_data + { + public int pwratio; + public int rfvolt; + public ushort year; + public ushort month; + public ushort day; + public ushort hour; + public ushort minute; + public ushort second; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPWOFST + { + public ODBPWOFST_data data1 = new ODBPWOFST_data(); + public ODBPWOFST_data data2 = new ODBPWOFST_data(); + public ODBPWOFST_data data3 = new ODBPWOFST_data(); + public ODBPWOFST_data data4 = new ODBPWOFST_data(); + public ODBPWOFST_data data5 = new ODBPWOFST_data(); + public ODBPWOFST_data data6 = new ODBPWOFST_data(); + public ODBPWOFST_data data7 = new ODBPWOFST_data(); + public ODBPWOFST_data data8 = new ODBPWOFST_data(); + public ODBPWOFST_data data9 = new ODBPWOFST_data(); + public ODBPWOFST_data data10= new ODBPWOFST_data(); + public ODBPWOFST_data data11= new ODBPWOFST_data(); + public ODBPWOFST_data data12= new ODBPWOFST_data(); + public ODBPWOFST_data data13= new ODBPWOFST_data(); + public ODBPWOFST_data data14= new ODBPWOFST_data(); + public ODBPWOFST_data data15= new ODBPWOFST_data(); + public ODBPWOFST_data data16= new ODBPWOFST_data(); + public ODBPWOFST_data data17= new ODBPWOFST_data(); + public ODBPWOFST_data data18= new ODBPWOFST_data(); + public ODBPWOFST_data data19= new ODBPWOFST_data(); + public ODBPWOFST_data data20= new ODBPWOFST_data(); + public ODBPWOFST_data data21= new ODBPWOFST_data(); + public ODBPWOFST_data data22= new ODBPWOFST_data(); + public ODBPWOFST_data data23= new ODBPWOFST_data(); + public ODBPWOFST_data data24= new ODBPWOFST_data(); + public ODBPWOFST_data data25= new ODBPWOFST_data(); + public ODBPWOFST_data data26= new ODBPWOFST_data(); + public ODBPWOFST_data data27= new ODBPWOFST_data(); + public ODBPWOFST_data data28= new ODBPWOFST_data(); + public ODBPWOFST_data data29= new ODBPWOFST_data(); + public ODBPWOFST_data data30= new ODBPWOFST_data(); + } + + /* cnc_rdmngtime:read management time */ + /* cnc_wrmngtime:write management time */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBMNGTIME_data + { + public uint life; + public uint total; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBMNGTIME + { + public IODBMNGTIME_data data1 = new IODBMNGTIME_data(); + public IODBMNGTIME_data data2 = new IODBMNGTIME_data(); + public IODBMNGTIME_data data3 = new IODBMNGTIME_data(); + public IODBMNGTIME_data data4 = new IODBMNGTIME_data(); + public IODBMNGTIME_data data5 = new IODBMNGTIME_data(); + public IODBMNGTIME_data data6 = new IODBMNGTIME_data(); + public IODBMNGTIME_data data7 = new IODBMNGTIME_data(); + public IODBMNGTIME_data data8 = new IODBMNGTIME_data(); + public IODBMNGTIME_data data9 = new IODBMNGTIME_data(); + public IODBMNGTIME_data data10= new IODBMNGTIME_data(); + } /* In case that the number of data is 10 */ + + /* cnc_rddischarge:read data related to electrical discharge at power correction ends */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDISCHRG + { + public ushort aps; + public ushort year; + public ushort month; + public ushort day; + public ushort hour; + public ushort minute; + public ushort second; + public short hpc; + public short hfq; + public short hdt; + public short hpa; + public int hce; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public int[] rfi; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public int[] rfv; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public int[] dci; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public int[] dcv; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public int[] dcw; + } + + /* cnc_rddischrgalm:read alarm history data related to electrical discharg */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDISCHRGALM_data + { + public ushort year; + public ushort month; + public ushort day; + public ushort hour; + public ushort minute; + public ushort second; + public int almnum; + public uint psec; + public short hpc; + public short hfq; + public short hdt; + public short hpa; + public int hce; + public ushort asq; + public ushort psu; + public ushort aps; + public short dummy; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public int[] rfi; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public int[] rfv; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public int[] dci; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public int[] dcv; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public int[] dcw; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public short[] almcd; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBDISCHRGALM + { + public ODBDISCHRGALM_data data1 = new ODBDISCHRGALM_data(); + public ODBDISCHRGALM_data data2 = new ODBDISCHRGALM_data(); + public ODBDISCHRGALM_data data3 = new ODBDISCHRGALM_data(); + public ODBDISCHRGALM_data data4 = new ODBDISCHRGALM_data(); + public ODBDISCHRGALM_data data5 = new ODBDISCHRGALM_data(); + } + + /* cnc_gettimer:get date and time from cnc */ + /* cnc_settimer:set date and time for cnc */ + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public struct TIMER_DATE + { + public short year; + public short month; + public short date; + } + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public struct TIMER_TIME + { + public short hour; + public short minute; + public short second; + } + [StructLayout(LayoutKind.Explicit)] + public class IODBTIMER + { + [FieldOffset(0)] + public short type; + [FieldOffset(2)] + public short dummy; + [FieldOffset(4)] + public TIMER_DATE date; + [FieldOffset(4)] + public TIMER_TIME time; + } + + /* cnc_rdtimer:read timer data from cnc */ + /* cnc_wrtimer:write timer data for cnc */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTIME + { + public int minute ; + public int msec ; + } + + /* cnc_rdtlctldata: read tool controll data */ + /* cnc_wrtlctldata: write tool controll data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLCTL + { + public short slct; + public short used_tool; + public short turret_indx; + public int zero_tl_no; + public int t_axis_move; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public int[] total_punch = new int[2]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=11)] + public short[] reserve = new short[11]; + } + + /* cnc_rdtooldata: read tool data */ + /* cnc_wrtooldata: read tool data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLDT_data + { + public short slct; + public int tool_no; + public int x_axis_ofs; + public int y_axis_ofs; + public int turret_pos; + public int chg_tl_no; + public int punch_count; + public int tool_life; + public int m_tl_radius; + public int m_tl_angle; + public byte tl_shape; + public int tl_size_i; + public int tl_size_j; + public int tl_angle; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=3)] + public int[] reserve = new int[3]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLDT + { + public IODBTLDT_data data1 = new IODBTLDT_data(); + public IODBTLDT_data data2 = new IODBTLDT_data(); + public IODBTLDT_data data3 = new IODBTLDT_data(); + public IODBTLDT_data data4 = new IODBTLDT_data(); + public IODBTLDT_data data5 = new IODBTLDT_data(); + public IODBTLDT_data data6 = new IODBTLDT_data(); + public IODBTLDT_data data7 = new IODBTLDT_data(); + public IODBTLDT_data data8 = new IODBTLDT_data(); + public IODBTLDT_data data9 = new IODBTLDT_data(); + public IODBTLDT_data data10= new IODBTLDT_data(); + } /* In case that the number of data is 10 */ + + /* cnc_rdmultitldt: read multi tool data */ + /* cnc_wrmultitldt: write multi tool data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBMLTTL_data + { + public short slct; + public short m_tl_no; + public int m_tl_radius; + public int m_tl_angle; + public int x_axis_ofs; + public int y_axis_ofs; + public byte tl_shape; + public int tl_size_i; + public int tl_size_j; + public int tl_angle; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=7)] + public int[] reserve = new int[7]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBMLTTL + { + public IODBMLTTL_data data1 = new IODBMLTTL_data(); + public IODBMLTTL_data data2 = new IODBMLTTL_data(); + public IODBMLTTL_data data3 = new IODBMLTTL_data(); + public IODBMLTTL_data data4 = new IODBMLTTL_data(); + public IODBMLTTL_data data5 = new IODBMLTTL_data(); + public IODBMLTTL_data data6 = new IODBMLTTL_data(); + public IODBMLTTL_data data7 = new IODBMLTTL_data(); + public IODBMLTTL_data data8 = new IODBMLTTL_data(); + public IODBMLTTL_data data9 = new IODBMLTTL_data(); + public IODBMLTTL_data data10= new IODBMLTTL_data(); + } /* In case that the number of data is 10 */ + + /* cnc_rdmtapdata: read multi tap data */ + /* cnc_wrmtapdata: write multi tap data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBMTAP_data + { + public short slct; + public int tool_no; + public int x_axis_ofs; + public int y_axis_ofs; + public int punch_count; + public int tool_life; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=11)] + public int[] reserve = new int[11]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBMTAP + { + public IODBMTAP_data data1 = new IODBMTAP_data(); + public IODBMTAP_data data2 = new IODBMTAP_data(); + public IODBMTAP_data data3 = new IODBMTAP_data(); + public IODBMTAP_data data4 = new IODBMTAP_data(); + public IODBMTAP_data data5 = new IODBMTAP_data(); + public IODBMTAP_data data6 = new IODBMTAP_data(); + public IODBMTAP_data data7 = new IODBMTAP_data(); + public IODBMTAP_data data8 = new IODBMTAP_data(); + public IODBMTAP_data data9 = new IODBMTAP_data(); + public IODBMTAP_data data10= new IODBMTAP_data(); + } + + /* cnc_rdtoolinfo: read tool information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPTLINF + { + public short tld_max; + public short mlt_max; + public short reserve; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public short[] tld_size; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public short[] mlt_size; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=16)] + public short[] reserves; + } + + /* cnc_rdsafetyzone: read safetyzone data */ + /* cnc_wrsafetyzone: write safetyzone data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSAFE_data + { + public short slct; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=3)] + public int[] data = new int[3]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSAFE + { + public IODBSAFE_data data1 = new IODBSAFE_data(); + public IODBSAFE_data data2 = new IODBSAFE_data(); + public IODBSAFE_data data3 = new IODBSAFE_data(); + public IODBSAFE_data data4 = new IODBSAFE_data(); + } /* In case that the number of data is 4 */ + + /* cnc_rdtoolzone: read toolzone data */ + /* cnc_wrtoolzone: write toolzone data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLZN_data + { + public short slct; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public int[] data = new int[12]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBTLZN + { + public IODBTLZN_data data1 = new IODBTLZN_data(); + public IODBTLZN_data data2 = new IODBTLZN_data(); + public IODBTLZN_data data3 = new IODBTLZN_data(); + public IODBTLZN_data data4 = new IODBTLZN_data(); + public IODBTLZN_data data5 = new IODBTLZN_data(); + public IODBTLZN_data data6 = new IODBTLZN_data(); + public IODBTLZN_data data7 = new IODBTLZN_data(); + public IODBTLZN_data data8 = new IODBTLZN_data(); + public IODBTLZN_data data9 = new IODBTLZN_data(); + public IODBTLZN_data data10= new IODBTLZN_data(); + public IODBTLZN_data data11= new IODBTLZN_data(); + public IODBTLZN_data data12= new IODBTLZN_data(); + } /* In case that the number of data is 12 */ + + /* cnc_rdacttlzone: read active toolzone data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBACTTLZN + { + public short act_no; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public int[] data; + } + + /* cnc_rdbrstrinfo:read block restart information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBBRS + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] dest; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] dist; + } /* In case that the number of axes is MAX_AXIS */ + + /* cnc_rdradofs:read tool radius offset for position data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBROFS + { + public short mode; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] pln_axes; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public int[] ofsvct; + } + + /* cnc_rdlenofs:read tool length offset for position data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBLOFS + { + public short mode; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ofsvct; + } /* In case that the number of axes is MAX_AXIS */ + + /* cnc_rdfixcycle:read fixed cycle for position data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBFIX + { + public short mode; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] pln_axes; + public short drl_axes; + public int i_pos; + public int r_pos; + public int z_pos; + public int cmd_cnt; + public int act_cnt; + public int cut; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public int[] shift; + } + + /* cnc_rdcdrotate:read coordinate rotate for position data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBROT + { + public short mode; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public short[] pln_axes; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public int[] center; + public int angle; + } + + /* cnc_rd3dcdcnv:read 3D coordinate convert for position data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODB3DCD + { + public short mode; + public short dno; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=3)] + public short[] cd_axes; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2*3)] + public int[] center; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2*3)] + public int[] direct; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=2)] + public int[] angle; + } + + /* cnc_rdmirimage:read programable mirror image for position data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBMIR + { + public short mode; + public int mir_flag; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] mir_pos; + } /* In case that the number of axes is MAX_AXIS */ + + /* cnc_rdscaling:read scaling data for position data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSCL + { + public short mode; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] center; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] magnif; + } /* In case that the number of axes is MAX_AXIS */ + + /* cnc_rd3dtofs:read 3D tool offset for position data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODB3DTO + { + public short mode; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=3)] + public short[] ofs_axes; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=3)] + public int[] ofsvct; + } + + /* cnc_rdposofs:read tool position offset for position data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPOFS + { + public short mode; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public int[] ofsvct; + } /* In case that the number of axes is MAX_AXIS */ + + /* cnc_rdhpccset:read hpcc setting data */ + /* cnc_wrhpccset:write hpcc setting data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBHPST + { + public short slct ; + public short hpcc ; + public short multi ; + public short ovr1 ; + public short ign_f ; + public short foward ; + public int max_f ; + public short ovr2 ; + public short ovr3 ; + public short ovr4 ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=7)] + public int[] reserve = new int[7]; + } + + /* cnc_rdhpcctupr:read hpcc tuning data ( parameter input ) */ + /* cnc_wrhpcctupr:write hpcc tuning data ( parameter input ) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBHPPR_tune + { + public short slct ; + public short diff ; + public short fine ; + public short acc_lv ; + public int max_f ; + public short bipl ; + public short aipl ; + public int corner ; + public short clamp ; + public int radius ; + public int max_cf ; + public int min_cf ; + public int foward ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public int[] reserve = new int[5] ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBHPPR + { + public IODBHPPR_tune tune1 = new IODBHPPR_tune(); + public IODBHPPR_tune tune2 = new IODBHPPR_tune(); + public IODBHPPR_tune tune3 = new IODBHPPR_tune(); + } + + /* cnc_rdhpcctuac:read hpcc tuning data ( acc input ) */ + /* cnc_wrhpcctuac:write hpcc tuning data ( acc input ) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBHPAC_tune + { + public short slct ; + public short diff ; + public short fine ; + public short acc_lv ; + public int bipl ; + public short aipl ; + public int corner ; + public int clamp ; + public int c_acc ; + public int foward ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public int[] reserve = new int[8]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBHPAC + { + public IODBHPAC_tune tune1 = new IODBHPAC_tune(); + public IODBHPAC_tune tune2 = new IODBHPAC_tune(); + public IODBHPAC_tune tune3 = new IODBHPAC_tune(); + } + + /* cnc_rd3dtooltip:read tip of tool for 3D handle */ + /* cnc_rd3dmovrlap:read move overrlap of tool for 3D handle */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODB3DHDL_data + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public short[] axes ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public int[] data ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODB3DHDL + { + public ODB3DHDL_data data1 = new ODB3DHDL_data(); + public ODB3DHDL_data data2 = new ODB3DHDL_data(); + } + + /* cnc_rd3dpulse:read pulse for 3D handle */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODB3DPLS_data + { + public int right_angle_x ; + public int right_angle_y ; + public int tool_axis ; + public int tool_tip_a_b ; + public int tool_tip_c ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODB3DPLS + { + public ODB3DPLS_data pls1 = new ODB3DPLS_data(); + public ODB3DPLS_data pls2 = new ODB3DPLS_data(); + } + + /* cnc_rdaxisname: read axis name */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBAXISNAME_data + { + public byte name; /* axis name */ + public byte suff; /* suffix */ + } +#if M_AXIS2 + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBAXISNAME + { + public ODBAXISNAME_data data1 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data2 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data3 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data4 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data5 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data6 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data7 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data8 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data9 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data10= new ODBAXISNAME_data(); + public ODBAXISNAME_data data11= new ODBAXISNAME_data(); + public ODBAXISNAME_data data12= new ODBAXISNAME_data(); + public ODBAXISNAME_data data13= new ODBAXISNAME_data(); + public ODBAXISNAME_data data14= new ODBAXISNAME_data(); + public ODBAXISNAME_data data15= new ODBAXISNAME_data(); + public ODBAXISNAME_data data16= new ODBAXISNAME_data(); + public ODBAXISNAME_data data17= new ODBAXISNAME_data(); + public ODBAXISNAME_data data18= new ODBAXISNAME_data(); + public ODBAXISNAME_data data19= new ODBAXISNAME_data(); + public ODBAXISNAME_data data20= new ODBAXISNAME_data(); + public ODBAXISNAME_data data21= new ODBAXISNAME_data(); + public ODBAXISNAME_data data22= new ODBAXISNAME_data(); + public ODBAXISNAME_data data23= new ODBAXISNAME_data(); + public ODBAXISNAME_data data24= new ODBAXISNAME_data(); + } +#elif FS15D + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBAXISNAME + { + public ODBAXISNAME_data data1 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data2 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data3 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data4 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data5 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data6 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data7 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data8 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data9 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data10= new ODBAXISNAME_data(); + } +#else + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBAXISNAME + { + public ODBAXISNAME_data data1 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data2 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data3 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data4 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data5 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data6 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data7 = new ODBAXISNAME_data(); + public ODBAXISNAME_data data8 = new ODBAXISNAME_data(); + } +#endif + + /* cnc_rdspdlname: read spindle name */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSPDLNAME_data + { + public byte name; /* spindle name */ + public byte suff1; /* suffix */ + public byte suff2; /* suffix */ + public byte suff3; /* suffix */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSPDLNAME + { + public ODBSPDLNAME_data data1 = new ODBSPDLNAME_data(); + public ODBSPDLNAME_data data2 = new ODBSPDLNAME_data(); + public ODBSPDLNAME_data data3 = new ODBSPDLNAME_data(); + public ODBSPDLNAME_data data4 = new ODBSPDLNAME_data(); + } + + /* cnc_exaxisname: read extended axis name */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBEXAXISNAME + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname1 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname2 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname3 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname4 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname5 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname6 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname7 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname8 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname9 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname10 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname11 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname12 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname13 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname14 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname15 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname16 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname17 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname18 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname19 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname20 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname21 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname22 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname23 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname24 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname25 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname26 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname27 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname28 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname29 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname30 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname31 = new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string axname32 = new string(' ',4) ; + } + + /* cnc_wrunsolicprm: Set the unsolicited message parameters */ + /* cnc_rdunsolicprm: Get the unsolicited message parameters */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public struct IODBUNSOLIC_pmc + { + public short type ; + public short rdaddr ; + public short rdno ; + public short rdsize ; + private int dummy ; + } + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class IODBUNSOLIC + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string ipaddr= new string(' ',16) ; + public ushort port ; + public short reqaddr ; + public short pmcno ; + public short retry ; + public short timeout ; + public short alivetime; + public short setno ; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public IODBUNSOLIC_pmc[] rddata = new IODBUNSOLIC_pmc[3]; + } + + /* cnc_wrunsolicprm2: Set the unsolicited message parameters(2) */ + /* cnc_rdunsolicprm2: Get the unsolicited message parameters(2) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public struct UNSOLICMSG_TYPE_PRM + { + public ushort type; + private ushort dummy1; + public ushort path; + public short addr; + public uint no; + public uint num_or_size; + } + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class IODBUNSOLIC2 + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=64)] + public string ipaddr= new string(' ',64) ; + public uint port ; + public ushort retry ; + public ushort timeout ; + public ushort alivetime; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)] + private byte[] dummy1 = new byte[8]; + public UNSOLICMSG_TYPE_PRM cntrl; + public ushort transnum; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 14)] + private byte[] dummy2 = new byte[14]; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public UNSOLICMSG_TYPE_PRM[] trans = new UNSOLICMSG_TYPE_PRM[3]; + } + + /* cnc_rdunsolicmsg: Reads the unsolicited message data */ + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public struct IDBUNSOLICMSG_msg + { + public short rdsize; + public IntPtr data; + } + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class IDBUNSOLICMSG + { + public short getno ; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public IDBUNSOLICMSG_msg[] msg = new IDBUNSOLICMSG_msg[3]; + } + + /* cnc_rdunsolicmsg2: Reads the unsolicited message data(2) */ + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public struct UNSOLICMSG_TYPE_MSG + { + public ushort type; + private ushort dummy1; + public ushort path; + private ushort dummy2; + public int num_or_size; + public IntPtr data; + } + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public class IDBUNSOLICMSG2 + { + public ushort getnum; + private ushort dummy; + [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] + public UNSOLICMSG_TYPE_MSG[] get = new UNSOLICMSG_TYPE_MSG[3]; + } + + /* cnc_rdpm_cncitem: read cnc maintenance item */ + /* cnc_rdpm_mcnitem: read machine specific maintenance item */ + /* cnc_wrpm_mcnitem: write machine specific maintenance item */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBITEM + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=62)] + public string name1 = new string(' ',62) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=62)] + public string name2 = new string(' ',62) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=62)] + public string name3 = new string(' ',62) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=62)] + public string name4 = new string(' ',62) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=62)] + public string name5 = new string(' ',62) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=62)] + public string name6 = new string(' ',62) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=62)] + public string name7 = new string(' ',62) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=62)] + public string name8 = new string(' ',62) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=62)] + public string name9 = new string(' ',62) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=62)] + public string name10 = new string(' ',62) ; + } + + /* cnc_rdpm_item:read maintenance item status */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPMAINTE_data + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=62)] + public string name = new string(' ',62) ; /* name */ + public int type; /* life count type */ + public int total; /* total life time (minite basis) */ + public int remain; /* life rest time */ + public int stat; /* life state */ + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPMAINTE + { + public IODBPMAINTE_data data1 = new IODBPMAINTE_data(); + public IODBPMAINTE_data data2 = new IODBPMAINTE_data(); + public IODBPMAINTE_data data3 = new IODBPMAINTE_data(); + public IODBPMAINTE_data data4 = new IODBPMAINTE_data(); + public IODBPMAINTE_data data5 = new IODBPMAINTE_data(); + public IODBPMAINTE_data data6 = new IODBPMAINTE_data(); + public IODBPMAINTE_data data7 = new IODBPMAINTE_data(); + public IODBPMAINTE_data data8 = new IODBPMAINTE_data(); + public IODBPMAINTE_data data9 = new IODBPMAINTE_data(); + public IODBPMAINTE_data data10 = new IODBPMAINTE_data(); + } + + /* cnc_sysinfo_ex:read CNC system path information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSYSEX_path + { + public short system; + public short group; + public short attrib; + public short ctrl_axis; + public short ctrl_srvo; + public short ctrl_spdl; + public short mchn_no; + public short reserved; + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSYSEX_data + { + public ODBSYSEX_path data1 = new ODBSYSEX_path(); + public ODBSYSEX_path data2 = new ODBSYSEX_path(); + public ODBSYSEX_path data3 = new ODBSYSEX_path(); + public ODBSYSEX_path data4 = new ODBSYSEX_path(); + public ODBSYSEX_path data5 = new ODBSYSEX_path(); + public ODBSYSEX_path data6 = new ODBSYSEX_path(); + public ODBSYSEX_path data7 = new ODBSYSEX_path(); + public ODBSYSEX_path data8 = new ODBSYSEX_path(); + public ODBSYSEX_path data9 = new ODBSYSEX_path(); + public ODBSYSEX_path data10 = new ODBSYSEX_path(); + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSYSEX + { + public short max_axis; + public short max_spdl; + public short max_path; + public short max_mchn; + public short ctrl_axis; + public short ctrl_srvo; + public short ctrl_spdl; + public short ctrl_path; + public short ctrl_mchn; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=3)] + public short[] reserved = new short[3]; + public ODBSYSEX_data path = new ODBSYSEX_data(); + } + +/*------------------*/ +/* CNC : SERCOS I/F */ +/*------------------*/ + + /* cnc_srcsrdidinfo:Read ID information of SERCOS I/F */ + /* cnc_srcswridinfo:Write ID information of SERCOS I/F */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class IODBIDINF + { + public int id_no; + public short drv_no; + public short acc_element; + public short err_general; + public short err_id_no; + public short err_id_name; + public short err_attr; + public short err_unit; + public short err_min_val; + public short err_max_val; + public short id_name_len; + public short id_name_max; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=60)] + public string id_name= new string(' ',60) ; + public int attr; + public short unit_len; + public short unit_max; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=12)] + public byte[] unit = new byte[12]; + public int min_val; + public int max_val; + } + + /* cnc_srcsrdexstat:Get execution status of reading/writing operation data of SERCOS I/F */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSRCSST + { + public short acc_element; + public short err_general; + public short err_id_no; + public short err_attr; + public short err_op_data; + } + + /* cnc_srcsrdlayout:Read drive assign of SERCOS I/F */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBSRCSLYT + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=4)] + public short[] spndl; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public short[] servo; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=8)] + public string axis_name= new string(' ',8) ; + } + +/*----------------------------*/ +/* CNC : Servo Guide */ +/*----------------------------*/ + /* cnc_sdsetchnl:Servo Guide (Channel data set) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IDBCHAN_data + { + public byte chno; + public sbyte axis; + public int datanum; + public ushort datainf; + public short dataadr; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IDBCHAN + { + public IDBCHAN_data data1 = new IDBCHAN_data(); + public IDBCHAN_data data2 = new IDBCHAN_data(); + public IDBCHAN_data data3 = new IDBCHAN_data(); + public IDBCHAN_data data4 = new IDBCHAN_data(); + public IDBCHAN_data data5 = new IDBCHAN_data(); + public IDBCHAN_data data6 = new IDBCHAN_data(); + public IDBCHAN_data data7 = new IDBCHAN_data(); + public IDBCHAN_data data8 = new IDBCHAN_data(); + } + + /* cnc_sdsetchnl:Servo Guide (read Sampling data) */ + /* cnc_sfbreadsmpl:Servo feedback data (read Sampling data) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSD + { + public IntPtr chadata; + public IntPtr count; + } + + /* cnc_sfbsetchnl:Servo feedback data (Channel data set) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IDBSFBCHAN + { + public byte chno; + public sbyte axis; + public ushort shift; + } + + +/*-------------------------*/ +/* CNC : FS18-LN function */ +/*-------------------------*/ + + /* cnc_allowcnd:read allowanced state */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBCAXIS + { + public short dummy ; /* dummy */ + public short type ; /* axis number */ + [MarshalAs(UnmanagedType.ByValArray,SizeConst=MAX_AXIS)] + public sbyte[] data ; /* data value */ + } + + +/*---------------------------------*/ +/* CNC : C-EXE SRAM file function */ +/*---------------------------------*/ + + /* read C-EXE SRAM disk directory */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class CFILEINFO_data + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=12)] + public string fname= new string(' ',12) ; /* file name */ + public int file_size ; /* file size (bytes) */ + public int file_attr ; /* attribute */ + public short year; /* year */ + public short month; /* month */ + public short day; /* day */ + public short hour; /* hour */ + public short minute; /* mimute */ + public short second; /* second */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class CFILEINFO + { + public CFILEINFO_data data1 = new CFILEINFO_data(); + public CFILEINFO_data data2 = new CFILEINFO_data(); + public CFILEINFO_data data3 = new CFILEINFO_data(); + public CFILEINFO_data data4 = new CFILEINFO_data(); + public CFILEINFO_data data5 = new CFILEINFO_data(); + public CFILEINFO_data data6 = new CFILEINFO_data(); + public CFILEINFO_data data7 = new CFILEINFO_data(); + public CFILEINFO_data data8 = new CFILEINFO_data(); + public CFILEINFO_data data9 = new CFILEINFO_data(); + public CFILEINFO_data data10= new CFILEINFO_data(); + } + +/*-----*/ +/* PMC */ +/*-----*/ + + /* pmc_rdpmcrng:read PMC data(area specified) */ + /* pmc_wrpmcrng:write PMC data(area specified) */ + [StructLayout(LayoutKind.Explicit)] + public class IODBPMC0 + { + [ FieldOffset( 0 )] + public short type_a ; /* PMC address type */ + [ FieldOffset( 2 )] + public short type_d ; /* PMC data type */ + [ FieldOffset( 4 )] + public short datano_s ; /* start PMC address */ + [ FieldOffset( 6 )] + public short datano_e ; /* end PMC address */ + [ FieldOffset( 8 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public byte[] cdata; /* PMC data */ + } /* In case that the number of data is 5 */ + + [StructLayout(LayoutKind.Explicit)] + public class IODBPMC1 + { + [ FieldOffset( 0 )] + public short type_a ; /* PMC address type */ + [ FieldOffset( 2 )] + public short type_d ; /* PMC data type */ + [ FieldOffset( 4 )] + public short datano_s ; /* start PMC address */ + [ FieldOffset( 6 )] + public short datano_e ; /* end PMC address */ + [ FieldOffset( 8 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public short[] idata; + } /* In case that the number of data is 5 */ + + [StructLayout(LayoutKind.Explicit)] + public class IODBPMC2 + { + [ FieldOffset( 0 )] + public short type_a ; /* PMC address type */ + [ FieldOffset( 2 )] + public short type_d ; /* PMC data type */ + [ FieldOffset( 4 )] + public short datano_s ; /* start PMC address */ + [ FieldOffset( 6 )] + public short datano_e ; /* end PMC address */ + [ FieldOffset( 8 ), + MarshalAs(UnmanagedType.ByValArray,SizeConst=5)] + public int[] ldata; + } /* In case that the number of data is 5 */ + + /* pmc_rdpmcinfo:read informations of PMC data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPMCINF_info + { + public char pmc_adr ; + public byte adr_attr ; + public ushort top_num ; + public ushort last_num ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPMCINF1 + { + public ODBPMCINF_info info1 = new ODBPMCINF_info(); + public ODBPMCINF_info info2 = new ODBPMCINF_info(); + public ODBPMCINF_info info3 = new ODBPMCINF_info(); + public ODBPMCINF_info info4 = new ODBPMCINF_info(); + public ODBPMCINF_info info5 = new ODBPMCINF_info(); + public ODBPMCINF_info info6 = new ODBPMCINF_info(); + public ODBPMCINF_info info7 = new ODBPMCINF_info(); + public ODBPMCINF_info info8 = new ODBPMCINF_info(); + public ODBPMCINF_info info9 = new ODBPMCINF_info(); + public ODBPMCINF_info info10= new ODBPMCINF_info(); + public ODBPMCINF_info info11= new ODBPMCINF_info(); + public ODBPMCINF_info info12= new ODBPMCINF_info(); + public ODBPMCINF_info info13= new ODBPMCINF_info(); + public ODBPMCINF_info info14= new ODBPMCINF_info(); + public ODBPMCINF_info info15= new ODBPMCINF_info(); + public ODBPMCINF_info info16= new ODBPMCINF_info(); + public ODBPMCINF_info info17= new ODBPMCINF_info(); + public ODBPMCINF_info info18= new ODBPMCINF_info(); + public ODBPMCINF_info info19= new ODBPMCINF_info(); + public ODBPMCINF_info info20= new ODBPMCINF_info(); + public ODBPMCINF_info info21= new ODBPMCINF_info(); + public ODBPMCINF_info info22= new ODBPMCINF_info(); + public ODBPMCINF_info info23= new ODBPMCINF_info(); + public ODBPMCINF_info info24= new ODBPMCINF_info(); + public ODBPMCINF_info info25= new ODBPMCINF_info(); + public ODBPMCINF_info info26= new ODBPMCINF_info(); + public ODBPMCINF_info info27= new ODBPMCINF_info(); + public ODBPMCINF_info info28= new ODBPMCINF_info(); + public ODBPMCINF_info info29= new ODBPMCINF_info(); + public ODBPMCINF_info info30= new ODBPMCINF_info(); + public ODBPMCINF_info info31= new ODBPMCINF_info(); + public ODBPMCINF_info info32= new ODBPMCINF_info(); + public ODBPMCINF_info info33= new ODBPMCINF_info(); + public ODBPMCINF_info info34= new ODBPMCINF_info(); + public ODBPMCINF_info info35= new ODBPMCINF_info(); + public ODBPMCINF_info info36= new ODBPMCINF_info(); + public ODBPMCINF_info info37= new ODBPMCINF_info(); + public ODBPMCINF_info info38= new ODBPMCINF_info(); + public ODBPMCINF_info info39= new ODBPMCINF_info(); + public ODBPMCINF_info info40= new ODBPMCINF_info(); + public ODBPMCINF_info info41= new ODBPMCINF_info(); + public ODBPMCINF_info info42= new ODBPMCINF_info(); + public ODBPMCINF_info info43= new ODBPMCINF_info(); + public ODBPMCINF_info info44= new ODBPMCINF_info(); + public ODBPMCINF_info info45= new ODBPMCINF_info(); + public ODBPMCINF_info info46= new ODBPMCINF_info(); + public ODBPMCINF_info info47= new ODBPMCINF_info(); + public ODBPMCINF_info info48= new ODBPMCINF_info(); + public ODBPMCINF_info info49= new ODBPMCINF_info(); + public ODBPMCINF_info info50= new ODBPMCINF_info(); + public ODBPMCINF_info info51= new ODBPMCINF_info(); + public ODBPMCINF_info info52= new ODBPMCINF_info(); + public ODBPMCINF_info info53= new ODBPMCINF_info(); + public ODBPMCINF_info info54= new ODBPMCINF_info(); + public ODBPMCINF_info info55= new ODBPMCINF_info(); + public ODBPMCINF_info info56= new ODBPMCINF_info(); + public ODBPMCINF_info info57= new ODBPMCINF_info(); + public ODBPMCINF_info info58= new ODBPMCINF_info(); + public ODBPMCINF_info info59= new ODBPMCINF_info(); + public ODBPMCINF_info info60= new ODBPMCINF_info(); + public ODBPMCINF_info info61= new ODBPMCINF_info(); + public ODBPMCINF_info info62= new ODBPMCINF_info(); + public ODBPMCINF_info info63= new ODBPMCINF_info(); + public ODBPMCINF_info info64= new ODBPMCINF_info(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPMCINF + { + public short datano ; + public ODBPMCINF1 info = new ODBPMCINF1(); + } + + /* pmc_rdcntldata:read PMC parameter data table control data */ + /* pmc_wrcntldata:write PMC parameter data table control data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPMCCNTL_info + { + public byte tbl_prm ; + public byte data_type ; + public ushort data_size ; + public ushort data_dsp ; + public short dummy ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPMCCNTL1 + { + public IODBPMCCNTL_info info1 = new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info2 = new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info3 = new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info4 = new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info5 = new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info6 = new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info7 = new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info8 = new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info9 = new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info10= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info11= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info12= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info13= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info14= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info15= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info16= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info17= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info18= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info19= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info20= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info21= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info22= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info23= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info24= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info25= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info26= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info27= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info28= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info29= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info30= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info31= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info32= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info33= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info34= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info35= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info36= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info37= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info38= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info39= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info40= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info41= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info42= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info43= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info44= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info45= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info46= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info47= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info48= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info49= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info50= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info51= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info52= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info53= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info54= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info55= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info56= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info57= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info58= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info59= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info60= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info61= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info62= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info63= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info64= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info65= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info66= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info67= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info68= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info69= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info70= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info71= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info72= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info73= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info74= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info75= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info76= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info77= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info78= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info79= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info80= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info81= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info82= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info83= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info84= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info85= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info86= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info87= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info88= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info89= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info90= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info91= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info92= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info93= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info94= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info95= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info96= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info97= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info98= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info99= new IODBPMCCNTL_info(); + public IODBPMCCNTL_info info100= new IODBPMCCNTL_info(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPMCCNTL + { + public short datano_s ; + public short dummy ; + public short datano_e ; + public IODBPMCCNTL1 info = new IODBPMCCNTL1(); + } + + /* pmc_rdalmmsg:read PMC alarm message */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBPMCALM_data + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=128)] + public string almmsg= new string(' ',128) ; /* alarm message */ + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPMCALM + { + public ODBPMCALM_data msg1 = new ODBPMCALM_data(); + public ODBPMCALM_data msg2 = new ODBPMCALM_data(); + public ODBPMCALM_data msg3 = new ODBPMCALM_data(); + public ODBPMCALM_data msg4 = new ODBPMCALM_data(); + public ODBPMCALM_data msg5 = new ODBPMCALM_data(); + public ODBPMCALM_data msg6 = new ODBPMCALM_data(); + public ODBPMCALM_data msg7 = new ODBPMCALM_data(); + public ODBPMCALM_data msg8 = new ODBPMCALM_data(); + public ODBPMCALM_data msg9 = new ODBPMCALM_data(); + public ODBPMCALM_data msg10= new ODBPMCALM_data(); + } /* In case that the number of data is 10 */ + + /* pmc_getdtailerr:get detail error for pmc */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPMCERR + { + public short err_no ; + public short err_dtno ; + } + + /* pmc_rdpmctitle:read pmc title data */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBPMCTITLE + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=48)] + public string mtb= new string(' ',48) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=48)] + public string machine= new string(' ',48) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=48)] + public string type= new string(' ',48) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=8)] + public string prgno= new string(' ',8) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=4)] + public string prgvers= new string(' ',4) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=48)] + public string prgdraw= new string(' ',48) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] + public string date= new string(' ',32) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=48)] + public string design= new string(' ',48) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=48)] + public string written= new string(' ',48) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=48)] + public string remarks= new string(' ',48) ; + } + + /* pmc_rdpmcrng_ext:read PMC data */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPMCEXT + { + public short type_a ; /* PMC address type */ + public short type_d ; /* PMC data type */ + public short datano_s ; /* start PMC address */ + public short datano_e ; /* end PMC address */ + public short err_code ; /* error code */ + public short reserved ; /* reserved */ + [MarshalAs(UnmanagedType.AsAny)] + public object data ; /* pointer to buffer */ + } + + /* pmc_rdpmcaddr:read PMC address information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPMCADR_info + { + public byte pmc_adr ; + public byte adr_attr ; + public ushort offset ; + public ushort top ; + public ushort num ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPMCADR1 + { + public ODBPMCADR_info info1 = new ODBPMCADR_info(); + public ODBPMCADR_info info2 = new ODBPMCADR_info(); + public ODBPMCADR_info info3 = new ODBPMCADR_info(); + public ODBPMCADR_info info4 = new ODBPMCADR_info(); + public ODBPMCADR_info info5 = new ODBPMCADR_info(); + public ODBPMCADR_info info6 = new ODBPMCADR_info(); + public ODBPMCADR_info info7 = new ODBPMCADR_info(); + public ODBPMCADR_info info8 = new ODBPMCADR_info(); + public ODBPMCADR_info info9 = new ODBPMCADR_info(); + public ODBPMCADR_info info10= new ODBPMCADR_info(); + public ODBPMCADR_info info11= new ODBPMCADR_info(); + public ODBPMCADR_info info12= new ODBPMCADR_info(); + public ODBPMCADR_info info13= new ODBPMCADR_info(); + public ODBPMCADR_info info14= new ODBPMCADR_info(); + public ODBPMCADR_info info15= new ODBPMCADR_info(); + public ODBPMCADR_info info16= new ODBPMCADR_info(); + public ODBPMCADR_info info17= new ODBPMCADR_info(); + public ODBPMCADR_info info18= new ODBPMCADR_info(); + public ODBPMCADR_info info19= new ODBPMCADR_info(); + public ODBPMCADR_info info20= new ODBPMCADR_info(); + public ODBPMCADR_info info21= new ODBPMCADR_info(); + public ODBPMCADR_info info22= new ODBPMCADR_info(); + public ODBPMCADR_info info23= new ODBPMCADR_info(); + public ODBPMCADR_info info24= new ODBPMCADR_info(); + public ODBPMCADR_info info25= new ODBPMCADR_info(); + public ODBPMCADR_info info26= new ODBPMCADR_info(); + public ODBPMCADR_info info27= new ODBPMCADR_info(); + public ODBPMCADR_info info28= new ODBPMCADR_info(); + public ODBPMCADR_info info29= new ODBPMCADR_info(); + public ODBPMCADR_info info30= new ODBPMCADR_info(); + public ODBPMCADR_info info31= new ODBPMCADR_info(); + public ODBPMCADR_info info32= new ODBPMCADR_info(); + public ODBPMCADR_info info33= new ODBPMCADR_info(); + public ODBPMCADR_info info34= new ODBPMCADR_info(); + public ODBPMCADR_info info35= new ODBPMCADR_info(); + public ODBPMCADR_info info36= new ODBPMCADR_info(); + public ODBPMCADR_info info37= new ODBPMCADR_info(); + public ODBPMCADR_info info38= new ODBPMCADR_info(); + public ODBPMCADR_info info39= new ODBPMCADR_info(); + public ODBPMCADR_info info40= new ODBPMCADR_info(); + public ODBPMCADR_info info41= new ODBPMCADR_info(); + public ODBPMCADR_info info42= new ODBPMCADR_info(); + public ODBPMCADR_info info43= new ODBPMCADR_info(); + public ODBPMCADR_info info44= new ODBPMCADR_info(); + public ODBPMCADR_info info45= new ODBPMCADR_info(); + public ODBPMCADR_info info46= new ODBPMCADR_info(); + public ODBPMCADR_info info47= new ODBPMCADR_info(); + public ODBPMCADR_info info48= new ODBPMCADR_info(); + public ODBPMCADR_info info49= new ODBPMCADR_info(); + public ODBPMCADR_info info50= new ODBPMCADR_info(); + public ODBPMCADR_info info51= new ODBPMCADR_info(); + public ODBPMCADR_info info52= new ODBPMCADR_info(); + public ODBPMCADR_info info53= new ODBPMCADR_info(); + public ODBPMCADR_info info54= new ODBPMCADR_info(); + public ODBPMCADR_info info55= new ODBPMCADR_info(); + public ODBPMCADR_info info56= new ODBPMCADR_info(); + public ODBPMCADR_info info57= new ODBPMCADR_info(); + public ODBPMCADR_info info58= new ODBPMCADR_info(); + public ODBPMCADR_info info59= new ODBPMCADR_info(); + public ODBPMCADR_info info60= new ODBPMCADR_info(); + public ODBPMCADR_info info61= new ODBPMCADR_info(); + public ODBPMCADR_info info62= new ODBPMCADR_info(); + public ODBPMCADR_info info63= new ODBPMCADR_info(); + public ODBPMCADR_info info64= new ODBPMCADR_info(); + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBPMCADR + { + public uint io_adr ; + public short datano ; + public ODBPMCADR1 info = new ODBPMCADR1(); + } + + +/*--------------------------*/ +/* PROFIBUS function */ +/*--------------------------*/ + + /* pmc_prfrdconfig:read PROFIBUS configration data */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBPRFCNF + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string master_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=3)] + public string master_ver= new string(' ',3) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string slave_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=3)] + public string slave_ver= new string(' ',3) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=5)] + public string cntl_ser= new string(' ',5) ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=3)] + public string cntl_ver= new string(' ',3) ; + } + + /* pmc_prfrdbusprm:read bus parameter for master function */ + /* pmc_prfwrbusprm:write bus parameter for master function */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBBUSPRM + { + public sbyte fdl_add ; + public sbyte baudrate ; + public ushort tsl ; + public ushort min_tsdr ; + public ushort max_tsdr ; + public byte tqui ; + public byte tset ; + public int ttr ; + public sbyte gap ; + public sbyte hsa ; + public sbyte max_retry ; + public byte bp_flag ; + public ushort min_slv_int ; + public ushort poll_tout ; + public ushort data_cntl ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=6)] + public byte[] reserve1 = new byte[6] ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public byte[] cls2_name = new byte[32] ; + public short user_dlen ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=62)] + public byte[] user_data = new byte[62] ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=96)] + public byte[] reserve2 = new byte[96] ; + } + + /* pmc_prfrdslvprm:read slave parameter for master function */ + /* pmc_prfwrslvprm:write slave parameter for master function */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSLVPRM + { + public short dis_enb ; + public ushort ident_no ; + public byte slv_flag ; + public byte slv_type ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=12)] + public byte[] reserve1 = new byte[12]; + public byte slv_stat ; + public byte wd_fact1 ; + public byte wd_fact2 ; + public byte min_tsdr ; + public char reserve2 ; + public byte grp_ident ; + public short user_plen ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public byte[] user_pdata = new byte[32]; + public short cnfg_dlen ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=126)] + public byte[] cnfg_data = new byte[126]; + public short slv_ulen ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=30)] + public byte[] slv_udata = new byte[30]; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public byte[] reserve3 = new byte[8]; + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSLVPRM2 + { + public short dis_enb ; + public ushort ident_no ; + public byte slv_flag ; + public byte slv_type ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=12)] + public byte[] reserve1 = new byte[12] ; + public byte slv_stat ; + public byte wd_fact1 ; + public byte wd_fact2 ; + public byte min_tsdr ; + public sbyte reserve2 ; + public byte grp_ident ; + public short user_plen ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=206)] + public byte[] user_pdata = new byte[206]; + public short cnfg_dlen ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=126)] + public byte[] cnfg_data = new byte[126] ; + public short slv_ulen ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=30)] + public byte[] slv_udata = new byte[30] ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)] + public byte[] reserve3 = new byte[8]; + } + + /* pmc_prfrdallcadr:read allocation address for master function */ + /* pmc_prfwrallcadr:set allocation address for master function */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBPRFADR + { + public byte di_size ; + public byte di_type ; + public ushort di_addr ; + public short reserve1; + public byte do_size ; + public byte do_type ; + public ushort do_addr ; + public short reserve2; + public byte dgn_size ; + public byte dgn_type ; + public ushort dgn_addr ; + } + + /* pmc_prfrdslvaddr:read allocation address for slave function */ + /* pmc_prfwrslvaddr:set allocation address for slave function */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSLVADR + { + public byte slave_no ; + public byte di_size ; + public byte di_type ; + public ushort di_addr ; + public byte do_size ; + public byte do_type ; + public ushort do_addr ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=7)] + public byte[] reserve = new byte[7]; + } + + /* pmc_prfrdslvstat:read status for slave function */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBSLVST + { + public byte cnfg_stat ; + public byte prm_stat ; + public sbyte wdg_stat ; + public byte live_stat ; + public short ident_no ; + } + + /* pmc_prfrdslvid:Reads slave index data of master function */ + /* pmc_prfwrslvid:Writes slave index data of master function */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSLVID + { + public short dis_enb ; + public short slave_no ; + public short nsl ; + public byte dgn_size ; + public char dgn_type ; + public ushort dgn_addr ; + } + + /* pmc_prfrdslvprm2:Reads slave parameter of master function(2) */ + /* pmc_prfwrslvprm2:Writes slave parameter of master function(2) */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBSLVPRM3 + { + public ushort ident_no ; + public byte slv_flag ; + public byte slv_type ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=12)] + public char[] reserve1 = new char[12]; + public byte slv_stat ; + public byte wd_fact1 ; + public byte wd_fact2 ; + public byte min_tsdr ; + public char reserve2 ; + public byte grp_ident ; + public short user_plen ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=206)] + public char[] user_pdata = new char[206]; + public short slv_ulen ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=30)] + public char[] slv_udata = new char[30]; + } + + /* pmc_prfrddido:Reads DI/DO parameter of master function */ + /* pmc_prfwrdido:Writes DI/DO parameter of master function */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBDIDO + { + public short slave_no ; + public short slot_no ; + public byte di_size ; + public char di_type ; + public ushort di_addr ; + public byte do_size ; + public char do_type ; + public ushort do_addr ; + public short shift; + public byte module_dlen ; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=128)] + public char[] module_data = new char[128]; + } + + /* pmc_prfrdindiadr:Reads indication address of master function */ + /* pmc_prfwrindiadr:Writes indication address of master function */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBINDEADR + { + public byte dummy ; + public char indi_type ; + public ushort indi_addr ; + } + +/*-----------------------------------------------*/ +/* DS : Data server & Ethernet board function */ +/*-----------------------------------------------*/ + + /* etb_rdparam : read@the parameter of the Ethernet board */ + /* etb_wrparam : write the parameter of the Ethernet board */ + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class TCPPRM + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string OwnIPAddress = new string(' ',16); + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string SubNetMask = new string(' ',16); + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string RouterIPAddress = new string(' ',16); + } + + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class HOSTPRM + { + public short DataServerPort ; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string DataServerIPAddress = new string(' ',16); + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] + public string DataServerUserName = new string(' ',32); + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] + public string DataServerPassword = new string(' ',32); + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=128)] + public string DataServerLoginDirectory = new string(' ',128); + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class FTPPRM + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] + public string FTPServerUserName = new string(' ',32); + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=32)] + public string FTPServerPassword = new string(' ',32); + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=128)] + public string FTPServerLoginDirectory = new string(' ',128); + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ETBPRM + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=13)] + public string OwnMACAddress = new string(' ',128); + public short MaximumChannel ; + public short HDDExistence; + public short NumberOfScreens; + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBETP + { + public short Dummy_ParameterType ; + + [MarshalAs(UnmanagedType.ByValArray,SizeConst=210)] + public byte[] prm = new byte[210]; + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBETP_TCP + { + public short ParameterType ; + public TCPPRM tcp ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBETP_HOST + { + public short ParameterType ; + public HOSTPRM host ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBETP_FTP + { + public short ParameterType ; + public FTPPRM ftp ; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class IODBETP_ETB + { + public short ParameterType ; + public ETBPRM etb ; + } + + /* etb_rderrmsg : read the error message of the Ethernet board */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBETMSG + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=33)] + public string title = new string(' ',33); + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=390)] + public string message = new string(' ',390); + } + + /* ds_rdhddinfo : read information of the Data Server's HDD */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBHDDINF + { + public int file_num; + public int remainder_l; + public int remainder_h; + [MarshalAs(UnmanagedType.ByValArray,SizeConst=32)] + public char[] current_dir = new char[32]; + } + + /* ds_rdhdddir : read the file list of the Data Server's HDD */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBHDDDIR_data + { + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=64)] + public string file_name = new string(' ',64); + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=80)] + public string comment = new string(' ',80); + public short attribute; + public short reserved; + public int size; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] + public string date = new string(' ',16); + } + + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBHDDDIR + { + public ODBHDDDIR_data data1 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data2 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data3 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data4 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data5 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data6 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data7 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data8 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data9 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data10 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data11 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data12 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data13 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data14 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data15 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data16 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data17 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data18 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data19 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data20 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data21 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data22 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data23 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data24 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data25 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data26 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data27 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data28 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data29 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data30 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data31 =new ODBHDDDIR_data(); + public ODBHDDDIR_data data32 =new ODBHDDDIR_data(); + } + + /* ds_rdhostdir : read the file list of the host */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBHOSTDIR_data + { + [MarshalAs(UnmanagedType.ByValArray,SizeConst=128)] + public char[] host_file = new char[128]; + } + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class ODBHOSTDIR + { + public ODBHOSTDIR_data data1 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data2 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data3 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data4 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data5 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data6 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data7 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data8 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data9 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data10 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data11 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data12 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data13 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data14 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data15 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data16 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data17 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data18 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data19 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data20 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data21 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data22 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data23 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data24 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data25 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data26 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data27 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data28 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data29 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data30 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data31 =new ODBHOSTDIR_data(); + public ODBHOSTDIR_data data32 =new ODBHOSTDIR_data(); + } + + /* ds_rdmntinfo : read maintenance information */ + [StructLayout(LayoutKind.Sequential,Pack=4)] + public class DSMNTINFO + { + public ushort empty_cnt; + public uint total_size; + public ushort ReadPtr; + public ushort WritePtr; + } ; + +/*--------------------------*/ +/* HSSB multiple connection */ +/*--------------------------*/ + + /* cnc_rdnodeinfo:read node informations */ + [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Ansi,Pack=4)] + public class ODBNODE + { + public int node_no; + public int io_base; + public int status; + public int cnc_type; + [MarshalAs(UnmanagedType.ByValTStr,SizeConst=20)] + public string node_name= new string(' ', 20) ; + } + + // Personalizzate + + /* read alarm message(2) */ + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 4)] + public struct ODBALMMSG_data_custom + { + public int alm_no; + public short type; + public short axis; + public short dummy; + public short msg_len; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] + public string alm_msg; + } + + /* read alarm message(2) */ + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 4)] + public struct ODBALMMSG2_data_custom + { + public int alm_no; + public short type; + public short axis; + public short dummy; + public short msg_len; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 64)] + public string alm_msg; + } + + /* cnc_rdopmsg3:read operator's message */ + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 4)] + public struct OPMSG3_data_custom + { + public short datano; /* operator's message number */ + public short type; /* operator's message type */ + public short char_num; /* message string length */ + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] + public string data; /* operator's message string */ + } /* In case that the data length is 256 */ + + /*-------------------------------------*/ + /* CNC: Control axis / spindle related */ + /*-------------------------------------*/ + + /* read actual axis feedrate(F) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_actf")] + public static extern short cnc_actf(ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBACT a); + + /* read absolute axis position */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_absolute")] + public static extern short cnc_absolute(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXIS c); + + /* read machine axis position */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_machine")] + public static extern short cnc_machine(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXIS c); + + /* read relative axis position */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_relative")] + public static extern short cnc_relative(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXIS c); + + /* read distance to go */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_distance")] + public static extern short cnc_distance(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXIS c); + + /* read skip position */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_skip")] + public static extern short cnc_skip(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXIS c); + + /* read servo delay value */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srvdelay")] + public static extern short cnc_srvdelay(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXIS c); + + /* read acceleration/deceleration delay value */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_accdecdly")] + public static extern short cnc_accdecdly(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXIS c); + + /* read all dynamic data */ +#if (!ONO8D) + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddynamic")] + public static extern short cnc_rddynamic(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDY_1 c); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddynamic")] + public static extern short cnc_rddynamic(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDY_2 c); +#else + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddynamico8")] + public static extern short cnc_rddynamic(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDY_1 c); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddynamico8")] + public static extern short cnc_rddynamic(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDY_2 c); +#endif + + /* read all dynamic data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddynamic2")] + public static extern short cnc_rddynamic2(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDY2_1 c); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddynamic2")] + public static extern short cnc_rddynamic2(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDY2_2 c); + + /* read actual spindle speed(S) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_acts")] + public static extern short cnc_acts(ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBACT a); + + /* read actual spindle speed(S) (All or spesified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_acts2")] + public static extern short cnc_acts2(ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBACT2 b); + + /* set origin / preset relative axis position */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrrelpos")] + public static extern short cnc_wrrelpos( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IDBWRR b ); + + /* preset work coordinate */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_prstwkcd")] + public static extern short cnc_prstwkcd( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IDBWRA b ); + + /* read manual overlapped motion value */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmovrlap")] + public static extern short cnc_rdmovrlap( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBOVL c ); + + /* cancel manual overlapped motion value */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_canmovrlap")] + public static extern short cnc_canmovrlap( ushort FlibHndl, short a ); + + /* read load information of serial spindle */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdspload")] + public static extern short cnc_rdspload( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSPN b ); + + /* read maximum r.p.m. ratio of serial spindle */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdspmaxrpm")] + public static extern short cnc_rdspmaxrpm( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSPN b ); + + /* read gear ratio of serial spindle */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdspgear")] + public static extern short cnc_rdspgear( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSPN b ); + + /* read absolute axis position 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_absolute2")] + public static extern short cnc_absolute2(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXIS c); + + /* read relative axis position 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_relative2")] + public static extern short cnc_relative2(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXIS c); + + /* set wire vertival position */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_setvrtclpos")] + public static extern short cnc_setvrtclpos( ushort FlibHndl, short a ); + + /* set wire threading position */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_setthrdngpos")] + public static extern short cnc_setthrdngpos( ushort FlibHndl ); + + /* read tool position */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdposition")] + public static extern short cnc_rdposition(ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPOS c); + + /* read current speed */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdspeed")] + public static extern short cnc_rdspeed( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSPEED b ); + + /* read servo load meter */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsvmeter")] + public static extern short cnc_rdsvmeter( ushort FlibHndl, + ref short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSVLOAD b ); + + /* read spindle load meter */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdspmeter")] + public static extern short cnc_rdspmeter( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSPLOAD c ); + + /* read manual feed for 5-axis machining */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd5axmandt")] + public static extern short cnc_rd5axmandt( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODB5AXMAN a ); + + /* read amount of machine axes movement of manual feed for 5-axis machining */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd5axovrlap")] + public static extern short cnc_rd5axovrlap( ushort FlibHndl, short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXIS c ); + + /* read handle interruption */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdhndintrpt")] + public static extern short cnc_rdhndintrpt( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBHND c ); + + /* clear pulse values of manual feed for 5-axis machining */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_clr5axpls")] + public static extern short cnc_clr5axpls( ushort FlibHndl, short a); + + /* read constant surface speed */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdspcss")] + public static extern short cnc_rdspcss( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBCSS a ); + + /* read execution program pointer */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdexecpt")] + public static extern short cnc_rdexecpt( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] PRGPNT a , [Out,MarshalAs(UnmanagedType.LPStruct)] PRGPNT b ); + + /* read various axis data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdaxisdata")] + public static extern short cnc_rdaxisdata( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b, short c, ref short d, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXDT e ); + +/*----------------------*/ +/* CNC: Program related */ +/*----------------------*/ + + /* start downloading NC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dwnstart")] + public static extern short cnc_dwnstart( ushort FlibHndl ); + + /* download NC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_download")] + public static extern short cnc_download( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, short b ); + + /* download NC program(conditional) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_cdownload")] + public static extern short cnc_cdownload( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, short b ); + + /* end of downloading NC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dwnend")] + public static extern short cnc_dwnend( ushort FlibHndl ); + + /* end of downloading NC program 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dwnend2")] + public static extern short cnc_dwnend2( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* start downloading NC program 3 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dwnstart3")] + public static extern short cnc_dwnstart3( ushort FlibHndl, short a ); + + /* start downloading NC program 3 special */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dwnstart3_f")] + public static extern short cnc_dwnstart3_f( ushort FlibHndl, + short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b, [In,MarshalAs(UnmanagedType.AsAny)] Object c ); + + /* download NC program 3 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_download3")] + public static extern short cnc_download3( ushort FlibHndl, ref int a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* end of downloading NC program 3 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dwnend3")] + public static extern short cnc_dwnend3( ushort FlibHndl ); + + /* start downloading NC program 4 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dwnstart4")] + public static extern short cnc_dwnstart4( ushort FlibHndl, short a , [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* download NC program 4 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_download4")] + public static extern short cnc_download4( ushort FlibHndl, ref int a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* end of downloading NC program 4 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dwnend4")] + public static extern short cnc_dwnend4( ushort FlibHndl ); + + /* start verification of NC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_vrfstart")] + public static extern short cnc_vrfstart( ushort FlibHndl ); + + /* verify NC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_verify")] + public static extern short cnc_verify( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, short b ); + + /* verify NC program(conditional) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_cverify")] + public static extern short cnc_cverify( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, short b ); + + /* end of verification */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_vrfend")] + public static extern short cnc_vrfend( ushort FlibHndl ); + + /* start verification of NC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_vrfstart4")] + public static extern short cnc_vrfstart4( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* verify NC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_verify4")] + public static extern short cnc_verify4( ushort FlibHndl, ref int a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* end of verification */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_vrfend4")] + public static extern short cnc_vrfend4( ushort FlibHndl ); + + /* start downloading DNC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dncstart")] + public static extern short cnc_dncstart( ushort FlibHndl ); + + /* download DNC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dnc")] + public static extern short cnc_dnc( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, ushort b ); + + /* download DNC program(conditional) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_cdnc")] + public static extern short cnc_cdnc( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, ushort b ); + + /* end of downloading DNC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dncend")] + public static extern short cnc_dncend( ushort FlibHndl ); + + /* start downloading DNC program 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dncstart2")] + public static extern short cnc_dncstart2( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* download DNC program 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dnc2")] + public static extern short cnc_dnc2( ushort FlibHndl, ref int a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* end of downloading DNC program 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dncend2")] + public static extern short cnc_dncend2( ushort FlibHndl, short a ); + + /* read the diagnosis data of DNC operation */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddncdgndt")] + public static extern short cnc_rddncdgndt( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDNCDGN a ); + + /* start uploading NC program */ +#if (!ONO8D) + [DllImport("FWLIB32.dll", EntryPoint="cnc_upstart")] + public static extern short cnc_upstart( ushort FlibHndl, short a ); +#else + [DllImport("FWLIB32.dll", EntryPoint="cnc_upstarto8")] + public static extern short cnc_upstart( ushort FlibHndl, int a ); +#endif + + /* upload NC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_upload")] + public static extern short cnc_upload( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBUP a, ref ushort b ); + + /* upload NC program(conditional) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_cupload")] + public static extern short cnc_cupload( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBUP a, ref ushort b ); + + /* end of uploading NC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_upend")] + public static extern short cnc_upend( ushort FlibHndl ); + + /* start uploading NC program 3 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_upstart3")] + public static extern short cnc_upstart3( ushort FlibHndl, short a, int b, int c ); + + /* start uploading NC program special 3 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_upstart3_f")] + public static extern short cnc_upstart3_f( ushort FlibHndl, + short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b, [In,MarshalAs(UnmanagedType.AsAny)] Object c ); + + /* upload NC program 3 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_upload3")] + public static extern short cnc_upload3( ushort FlibHndl, ref int a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* end of uploading NC program 3 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_upend3")] + public static extern short cnc_upend3( ushort FlibHndl ); + + /* start uploading NC program 4 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_upstart4")] + public static extern short cnc_upstart4( ushort FlibHndl , short a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* upload NC program 4 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_upload4")] + public static extern short cnc_upload4( ushort FlibHndl , ref int a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* end of uploading NC program 4 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_upend4")] + public static extern short cnc_upend4( ushort FlibHndl ); + + /* read buffer status for downloading/verification NC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_buff")] + public static extern short cnc_buff( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBBUF a ); + + /* search specified program */ +#if (!ONO8D) + [DllImport("FWLIB32.dll", EntryPoint="cnc_search")] + public static extern short cnc_search( ushort FlibHndl, short a ); +#else + [DllImport("FWLIB32.dll", EntryPoint="cnc_searcho8")] + public static extern short cnc_search( ushort FlibHndl, int a ); +#endif + + /* search specified program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_search2")] + public static extern short cnc_search2( ushort FlibHndl, int a ); + + /* delete all programs */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_delall")] + public static extern short cnc_delall( ushort FlibHndl ); + + /* delete specified program */ +#if (!ONO8D) + [DllImport("FWLIB32.dll", EntryPoint="cnc_delete")] + public static extern short cnc_delete( ushort FlibHndl, short a ); +#else + [DllImport("FWLIB32.dll", EntryPoint="cnc_deleteo8")] + public static extern short cnc_delete( ushort FlibHndl, int a ); +#endif + + /* delete program (area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_delrange")] + public static extern short cnc_delrange( ushort FlibHndl, int a , int b ); + +/* read program directory */ +#if (!ONO8D) + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdprogdir")] + public static extern short cnc_rdprogdir( ushort FlibHndl, + short a, short b, short c, ushort d, [Out,MarshalAs(UnmanagedType.LPStruct)] PRGDIR e ); +#else + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdprogdiro8")] + public static extern short cnc_rdprogdir( ushort FlibHndl, + short a, short b, short c, ushort d, [Out,MarshalAs(UnmanagedType.LPStruct)] PRGDIR e ); +#endif + + /* read program information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdproginfo")] + public static extern short cnc_rdproginfo( ushort FlibHndl, short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBNC_1 c); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdproginfo")] + public static extern short cnc_rdproginfo( ushort FlibHndl, short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBNC_2 c); + + /* read program number under execution */ +#if (!ONO8D) + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdprgnum")] + public static extern short cnc_rdprgnum( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPRO a ); +#else + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdprgnumo8")] + public static extern short cnc_rdprgnum( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPRO a ); +#endif + + /* read program name under execution */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_exeprgname")] + public static extern short cnc_exeprgname( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBEXEPRG a ); + + /* read sequence number under execution */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdseqnum")] + public static extern short cnc_rdseqnum( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSEQ a ); + + /* search specified sequence number */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_seqsrch")] + public static extern short cnc_seqsrch( ushort FlibHndl, int a ); + + /* search specified sequence number (2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_seqsrch2")] + public static extern short cnc_seqsrch2( ushort FlibHndl, int a ); + + /* rewind cursor of NC program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rewind")] + public static extern short cnc_rewind( ushort FlibHndl ); + + /* read block counter */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdblkcount")] + public static extern short cnc_rdblkcount( ushort FlibHndl, out int a ); + + /* read program under execution */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdexecprog")] + public static extern short cnc_rdexecprog( ushort FlibHndl, ref ushort a, out short b, [Out,MarshalAs(UnmanagedType.AsAny)] Object c ); + + /* read program for MDI operation */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmdiprog")] + public static extern short cnc_rdmdiprog( ushort FlibHndl, ref short a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* write program for MDI operation */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrmdiprog")] + public static extern short cnc_wrmdiprog( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + +/* read execution pointer for MDI operation */ +#if (!ONO8D) + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmdipntr")] + public static extern short cnc_rdmdipntr( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBMDIP a ); +#else + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmdipntro8")] + public static extern short cnc_rdmdipntr( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBMDIP a ); +#endif + + /* write execution pointer for MDI operation */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrmdipntr")] + public static extern short cnc_wrmdipntr( ushort FlibHndl, int a ); + + /* register new program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_newprog")] + public static extern short cnc_newprog( ushort FlibHndl, int a ); + + /* copy program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_copyprog")] + public static extern short cnc_copyprog( ushort FlibHndl, int a, int b ); + + /* rename program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_renameprog")] + public static extern short cnc_renameprog( ushort FlibHndl, int a, int b ); + + /* condense program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_condense")] + public static extern short cnc_condense( ushort FlibHndl, short a, int b ); + + /* merge program */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_mergeprog")] + public static extern short cnc_mergeprog( ushort FlibHndl, short a, int b, uint c, int d ); + + /* read current program and its pointer */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdactpt")] + public static extern short cnc_rdactpt( ushort FlibHndl, out int a, out int b ); + + /* read current program and its pointer and UV macro pointer */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rduvactpt")] + public static extern short cnc_rduvactpt( ushort FlibHndl, out int a, out int b, out int c ); + + /* set current program and its pointer */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wractpt")] + public static extern short cnc_wractpt( ushort FlibHndl, int a, short b, ref int c ); + + /* line edit (read program) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdprogline")] + public static extern short cnc_rdprogline( ushort FlibHndl, + int a, uint b, [Out,MarshalAs(UnmanagedType.AsAny)] Object c, ref uint d, ref uint e ); + + /* line edit (read program) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdprogline2")] + public static extern short cnc_rdprogline2( ushort FlibHndl, + int a, uint b, [Out,MarshalAs(UnmanagedType.AsAny)] Object c, ref uint d, ref uint e ); + + /* line edit (write program) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrprogline")] + public static extern short cnc_wrprogline( ushort FlibHndl, int a, uint b, [In,MarshalAs(UnmanagedType.AsAny)] Object c, uint d ); + + /* line edit (delete line in program) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_delprogline")] + public static extern short cnc_delprogline( ushort FlibHndl, int a, uint b, uint c ); + + /* line edit (search string) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_searchword")] + public static extern short cnc_searchword( ushort FlibHndl, + int a, uint b, short c, short d, uint e, [In,MarshalAs(UnmanagedType.AsAny)] Object f ); + + /* line edit (search string) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_searchresult")] + public static extern short cnc_searchresult( ushort FlibHndl, out uint a ); + + /* line edit (read program by file name) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpdf_line")] + public static extern short cnc_rdpdf_line( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.AsAny)] Object a, uint b, [Out,MarshalAs(UnmanagedType.AsAny)] Object c, ref uint d, ref uint e ); + + /* program lock */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_setpglock")] + public static extern short cnc_setpglock( ushort FlibHndl, int a ); + + /* program unlock */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_resetpglock")] + public static extern short cnc_resetpglock( ushort FlibHndl, int a ); + + /* read the status of the program lock */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpglockstat")] + public static extern short cnc_rdpglockstat( ushort FlibHndl, out int a, out int b ); + + /* create file or directory */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_pdf_add")] + public static extern short cnc_pdf_add( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* condense program file */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_pdf_cond")] + public static extern short cnc_pdf_cond( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* change attribute of program file and directory */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrpdf_attr")] + public static extern short cnc_wrpdf_attr( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, [Out,MarshalAs(UnmanagedType.LPStruct)] IDBPDFTDIR b ); + + /* copy program file */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_pdf_copy")] + public static extern short cnc_pdf_copy( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a , [In,MarshalAs(UnmanagedType.AsAny)] Object b); + + /* delete file or directory */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_pdf_del")] + public static extern short cnc_pdf_del( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* line edit (write program by file name) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrpdf_line")] + public static extern short cnc_wrpdf_line( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a , uint b, [In,MarshalAs(UnmanagedType.AsAny)] Object c , uint d ); + + /* line edit (delete line by file name) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_pdf_delline")] + public static extern short cnc_pdf_delline( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a , uint b, uint c ); + + /* move program file */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_pdf_move")] + public static extern short cnc_pdf_move( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a , [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* read current program and its pointer */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_pdf_rdactpt")] + public static extern short cnc_pdf_rdactpt( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a , out int b ); + + /* read selected file name */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_pdf_rdmain")] + public static extern short cnc_pdf_rdmain( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* rename file or directory */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_pdf_rename")] + public static extern short cnc_pdf_rename( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a , [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* line edit (search string) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_pdf_searchword")] + public static extern short cnc_pdf_searchword( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a , uint b , uint c , uint d , uint e , [In,MarshalAs(UnmanagedType.AsAny)] Object f ); + + /* line edit (search string) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_pdf_searchresult")] + public static extern short cnc_pdf_searchresult( ushort FlibHndl, out uint a ); + + /* select program file */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_pdf_slctmain")] + public static extern short cnc_pdf_slctmain( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* set current program and its pointer */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_pdf_wractpt")] + public static extern short cnc_pdf_wractpt( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a , short b , ref int c ); + + /* read program drive information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpdf_inf")] + public static extern short cnc_rdpdf_inf( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a , short b , [Out,MarshalAs(UnmanagedType.AsAny)] Object c ); + + /* read program drive directory */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpdf_drive")] + public static extern short cnc_rdpdf_drive( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* read current directory */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpdf_curdir")] + public static extern short cnc_rdpdf_curdir( ushort FlibHndl, short a , [Out,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* set current directory */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrpdf_curdir")] + public static extern short cnc_wrpdf_curdir( ushort FlibHndl, short a , [Out,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* read directory (sub directories) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpdf_subdir")] + public static extern short cnc_rdpdf_subdir( ushort FlibHndl, + ref short a , [In,MarshalAs(UnmanagedType.LPStruct)] IDBPDFSDIR b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPDFSDIR c ); + + /* read directory (all files) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpdf_alldir")] + public static extern short cnc_rdpdf_alldir( ushort FlibHndl, ref short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b , [Out,MarshalAs(UnmanagedType.AsAny)] Object c ); + + /* read file count in directory */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpdf_subdirn")] + public static extern short cnc_rdpdf_subdirn( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPDFNFIL b ); + +/*---------------------------*/ +/* CNC: NC file data related */ +/*---------------------------*/ + + /* read tool offset value */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtofs")] + public static extern short cnc_rdtofs(ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTOFS d); + + /* write tool offset value */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrtofs")] + public static extern short cnc_wrtofs( ushort FlibHndl, short a, short b, short c, int d ); + + /* read tool offset value(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtofsr")] + public static extern short cnc_rdtofsr( ushort FlibHndl, + short a, short b, short c, short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTO_1_1 e); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtofsr")] + public static extern short cnc_rdtofsr( ushort FlibHndl, + short a, short b, short c, short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTO_1_2 e); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtofsr")] + public static extern short cnc_rdtofsr( ushort FlibHndl, + short a, short b, short c, short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTO_1_3 e); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtofsr")] + public static extern short cnc_rdtofsr( ushort FlibHndl, + short a, short b, short c, short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTO_2 e); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtofsr")] + public static extern short cnc_rdtofsr( ushort FlibHndl, + short a, short b, short c, short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTO_3 e); + + /* write tool offset value(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrtofsr")] + public static extern short cnc_wrtofsr( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTO_1_1 b ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrtofsr")] + public static extern short cnc_wrtofsr( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTO_1_2 b ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrtofsr")] + public static extern short cnc_wrtofsr( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTO_1_3 b ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrtofsr")] + public static extern short cnc_wrtofsr( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTO_2 b ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrtofsr")] + public static extern short cnc_wrtofsr( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTO_3 b ); + + /* read work zero offset value */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdzofs")] + public static extern short cnc_rdzofs( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBZOFS d ); + + /* write work zero offset value */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrzofs")] + public static extern short cnc_wrzofs( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBZOFS b ); + + /* read work zero offset value(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdzofsr")] + public static extern short cnc_rdzofsr( ushort FlibHndl, + short a, short b, short c, short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBZOR e ); + + /* write work zero offset value(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrzofsr")] + public static extern short cnc_wrzofsr( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBZOR b ); + + /* read mesured point value */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmsptype")] + public static extern short cnc_rdmsptype( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBMSTP d); + + /* write mesured point value */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrmsptype")] + public static extern short cnc_wrmsptype( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBMSTP d); + + /* read parameter */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparam")] + public static extern short cnc_rdparam(ushort FlibHndl, + short number, short axis, short length, [Out, MarshalAs(UnmanagedType.LPStruct)] IODBPSD param); +#if LEAVE_OLD_STYLE + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparam")] + public static extern short cnc_rdparam(ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_1 d); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparam")] + public static extern short cnc_rdparam(ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_2 d); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparam")] + public static extern short cnc_rdparam(ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_3 d); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparam")] + public static extern short cnc_rdparam(ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_4 d); +#endif + /* write parameter */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrparam")] + public static extern short cnc_wrparam(ushort FlibHndl, short length, [In, MarshalAs(UnmanagedType.LPStruct)] IODBPSD param); +#if LEAVE_OLD_STYLE + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrparam")] + public static extern short cnc_wrparam( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_1 b ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrparam")] + public static extern short cnc_wrparam( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_2 b ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrparam")] + public static extern short cnc_wrparam( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_3 b ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrparam")] + public static extern short cnc_wrparam( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_4 b ); +#endif + /* read parameter(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparar")] + public static extern short cnc_rdparar( ushort FlibHndl, + ref short a, short b, ref short c, ref short d, [Out,MarshalAs(UnmanagedType.AsAny)] Object e ); +// [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparar")] +// public static extern short cnc_rdparar( ushort FlibHndl, +// ref short a, short b, ref short c, ref short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_A e ); +// [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparar")] +// public static extern short cnc_rdparar( ushort FlibHndl, +// ref short a, short b, ref short c, ref short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_B e ); +// [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparar")] +// public static extern short cnc_rdparar( ushort FlibHndl, +// ref short a, short b, ref short c, ref short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_C e ); +// [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparar")] +// public static extern short cnc_rdparar( ushort FlibHndl, +// ref short a, short b, ref short c, ref short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_D e ); + + /* write parameter(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrparas")] + public static extern short cnc_wrparas( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* read setting data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdset")] + public static extern short cnc_rdset( ushort FlibHndl, + short number, short axis, short length, [Out, MarshalAs(UnmanagedType.LPStruct)] IODBPSD set); +#if LEAVE_OLD_STYLE + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdset")] + public static extern short cnc_rdset( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_1 d ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdset")] + public static extern short cnc_rdset( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_2 d ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdset")] + public static extern short cnc_rdset( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_3 d ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdset")] + public static extern short cnc_rdset( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_4 d ); +#endif + /* write setting data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrset")] + public static extern short cnc_wrset(ushort FlibHndl, short length, [In, MarshalAs(UnmanagedType.LPStruct)] IODBPSD set); +#if LEAVE_OLD_STYLE + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrset")] + public static extern short cnc_wrset( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_1 b ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrset")] + public static extern short cnc_wrset( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_2 b ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrset")] + public static extern short cnc_wrset( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_3 b ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrset")] + public static extern short cnc_wrset( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_4 b ); +#endif + /* read setting data(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsetr")] + public static extern short cnc_rdsetr( ushort FlibHndl, + ref short a, short b, ref short c, ref short d, [Out,MarshalAs(UnmanagedType.AsAny)] Object e ); + + /* write setting data(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrsets")] + public static extern short cnc_wrsets( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* read parameters */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparam_ext")] + public static extern short cnc_rdparam_ext( ushort FlibHndl, + [In,Out,MarshalAs(UnmanagedType.LPStruct)] IODBPRMNO a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPRM c ); + + /* read parameter */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparam3")] + public static extern short cnc_rdparam3(ushort FlibHndl, + short number, short axis, short length, short absolute, [Out, MarshalAs(UnmanagedType.LPStruct)] IODBPSD param); +#if LEAVE_OLD_STYLE + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparam3")] + public static extern short cnc_rdparam3(ushort FlibHndl, + short a, short b, short c, short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_1 e); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparam3")] + public static extern short cnc_rdparam3(ushort FlibHndl, + short a, short b, short c, short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_2 e); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparam3")] + public static extern short cnc_rdparam3(ushort FlibHndl, + short a, short b, short c, short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_3 e); + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparam3")] + public static extern short cnc_rdparam3(ushort FlibHndl, + short a, short b, short c, short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSD_4 e); +#endif + /* async parameter write start */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_start_async_wrparam")] + public static extern short cnc_start_async_wrparam( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPRM a ); + + /* async parameter write end */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_end_async_wrparam")] + public static extern short cnc_end_async_wrparam( ushort FlibHndl, out short a ); + + /* read cause of busy for async parameter write */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_async_busy_state")] + public static extern short cnc_async_busy_state( ushort FlibHndl, out short a ); + + /* read diagnosis data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddiag_ext")] + public static extern short cnc_rddiag_ext( ushort FlibHndl, + [In,Out,MarshalAs(UnmanagedType.LPStruct)] IODBPRMNO a, short b, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPRM c ); + + /* read pitch error compensation data(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpitchr")] + public static extern short cnc_rdpitchr( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPI d ); + + /* write pitch error compensation data(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrpitchr")] + public static extern short cnc_wrpitchr( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPI b ); + + /* read custom macro variable */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmacro")] + public static extern short cnc_rdmacro( ushort FlibHndl, short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBM c ); + + /* write custom macro variable */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrmacro")] + public static extern short cnc_wrmacro( ushort FlibHndl, short a, short b, int c, short d ); + + /* read custom macro variables(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmacror")] + public static extern short cnc_rdmacror( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBMR d ); + + /* write custom macro variables(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrmacror")] + public static extern short cnc_wrmacror( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBMR b ); + + /* read custom macro variables(IEEE double version) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmacror2")] + public static extern short cnc_rdmacror2( ushort FlibHndl, int a, ref int b, [Out,MarshalAs(UnmanagedType.AsAny)] Object c ); + + /* write custom macro variables(IEEE double version) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrmacror2")] + public static extern short cnc_wrmacror2( ushort FlibHndl, int a, ref int b, [In,MarshalAs(UnmanagedType.AsAny)] Object c ); + + /* read P code macro variable */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpmacro")] + public static extern short cnc_rdpmacro( ushort FlibHndl, int a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPM b ); + + /* write P code macro variable */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrpmacro")] + public static extern short cnc_wrpmacro( ushort FlibHndl, int a, int b, short c ); + + /* read P code macro variables(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpmacror")] + public static extern short cnc_rdpmacror( ushort FlibHndl, + int a, int b, ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPR d ); + + /* write P code macro variables(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrpmacror")] + public static extern short cnc_wrpmacror( ushort FlibHndl, ushort a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPR b ); + + /* read P code macro variables(IEEE double version) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpmacror2")] + public static extern short cnc_rdpmacror2( ushort FlibHndl, uint a, ref uint b, ushort c, [Out,MarshalAs(UnmanagedType.AsAny)] Object d ); + + /* write P code macro variables(IEEE double version) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrpmacror2")] + public static extern short cnc_wrpmacror2( ushort FlibHndl, uint a, ref uint b, ushort c, [In,MarshalAs(UnmanagedType.AsAny)] Object d ); + + /* read tool offset information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtofsinfo")] + public static extern short cnc_rdtofsinfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLINF a ); + + /* read tool offset information(2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtofsinfo2")] + public static extern short cnc_rdtofsinfo2( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLINF2 a ); + + /* read work zero offset information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdzofsinfo")] + public static extern short cnc_rdzofsinfo( ushort FlibHndl, out short a ); + + /* read pitch error compensation data information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpitchinfo")] + public static extern short cnc_rdpitchinfo( ushort FlibHndl, out short a ); + + /* read custom macro variable information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmacroinfo")] + public static extern short cnc_rdmacroinfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBMVINF a ); + + /* read P code macro variable information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpmacroinfo")] + public static extern short cnc_rdpmacroinfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPMINF a ); + + /* read validity of tool offset */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_tofs_rnge")] + public static extern short cnc_tofs_rnge( ushort FlibHndl, short a , short b , [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDATRNG c ); + + /* read validity of work zero offset */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_zofs_rnge")] + public static extern short cnc_zofs_rnge( ushort FlibHndl, short a , short b , [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDATRNG c ); + + /* read validity of work zero offset */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wksft_rnge")] + public static extern short cnc_wksft_rnge( ushort FlibHndl, short a , [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDATRNG b ); + + /* read the information for function cnc_rdhsparam() */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdhsprminfo")] + public static extern short cnc_rdhsprminfo( ushort FlibHndl, int a , [Out,MarshalAs(UnmanagedType.LPStruct)] HSPINFO_data b ); + + /* read parameters at the high speed */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdhsparam")] + public static extern short cnc_rdhsparam( ushort FlibHndl, int a , [In,MarshalAs(UnmanagedType.LPStruct)] HSPINFO b , [Out,MarshalAs(UnmanagedType.LPStruct)] HSPDATA_1 c ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdhsparam")] + public static extern short cnc_rdhsparam( ushort FlibHndl, int a , [In,MarshalAs(UnmanagedType.LPStruct)] HSPINFO b , [Out,MarshalAs(UnmanagedType.LPStruct)] HSPDATA_2 c ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdhsparam")] + public static extern short cnc_rdhsparam( ushort FlibHndl, int a , [In,MarshalAs(UnmanagedType.LPStruct)] HSPINFO b , [Out,MarshalAs(UnmanagedType.LPStruct)] HSPDATA_3 c ); + +/*----------------------------------------*/ +/* CNC: Tool life management data related */ +/*----------------------------------------*/ + + /* read tool life management data(tool group number) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdgrpid")] + public static extern short cnc_rdgrpid( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLIFE1 b ); + + /* read tool life management data(number of tool groups) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdngrp")] + public static extern short cnc_rdngrp( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLIFE2 a ); + + /* read tool life management data(number of tools) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdntool")] + public static extern short cnc_rdntool( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLIFE3 b ); + + /* read tool life management data(tool life) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlife")] + public static extern short cnc_rdlife( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLIFE3 b ); + + /* read tool life management data(tool lift counter) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdcount")] + public static extern short cnc_rdcount( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLIFE3 b ); + + /* read tool life management data(tool length number-1) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd1length")] + public static extern short cnc_rd1length( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLIFE4 c ); + + /* read tool life management data(tool length number-2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd2length")] + public static extern short cnc_rd2length( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLIFE4 c ); + + /* read tool life management data(cutter compensation no.-1) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd1radius")] + public static extern short cnc_rd1radius( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLIFE4 c ); + + /* read tool life management data(cutter compensation no.-2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd2radius")] + public static extern short cnc_rd2radius( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLIFE4 c ); + + /* read tool life management data(tool information-1) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_t1info")] + public static extern short cnc_t1info( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLIFE4 c ); + + /* read tool life management data(tool information-2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_t2info")] + public static extern short cnc_t2info( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLIFE4 c ); + + /* read tool life management data(tool number) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_toolnum")] + public static extern short cnc_toolnum( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLIFE4 c ); + + /* read tool life management data(tool number, tool life, tool life counter)(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtoolrng")] + public static extern short cnc_rdtoolrng( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTR d ); + + /* read tool life management data(all data within group) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtoolgrp")] + public static extern short cnc_rdtoolgrp( ushort FlibHndl, short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTG c ); + + /* write tool life management data(tool life counter) (area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrcountr")] + public static extern short cnc_wrcountr( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IDBWRC b ); + + /* read tool life management data(used tool group number) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdusegrpid")] + public static extern short cnc_rdusegrpid( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBUSEGR a ); + + /* read tool life management data(max. number of tool groups) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmaxgrp")] + public static extern short cnc_rdmaxgrp( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBLFNO a ); + + /* read tool life management data(maximum number of tool within group) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmaxtool")] + public static extern short cnc_rdmaxtool( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBLFNO a ); + + /* read tool life management data(used tool no. within group) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdusetlno")] + public static extern short cnc_rdusetlno( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLUSE d ); + + /* read tool life management data(tool data1) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd1tlifedata")] + public static extern short cnc_rd1tlifedata( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTD c ); + + /* read tool life management data(tool data2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd2tlifedata")] + public static extern short cnc_rd2tlifedata( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTD c ); + + /* write tool life management data(tool data1) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wr1tlifedata")] + public static extern short cnc_wr1tlifedata( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTD a ); + + /* write tool life management data(tool data2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wr2tlifedata")] + public static extern short cnc_wr2tlifedata( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTD a ); + + /* read tool life management data(tool group information) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdgrpinfo")] + public static extern short cnc_rdgrpinfo( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTGI d ); + + /* read tool life management data(tool group information 2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdgrpinfo2")] + public static extern short cnc_rdgrpinfo2( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTGI2 d ); + + /* read tool life management data(tool group information 3) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdgrpinfo3")] + public static extern short cnc_rdgrpinfo3( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTGI3 d ); + + /* read tool life management data(tool group information 4) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdgrpinfo4")] + public static extern short cnc_rdgrpinfo4( ushort FlibHndl, + short a, short b, short c, out short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTGI4 e ); + + /* write tool life management data(tool group information) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrgrpinfo")] + public static extern short cnc_wrgrpinfo( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTGI b ); + + /* write tool life management data(tool group information 2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrgrpinfo2")] + public static extern short cnc_wrgrpinfo2( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTGI2 b ); + + /* write tool life management data(tool group information 3) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrgrpinfo3")] + public static extern short cnc_wrgrpinfo3( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTGI3 b ); + + /* delete tool life management data(tool group) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_deltlifegrp")] + public static extern short cnc_deltlifegrp( ushort FlibHndl, short a ); + + /* insert tool life management data(tool data) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_instlifedt")] + public static extern short cnc_instlifedt( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IDBITD a ); + + /* delete tool life management data(tool data) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_deltlifedt")] + public static extern short cnc_deltlifedt( ushort FlibHndl, short a, short b ); + + /* clear tool life management data(tool life counter, tool information)(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_clrcntinfo")] + public static extern short cnc_clrcntinfo( ushort FlibHndl, short a, short b ); + + /* read tool life management data(tool group number) 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdgrpid2")] + public static extern short cnc_rdgrpid2( ushort FlibHndl, int a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLIFE5 b ); + + /* read tool life management data(tool data1) 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd1tlifedat2")] + public static extern short cnc_rd1tlifedat2( ushort FlibHndl, + short a, int b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTD2 c ); + + /* write tool life management data(tool data1) 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wr1tlifedat2")] + public static extern short cnc_wr1tlifedat2( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTD2 a ); + + /* read tool life management data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtlinfo")] + public static extern short cnc_rdtlinfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBTLINFO a ); + + /* read tool life management data(used tool group number) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtlusegrp")] + public static extern short cnc_rdtlusegrp( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBUSEGRP a ); + + /* read tool life management data(tool group information 2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtlgrp")] + public static extern short cnc_rdtlgrp( ushort FlibHndl, + int a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTLGRP c ); + + /* read tool life management data (tool data1) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtltool")] + public static extern short cnc_rdtltool( ushort FlibHndl, + int a, int b, ref short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTLTOOL d ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdexchgtgrp")] + public static extern short cnc_rdexchgtgrp( ushort FlibHndl, + ref short b , [Out,MarshalAs(UnmanagedType.LPStruct)] ODBEXGP c ); + +/*-----------------------------------*/ +/* CNC: Tool management data related */ +/*-----------------------------------*/ + + /* new registration of tool management data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_regtool")] + public static extern short cnc_regtool( ushort FlibHndl, + short a, ref short b, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTLMNG c ); + + /* new registration of tool management data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_regtool_f2")] + public static extern short cnc_regtool_f2( ushort FlibHndl, + short a, ref short b, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTLMNG_F2 c ); + + /* deletion of tool management data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_deltool")] + public static extern short cnc_deltool( ushort FlibHndl, short a, ref short b ); + + /* lead of tool management data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtool")] + public static extern short cnc_rdtool( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTLMNG c ); + + /* lead of tool management data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtool_f2")] + public static extern short cnc_rdtool_f2( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTLMNG_F2 c ); + + /* write of tool management data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrtool")] + public static extern short cnc_wrtool( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTLMNG b ); + + /* write of individual data of tool management data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrtool2")] + public static extern short cnc_wrtool2( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IDBTLM b ); + + /* write tool management data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrtool_f2")] + public static extern short cnc_wrtool_f2( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTLMNG_F2_data b ); + + /* new registration of magazine management data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_regmagazine")] + public static extern short cnc_regmagazine( ushort FlibHndl, ref short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTLMAG b ); + + /* deletion of magazine management data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_delmagazine")] + public static extern short cnc_delmagazine( ushort FlibHndl, ref short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTLMAG2 b ); + + /* lead of magazine management data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmagazine")] + public static extern short cnc_rdmagazine( ushort FlibHndl, ref short a, [In,Out,MarshalAs(UnmanagedType.LPStruct)] IODBTLMAG b ); + + /* Individual write of magazine management data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrmagazine")] + public static extern short cnc_wrmagazine( ushort FlibHndl, short a, short b, short c ); + + +/*-------------------------------------*/ +/* CNC: Operation history data related */ +/*-------------------------------------*/ + + /* stop logging operation history data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_stopophis")] + public static extern short cnc_stopophis( ushort FlibHndl ); + + /* restart logging operation history data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_startophis")] + public static extern short cnc_startophis( ushort FlibHndl ); + + /* read number of operation history data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophisno")] + public static extern short cnc_rdophisno( ushort FlibHndl, out ushort a ); + + /* read operation history data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophistry")] + public static extern short cnc_rdophistry( ushort FlibHndl, + ushort a, ushort b, ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBHIS d ); + + /* read operation history data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophistry2")] + public static extern short cnc_rdophistry2( ushort FlibHndl, + ushort a, ref ushort b, ref ushort c, [Out,MarshalAs(UnmanagedType.AsAny)] Object d ); + + /* read operation history data F30i*/ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophistry4")] + public static extern short cnc_rdophistry4( ushort FlibHndl, + ushort a, ref ushort b, ref ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOPHIS4_1 d ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophistry4")] + public static extern short cnc_rdophistry4( ushort FlibHndl, + ushort a, ref ushort b, ref ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOPHIS4_2 d ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophistry4")] + public static extern short cnc_rdophistry4( ushort FlibHndl, + ushort a, ref ushort b, ref ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOPHIS4_3 d ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophistry4")] + public static extern short cnc_rdophistry4( ushort FlibHndl, + ushort a, ref ushort b, ref ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOPHIS4_4 d ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophistry4")] + public static extern short cnc_rdophistry4( ushort FlibHndl, + ushort a, ref ushort b, ref ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOPHIS4_5 d ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophistry4")] + public static extern short cnc_rdophistry4( ushort FlibHndl, + ushort a, ref ushort b, ref ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOPHIS4_6 d ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophistry4")] + public static extern short cnc_rdophistry4( ushort FlibHndl, + ushort a, ref ushort b, ref ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOPHIS4_7 d ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophistry4")] + public static extern short cnc_rdophistry4( ushort FlibHndl, + ushort a, ref ushort b, ref ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOPHIS4_8 d ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophistry4")] + public static extern short cnc_rdophistry4( ushort FlibHndl, + ushort a, ref ushort b, ref ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOPHIS4_9 d ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophistry4")] + public static extern short cnc_rdophistry4( ushort FlibHndl, + ushort a, ref ushort b, ref ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOPHIS4_10 d ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdophistry4")] + public static extern short cnc_rdophistry4( ushort FlibHndl, + ushort a, ref ushort b, ref ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOPHIS4_11 d ); + + /* read number of alarm history data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdalmhisno")] + public static extern short cnc_rdalmhisno( ushort FlibHndl, out ushort a ); + + /* read alarm history data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdalmhistry")] + public static extern short cnc_rdalmhistry( ushort FlibHndl, + ushort a, ushort b, ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAHIS d ); + + /* read alarm history data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdalmhistry_w")] + public static extern short cnc_rdalmhistry_w( ushort FlibHndl, + ushort a, ushort b, ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAHIS d ); + + /* read alarm history data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdalmhistry2")] + public static extern short cnc_rdalmhistry2( ushort FlibHndl, + ushort a, ushort b, ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAHIS2 d ); + + /* read alarm history data F30i*/ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdalmhistry3")] + public static extern short cnc_rdalmhistry3( ushort FlibHndl, + ushort a, ushort b, ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAHIS3 d ); + + /* read alarm history data F30i*/ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdalmhistry5")] + public static extern short cnc_rdalmhistry5( ushort FlibHndl, + ushort a, ushort b, ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAHIS5 d ); + + /* clear operation history data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_clearophis")] + public static extern short cnc_clearophis( ushort FlibHndl, short a ); + + /* read signals related operation history */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdhissgnl")] + public static extern short cnc_rdhissgnl( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBSIG a ); + + /* read signals related operation history 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdhissgnl2")] + public static extern short cnc_rdhissgnl2( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBSIG2 a ); + + /* read signals related operation history 3 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdhissgnl3")] + public static extern short cnc_rdhissgnl3( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBSIG3 a ); + + /* write signals related operation history */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrhissgnl")] + public static extern short cnc_wrhissgnl( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBSIG a ); + + /* write signals related operation history 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrhissgnl2")] + public static extern short cnc_wrhissgnl2( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBSIG2 a ); + + /* write signals related operation history for F30i*/ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrhissgnl3")] + public static extern short cnc_wrhissgnl3( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBSIG3 a ); + + /* read number of operater message history data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdomhisno")] + public static extern short cnc_rdomhisno( ushort FlibHndl, out ushort a ); + +/*-------------*/ +/* CNC: Others */ +/*-------------*/ + + /* read CNC system information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sysinfo")] + public static extern short cnc_sysinfo(ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSYS a); + + /* read CNC status information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_statinfo")] + public static extern short cnc_statinfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBST a ); + + /* read alarm status */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_alarm")] + public static extern short cnc_alarm(ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBALM a); + + /* read alarm status */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_alarm2")] + public static extern short cnc_alarm2( ushort FlibHndl, out int a ); + + /* read alarm information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdalminfo")] + public static extern short cnc_rdalminfo(ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] ALMINFO_1 d); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdalminfo")] + public static extern short cnc_rdalminfo(ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] ALMINFO_2 d); + + /* read alarm message */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdalmmsg")] + public static extern short cnc_rdalmmsg( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBALMMSG c ); + + /* read alarm message(2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdalmmsg2")] + public static extern short cnc_rdalmmsg2( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBALMMSG2 c ); + + /* clear CNC alarm */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_clralm")] + public static extern short cnc_clralm( ushort FlibHndl, short a ); + + /* read modal data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_modal")] + public static extern short cnc_modal( ushort FlibHndl, + short type, short block, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBMDL modal ); +#if LEAVE_OLD_STYLE + [DllImport("FWLIB32.dll", EntryPoint="cnc_modal")] + public static extern short cnc_modal( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBMDL_1 c ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_modal")] + public static extern short cnc_modal( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBMDL_2 c ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_modal")] + public static extern short cnc_modal( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBMDL_3 c ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_modal")] + public static extern short cnc_modal( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBMDL_4 c ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_modal")] + public static extern short cnc_modal( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBMDL_5 c ); +#endif + /* read G code */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdgcode")] + public static extern short cnc_rdgcode( ushort FlibHndl, + short a, short b, ref short c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBGCD d ); + + /* read command value */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdcommand")] + public static extern short cnc_rdcommand( ushort FlibHndl, + short a, short b, ref short c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBCMD d ); + + /* read diagnosis data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_diagnoss")] + public static extern short cnc_diagnoss( ushort FlibHndl, + short number, short axis, short length, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDGN diag ); +#if LEAVE_OLD_STYLE + [DllImport("FWLIB32.dll", EntryPoint="cnc_diagnoss")] + public static extern short cnc_diagnoss( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDGN_1 d ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_diagnoss")] + public static extern short cnc_diagnoss( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDGN_2 d ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_diagnoss")] + public static extern short cnc_diagnoss( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDGN_3 d ); + [DllImport("FWLIB32.dll", EntryPoint="cnc_diagnoss")] + public static extern short cnc_diagnoss( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDGN_4 d ); +#endif + /* read diagnosis data(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_diagnosr")] + public static extern short cnc_diagnosr( ushort FlibHndl, + ref short a, short b, ref short c, ref short d, [Out,MarshalAs(UnmanagedType.AsAny)] Object e ); +// [DllImport("FWLIB32.dll", EntryPoint="cnc_diagnosr")] +// public static extern short cnc_diagnosr( ushort FlibHndl, +// ref short a, short b, ref short c, ref short d, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDGN e ); + + /* read A/D conversion data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_adcnv")] + public static extern short cnc_adcnv( ushort FlibHndl, short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAD c ); + + /* read operator's message */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdopmsg")] + public static extern short cnc_rdopmsg( ushort FlibHndl, short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] OPMSG c ); + + /* read operator's message */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdopmsg2")] + public static extern short cnc_rdopmsg2( ushort FlibHndl, short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] OPMSG2 c ); + + /* read operator's message */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdopmsg3")] + public static extern short cnc_rdopmsg3( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] OPMSG3 c ); + + /* set path number(for 4 axes lathes, multi-path) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_setpath")] + public static extern short cnc_setpath( ushort FlibHndl, short a ); + + /* get path number(for 4 axes lathes, multi-path) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_getpath")] + public static extern short cnc_getpath( ushort FlibHndl, out short a, out short b ); + + /* allocate library handle */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_allclibhndl")] + public static extern short cnc_allclibhndl( out ushort FlibHndl ); + + /* free library handle */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_freelibhndl")] + public static extern short cnc_freelibhndl( ushort FlibHndl ); + + /* get library option */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_getlibopt")] + public static extern short cnc_getlibopt( ushort FlibHndl , int a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b, ref int c ); + + /* set library option */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_setlibopt")] + public static extern short cnc_setlibopt( ushort FlibHndl , int a, [In,MarshalAs(UnmanagedType.AsAny)] Object b, int c ); + + /* get custom macro type */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_getmactype")] + public static extern short cnc_getmactype( ushort FlibHndl, out short a ); + + /* set custom macro type */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_setmactype")] + public static extern short cnc_setmactype( ushort FlibHndl, short a ); + + /* get P code macro type */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_getpmactype")] + public static extern short cnc_getpmactype( ushort FlibHndl, out short a ); + + /* set P code macro type */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_setpmactype")] + public static extern short cnc_setpmactype( ushort FlibHndl, short a ); + + /* get screen status */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_getcrntscrn")] + public static extern short cnc_getcrntscrn( ushort FlibHndl, out short a ); + + /* change screen mode */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_slctscrn")] + public static extern short cnc_slctscrn( ushort FlibHndl, short a ); + + /* read CNC configuration information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sysconfig")] + public static extern short cnc_sysconfig( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSYSC a ); + + /* read program restart information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdprstrinfo")] + public static extern short cnc_rdprstrinfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPRS a ); + + /* search sequence number for program restart */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rstrseqsrch")] + public static extern short cnc_rstrseqsrch( ushort FlibHndl, int a, int b, short c, short d ); + + /* search sequence number for program restart 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rstrseqsrch2")] + public static extern short cnc_rstrseqsrch2( ushort FlibHndl, int a, int b, short c, short d, int e ); + + /* read output signal image of software operator's panel */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdopnlsgnl")] + public static extern short cnc_rdopnlsgnl( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBSGNL b ); + + /* write output signal of software operator's panel */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wropnlsgnl")] + public static extern short cnc_wropnlsgnl( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBSGNL a ); + + /* read general signal image of software operator's panel */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdopnlgnrl")] + public static extern short cnc_rdopnlgnrl( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBGNRL b ); + + /* write general signal image of software operator's panel */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wropnlgnrl")] + public static extern short cnc_wropnlgnrl( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBGNRL a ); + + /* read general signal name of software operator's panel */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdopnlgsname")] + public static extern short cnc_rdopnlgsname( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBRDNA b ); + + /* write general signal name of software operator's panel */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wropnlgsname")] + public static extern short cnc_wropnlgsname( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBRDNA a ); + + /* get detail error */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_getdtailerr")] + public static extern short cnc_getdtailerr( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBERR a ); + + /* read informations of CNC parameter */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparainfo")] + public static extern short cnc_rdparainfo( ushort FlibHndl, + short a, ushort b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPARAIF c ); + + /* read informations of CNC setting data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsetinfo")] + public static extern short cnc_rdsetinfo( ushort FlibHndl, + short a, ushort b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSETIF c ); + + /* read informations of CNC diagnose data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddiaginfo")] + public static extern short cnc_rddiaginfo( ushort FlibHndl, + short a, ushort b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDIAGIF c ); + + /* read maximum, minimum and total number of CNC parameter */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdparanum")] + public static extern short cnc_rdparanum( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPARANUM a ); + + /* read maximum, minimum and total number of CNC setting data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsetnum")] + public static extern short cnc_rdsetnum( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSETNUM a ); + + /* read maximum, minimum and total number of CNC diagnose data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddiagnum")] + public static extern short cnc_rddiagnum( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDIAGNUM a ); + + /* get maximum valid figures and number of decimal places */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_getfigure")] + public static extern short cnc_getfigure( ushort FlibHndl, + short a, out short b, [Out,MarshalAs(UnmanagedType.AsAny)] Object c, [Out,MarshalAs(UnmanagedType.AsAny)] Object d ); + + /* read F-ROM information on CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdfrominfo")] + public static extern short cnc_rdfrominfo( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBFINFO b ); + + /* start of reading F-ROM data from CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromsvstart")] + public static extern short cnc_fromsvstart( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b, int c ); + + /* read F-ROM data from CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromsave")] + public static extern short cnc_fromsave( ushort FlibHndl, out short a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b, ref int c ); + + /* end of reading F-ROM data from CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromsvend")] + public static extern short cnc_fromsvend( ushort FlibHndl ); + + /* start of writing F-ROM data to CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromldstart")] + public static extern short cnc_fromldstart( ushort FlibHndl, short a, int b ); + + /* write F-ROM data to CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromload")] + public static extern short cnc_fromload( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, ref int b ); + + /* end of writing F-ROM data to CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromldend")] + public static extern short cnc_fromldend( ushort FlibHndl ); + + /* delete F-ROM data on CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromdelete")] + public static extern short cnc_fromdelete( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b, int c ); + + /* read S-RAM information on CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsraminfo")] + public static extern short cnc_rdsraminfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSINFO a ); + + /* start of reading S-RAM data from CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srambkstart")] + public static extern short cnc_srambkstart( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, int b ); + + /* read S-RAM data from CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srambackup")] + public static extern short cnc_srambackup( ushort FlibHndl, out short a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b, ref int c ); + + /* end of reading S-RAM data from CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srambkend")] + public static extern short cnc_srambkend( ushort FlibHndl ); + + /* read F-ROM information on CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_getfrominfo")] + public static extern short cnc_getfrominfo( ushort FlibHndl, + short a, out short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBFINFORM c ); + + /* start of reading F-ROM data from CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromgetstart")] + public static extern short cnc_fromgetstart( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* read F-ROM data from CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromget")] + public static extern short cnc_fromget( ushort FlibHndl, out short a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b, ref int c ); + + /* end of reading F-ROM data from CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromgetend")] + public static extern short cnc_fromgetend( ushort FlibHndl ); + + /* start of writing F-ROM data to CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromputstart")] + public static extern short cnc_fromputstart( ushort FlibHndl, short a ); + + /* write F-ROM data to CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromput")] + public static extern short cnc_fromput( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, ref int b ); + + /* end of writing F-ROM data to CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromputend")] + public static extern short cnc_fromputend( ushort FlibHndl ); + + /* delete F-ROM data on CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_fromremove")] + public static extern short cnc_fromremove( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* read S-RAM information on CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_getsraminfo")] + public static extern short cnc_getsraminfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSINFO a ); + + /* start of reading S-RAM data from CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sramgetstart")] + public static extern short cnc_sramgetstart( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* start of reading S-RAM data from CNC (2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sramgetstart2")] + public static extern short cnc_sramgetstart2( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* read S-RAM data from CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sramget")] + public static extern short cnc_sramget( ushort FlibHndl, out short a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b, ref int c ); + + /* read S-RAM data from CNC (2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sramget2")] + public static extern short cnc_sramget2( ushort FlibHndl, out short a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b, ref int c ); + + /* end of reading S-RAM data from CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sramgetend")] + public static extern short cnc_sramgetend( ushort FlibHndl ); + + /* end of reading S-RAM data from CNC (2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sramgetend2")] + public static extern short cnc_sramgetend2( ushort FlibHndl ); + + /* read number of S-RAM data kind on CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsramnum")] + public static extern short cnc_rdsramnum( ushort FlibHndl, out short a ); + + /* read S-RAM data address information on CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsramaddr")] + public static extern short cnc_rdsramaddr( ushort FlibHndl, out short a, [Out,MarshalAs(UnmanagedType.LPStruct)] SRAMADDR b ); + + /* get current NC data protection information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_getlockstat")] + public static extern short cnc_getlockstat( ushort FlibHndl, short a, out byte b ); + + /* change NC data protection status */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_chgprotbit")] + public static extern short cnc_chgprotbit( ushort FlibHndl, short a, ref byte b, int c ); + + /* transfer a file from host computer to CNC by FTP */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvftpget")] + public static extern short cnc_dtsvftpget( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.AsAny)] Object a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* transfer a file from CNC to host computer by FTP */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvftpput")] + public static extern short cnc_dtsvftpput( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.AsAny)] Object a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* get transfer status for FTP */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvftpstat")] + public static extern short cnc_dtsvftpstat( ushort FlibHndl ); + + /* read file directory in Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvrdpgdir")] + public static extern short cnc_dtsvrdpgdir( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.AsAny)] Object a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDSDIR c ); + + /* delete files in Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvdelete")] + public static extern short cnc_dtsvdelete( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* down load from CNC (transfer a file from CNC to MMC) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvdownload")] + public static extern short cnc_dtsvdownload( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* up load to CNC (transfer a file from MMC to CNC) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvupload")] + public static extern short cnc_dtsvupload( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* close upload/download between Data Server and CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvcnclupdn")] + public static extern short cnc_dtsvcnclupdn( ushort FlibHndl ); + + /* get transfer status for up/down load */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvupdnstat")] + public static extern short cnc_dtsvupdnstat( ushort FlibHndl ); + + /* get file name for DNC operation in Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvgetdncpg")] + public static extern short cnc_dtsvgetdncpg( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* set program number of DNC oparation to CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvsetdncpg")] + public static extern short cnc_dtsvsetdncpg( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* read setting data for Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvrdset")] + public static extern short cnc_dtsvrdset( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBDSSET a ); + + /* write setting data for Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvwrset")] + public static extern short cnc_dtsvwrset( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBDSSET a ); + + /* check hard disk in Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvchkdsk")] + public static extern short cnc_dtsvchkdsk( ushort FlibHndl ); + + /* format hard disk in Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvhdformat")] + public static extern short cnc_dtsvhdformat( ushort FlibHndl ); + + /* save interface area in Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvsavecram")] + public static extern short cnc_dtsvsavecram( ushort FlibHndl ); + + /* get interface area in Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvrdcram")] + public static extern short cnc_dtsvrdcram( ushort FlibHndl, int a, ref int b, [Out,MarshalAs(UnmanagedType.AsAny)] Object c ); + + /* read maintenance information for Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvmntinfo")] + public static extern short cnc_dtsvmntinfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDSMNT a ); + + /* get Data Server mode */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvgetmode")] + public static extern short cnc_dtsvgetmode( ushort FlibHndl, out short a ); + + /* set Data Server mode */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvsetmode")] + public static extern short cnc_dtsvsetmode( ushort FlibHndl, short a ); + + /* read error message for Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvrderrmsg")] + public static extern short cnc_dtsvrderrmsg( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* transfar file from Pc to Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvwrfile")] + public static extern short cnc_dtsvwrfile( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.AsAny)] Object a, [In,MarshalAs(UnmanagedType.AsAny)] Object b, short c ); + + /* transfar file from Data Server to Pc */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dtsvrdfile")] + public static extern short cnc_dtsvrdfile( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.AsAny)] Object a, [In,MarshalAs(UnmanagedType.AsAny)] Object b, short c ); + + /* read the loop gain for each axis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdloopgain")] + public static extern short cnc_rdloopgain( ushort FlibHndl, out int a ); + + /* read the actual current for each axis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdcurrent")] + public static extern short cnc_rdcurrent( ushort FlibHndl, out short a ); + + /* read the actual speed for each axis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsrvspeed")] + public static extern short cnc_rdsrvspeed( ushort FlibHndl, out int a ); + + /* read the operation mode */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdopmode")] + public static extern short cnc_rdopmode( ushort FlibHndl, out short a ); + + /* read the position deviation S */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdposerrs")] + public static extern short cnc_rdposerrs( ushort FlibHndl, out int a ); + + /* read the position deviation S1 and S2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdposerrs2")] + public static extern short cnc_rdposerrs2( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPSER a ); + + /* read the position deviation Z in the rigid tap mode */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdposerrz")] + public static extern short cnc_rdposerrz( ushort FlibHndl, out int a ); + + /* read the synchronous error in the synchronous control mode */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsynerrsy")] + public static extern short cnc_rdsynerrsy( ushort FlibHndl, out int a ); + + /* read the synchronous error in the rigid tap mode */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsynerrrg")] + public static extern short cnc_rdsynerrrg( ushort FlibHndl, out int a ); + + /* read the spindle alarm */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdspdlalm")] + public static extern short cnc_rdspdlalm( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* read the control input signal */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdctrldi")] + public static extern short cnc_rdctrldi( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSPDI a ); + + /* read the control output signal */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdctrldo")] + public static extern short cnc_rdctrldo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSPDO a ); + + /* read the number of controled spindle */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdnspdl")] + public static extern short cnc_rdnspdl( ushort FlibHndl, out short a ); + + /* read data from FANUC BUS */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdfbusmem")] + public static extern short cnc_rdfbusmem( ushort FlibHndl, + short a, short b, int c, int d, [Out,MarshalAs(UnmanagedType.AsAny)] Object e ); + + /* write data to FANUC BUS */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrfbusmem")] + public static extern short cnc_wrfbusmem( ushort FlibHndl, + short a, short b, int c, int d, [In,MarshalAs(UnmanagedType.AsAny)] Object e ); + + /* read the parameter of wave diagnosis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdwaveprm")] + public static extern short cnc_rdwaveprm( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBWAVE a ); + + /* write the parameter of wave diagnosis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrwaveprm")] + public static extern short cnc_wrwaveprm( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBWAVE a ); + + /* read the parameter of wave diagnosis 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdwaveprm2")] + public static extern short cnc_rdwaveprm2( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBWVPRM a ); + + /* write the parameter of wave diagnosis 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrwaveprm2")] + public static extern short cnc_wrwaveprm2( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBWVPRM a ); + + /* start the sampling for wave diagnosis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wavestart")] + public static extern short cnc_wavestart( ushort FlibHndl ); + + /* stop the sampling for wave diagnosis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wavestop")] + public static extern short cnc_wavestop( ushort FlibHndl ); + + /* read the status of wave diagnosis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wavestat")] + public static extern short cnc_wavestat( ushort FlibHndl, out short a ); + + /* read the data of wave diagnosis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdwavedata")] + public static extern short cnc_rdwavedata( ushort FlibHndl, + short a, short b, int c, ref int d, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBWVDT e ); + + /* read the parameter of wave diagnosis for remort diagnosis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdrmtwaveprm")] + public static extern short cnc_rdrmtwaveprm( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBRMTPRM a, short b ); + + /* write the parameter of wave diagnosis for remort diagnosis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrrmtwaveprm")] + public static extern short cnc_wrrmtwaveprm( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBRMTPRM a ); + + /* start the sampling for wave diagnosis for remort diagnosis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rmtwavestart")] + public static extern short cnc_rmtwavestart( ushort FlibHndl ); + + /* stop the sampling for wave diagnosis for remort diagnosis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rmtwavestop")] + public static extern short cnc_rmtwavestop( ushort FlibHndl ); + + /* read the status of wave diagnosis for remort diagnosis*/ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rmtwavestat")] + public static extern short cnc_rmtwavestat( ushort FlibHndl, out short a ); + + /* read the data of wave diagnosis for remort diagnosis */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdrmtwavedt")] + public static extern short cnc_rdrmtwavedt( ushort FlibHndl, + short a, int b, ref int c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBRMTDT d ); + + /* read of address for PMC signal batch save */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsavsigadr")] + public static extern short cnc_rdsavsigadr( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBSIGAD a, short b ); + + /* write of address for PMC signal batch save */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrsavsigadr")] + public static extern short cnc_wrsavsigadr( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBSIGAD a, out short b ); + + /* read of data for PMC signal batch save */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsavsigdata")] + public static extern short cnc_rdsavsigdata( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.AsAny)] Object c, ref short d ); + + /* read M-code group data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmgrpdata")] + public static extern short cnc_rdmgrpdata( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBMGRP c ); + + /* write M-code group data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrmgrpdata")] + public static extern short cnc_wrmgrpdata( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IDBMGRP a ); + + /* read executing M-code group data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdexecmcode")] + public static extern short cnc_rdexecmcode( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBEXEM c ); + + /* read program restart M-code group data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdrstrmcode")] + public static extern short cnc_rdrstrmcode( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBRSTRM c ); + + /* read processing time stamp data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdproctime")] + public static extern short cnc_rdproctime( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPTIME a ); + + /* read MDI program stat */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmdiprgstat")] + public static extern short cnc_rdmdiprgstat( ushort FlibHndl, out ushort a ); + + /* read program directory for processing time data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdprgdirtime")] + public static extern short cnc_rdprgdirtime( ushort FlibHndl, + ref int a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] PRGDIRTM c ); + + /* read program directory 2 */ +#if (!ONO8D) + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdprogdir2")] + public static extern short cnc_rdprogdir2( ushort FlibHndl, + short a, ref short b, ref short c, [Out,MarshalAs(UnmanagedType.LPStruct)] PRGDIR2 d ); +#else + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdprogdir2o8")] + public static extern short cnc_rdprogdir2( ushort FlibHndl, + short a, ref short b, ref short c, [Out,MarshalAs(UnmanagedType.LPStruct)] PRGDIR2 d ); +#endif + + /* read program directory 3 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdprogdir3")] + public static extern short cnc_rdprogdir3( ushort FlibHndl, + short a, ref int b, ref short c, [Out,MarshalAs(UnmanagedType.LPStruct)] PRGDIR3 d ); + + /* read program directory 4 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdprogdir4")] + public static extern short cnc_rdprogdir4( ushort FlibHndl, + short a, int b, ref short c, [Out,MarshalAs(UnmanagedType.LPStruct)] PRGDIR4 d ); + + /* read DNC file name for DNC1, DNC2, OSI-Ethernet */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddncfname")] + public static extern short cnc_rddncfname( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* write DNC file name for DNC1, DNC2, OSI-Ethernet */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrdncfname")] + public static extern short cnc_wrdncfname( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* read communication parameter for DNC1, DNC2, OSI-Ethernet */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdcomparam")] + public static extern short cnc_rdcomparam( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBCPRM a ); + + /* write communication parameter for DNC1, DNC2, OSI-Ethernet */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrcomparam")] + public static extern short cnc_wrcomparam( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBCPRM a ); + + /* read log message for DNC2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdcomlogmsg")] + public static extern short cnc_rdcomlogmsg( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* read operator message for DNC1, DNC2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdcomopemsg")] + public static extern short cnc_rdcomopemsg( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* read recieve message for OSI-Ethernet */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdrcvmsg")] + public static extern short cnc_rdrcvmsg( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* read send message for OSI-Ethernet */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsndmsg")] + public static extern short cnc_rdsndmsg( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* send message for OSI-Ethernet */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sendmessage")] + public static extern short cnc_sendmessage( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* clear message buffer for OSI-Ethernet */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_clrmsgbuff")] + public static extern short cnc_clrmsgbuff( ushort FlibHndl, short a ); + + /* read message recieve status for OSI-Ethernet */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdrcvstat")] + public static extern short cnc_rdrcvstat( ushort FlibHndl, out ushort a ); + + /* read interference check */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdintchk")] + public static extern short cnc_rdintchk( ushort FlibHndl, + short a, short b, short c, short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBINT e ); + + /* write interference check */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrintchk")] + public static extern short cnc_wrintchk( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBINT b ); + + /* read interference check information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdintinfo")] + public static extern short cnc_rdintinfo( ushort FlibHndl, out short a ); + + /* read work coordinate shift */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdwkcdshft")] + public static extern short cnc_rdwkcdshft( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBWCSF c ); + + /* write work coordinate shift */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrwkcdshft")] + public static extern short cnc_wrwkcdshft( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBWCSF b ); + + /* read work coordinate shift measure */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdwkcdsfms")] + public static extern short cnc_rdwkcdsfms( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBWCSF c ); + + /* write work coordinate shift measure */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrwkcdsfms")] + public static extern short cnc_wrwkcdsfms( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBWCSF b ); + + /* stop the sampling for operator message history */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_stopomhis")] + public static extern short cnc_stopomhis( ushort FlibHndl ); + + /* start the sampling for operator message history */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_startomhis")] + public static extern short cnc_startomhis( ushort FlibHndl ); + + /* read operator message history information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdomhisinfo")] + public static extern short cnc_rdomhisinfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOMIF a ); + + /* read operator message history */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdomhistry")] + public static extern short cnc_rdomhistry( ushort FlibHndl, + ushort a, ref ushort b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOMHIS c ); + + /* read operater message history data F30i */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdomhistry2")] + public static extern short cnc_rdomhistry2( ushort FlibHndl, + ushort a, ushort b, ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBOMHIS2 d ); + + /* write external key operation history for F30i*/ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrkeyhistry")] + public static extern short cnc_wrkeyhistry( ushort FlibHndl, byte a ); + + /* clear operator message history */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_clearomhis")] + public static extern short cnc_clearomhis( ushort FlibHndl ); + + /* read b-axis tool offset value(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdbtofsr")] + public static extern short cnc_rdbtofsr( ushort FlibHndl, + short a, short b, short c, short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBBTO e ); + + /* write b-axis tool offset value(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrbtofsr")] + public static extern short cnc_wrbtofsr( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBBTO b ); + + /* read b-axis tool offset information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdbtofsinfo")] + public static extern short cnc_rdbtofsinfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBBTLINF a ); + + /* read b-axis command */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdbaxis")] + public static extern short cnc_rdbaxis( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBBAXIS a ); + + /* read CNC system soft series and version */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsyssoft")] + public static extern short cnc_rdsyssoft( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSYSS a ); + + /* read CNC system soft series and version (2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsyssoft2")] + public static extern short cnc_rdsyssoft2( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSYSS2 a ); + + /* read CNC module configuration information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmdlconfig")] + public static extern short cnc_rdmdlconfig( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBMDLC a ); + + /* read CNC module configuration information 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmdlconfig2")] + public static extern short cnc_rdmdlconfig2( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* read processing condition file (processing data) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpscdproc")] + public static extern short cnc_rdpscdproc( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPSCD c ); + + /* write processing condition file (processing data) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrpscdproc")] + public static extern short cnc_wrpscdproc( ushort FlibHndl, + short a, ref short b, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPSCD c ); + + /* read processing condition file (piercing data) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpscdpirc")] + public static extern short cnc_rdpscdpirc( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPIRC c ); + + /* write processing condition file (piercing data) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrpscdpirc")] + public static extern short cnc_wrpscdpirc( ushort FlibHndl, + short a, ref short b, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPIRC c ); + + /* read processing condition file (edging data) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpscdedge")] + public static extern short cnc_rdpscdedge( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBEDGE c ); + + /* write processing condition file (edging data) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrpscdedge")] + public static extern short cnc_wrpscdedge( ushort FlibHndl, + short a, ref short b, [In,MarshalAs(UnmanagedType.LPStruct)] IODBEDGE c ); + + /* read processing condition file (slope data) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpscdslop")] + public static extern short cnc_rdpscdslop( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBSLOP c ); + + /* write processing condition file (slope data) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrpscdslop")] + public static extern short cnc_wrpscdslop( ushort FlibHndl, + short a, ref short b, [In,MarshalAs(UnmanagedType.LPStruct)] IODBSLOP c ); + + /* read power controll duty data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlpwrdty")] + public static extern short cnc_rdlpwrdty( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBLPWDT a ); + + /* write power controll duty data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrlpwrdty")] + public static extern short cnc_wrlpwrdty( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBLPWDT a ); + + /* read laser power data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlpwrdat")] + public static extern short cnc_rdlpwrdat( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBLOPDT a ); + + /* read power complement */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlpwrcpst")] + public static extern short cnc_rdlpwrcpst( ushort FlibHndl, out short a ); + + /* write power complement */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrlpwrcpst")] + public static extern short cnc_wrlpwrcpst( ushort FlibHndl, short a ); + + /* read laser assist gas selection */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlagslt")] + public static extern short cnc_rdlagslt( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBLAGSL a ); + + /* write laser assist gas selection */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrlagslt")] + public static extern short cnc_wrlagslt( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBLAGSL a ); + + /* read laser assist gas flow */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlagst")] + public static extern short cnc_rdlagst( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBLAGST a ); + + /* write laser assist gas flow */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrlagst")] + public static extern short cnc_wrlagst( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBLAGST a ); + + /* read laser power for edge processing */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdledgprc")] + public static extern short cnc_rdledgprc( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBLEGPR a ); + + /* write laser power for edge processing */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrledgprc")] + public static extern short cnc_wrledgprc( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBLEGPR a ); + + /* read laser power for piercing */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlprcprc")] + public static extern short cnc_rdlprcprc( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBLPCPR a ); + + /* write laser power for piercing */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrlprcprc")] + public static extern short cnc_wrlprcprc( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBLPCPR a ); + + /* read laser command data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlcmddat")] + public static extern short cnc_rdlcmddat( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBLCMDT a ); + + /* read displacement */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdldsplc")] + public static extern short cnc_rdldsplc( ushort FlibHndl, out short a ); + + /* write displacement */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrldsplc")] + public static extern short cnc_wrldsplc( ushort FlibHndl, short a ); + + /* read error for axis z */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlerrz")] + public static extern short cnc_rdlerrz( ushort FlibHndl, out short a ); + + /* read active number */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlactnum")] + public static extern short cnc_rdlactnum( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBLACTN a ); + + /* read laser comment */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlcmmt")] + public static extern short cnc_rdlcmmt( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBLCMMT a ); + + /* read laser power select */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlpwrslt")] + public static extern short cnc_rdlpwrslt( ushort FlibHndl, out short a ); + + /* write laser power select */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrlpwrslt")] + public static extern short cnc_wrlpwrslt( ushort FlibHndl, short a ); + + /* read laser power controll */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlpwrctrl")] + public static extern short cnc_rdlpwrctrl( ushort FlibHndl, out short a ); + + /* write laser power controll */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrlpwrctrl")] + public static extern short cnc_wrlpwrctrl( ushort FlibHndl, short a ); + + /* read power correction factor history data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpwofsthis")] + public static extern short cnc_rdpwofsthis( ushort FlibHndl, + int a, ref int b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPWOFST c ); + + /* read management time */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmngtime")] + public static extern short cnc_rdmngtime( ushort FlibHndl, + int a, ref int b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBMNGTIME c ); + + /* write management time */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrmngtime")] + public static extern short cnc_wrmngtime( ushort FlibHndl, int a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBMNGTIME b ); + + /* read data related to electrical discharge at power correction ends */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddischarge")] + public static extern short cnc_rddischarge( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDISCHRG a ); + + /* read alarm history data related to electrical discharg */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddischrgalm")] + public static extern short cnc_rddischrgalm( ushort FlibHndl, + int a, ref int b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBDISCHRGALM c ); + + /* get date and time from cnc */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_gettimer")] + public static extern short cnc_gettimer( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTIMER a ); + + /* set date and time for cnc */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_settimer")] + public static extern short cnc_settimer( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTIMER a ); + + /* read timer data from cnc */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtimer")] + public static extern short cnc_rdtimer( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTIME b ); + + /* write timer data for cnc */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrtimer")] + public static extern short cnc_wrtimer( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTIME b ); + + /* read tool controll data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtlctldata")] + public static extern short cnc_rdtlctldata( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTLCTL a ); + + /* write tool controll data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrtlctldata")] + public static extern short cnc_wrtlctldata( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTLCTL a ); + + /* read tool data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtooldata")] + public static extern short cnc_rdtooldata( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTLDT c ); + + /* read tool data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrtooldata")] + public static extern short cnc_wrtooldata( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTLDT c ); + + /* read multi tool data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmultitldt")] + public static extern short cnc_rdmultitldt( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBMLTTL c ); + + /* write multi tool data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrmultitldt")] + public static extern short cnc_wrmultitldt( ushort FlibHndl, + short a, ref short b, [In,MarshalAs(UnmanagedType.LPStruct)] IODBMLTTL c ); + + /* read multi tap data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmtapdata")] + public static extern short cnc_rdmtapdata( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBMTAP c ); + + /* write multi tap data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrmtapdata")] + public static extern short cnc_wrmtapdata( ushort FlibHndl, + short a, ref short b, [In,MarshalAs(UnmanagedType.LPStruct)] IODBMTAP c ); + + /* read multi-piece machining number */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmultipieceno")] + public static extern short cnc_rdmultipieceno( ushort FlibHndl, out int a ); + + /* read tool information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtoolinfo")] + public static extern short cnc_rdtoolinfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPTLINF a ); + + /* read safetyzone data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsafetyzone")] + public static extern short cnc_rdsafetyzone( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBSAFE c ); + + /* write safetyzone data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrsafetyzone")] + public static extern short cnc_wrsafetyzone( ushort FlibHndl, + short a, ref short b, [In,MarshalAs(UnmanagedType.LPStruct)] IODBSAFE c ); + + /* read toolzone data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdtoolzone")] + public static extern short cnc_rdtoolzone( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBTLZN c ); + + /* write toolzone data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrtoolzone")] + public static extern short cnc_wrtoolzone( ushort FlibHndl, + short a, ref short b, [In,MarshalAs(UnmanagedType.LPStruct)] IODBTLZN c ); + + /* read active toolzone data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdacttlzone")] + public static extern short cnc_rdacttlzone(ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBACTTLZN a); + + /* read setzone number */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsetzone")] + public static extern short cnc_rdsetzone( ushort FlibHndl, out short a ); + + /* write setzone number */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrsetzone")] + public static extern short cnc_wrsetzone( ushort FlibHndl, short a ); + + /* read block restart information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdbrstrinfo")] + public static extern short cnc_rdbrstrinfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBBRS a ); + + /* read menu switch signal */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmenuswitch")] + public static extern short cnc_rdmenuswitch( ushort FlibHndl, out short a ); + + /* write menu switch signal */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrmenuswitch")] + public static extern short cnc_wrmenuswitch( ushort FlibHndl, short a, short b ); + + /* read tool radius offset for position data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdradofs")] + public static extern short cnc_rdradofs( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBROFS a ); + + /* read tool length offset for position data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdlenofs")] + public static extern short cnc_rdlenofs( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBLOFS a ); + + /* read fixed cycle for position data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdfixcycle")] + public static extern short cnc_rdfixcycle( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBFIX a ); + + /* read coordinate rotate for position data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdcdrotate")] + public static extern short cnc_rdcdrotate( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBROT a ); + + /* read 3D coordinate convert for position data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd3dcdcnv")] + public static extern short cnc_rd3dcdcnv( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODB3DCD a ); + + /* read programable mirror image for position data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdmirimage")] + public static extern short cnc_rdmirimage( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBMIR a ); + + /* read scaling for position data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdscaling")] + public static extern short cnc_rdscaling( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSCL a ); + + /* read 3D tool offset for position data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd3dtofs")] + public static extern short cnc_rd3dtofs( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODB3DTO a ); + + /* read tool position offset for position data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdposofs")] + public static extern short cnc_rdposofs( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPOFS a ); + + /* read hpcc setting data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdhpccset")] + public static extern short cnc_rdhpccset( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBHPST a ); + + /* write hpcc setting data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrhpccset")] + public static extern short cnc_wrhpccset( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBHPST a ); + + /* hpcc data auto setting data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_hpccatset")] + public static extern short cnc_hpccatset( ushort FlibHndl ); + + /* read hpcc tuning data ( parameter input ) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdhpcctupr")] + public static extern short cnc_rdhpcctupr( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBHPPR a ); + + /* write hpcc tuning data ( parameter input ) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrhpcctupr")] + public static extern short cnc_wrhpcctupr( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBHPPR a ); + + /* read hpcc tuning data ( acc input ) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdhpcctuac")] + public static extern short cnc_rdhpcctuac( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBHPAC a ); + + /* write hpcc tuning data ( acc input ) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrhpcctuac")] + public static extern short cnc_wrhpcctuac( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBHPAC a ); + + /* hpcc data auto tuning */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_hpccattune")] + public static extern short cnc_hpccattune( ushort FlibHndl, short a, out short b ); + + /* read hpcc fine level */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_hpccactfine")] + public static extern short cnc_hpccactfine( ushort FlibHndl, out short a ); + + /* select hpcc fine level */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_hpccselfine")] + public static extern short cnc_hpccselfine( ushort FlibHndl, short a ); + + /* read active fixture offset */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdactfixofs")] + public static extern short cnc_rdactfixofs( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBZOFS b ); + + /* read fixture offset */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdfixofs")] + public static extern short cnc_rdfixofs( ushort FlibHndl, + short a, short b, short c, short d, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBZOR e ); + + /* write fixture offset */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrfixofs")] + public static extern short cnc_wrfixofs( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBZOR b ); + + /* read tip of tool for 3D handle */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd3dtooltip")] + public static extern short cnc_rd3dtooltip( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODB3DHDL a ); + + /* read pulse for 3D handle */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd3dpulse")] + public static extern short cnc_rd3dpulse( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODB3DPLS a ); + + /* read move overrlap of tool for 3D handle */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd3dmovrlap")] + public static extern short cnc_rd3dmovrlap( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODB3DHDL a ); + + /* read change offset for 3D handle */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rd3dofschg")] + public static extern short cnc_rd3dofschg( ushort FlibHndl, ref int a ); + + /* clear pulse and change offset for 3D handle */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_clr3dplsmov")] + public static extern short cnc_clr3dplsmov( ushort FlibHndl, short a ); + + /* cycle start */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_start")] + public static extern short cnc_start( ushort FlibHndl ); + + /* reset CNC */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_reset")] + public static extern short cnc_reset( ushort FlibHndl ); + + /* reset CNC 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_reset2")] + public static extern short cnc_reset2( ushort FlibHndl ); + + /* read axis name */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdaxisname")] + public static extern short cnc_rdaxisname( ushort FlibHndl, + ref short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXISNAME b ); + + /* read spindle name */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdspdlname")] + public static extern short cnc_rdspdlname( ushort FlibHndl, + ref short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSPDLNAME b ); + + /* read extended axis name */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_exaxisname")] + public static extern short cnc_exaxisname( ushort FlibHndl, + short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBEXAXISNAME c ); + + /* read SRAM variable area for C language executor */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdcexesram")] + public static extern short cnc_rdcexesram( ushort FlibHndl, int a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b, ref int c ); + + /* write SRAM variable area for C language executor */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrcexesram")] + public static extern short cnc_wrcexesram( ushort FlibHndl, int a, [In,MarshalAs(UnmanagedType.AsAny)] Object b, ref int c ); + + /* read maximum size and linear address of SRAM variable area for C language executor */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_cexesraminfo")] + public static extern short cnc_cexesraminfo( ushort FlibHndl, out short a, out int b, out int c ); + + /* read maximum size of SRAM variable area for C language executor */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_cexesramsize")] + public static extern short cnc_cexesramsize( ushort FlibHndl, out int a ); + + /* read additional workpiece coordinate systems number */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdcoordnum")] + public static extern short cnc_rdcoordnum( ushort FlibHndl, out short a ); + + /* converts from FANUC code to Shift JIS code */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_ftosjis")] + public static extern short cnc_ftosjis( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.AsAny)] Object a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* Set the unsolicited message parameters */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrunsolicprm")] + public static extern short cnc_wrunsolicprm( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBUNSOLIC b ); + + /* Get the unsolicited message parameters */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdunsolicprm")] + public static extern short cnc_rdunsolicprm( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBUNSOLIC b ); + + /* Set the unsolicited message parameters(2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrunsolicprm2")] + public static extern short cnc_wrunsolicprm2( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBUNSOLIC2 b ); + + /* Get the unsolicited message parameters(2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdunsolicprm2")] + public static extern short cnc_rdunsolicprm2( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBUNSOLIC2 b ); + + /* Start of unsolicited message */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_unsolicstart")] + public static extern short cnc_unsolicstart( ushort FlibHndl, short a, int hWnd, uint c, short d, out short e ); + + /* End of unsolicited message */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_unsolicstop")] + public static extern short cnc_unsolicstop( ushort FlibHndl, short a ); + + /* Reads the unsolicited message data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdunsolicmsg")] + public static extern short cnc_rdunsolicmsg(short a, [In, Out] IDBUNSOLICMSG b); + + /* Reads the unsolicited message data(2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdunsolicmsg2")] + public static extern short cnc_rdunsolicmsg2(short a, [In, Out] IDBUNSOLICMSG2 b); + + /* read machine specific maintenance item */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpm_mcnitem")] + public static extern short cnc_rdpm_mcnitem( ushort FlibHndl, short a , ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBITEM c ); + + /* write machine specific maintenance item */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrpm_mcnitem")] + public static extern short cnc_wrpm_mcnitem( ushort FlibHndl, short a , short b, [In,MarshalAs(UnmanagedType.LPStruct)] IODBITEM c ); + + /* read cnc maintenance item */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpm_cncitem")] + public static extern short cnc_rdpm_cncitem( ushort FlibHndl, short a , ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBITEM c ); + + /* read maintenance item status */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdpm_item")] + public static extern short cnc_rdpm_item( ushort FlibHndl, short a , ref short b , [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPMAINTE c ); + + /* write maintenance item status */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrpm_item")] + public static extern short cnc_wrpm_item( ushort FlibHndl, short a , short b , short c , [In,MarshalAs(UnmanagedType.LPStruct)] IODBPMAINTE d ); + + /* Display of optional message */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_dispoptmsg")] + public static extern short cnc_dispoptmsg( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* Reading of answer for optional message display */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_optmsgans")] + public static extern short cnc_optmsgans( ushort FlibHndl, out short a ); + + /* Get CNC Model */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_getcncmodel")] + public static extern short cnc_getcncmodel( ushort FlibHndl, out short a ); + + /* read number of repeats */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdrepeatval")] + public static extern short cnc_rdrepeatval( ushort FlibHndl, out int a ); + + /* read CNC system hard info */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsyshard")] + public static extern short cnc_rdsyshard( ushort FlibHndl, short a, ref short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSYSH c ); + + /* read CNC system soft series and version (3) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdsyssoft3")] + public static extern short cnc_rdsyssoft3( ushort FlibHndl, short a , ref short b , out short c , [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSYSS3 d ); + + /* read digit of program number */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_progdigit")] + public static extern short cnc_progdigit( ushort FlibHndl, out short a ); + + /* read CNC system path information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sysinfo_ex")] + public static extern short cnc_sysinfo_ex( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSYSEX a ); + +/*------------------*/ +/* CNC : SERCOS I/F */ +/*------------------*/ + + /* Get reservation of service channel for SERCOS I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srcsrsvchnl")] + public static extern short cnc_srcsrsvchnl( ushort FlibHndl ); + + /* Read ID information of SERCOS I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srcsrdidinfo")] + public static extern short cnc_srcsrdidinfo( ushort FlibHndl, + int a, short b, short c, [Out,MarshalAs(UnmanagedType.AsAny)] IODBIDINF d ); + + /* Write ID information of SERCOS I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srcswridinfo")] + public static extern short cnc_srcswridinfo( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBIDINF a ); + + /* Start of reading operation data from drive of SERCOS I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srcsstartrd")] + public static extern short cnc_srcsstartrd( ushort FlibHndl, int a, short b ); + + /* Start of writing operation data to drive of SERCOS I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srcsstartwrt")] + public static extern short cnc_srcsstartwrt( ushort FlibHndl, int a, short b ); + + /* Stop of reading/writing operation data from/to drive of SERCOS I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srcsstopexec")] + public static extern short cnc_srcsstopexec( ushort FlibHndl ); + + /* Get execution status of reading/writing operation data of SERCOS I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srcsrdexstat")] + public static extern short cnc_srcsrdexstat( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSRCSST a ); + + /* Read operation data from data buffer for SERCOS I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srcsrdopdata")] + public static extern short cnc_srcsrdopdata( ushort FlibHndl, int a, ref int b, [Out,MarshalAs(UnmanagedType.AsAny)] Object c ); + + /* Write operation data to data buffer for SERCOS I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srcswropdata")] + public static extern short cnc_srcswropdata( ushort FlibHndl, int a, int b, [In,MarshalAs(UnmanagedType.AsAny)] Object c ); + + /* Free reservation of service channel for SERCOS I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srcsfreechnl")] + public static extern short cnc_srcsfreechnl( ushort FlibHndl ); + + /* Read drive assign of SERCOS I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srcsrdlayout")] + public static extern short cnc_srcsrdlayout( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSRCSLYT a ); + + /* Read communication phase of drive of SERCOS I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_srcsrddrvcp")] + public static extern short cnc_srcsrddrvcp( ushort FlibHndl, out short a ); + + +/*----------------------------*/ +/* CNC : Graphic command data */ +/*----------------------------*/ + + /* Start drawing position */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_startdrawpos")] + public static extern short cnc_startdrawpos( ushort FlibHndl ); + + /* Stop drawing position */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_stopdrawpos")] + public static extern short cnc_stopdrawpos( ushort FlibHndl ); + + /* Start dynamic graphic */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_startdyngrph")] + public static extern short cnc_startdyngrph( ushort FlibHndl ); + + /* Stop dynamic graphic */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_stopdyngrph")] + public static extern short cnc_stopdyngrph( ushort FlibHndl ); + + /* Read graphic command data */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdgrphcmd")] + public static extern short cnc_rdgrphcmd( ushort FlibHndl, ref short a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* Update graphic command read pointer */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrgrphcmdptr")] + public static extern short cnc_wrgrphcmdptr( ushort FlibHndl, short a ); + + /* Read cancel flag */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdgrphcanflg")] + public static extern short cnc_rdgrphcanflg( ushort FlibHndl, out short a ); + + /* Clear graphic command */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_clrgrphcmd")] + public static extern short cnc_clrgrphcmd( ushort FlibHndl ); + + +/*---------------------------*/ +/* CNC : Servo learning data */ +/*---------------------------*/ + + /* Servo learning data read start */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_svdtstartrd")] + public static extern short cnc_svdtstartrd( ushort FlibHndl, short a ); + + /* Servo learning data write start */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_svdtstartwr")] + public static extern short cnc_svdtstartwr( ushort FlibHndl, short a ); + + /* Servo learning data read end */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_svdtendrd")] + public static extern short cnc_svdtendrd( ushort FlibHndl ); + + /* Servo learning data write end */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_svdtendwr")] + public static extern short cnc_svdtendwr( ushort FlibHndl ); + + /* Servo learning data read/write stop */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_svdtstopexec")] + public static extern short cnc_svdtstopexec( ushort FlibHndl ); + + /* Servo learning data read from I/F buffer */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_svdtrddata")] + public static extern short cnc_svdtrddata( ushort FlibHndl, + out short a, ref int b, [Out,MarshalAs(UnmanagedType.AsAny)] Object c ); + + /* Servo learning data write to I/F buffer */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_svdtwrdata")] + public static extern short cnc_svdtwrdata( ushort FlibHndl, + out short a, ref int b, [In,MarshalAs(UnmanagedType.AsAny)] Object c ); + + +/*----------------------------*/ +/* CNC : Servo Guide */ +/*----------------------------*/ + /* Servo Guide (Channel data set) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdsetchnl")] + public static extern short cnc_sdsetchnl( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IDBCHAN b ); + + /* Servo Guide (Channel data clear) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdclrchnl")] + public static extern short cnc_sdclrchnl( ushort FlibHndl ); + + /* Servo Guide (Sampling start) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdstartsmpl")] + public static extern short cnc_sdstartsmpl( ushort FlibHndl, short a, int b, [Out,MarshalAs(UnmanagedType.AsAny)] Object c ); + + /* Servo Guide (Sampling cancel) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdcancelsmpl")] + public static extern short cnc_sdcancelsmpl( ushort FlibHndl ); + + /* Servo Guide (read Sampling data) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdreadsmpl")] + public static extern short cnc_sdreadsmpl( ushort FlibHndl, + out short a, int b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSD c ); + + /* Servo Guide (Sampling end) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdendsmpl")] + public static extern short cnc_sdendsmpl( ushort FlibHndl ); + + /* Servo Guide (read 1 shot data) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdread1shot")] + public static extern short cnc_sdread1shot( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* Servo feedback data (Channel data set) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sfbsetchnl")] + public static extern short cnc_sfbsetchnl( ushort FlibHndl, + short a, int b, [In,MarshalAs(UnmanagedType.LPStruct)] IDBSFBCHAN c ); + + /* Servo feedback data (Channel data clear) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sfbclrchnl")] + public static extern short cnc_sfbclrchnl( ushort FlibHndl ); + + /* Servo feedback data (Sampling start) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sfbstartsmpl")] + public static extern short cnc_sfbstartsmpl( ushort FlibHndl, short a, int b ); + + /* Servo feedback data (Sampling cancel) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sfbcancelsmpl")] + public static extern short cnc_sfbcancelsmpl( ushort FlibHndl ); + + /* Servo feedback data (read Sampling data) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sfbreadsmpl")] + public static extern short cnc_sfbreadsmpl( ushort FlibHndl, + out short a, int b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSD c ); + + /* Servo feedback data (Sampling end) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_sfbendsmpl")] + public static extern short cnc_sfbendsmpl( ushort FlibHndl ); + + +/*----------------------------*/ +/* CNC : NC display function */ +/*----------------------------*/ + + /* Start NC display */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_startnccmd")] + public static extern short cnc_startnccmd( ushort FlibHndl ); + + /* Start NC display (2) */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_startnccmd2")] + public static extern short cnc_startnccmd2( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ); + + /* Stop NC display */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_stopnccmd")] + public static extern short cnc_stopnccmd( ushort FlibHndl ); + + /* Get NC display mode */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_getdspmode")] + public static extern short cnc_getdspmode( ushort FlibHndl, out short a ); + + +/*------------------------------------*/ +/* CNC : Remote diagnostics function */ +/*------------------------------------*/ + + /* Start remote diagnostics function */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_startrmtdgn")] + public static extern short cnc_startrmtdgn( ushort FlibHndl ); + + /* Stop remote diagnostics function */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_stoprmtdgn")] + public static extern short cnc_stoprmtdgn( ushort FlibHndl ); + + /* Read data from remote diagnostics I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdrmtdgn")] + public static extern short cnc_rdrmtdgn( ushort FlibHndl, out int a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* Write data to remote diagnostics I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrrmtdgn")] + public static extern short cnc_wrrmtdgn( ushort FlibHndl, ref int a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* Set CommStatus of remote diagnostics I/F area */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrcommstatus")] + public static extern short cnc_wrcommstatus( ushort FlibHndl, short a ); + + /* Check remote diagnostics I/F */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_chkrmtdgn")] + public static extern short cnc_chkrmtdgn( ushort FlibHndl ); + + +/*-------------------------*/ +/* CNC : FS18-LN function */ +/*-------------------------*/ + + /* read allowance */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_allowance")] + public static extern short cnc_allowance(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXIS c); + + /* read allowanced state */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_allowcnd")] + public static extern short cnc_allowcnd( ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBCAXIS c ); + + /* set work zero */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_workzero")] + public static extern short cnc_workzero( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBZOFS b ); + + /* set slide position */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_slide")] + public static extern short cnc_slide(ushort FlibHndl, + short a, short b, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBAXIS c); + + +/*----------------------------------*/ +/* CNC: Teaching data I/F function */ +/*----------------------------------*/ + + /* Teaching data get start */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_startgetdgdat")] + public static extern short cnc_startgetdgdat( ushort FlibHndl ); + + /* Teaching data get stop */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_stopgetdgdat")] + public static extern short cnc_stopgetdgdat( ushort FlibHndl ); + + /* Teaching data read */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rddgdat")] + public static extern short cnc_rddgdat( ushort FlibHndl, ref short a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* Teaching data read pointer write */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrdgdatptr")] + public static extern short cnc_wrdgdatptr( ushort FlibHndl, short a ); + + /* Teaching data clear */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_clrdgdat")] + public static extern short cnc_clrdgdat( ushort FlibHndl ); + + +/*---------------------------------*/ +/* CNC : C-EXE SRAM file function */ +/*---------------------------------*/ + + /* open C-EXE SRAM file */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_opencexefile")] + public static extern short cnc_opencexefile( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, short b, short c ); + + /* close C-EXE SRAM file */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_closecexefile")] + public static extern short cnc_closecexefile( ushort FlibHndl ); + + /* read C-EXE SRAM file */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdcexefile")] + public static extern short cnc_rdcexefile( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a, ref uint b ); + + /* write C-EXE SRAM file */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_wrcexefile")] + public static extern short cnc_wrcexefile( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, ref uint b ); + + /* read C-EXE SRAM disk directory */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_cexedirectory")] + public static extern short cnc_cexedirectory( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.AsAny)] Object a, ref ushort b, ushort c, [Out,MarshalAs(UnmanagedType.LPStruct)] CFILEINFO d ); + + +/*-----*/ +/* PMC */ +/*-----*/ + + /* read message from PMC to MMC */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdmsg")] + public static extern short pmc_rdmsg( ushort FlibHndl, ref short a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* write message from MMC to PMC */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_wrmsg")] + public static extern short pmc_wrmsg( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* read message from PMC to MMC(conditional) */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_crdmsg")] + public static extern short pmc_crdmsg( ushort FlibHndl, ref short a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* write message from MMC to PMC(conditional) */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_cwrmsg")] + public static extern short pmc_cwrmsg( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* read PMC data(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdpmcrng")] + public static extern short pmc_rdpmcrng( ushort FlibHndl, + short a, short b, ushort c, ushort d, ushort e, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPMC0 f ); + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdpmcrng")] + public static extern short pmc_rdpmcrng( ushort FlibHndl, + short a, short b, ushort c, ushort d, ushort e, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPMC1 f ); + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdpmcrng")] + public static extern short pmc_rdpmcrng( ushort FlibHndl, + short a, short b, ushort c, ushort d, ushort e, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPMC2 f ); + + /* write PMC data(area specified) */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_wrpmcrng")] + public static extern short pmc_wrpmcrng( ushort FlibHndl, ushort a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPMC0 b ); + [DllImport("FWLIB32.dll", EntryPoint="pmc_wrpmcrng")] + public static extern short pmc_wrpmcrng( ushort FlibHndl, ushort a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPMC1 b ); + [DllImport("FWLIB32.dll", EntryPoint="pmc_wrpmcrng")] + public static extern short pmc_wrpmcrng( ushort FlibHndl, ushort a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPMC2 b ); + + /* read data from extended backup memory */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdkpm")] + public static extern short pmc_rdkpm( ushort FlibHndl, uint a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b, ushort c ); + + /* write data to extended backup memory */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_wrkpm")] + public static extern short pmc_wrkpm( ushort FlibHndl, uint a, [In,MarshalAs(UnmanagedType.AsAny)] Object b, ushort c ); + + /* read data from extended backup memory 2 */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdkpm2")] + public static extern short pmc_rdkpm2( ushort FlibHndl, uint a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b, uint c ); + + /* write data to extended backup memory 2 */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_wrkpm2")] + public static extern short pmc_wrkpm2( ushort FlibHndl, uint a, [In,MarshalAs(UnmanagedType.AsAny)] Object b, uint c ); + + /* read maximum size of extended backup memory */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_kpmsiz")] + public static extern short pmc_kpmsiz( ushort FlibHndl, out uint a ); + + /* read informations of PMC data */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdpmcinfo")] + public static extern short pmc_rdpmcinfo( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPMCINF b ); + + /* read PMC parameter data table contorol data */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdcntldata")] + public static extern short pmc_rdcntldata( ushort FlibHndl, + short a, short b, short c, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPMCCNTL d ); + + /* write PMC parameter data table contorol data */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_wrcntldata")] + public static extern short pmc_wrcntldata( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPMCCNTL b ); + + /* read PMC parameter data table contorol data group number */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdcntlgrp")] + public static extern short pmc_rdcntlgrp( ushort FlibHndl, out short a ); + + /* write PMC parameter data table contorol data group number */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_wrcntlgrp")] + public static extern short pmc_wrcntlgrp( ushort FlibHndl, short a ); + + /* read PMC alarm message */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdalmmsg")] + public static extern short pmc_rdalmmsg( ushort FlibHndl, + short a, ref short b, out short c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPMCALM d ); + + /* get detail error for pmc */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_getdtailerr")] + public static extern short pmc_getdtailerr( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPMCERR a ); + + /* read PMC memory data */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdpmcmem")] + public static extern short pmc_rdpmcmem( ushort FlibHndl, + short a, int b, int c, [Out,MarshalAs(UnmanagedType.AsAny)] Object d ); + + /* write PMC memory data */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_wrpmcmem")] + public static extern short pmc_wrpmcmem( ushort FlibHndl, + short a, int b, int c, [In,MarshalAs(UnmanagedType.AsAny)] Object d ); + + /* read PMC-SE memory data */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdpmcsemem")] + public static extern short pmc_rdpmcsemem( ushort FlibHndl, + short a, int b, int c, [Out,MarshalAs(UnmanagedType.AsAny)] Object d ); + + /* write PMC-SE memory data */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_wrpmcsemem")] + public static extern short pmc_wrpmcsemem( ushort FlibHndl, + short a, int b, int c, [In,MarshalAs(UnmanagedType.AsAny)] Object d ); + + /* read pmc title data */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdpmctitle")] + public static extern short pmc_rdpmctitle( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPMCTITLE a ); + + /* read PMC parameter start */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdprmstart")] + public static extern short pmc_rdprmstart( ushort FlibHndl); + + /* read PMC parameter */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdpmcparam")] + public static extern short pmc_rdpmcparam( ushort FlibHndl, ref int a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b); + + /* read PMC parameter end */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdprmend")] + public static extern short pmc_rdprmend( ushort FlibHndl); + + /* write PMC parameter start */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_wrprmstart")] + public static extern short pmc_wrprmstart( ushort FlibHndl); + + /* write PMC parameter */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_wrpmcparam")] + public static extern short pmc_wrpmcparam( ushort FlibHndl,ref int a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* write PMC parameter end */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_wrprmend")] + public static extern short pmc_wrprmend( ushort FlibHndl); + + /* read PMC data */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdpmcrng_ext")] + public static extern short pmc_rdpmcrng_ext( ushort FlibHndl, + short a, [In,Out,MarshalAs(UnmanagedType.LPStruct)] IODBPMCEXT b ); + + /* write PMC I/O link assigned data */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_wriolinkdat")] + public static extern short pmc_wriolinkdat( ushort FlibHndl, uint a, [In,MarshalAs(UnmanagedType.AsAny)] Object b, uint c ); + + /* read PMC address information */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_rdpmcaddr")] + public static extern short pmc_rdpmcaddr( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPMCADR a ); + + /* select PMC unit */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_select_pmc_unit")] + public static extern short pmc_select_pmc_unit( ushort FlibHndl, int a ); + + /* get current PMC unit */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_get_current_pmc_unit")] + public static extern short pmc_get_current_pmc_unit( ushort FlibHndl, ref int a ); + + /* get number of PMC */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_get_number_of_pmc")] + public static extern short pmc_get_number_of_pmc( ushort FlibHndl, ref int a ); + + /* get PMC unit types */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_get_pmc_unit_types")] + public static extern short pmc_get_pmc_unit_types( ushort FlibHndl, int[] a, ref int b ); + + /* set PMC Timer type */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_set_timer_type")] + public static extern short pmc_set_timer_type( ushort FlibHndl, ushort a, ushort b, ref short c ); + + /* get PMC Timer type */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_get_timer_type")] + public static extern short pmc_get_timer_type( ushort FlibHndl, ushort a, ushort b, ref short c ); + +/*----------------------------*/ +/* PMC : PROFIBUS function */ +/*----------------------------*/ + + /* read PROFIBUS configration data */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfrdconfig")] + public static extern short pmc_prfrdconfig( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBPRFCNF a ); + + /* read bus parameter for master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfrdbusprm")] + public static extern short pmc_prfrdbusprm( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBBUSPRM a ); + + /* write bus parameter for master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfwrbusprm")] + public static extern short pmc_prfwrbusprm( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBBUSPRM a ); + + /* read slave parameter for master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfrdslvprm")] + public static extern short pmc_prfrdslvprm( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBSLVPRM b ); + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfrdslvprm")] + public static extern short pmc_prfrdslvprm( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBSLVPRM2 b ); + + /* write slave parameter for master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfwrslvprm")] + public static extern short pmc_prfwrslvprm( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBSLVPRM b ); + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfwrslvprm")] + public static extern short pmc_prfwrslvprm( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBSLVPRM2 b ); + + /* read allocation address for master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfrdallcadr")] + public static extern short pmc_prfrdallcadr( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBPRFADR b ); + + /* set allocation address for master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfwrallcadr")] + public static extern short pmc_prfwrallcadr( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBPRFADR b ); + + /* read allocation address for slave function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfrdslvaddr")] + public static extern short pmc_prfrdslvaddr( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBSLVADR a ); + + /* set allocation address for slave function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfwrslvaddr")] + public static extern short pmc_prfwrslvaddr( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBSLVADR a ); + + /* read status for slave function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfrdslvstat")] + public static extern short pmc_prfrdslvstat( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBSLVST a ); + + /* Reads slave index data of master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfrdslvid")] + public static extern short pmc_prfrdslvid( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBSLVID b ); + + /* Writes slave index data of master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfwrslvid")] + public static extern short pmc_prfwrslvid( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBSLVID b ); + + /* Reads slave parameter of master function(2) */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfrdslvprm2")] + public static extern short pmc_prfrdslvprm2( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBSLVPRM3 b ); + + /* Writes slave parameter of master function(2) */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfwrslvprm2")] + public static extern short pmc_prfwrslvprm2( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBSLVPRM3 b ); + + /* Reads DI/DO parameter of master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfrddido")] + public static extern short pmc_prfrddido( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBDIDO b ) ; + + /* Writes DI/DO parameter of master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfwrdido")] + public static extern short pmc_prfwrdido( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.LPStruct)] IODBDIDO b ) ; + + /* Reads indication address of master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfrdindiadr")] + public static extern short pmc_prfrdindiadr( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBINDEADR a ) ; + + /* Writes indication address of master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfwrindiadr")] + public static extern short pmc_prfwrindiadr( ushort FlibHndl, [In,MarshalAs(UnmanagedType.LPStruct)] IODBINDEADR a ) ; + + /* Reads operation mode of master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfrdopmode")] + public static extern short pmc_prfrdopmode( ushort FlibHndl, ref short a ) ; + + /* Writes operation mode of master function */ + [DllImport("FWLIB32.dll", EntryPoint="pmc_prfwropmode")] + public static extern short pmc_prfwropmode( ushort FlibHndl, short a, ref short b ) ; + +/*-----------------------------------------------*/ +/* DS : Data server & Ethernet board function */ +/*-----------------------------------------------*/ + + /* read the parameter of the Ethernet board */ + [DllImport("FWLIB32.dll", EntryPoint="etb_rdparam")] + public static extern short etb_rdparam( ushort FlibHndl, + short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBETP_TCP b ) ; + [DllImport("FWLIB32.dll", EntryPoint="etb_rdparam")] + public static extern short etb_rdparam(ushort FlibHndl, + short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBETP_HOST b ) ; + [DllImport("FWLIB32.dll", EntryPoint="etb_rdparam")] + public static extern short etb_rdparam(ushort FlibHndl, + short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBETP_FTP b ) ; + [DllImport("FWLIB32.dll", EntryPoint="etb_rdparam")] + public static extern short etb_rdparam(ushort FlibHndl, + short a, [Out,MarshalAs(UnmanagedType.LPStruct)] IODBETP_ETB b ) ; + + /* write the parameter of the Ethernet board */ + [DllImport("FWLIB32.dll", EntryPoint="etb_wrparam")] + public static extern short etb_wrparam( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.LPStruct)] IODBETP_TCP a ) ; + [DllImport("FWLIB32.dll", EntryPoint="etb_wrparam")] + public static extern short etb_wrparam( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.LPStruct)] IODBETP_HOST a ) ; + [DllImport("FWLIB32.dll", EntryPoint="etb_wrparam")] + public static extern short etb_wrparam( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.LPStruct)] IODBETP_FTP a ) ; + + /* read the error message of the Ethernet board */ + [DllImport("FWLIB32.dll", EntryPoint="etb_rderrmsg")] + public static extern short etb_rderrmsg( ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBETMSG b ) ; + + /* read the mode of the Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdmode")] + public static extern short ds_rdmode( ushort FlibHndl, ref short a ) ; + + /* write the mode of the Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="ds_wrmode")] + public static extern short ds_wrmode( ushort FlibHndl, short a ) ; + + /* read information of the Data Server's HDD */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdhddinfo")] + public static extern short ds_rdhddinfo( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBHDDINF a ) ; + + /* read the file list of the Data Server's HDD */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdhdddir")] + public static extern short ds_rdhdddir(ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, int b, out short c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBHDDDIR d); + + /* delete the file of the Data Serve's HDD */ + [DllImport("FWLIB32.dll", EntryPoint="ds_delhddfile")] + public static extern short ds_delhddfile(ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a); + + /* copy the file of the Data Server's HDD */ + [DllImport("FWLIB32.dll", EntryPoint="ds_copyhddfile")] + public static extern short ds_copyhddfile(ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, [In,MarshalAs(UnmanagedType.AsAny)] Object b); + + /* change the file name of the Data Server's HDD */ + [DllImport("FWLIB32.dll", EntryPoint="ds_renhddfile")] + public static extern short ds_renhddfile( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ) ; + + /* execute the PUT command of the FTP */ + [DllImport("FWLIB32.dll", EntryPoint="ds_puthddfile")] + public static extern short ds_puthddfile( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ); + + /* execute the MPUT command of the FTP */ + [DllImport("FWLIB32.dll", EntryPoint="ds_mputhddfile")] + public static extern short ds_mputhddfile(ushort hLib, [In,MarshalAs(UnmanagedType.AsAny)] Object a); + + /* read information of the host */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdhostinfo")] + public static extern short ds_rdhostinfo( ushort FlibHndl, out int a, int b ) ; + + /* read the file list of the host */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdhostdir")] + public static extern short ds_rdhostdir( ushort FlibHndl, short a, int b,out short c, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBHOSTDIR d, int e ) ; + + /* read the file list of the host 2 */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdhostdir2")] + public static extern short ds_rdhostdir2( ushort FlibHndl, short a, int b,out short c,out int d, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBHOSTDIR e, int f ) ; + + /* delete the file of the host */ + [DllImport("FWLIB32.dll", EntryPoint="ds_delhostfile")] + public static extern short ds_delhostfile(ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, int b); + + /* execute the GET command of the FTP */ + [DllImport("FWLIB32.dll", EntryPoint="ds_gethostfile")] + public static extern short ds_gethostfile(ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a, [In,MarshalAs(UnmanagedType.AsAny)] Object b); + + /* execute the MGET command of the FTP */ + [DllImport("FWLIB32.dll", EntryPoint="ds_mgethostfile")] + public static extern short ds_mgethostfile(ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a); + + /* read the execution result */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdresult")] + public static extern short ds_rdresult( ushort FlibHndl ) ; + + /* stop the execution of the command */ + [DllImport("FWLIB32.dll", EntryPoint="ds_cancel")] + public static extern short ds_cancel( ushort FlibHndl ) ; + + /* read the file from the Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdncfile")] + public static extern short ds_rdncfile( ushort FlibHndl, short a, [In,MarshalAs(UnmanagedType.AsAny)] Object b ) ; + + /* read the file from the Data Server 2 */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdncfile2")] + public static extern short ds_rdncfile2( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ) ; + + /* write the file to the Data Server */ + [DllImport("FWLIB32.dll", EntryPoint="ds_wrncfile")] + public static extern short ds_wrncfile( ushort FlibHndl, short a, int b ) ; + + /* read the file name for the DNC operation in the Data Server's HDD */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rddnchddfile")] + public static extern short ds_rddnchddfile( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a ) ; + + /* write the file name for the DNC operation in the Data Server's HDD */ + [DllImport("FWLIB32.dll", EntryPoint="ds_wrdnchddfile")] + public static extern short ds_wrdnchddfile( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ) ; + + /* read the file name for the DNC operation in the host */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rddnchostfile")] + public static extern short ds_rddnchostfile( ushort FlibHndl, out short a, [Out,MarshalAs(UnmanagedType.AsAny)] Object b); + + /* write the file name for the DNC operation in the host */ + [DllImport("FWLIB32.dll", EntryPoint="ds_wrdnchostfile")] + public static extern short ds_wrdnchostfile( ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a ) ; + + /* read the connecting host number */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdhostno")] + public static extern short ds_rdhostno(ushort FlibHndl, out short a); + + /* read maintenance information */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdmntinfo")] + public static extern short ds_rdmntinfo(ushort FlibHndl, short a, [Out,MarshalAs(UnmanagedType.LPStruct)]DSMNTINFO b); + + /* check the Data Server's HDD */ + [DllImport("FWLIB32.dll", EntryPoint="ds_checkhdd")] + public static extern short ds_checkhdd(ushort FlibHndl); + + /* format the Data Server's HDD */ + [DllImport("FWLIB32.dll", EntryPoint="ds_formathdd")] + public static extern short ds_formathdd(ushort FlibHndl); + + /* create the directory in the Data Server's HDD */ + [DllImport("FWLIB32.dll", EntryPoint="ds_makehdddir")] + public static extern short ds_makehdddir(ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a); + + /* delete directory in the Data Server's HDD */ + [DllImport("FWLIB32.dll", EntryPoint="ds_delhdddir")] + public static extern short ds_delhdddir(ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a); + + /* change the current directory */ + [DllImport("FWLIB32.dll", EntryPoint="ds_chghdddir")] + public static extern short ds_chghdddir(ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a); + + /* execute the PUT command according to the list file */ + [DllImport("FWLIB32.dll", EntryPoint="ds_lputhddfile")] + public static extern short ds_lputhddfile(ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a); + + /* delete files according to the list file */ + [DllImport("FWLIB32.dll", EntryPoint="ds_ldelhddfile")] + public static extern short ds_ldelhddfile(ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a); + + /* execute the GET command according to the list file */ + [DllImport("FWLIB32.dll", EntryPoint="ds_lgethostfile")] + public static extern short ds_lgethostfile(ushort FlibHndl, [In,MarshalAs(UnmanagedType.AsAny)] Object a); + + /* read the directory for M198 operation */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdm198hdddir")] + public static extern short ds_rdm198hdddir( ushort FlibHndl, [Out,MarshalAs(UnmanagedType.AsAny)] Object a ) ; + + /* write the directory for M198 operation */ + [DllImport("FWLIB32.dll", EntryPoint="ds_wrm198hdddir")] + public static extern short ds_wrm198hdddir( ushort FlibHndl ) ; + + /* read the connecting host number for the M198 operation */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdm198host")] + public static extern short ds_rdm198host( ushort FlibHndl, out short a ) ; + + /* write the connecting host number for the M198 operation */ + [DllImport("FWLIB32.dll", EntryPoint="ds_wrm198host")] + public static extern short ds_wrm198host( ushort FlibHndl ) ; + + /* write the connecting host number */ + [DllImport("FWLIB32.dll", EntryPoint="ds_wrhostno")] + public static extern short ds_wrhostno( ushort FlibHndl, short a ) ; + + /* search string in data server program */ + [DllImport("FWLIB32.dll", EntryPoint="ds_searchword")] + public static extern short ds_searchword( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.AsAny)] Object a); + + /* read the searching result */ + [DllImport("FWLIB32.dll", EntryPoint="ds_searchresult")] + public static extern short ds_searchresult( ushort FlibHndl); + + /* read file in the Data Server's HDD */ + [DllImport("FWLIB32.dll", EntryPoint="ds_rdfile")] + public static extern short ds_rdfile( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.AsAny)] Object a, + [In,MarshalAs(UnmanagedType.AsAny)] Object b); + + /* write file in the Data Server's HDD */ + [DllImport("FWLIB32.dll", EntryPoint="ds_wrfile")] + public static extern short ds_wrfile( ushort FlibHndl, + [In,MarshalAs(UnmanagedType.AsAny)] Object a, + [In,MarshalAs(UnmanagedType.AsAny)] Object b); + +/*--------------------------*/ +/* HSSB multiple connection */ +/*--------------------------*/ + + /* read number of node */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdnodenum")] + public static extern short cnc_rdnodenum( out int a ); + + /* read node informations */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdnodeinfo")] + public static extern short cnc_rdnodeinfo( int a, [Out,MarshalAs(UnmanagedType.LPStruct)] ODBNODE b ); + + /* set default node number */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_setdefnode")] + public static extern short cnc_setdefnode( int a ); + + /* allocate library handle 2 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_allclibhndl2")] + public static extern short cnc_allclibhndl2( int node, out ushort FlibHndl ); + + +/*---------------------*/ +/* Ethernet connection */ +/*---------------------*/ + + /* allocate library handle 3 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_allclibhndl3")] + public static extern short cnc_allclibhndl3( [In,MarshalAs(UnmanagedType.AsAny)] Object ip, + ushort port,int timeout, out ushort FlibHndl); + + /* allocate library handle 4 */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_allclibhndl4")] + public static extern short cnc_allclibhndl4( [In,MarshalAs(UnmanagedType.AsAny)] Object ip, + ushort port,int timeout, uint id, out ushort FlibHndl); + + /* set timeout for socket */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_settimeout")] + public static extern short cnc_settimeout( ushort FlibHndl, int a ); + + /* reset all socket connection */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_resetconnect")] + public static extern short cnc_resetconnect( ushort FlibHndl ); + + /* get option state for FOCAS1/Ethernet */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_getfocas1opt")] + public static extern short cnc_getfocas1opt( ushort FlibHndl, short a, out int b ); + + /* read Ethernet board information */ + [DllImport("FWLIB32.dll", EntryPoint="cnc_rdetherinfo")] + public static extern short cnc_rdetherinfo( ushort FlibHndl, out short a, out short b ); + + + [StructLayout(LayoutKind.Sequential, Pack = 4)] + public struct IDBSDTCHAN + { + public short type; + public byte chno; + public byte axis; + public ushort shift; + } + //[StructLayout(LayoutKind.Sequential, Pack = 4)] + //public struct ODBSD + //{ + // public IntPtr chadata; + // public IntPtr count; + //} + + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdtsetchnl")] + public static extern short cnc_sdtsetchnl(ushort FlibHndl, short num, int datanum, [In] IDBSDTCHAN[] channel); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdtclrchnl")] + public static extern short cnc_sdtclrchnl( ushort FlibHndl ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdtstartsmpl")] + public static extern short cnc_sdtstartsmpl( ushort FlibHndl, short path, int seq_no ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdtcancelsmpl")] + public static extern short cnc_sdtcancelsmpl( ushort FlibHndl ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdtreadsmpl")] + public static extern short cnc_sdtreadsmpl(ushort FlibHndl, out short stat, int datanum, [In] ODBSD[] sampledata); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdtendsmpl")] + public static extern short cnc_sdtendsmpl( ushort FlibHndl ); + + [DllImport("FWLIB32.dll", EntryPoint="cnc_sdtread1shot")] + public static extern short cnc_sdtread1shot(ushort FlibHndl, out ushort[] data); + + // Personalizzate + [DllImport("FWLIB32.dll", EntryPoint = "cnc_rdalmmsg")] + public static extern short cnc_rdalmmsg_custom(ushort FlibHndl, short a, ref short b, [Out, MarshalAs(UnmanagedType.LPArray, SizeConst = 17)] ODBALMMSG_data_custom[] c); + + + [DllImport("FWLIB32.dll", EntryPoint = "cnc_rdalmmsg2")] + public static extern short cnc_rdalmmsg2_custom(ushort FlibHndl, short a, ref short b, [Out, MarshalAs(UnmanagedType.LPArray, SizeConst = 17)] ODBALMMSG2_data_custom[] c); + + /* read operator's message */ + [DllImport("FWLIB32.dll", EntryPoint = "cnc_rdopmsg3")] + public static extern short cnc_rdopmsg3_custom(ushort FlibHndl, + short type, ref short number, [Out, MarshalAs(UnmanagedType.LPArray, SizeConst = 17)] Focas1.OPMSG3_data_custom[] opmsg); + +} // End for Focas1 class diff --git a/nunit.runsettings b/nunit.runsettings new file mode 100644 index 0000000..4ab25bc --- /dev/null +++ b/nunit.runsettings @@ -0,0 +1,12 @@ + + + + {m} + + + diff --git a/packages.config b/packages.config new file mode 100755 index 0000000..1d940f5 --- /dev/null +++ b/packages.config @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file