4.6 KiB
4.6 KiB
source_files, generated_at, model, schema_version, sha256
| source_files | generated_at | model | schema_version | sha256 | |||||
|---|---|---|---|---|---|---|---|---|---|
|
2026-04-17T16:03:17.837339+00:00 | zai-org/GLM-5-FP8 | 1 | 2686f48e66f3b9e3 |
StatusAndParameters
Purpose
This module defines the status and parameter tracking infrastructure for a state machine that manages data acquisition system operations. It provides interfaces and concrete implementations for tracking hardware discovery, configuration, realtime operation, diagnostics, and download states, including thread-safe tracking of device power states and operational modes.
Public Interface
IStatusInfo (interface)
void Reset()- Resets status information to default state.
IStatusParameters (interface)
void Reset()- Resets parameters to default state.
GlobalStatusParameters : IStatusParameters
bool AllowUDPMulticast { get; set; }- Default:truebool DisableAutoSense { get; set; }- Default:SensorConstants.DisableAutoSensevoid Reset()- Resets both properties to defaults.
GlobalStatusInformation : IStatusInfo
IDASCommunication[] GetUnitsInRealtime()- Returns array of devices currently in realtime mode.void AddUnitInRealtime(IDASCommunication device)- Adds device to realtime list (no-op if already present).IDASCommunication[] GetUnitsInArm()- Returns array of devices currently in arm mode.void AddUnitInArm(IDASCommunication device)- Adds device to arm list (no-op if already present).IDASCommunication[] GetUnitsAtLowPower()- Returns array of devices at low power.void AddUnitAtLowPower(IDASCommunication das)- Adds to low power list; removes from high power list if present.IDASCommunication[] GetUnitsAtHighPower()- Returns array of devices at high power.void AddUnitAtHighPower(IDASCommunication das)- Adds to high power list; removes from low power list if present.bool ExcitationOn { get; set; }- Default:falsevoid Reset()- Clears all lists and setsExcitationOnto false.
Status
HardwareDiscoveryParameters HardwareDiscoveryParams- Field, instantiated inline.HardwareDiscoveryStatusInfo HardwareDiscoveryStatusInfo- Field, instantiated inline.GlobalStatusInformation GlobalStatusInformation- Field, instantiated inline.GlobalStatusParameters GlobalStatusParameters- Field, instantiated inline.ConfigureStatusInformation ConfigureStatus- Field, instantiated inline.ConfigureStatusParameters ConfigureParameters- Field, instantiated inline.RealtimeStatusInformation RealtimeStatus- Field, instantiated inline.RealtimeParameters RealtimeParams- Field, instantiated inline.DiagnoseParameters DiagnoseParams- Field, instantiated inline.DownloadParameters DownloadParams- Field, instantiated inline.DownloadStatusInformation DownloadStatusInfo- Field, instantiated inline.void Reset()- Calls Reset() on most (but not all) child objects.
Invariants
GlobalStatusInformationuses a single static lock object (MyLock) for thread-safety on all list operations.- A device cannot be in both low power and high power lists simultaneously; adding to one removes from the other.
- A device can exist in multiple operational mode lists (e.g., both realtime and arm lists) - these are independent.
Status.Reset()does NOT call Reset onDownloadParamsorDownloadStatusInfo.
Dependencies
- Depends on:
DTS.Common.Enums.Sensors(forSensorConstants.DisableAutoSense)DTS.Common.Interface.DASFactory(forIDASCommunication)
- Depended on by: Unclear from source alone - likely the main state machine orchestration layer.
Gotchas
- Incomplete Reset:
Status.Reset()does not resetDownloadParamsorDownloadStatusInfo, which could lead to stale state if not handled elsewhere. - Missing type definitions: Several types referenced in
Statusclass (HardwareDiscoveryParameters,HardwareDiscoveryStatusInfo,ConfigureStatusInformation,ConfigureStatusParameters,RealtimeStatusInformation,RealtimeParameters,DiagnoseParameters,DownloadParameters,DownloadStatusInformation) are not defined in the provided source files. - Field vs Property:
Statusclass exposes fields rather than properties for status/parameter objects, which may limit binding or serialization scenarios.