Files
DP44/docs/ai/DataPRO/IService/Classes/Download.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/Classes/Download/UARTDownloadRequest.cs
DataPRO/IService/Classes/Download/DownloadRequest.cs
DataPRO/IService/Classes/Download/DownloadReport.cs
2026-04-17T15:40:25.049992+00:00 zai-org/GLM-5-FP8 1 343a1296e8698928

Documentation: Download Request and Report Classes

1. Purpose

This module provides data structures and persistence logic for managing download requests and event reports from a Data Acquisition System (DAS) to a PC. It defines three primary classes: DownloadRequest for standard channel-based data downloads, UARTDownloadRequest for UART stream downloads, and DownloadReport for representing event metadata stored on a DAS device. These classes serve as the bridge between in-memory download configurations and database persistence, supporting both the query phase (discovering what events exist) and the download phase (specifying what data to retrieve).


2. Public Interface

UARTDownloadRequest (implements IUARTDownloadRequest)

Properties:

Property Type Description
EventNumber ushort Identifies which event to download data from
TotalByteCount ulong Total size of the UART data
TriggerByteCount ulong Byte offset where trigger occurred in the data stream
FaultByteCount ulong Byte offset where fault occurred in the data stream
StartTimestamp ulong Timestamp when UART stream started
EndTimestamp ulong Timestamp when UART stream ended
BaudRate int Baud rate used during UART recording

Static Method:

public static void SetWhatToDownload(IDASCommunication das, IUARTDownloadRequest request, bool bSetInDb)
  • Sets the UART download request on the DAS communication object via udas.WhatUARTToDownload
  • If bSetInDb is true and database is connected, clears existing requests and inserts the new request into the database
  • Catches and logs exceptions without re-throwing

DownloadRequest (implements IDownloadRequest)

Constants:

Constant Value Description
ALL_CHANNELS 0xFF Setting DASChannelNumber to this value downloads all channels (currently the only supported option per source comments)

Properties:

Property Type Description
EventNumber ushort Identifies which event to download data from
DASChannelNumber byte Channel identifier (must be ALL_CHANNELS)
StartSample virtual ulong First sample to download
EndSample virtual ulong Last sample to download
SamplesToSkip ulong Sub-sampling interval (0 or 1 = no subsampling, 2 = every other sample, etc.)
StartRecordTimestampSec double Start record timestamp in seconds
TriggerTimestampSec double Trigger timestamp in seconds
StartRecordTimestampNanoSec double Start record timestamp nanoseconds component
TriggerTimestampNanoSec double Trigger timestamp nanoseconds component
PTPMasterSync bool PTP master sync flag

Static Method:

public static void SetWhatToDownload(IDASCommunication das, IDownloadRequest request, bool bSetInDb)
  • Logs the request details via APILogger.Log
  • Sets the download request on das.WhatToDownload
  • If bSetInDb is true and database is connected, clears existing requests and inserts the new request
  • Catches and logs exceptions without re-throwing

DownloadReport (implements IDownloadReport)

Properties:

Property Type Description
Events IEventInfo[] Array of all events stored on the DAS
UARTEvents IUARTEventInfo[] Array of all UART events stored on the DAS

Nested Class: EventInfo (implements IEventInfo)

Property Type Description
Modules IDASModule[] Module information addressable by ModuleArrayIndex
EventNumber int Event number
TestGUID Guid GUID of the corresponding event
FaultFlags ushort Fault flags
FaultFlagsEx ushort Extended fault flags
ArmAttempts byte Number of arm attempts
TestTime DateTime Timestamp of the event
TestID string ID of the event
Description string Text description stored with the event
HasBeenDownloaded bool True if event already downloaded
WasTriggered bool True if event received a trigger

Methods:

public void ClearFaults()  //