/  Yamcs HTTP API  /  Commands  /  Stream Commands

Stream CommandsΒΆ

Streams back commands

Warning

This method uses server-streaming. Yamcs sends an unspecified amount of data using chunked transfer encoding.

URI Template

POST /api/stream-archive/{instance}:streamCommands
{instance}

Yamcs instance name

Request Body

interface StreamCommandsRequest {

  // Filter the lower bound of the command's generation time. Specify a date
  // string in ISO 8601 format.
  start: string;  // RFC 3339 timestamp

  // Filter the upper bound of the command's generation time. Specify a date
  // string in ISO 8601 format.
  stop: string;  // RFC 3339 timestamp

  // Command names to include. Leave unset, to include all.
  name: string[];
}

Response Type

interface CommandHistoryEntry {
  id: string;

  // Qualified name
  commandName: string;

  // Name aliases keyed by namespace.
  // (as currently present in Mission Database)
  aliases: {[key: string]: string};
  origin: string;
  sequenceNumber: number;
  commandId: CommandId;
  attr: CommandHistoryAttribute[];
  generationTime: string;  // RFC 3339 timestamp
  assignments: CommandAssignment[];
}

Related Types

interface CommandId {
  generationTime: string;  // String decimal
  origin: string;
  sequenceNumber: number;
  commandName: string;
}

interface CommandHistoryAttribute {
  name: string;
  value: Value;
  time: string;  // String decimal
}

// Union type for storing a value
interface Value {
  type: Type;
  floatValue: number;
  doubleValue: number;
  sint32Value: number;
  uint32Value: number;
  binaryValue: string;  // Base64
  stringValue: string;
  timestampValue: string;  // String decimal
  uint64Value: string;  // String decimal
  sint64Value: string;  // String decimal
  booleanValue: boolean;
  aggregateValue: AggregateValue;
  arrayValue: Value[];
}

// An aggregate value is an ordered list of (member name, member value).
// Two arrays are used in order to be able to send just the values (since
// the names will not change)
interface AggregateValue {
  name: string[];
  value: Value[];
}

interface CommandAssignment {
  name: string;
  value: Value;
  userInput: boolean;
}

enum Type {
  FLOAT = "FLOAT",
  DOUBLE = "DOUBLE",
  UINT32 = "UINT32",
  SINT32 = "SINT32",
  BINARY = "BINARY",
  STRING = "STRING",
  TIMESTAMP = "TIMESTAMP",
  UINT64 = "UINT64",
  SINT64 = "SINT64",
  BOOLEAN = "BOOLEAN",
  AGGREGATE = "AGGREGATE",
  ARRAY = "ARRAY",

  // Enumerated values have both an integer (sint64Value) and a string representation
  ENUMERATED = "ENUMERATED",
  NONE = "NONE",
}