I don't own a Garmin, but have been doing a lot of research and though I would share.
Keyword explanation:
CC = country code (available in TrafficProviders.xml)
SID = service ID (available in TrafficProviders.xml)
SVK = service key (number from 0-8 inclusive, 0 means no encryption, 1-8 refer to predefined encryption tables - you can experiment to see what works)
LTN = location number number (available in TrafficProviders.xml)
TransmittedLTN = transmitted location table number (usually the same as LTN)
Calculating values:
FID = SID | (CC << 8) | (SVK << 12) [bitwise operations]
PID = LTN
RgnID = TransmittedLTN
VenID = 1 (add) or 0 (remove)
Example: (TMCPro/HERE Germany)
Note everything here is expressed in decimal.
<country name="Germany" cc="13" ecc="224" fmTuningGrid="World" dab="DE">
......
<provider>
<providerName>HERE Traffic (DE)</providerName>
<providerCopyright>HERE Traffic. Copyright HERE</providerCopyright>
<pay>true</pay>
<tuning ltn="1" sid="50"/>
</provider>
CC = 13
SID = 50
SVK = 1 (can be guessed)
LTN = 1
TransmittedLTN = 1 (usually the same as LTN)
Therefore...
FID = SID | (CC << 8) | (SVK << 12) = [Only registered and activated users can see links. ] = 7474
PID = LTN = 1
RgnID = TransmittedLTN = 1
VenID = 1
....which matches what is on the 1st page.
What about for a free service with no encryption?
Same process but use a SVK value of 0.
Why would LTN (PID) and transmitted LTN (RgnID) be different for a small number of providers? (ie. for France Via-Michelin & V-Traffic)
A small number of providers do not encrypt their RDS-TMC location data, but instead choose to broadcast a "fake" LTN value (PID) that is not officially recognized by mapping data so a pre-defined mapping must indicate what the real LTN value is (RgnID) - this is also referred to as "conditional access".
When both the PID and RgnID are the same and encryption is enabled (SVK is not zero), its referred to as "light encryption".
Bookmarks