Classes | Macros | Functions | Variables
mode_s.c File Reference
#include "dump1090.h"
#include "aera.h"

Go to the source code of this file.

Classes

struct  errorinfo
 

Macros

#define NERRORINFO   (MODES_LONG_MSG_BITS+MODES_LONG_MSG_BITS*(MODES_LONG_MSG_BITS-1)/2)
 

Functions

void addRecentlySeenICAOAddr (uint32_t addr)
 
void applyPhaseCorrection (uint16_t *pPayload)
 
int cmpErrorInfo (const void *p0, const void *p1)
 
void computeMagnitudeVector (void)
 
double cprDlonFunction (double lat, int fflag, int surface)
 
int cprModFunction (int a, int b)
 
int cprNFunction (double lat, int fflag)
 
int cprNLFunction (double lat)
 
int decodeAC12Field (int AC12Field, int *unit)
 
int decodeAC13Field (int AC13Field, int *unit)
 
void decodeCPR (struct aircraft *a, int fflag, int surface)
 
int decodeCPRrelative (struct aircraft *a, int fflag, int surface)
 
int decodeID13Field (int ID13Field)
 
void decodeModesMessage (struct modesMessage *mm, unsigned char *msg)
 
int decodeMovementField (int movement)
 
void detectModeS (uint16_t *m, uint32_t mlen)
 
int detectOutOfPhase (uint16_t *pPreamble)
 
void displayModesMessage (struct modesMessage *mm)
 
void dumpMagnitudeBar (int index, int magnitude)
 
void dumpMagnitudeVector (uint16_t *m, uint32_t offset)
 
void dumpRawMessage (char *descr, unsigned char *msg, uint16_t *m, uint32_t offset)
 
void dumpRawMessageJS (char *descr, unsigned char *msg, uint16_t *m, uint32_t offset, int fixable, char *bitpos)
 
int fixBitErrors (unsigned char *msg, int bits, int maxfix, char *fixedbits)
 
char * getMEDescription (int metype, int mesub)
 
int ICAOAddressWasRecentlySeen (uint32_t addr)
 
uint32_t ICAOCacheHashAddress (uint32_t a)
 
uint32_t modesChecksum (unsigned char *msg, int bits)
 
void modesInitErrorInfo ()
 
int modesMessageLenByType (int type)
 
void useModesMessage (struct modesMessage *mm)
 

Variables

struct errorinfo bitErrorTable [((14 *8)+(14 *8)*((14 *8)-1)/2)]
 
char * ca_str [8]
 
char * cf_str [8]
 
char * fs_str [8]
 
uint32_t modes_checksum_table [112]
 

Macro Definition Documentation

Definition at line 214 of file mode_s.c.

Referenced by fixBitErrors(), and modesInitErrorInfo().

Function Documentation

void addRecentlySeenICAOAddr ( uint32_t  addr)

Definition at line 613 of file mode_s.c.

References ICAOCacheHashAddress(), and Modes.

Referenced by decodeModesMessage().

void applyPhaseCorrection ( uint16_t *  pPayload)

Definition at line 1448 of file mode_s.c.

References MODES_LONG_MSG_SAMPLES.

Referenced by detectModeS().

int cmpErrorInfo ( const void *  p0,
const void *  p1 
)

Definition at line 219 of file mode_s.c.

References errorinfo::syndrome.

Referenced by fixBitErrors(), and modesInitErrorInfo().

void computeMagnitudeVector ( void  )
double cprDlonFunction ( double  lat,
int  fflag,
int  surface 
)

Definition at line 1941 of file mode_s.c.

References cprNFunction().

Referenced by decodeCPR(), and decodeCPRrelative().

int cprModFunction ( int  a,
int  b 
)

Definition at line 1858 of file mode_s.c.

References RdGeoCeLDFFitter::b.

Referenced by decodeCPR(), and decodeCPRrelative().

int cprNFunction ( double  lat,
int  fflag 
)

Definition at line 1933 of file mode_s.c.

References cprNLFunction(), and nl.

Referenced by cprDlonFunction(), and decodeCPR().

int cprNLFunction ( double  lat)

Definition at line 1868 of file mode_s.c.

Referenced by cprNFunction(), and decodeCPR().

int decodeAC12Field ( int  AC12Field,
int *  unit 
)

N is the 11 bit integer resulting from the removal of bit Q at bit 4

Definition at line 704 of file mode_s.c.

References decodeID13Field(), ModeAToModeC(), and MODES_UNIT_FEET.

Referenced by decodeModesMessage().

int decodeAC13Field ( int  AC13Field,
int *  unit 
)

Definition at line 673 of file mode_s.c.

References decodeID13Field(), ModeAToModeC(), MODES_UNIT_FEET, and MODES_UNIT_METERS.

Referenced by decodeModesMessage().

void decodeCPR ( struct aircraft a,
int  fflag,
int  surface 
)
int decodeCPRrelative ( struct aircraft a,
int  fflag,
int  surface 
)
int decodeID13Field ( int  ID13Field)

Definition at line 648 of file mode_s.c.

Referenced by decodeAC12Field(), decodeAC13Field(), and decodeModesMessage().

void decodeModesMessage ( struct modesMessage mm,
unsigned char *  msg 
)
int decodeMovementField ( int  movement)

Definition at line 729 of file mode_s.c.

Referenced by decodeModesMessage().

void detectModeS ( uint16_t *  m,
uint32_t  mlen 
)
int detectOutOfPhase ( uint16_t *  pPreamble)

Definition at line 1409 of file mode_s.c.

Referenced by detectModeS().

void displayModesMessage ( struct modesMessage mm)
void dumpMagnitudeBar ( int  index,
int  magnitude 
)

Definition at line 355 of file mode_s.c.

Referenced by dumpMagnitudeVector().

void dumpMagnitudeVector ( uint16_t *  m,
uint32_t  offset 
)

Definition at line 382 of file mode_s.c.

References dumpMagnitudeBar(), MODES_PREAMBLE_SAMPLES, and MODES_SHORT_MSG_SAMPLES.

Referenced by dumpRawMessage().

void dumpRawMessage ( char *  descr,
unsigned char *  msg,
uint16_t *  m,
uint32_t  offset 
)
void dumpRawMessageJS ( char *  descr,
unsigned char *  msg,
uint16_t *  m,
uint32_t  offset,
int  fixable,
char *  bitpos 
)
int fixBitErrors ( unsigned char *  msg,
int  bits,
int  maxfix,
char *  fixedbits 
)
char* getMEDescription ( int  metype,
int  mesub 
)

Definition at line 786 of file mode_s.c.

Referenced by displayModesMessage().

int ICAOAddressWasRecentlySeen ( uint32_t  addr)

Definition at line 625 of file mode_s.c.

References RdGeoCeLDFFitter::a, ICAOCacheHashAddress(), Modes, and MODES_ICAO_CACHE_TTL.

Referenced by decodeModesMessage().

uint32_t ICAOCacheHashAddress ( uint32_t  a)

Definition at line 598 of file mode_s.c.

References MODES_ICAO_CACHE_LEN.

Referenced by addRecentlySeenICAOAddr(), and ICAOAddressWasRecentlySeen().

uint32_t modesChecksum ( unsigned char *  msg,
int  bits 
)

Definition at line 71 of file mode_s.c.

References modes_checksum_table.

Referenced by decodeModesMessage(), fixBitErrors(), and modesInitErrorInfo().

void modesInitErrorInfo ( )
int modesMessageLenByType ( int  type)

Definition at line 103 of file mode_s.c.

References MODES_LONG_MSG_BITS, and MODES_SHORT_MSG_BITS.

Referenced by decodeModesMessage(), detectModeS(), and dumpRawMessageJS().

void useModesMessage ( struct modesMessage mm)

Variable Documentation

struct errorinfo bitErrorTable[((14 *8)+(14 *8)*((14 *8)-1)/2)]

Definition at line 216 of file mode_s.c.

Referenced by fixBitErrors(), and modesInitErrorInfo().

char* ca_str[8]
Initial value:
= {
"Level 1 (Survillance Only)",
"Level 2 (DF0,4,5,11)",
"Level 3 (DF0,4,5,11,20,21)",
"Level 4 (DF0,4,5,11,20,21,24)",
"Level 2+3+4 (DF0,4,5,11,20,21,24,code7 - is on ground)",
"Level 2+3+4 (DF0,4,5,11,20,21,24,code7 - is airborne)",
"Level 2+3+4 (DF0,4,5,11,20,21,24,code7)",
"Level 7 ???"
}

Definition at line 749 of file mode_s.c.

Referenced by displayModesMessage().

char* cf_str[8]
Initial value:
= {
"ADS-B ES/NT device with ICAO 24-bit address",
"ADS-B ES/NT device with other address",
"Fine format TIS-B",
"Coarse format TIS-B",
"TIS-B managment message",
"TIS-B relay of ADS-B message with other address",
"ADS-B rebroadcast using DF-17 message format",
"Reserved"
}

Definition at line 761 of file mode_s.c.

Referenced by displayModesMessage().

char* fs_str[8]
Initial value:
= {
"Normal, Airborne",
"Normal, On the ground",
"ALERT, Airborne",
"ALERT, On the ground",
"ALERT & Special Position Identification. Airborne or Ground",
"Special Position Identification. Airborne or Ground",
"Value 6 is not assigned",
"Value 7 is not assigned"
}

Definition at line 773 of file mode_s.c.

Referenced by displayModesMessage().

uint32_t modes_checksum_table[112]
Initial value:
= {
0x3935ea, 0x1c9af5, 0xf1b77e, 0x78dbbf, 0xc397db, 0x9e31e9, 0xb0e2f0, 0x587178,
0x2c38bc, 0x161c5e, 0x0b0e2f, 0xfa7d13, 0x82c48d, 0xbe9842, 0x5f4c21, 0xd05c14,
0x682e0a, 0x341705, 0xe5f186, 0x72f8c3, 0xc68665, 0x9cb936, 0x4e5c9b, 0xd8d449,
0x939020, 0x49c810, 0x24e408, 0x127204, 0x093902, 0x049c81, 0xfdb444, 0x7eda22,
0x3f6d11, 0xe04c8c, 0x702646, 0x381323, 0xe3f395, 0x8e03ce, 0x4701e7, 0xdc7af7,
0x91c77f, 0xb719bb, 0xa476d9, 0xadc168, 0x56e0b4, 0x2b705a, 0x15b82d, 0xf52612,
0x7a9309, 0xc2b380, 0x6159c0, 0x30ace0, 0x185670, 0x0c2b38, 0x06159c, 0x030ace,
0x018567, 0xff38b7, 0x80665f, 0xbfc92b, 0xa01e91, 0xaff54c, 0x57faa6, 0x2bfd53,
0xea04ad, 0x8af852, 0x457c29, 0xdd4410, 0x6ea208, 0x375104, 0x1ba882, 0x0dd441,
0xf91024, 0x7c8812, 0x3e4409, 0xe0d800, 0x706c00, 0x383600, 0x1c1b00, 0x0e0d80,
0x0706c0, 0x038360, 0x01c1b0, 0x00e0d8, 0x00706c, 0x003836, 0x001c1b, 0xfff409,
0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000,
0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000
}

Definition at line 54 of file mode_s.c.

Referenced by modesChecksum().


, generated on Tue Sep 26 2023.