40 #define MODES_DUMP1090_VERSION "1.07.0710.13"
54 #include <sys/timeb.h>
72 #define MODES_USER_LATITUDE_DFLT (USER_LATITUDE)
73 #define MODES_USER_LONGITUDE_DFLT (USER_LONGITUDE)
75 #define MODES_USER_LATITUDE_DFLT (-35.108405932)
76 #define MODES_USER_LONGITUDE_DFLT (-69.533337772)
79 #define MODES_DEFAULT_RATE 2000000
80 #define MODES_DEFAULT_FREQ 1090000000
81 #define MODES_DEFAULT_WIDTH 1000
82 #define MODES_DEFAULT_HEIGHT 700
83 #define MODES_ASYNC_BUF_NUMBER 12
84 #define MODES_ASYNC_BUF_SIZE (16*16384) // 256k
85 #define MODES_ASYNC_BUF_SAMPLES (MODES_ASYNC_BUF_SIZE / 2) // Each sample is 2 bytes
86 #define MODES_AUTO_GAIN -100 // Use automatic gain
87 #define MODES_MAX_GAIN 999999 // Use max available gain
88 #define MODES_MSG_SQUELCH_LEVEL 0x02FF // Average signal strength limit
89 #define MODES_MSG_ENCODER_ERRS 3 // Maximum number of encoding errors
92 #define MODES_MAX_BITERRORS 2 // Global max for fixable bit erros
94 #define MODEAC_MSG_SAMPLES (25 * 2) // include up to the SPI bit
95 #define MODEAC_MSG_BYTES 2
96 #define MODEAC_MSG_SQUELCH_LEVEL 0x07FF // Average signal strength limit
97 #define MODEAC_MSG_FLAG (1<<0)
98 #define MODEAC_MSG_MODES_HIT (1<<1)
99 #define MODEAC_MSG_MODEA_HIT (1<<2)
100 #define MODEAC_MSG_MODEC_HIT (1<<3)
101 #define MODEAC_MSG_MODEA_ONLY (1<<4)
102 #define MODEAC_MSG_MODEC_OLD (1<<5)
104 #define MODES_PREAMBLE_US 8 // microseconds = bits
105 #define MODES_PREAMBLE_SAMPLES (MODES_PREAMBLE_US * 2)
106 #define MODES_PREAMBLE_SIZE (MODES_PREAMBLE_SAMPLES * sizeof(uint16_t))
107 #define MODES_LONG_MSG_BYTES 14
108 #define MODES_SHORT_MSG_BYTES 7
109 #define MODES_LONG_MSG_BITS (MODES_LONG_MSG_BYTES * 8)
110 #define MODES_SHORT_MSG_BITS (MODES_SHORT_MSG_BYTES * 8)
111 #define MODES_LONG_MSG_SAMPLES (MODES_LONG_MSG_BITS * 2)
112 #define MODES_SHORT_MSG_SAMPLES (MODES_SHORT_MSG_BITS * 2)
113 #define MODES_LONG_MSG_SIZE (MODES_LONG_MSG_SAMPLES * sizeof(uint16_t))
114 #define MODES_SHORT_MSG_SIZE (MODES_SHORT_MSG_SAMPLES * sizeof(uint16_t))
116 #define MODES_RAWOUT_BUF_SIZE (1500)
117 #define MODES_RAWOUT_BUF_FLUSH (MODES_RAWOUT_BUF_SIZE - 200)
118 #define MODES_RAWOUT_BUF_RATE (1000) // 1000 * 64mS = 1 Min approx
120 #define MODES_ICAO_CACHE_LEN 1024 // Power of two required
121 #define MODES_ICAO_CACHE_TTL 60 // Time to live of cached addresses
122 #define MODES_UNIT_FEET 0
123 #define MODES_UNIT_METERS 1
125 #define MODES_USER_LATLON_VALID (1<<0)
127 #define MODES_ACFLAGS_LATLON_VALID (1<<0) // Aircraft Lat/Lon is decoded
128 #define MODES_ACFLAGS_ALTITUDE_VALID (1<<1) // Aircraft altitude is known
129 #define MODES_ACFLAGS_HEADING_VALID (1<<2) // Aircraft heading is known
130 #define MODES_ACFLAGS_SPEED_VALID (1<<3) // Aircraft speed is known
131 #define MODES_ACFLAGS_VERTRATE_VALID (1<<4) // Aircraft vertical rate is known
132 #define MODES_ACFLAGS_SQUAWK_VALID (1<<5) // Aircraft Mode A Squawk is known
133 #define MODES_ACFLAGS_CALLSIGN_VALID (1<<6) // Aircraft Callsign Identity
134 #define MODES_ACFLAGS_EWSPEED_VALID (1<<7) // Aircraft East West Speed is known
135 #define MODES_ACFLAGS_NSSPEED_VALID (1<<8) // Aircraft North South Speed is known
136 #define MODES_ACFLAGS_AOG (1<<9) // Aircraft is On the Ground
137 #define MODES_ACFLAGS_LLEVEN_VALID (1<<10) // Aircraft Even Lot/Lon is known
138 #define MODES_ACFLAGS_LLODD_VALID (1<<11) // Aircraft Odd Lot/Lon is known
139 #define MODES_ACFLAGS_AOG_VALID (1<<12) // MODES_ACFLAGS_AOG is valid
140 #define MODES_ACFLAGS_FS_VALID (1<<13) // Aircraft Flight Status is known
141 #define MODES_ACFLAGS_NSEWSPD_VALID (1<<14) // Aircraft EW and NS Speed is known
142 #define MODES_ACFLAGS_LATLON_REL_OK (1<<15) // Indicates it's OK to do a relative CPR
144 #define MODES_ACFLAGS_LLEITHER_VALID (MODES_ACFLAGS_LLEVEN_VALID | MODES_ACFLAGS_LLODD_VALID)
145 #define MODES_ACFLAGS_LLBOTH_VALID (MODES_ACFLAGS_LLEVEN_VALID | MODES_ACFLAGS_LLODD_VALID)
146 #define MODES_ACFLAGS_AOG_GROUND (MODES_ACFLAGS_AOG_VALID | MODES_ACFLAGS_AOG)
148 #define MODES_DEBUG_DEMOD (1<<0)
149 #define MODES_DEBUG_DEMODERR (1<<1)
150 #define MODES_DEBUG_BADCRC (1<<2)
151 #define MODES_DEBUG_GOODCRC (1<<3)
152 #define MODES_DEBUG_NOPREAMBLE (1<<4)
153 #define MODES_DEBUG_NET (1<<5)
154 #define MODES_DEBUG_JS (1<<6)
158 #define MODES_DEBUG_NOPREAMBLE_LEVEL 25
160 #define MODES_INTERACTIVE_REFRESH_TIME 250 // Milliseconds
161 #define MODES_INTERACTIVE_ROWS 22 // Rows on screen
162 #define MODES_INTERACTIVE_DELETE_TTL 300 // Delete from the list after 300 seconds
163 #define MODES_INTERACTIVE_DISPLAY_TTL 60 // Delete from display after 60 seconds
165 #define MODES_NET_MAX_FD 1024
166 #define MODES_NET_INPUT_RAW_PORT 30001
167 #define MODES_NET_OUTPUT_RAW_PORT 30002
168 #define MODES_NET_OUTPUT_SBS_PORT 30003
169 #define MODES_NET_INPUT_BEAST_PORT 30004
170 #define MODES_NET_OUTPUT_BEAST_PORT 30005
171 #define MODES_NET_HTTP_PORT 8080
172 #define MODES_CLIENT_BUF_SIZE 1024
173 #define MODES_NET_SNDBUF_SIZE (1024*64)
176 #define HTMLPATH "./public_html" // default path for gmap.html etc
179 #define MODES_NOTUSED(V) ((void) V)
432 #endif // __DUMP1090_H
int ModeAToModeC(unsigned int ModeA)
void interactiveRemoveStaleAircrafts(void)
unsigned int stat_raw_connections
int detectModeA(uint16_t *m, struct modesMessage *mm)
void decodeModesMessage(struct modesMessage *mm, unsigned char *msg)
unsigned int stat_ph_goodcrc
void detectModeS(uint16_t *m, uint32_t mlen)
void interactiveShowData(void)
void modesQueueOutput(struct modesMessage *mm)
struct timeb stSystemTimeBlk
int decodeBinMessage(struct client *c, char *p)
#define MODES_CLIENT_BUF_SIZE
unsigned int stat_beast_connections
unsigned int stat_ph_demodulated3
unsigned int stat_demodulated0
unsigned int stat_ph_demodulated1
void decodeModeAMessage(struct modesMessage *mm, int ModeA)
unsigned int stat_http_requests
void modesInitErrorInfo()
void modesReadFromClient(struct client *c, char *sep, int(*handler)(struct client *, char *))
unsigned int stat_goodcrc
int interactive_delete_ttl
unsigned int stat_ph_fixed
unsigned char signalLevel
#define MODES_LONG_MSG_BYTES
uint64_t interactive_last_update
void modesReadFromClients(void)
void decodeCPR(struct aircraft *a, int fflag, int surface)
int net_output_beast_port
struct aircraft * interactiveReceiveData(struct modesMessage *mm)
unsigned int stat_bit_fix[2]
unsigned int stat_DF_Type_Corrected
void displayModesMessage(struct modesMessage *mm)
struct timeb stSystemTimeRTL
void useModesMessage(struct modesMessage *mm)
#define MODES_MAX_BITERRORS
unsigned int stat_demodulated1
void modesSendAllClients(int service, void *msg, int len)
unsigned int stat_ph_demodulated0
unsigned int stat_ph_badcrc
unsigned int stat_demodulated3
struct client * clients[1024]
unsigned int stat_DF_Len_Corrected
unsigned int stat_sbs_connections
unsigned char signalLevel[8]
int decodeCPRrelative(struct aircraft *a, int fflag, int surface)
int interactive_display_ttl
pthread_mutex_t data_mutex
void computeMagnitudeVector()
unsigned int stat_valid_preamble
unsigned int stat_ph_bit_fix[2]
struct aircraft * aircrafts
unsigned int stat_ph_demodulated2
unsigned int stat_out_of_phase
int net_output_raw_rate_count
unsigned int stat_demodulated2