Files
DP44/docs/ai/DataPRO/IService/StateMachine/StatusAndParameters.md
2026-04-17 14:55:32 -04:00

4.6 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
DataPRO/IService/StateMachine/StatusAndParameters/IStatusInfo.cs
DataPRO/IService/StateMachine/StatusAndParameters/IStatusParameters.cs
DataPRO/IService/StateMachine/StatusAndParameters/GlobalStatusParameters.cs
DataPRO/IService/StateMachine/StatusAndParameters/Status.cs
DataPRO/IService/StateMachine/StatusAndParameters/GlobalStatusInformation.cs
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: true
  • bool DisableAutoSense { get; set; } - Default: SensorConstants.DisableAutoSense
  • void 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: false
  • void Reset() - Clears all lists and sets ExcitationOn to 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

  • GlobalStatusInformation uses 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 on DownloadParams or DownloadStatusInfo.

Dependencies

  • Depends on:
    • DTS.Common.Enums.Sensors (for SensorConstants.DisableAutoSense)
    • DTS.Common.Interface.DASFactory (for IDASCommunication)
  • Depended on by: Unclear from source alone - likely the main state machine orchestration layer.

Gotchas

  • Incomplete Reset: Status.Reset() does not reset DownloadParams or DownloadStatusInfo, which could lead to stale state if not handled elsewhere.
  • Missing type definitions: Several types referenced in Status class (HardwareDiscoveryParameters, HardwareDiscoveryStatusInfo, ConfigureStatusInformation, ConfigureStatusParameters, RealtimeStatusInformation, RealtimeParameters, DiagnoseParameters, DownloadParameters, DownloadStatusInformation) are not defined in the provided source files.
  • Field vs Property: Status class exposes fields rather than properties for status/parameter objects, which may limit binding or serialization scenarios.