13 KiB
source_files, generated_at, model, schema_version, sha256
| source_files | generated_at | model | schema_version | sha256 | |||||
|---|---|---|---|---|---|---|---|---|---|
|
2026-04-17T15:52:59.500502+00:00 | zai-org/GLM-5-FP8 | 1 | eecaf47313af0712 |
Ribeye Commands Module Documentation
1. Purpose
This module implements a command/response protocol for communicating with "Ribeye" hardware devices (likely a data acquisition system or test equipment). It provides a class hierarchy for constructing, sending, and receiving command packets over a communication interface (ICommunication). The module handles serialization/deserialization of command packets, timeout management, and parsing of binary response data. It exists to abstract the low-level protocol details from higher-level application code, providing strongly-typed command classes for operations like arming triggers, querying device status, downloading test data, and retrieving calibration information.
2. Public Interface
CommandBase (Abstract)
Namespace: DTS.DASLib.Command.Ribeye
Base class for all Ribeye commands. Inherits from AbstractCommandBase.
Constructors:
CommandBase(DTS.Common.Interface.DASFactory.ICommunication sock)— Initializes with a communication socket and default timeout.CommandBase(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)— Initializes with a communication socket and custom timeout in milliseconds.
Protected Properties:
CommandPacket command { get; set; }— The command packet to send.CommandPacket response { get; set; }— The response packet received.
Public Methods:
override void CommandToString(ref List<List<string>> lines)— Serializes the command's original bytes to a string representation, filtering out\nand\rcharacters.override void ResponseToString(ref List<List<string>> lines)— Serializes the response's first 30 bytes to a string representation, or reports "Empty response!" if null.
Protected Methods:
override CommandPacketBase GetCommandPacket()— Factory method returning a newCommandPacket.override CommandPacketBase GetCommandPacket(byte[] buffer)— Factory method returning a newCommandPacketinitialized from bytes.
CommandPacket
Namespace: DTS.DASLib.Command.Ribeye
Represents a serialized command/response packet. Inherits from CommandPacketBase.
Nested Enum:
public enum CommandType {
Reserved = 0x00,
Arm = 0x01,
Attribute = 0x02,
Diagnostics = 0x03,
EventData = 0x04,
FirmwareUpdate = 0x05,
Information = 0x06,
QAandUtility = 0x07,
Realtime = 0x08
}
Constructors:
CommandPacket()— Initializes with empty parameter array andShouldLog = true.CommandPacket(byte[] Bytes)— Parses raw bytes into a packet, splitting on#delimiters.
Public Fields:
string[] Parameter— Array of parameter strings.
Public Properties:
byte[] OriginalBytes(inherited) — Raw bytes of the packet.
Public Methods:
override PacketState VerifyPacket(byte[] Bytes)— Validates packet structure. ReturnsPacketState.Unknownif null or starts with?,PacketState.TooShortif less than 4 bytes or missing\r\nterminator,PacketState.OKotherwise.override byte[] ToBytes()— Serializes parameters to byte array with#delimiters, checksum, and\r\nterminator. Stores result inOriginalBytes.override void ComputeCRCs()— Computes the checksum for the packet.override object ConvertByteToCommandType(byte b)— Converts a byte toCommandTypeenum.override void GetNextSequenceNumber()— Thread-safe incrementing sequence number assignment.
GetParameter Overloads:
void GetParameter(int Position, out double Value)void GetParameter(int Position, out UInt64 Value)void GetParameter(int Position, out Int64 Value)void GetParameter(int Position, out Int32 Value)void GetParameter(int Position, out UInt32 Value)void GetParameter(int Position, out Int16 Value)void GetParameter(int Position, out UInt16 Value)void GetParameter(int Position, out float Value)void GetParameter(int Position, out string Value)
SetParameter Overloads:
void SetParameter(int Position, double Value)void SetParameter(int Position, Int64 Value)void SetParameter(int Position, UInt64 Value)void SetParameter(int Position, Int32 Value)void SetParameter(int Position, UInt32 Value)void SetParameter(int Position, Int16 Value)void SetParameter(int Position, UInt16 Value)void SetParameter(int Position, float Value)void SetParameter(int Position, string Value)
DownloadPacket
Namespace: DTS.DASLib.Command.Ribeye
Extends CommandPacket for binary data downloads.
Constructor:
DownloadPacket(byte[] Bytes)— Parses header parameters (delimited by#, terminated by\n) and extracts binaryDatapayload.
Public Field:
byte[] Data— Binary payload following the header.
Static Method:
static PacketState VerifyPacket(byte[] Bytes, ref uint BytesExpected)— Validates download packet, calculating expected byte count from header parameters (number of channels × samples × 2 bytes + checksums).
DiagnosticsCommands (Abstract)
Namespace: DTS.DASLib.Command.Ribeye
Base class for diagnostic commands. Inherits from CommandBase.
Protected Enum:
protected enum Commands {
Reserved = 0x00,
QueryCurrentPositions = 0x01
}
Constructors:
DiagnosticsCommands(DTS.Common.Interface.DASFactory.ICommunication sock)DiagnosticsCommands(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
Both constructors set command.Type = CommandPacket.CommandType.Diagnostics and call SetCommand with the derived class's _Command value.
QueryCurrentPositions
Namespace: DTS.DASLib.Command.Ribeye
Retrieves current position values from the device. Inherits from DiagnosticsCommands.
Constructors:
QueryCurrentPositions(DTS.Common.Interface.DASFactory.ICommunication sock)QueryCurrentPositions(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
Public Properties:
int NumberOfChannels { get; }— Number of position values returned.float[] Positions { get; }— Array of position values.
Protected Method:
override CommandReceiveAction WholePackage()— Parses response parameters 1 (count) and 2 (comma-separated position string) into_Positionsarray.
InformationCommands (Abstract)
Namespace: DTS.DASLib.Command.Ribeye
Base class for information query commands. Inherits from CommandBase.
Protected Enum:
protected enum Commands {
Reserved = 0x00,
QueryNumberOfLEDs = 0x01,
QueryDataAvailable = 0x02,
QuerySerialNumber = 0x03
}
Constructors:
InformationCommands(DTS.Common.Interface.DASFactory.ICommunication sock)InformationCommands(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
Both constructors set command.Type = CommandPacket.CommandType.Information.
QuerySerialNumber
Namespace: DTS.DASLib.Command.Ribeye
Queries the device serial number. Inherits from InformationCommands.
Constructors:
QuerySerialNumber(DTS.Common.Interface.DASFactory.ICommunication sock)QuerySerialNumber(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
Public Property:
string SerialNumber { get; }— The retrieved serial number.
Protected Method:
override CommandReceiveAction WholePackage()— Extracts serial number from response parameter 1.
QueryNumberOfLEDs
Namespace: DTS.DASLib.Command.Ribeye
Queries the number of LEDs in the device. Inherits from InformationCommands.
Constructors:
QueryNumberOfLEDs(DTS.Common.Interface.DASFactory.ICommunication sock)QueryNumberOfLEDs(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
Public Property:
uint NumberOfLEDs { get; }— The number of LEDs.
Public Method:
override void ResponseToString(ref List<List<string>> lines)— Appends formatted LED count to output.
Protected Method:
override CommandReceiveAction WholePackage()— Extracts LED count from response parameter 1.
QueryDataAvailable
Namespace: DTS.DASLib.Command.Ribeye
Queries available data timing information. Inherits from InformationCommands.
Constructors:
QueryDataAvailable(DTS.Common.Interface.DASFactory.ICommunication sock)QueryDataAvailable(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
Public Properties:
float TotalMS { get; }— Total milliseconds (PreTriggerMS + PostTriggerMS).float PreTriggerMS { get; }— Pre-trigger milliseconds (absolute value of negative value from device).float PostTriggerMS { get; }— Post-trigger milliseconds.
Protected Method:
override CommandReceiveAction WholePackage()— Extracts timing values from response parameters 1 (pre-trigger, converted to absolute) and 2 (post-trigger).
ArmCommands (Abstract)
Namespace: DTS.DASLib.Command.Ribeye
Base class for arm/trigger related commands. Inherits from CommandBase.
Protected Enum:
protected enum Commands {
Reserved = 0x00,
Arm = 0x01,
Disarm = 0x02,
QueryArmAndTriggerStatus = 0x03,
PrepareForDataCollection = 0x04,
DownloadTestData = 0x05,
Trigger = 0x06
}
Constructors:
ArmCommands(DTS.Common.Interface.DASFactory.ICommunication sock)ArmCommands(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
Both constructors set command.Type = CommandPacket.CommandType.Arm.
Arm
Namespace: DTS.DASLib.Command.Ribeye
Arms the device for data collection. Inherits from ArmCommands.
Constructors:
Arm(DTS.Common.Interface.DASFactory.ICommunication sock)Arm(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
Public Properties (setters only):
uint TStopMS { set; }— Sets parameter 1 (stop time in ms).uint TPostMS { set; }— Sets parameter 2 (post-trigger time in ms).
QueryArmAndTriggerStatus
Namespace: DTS.DASLib.Command.Ribeye
Queries the current arm/trigger status. Inherits from ArmCommands.
Constructors:
QueryArmAndTriggerStatus(DTS.Common.Interface.DASFactory.ICommunication sock)QueryArmAndTriggerStatus(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
Public Fields:
bool IsArmedbool IsRecordingbool IsTriggered
Protected Method:
override CommandReceiveAction WholePackage()— Parses status code from response parameter 1 and setsIsArmed,IsRecording,IsTriggeredbased onStatusCodeEnum(Idle=0, Armed=1, Busy=2, DataAvailable=3).
Disarm
Namespace: DTS.DASLib.Command.Ribeye
Disarms the device. Inherits from ArmCommands.
Constructors:
Disarm(DTS.Common.Interface.DASFactory.ICommunication sock)Disarm(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
PrepareForDataCollection
Namespace: DTS.DASLib.Command.Ribeye
Prepares device for data collection (sends "ERASE" command). Inherits from ArmCommands.
Constructors:
PrepareForDataCollection(DTS.Common.Interface.DASFactory.ICommunication sock)PrepareForDataCollection(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
DownloadTestData
Namespace: DTS.DASLib.Command.Ribeye
Downloads binary test data from the device. Inherits from ArmCommands.
Constructors:
DownloadTestData(DTS.Common.Interface.DASFactory.ICommunication sock)DownloadTestData(DTS.Common.Interface.DASFactory.ICommunication sock, int TimeoutMillisec)
Public Properties:
ushort[] Data { get; }— Raw downloaded data.uint NumberOfChannels { get; }— Number of channels from response.int StartTimeMS { set; }— Sets parameter 1.int StopTimeMS { set; }— Sets parameter 2.
Public Methods:
void GetChannelData(int channel, out short[] signedADC)— Extracts per-channel data from interleaved raw data.
Protected Methods:
override CommandReceiveAction ReceiveBlockOK(Common.Interface.Communication.ICommunicationReport report)— Handles binary download packets usingDownloadPacket.VerifyPacket.override CommandReceiveAction WholePackage()— Parses binary data fromDownloadPacket.Datainto_Dataarray.override CommandReceiveAction WholePackagePost()— Invokes user callback withQueryEventDataReport.
Nested Class:
QueryEventDataReport : ICommandReport— ContainsStatus,CallbackObject, andshort[][] data.
Trigger
Namespace: DTS.DASLib.Command.Ribeye
Sends a trigger command. Inherits from ArmCommands.