diff --git a/ZB.MOM.WW.OtOpcUa.slnx b/ZB.MOM.WW.OtOpcUa.slnx index ebe20da3..34b52687 100644 --- a/ZB.MOM.WW.OtOpcUa.slnx +++ b/ZB.MOM.WW.OtOpcUa.slnx @@ -30,6 +30,7 @@ + diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/AbLegacyDataType.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts/AbLegacyDataType.cs similarity index 55% rename from src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/AbLegacyDataType.cs rename to src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts/AbLegacyDataType.cs index e46283d4..3c066c7e 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/AbLegacyDataType.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts/AbLegacyDataType.cs @@ -1,5 +1,3 @@ -using ZB.MOM.WW.OtOpcUa.Core.Abstractions; - namespace ZB.MOM.WW.OtOpcUa.Driver.AbLegacy; /// @@ -27,22 +25,3 @@ public enum AbLegacyDataType /// Control sub-element — caller addresses .LEN, .POS, .EN, .DN, .ER. ControlElement, } - -/// Map a PCCC data type to the driver-surface . -public static class AbLegacyDataTypeExtensions -{ - /// Converts an AbLegacyDataType to the corresponding DriverDataType. - /// The PCCC data type to convert. - /// The mapped driver data type. - public static DriverDataType ToDriverDataType(this AbLegacyDataType t) => t switch - { - AbLegacyDataType.Bit => DriverDataType.Boolean, - AbLegacyDataType.Int or AbLegacyDataType.AnalogInt => DriverDataType.Int32, - AbLegacyDataType.Long => DriverDataType.Int32, // matches Modbus/AbCip 64→32 gap - AbLegacyDataType.Float => DriverDataType.Float32, - AbLegacyDataType.String => DriverDataType.String, - AbLegacyDataType.TimerElement or AbLegacyDataType.CounterElement - or AbLegacyDataType.ControlElement => DriverDataType.Int32, - _ => DriverDataType.Int32, - }; -} diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/AbLegacyDriverOptions.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts/AbLegacyDriverOptions.cs similarity index 96% rename from src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/AbLegacyDriverOptions.cs rename to src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts/AbLegacyDriverOptions.cs index 37f12515..81513274 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/AbLegacyDriverOptions.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts/AbLegacyDriverOptions.cs @@ -30,7 +30,7 @@ public sealed record AbLegacyDeviceOptions( /// /// One PCCC-backed OPC UA variable. is the canonical PCCC -/// file-address string that parses via . +/// file-address string that parses via AbLegacyAddress.TryParse. /// public sealed record AbLegacyTagDefinition( string Name, diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/PlcFamilies/AbLegacyPlcFamilyProfile.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts/AbLegacyPlcFamilyProfile.cs similarity index 100% rename from src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/PlcFamilies/AbLegacyPlcFamilyProfile.cs rename to src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts/AbLegacyPlcFamilyProfile.cs diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts.csproj b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts.csproj new file mode 100644 index 00000000..d911061a --- /dev/null +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Contracts.csproj @@ -0,0 +1,9 @@ + + + net10.0 + enable + enable + true + + + diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/AbLegacyDataTypeExtensions.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/AbLegacyDataTypeExtensions.cs new file mode 100644 index 00000000..88ea2c33 --- /dev/null +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/AbLegacyDataTypeExtensions.cs @@ -0,0 +1,22 @@ +using ZB.MOM.WW.OtOpcUa.Core.Abstractions; + +namespace ZB.MOM.WW.OtOpcUa.Driver.AbLegacy; + +/// Map a PCCC data type to the driver-surface . +public static class AbLegacyDataTypeExtensions +{ + /// Converts an AbLegacyDataType to the corresponding DriverDataType. + /// The PCCC data type to convert. + /// The mapped driver data type. + public static DriverDataType ToDriverDataType(this AbLegacyDataType t) => t switch + { + AbLegacyDataType.Bit => DriverDataType.Boolean, + AbLegacyDataType.Int or AbLegacyDataType.AnalogInt => DriverDataType.Int32, + AbLegacyDataType.Long => DriverDataType.Int32, // matches Modbus/AbCip 64→32 gap + AbLegacyDataType.Float => DriverDataType.Float32, + AbLegacyDataType.String => DriverDataType.String, + AbLegacyDataType.TimerElement or AbLegacyDataType.CounterElement + or AbLegacyDataType.ControlElement => DriverDataType.Int32, + _ => DriverDataType.Int32, + }; +} diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.csproj b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.csproj index 22df544c..167eb613 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.csproj +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy/ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.csproj @@ -13,6 +13,7 @@ +