Disable rtprio by default and abort, if given prio is not allowed
This commit is contained in:
parent
3158c48365
commit
3c2b5286c5
|
@ -57,7 +57,7 @@ static int region = -1, region_advance;
|
||||||
static int double_amplitude = 0;
|
static int double_amplitude = 0;
|
||||||
static int test_tone = 0;
|
static int test_tone = 0;
|
||||||
static int dsp_interval = 1; /* ms */
|
static int dsp_interval = 1; /* ms */
|
||||||
static int rt_prio = 1;
|
static int rt_prio = 0;
|
||||||
static int fast_math = 0;
|
static int fast_math = 0;
|
||||||
|
|
||||||
/* not static, in case we add libtimer some day, then compiler hits an error */
|
/* not static, in case we add libtimer some day, then compiler hits an error */
|
||||||
|
@ -539,6 +539,19 @@ int main(int argc, char *argv[])
|
||||||
timestamp = dcf77_start_weather((time_t)timestamp, region, region_advance);
|
timestamp = dcf77_start_weather((time_t)timestamp, region, region_advance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* set real time prio */
|
||||||
|
if (rt_prio) {
|
||||||
|
struct sched_param schedp;
|
||||||
|
|
||||||
|
memset(&schedp, 0, sizeof(schedp));
|
||||||
|
schedp.sched_priority = rt_prio;
|
||||||
|
rc = sched_setscheduler(0, SCHED_RR, &schedp);
|
||||||
|
if (rc) {
|
||||||
|
fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
print_aaimage();
|
print_aaimage();
|
||||||
printf("DCF77 ready.\n");
|
printf("DCF77 ready.\n");
|
||||||
|
|
||||||
|
@ -550,17 +563,6 @@ int main(int argc, char *argv[])
|
||||||
term.c_cc[VTIME]=2;
|
term.c_cc[VTIME]=2;
|
||||||
tcsetattr(0, TCSANOW, &term);
|
tcsetattr(0, TCSANOW, &term);
|
||||||
|
|
||||||
/* set real time prio */
|
|
||||||
if (rt_prio) {
|
|
||||||
struct sched_param schedp;
|
|
||||||
|
|
||||||
memset(&schedp, 0, sizeof(schedp));
|
|
||||||
schedp.sched_priority = rt_prio;
|
|
||||||
rc = sched_setscheduler(0, SCHED_RR, &schedp);
|
|
||||||
if (rc)
|
|
||||||
fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio);
|
|
||||||
}
|
|
||||||
|
|
||||||
signal(SIGINT, sighandler);
|
signal(SIGINT, sighandler);
|
||||||
signal(SIGHUP, sighandler);
|
signal(SIGHUP, sighandler);
|
||||||
signal(SIGTERM, sighandler);
|
signal(SIGTERM, sighandler);
|
||||||
|
|
|
@ -77,7 +77,7 @@ int no_l16 = 0;
|
||||||
int send_patterns = 1;
|
int send_patterns = 1;
|
||||||
static int release_on_disconnect = 1;
|
static int release_on_disconnect = 1;
|
||||||
int loopback = 0;
|
int loopback = 0;
|
||||||
int rt_prio = 1;
|
int rt_prio = 0;
|
||||||
int fast_math = 0;
|
int fast_math = 0;
|
||||||
const char *write_tx_wave = NULL;
|
const char *write_tx_wave = NULL;
|
||||||
const char *write_rx_wave = NULL;
|
const char *write_rx_wave = NULL;
|
||||||
|
@ -691,9 +691,6 @@ void main_mobile_loop(const char *name, int *quit, void (*myhandler)(void), cons
|
||||||
if (console_open_audio(buffer_size, dsp_interval))
|
if (console_open_audio(buffer_size, dsp_interval))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!loopback)
|
|
||||||
print_aaimage();
|
|
||||||
|
|
||||||
/* real time priority */
|
/* real time priority */
|
||||||
if (rt_prio > 0) {
|
if (rt_prio > 0) {
|
||||||
struct sched_param schedp;
|
struct sched_param schedp;
|
||||||
|
@ -702,10 +699,15 @@ void main_mobile_loop(const char *name, int *quit, void (*myhandler)(void), cons
|
||||||
memset(&schedp, 0, sizeof(schedp));
|
memset(&schedp, 0, sizeof(schedp));
|
||||||
schedp.sched_priority = rt_prio;
|
schedp.sched_priority = rt_prio;
|
||||||
rc = sched_setscheduler(0, SCHED_RR, &schedp);
|
rc = sched_setscheduler(0, SCHED_RR, &schedp);
|
||||||
if (rc)
|
if (rc) {
|
||||||
fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio);
|
fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!loopback)
|
||||||
|
print_aaimage();
|
||||||
|
|
||||||
/* prepare terminal */
|
/* prepare terminal */
|
||||||
tcgetattr(0, &term_orig);
|
tcgetattr(0, &term_orig);
|
||||||
term = term_orig;
|
term = term_orig;
|
||||||
|
|
|
@ -42,7 +42,7 @@ enum paging_signal;
|
||||||
void *sender_head = NULL;
|
void *sender_head = NULL;
|
||||||
int use_sdr = 0;
|
int use_sdr = 0;
|
||||||
int num_kanal = 1; /* only one channel used for debugging */
|
int num_kanal = 1; /* only one channel used for debugging */
|
||||||
int rt_prio = 1;
|
int rt_prio = 0;
|
||||||
int fast_math = 0;
|
int fast_math = 0;
|
||||||
|
|
||||||
void *get_sender_by_empfangsfrequenz() { return NULL; }
|
void *get_sender_by_empfangsfrequenz() { return NULL; }
|
||||||
|
@ -385,8 +385,10 @@ int main(int argc, char *argv[])
|
||||||
memset(&schedp, 0, sizeof(schedp));
|
memset(&schedp, 0, sizeof(schedp));
|
||||||
schedp.sched_priority = rt_prio;
|
schedp.sched_priority = rt_prio;
|
||||||
rc = sched_setscheduler(0, SCHED_RR, &schedp);
|
rc = sched_setscheduler(0, SCHED_RR, &schedp);
|
||||||
if (rc)
|
if (rc) {
|
||||||
fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio);
|
fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double tx_frequencies[1], rx_frequencies[1];
|
double tx_frequencies[1], rx_frequencies[1];
|
||||||
|
|
|
@ -48,7 +48,7 @@ enum paging_signal;
|
||||||
void *sender_head = NULL;
|
void *sender_head = NULL;
|
||||||
int use_sdr = 0;
|
int use_sdr = 0;
|
||||||
int num_kanal = 1; /* only one channel used for debugging */
|
int num_kanal = 1; /* only one channel used for debugging */
|
||||||
int rt_prio = 1;
|
int rt_prio = 0;
|
||||||
|
|
||||||
void *get_sender_by_empfangsfrequenz() { return NULL; }
|
void *get_sender_by_empfangsfrequenz() { return NULL; }
|
||||||
|
|
||||||
|
@ -331,8 +331,10 @@ static void tx_bas(sample_t *sample_bas, __attribute__((__unused__)) sample_t *s
|
||||||
memset(&schedp, 0, sizeof(schedp));
|
memset(&schedp, 0, sizeof(schedp));
|
||||||
schedp.sched_priority = rt_prio;
|
schedp.sched_priority = rt_prio;
|
||||||
rc = sched_setscheduler(0, SCHED_RR, &schedp);
|
rc = sched_setscheduler(0, SCHED_RR, &schedp);
|
||||||
if (rc)
|
if (rc) {
|
||||||
fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio);
|
fprintf(stderr, "Error setting SCHED_RR with prio %d\n", rt_prio);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double tx_frequencies[1], rx_frequencies[1];
|
double tx_frequencies[1], rx_frequencies[1];
|
||||||
|
|
Loading…
Reference in New Issue