C-Netz: Added list of base station names and IDs

Automatic polarity detection is now done by using the polarity of last
transmitted message. We cannot use two base station IDs anymore, to
detect the polarity. Now we deal only with the defined base station ID.
This commit is contained in:
Andreas Eversberg
2019-11-24 18:26:38 +01:00
parent 008bca784b
commit 360729d270
11 changed files with 1148 additions and 144 deletions

View File

@@ -2,61 +2,52 @@
#include <string.h>
#include "sysinfo.h"
cnetz_si si[2];
cnetz_si si;
void init_sysinfo(uint8_t fuz_nat, uint8_t fuz_fuvst, uint8_t fuz_rest, uint8_t kennung_fufst, uint8_t authentifikationsbit, uint8_t ws_kennung, uint8_t vermittlungstechnische_sperren, uint8_t grenz_einbuchen, uint8_t grenz_umschalten, uint8_t grenz_ausloesen, uint8_t mittel_umschalten, uint8_t mittel_ausloesen, uint8_t genauigkeit, uint8_t bewertung, uint8_t entfernung, uint8_t reduzierung, uint8_t nachbar_prio, int8_t teilnehmergruppensperre, uint8_t anzahl_gesperrter_teilnehmergruppen)
{
memset(&si[0], 0, sizeof(cnetz_si));
/* polarity of TX signal */
si[0].flip_polarity = 0;
memset(&si, 0, sizeof(si));
/* ID of base station */
si[0].fuz_nat = fuz_nat;
si[0].fuz_fuvst = fuz_fuvst;
si[0].fuz_rest = fuz_rest;
si.fuz_nat = fuz_nat;
si.fuz_fuvst = fuz_fuvst;
si.fuz_rest = fuz_rest;
/* a low value causes quicker measurement results */
si[0].mittel_umschalten = mittel_umschalten; /* 0..5 */
si.mittel_umschalten = mittel_umschalten; /* 0..5 */
/* a high value is tollerant to bad quality */
si[0].grenz_umschalten = grenz_umschalten; /* 0..15 */
si.grenz_umschalten = grenz_umschalten; /* 0..15 */
/* a low value causes quicker measurement results */
si[0].mittel_ausloesen = mittel_ausloesen; /* 0..5 */
si.mittel_ausloesen = mittel_ausloesen; /* 0..5 */
/* a high value is tollerant to bad quality */
si[0].grenz_ausloesen = grenz_ausloesen; /* 0..15 */
si.grenz_ausloesen = grenz_ausloesen; /* 0..15 */
si[0].vermittlungstechnische_sperren = vermittlungstechnische_sperren;
si.vermittlungstechnische_sperren = vermittlungstechnische_sperren;
si[0].genauigkeit = genauigkeit; /* 1 = bedingte Genauigkeit */
si.genauigkeit = genauigkeit; /* 1 = bedingte Genauigkeit */
si[0].entfernung = entfernung;
si.entfernung = entfernung;
/* a low value is tollerant to bad quality */
si[0].grenz_einbuchen = grenz_einbuchen; /* 1..7 */
si.grenz_einbuchen = grenz_einbuchen; /* 1..7 */
si[0].kennung_fufst = kennung_fufst;
si.kennung_fufst = kennung_fufst;
si[0].authentifikationsbit = authentifikationsbit;
si.authentifikationsbit = authentifikationsbit;
si[0].ws_kennung = ws_kennung;
si.ws_kennung = ws_kennung;
si[0].nachbar_prio = nachbar_prio;
si.nachbar_prio = nachbar_prio;
si[0].bewertung = bewertung; /* 0 = relative entfernung, 1 = pegel */
si.bewertung = bewertung; /* 0 = relative entfernung, 1 = pegel */
si[0].reduzierung = reduzierung;
si.reduzierung = reduzierung;
/* deny group of subscribers. (used to balance subscribers between base stations) */
si[0].teilnehmergruppensperre = teilnehmergruppensperre;
si[0].anzahl_gesperrter_teilnehmergruppen = anzahl_gesperrter_teilnehmergruppen;
/* second cell uses flipped polarity. different station ID is used to
* detect what cell (and what polarity) the mobile responses to. */
memcpy(&si[1], &si[0], sizeof(cnetz_si));
si[1].flip_polarity = 1;
si[1].fuz_rest = si[0].fuz_rest + 1;
si.teilnehmergruppensperre = teilnehmergruppensperre;
si.anzahl_gesperrter_teilnehmergruppen = anzahl_gesperrter_teilnehmergruppen;
}