This commit is contained in:
2026-04-17 14:55:32 -04:00
commit bc3ac1d4c9
18017 changed files with 4371742 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
---
source_files:
- DataPRO/StateMachine.Tests/Properties/AssemblyInfo.cs
generated_at: "2026-04-17T16:29:43.888951+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "9e0815f4117b080c"
---
# Properties
### Purpose
This module contains assembly-level metadata configuration for the FftSharp assembly. It is a standard .NET assembly information file that defines version numbers, copyright information, COM visibility settings, and a unique GUID for the assembly. This file exists to provide identity and configuration metadata for the compiled FftSharp DLL.
### Public Interface
No public types, functions, or methods are exposed. This module consists solely of assembly-level attributes:
- `AssemblyTitle`: Set to "FftSharp"
- `AssemblyDescription`: Empty
- `AssemblyCompany`: Empty
- `AssemblyProduct`: Set to "FftSharp"
- `AssemblyCopyright`: Set to "Copyright © 2022"
- `ComVisible`: Set to `false`
- `Guid`: "9ff2beb4-a267-4139-a37d-9c9a58d7d36d"
- `AssemblyVersion`:

View File

@@ -0,0 +1,47 @@
---
source_files:
- DataPRO/StateMachine.Tests/States/RealtimeShould.cs
- DataPRO/StateMachine.Tests/States/ConfigureShould.cs
- DataPRO/StateMachine.Tests/States/RealtimeStartShould.cs
- DataPRO/StateMachine.Tests/States/DiagnoseShould.cs
- DataPRO/StateMachine.Tests/States/HardwareDiscoveryStartShould.cs
generated_at: "2026-04-17T15:52:23.970516+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "ca0ada14242b6e01"
---
# StateMachine Module Documentation
## 1. Purpose
This module implements a state machine for managing system operational states within the DTS.DASLib.Service namespace. It provides state transition logic for a data acquisition system (DAS) that progresses through hardware discovery, configuration, diagnostics, download, arming, and realtime operation phases. Each state class encapsulates its own transition logic via a `StateSelector()` method that determines the next appropriate state based on runtime status and parameter conditions.
---
## 2. Public Interface
### State Enum
An enumeration defining all possible system states. Observed values include:
- `State.HardwareDiscoveryStart`
- `State.HardwareDiscovery`
- `State.Configure`
- `State.ConfigureStart`
- `State.Download`
- `State.Arm`
- `State.Diagnose`
- `State.RealtimeStart`
- `State.Realtime`
### Realtime Class
**Properties:**
- `State` — Returns `State.Realtime`
**Methods:**
- None observed in tests (terminal state).
---
### Configure Class
**Methods:**
- `StateSelector()` — Returns a `dasState` object with `State.ConfigureStart

View File

@@ -0,0 +1,45 @@
---
source_files:
- DataPRO/StateMachine.Tests/StatusAndParameters/GlobalStatusInformationShould.cs
generated_at: "2026-04-17T15:59:41.130173+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "c691b9e3930f9a67"
---
# GlobalStatusInformation Module Documentation
## 1. Purpose
`GlobalStatusInformation` is a state tracking class within the `DTS.DASLib.Service.StateMachine` namespace that manages collections of device units (`IDASCommunication` objects) across multiple operational states: Realtime, Arm, LowPower, and HighPower. It serves as a central registry for tracking which devices are in which operational mode within a state machine context, and includes an `ExcitationOn` flag for system-wide excitation state.
## 2. Public Interface
The following members are inferred from test usage. The actual implementation file was not provided, so signatures are reconstructed from test patterns:
| Member | Signature | Behavior |
|--------|-----------|----------|
| `GetUnitsInRealtime` | `IList<IDASCommunication> GetUnitsInRealtime()` | Returns a list of units currently in realtime mode. Returns empty list when no units are registered. |
| `AddUnitInRealtime` | `void AddUnitInRealtime(IDASCommunication device)` | Adds a device to the realtime collection. Duplicate references are ignored. |
| `GetUnitsInArm` | `IList<IDASCommunication> GetUnitsInArm()` | Returns a list of units currently in arm state. Returns empty list when no units are registered. |
| `AddUnitInArm` | `void AddUnitInArm(IDASCommunication device)` | Adds a device to the arm collection. Duplicate references are ignored. |
| `GetUnitsAtLowPower` | `IList<IDASCommunication> GetUnitsAtLowPower()` | Returns a list of units currently at low power. Returns empty list when no units are registered. |
| `AddUnitAtLowPower` | `void AddUnitAtLowPower(IDASCommunication device)` | Adds a device to the low power collection. Removes the device from high power collection if present. Duplicate references are ignored. |
| `GetUnitsAtHighPower` | `IList<IDASCommunication> GetUnitsAtHighPower()` | Returns a list of units currently at high power. Returns empty list when no units are registered. |
| `AddUnitAtHighPower` | `void AddUnitAtHighPower(IDASCommunication device)` | Adds a device to the high power collection. Removes the device from low power collection if present. Duplicate references are ignored. |
| `Reset` | `void Reset()` | Clears all unit collections (Realtime, Arm, LowPower, HighPower) and sets `ExcitationOn` to `false`. |
| `ExcitationOn` | `bool ExcitationOn { get; set; }` | Boolean property tracking excitation state. Defaults to `false`. |
**Note:** The exact return type of the `GetUnits*` methods is unclear from source alone. Tests show the return value has a `.Length` property and supports indexer access (`[0]`, `[1]`), suggesting array-like behavior, yet tests also compare against `new List<IDASCommunication>()`.
## 3. Invariants
- **Empty State**: All unit collections are empty upon instantiation; `ExcitationOn` is `false`.
- **No Duplicate References**: Adding the same object reference to any collection more than once results in only one entry.
- **Mutual Exclusivity (LowPower/HighPower)**: A unit cannot exist in both LowPower and HighPower collections simultaneously. Adding to one removes from the other.
- **Independence of Realtime/Arm Collections**: The Realtime and Arm collections appear independent of LowPower/HighPower (a unit can exist in multiple non-mutually-exclusive states).
- **Order Preservation**: Units are retrieved in the order they were added (index 0 is first added, etc.).
## 4. Dependencies
**This module depends on:**

View File

@@ -0,0 +1,13 @@
---
source_files:
- DataPRO/StateMachine.Tests/StatusAndParameters/Realtime/RealtimeStatusInformationShould.cs
generated_at: "2026-04-17T16:14:14.051694+00:00"
model: "zai-org/GLM-5-FP8"
schema_version: 1
sha256: "7c0bf48c3a142a68"
---
# Realtime
### Purpose
This module contains unit tests for the `RealtimeStatusInformation` class, verifying its realtime data acquisition behavior. It tests the state machine's handling of realtime mode initialization and status queries, ensuring