Task #210 — Modbus server-side factory + seed SQL #216
Reference in New Issue
Block a user
Delete Branch "task-210-modbus-factory-seed"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent: #209. First of four driver-factory PRs that unblock e2e stages 3-5.
What this does
Adds
ModbusDriverFactoryExtensions+ aseed-modbus-smoke.sqlso aDriverType='Modbus'row in the Config DB actually boots aModbusDriver+ publishes its tags as OPC UA variables. Before this PR,DriverInstanceBootstrappersilently skipped any row whose DriverType wasn'tGalaxyorFOCAS.Changes
src/ZB.MOM.WW.OtOpcUa.Driver.Modbus/ModbusDriverFactoryExtensions.cs— mirrors the Galaxy + FOCAS extension classes.CreateInstance(driverInstanceId, driverConfigJson)deserialisesModbusDriverConfigDtoto a fullModbusDriverOptions(Host/Port/UnitId/TimeoutMs/Probe/Tags with strict enum parsing for Region / DataType / ByteOrder / StringByteOrder).src/ZB.MOM.WW.OtOpcUa.Server/Program.cs— register the factory after Galaxy + FOCAS.src/ZB.MOM.WW.OtOpcUa.Driver.Modbus.csproj— addCoreproject reference (the factory needsDriverFactoryRegistryfromCore.Hosting; Galaxy/FOCAS already have this).src/ZB.MOM.WW.OtOpcUa.Server.csproj— addDriver.ModbusProjectReference so the registration compiles.scripts/smoke/seed-modbus-smoke.sql— one-cluster smoke seed modelled onseed-phase-7-smoke.sql. Createsmodbus-smokecluster + node + Draft generation + Namespace + UnsArea/UnsLine/Equipment + one Modbus DriverInstance + one Tag atHR[200]:UInt16. Ends withsp_PublishGeneration. HR[100] deliberately avoided — pymodbusstandard.jsonruns an auto-increment action there.Test plan
AB CIP / S7 / AB Legacy follow in their own PRs.