New Cnc/Mazak/ machine integration mirroring the Fagor/Mitsubishi FTP pattern: MazakConnectionConfig, IMazakFtpClient, MazakFtpClient, MazakMachine (ICncMachine). Transfers EIA/ISO G-code text over FTP to Smooth-family controllers. Mazatrol CMT (proprietary binary) out of scope. Design (verified against Mazak Matrix EIA manual + field reports): - Filenames preserved verbatim; no O#### rename, no extension append. - Symmetric ResolvePath for Read/Write/Delete (avoids ISS-020 class; Delete resolved too, unlike copied Mitsubishi source). - Validator = full passthrough for Mazak (EIA permits ';' EOB, '[ ]', '#'; restrictive Fanuc checks would false-reject valid programs). - Port 21 default, -porta=23 for Smooth Ai IIS variant. - ProgramDirectory site-specific, no default. Wiring: CncManufacturer.Mazak, ArgParser 'mazak' token, CncMachineFactory. Tests: MazakMachineTests (unit), MazakMachineIntegrationTests (FTP-stub roundtrip + symmetry guard), Mazak cases in validator/factory tests. Docs: README Controller Mazak section + table row; ISS-021 (constraints, EIA-option requirement), ISS-022 (Mitsubishi delete asymmetry logged). NOT build-verified (no .NET toolchain in build env) — verify on Windows. Projects: NcProgramManager, NcProgramManager.Tests Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
25 lines
998 B
C#
25 lines
998 B
C#
using System;
|
|
|
|
namespace NcProgramManager.Cnc.Mazak
|
|
{
|
|
public sealed class MazakConnectionConfig
|
|
{
|
|
public string Name { get; set; }
|
|
public string IpAddress { get; set; }
|
|
/// <summary>
|
|
/// FTP port. Default 21. Some Smooth Ai units run FTP on port 23
|
|
/// (port 21 collides with Mazatrol boot/shutdown backup) - operator
|
|
/// overrides via -porta.
|
|
/// </summary>
|
|
public int Port { get; set; } = 21;
|
|
public string Username { get; set; } = string.Empty;
|
|
public string Password { get; set; } = string.Empty;
|
|
/// <summary>
|
|
/// Remote NC program directory. Site-specific: SD/D-drive
|
|
/// "Machine Programs" folder, varies per Smooth firmware. No safe
|
|
/// public default - "/" is a placeholder, operator must set it.
|
|
/// </summary>
|
|
public string ProgramDirectory { get; set; } = "/";
|
|
public TimeSpan RequestTimeout { get; set; } = TimeSpan.FromSeconds(10);
|
|
}
|
|
}
|