Protobuf definition for Message
Protocol used in HERE GNSS API
HERE GNSS API uses a special communication protocol based on the protobuf messages shown below.
This protocol enables the communicating parties to request data from each other and to deliver the requested data. To be more specific, a client can request a server to send certain type of assistance data as an immediate single time response or as subscription-type repeated data responses.
The protocol is content type agnostic. The client needs to know the DataType
constants and what they mean regarding the data content, format and so on. DataType
constants are documented in Data Types.
You can download the gnss.proto
file using the following link:
gnss.proto
syntax = "proto3";
package here.gnss;
enum DataType {
DATATYPE_UNSPECIFIED = 0;
DATATYPE_IONEX = 17000;
DATATYPE_BSX = 17001;
DATATYPE_AGNSS_GPS = 18005;
DATATYPE_AGNSS_GLO = 18006;
DATATYPE_AGNSS_GAL = 18007;
DATATYPE_AGNSS_BEI = 18008;
DATATYPE_GPS_CLOCKS = 18009;
DATATYPE_GLO_CLOCKS = 18010;
DATATYPE_GAL_CLOCKS = 18011;
DATATYPE_BEI_CLOCKS = 18012;
DATATYPE_GPS_ORBITS = 18013;
DATATYPE_GLO_ORBITS = 18014;
DATATYPE_GAL_ORBITS = 18015;
DATATYPE_BEI_ORBITS = 18016;
DATATYPE_GPS_ORBITS_RAC = 18020;
DATATYPE_GLO_ORBITS_RAC = 18021;
DATATYPE_GAL_ORBITS_RAC = 18022;
DATATYPE_BEI_ORBITS_RAC = 18023;
DATATYPE_AGNSS_QZS = 18030;
DATATYPE_GPS_CODE_BIAS = 18050;
DATATYPE_GLO_CODE_BIAS = 18051;
DATATYPE_GAL_CODE_BIAS = 18052;
DATATYPE_BEI_CODE_BIAS = 18053;
DATATYPE_UNIX_TIMESTAMP = 20000;
DATATYPE_ISO_8601_DATETIME = 20001;
DATATYPE_NAV_MODEL_PREDICTIONS_GPS = 22000;
DATATYPE_NAV_MODEL_PREDICTIONS_GLO = 22020;
DATATYPE_NAV_MODEL_PREDICTIONS_GAL = 22040;
DATATYPE_NAV_MODEL_PREDICTIONS_BEI = 22060;
DATATYPE_GPS_IONO = 23000;
DATATYPE_GLO_IONO = 23001;
DATATYPE_GAL_IONO = 23002;
DATATYPE_BEI_IONO = 23003;
}
enum ParamsUnixTimestamp {
PARAMS_UNIX_TIMESTAMP_UNSPECIFIED = 0;
PARAMS_UNIX_TIMESTAMP_INTERVAL = 1;
}
enum ParamsIso8601Datetime {
PARAMS_ISO_8601_DATETIME_UNSPECIFIED = 0;
PARAMS_ISO_8601_DATETIME_INTERVAL = 1;
PARAMS_ISO_8601_DATETIME_TIMEZONE = 2;
}
enum ParamsIonoCorrections {
PARAMS_IONO_CORRECTIONS_UNSPECIFIED = 0;
PARAMS_IONO_CORRECTIONS_GRID_IDS = 1;
}
message Message {
message Request {
DataType data_type = 1;
uint32 request_id = 2;
map<uint32, bytes> params = 3;
}
message Unsubscribe {
DataType data_type = 1;
uint32 request_id = 2;
}
message Data {
message Metadata {
uint32 creation_timestamp = 1;
}
DataType data_type = 1;
uint32 request_id = 2;
bytes payload = 3;
Metadata metadata = 4;
}
message Error {
uint32 request_id = 1;
string title = 2;
uint32 status = 3;
string code = 4;
string cause = 5;
string action = 6;
string correlation_id = 7;
}
repeated Request requests = 1;
repeated Request subscriptions = 2;
repeated Unsubscribe unsubscriptions = 3;
repeated Data data = 4;
repeated Error errors = 5;
}