General conventions
Numbering convention
Within the agrirouter interface, there are several IDs or counters that are of type int64. Due to difference between the protobuf implementation of C++ vs. e.g. Java, the ID "0" cannot be used.
All numberings begin with 1! |
String Identifiers convention
For globally unique instance ID we suggest using Uniform Resource Name (URN) according to RFC5141. Basically, this enabled an identification to be of any kind that is defined by the official IANA registered URN namespaces (https://www.iana.org/assignments/urn-namespaces/urn-namespaces.xhtml).
- For example this could be a UUID if the CU is an App on a consumer device with a generated identity
-
urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
- Also this could identify an OEMs device with a Product Identification Information
-
urn:iso:std:iso:11783:-12:2013:ed-2:tech:pii:1234567890ABCBrand Name:Product Name.
TimeStamp conventions
If there is nothing different mentioned in the relevant chapter, all timestamps in messaging, onboarding etc. shall be in UTC. The common format for timestamps is ISO; e.g.
"2018-06-14T14:53:28.123Z".
Base64
Base64 as defined in RFC4648 does not include line breaks. Make sure that your software creates Base64-Strings without line breaks.
Time Synchronisation
As agrirouter exchanges data between different applications in different environments, it is very important to have a common current time. Therefore, you should match the result timestamp of an agrirouter command with your local time and compensate too big differences (>1 minute), when setting the timestamp of your agrirouter commands.
The best practice here is to request the endpoint list on a regular basis and take the timestamp of the result.
If your application has access to the GPS time, this should be enough to keep the same time as the agrirouter.
|