Dreamine.Secs.Abstractions 1.0.0

dotnet add package Dreamine.Secs.Abstractions --version 1.0.0
                    
NuGet\Install-Package Dreamine.Secs.Abstractions -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Dreamine.Secs.Abstractions" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Dreamine.Secs.Abstractions" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Dreamine.Secs.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Dreamine.Secs.Abstractions --version 1.0.0
                    
#r "nuget: Dreamine.Secs.Abstractions, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Dreamine.Secs.Abstractions@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Dreamine.Secs.Abstractions&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Dreamine.Secs.Abstractions&version=1.0.0
                    
Install as a Cake Tool

Dreamine.Secs.Abstractions

Dreamine.Secs.Abstractions is the provider-independent domain and contract layer for Dreamine SECS-II and HSMS-SS communication.

➡️ 한국어 문서 보기

Implemented scope

  • Immutable SecsMessage, typed Session ID, Stream, Function, W-bit, and System Bytes values.
  • Typed SECS-II items: List, Binary, Boolean, ASCII, raw JIS-8, I1/I2/I4/I8, U1/U2/U4/U8, F4, and F8.
  • HSMS ten-byte header, data/control messages, SType/status/reject/state/timer models.
  • Structured validation results and protocol, decode, state, transaction-timeout, and HSMS-timer exceptions. Decode exceptions and diagnostics can retain typed HSMS header context when a complete header was available.
  • Configurable T3/T5/T6/T7/T8 options plus frame, message, nesting-depth, and per-list child-count limits.
  • Opt-in complete-frame wire-observation contracts with bounded capture, drop accounting, connection epochs, and a logging-framework-neutral diagnostic sink.
  • Provider and connection lifecycle contracts based on Dreamine.Communication.Abstractions.
  • Additive provider-neutral ISecsMessageSession / ISecsMessageSessionProvider contracts with typed identity and state, automatically allocated W0/W1 sends, and normal SecsDialogueDefinition correlation.
  • A bounded asynchronous inbound-Primary dispatcher with exact S/F precedence, fallback handling, explicit drop accounting, and one-shot epoch-bound replies.

The model intentionally avoids object, dynamic, and string-based type discrimination. Caller-owned arrays are copied at item construction; values are exposed as read-only memory.

Wire-observation boundary

Wire observation is disabled by default. When enabled by an implementation, IHsmsWireObservationSource exposes one pull consumer and never requires the protocol path to invoke or wait for that consumer. An observation describes a complete frame including its four-byte length prefix, but CapturedBytes can be a truncated retained prefix and sequence gaps indicate dropped observations. Captured bytes can contain sensitive application payload and must be protected accordingly. Partial frames are not observations.

Message-session boundary

The original ISecsConnection and ISecsCommunicationProvider remain unchanged; the typed message-session interfaces are parallel additive contracts. Exact dispatcher registration wins over fallback, and fallback wins over the legacy message event. Exact W-bit mismatch is still claimed but cannot reply. A full or stopping bounded queue drops the newest already-claimed Primary without falling through. The first reply attempt consumes ownership even if sending fails or is canceled.

Endpoint, Active/Passive mode, Session ID, role, timers, limits, AutoReconnect, dispatcher settings, and wire-observation settings are construction snapshots. Change them by creating a new session; per-call cancellation affects only that operation. Role selects upper application/responder policy and does not alter the HSMS state machine.

Standard boundary

The implemented wire rules were checked against locally held SEMI E5-0813 and E37-0413 documents. This package does not claim current-revision conformance, certification, or vendor interoperability. SEMI source documents are not distributed with the repository.

Deferred work includes SECS-I, two-byte-character items, detailed Stream 9 bodies, SML, GEM, GEM300, vendor SDK providers, and UI.

Dependency boundary

Dreamine.Secs.Abstractions
    -> Dreamine.Communication.Abstractions

This project never references Dreamine.Secs.Com or a vendor implementation.

License

MIT.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on Dreamine.Secs.Abstractions:

Package Downloads
Dreamine.Gem.Abstractions

Shared contracts for typed Dreamine GEM host and equipment capabilities.

Dreamine.Secs.Com

Native Dreamine SECS-II and HSMS communication runtime with explicit verification boundaries.

Dreamine.Gem300.Abstractions

Shared contracts for Dreamine GEM300 domain capability modules.

Dreamine.Gem

Dreamine GEM runtime with typed equipment profiles and an E30-0611 derived interoperability subset.

Dreamine.SecsGem.FullKit

All-in-one meta package for the Dreamine SECS-II, HSMS, GEM, and GEM300 libraries.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 140 8/12/2026