Le 07/03/2013 11:06, Paolo Casagranda a écrit :
> Hi David,
> I try to give you more details.
>> Have you heard back from manufacturers?
> I've asked information to the RDS Forum. I'll give some feedback as soon as they tell me something. A
Were you starting a new sentence here?
>> From what I understand, the differences are mostly minor semantics
>> differences for some fields in the RDS standard.
>> Devs may suffer from that, but we can imagine that a good open source
>> library combining geolocalisation with the RDS/RDBS infos could help
>> infer the exact semantics of the fields when necessary.
> Yes I can confirm this, it's mostly minor semantics. It's publicly available information
http://www.nrscstandards.org/RBDS/rbdsrds.pdf So, independently from the RDS flavor, PI will be a 16bits integer, ECC 8bits, PS an 8 char string...
> In most cases the two parameters PI code + ECC code unambiguously identify the region of the transmission. At application level it could be useful if geolocalization or a user choice (select country...) sets a default country value.
Indeed. We need to make this information available to the app. I know
the user currently chooses a default language, but I don't think it can
choose a country and I don't think there is a way for an app to have
access to this information directly.
I don't really know how we can make this work without using
geolocalisation which the user can choose not to opt-in to.
In the case the user doesn't accept geolocalization, the app can't know
if the fields are to be interpreted against the RDS or RDBS semantics.
>> I see a (minor?) privacy issue here since user localization can be
>> infered from its PI/ECC and/or cross-referenced with a radio FM
>> frequency database.
>> It might make necessary to expose this information only to privileged
>> apps (downloaded from some marketplace after security/privacy review)
> I don't know the level of privacy requested in Firefox OS but it shouldn't. Consider that localization infered from PI/ECC can be less precise that the info you can get from the user's IP address. They generally identify the country.
Even the country can be a serious leak if your country is very small
(Andorra, Vatican, etc.) for instance.
PI/ECC may reveal only the country, but consider the following case:
My favorite radio is Le Mouv' (which PI is F208 [1], public info). The
frequency in Bordeaux is 87.7 [2] (public info too).
If an app has access to both the PI (which we're debatting) and the
frequency (which is available to every app already), then the app can
infer that I'm in Bordeaux, right? The inference can be further improved
using ECC and other "weaker" fields like PS, etc.
If that's the case, it's a form of geolocalization (which is actually
very interesting) and that's a bit privacy-invasive.
Now that I think about it, using the seekup method, an app can
*currently* know all frequencies which emits something. Based on the set
of frequencies emitting something, is it possible to infer the region?
If so, the FMRadio API should probably be considered to be a bit higher
priviledged than it currently is ("priviliged" would be enough).
>> Why isn't the standard free? I see it's not free as in beer, but is it
>> also not free as in speech? In the latter case, there might be legal
>> complications to implement it. Do radios which implement it need to pay
>> something or declare something somewhere to be allowed to use these
>> data? That'd be weird as radio is so widespread, but in case.
>> I'll wait for your answer on this topic.
>> (Btw, I've found a copy [1] of the RDS standard)
> Yes, I understand. The RDS standard is an IEC standard, and like ISO standards you can buy it. It different from IETF and ETSI standards, available for free. As you know, even the C++ standard is open but not free (and you have to pay to get the original document :-|). On the other hand, this doesn't mean that you have to pay anything to implement it. You can implement it and you are allowed to used the data (of course, patents are a different story). And you also found a "free" copy :-)
> Note that the RDBS standard doc and the RDBS-RDS differences doc (see previous references) ARE free, and can be used as official free documentation.
Ok, sounds good.
>> From what I understand (tell me if I'm mistaken), all the properties
>> being currently discussed are radio signal-related informations unlike
>> all current properties of the FMRadio object [2] which are more hardware
>> related. It might be worth cleanly separating both types of information.
>> [...]
>> This design relies on the idea that all infos change at once.
> Good point! The info are carried in the data, so they will become available when the data has been correctly decoded. Be careful that PI, ECC (and PS eventually) are transmitted with other data (in "carousel" mode), and could be subject to interference and other problems. So there's no guarantee they are available instantly. Could they be associated to an asynchronous event (like onpiready)?
I'm wondering if we need an event for each value or if one event for a
"bundle" (which I called "RadioStationInfos") can be enough. Although
there might be interference issues, I assume a station resends regularly
(do you know how often in practice?) the RDS infos.
If there was some interference and the RDS infos couldn't be read, is it
ok to miss the info and wait for the next time?
Are there case where an app would want to be informed that the RDS infos
couldn't be read?
The idea of the radiostationchange event was to bundle the
onpiready/oneccready/onpschange/etc all at once. Basically, users play
with the frequency (or not) and whenever the radio station infos change,
you get a new event. It's less about PI/ECC being ready and more to tell
that the value has changed.
>> Is it possible that one value changes but not the others for a given
>> station?
> A station PI and ECC codes are fixed, don't change. The PS (station name) is different, it can change. In USA it can change; Europe (RDS) it SHOULD NOT change (but almost stations let it change to display both the radio logo, phone numbers, etc.)
I see, so we can consider it does change :-)
It's really interesting how standards ask to do things and people just
don't respect standards (like for the TP flag). Reminds me of the web.
The outcome on the web was that the standard body (mostly W3C) backed up
after the people who implement the standards (Opera and Mozilla
initially, later joined by Apple then Google) decides to do their own
thing with the WHATWG.
XHTML2 died, the W3C started to follow up on HTML5 (started by the WHATWG).
De-facto standards... Has the commitee that standardizes RDS considered
changing the standard to follow de-facto practices (namely that radios
do change the PS)?
Thanks for your answers,
David
[1]
http://www.csa.fr/csaradio/radiords_tableau
[2]
http://www.lemouv.fr/frequences