mirror of https://github.com/wb2osz/direwolf.git
MAX_ADEVS==4 enabled debug output options.
This commit is contained in:
parent
a83a1ca5f5
commit
debe703a47
99
src/config.c
99
src/config.c
|
@ -19,8 +19,8 @@
|
||||||
|
|
||||||
#define CONFIG_C 1 // influences behavior of aprs_tt.h
|
#define CONFIG_C 1 // influences behavior of aprs_tt.h
|
||||||
|
|
||||||
|
// FIXME:
|
||||||
// #define DEBUG 1
|
#define DEBUG 1
|
||||||
|
|
||||||
/*------------------------------------------------------------------
|
/*------------------------------------------------------------------
|
||||||
*
|
*
|
||||||
|
@ -716,6 +716,7 @@ static void rtfm()
|
||||||
dw_printf (" stable release: https://github.com/wb2osz/direwolf/tree/master/doc\n");
|
dw_printf (" stable release: https://github.com/wb2osz/direwolf/tree/master/doc\n");
|
||||||
dw_printf (" development version: https://github.com/wb2osz/direwolf/tree/dev/doc\n");
|
dw_printf (" development version: https://github.com/wb2osz/direwolf/tree/dev/doc\n");
|
||||||
dw_printf (" additional topics: https://github.com/wb2osz/direwolf-doc\n");
|
dw_printf (" additional topics: https://github.com/wb2osz/direwolf-doc\n");
|
||||||
|
dw_printf (" general APRS info: https://how.aprs.works\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void config_init (char *fname, struct audio_s *p_audio_config,
|
void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
|
@ -763,12 +764,17 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
|
|
||||||
p_audio_config->adev[0].defined = 2; // 2 means it was done by default and not the user's config file.
|
p_audio_config->adev[0].defined = 2; // 2 means it was done by default and not the user's config file.
|
||||||
|
|
||||||
|
// MAX_TOTAL_CHANS
|
||||||
for (channel=0; channel<MAX_TOTAL_CHANS; channel++) {
|
for (channel=0; channel<MAX_TOTAL_CHANS; channel++) {
|
||||||
int ot, it;
|
|
||||||
|
|
||||||
p_audio_config->chan_medium[channel] = MEDIUM_NONE; /* One or both channels will be */
|
p_audio_config->chan_medium[channel] = MEDIUM_NONE; /* One or both channels will be */
|
||||||
/* set to radio when corresponding */
|
/* set to radio when corresponding */
|
||||||
/* audio device is defined. */
|
/* audio device is defined. */
|
||||||
|
}
|
||||||
|
|
||||||
|
// MAX_RADIO_CHANS for achan[]
|
||||||
|
for (channel=0; channel<MAX_RADIO_CHANS; channel++) {
|
||||||
|
int ot, it;
|
||||||
|
|
||||||
p_audio_config->achan[channel].modem_type = MODEM_AFSK;
|
p_audio_config->achan[channel].modem_type = MODEM_AFSK;
|
||||||
p_audio_config->achan[channel].v26_alternative = V26_UNSPECIFIED;
|
p_audio_config->achan[channel].v26_alternative = V26_UNSPECIFIED;
|
||||||
p_audio_config->achan[channel].mark_freq = DEFAULT_MARK_FREQ; /* -m option */
|
p_audio_config->achan[channel].mark_freq = DEFAULT_MARK_FREQ; /* -m option */
|
||||||
|
@ -980,8 +986,13 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
// TODO: not exactly right for all situations.
|
// TODO: not exactly right for all situations.
|
||||||
text_color_set(DW_COLOR_ERROR);
|
text_color_set(DW_COLOR_ERROR);
|
||||||
dw_printf ("ERROR - Could not open config file %s\n", filepath);
|
dw_printf ("ERROR - Could not open configuration file %s\n", filepath);
|
||||||
dw_printf ("Try using -c command line option for alternate location.\n");
|
dw_printf ("Try using -c command line option for alternate location.\n");
|
||||||
|
#ifndef __WIN32__
|
||||||
|
dw_printf ("A sample direwolf.conf file should be found in one of:\n");
|
||||||
|
dw_printf (" /usr/local/share/doc/direwolf/conf/\n");
|
||||||
|
dw_printf (" /usr/share/doc/direwolf/conf/\n");
|
||||||
|
#endif
|
||||||
rtfm();
|
rtfm();
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
@ -1423,6 +1434,12 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
else if (strcasecmp(t, "MODEM") == 0) {
|
else if (strcasecmp(t, "MODEM") == 0) {
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: MODEM can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
int n;
|
int n;
|
||||||
t = split(NULL,0);
|
t = split(NULL,0);
|
||||||
if (t == NULL) {
|
if (t == NULL) {
|
||||||
|
@ -1758,6 +1775,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
|
|
||||||
|
|
||||||
else if (strcasecmp(t, "DTMF") == 0) {
|
else if (strcasecmp(t, "DTMF") == 0) {
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: DTMF can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
p_audio_config->achan[channel].dtmf_decode = DTMF_DECODE_ON;
|
p_audio_config->achan[channel].dtmf_decode = DTMF_DECODE_ON;
|
||||||
|
|
||||||
|
@ -1773,6 +1795,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
else if (strcasecmp(t, "FIX_BITS") == 0) {
|
else if (strcasecmp(t, "FIX_BITS") == 0) {
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: FIX_BITS can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
int n;
|
int n;
|
||||||
t = split(NULL,0);
|
t = split(NULL,0);
|
||||||
if (t == NULL) {
|
if (t == NULL) {
|
||||||
|
@ -1851,6 +1878,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
else if (strcasecmp(t, "PTT") == 0 || strcasecmp(t, "DCD") == 0 || strcasecmp(t, "CON") == 0) {
|
else if (strcasecmp(t, "PTT") == 0 || strcasecmp(t, "DCD") == 0 || strcasecmp(t, "CON") == 0) {
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: PTT can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
int ot;
|
int ot;
|
||||||
char otname[8];
|
char otname[8];
|
||||||
|
|
||||||
|
@ -2222,6 +2254,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
else if (strcasecmp(t, "TXINH") == 0) {
|
else if (strcasecmp(t, "TXINH") == 0) {
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: TXINH can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
char itname[8];
|
char itname[8];
|
||||||
|
|
||||||
strlcpy (itname, "TXINH", sizeof(itname));
|
strlcpy (itname, "TXINH", sizeof(itname));
|
||||||
|
@ -2268,6 +2305,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
else if (strcasecmp(t, "DWAIT") == 0) {
|
else if (strcasecmp(t, "DWAIT") == 0) {
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: DWAIT can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
int n;
|
int n;
|
||||||
t = split(NULL,0);
|
t = split(NULL,0);
|
||||||
if (t == NULL) {
|
if (t == NULL) {
|
||||||
|
@ -2292,6 +2334,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
else if (strcasecmp(t, "SLOTTIME") == 0) {
|
else if (strcasecmp(t, "SLOTTIME") == 0) {
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: SLOTTIME can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
int n;
|
int n;
|
||||||
t = split(NULL,0);
|
t = split(NULL,0);
|
||||||
if (t == NULL) {
|
if (t == NULL) {
|
||||||
|
@ -2322,6 +2369,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
else if (strcasecmp(t, "PERSIST") == 0) {
|
else if (strcasecmp(t, "PERSIST") == 0) {
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: PERSIST can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
int n;
|
int n;
|
||||||
t = split(NULL,0);
|
t = split(NULL,0);
|
||||||
if (t == NULL) {
|
if (t == NULL) {
|
||||||
|
@ -2349,6 +2401,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
else if (strcasecmp(t, "TXDELAY") == 0) {
|
else if (strcasecmp(t, "TXDELAY") == 0) {
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: TXDELAY can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
int n;
|
int n;
|
||||||
t = split(NULL,0);
|
t = split(NULL,0);
|
||||||
if (t == NULL) {
|
if (t == NULL) {
|
||||||
|
@ -2390,6 +2447,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
else if (strcasecmp(t, "TXTAIL") == 0) {
|
else if (strcasecmp(t, "TXTAIL") == 0) {
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: TXTAIL can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
int n;
|
int n;
|
||||||
t = split(NULL,0);
|
t = split(NULL,0);
|
||||||
if (t == NULL) {
|
if (t == NULL) {
|
||||||
|
@ -2430,6 +2492,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
*/
|
*/
|
||||||
else if (strcasecmp(t, "FULLDUP") == 0) {
|
else if (strcasecmp(t, "FULLDUP") == 0) {
|
||||||
|
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: FULLDUP can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
t = split(NULL,0);
|
t = split(NULL,0);
|
||||||
if (t == NULL) {
|
if (t == NULL) {
|
||||||
text_color_set(DW_COLOR_ERROR);
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
@ -2457,6 +2524,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
|
|
||||||
else if (strcasecmp(t, "SPEECH") == 0) {
|
else if (strcasecmp(t, "SPEECH") == 0) {
|
||||||
|
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: SPEECH can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
t = split(NULL,0);
|
t = split(NULL,0);
|
||||||
if (t == NULL) {
|
if (t == NULL) {
|
||||||
text_color_set(DW_COLOR_ERROR);
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
@ -2488,6 +2560,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
else if (strcasecmp(t, "FX25TX") == 0) {
|
else if (strcasecmp(t, "FX25TX") == 0) {
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: FX25TX can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
int n;
|
int n;
|
||||||
t = split(NULL,0);
|
t = split(NULL,0);
|
||||||
if (t == NULL) {
|
if (t == NULL) {
|
||||||
|
@ -2510,7 +2587,7 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FX25AUTO n - Enable Automatic use of FX.25 for connected mode.
|
* FX25AUTO n - Enable Automatic use of FX.25 for connected mode. *** Not Implemented ***
|
||||||
* Automatically enable, for that session only, when an identical
|
* Automatically enable, for that session only, when an identical
|
||||||
* frame is sent more than this number of times.
|
* frame is sent more than this number of times.
|
||||||
* Default 5 based on half of default RETRY.
|
* Default 5 based on half of default RETRY.
|
||||||
|
@ -2519,6 +2596,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
*/
|
*/
|
||||||
|
|
||||||
else if (strcasecmp(t, "FX25AUTO") == 0) {
|
else if (strcasecmp(t, "FX25AUTO") == 0) {
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: FX25AUTO can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
int n;
|
int n;
|
||||||
t = split(NULL,0);
|
t = split(NULL,0);
|
||||||
if (t == NULL) {
|
if (t == NULL) {
|
||||||
|
@ -2550,6 +2632,11 @@ void config_init (char *fname, struct audio_s *p_audio_config,
|
||||||
|
|
||||||
else if (strcasecmp(t, "IL2PTX") == 0) {
|
else if (strcasecmp(t, "IL2PTX") == 0) {
|
||||||
|
|
||||||
|
if (channel < 0 || channel >= MAX_RADIO_CHANS) {
|
||||||
|
text_color_set(DW_COLOR_ERROR);
|
||||||
|
dw_printf ("Line %d: IL2PTX can only be used with radio channel 0 - %d.\n", line, MAX_RADIO_CHANS-1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
p_audio_config->achan[channel].layer2_xmit = LAYER2_IL2P;
|
p_audio_config->achan[channel].layer2_xmit = LAYER2_IL2P;
|
||||||
p_audio_config->achan[channel].il2p_max_fec = 1;
|
p_audio_config->achan[channel].il2p_max_fec = 1;
|
||||||
p_audio_config->achan[channel].il2p_invert_polarity = 0;
|
p_audio_config->achan[channel].il2p_invert_polarity = 0;
|
||||||
|
|
Loading…
Reference in New Issue