namespace ZB.MOM.WW.OtOpcUa.Driver.FOCAS;
///
/// Fanuc CNC controller series. Used by to
/// gate which FOCAS addresses + value ranges the driver accepts against a given
/// CNC — the FOCAS API surface varies meaningfully between series (macro ranges,
/// PMC address letters, parameter numbers). A tag reference that's valid on a
/// 30i might be out-of-range on an 0i-MF; validating at driver
/// InitializeAsync time surfaces the mismatch as a fast config error
/// instead of a runtime read failure after the server's already running.
///
///
/// Values chosen from the Fanuc FOCAS Developer Kit documented series
/// matrix. Add a new entry + a row to when
/// a new controller is targeted — the driver will refuse the device until both
/// sides of the enum are filled in.
/// Defaults to when the operator doesn't specify;
/// the capability matrix treats Unknown as permissive (no range validation,
/// same as pre-matrix behaviour) so old configs don't break on upgrade.
///
public enum FocasCncSeries
{
/// No series declared; capability matrix is permissive (legacy behaviour).
Unknown = 0,
/// Series 0i-D — compact CNC, narrow macro + PMC ranges.
Zero_i_D,
/// Series 0i-F — successor to 0i-D; widened macro range, added Plus variant.
Zero_i_F,
/// Series 0i-MF / 0i-MF Plus — machining-centre variants of 0i-F.
Zero_i_MF,
/// Series 0i-TF / 0i-TF Plus — turning-centre variants of 0i-F.
Zero_i_TF,
/// Series 16i / 18i / 21i — mid-range legacy; narrow ranges, limited PMC letters.
Sixteen_i,
/// Series 30i — high-end; widest macro / PMC / parameter ranges.
Thirty_i,
/// Series 31i — subset of 30i (fewer axes, same FOCAS surface).
ThirtyOne_i,
/// Series 32i — compact 30i variant.
ThirtyTwo_i,
/// Power Motion i — motion-control variant; atypical macro coverage.
PowerMotion_i,
}