ITxPT / S02

Official example files, XSDs, JSON schemas, etc.
5 stars 3 forks source link

Coordinate values in GNSSLocation while no GNSS fix #2

Open mzollin opened 8 months ago

mzollin commented 8 months ago

Hi, I'd like to ask a question concerning the S02P03 GNSSLocation service, which I haven't been able to answer with the service specification or the XML schema in this repo.

According to the service specification and schema, the coordinate fields ("Latitude" and "Longitude") are mandatory to include in the data structure. What is their value supposed to be in case there is no GPS fix ("Fix" = "NoFix") and we have no valid coordinates?

Or are we supposed to send no GNSSLocation packets at all while we have no GNSS fix, making the "NoFix" value for the "Fix" field redundant?

Thank you in advance for your response to clear this up.

mzollin commented 8 months ago

PS: The google form linked in the readme to report issues with the specification seems to have been deleted.

JLitxpt commented 8 months ago

Hi @mzollin, we are looking into it to provide with a good answer and clarification.

mzollin commented 7 months ago

Hi @JLitxpt, any updates on this? Thank you.

JLitxpt commented 6 months ago

Hi @mzollin , sorry for late replay! The links have been updated.

You have valid questions and can be consider in future improvements. Fix is not mandatory so that is a clarification that can be used. Latitude and Longitude is mandatory so shall always be in the payload, if NoFix you leave Degree and Direction empty (OBS! do not use 0 because that is a position if you not at that position). The recommended update rate of the GNSS Location Service is 1/s or 2/s even if "NoFix".

mzollin commented 6 months ago

Thank you for the update and the information. This seems like a reasonable solution. The only issue I see is that the GNSSLocation XML schema in this repository does not allow empty fields for Degree and Direction, and validation would fail for such a payload. I would suggest to adapt the schema to allow this? We will submit a pull request in the near future with such a proposition.

Anders-Fromell-ITxPT commented 1 month ago

In general, empty strings are not prefered. Potentially more correct would be to have a conditional testing, and if Fix="NoFix" then Degree and Direction shall be set to Null. However this is not allways true, "NoFix" only means that the GNSS rec. can not calculate a position based on satelite covarage. If the rec. can use "dead recogning" or other sources it may still be able to deliver degree and direction information. This means that also the SignalQuality parameter needs to be respected before enforcing "Null" values. For this to at all work, Fix and SignalQuality needs to be mandatory, SignalQuality=estimated needs to be defined, Fix=DR and =3D+DR are most likely not standardised Fix responses. lets see what we can cover in next "miner" version. :-)