namespace ZB.MOM.WW.OtOpcUa.Driver.AbLegacy.Import; /// /// Materialises entries from a RSLogix export. v1 ships /// a single implementation () for text/CSV "Database /// Export" — RSLogix 500's .RSS and RSLogix 5's .RSP binary project files are /// proprietary and out of scope (no parser ships with libplctag or any community library at /// the time of writing). The interface exists so a binary parser can slot in later without /// reshaping the call sites. /// /// /// /// The deviceHostAddress parameter on is required because RSLogix /// exports list addresses scoped to a single PLC; the importer needs to stamp every /// resulting tag with the gateway address that the runtime layer will use to reach /// it. Multi-device deployments call the importer once per device, then concatenate. /// /// /// never throws on parse errors when /// is true (default) — malformed rows /// are skipped with a structured warning logged via the importer's ILogger, and /// the counts surface on . With /// set to false the first malformed row /// throws . /// /// public interface IRsLogixImporter { /// /// Read the entire and emit one /// per recognised symbol row. /// /// Open, readable stream over the RSLogix export. Caller owns it. /// /// Canonical AB Legacy gateway URI (ab://host[:port]/cip-path) the resulting /// tags should bind to. /// /// Filter + safety knobs; null ≡ default options. RsLogixImportResult Parse(Stream stream, string deviceHostAddress, ImportOptions? options = null); }