-
Notifications
You must be signed in to change notification settings - Fork 313
/
Copy pathconfig.h
200 lines (126 loc) · 5.99 KB
/
config.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
/*----------------------------------------------------------------------------
*
* Name: config.h
*
* Purpose:
*
* Description:
*
*-----------------------------------------------------------------------------*/
#ifndef CONFIG_H
#define CONFIG_H 1
#include "audio.h" /* for struct audio_s */
#include "digipeater.h" /* for struct digi_config_s */
#include "cdigipeater.h" /* for struct cdigi_config_s */
#include "aprs_tt.h" /* for struct tt_config_s */
#include "igate.h" /* for struct igate_config_s */
/*
* All the leftovers.
* This wasn't thought out. It just happened.
*/
enum beacon_type_e { BEACON_IGNORE, BEACON_POSITION, BEACON_OBJECT, BEACON_TRACKER, BEACON_CUSTOM, BEACON_IGATE };
enum sendto_type_e { SENDTO_XMIT, SENDTO_IGATE, SENDTO_RECV };
#define MAX_BEACONS 30
struct misc_config_s {
int agwpe_port; /* Port number for the "AGW TCPIP Socket Interface" */
int kiss_port; /* Port number for the "KISS" protocol. */
int enable_kiss_pt; /* Enable pseudo terminal for KISS. */
/* Want this to be off by default because it hangs */
/* after a while if nothing is reading from other end. */
char nullmodem[20]; /* Serial port name for our end of the */
/* virtual null modem for native Windows apps. */
char gpsnmea_port[20]; /* Serial port name for reading NMEA sentences from GPS. */
/* e.g. COM22, /dev/ttyACM0 */
/* Currently no option for setting non-standard speed. */
char gpsd_host[20]; /* Host for gpsd server. */
/* e.g. localhost, 192.168.1.2 */
int gpsd_port; /* Port number for gpsd server. */
/* Default is 2947. */
char waypoint_port[20]; /* Serial port name for sending NMEA waypoint sentences */
/* to a GPS map display or other mapping application. */
/* e.g. COM22, /dev/ttyACM0 */
/* Currently no option for setting non-standard speed. */
int waypoint_formats; /* Which sentence formats should be generated? */
#define WPT_FORMAT_NMEA_GENERIC 0x01 /* N $GPWPT */
#define WPT_FORMAT_GARMIN 0x02 /* G $PGRMW */
#define WPT_FORMAT_MAGELLAN 0x04 /* M $PMGNWPL */
#define WPT_FORMAT_KENWOOD 0x08 /* K $PKWDWPL */
char logdir[80]; /* Directory for saving activity logs. */
int sb_configured; /* TRUE if SmartBeaconing is configured. */
int sb_fast_speed; /* MPH */
int sb_fast_rate; /* seconds */
int sb_slow_speed; /* MPH */
int sb_slow_rate; /* seconds */
int sb_turn_time; /* seconds */
int sb_turn_angle; /* degrees */
int sb_turn_slope; /* degrees * MPH */
// AX.25 connected mode.
int frack; /* Number of seconds to wait for ack to transmission. */
int retry; /* Number of times to retry before giving up. */
int paclen; /* Max number of bytes in information part of frame. */
int maxframe_basic; /* Max frames to send before ACK. mod 8 "Window" size. */
int maxframe_extended; /* Max frames to send before ACK. mod 128 "Window" size. */
int maxv22; /* Maximum number of unanswered SABME frames sent before */
/* switching to SABM. This is to handle the case of an old */
/* TNC which simply ignores SABME rather than replying with FRMR. */
// Beacons.
int num_beacons; /* Number of beacons defined. */
struct beacon_s {
enum beacon_type_e btype; /* Position or object. */
int lineno; /* Line number from config file for later error messages. */
enum sendto_type_e sendto_type;
/* SENDTO_XMIT - Usually beacons go to a radio transmitter. */
/* chan, below is the channel number. */
/* SENDTO_IGATE - Send to IGate, probably to announce my position */
/* rather than relying on someone else to hear */
/* me on the radio and report me. */
/* SENDTO_RECV - Pretend this was heard on the specified */
/* radio channel. Mostly for testing. It is a */
/* convenient way to send packets to attached apps. */
int sendto_chan; /* Transmit or simulated receive channel for above. Should be 0 for IGate. */
int delay; /* Seconds to delay before first transmission. */
int every; /* Time between transmissions, seconds. */
/* Remains fixed for PBEACON and OBEACON. */
/* Dynamically adjusted for TBEACON. */
time_t next; /* Unix time to transmit next one. */
char *dest; /* NULL or explicit AX.25 destination to use */
/* instead of the software version such as APDW11. */
int compress; /* Use more compact form? */
char objname[10]; /* Object name. Any printable characters. */
char *via; /* Path, e.g. "WIDE1-1,WIDE2-1" or NULL. */
char *custom_info; /* Info part for handcrafted custom beacon. */
/* Ignore the rest below if this is set. */
char *custom_infocmd; /* Command to generate info part. */
/* Again, other options below are then ignored. */
int messaging; /* Set messaging attribute for position report. */
/* i.e. Data Type Indicator of '=' rather than '!' */
double lat; /* Latitude and longitude. */
double lon;
float alt_m; /* Altitude in meters. */
char symtab; /* Symbol table: / or \ or overlay character. */
char symbol; /* Symbol code. */
float power; /* For PHG. */
float height;
float gain; /* Original protocol spec was unclear. */
/* Addendum 1.1 clarifies it is dBi not dBd. */
char dir[3]; /* 1 or 2 of N,E,W,S, or empty for omni. */
float freq; /* MHz. */
float tone; /* Hz. */
float offset; /* MHz. */
char *comment; /* Comment or NULL. */
char *commentcmd; /* Command to append more to Comment or NULL. */
} beacon[MAX_BEACONS];
};
#define MIN_IP_PORT_NUMBER 1024
#define MAX_IP_PORT_NUMBER 49151
#define DEFAULT_AGWPE_PORT 8000 /* Like everyone else. */
#define DEFAULT_KISS_PORT 8001 /* Above plus 1. */
#define DEFAULT_NULLMODEM "COM3" /* should be equiv. to /dev/ttyS2 on Cygwin */
extern void config_init (char *fname, struct audio_s *p_modem,
struct digi_config_s *digi_config,
struct cdigi_config_s *cdigi_config,
struct tt_config_s *p_tt_config,
struct igate_config_s *p_igate_config,
struct misc_config_s *misc_config);
#endif /* CONFIG_H */
/* end config.h */