mirror of https://github.com/wb2osz/direwolf.git
131 lines
3.3 KiB
C
131 lines
3.3 KiB
C
|
|
/*----------------------------------------------------------------------------
|
|
*
|
|
* 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 "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 };
|
|
|
|
#define MAX_BEACONS 30
|
|
|
|
struct misc_config_s {
|
|
|
|
int num_channels; /* Number of radio channels. */
|
|
|
|
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[40]; /* Serial port name for our end of the */
|
|
/* virtual null modem for native Windows apps. */
|
|
|
|
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 */
|
|
|
|
|
|
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. */
|
|
|
|
int chan; /* Send to Channel for transmission. -1 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. */
|
|
|
|
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. */
|
|
|
|
double lat; /* Latitude and longitude. */
|
|
double lon;
|
|
|
|
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. */
|
|
|
|
|
|
} 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 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 */
|
|
|
|
|