GNU Radio's SATNOGS Package
gr::satnogs Namespace Reference

Classes

union  _cnv
 
class  amsat_duv_decoder
 AMSAT 8b10b + CCSDS RS DUV decoder. More...
 
class  argos_ldr_decoder
 ARGOS Low Data Rate HDLC decoder. More...
 
class  ax100_decoder
 This decoder tries to cover all the supported framing and coding schemes of the AX100 product from GOMSpace. It also supports some variants that have appear in different missions, including excet the ASM and a repeated preamble. More...
 
class  ax100_mode5
 This decode implements the AX100 mode 5 scheme. More...
 
class  ax100_mode6
 AX.100 mode 6 decoder. More...
 
class  ax25_decoder
 AX.25 decoder that supports the legacy hardware radios. More...
 
class  ax25_encoder_mb
 AX.25 encoder block that supports the legacy hardware radios. More...
 
class  ax25_encoder_mb_impl
 
struct  ax25_frame_t
 
class  coarse_doppler_correction_cc
 This block corrects the doppler effect between the ground station and the satellite in a coarse and very simplified way. Instead of changing the hardware center frequency, we use an NCO to digitally compensate the doppler effect. More...
 
class  coarse_doppler_correction_cc_impl
 
class  convolutional_deinterleaver
 <+description+> More...
 
class  crc
 
class  cw_decoder
 CW decoder based on overlapping FFT. More...
 
class  cw_decoder_priv
 Helper class for the CW decoder. More...
 
class  cw_encoder
 CW encoder block, mainly for debugging and testing purposes. It accepts a CW word via a message source port and transmits the corresponding CW symbols. More...
 
class  cw_encoder_impl
 
class  cw_to_symbol
 The CW to Symbol block tries to translate the input signal into Morse symbols. The input signal should have been already properly filtered and processed. A possible DSP on the input signal may be the squared magnitude or the amplitude of the autocorrelation. Proper filtering that take cares possible spikes may drastically increase the performance of this block. More...
 
class  debug_msg_source
 A block for debug reasons producing specific messages.
 
class  debug_msg_source_impl
 
class  debug_msg_source_raw
 A block for debug reasons producing specific messages. The input message can be anything, opposed to the debug_msg_source() block that can accept only string messages.
 
class  debug_msg_source_raw_impl
 
class  decoder
 Abstract class that provided the API for the c decoders. More...
 
class  decoder_status
 
class  doppler_correction_cc
 This block corrects the doppler effect between the ground station and the satellite. It takes the input stream in baseband and applies proper corrections to keep the carrier at the desired frequency. To achieve that it uses messages containing the absolute predicted frequency of the satellite from software like Gpredict. More...
 
class  doppler_correction_cc_impl
 
class  doppler_fit
 Doppler frequency fitting using Lagrange extrapolation. More...
 
class  encoder
 Abstract class defining the API of the SatNOGS Encoders. More...
 
class  frame_acquisition
 A generic frame acquisition block. More...
 
class  frame_acquisition_impl
 
class  frame_decoder
 This is a generic frame decoder block. It takes as input a bit stream and produces decoded frames and their metadata. More...
 
class  frame_decoder_impl
 
class  frame_encoder
 <+description of block+> More...
 
class  frame_encoder_impl
 
class  frame_file_sink
 <+description of block+> More...
 
class  frame_file_sink_impl
 
class  golay24
 A binary Golay (24,12,8) encoder and decoder. More...
 
class  ieee802_15_4_encoder
 An IEEE802.15.4 frame encoder with some extended parameterization. More...
 
class  ieee802_15_4_variant_decoder
 A IEEE 802.15.4 like decoder. More...
 
class  iq_sink
 This block converts a complex float input stream to short and stores it to a file. If the value of status argument is zero the block behaves as a null sink block. More...
 
class  iq_sink_impl
 
class  json_converter
 This block takes a PMT message from the SatNOGS decoders and converts it a PMT containing the same message in JSON form. This can be used for debugging and stream operations. More...
 
class  json_converter_impl
 
class  lrpt_decoder
 <+description of block+> More...
 
class  lrpt_decoder_impl
 
class  lrpt_sync
 <+description of block+> More...
 
class  lrpt_sync_impl
 
class  metadata
 
class  morse_debug_source
 A Morse debug source block that supports injection of random errors based on a Bernulli distribution with probability p.
 
class  morse_debug_source_impl
 
class  morse_decoder
 Morse code decoder block. More...
 
class  morse_tree
 A Binary tree representation of the Morse coding scheme. Left transitions occur when a dot is received, whereas right transitions are performed during the reception of a dash. More...
 
class  moving_sum
 Simple moving sum template using std::deque. More...
 
class  multi_format_msg_sink
 Block accepting clear text messages from various decoders. Its purpose is to forward these messages at other services, programs, stdout, etc,. More...
 
class  multi_format_msg_sink_impl
 
class  noaa_apt_sink
 
class  noaa_apt_sink_impl
 
class  ogg_encoder
 Ogg encoder and sink block. More...
 
class  ogg_encoder_impl
 
class  ogg_source
 OGG source block. Reads a file with an OGG audio and convert it to float samples. More...
 
class  ogg_source_impl
 
class  qb50_deframer
 Parses the received AX.25 and separates the telecommand and control frames from the WOD frames. More...
 
class  shift_reg
 Implements a bit shift register. More...
 
class  sstv_pd120_sink
 SSTV demodulator block. More...
 
class  sstv_pd120_sink_impl
 
struct  tc_tm_pkt
 
class  tcp_rigctl_msg_source
 Block that accepts TCP messages with rigctl commands. Depending the command contents this block produces an appropriate PMT message to control other blocks in the flowgraph. More...
 
class  tcp_rigctl_msg_source_impl
 
class  tree_node
 Binary tree node containing the corresponding character. More...
 
class  udp_msg_sink
 <+description of block+> More...
 
class  udp_msg_sink_impl
 
class  udp_msg_source
 UDP message/command accepter. More...
 
class  udp_msg_source_impl
 
class  upsat_fsk_frame_encoder
 This block implements a FSK frame encoder for the UPSAT satellite. It takes as input a message containing the PDU and performs the NRZ encoding. The resulting float samples can be passed from a FM modulation block and then to the SDR device. More...
 
class  waterfall_sink
 This block computes the waterfall of the incoming signal and stores the result to a file. More...
 
class  waterfall_sink_impl
 
class  whitening
 Performs data whitening and de-whitening. More...
 

Typedefs

typedef class decoder_status decoder_status_t
 

Enumerations

enum  ax25_frame_type_t { AX25_I_FRAME, AX25_S_FRAME, AX25_U_FRAME, AX25_UI_FRAME }
 
enum  ax25_encode_status_t { AX25_ENC_FAIL, AX25_ENC_OK }
 
enum  ax25_decode_status_t { AX25_DEC_FAIL, AX25_DEC_OK }
 
enum  OBC_ret_state_t {
  R_OBC_PKT_ILLEGAL_APPID = 0, R_OBC_PKT_INV_LEN = 1, R_OBC_PKT_INC_CRC = 2, R_OBC_PKT_ILLEGAL_PKT_TP = 3,
  R_OBC_PKT_ILLEGAL_PKT_STP = 4, R_OBC_PKT_ILLEGAL_APP_DATA = 5, R_OBC_OK = 6, R_OBC_ERROR = 7,
  R_OBC_EOT = 8
}
 Telemetry and telecommands packet methods. More...
 
enum  noaa_apt_sync_marker { noaa_apt_sync_marker::SYNC_A, noaa_apt_sync_marker::SYNC_B, noaa_apt_sync_marker::NONE }
 

Functions

static uint16_t ax25_fcs (uint8_t *buffer, size_t len)
 
static size_t ax25_create_addr_field (uint8_t *out, std::string dest_addr, uint8_t dest_ssid, std::string src_addr, uint8_t src_ssid)
 
static uint8_t ax25_get_dest_ssid (const uint8_t *in)
 
static size_t ax25_prepare_frame (uint8_t *out, const uint8_t *info, size_t info_len, ax25_frame_type_t type, uint8_t *addr, size_t addr_len, uint16_t ctrl, size_t ctrl_len, size_t preamble_len, size_t postamble_len)
 
static ax25_encode_status_t ax25_nrz_bit_stuffing (float *out, size_t *out_len, const uint8_t *buffer, size_t buffer_len, size_t preamble_len, size_t postamble_len)
 
static ax25_encode_status_t ax25_bit_stuffing (uint8_t *out, size_t *out_len, const uint8_t *buffer, const size_t buffer_len, size_t preamble_len, size_t postamble_len)
 
static ax25_decode_status_t ax25_decode (uint8_t *out, size_t *out_len, const uint8_t *ax25_frame, size_t len)
 
OBC_ret_state_t verification_pack_pkt_api (uint8_t *buf, tc_tm_pkt *pkt, uint16_t *buf_pointer)
 
OBC_ret_state_t hk_pack_pkt_api (uint8_t *buf, tc_tm_pkt *pkt, uint16_t *buf_pointer)
 
static uint8_t ecss_tm_checksum (const uint8_t *data, uint16_t size)
 
static OBC_ret_state_t ecss_tm_unpack_pkt (const uint8_t *buf, tc_tm_pkt *pkt, const uint16_t size)
 
static OBC_ret_state_t ecss_tm_pack_pkt (uint8_t *buf, tc_tm_pkt *pkt, uint16_t *size)
 
static OBC_ret_state_t ecss_tm_crt_pkt (tc_tm_pkt *pkt, uint16_t app_id, uint8_t type, uint8_t ack, uint8_t ser_type, uint8_t ser_subtype, uint16_t dest_id)
 
static double mape (double ref, double estimation)
 
static unsigned int bit_count (unsigned int x)
 
static uint8_t reverse_byte (uint8_t b)
 
static uint32_t reverse_uint32_bytes (uint32_t i)
 
static uint64_t reverse_uint64_bytes (uint64_t x)
 
static uint32_t update_crc32 (uint32_t crc, const uint8_t *data, size_t len)
 
static uint32_t crc32 (const uint8_t *buf, size_t len)
 
static void print_pdu (const uint8_t *buf, size_t len)
 

Variables

const size_t AX25_MIN_ADDR_LEN = 14
 
const size_t AX25_MAX_ADDR_LEN = (2 * 7 + 8 * 7)
 
const size_t AX25_MIN_CTRL_LEN = 1
 
const size_t AX25_MAX_CTRL_LEN = 2
 
const size_t AX25_MAX_FRAME_LEN = 256
 
const uint8_t AX25_SYNC_FLAG = 0x7E
 
const uint8_t AX25_CALLSIGN_MAX_LEN = 6
 
const float AX25_SYNC_FLAG_MAP [8]
 
const uint8_t AX25_SYNC_FLAG_MAP_BIN [8]
 
const uint8_t services_verification_TC_TM [MAX_SERVICES][MAX_SUBTYPES][2]
 
const uint8_t app_id_verification [MAX_APP_ID]
 
const uint8_t services_verification_OBC_TC [MAX_SERVICES][MAX_SUBTYPES]
 
static const uint8_t _bytes_reversed [256]
 

Typedef Documentation

◆ decoder_status_t

Enumeration Type Documentation

◆ ax25_decode_status_t

Enumerator
AX25_DEC_FAIL 
AX25_DEC_OK 

◆ ax25_encode_status_t

Enumerator
AX25_ENC_FAIL 
AX25_ENC_OK 

◆ ax25_frame_type_t

AX.25 Frame types

Enumerator
AX25_I_FRAME 

AX25_I_FRAME Information frame.

AX25_S_FRAME 

AX25_S_FRAME Supervisory frame.

AX25_U_FRAME 

AX25_U_FRAME Unnumbered frame.

AX25_UI_FRAME 

!< AX25_UI_FRAME Unnumbered information frame

◆ noaa_apt_sync_marker

Enumerator
SYNC_A 
SYNC_B 
NONE 

◆ OBC_ret_state_t

Telemetry and telecommands packet methods.

Return status codes

Enumerator
R_OBC_PKT_ILLEGAL_APPID 

R_OBC_PKT_ILLEGAL_APPID illegal application ID.

R_OBC_PKT_INV_LEN 

R_OBC_PKT_INV_LEN invalid length.

R_OBC_PKT_INC_CRC 

R_OBC_PKT_INC_CRC incorrect CRC.

R_OBC_PKT_ILLEGAL_PKT_TP 

R_OBC_PKT_ILLEGAL_PKT_TP.

R_OBC_PKT_ILLEGAL_PKT_STP 

R_OBC_PKT_ILLEGAL_PKT_STP.

R_OBC_PKT_ILLEGAL_APP_DATA 

R_OBC_PKT_ILLEGAL_APP_DATA.

R_OBC_OK 

R_OBC_OK All ok.

R_OBC_ERROR 

R_OBC_ERROR an error occured.

R_OBC_EOT 

R_OBC_EOT End-of-transfer.

Function Documentation

◆ ax25_bit_stuffing()

static ax25_encode_status_t gr::satnogs::ax25_bit_stuffing ( uint8_t *  out,
size_t *  out_len,
const uint8_t *  buffer,
const size_t  buffer_len,
size_t  preamble_len,
size_t  postamble_len 
)
inlinestatic

Constructs an AX.25 by performing bit stuffing.

Parameters
outthe output buffer to hold the frame. To keep it simple, each byte of the buffer holds only one bit. Also the size of the buffer should be enough, such that the extra stuffed bits are fitting on the allocated space.
out_lendue to bit stuffing the output size can vary. This pointer will hold the resulting frame size after bit stuffing.
bufferbuffer holding the data that should be encoded. Note that this buffer SHOULD contain the leading and trailing synchronization flag, all necessary headers and the CRC.
buffer_lenthe length of the input buffer.
preamble_lenthe number of consecutive AX.25 flags that will be placed in the preamble. This preamble will be NOT bit-stuffed.
postamble_lenthe number of consecutive AX.25 flags that will be placed in the postamble. This postamble will be NOT bit-stuffed.
Returns
the resulting status of the encoding

References AX25_ENC_OK, and i.

◆ ax25_create_addr_field()

static size_t gr::satnogs::ax25_create_addr_field ( uint8_t *  out,
std::string  dest_addr,
uint8_t  dest_ssid,
std::string  src_addr,
uint8_t  src_ssid 
)
inlinestatic

Creates the header field of the AX.25 frame

Parameters
outthe output buffer with enough memory to hold the address field
dest_addrthe destination callsign address
dest_ssidthe destination SSID
src_addrthe callsign of the source
src_ssidthe source SSID

References AX25_CALLSIGN_MAX_LEN, AX25_MIN_ADDR_LEN, and i.

◆ ax25_decode()

static ax25_decode_status_t gr::satnogs::ax25_decode ( uint8_t *  out,
size_t *  out_len,
const uint8_t *  ax25_frame,
size_t  len 
)
inlinestatic

◆ ax25_fcs()

static uint16_t gr::satnogs::ax25_fcs ( uint8_t *  buffer,
size_t  len 
)
inlinestatic

Calculates the FCS of the AX25 frame

Parameters
bufferdata buffer
lensize of the buffer
Returns
the FCS of the buffer

References gr::satnogs::crc::crc16_ax25().

Referenced by ax25_decode(), and ax25_prepare_frame().

◆ ax25_get_dest_ssid()

static uint8_t gr::satnogs::ax25_get_dest_ssid ( const uint8_t *  in)
inlinestatic

Gets the destination SSID of an AX.25 frame

Parameters
inthe AX.25 frame buffer
Returns
the destination SSID

References AX25_CALLSIGN_MAX_LEN.

◆ ax25_nrz_bit_stuffing()

static ax25_encode_status_t gr::satnogs::ax25_nrz_bit_stuffing ( float *  out,
size_t *  out_len,
const uint8_t *  buffer,
size_t  buffer_len,
size_t  preamble_len,
size_t  postamble_len 
)
inlinestatic

Constructs an AX.25 by performing NRZ encoding and bit stuffing

Parameters
outthe output buffer to hold the frame. Note that due to the NRZ encoding the output would be [-1, 1]. Also the size of the buffer should be enough, such that the extra stuffed bits are fitting on the allocated space.
out_lendue to bit stuffing the output size can vary. This pointer will hold the resulting frame size after bit stuffing.
bufferbuffer holding the data that should be encoded. Note that this buffer SHOULD contain the leading and trailing synchronization flag, all necessary headers and the CRC.
buffer_lenthe length of the input buffer.
preamble_lenthe number of consecutive AX.25 flags that will be placed in the preamble. This preamble will be NOT bit-stuffed.
postamble_lenthe number of consecutive AX.25 flags that will be placed in the postamble. This postamble will be NOT bit-stuffed.
Returns
the resulting status of the encoding

References AX25_ENC_FAIL, AX25_ENC_OK, and i.

◆ ax25_prepare_frame()

static size_t gr::satnogs::ax25_prepare_frame ( uint8_t *  out,
const uint8_t *  info,
size_t  info_len,
ax25_frame_type_t  type,
uint8_t *  addr,
size_t  addr_len,
uint16_t  ctrl,
size_t  ctrl_len,
size_t  preamble_len,
size_t  postamble_len 
)
inlinestatic

◆ bit_count()

static unsigned int gr::satnogs::bit_count ( unsigned int  x)
inlinestatic

Counts the number of active bits in x

◆ crc32()

static uint32_t gr::satnogs::crc32 ( const uint8_t *  buf,
size_t  len 
)
inlinestatic

Calculates the CRC-32 of the buffer buf.

Parameters
bufThe buffer containing the data
lenthe size of the buffer
Returns
the CRC-32 of the buffer

References update_crc32().

◆ ecss_tm_checksum()

static uint8_t gr::satnogs::ecss_tm_checksum ( const uint8_t *  data,
uint16_t  size 
)
inlinestatic

References i.

Referenced by ecss_tm_pack_pkt(), and ecss_tm_unpack_pkt().

◆ ecss_tm_crt_pkt()

static OBC_ret_state_t gr::satnogs::ecss_tm_crt_pkt ( tc_tm_pkt pkt,
uint16_t  app_id,
uint8_t  type,
uint8_t  ack,
uint8_t  ser_type,
uint8_t  ser_subtype,
uint16_t  dest_id 
)
inlinestatic

◆ ecss_tm_pack_pkt()

static OBC_ret_state_t gr::satnogs::ecss_tm_pack_pkt ( uint8_t *  buf,
tc_tm_pkt pkt,
uint16_t *  size 
)
inlinestatic

◆ ecss_tm_unpack_pkt()

◆ hk_pack_pkt_api()

OBC_ret_state_t gr::satnogs::hk_pack_pkt_api ( uint8_t *  buf,
tc_tm_pkt pkt,
uint16_t *  buf_pointer 
)

◆ mape()

static double gr::satnogs::mape ( double  ref,
double  estimation 
)
inlinestatic

Computes the Mean Absolute Percentage Error

Parameters
refthe reference value
estimationthe estimated value
Returns
the mean absolute percentage error

References date::abs().

◆ print_pdu()

static void gr::satnogs::print_pdu ( const uint8_t *  buf,
size_t  len 
)
static

References i.

◆ reverse_byte()

static uint8_t gr::satnogs::reverse_byte ( uint8_t  b)
inlinestatic

Reverse the bits of the byte b.

Parameters
bthe byte to be mirrored.

References b.

◆ reverse_uint32_bytes()

static uint32_t gr::satnogs::reverse_uint32_bytes ( uint32_t  i)
inlinestatic

◆ reverse_uint64_bytes()

static uint64_t gr::satnogs::reverse_uint64_bytes ( uint64_t  x)
inlinestatic

◆ update_crc32()

static uint32_t gr::satnogs::update_crc32 ( uint32_t  crc,
const uint8_t *  data,
size_t  len 
)
inlinestatic

CRC-32 calculation using lookup tables, supporting progressive CRC calculation polynomial: 0x104C11DB7

Parameters
crcthe initial feed
datathe buffer containing the data
lenthe length of the buffer
Returns
the CRC-32 result

References i.

Referenced by crc32().

◆ verification_pack_pkt_api()

OBC_ret_state_t gr::satnogs::verification_pack_pkt_api ( uint8_t *  buf,
tc_tm_pkt pkt,
uint16_t *  buf_pointer 
)

Variable Documentation

◆ _bytes_reversed

const uint8_t gr::satnogs::_bytes_reversed[256]
static
Initial value:
= {
0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0,
0x30, 0xB0, 0x70, 0xF0, 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68,
0xE8, 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8, 0x04, 0x84,
0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4, 0x14, 0x94, 0x54, 0xD4, 0x34,
0xB4, 0x74, 0xF4, 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC,
0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC, 0x02, 0x82, 0x42,
0xC2, 0x22, 0xA2, 0x62, 0xE2, 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2,
0x72, 0xF2, 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA, 0x1A,
0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA, 0x06, 0x86, 0x46, 0xC6,
0x26, 0xA6, 0x66, 0xE6, 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76,
0xF6, 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE, 0x1E, 0x9E,
0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE, 0x01, 0x81, 0x41, 0xC1, 0x21,
0xA1, 0x61, 0xE1, 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,
0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, 0x19, 0x99, 0x59,
0xD9, 0x39, 0xB9, 0x79, 0xF9, 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5,
0x65, 0xE5, 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5, 0x0D,
0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED, 0x1D, 0x9D, 0x5D, 0xDD,
0x3D, 0xBD, 0x7D, 0xFD, 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63,
0xE3, 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3, 0x0B, 0x8B,
0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB, 0x1B, 0x9B, 0x5B, 0xDB, 0x3B,
0xBB, 0x7B, 0xFB, 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7,
0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7, 0x0F, 0x8F, 0x4F,
0xCF, 0x2F, 0xAF, 0x6F, 0xEF, 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF,
0x7F, 0xFF
}

◆ app_id_verification

const uint8_t gr::satnogs::app_id_verification[MAX_APP_ID]

◆ AX25_CALLSIGN_MAX_LEN

const uint8_t gr::satnogs::AX25_CALLSIGN_MAX_LEN = 6

◆ AX25_MAX_ADDR_LEN

const size_t gr::satnogs::AX25_MAX_ADDR_LEN = (2 * 7 + 8 * 7)

◆ AX25_MAX_CTRL_LEN

const size_t gr::satnogs::AX25_MAX_CTRL_LEN = 2

◆ AX25_MAX_FRAME_LEN

const size_t gr::satnogs::AX25_MAX_FRAME_LEN = 256

◆ AX25_MIN_ADDR_LEN

const size_t gr::satnogs::AX25_MIN_ADDR_LEN = 14

Referenced by ax25_create_addr_field().

◆ AX25_MIN_CTRL_LEN

const size_t gr::satnogs::AX25_MIN_CTRL_LEN = 1

◆ AX25_SYNC_FLAG

const uint8_t gr::satnogs::AX25_SYNC_FLAG = 0x7E

◆ AX25_SYNC_FLAG_MAP

const float gr::satnogs::AX25_SYNC_FLAG_MAP[8]
Initial value:
=
{ -1, 1, 1, 1, 1, 1, 1, -1 }

◆ AX25_SYNC_FLAG_MAP_BIN

const uint8_t gr::satnogs::AX25_SYNC_FLAG_MAP_BIN[8]
Initial value:
=
{ 0, 1, 1, 1, 1, 1, 1, 0 }

Referenced by ax25_decode().

◆ services_verification_OBC_TC

const uint8_t gr::satnogs::services_verification_OBC_TC[MAX_SERVICES][MAX_SUBTYPES]

◆ services_verification_TC_TM

const uint8_t gr::satnogs::services_verification_TC_TM[MAX_SERVICES][MAX_SUBTYPES][2]