GLAST/LAT > DAQ and FSW > FSW

Introduction to FSW Packets


Overview

Packets are the primary form of communication with the FSW. The FSW uses the CCSDS (Consultative Committee for Space Data Systems) packet format, which specifies headers, checksum usage, etc. The "payload" of each packet is, however, defined by the FSW.

The FSW receives command packets from the spacecraft and dispatches them (by APID) to a task. Most of these packets originate on the ground, but a few (e.g., the Ancillary, Attitude, and Time/Tone packets) originate within the spaccraft.

FSW tasks create telemetry (and occasionally command) packets; the FSW forwards these to the spacecraft. Most telemetry packets are sent on the Solid State Recorder, for eventual transmission to the ground; urgent packets may, however, be transmitted immediately. FSW-generated command packets (e.g., Repoint Requests) are handled within the spacecraft.

The LCAT utility facilitates the specification of all of these packets, performing bookkeeping and error checking and generating multiple forms of output (e.g., C include files, ITOS definitions, XML files). By keeping this generated information consistent, LCAT greatly reduces the likelihood of interface-related errors.

The FSW document-mechanization scripts read the generated XML files and (if available) include files, generating web pages and printable (i.e., PDF) documents.

ITOS definitions are not capable of dealing with abstract data structures such as C's arrays and structs. To ease FSW programming and documentation, LCAT "paints over" this limitation, generating ITOS specifications for any fields which are implied by a specified data structure.

The data elements described below (and used by LCAT) include both ITOS-supported primitives and higher-level abstractions implemented by LCAT.

  • Field (fld) - an indivisible data element, such as an "unsigned char". Attributes (e.g., alg, dsc, enm, lim, rng) may be associated with a field.

  • Bitfield (bf) - an ordered collection of fields, where each field is assigned (i.e., packed into) a specified range of bit positions.

  • Struct (str) - an ordered collection of data elements, including fields, bitfields, other structs, and arrays of each of these element types.

  • Packet (pkt) - a specialized struct; CCSDS-defined header information is used for routing, etc.

Command Attributes

Each field in a command packet may have an associated enumeration and/or range:

  • enumeration (enm) - a set of interpretation strings, indexed by the value of the field

  • range (rng) - the allowable range for the field's value

Telemetry Attributes

Each field in a telemetry packet may have an associated algorithm, discrete, and/or limit set:

  • algorithm (alg) - eight coefficients (C0 ... C7), used in a polynomial
    (i.e., C0 + C1*X + C2+X^2 + ... + C7+X^7)

  • discrete (dsc) - a set of interpretation strings, indexed by the value of the field

  • limit set (lim) - several parameters and value ranges, used for limit checking

ITOS Name Correspondence

As noted above, some LCAT entities have no ITOS names. Even when they do, the ITOS name may not be the same as the LCAT name. Here is a summary of the name correspondence:

  • Packet

    Telemetry packets do not have ITOS names. Command packets have ITOS names, which may be the same as their ITOS names.

  • Array, Bitfield, Struct

    None of these have ITOS names.

  • Field

    Fields have ITOS names, which may be the same as their LCAT names. This is rather unusual, however, because the LCAT name refers to an abstract field definition and the ITOS name refers to an instantiation of a field. Thus, an LCAT field may correspond to many ITOS fields.

  • Attribute

    Attributes have ITOS names, which will be the same as their LCAT names.