From dc214e41a11e9ec905a9ac1920291e2313f645fb Mon Sep 17 00:00:00 2001 From: Zilog80 Date: Sun, 2 Oct 2016 14:01:00 +0200 Subject: [PATCH] DFM: clean-up --- dfm/dfm06.c | 56 +++++++++++++++++++++++++++++----------------------- dfm/dfm06s | Bin 13972 -> 0 bytes 2 files changed, 31 insertions(+), 25 deletions(-) delete mode 100755 dfm/dfm06s diff --git a/dfm/dfm06.c b/dfm/dfm06.c index 7f59357..ea06284 100644 --- a/dfm/dfm06.c +++ b/dfm/dfm06.c @@ -30,7 +30,8 @@ typedef unsigned int ui32_t; typedef struct { int frnr; int sonde_typ; - ui32_t sonde_id; + ui32_t SN6; + ui32_t SN9; int week; int gpssec; int jahr; int monat; int tag; int std; int min; float sek; @@ -489,36 +490,42 @@ int dat_out(ui8_t *dat_bits) { return ret; } +#define SNbit 0x0100 int conf_out(ui8_t *conf_bits) { int conf_id; int ret = 0; int val, hl; - static int typ6, typ9, chAbit, chA[2]; + static int chAbit, chA[2]; + ui32_t SN6, SN9; conf_id = bits2val(conf_bits, 4); - if (gpx.sonde_typ < 9 && conf_id == 6) { - if (typ6 < 4) typ6 += 1; - else if (typ6 == 4) { - gpx.sonde_typ = 6; - typ6 += 1; + + if ((gpx.sonde_typ & 0xFF) < 9 && conf_id == 6) { + SN6 = bits2val(conf_bits+4, 4*6); // DFM-06: Kanal 6 + if ( SN6 == gpx.SN6 ) { + gpx.sonde_typ = SNbit | 6; + ret = 6; } - gpx.sonde_id = bits2val(conf_bits+4, 4*6); // DFM-06: Kanal 6 + else { + gpx.sonde_typ = 0; + } + gpx.SN6 = SN6; } - if (conf_id == 0xA) { - if (typ9 < 4) { - typ9 += 1; - typ6 = 0; - } - else if (typ9 == 4) { - gpx.sonde_typ = 9; - typ9 += 1; - } + if (conf_id == 0xA) { // 0xACxxxxy val = bits2val(conf_bits+8, 4*5); hl = (val & 1) == 0; chA[hl] = (val >> 4) & 0xFFFF; chAbit |= 1 << hl; if (chAbit == 3) { // DFM-09: Kanal A - gpx.sonde_id = (chA[1] << 16) | chA[0]; + SN9 = (chA[1] << 16) | chA[0]; + if ( SN9 == gpx.SN9 ) { + gpx.sonde_typ = SNbit | 9; + ret = 9; + } + else { + gpx.sonde_typ = 0; + } + gpx.SN9 = SN9; chAbit = 0; } } @@ -553,15 +560,15 @@ void print_gpx() { printf(" dir: %5.1f ", gpx.dir); printf(" hV: %5.2f ", gpx.horiV); printf(" vV: %5.2f ", gpx.vertV); - if (option_verbose == 2 && gpx.sonde_id > 0) + if (option_verbose == 2 && (gpx.sonde_typ & SNbit)) { - if (gpx.sonde_typ == 6) { - printf(" (ID%1d:%06X) ", gpx.sonde_typ % 10, gpx.sonde_id); + if ((gpx.sonde_typ & 0xFF) == 6) { + printf(" (ID%1d:%06X) ", gpx.sonde_typ & 0xF, gpx.SN6); } - if (gpx.sonde_typ == 9) { - printf(" (ID%1d:%06d) ", gpx.sonde_typ % 10, gpx.sonde_id); + if ((gpx.sonde_typ & 0xFF) == 9) { + printf(" (ID%1d:%06d) ", gpx.sonde_typ & 0xF, gpx.SN9); } - gpx.sonde_id = 0; + gpx.sonde_typ ^= SNbit; } } } @@ -722,7 +729,6 @@ int main(int argc, char **argv) { } - gpx.sonde_id = -1; for (i = 0; i < 9; i++) { for (j = 0; j < 13; j++) dat_str[i][j] = ' '; } diff --git a/dfm/dfm06s b/dfm/dfm06s deleted file mode 100755 index b14820cc8e3854dcc11e5170a9469394e64e07d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13972 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