C-Netz: Show debugging for IDLE (LR and LMR) frames
Suppress repeated IDLE frame
This commit is contained in:
parent
ec286f3d94
commit
7cd3f85294
|
@ -542,6 +542,8 @@ void cnetz_go_idle(cnetz_t *cnetz)
|
||||||
|
|
||||||
PDEBUG(DCNETZ, DEBUG_INFO, "Entering IDLE state on channel %s.\n", cnetz->sender.kanal);
|
PDEBUG(DCNETZ, DEBUG_INFO, "Entering IDLE state on channel %s.\n", cnetz->sender.kanal);
|
||||||
cnetz_new_state(cnetz, CNETZ_IDLE);
|
cnetz_new_state(cnetz, CNETZ_IDLE);
|
||||||
|
cnetz->sched_lr_debugged = 0;
|
||||||
|
cnetz->sched_mlr_debugged = 0;
|
||||||
|
|
||||||
/* set scheduler to OgK or turn off SpK */
|
/* set scheduler to OgK or turn off SpK */
|
||||||
if (cnetz->dsp_mode == DSP_MODE_SPK_K || cnetz->dsp_mode == DSP_MODE_SPK_V) {
|
if (cnetz->dsp_mode == DSP_MODE_SPK_K || cnetz->dsp_mode == DSP_MODE_SPK_V) {
|
||||||
|
|
|
@ -97,6 +97,8 @@ struct cnetz {
|
||||||
int sched_r_m; /* Rufblock (0) / Meldeblock (1) */
|
int sched_r_m; /* Rufblock (0) / Meldeblock (1) */
|
||||||
enum dsp_mode sched_dsp_mode; /* what mode shall be switched to */
|
enum dsp_mode sched_dsp_mode; /* what mode shall be switched to */
|
||||||
int sched_dsp_mode_ts; /* time slot when to switch mode (-1 = don't switch) */
|
int sched_dsp_mode_ts; /* time slot when to switch mode (-1 = don't switch) */
|
||||||
|
int sched_lr_debugged; /* indicator to prevent debugging all idle frames */
|
||||||
|
int sched_mlr_debugged; /* indicator to prevent debugging all idle frames */
|
||||||
|
|
||||||
/* dsp states */
|
/* dsp states */
|
||||||
enum dsp_mode dsp_mode; /* current mode: audio, "Telegramm", .... */
|
enum dsp_mode dsp_mode; /* current mode: audio, "Telegramm", .... */
|
||||||
|
|
|
@ -632,7 +632,8 @@ static char *assemble_telegramm(const telegramm_t *telegramm, int debug)
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
PDEBUG(DFRAME, DEBUG_DEBUG, "Coding %s %s\n", definition_opcode[telegramm->opcode].message_name, definition_opcode[telegramm->opcode].message_text);
|
if (debug)
|
||||||
|
PDEBUG(DFRAME, DEBUG_INFO, "Coding %s %s\n", definition_opcode[telegramm->opcode].message_name, definition_opcode[telegramm->opcode].message_text);
|
||||||
|
|
||||||
/* copy opcode */
|
/* copy opcode */
|
||||||
for (i = 0; i < 6; i++)
|
for (i = 0; i < 6; i++)
|
||||||
|
@ -847,7 +848,7 @@ static void disassemble_telegramm(telegramm_t *telegramm, const char *bits, int
|
||||||
value = (value << 1) | (bits[i] == '1');
|
value = (value << 1) | (bits[i] == '1');
|
||||||
telegramm->opcode = value;
|
telegramm->opcode = value;
|
||||||
|
|
||||||
PDEBUG(DFRAME, DEBUG_DEBUG, "Decoding %s %s\n", definition_opcode[telegramm->opcode].message_name, definition_opcode[telegramm->opcode].message_text);
|
PDEBUG(DFRAME, DEBUG_INFO, "Decoding %s %s\n", definition_opcode[telegramm->opcode].message_name, definition_opcode[telegramm->opcode].message_text);
|
||||||
|
|
||||||
/* copy parameters */
|
/* copy parameters */
|
||||||
if (auth && bits[1]) /* auth flag and chip card flag */
|
if (auth && bits[1]) /* auth flag and chip card flag */
|
||||||
|
@ -1578,6 +1579,7 @@ const char *cnetz_encode_telegramm(cnetz_t *cnetz)
|
||||||
const telegramm_t *telegramm = NULL;
|
const telegramm_t *telegramm = NULL;
|
||||||
uint8_t opcode;
|
uint8_t opcode;
|
||||||
char *bits;
|
char *bits;
|
||||||
|
int debug = 1;
|
||||||
|
|
||||||
switch (cnetz->dsp_mode) {
|
switch (cnetz->dsp_mode) {
|
||||||
case DSP_MODE_OGK:
|
case DSP_MODE_OGK:
|
||||||
|
@ -1600,7 +1602,11 @@ const char *cnetz_encode_telegramm(cnetz_t *cnetz)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
opcode = telegramm->opcode;
|
opcode = telegramm->opcode;
|
||||||
bits = assemble_telegramm(telegramm, (opcode != OPCODE_LR_R) && (opcode != OPCODE_MLR_M));
|
if (opcode == OPCODE_LR_R && cnetz->sched_lr_debugged)
|
||||||
|
debug = 0;
|
||||||
|
if (opcode == OPCODE_MLR_M && cnetz->sched_mlr_debugged)
|
||||||
|
debug = 0;
|
||||||
|
bits = assemble_telegramm(telegramm, debug);
|
||||||
bits = encode(bits);
|
bits = encode(bits);
|
||||||
bits = interleave(bits);
|
bits = interleave(bits);
|
||||||
|
|
||||||
|
@ -1612,6 +1618,13 @@ const char *cnetz_encode_telegramm(cnetz_t *cnetz)
|
||||||
bits[i] ^= 1;
|
bits[i] ^= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (opcode == OPCODE_LR_R && !cnetz->sched_lr_debugged)
|
||||||
|
cnetz->sched_lr_debugged = 1;
|
||||||
|
if (opcode == OPCODE_MLR_M && !cnetz->sched_mlr_debugged) {
|
||||||
|
cnetz->sched_mlr_debugged = 1;
|
||||||
|
PDEBUG(DFRAME, DEBUG_INFO, "Subsequent IDLE frames are not show, to prevent flooding the output.\n");
|
||||||
|
}
|
||||||
|
|
||||||
return bits;
|
return bits;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue