Sidereon.CCSDS.TDM.Warning (Sidereon v3.0.0)

Copy Markdown View Source

A departure from CCSDS 503.0-B-2 the TDM reader forgave under a Sidereon.CCSDS.TDM.Policy instead of refusing the message.

tag names the departure and decides which of the other fields are set; every other field is nil:

  • :non_printable_character - line, keyword, column, character
  • :line_too_long - line, keyword, length
  • :repeated_keyword - line, keyword, section: a keyword repeated in one block with the same value, which the reader takes whatever the policy says, since both lines say the same thing.
  • :missing_keyword - keyword, segment (nil for the header)
  • :empty_data_section - segment
  • :records_out_of_order - segment, keyword, epoch
  • :duplicate_record - segment, keyword, epoch; both records are kept, in the order the message gives them.
  • :keyword_out_of_order - line, keyword, section; in the :data section, a comment after a record.
  • :unterminated_final_line - line
  • :unhandled - a departure this binding predates. Only message is set, the core's own text; no other tag stands in for it.

line is the one-based input line, segment one-based, section :header, :metadata or :data, and character a one-character string. message is the core's text for the departure, carried beside the fields.

Summary

Types

t()

@type t() :: %Sidereon.CCSDS.TDM.Warning{
  character: String.t() | nil,
  column: pos_integer() | nil,
  epoch: String.t() | nil,
  keyword: String.t() | nil,
  length: non_neg_integer() | nil,
  line: pos_integer() | nil,
  message: String.t(),
  section: :header | :metadata | :data | String.t() | nil,
  segment: pos_integer() | nil,
  tag: tag()
}

tag()

@type tag() ::
  :non_printable_character
  | :line_too_long
  | :repeated_keyword
  | :missing_keyword
  | :empty_data_section
  | :records_out_of_order
  | :duplicate_record
  | :keyword_out_of_order
  | :unterminated_final_line
  | :unhandled