ChristopheJacquet / RdsSurveyor

Multi-platform Radio Data System decoder
http://rds-surveyor.jacquet.xyz/
36 stars 10 forks source link

INTER-ROAD messages are parsed incorrectly #8

Closed mvglasow closed 7 years ago

mvglasow commented 7 years ago

TMC messages with a location code greater than 0xFC00 are INTER-ROAD messages, with locations referring to a different location table than the default one for the service.

In this case, the middle 4 bits (mask 0x03F0) of the location code are the country code, the lowest 6 bits (mask 0x003F) are the location table. The second group begins with the actual location code (16 bits), the free format bits begin in Z11.

RDS Surveyor currently does not consider that. As a result, the free format bits are parsed incorrectly, resulting in bogus data for things such as duration or additional event codes—anything that is not transmitted in the first group. Granted, such messages are rare (because they need to be sent as multi-group messages and are typically outside the main coverage area of the service), but I stumbled across one.

I’ve fixed this in a commit I just pushed on top of #2 (TMC location parsing).

mvglasow commented 7 years ago

As #2 is merged, this is fixed.