Closed rene-pasemann closed 3 years ago
Could you please attach a sample to test against? The FMSFSK decoder was contributed and I didn't have the opportunity to test it so far. I probably won't find the time to fix the problem, but having an example to reproduce the issue could help those who are interested in working on it.
Hi, here is a decoded sample: FMS: 7172822a0000 (6=Feuerwehr c=Saarland Ort 0xe5=229 FZG 10228 Status 2=Bereit Wache 0=FZG->LST 2=III(mit NA,ohneSIGNAL) ) CRC INCORRECT FMS: 9e404a930000 (0=UNKNOWN 4=Berlin Ort 0xfe=254 FZG 39104 Status 0=Notfall 0=FZG->LST 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT FMS: 0b53e3570000 (6=Feuerwehr 4=Berlin Ort 0xa3=163 FZG 75314 Status 3=Einsatz Ab 0=FZG->LST 2=III(mit NA,ohneSIGNAL) ) CRC correct FMS: c7059cd00000 (8=ASB d=Bayern 2 Ort 0x72=114 FZG 013129 Status 5=Fahre Wache 1=LST->FZG 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT FMS: 4082e8c10000 (6=Feuerwehr d=Bayern 2 Ort 0x68=104 FZG 112814 Status 2=Bereit Wache 0=FZG->LST 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT FMS: 4ee88c840000 (0=UNKNOWN a=Rheinland-Pfalz Ort 0x5c=092 FZG 48128 Status 8=Am TranspZiel 0=FZG->LST 1=II (ohneNA,mit SIGNAL) ) CRC INCORRECT FMS: 4ee88c840000 (0=UNKNOWN a=Rheinland-Pfalz Ort 0x5e=094 FZG 48128 Status 8=Am TranspZiel 0=FZG->LST 1=II (ohneNA,mit SIGNAL) ) CRC correct AFTER SWAPPING ONE BIT FMS: 13b353190000 (3=BKA 2=Baden-Wurtemberg Ort 0x5c=092 FZG 9135 Status 3=Einsatz Ab 0=FZG->LST 2=III(mit NA,ohneSIGNAL) ) CRC INCORRECT FMS: a322026f0000 (4=KatS 8=Niedersachsen Ort 0x9c=156 FZG 15620 Status 2=Bereit Wache 0=FZG->LST 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT FMS: 9a8d20f10000 (d=Rettungsdienst 0=Sachsen Ort 0x21=033 FZG 11502 Status d=KurzTXT D 1=LST->FZG 1=II (ohneNA,mit SIGNAL) ) CRC INCORRECT FMS: a46d7c270000 (8=ASB 0=Sachsen Ort 0x93=147 FZG 72127 Status d=KurzTXT D 1=LST->FZG 1=II (ohneNA,mit SIGNAL) ) CRC INCORRECT FMS: 841454960000 (8=ASB 9=Nordrhein-Wesfal Ort 0x79=121 FZG 6945 Status 4=Kommen Draht 1=LST->FZG 2=III(mit NA,ohneSIGNAL) ) CRC INCORRECT FMS: 841454960000 (8=ASB 8=Niedersachsen Ort 0x79=121 FZG 6945 Status 4=Kommen Draht 1=LST->FZG 2=III(mit NA,ohneSIGNAL) ) CRC correct AFTER SWAPPING ONE BIT FMS: 7540d0040000 (c=DLRG 1=Bund Ort 0x2e=046 FZG 40013 Status 0=Notfall 0=FZG->LST 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT FMS: fb1a87900000 (a=Johanniter 8=Niedersachsen Ort 0x97=151 FZG 0978 Status a=Vorbertg Folge 0=FZG->LST 3=IV (mit NA,mit SIGNAL) ) CRC INCORRECT FMS: c34029500000 (d=Rettungsdienst 8=Niedersachsen Ort 0x1b=027 FZG 0592 Status 0=Notfall 0=FZG->LST 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT FMS: dc2388d00000 (c=DLRG e=Sachsen-Anhalt Ort 0x45=069 FZG 01388 Status 3=Einsatz Ab 0=FZG->LST 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT FMS: e218b0f10000 (0=UNKNOWN 0=Sachsen Ort 0x9e=158 FZG 115011 Status 8=Am TranspZiel 0=FZG->LST 3=IV (mit NA,mit SIGNAL) ) CRC INCORRECT FMS: 2390c5330000 (8=ASB d=Bayern 2 Ort 0x6c=108 FZG 33512 Status 0=Notfall 0=FZG->LST 2=III(mit NA,ohneSIGNAL) ) CRC INCORRECT FMS: 2390c5330000 (a=Johanniter d=Bayern 2 Ort 0x6c=108 FZG 33512 Status 0=Notfall 0=FZG->LST 2=III(mit NA,ohneSIGNAL) ) CRC correct AFTER SWAPPING ONE BIT FMS: e04a4c4e0000 (4=KatS a=Rheinland-Pfalz Ort 0xd8=216 FZG 144124 Status a=Vorbertg Folge 0=FZG->LST 1=II (ohneNA,mit SIGNAL) ) CRC INCORRECT FMS: d98588100000 (e=ZivilSchutz 3=Bayern 1 Ort 0x85=133 FZG 0188 Status 5=Fahre Wache 1=LST->FZG 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT FMS: b4d40e310000 (9=Rotkreuz e=Sachsen-Anhalt Ort 0x45=069 FZG 13140 Status 4=Kommen Draht 1=LST->FZG 2=III(mit NA,ohneSIGNAL) ) CRC INCORRECT FMS: d4bc2f180000 (0=UNKNOWN 4=Berlin Ort 0x5f=095 FZG 81152 Status c=KurzTXT C 1=LST->FZG 3=IV (mit NA,mit SIGNAL) ) CRC INCORRECT FMS: a050db970000 (c=DLRG a=Rheinland-Pfalz Ort 0x 8=008 FZG 791113 Status 0=Notfall 0=FZG->LST 2=III(mit NA,ohneSIGNAL) ) CRC INCORRECT FMS: 907353110000 (2=BGS 7=Hessen Ort 0x49=073 FZG 1135 Status 3=Einsatz Ab 0=FZG->LST 2=III(mit NA,ohneSIGNAL) ) CRC INCORRECT FMS: 0b013aba0000 (0=UNKNOWN 8=Niedersachsen Ort 0x 5=005 FZG 1011103 Status 1=Einbuchen 0=FZG->LST 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT FMS: c720500e0000 (c=DLRG b=Schleswig-Holste Ort 0xeb=235 FZG 14005 Status 0=Notfall 0=FZG->LST 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT FMS: 8d1e18190000 (8=ASB e=Sachsen-Anhalt Ort 0x5e=094 FZG 9181 Status e=KurzTXT E 1=LST->FZG 3=IV (mit NA,mit SIGNAL) ) CRC INCORRECT FMS: 02a1e4750000 (8=ASB 2=Baden-Wurtemberg Ort 0x9a=154 FZG 57414 Status 1=Einbuchen 0=FZG->LST 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT FMS: 44a06c590000 (9=Rotkreuz d=Bayern 2 Ort 0x90=144 FZG 95126 Status 0=Notfall 0=FZG->LST 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT
If you need a WAV recording of the stream - let me know.
The field for FZG has 4 digits in hexadezimal that range from 0-f or 0-15 (not sure if digits > 9 are used though), thus numbers with more than 4 digits can happen. Also, it is not necessary, that a correct checksum guarantees a correct FMS. I would only trust that correct checksum if also the other data looks plausible, like the status is from your station/region and so on. When decoding random noise for a while the results look like what you provide here with sometimes a few false positives in it.
@rene-pasemann The module in monitord is pretty much doing the same as in multimon, it uses the same algorithm and code, i just compared that a few days ago.
If it's still interesting this might be caused by the use of hexadecimal vehicle-id. I proposed a PR to fix it: #62
Is this still an issue?
This appears to be in use in my area. I enabled all the possible decoders and it's pulling a LOT of fms...
Short example included, note, I'm in the USA if it matters.
2020-03-26 15:35:47: FMS: cbec265ee796 (6=Feuerwehr 9=Nordrhein-Wesfal Ort 0x7e=126 FZG e562 Status c=KurzTXT C 1=LST->FZG 1=II (ohneNA,mit SIGNAL) ) CRC INCORRECT (2f)
2020-03-26 15:36:38: FMS: ac20fab6fdcc (c=DLRG c=Saarland Ort 0xdf=223 FZG 6baf Status 0=Notfall 0=FZG->LST 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT (30)
2020-03-26 15:39:34: FMS: 5207ad7505a9 (9=Rotkreuz a=Rheinland-Pfalz Ort 0x50=080 FZG 57da Status 7=Lagemeldung 1=LST->FZG 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT (8)
2020-03-26 15:39:36: FMS: 879dbcaa794b (b=Malteser 4=Berlin Ort 0x97=151 FZG aacb Status d=KurzTXT D 1=LST->FZG 3=IV (mit NA,mit SIGNAL) ) CRC INCORRECT (1e)
2020-03-26 15:44:36: FMS: 6105e3436651 (1=POLIZEI 5=Bremen Ort 0x66=102 FZG 343e Status 5=Fahre Wache 1=LST->FZG 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT (4)
2020-03-26 15:51:12: FMS: eebca967a54f (f=FernWirk 4=Berlin Ort 0x5a=090 FZG 769a Status c=KurzTXT C 1=LST->FZG 3=IV (mit NA,mit SIGNAL) ) CRC INCORRECT (3a)
2020-03-26 15:51:12: FMS: eebca967a547 (7=THW 4=Berlin Ort 0x5a=090 FZG 769a Status c=KurzTXT C 1=LST->FZG 3=IV (mit NA,mit SIGNAL) ) CRC correct AFTER SWAPPING ONE BIT
2020-03-26 15:57:52: FMS: a1bb2964bbc9 (9=Rotkreuz c=Saarland Ort 0xbb=187 FZG 4692 Status b=Beendig Folge 0=FZG->LST 3=IV (mit NA,mit SIGNAL) ) CRC INCORRECT (6)
2020-03-26 16:01:15: FMS: ece7ac3e2909 (9=Rotkreuz 0=Sachsen Ort 0x92=146 FZG e3ca Status 7=Lagemeldung 1=LST->FZG 0=I (ohneNA,ohneSIGNAL) ) CRC INCORRECT (33)
2020-03-26 16:10:36: FMS: 251cf48e05d3 (3=BKA d=Bayern 2 Ort 0x50=080 FZG e84f Status c=KurzTXT C 1=LST->FZG 3=IV (mit NA,mit SIGNAL) ) CRC INCORRECT (14)
2020-03-26 16:15:28: FMS: 8ace5a866e58 (8=ASB 5=Bremen Ort 0xe6=230 FZG 68a5 Status e=KurzTXT E 1=LST->FZG 1=II (ohneNA,mit SIGNAL) ) CRC INCORRECT (2b)
multimon-ng is a rolling correlation decoder. It works by pattern matching, it knows what segments of valid packets should look like and tries to find them in the audio signal. This also means that it tries to find packets in static noise. In all provided examples, the crc is wrong. Whatever you are decoding, it is probably not FMS, but the decoder desperately tries to find valid packets. I have attached a wavefile (zipped because git does not allow wave upload) that contains four messages with valid CRC, the payload is1234567890; 0123456789; 9012345678; 8901234567.
Hello! There is an failure at decoding - how is it possible to get an CRC correct when the value of FZG is an String of 5 digits? It have to be 4. So the message can´t be correct, even in CRC?
Maybe its possible to use the decodemodule from monitord 2.0 as an alternative module (FMSBOS)?