AprsParser (aprs v0.1.2)

View Source

Main APRS packet parsing library

Summary

Types

packet()

@type packet() :: %{
  id: String.t(),
  sender: String.t(),
  path: String.t(),
  destination: String.t(),
  information_field: String.t(),
  data_type: atom(),
  base_callsign: String.t(),
  ssid: String.t(),
  data_extended: map() | nil,
  received_at: DateTime.t()
}

parse_result()

@type parse_result() :: {:ok, packet()} | {:error, atom() | String.t()}

position_ambiguity()

@type position_ambiguity() :: 0..4

Functions

convert_compressed_cs(cs)

@spec convert_compressed_cs(binary()) :: map()

convert_compressed_lat(lat)

@spec convert_compressed_lat(binary()) :: float()

convert_compressed_lon(lon)

@spec convert_compressed_lon(binary()) :: float()

convert_to_base91(arg)

@spec convert_to_base91(binary()) :: integer()

decode_compressed_position(arg)

@spec decode_compressed_position(binary()) :: map()

parse(message)

@spec parse(String.t()) :: parse_result()

parse_callsign(callsign)

@spec parse_callsign(String.t()) :: {:ok, [String.t()]} | {:error, String.t()}

parse_data(arg1, destination, data)

@spec parse_data(atom(), String.t(), String.t()) :: map() | nil

parse_datatype(arg1)

@spec parse_datatype(String.t()) :: atom()

parse_datatype_safe(data)

@spec parse_datatype_safe(String.t()) :: {:ok, atom()} | {:error, String.t()}

parse_position_with_datetime_and_weather(aprs_messaging?, time, latitude, sym_table_id, longitude, symbol_code, weather_report)

@spec parse_position_with_datetime_and_weather(
  boolean(),
  binary(),
  binary(),
  binary(),
  binary(),
  binary(),
  binary()
) :: map()

parse_position_with_message_without_timestamp(position_data)

@spec parse_position_with_message_without_timestamp(String.t()) :: map()

parse_position_with_timestamp(aprs_messaging?, data, data_type)

@spec parse_position_with_timestamp(boolean(), binary(), atom()) :: map()

parse_position_without_timestamp(position_data)

@spec parse_position_without_timestamp(String.t()) :: map()

parse_query(data)

@spec parse_query(String.t()) :: map()

parse_station_capabilities(data)

@spec parse_station_capabilities(String.t()) :: map()

parse_status(data)

@spec parse_status(String.t()) :: map()

parse_third_party_traffic(packet)

parse_user_defined(data)

@spec parse_user_defined(String.t()) :: map()

split_packet(message)

@spec split_packet(String.t()) :: {:ok, [String.t()]} | {:error, String.t()}

split_path(path)

@spec split_path(String.t()) :: {:ok, [String.t()]} | {:error, String.t()}

validate_path(path)