OpenC3/cosmos

View on GitHub
openc3-cosmos-init/plugins/packages/openc3-cosmos-demo/targets/INST/cmd_tlm/inst_tlm.txt

Summary

Maintainability
Test Coverage
TELEMETRY <%= target_name %> HEALTH_STATUS BIG_ENDIAN "Health and status from the <%= target_name %> target"
  <%= render "_ccsds_tlm.txt", locals: {apid: 1} %>
  APPEND_ITEM CMD_ACPT_CNT     32 UINT     "Command accept count"
  APPEND_ITEM COLLECTS         16 UINT     "Number of collects"
  APPEND_ITEM TEMP1            16 UINT     "Temperature #1"
    POLY_READ_CONVERSION  -100.0 0.00305
    POLY_WRITE_CONVERSION 32768.885246 327.86885
    UNITS CELSIUS C
    FORMAT_STRING "%0.3f"
    LIMITS DEFAULT 1 ENABLED -80.0 -70.0 60.0 80.0 -20.0 20.0
    LIMITS TVAC 1 ENABLED -80.0 -30.0 30.0 80.0
    LIMITS_RESPONSE example_limits_response.rb
  APPEND_ITEM TEMP2            32 FLOAT    "Temperature #2"
    POLY_READ_CONVERSION -100.0 0.00305
    POLY_WRITE_CONVERSION 32768.885246 327.86885
    UNITS CELSIUS C
    FORMAT_STRING "%0.3f"
    LIMITS DEFAULT 1 ENABLED -60.0 -60.0 35.0 35.0
    LIMITS TVAC 1 ENABLED -60.0 20.0 35.0 35.0
  APPEND_ITEM TEMP3            16 UINT     "Temperature #3"
    POLY_READ_CONVERSION -100.0 0.00305
    POLY_WRITE_CONVERSION 32768.885246 327.86885
    UNITS CELSIUS C
    FORMAT_STRING "%0.3f"
    LIMITS DEFAULT 1 ENABLED -25.0 -10.0 50.0 55.0
    LIMITS TVAC 1 ENABLED -15.0 -10.0 20.0 30.0
  APPEND_ITEM TEMP4            16 UINT     "Temperature #4"
    POLY_READ_CONVERSION -100.0 0.00305
    POLY_WRITE_CONVERSION 32768.885246 327.86885
    UNITS CELSIUS C
    FORMAT_STRING "%0.3f"
    LIMITS DEFAULT 1 ENABLED -80.0 -70.0 60.0 80.0
  APPEND_ARRAY_ITEM ARY         8 UINT 80 "Array data"
    UNITS VOLTS V
  APPEND_ITEM DURATION 32 FLOAT "Most recent collect duration"
  APPEND_ITEM COLLECT_TYPE 16 UINT "Most recent collect type"
    STATE NORMAL  0
    STATE SPECIAL 1
    STATE ERROR ANY
  APPEND_ARRAY_ITEM ARY2       64 FLOAT 640 "Double array"
    UNITS CELSIUS C
  APPEND_ITEM ASCIICMD 2048 STRING "Most recent ASCIICMD string"
    STATE "NOOP" "NOOP"
    STATE "FIRE LASER" "FIRE LASER"
    STATE "ARM LASER" "ARM LASER"
  APPEND_ITEM GROUND1STATUS 8 UINT "Ground station #1 status"
    STATE CONNECTED 1 GREEN
    STATE UNAVAILABLE 0 YELLOW
  APPEND_ITEM GROUND2STATUS 8 UINT "Ground station #2 status"
    STATE CONNECTED 1 GREEN
    STATE UNAVAILABLE 0 YELLOW
  APPEND_ITEM BLOCKTEST 80 BLOCK "Block data"
  APPEND_ITEM BRACKET[0] 8 UINT "Regular item with brackets in the name"
  ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
    READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS
  ITEM TEMP1HIGH 0 0 DERIVED "High-water mark for TEMP1"
    READ_CONVERSION processor_conversion.rb TEMP1WATER HIGH_WATER
  ITEM TEMP1LOW 0 0 DERIVED "Low-water mark for TEMP1"
    READ_CONVERSION processor_conversion.rb TEMP1WATER LOW_WATER
  ITEM TEMP1MAX 0 0 DERIVED "Maximum of most recent 100 samples for TEMP1"
    READ_CONVERSION processor_conversion.rb TEMP1STAT MAX
  ITEM TEMP1MIN 0 0 DERIVED "Minimum of most recent 100 samples for TEMP1"
    READ_CONVERSION processor_conversion.rb TEMP1STAT MIN
  ITEM TEMP1MEAN 0 0 DERIVED "Mean of most recent 100 samples for TEMP1"
    READ_CONVERSION processor_conversion.rb TEMP1STAT MEAN
  ITEM TEMP1STDDEV 0 0 DERIVED "Stddev of most recent 100 samples for TEMP1"
    READ_CONVERSION processor_conversion.rb TEMP1STAT STDDEV
  ITEM TEMP1_MICRO 0 0 DERIVED
    GENERIC_READ_CONVERSION_START FLOAT 32
      packet.read('TEMP1') / 1_000_000
    GENERIC_READ_CONVERSION_END
  ITEM TEMP1_MEGA 0 0 DERIVED
    GENERIC_READ_CONVERSION_START FLOAT 32
      packet.read('TEMP1') * 1_000_000
    GENERIC_READ_CONVERSION_END
  PROCESSOR TEMP1STAT statistics_processor.rb TEMP1 100
  PROCESSOR TEMP1WATER watermark_processor.rb TEMP1

TELEMETRY <%= target_name %> ADCS BIG_ENDIAN "Position and attitude data"
  META TYPE 'struct adcs'
  <%= render "_ccsds_tlm.txt", locals: {apid: 2} %>
  ITEM POSX             128 32 FLOAT "Position X"
    UNITS METERS M
  ITEM POSY             160 32 FLOAT "Position Y"
    UNITS METERS M
  ITEM POSZ             192 32 FLOAT "Position Z"
    UNITS METERS M
  ITEM VELX             224 32 FLOAT "Velocity X"
    UNITS METERS_PER_SECOND MPS
  ITEM VELY             256 32 FLOAT "Velocity Y"
    UNITS METERS_PER_SECOND MPS
  ITEM VELZ             288 32 FLOAT "Velocity Z"
    UNITS METERS_PER_SECOND MPS
  ITEM Q1               320 32 FLOAT "Quaternion param 1"
    FORMAT_STRING "%0.6f"
    META TYPE 'float32'
  ITEM Q2               352 32 FLOAT "Quaternion param 2"
    FORMAT_STRING "%0.6f"
    META TYPE 'float32'
  ITEM Q3               384 32 FLOAT "Quaternion param 3"
    FORMAT_STRING "%0.6f"
    META TYPE 'float32'
  ITEM Q4               416 32 FLOAT "Quaternion param 4"
    FORMAT_STRING "%0.6f"
    META TYPE 'float32'
  ITEM BIASX            448 32 FLOAT "Body X rate bias"
    FORMAT_STRING "%0.6f"
  ITEM BIASY            480 32 FLOAT "Body Y rate bias"
    FORMAT_STRING "%0.6f"
  ITEM BIASZ            512 32 FLOAT "Body Z rate bias"
    FORMAT_STRING "%0.6f"
  <% (1..5).each do |i| %>
    APPEND_ITEM STAR<%= i %>ID 16 UINT "Star <%= i %> id"
  <% end %>
  ITEM POSPROGRESS      624 32 FLOAT "Position file progress"
    FORMAT_STRING "%0.2f"
  ITEM ATTPROGRESS      656 32 FLOAT "Attitude file progress"
    FORMAT_STRING "%0.2f"
  ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
    READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS

TELEMETRY <%= target_name %> PARAMS BIG_ENDIAN "Params set by SETPARAMS command"
  <%= render "_ccsds_tlm.txt", locals: {apid: 3} %>
  # ERB syntax:
  <% (1..5).each do |i| %>
    APPEND_ITEM VALUE<%= i %> 16 UINT "Value <%= i %> setting"
      STATE GOOD 0 GREEN
      STATE BAD 1 RED
  <% end %>
  ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
    READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS

TELEMETRY <%= target_name %> IMAGE BIG_ENDIAN "Packet with image data"
  <%= render "_ccsds_tlm.txt", locals: {apid: 4} %>
  APPEND_ITEM BLOCK 8000 BLOCK "Raw Data"
  APPEND_ITEM IMAGE 0 BLOCK "Image Data"
  ITEM BYTES 128 32 UINT "First bytes"
    FORMAT_STRING '0x%08x'
    OVERLAP # Notify OpenC3 that this is intentionally overlapping the BLOCK field
  ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
    READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS

TELEMETRY <%= target_name %> MECH BIG_ENDIAN "Mechanism status ©®"
  <%= render "_ccsds_tlm.txt", locals: {apid: 5} %>
  APPEND_ITEM EXTRA         32 FLOAT    "Extra item to be deleted"
  APPEND_ITEM SLRPNL1       32 FLOAT    "Solar panel 1 angle"
    UNITS DEGREES DEG
  APPEND_ITEM SLRPNL2       32 FLOAT    "Solar panel 2 angle"
    UNITS DEGREES DEG
  APPEND_ITEM SLRPNL3       32 FLOAT    "Solar panel 3 angle"
    UNITS DEGREES DEG
  APPEND_ITEM SLRPNL4       32 FLOAT    "Solar panel 4 angle"
    UNITS DEGREES DEG
  APPEND_ITEM SLRPNL5       32 FLOAT    "Solar panel 5 angle"
    UNITS DEGREES DEG
  APPEND_ITEM CURRENT       32 FLOAT    "Device current"
    UNITS micro-Ampères µA
  ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
    READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS

TELEMETRY <%= target_name %> HIDDEN BIG_ENDIAN "Hidden packet"
  HIDDEN
  <%= render "_ccsds_tlm.txt", locals: {apid: 6} %>
  APPEND_ITEM COUNT 32 UINT "Count for hidden command"
  ITEM PACKET_TIME 0 0 DERIVED "Ruby time based on TIMESEC and TIMEUS"
    READ_CONVERSION unix_time_conversion.rb TIMESEC TIMEUS