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

Copy Markdown View Source

A departure from CCSDS 503.0-B-2 the TDM writer emitted under a Sidereon.CCSDS.TDM.WritePolicy.

Each names what makes the written text non-conforming, in the vocabulary Sidereon.CCSDS.TDM.Warning uses for the same departure on the way in; a reader under the matching Sidereon.CCSDS.TDM.Policy forgives exactly these. tag decides which of the other fields are set; every other field is nil:

  • :non_printable_character - keyword, character
  • :line_too_long - keyword, length
  • :missing_keyword - keyword, segment (nil for the header)
  • :empty_data_section - segment
  • :records_out_of_order - segment, keyword, epoch
  • :duplicate_record - segment, keyword, epoch
  • :repeated_keyword - keyword, section
  • :keyword_out_of_order - keyword, section; in the :data section, a comment written after a record.
  • :unterminated_final_line - no field: the last line has no terminator.
  • :unhandled - a departure this binding predates. Only message is set, the core's own text.

segment is one-based and section is :header, :metadata or :data. message is the core's text for the departure.

Summary

Types

t()

@type t() :: %Sidereon.CCSDS.TDM.Departure{
  character: String.t() | nil,
  epoch: String.t() | nil,
  keyword: String.t() | nil,
  length: non_neg_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
  | :missing_keyword
  | :empty_data_section
  | :records_out_of_order
  | :duplicate_record
  | :repeated_keyword
  | :keyword_out_of_order
  | :unterminated_final_line
  | :unhandled