Add test function to test Sa 7 bit setting and reporting

This commit is contained in:
Andreas Eversberg 2023-01-09 22:24:26 +01:00
parent 8c195781b6
commit de54466eb5
2 changed files with 20 additions and 3 deletions

View File

@ -11,6 +11,8 @@
#include "v5x_l1_fsm.h"
#include "v5x_le_management.h"
extern int test_sa7;
extern struct v5x_instance *v5i;
static struct gsmtap_inst *g_gti = NULL;
@ -74,10 +76,19 @@ static int inp_sig_cb(unsigned int subsys, unsigned int signal, void __attribute
v5x_l1_signal_rcv(v5l, L1_SIGNAL_NO_AIS);
break;
case S_L_INP_LINE_SA_BITS:
if ((isd->sa_bits & 0x40))
if ((isd->sa_bits & 0x40)) {
v5x_l1_signal_rcv(v5l, L1_SIGNAL_SA7_1);
else
if (test_sa7) {
printf("Currently Sa 7 is set to 1, changing it to 0. (Link ID %d)\n", v5l->id);
v5x_l1_signal_snd(v5l, L1_SIGNAL_SA7_0);
}
} else {
v5x_l1_signal_rcv(v5l, L1_SIGNAL_SA7_0);
if (test_sa7) {
printf("Currently Sa 7 is set to 0, changing it to 1. (Link ID %d)\n", v5l->id);
v5x_l1_signal_snd(v5l, L1_SIGNAL_SA7_1);
}
}
break;
case S_L_INP_LINE_SLIP_RX:
printf("RX slip detected on link %d.\n", v5l->id);

View File

@ -72,6 +72,7 @@ void *tall_v5le_ctx = NULL;
struct v5x_instance *v5i = NULL;
static int daemonize = 0;
int test_sa7 = 0;
const char *v5le_copyright =
"Copyright (C) 2022 by Harald Welte & Andreas Eversberg\r\n"
@ -89,6 +90,7 @@ static void print_help()
printf(" -s --disable-color\n");
printf(" -D --daemonize Fork the process into a background daemon\n");
printf(" -V --version Print the version number\n");
printf(" -7 --rest-sa7 Continously toggle Sa7 when received. (Do loop interface.)\n");
printf("\nVTY reference generation:\n");
printf(" --vty-ref-mode MODE VTY reference generation mode (e.g. 'expert').\n");
@ -133,10 +135,11 @@ static void handle_options(int argc, char **argv)
{"disable-color", 0, 0, 's'},
{"vty-ref-mode", 1, &long_option, 1},
{"vty-ref-xml", 0, &long_option, 2},
{"test-sa7", 0, 0, '7'},
{0, 0, 0, 0},
};
c = getopt_long(argc, argv, "hc:sVD", long_options, &option_index);
c = getopt_long(argc, argv, "hc:sVD7", long_options, &option_index);
if (c == -1)
break;
@ -162,6 +165,9 @@ static void handle_options(int argc, char **argv)
case 'D':
daemonize = 1;
break;
case '7':
test_sa7 = 1;
break;
default:
/* ignore */
break;