I am trying to understand how the integration of LoRa Cloud Geolocation works with regard to the payload decoder and what information / variables it needs to work with LR1110 GNSS.
As stated in the documentation of LoRa Cloud, the needed information is as follows:
{
"payload": HEX, // Required. HEX string with valid single capture payload
"gnss_capture_time": FLOAT, // Optional. capture time estimate, GPST
"gnss_capture_time_accuracy": FLOAT, // Optional. capture time accuracy, seconds, default: 300
"gnss_assist_position": [FLOAT, FLOAT], // Optional. assistance position WGS84, (latitude, longitude) [deg]
"gnss_assist_altitude": FLOAT, // Optional. assistance position WGS84, (latitude, longitude) [deg]
"gnss_use_2D_solver": BOOL // Optional. force 2D solve, "gnss_assist_altitude" mandatory
}
However, the example payload decoder for LR1110 GNSS by Chirpstack documentation only indicates the use of:
// bytes has the following encoding:
// [Sat. count (uint8): 1 byte] | [LR1110 GNSS payload: remaining bytes ]
function Decode(fPort, bytes, variables) {
return {
"sat_count": bytes[0],
"lr1110_gnss": bytes.slice(2, bytes.length)
};
}
I assume that Chirpstack is translating “lr1110_gnss” as the “payload” required by LoRa Cloud, however I do not see anywhere if and how I can also provide the other (optional) variables like for example the “gnss_assist_position”. Can I just use these exact variable names in the payload or will they be ignored by Chirpstack anyway?
How can I ensure that Chirpstack also forwards the optional variables mentioned by LoRa Cloud for GNSS?
"gnss_capture_time": FLOAT, // Optional. capture time estimate, GPST
"gnss_capture_time_accuracy": FLOAT, // Optional. capture time accuracy, seconds, default: 300
"gnss_assist_position": [FLOAT, FLOAT], // Optional. assistance position WGS84, (latitude, longitude) [deg]
"gnss_assist_altitude": FLOAT, // Optional. assistance position WGS84, (latitude, longitude) [deg]
"gnss_use_2D_solver": BOOL // Optional. force 2D solve, "gnss_assist_altitude" mandatory