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
<PackageReference Include="Dreamine.Secs.Abstractions" Version="1.0.0" />
<PackageVersion Include="Dreamine.Secs.Abstractions" Version="1.0.0" />
<PackageReference Include="Dreamine.Secs.Abstractions" />
paket add Dreamine.Secs.Abstractions --version 1.0.0
#r "nuget: Dreamine.Secs.Abstractions, 1.0.0"
#:package Dreamine.Secs.Abstractions@1.0.0
#addin nuget:?package=Dreamine.Secs.Abstractions&version=1.0.0
#tool nuget:?package=Dreamine.Secs.Abstractions&version=1.0.0
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/ISecsMessageSessionProvidercontracts with typed identity and state, automatically allocated W0/W1 sends, and normalSecsDialogueDefinitioncorrelation. - 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 | Versions 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. |
-
net8.0
- Dreamine.Communication.Abstractions (>= 1.0.2)
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 |