Get desktop application:
View/edit binary Protocol Buffers messages
This message is sent in response to a add/remove proxy request and indicates the success or failure of the request. If there is a failure reason, the request was unsuccessful
Why the request failed (success if not there)
This message is used to request an that the caster add a new proxy or remove an old one. If a new caster is to be added, the three connection strings must be given This message can be used to remove a caster from proxying by specifying the caster to remove. In this case, the caster_id_to_remove field is expected.
The ZMQ connection string to connect to the client query interface of the caster to proxy
The ZMQ connection string to connect to the caster's connect/disconnect notification interface
The ZMQ connection string to connect to the base station's correction publishing interface
The same connection string used to add the caster to the proxy list
This message defines the permissions granted to the owner of the public key by those that sign a serialized version of this message.
The public key of the entity the permissions are granted to
These permissions are granted until revoked by blacklist or the timepointed defined by valid_until which is defined as the 64 bit unix timestamp given by the Poco Timestamp function (microseconds since Unix Epoc).
The granted permissions
The number of simultaneous base station streams the owner of the key may open with a PylonGPS on behalf of the signers
Classes of base stations (official, community, etc)
Used in: ,
Base stations that are run by trusted entities (such as governments) and use authentication so that injecting bad data is difficult
Base stations run by private individuals or organizations that have registered and gotten a signing key for their organization
Base stations run by anonymous individuals
Used in:
Latitude of the center of the circle
Longitude of the center of the circle
Radius in meters of the circle
Used in:
The base station hasn't sent updates for an unacceptable amount of time
The base station indicated it wished to stop sending updates
This message contains all of the details related to a basestation stream (including public key/organization, if there is one and lat/long, expected update rate, basestation tech? and message protocol).
Used in: , , , ,
Stick first so database interface selects it as primary key
The 64 bit id assigned by the caster for this stream
Fields that are expected in registration
The latitude of the information source (degrees)
The longitude of the information source (degrees)
Expected number of complete protocol messages (RTCM/etc) per second
The base station stream's message protocol/format
The name the basestation suggests be used for it in graphical displays/user interfaces.
Fields potentially filled in by the caster
The type of the basestation (OFFICIAL, COMMUNITY, etc)
The public key (in binary) associated with a source (if it has one), this is left blank in registration requests and filled internally via credentials
Any keys that have signed the public key associated with this source (if any) in binary format
How many messages/second received on average from the basestation (updated every 30 seconds or so to prevent needing too many database accesses)
How long a basestation has been connected
The POCO datetime when the basestation was registered (microseconds since unix epoch)
Used in:
Key to allow senders to find this receiver on loading, required to be unique across all receivers stored
ID of caster to retrieve from
ID of stream to retrieve from
Used with GUI
Used in:
Data receiver this sender forwards from
messages/sec
This message represents the timepoint at which the certficate associated with the given blacklisted key has expired
The blacklist key which timed out
This message is used to store the parameters to configure a Pylon GPS 2.0 caster with. It can be configured and passed to the caster constructor.
The 64 bit ID associated with this caster (make sure it does not collide with caster IDs the clients are likely to run into) (required)
The port number to register the ZMQ router socket used for receiving PylonGPS transmitter registrations/streams (required)
The port to open to receive client requests (including requests from proxies for the list of sources) (required)
The port to open for the interface to publish stream data to clients (required)
The port to open for the interface to publish stream data to proxies (potentially higher priority) (required)
The port for the interface that is used to to publish stream status changes (required)
The port for the interface that is used to add/remove (required)
The public key for this caster to use for encryption/authentation (binary format). Caster will generate a new one if this is missing
The secret key for this caster to use for encryption/authentation (binary format). Caster will generate a new one if this is missing
The signing key that has permission to add/remove allowed signing keys from the caster (binary format) (required)
A list of the initial set of approved keys for official basestations (binary format)
A list of the initial set of approved keys for registered community basestations (binary format)
A list of signing keys not to trust (binary format)
The connection string used to connect to or create the SQLITE database used for stream source entry management and query resolution. If an empty string is given or it is left out (by default), it will connect/create an in-memory database.
This message contains all the details regarding a pylonGPS caster instance, including version.
A string indicating the version of the caster ("x.x.x" format)
This message contains either an error message indicating the request was invalid, a list (sometimes sorted) of base station information structures or a message containing the details about the caster.
The (currently required) caster ID associated with the answering caster
A list of base_stations that meet the required criteria
The reason the request failed (the request failed if this has a value)
This message is used by a PylonGPS client to request a list of available sources from a caster. It allows filtering based on lat/long (entries within a certain distance of a point, sorted by distance or in a grid), limiting the number of entries returned to a certain number, uptime (> certain amount), update rate (> certain amount), expected update rate (> certain amount) and protocol (in a list of different types).
Used in:
The maximum number of base station entries that should be returned
Zero or more subqueries, with the results from each subquery "ORed" together
Used in:
Couldn't read the request
One or more required parameters were not found
The request had too many things to check for (would take a really long time to process)
This message defines several "AND" clauses together to form a complex set of conditions. Multiple messages of this type can be "ORed" placed in a client_query_request message to enable complex queries.
Used in:
One or more acceptable types of base station classes
One or more acceptable message types. If zero types are defined, it is assumed any type is acceptable.
Conditions on the value of the latitude
Conditions on the value of the longitude
Conditions on how long base stations have been active in seconds (potentially allowing only long running basestations to be used)
Conditions on the real update rate (ZMQ messages per second)
A condition on the expected update rate (GPS format messages/second), defined at registration
A condition on the informal name to search for
Conditions on the assigned base station ID
Acceptable signing public keys
A central point and radius to search for base stations around
This message represents the timepoint at which the certficate associated with the given key has expired
The connection key which timed out
Types of message formats
Used in: , ,
RTCM version 1.0
RTCM version 2.0
RTCM version 2.1
RTCM version 2.2
RTCM version 2.3
RTCM version 3.0
RTCM version 3.1
RTCM++
RTCM-AdV
RTCM-AdV FKP
RINEX
Piksi's format version 1
Compact Measurement Record (CMR)
Raw data from a receiver
This message contains all of the information required to show that a given public key has been granted permissions from one or more entities via their private key
Used in: ,
A serialized authorized_permissions message that details what permissions have been granted and to whom they have been granted to
One or more signatures authorizing the permission (who grants the permissions and associated proof)
This message is used to notify listeners to a data receiver if something has happened (such as an unrecoverable error).
The receiver has gone offline
This message is sent in response to a database request and indicates the success or failure of the request.
The connection ID associated with the base_station_to_register in the registration thread
Why the request failed (success if not there)
This message is used to request an operation on the database be completed. So far this includes adding or removing a base station entry or updating the reported update rate.
The connection ID associated with the base_station_to_register in the registration thread
The information about a basestation to register
The IDs of a basestations to remove
The ID of a basestation to update
The real update rate to update in the table
Used in:
Missing "optional" fields required for a valid transaction
This message contains no fields but has a large extension option range so that any new "event" messages can add its definition to it as an optional or repeated message member. It is meant to be used with a std::tuple<std::chrono::timepoint, event_message> to allow easy construction of an event queue. Which messages the event_message has embedded can be checked with the has_ member functions.
(message has no fields)
Used in:
Key to allow senders to find this receiver on loading, required to be unique across all receivers stored
File path to get data from
Used in:
Data receiver this sender forwards from
This message used used by a caster to reply to a transmitter_registration_request. It indicates if the registration succeeded and if not, then why it failed.
True if the registration request succeeded
The reason for the request being rejected
This message is used to send a request to add or blacklist a set of keys from the lists of acceptable signing keys for different applications
For now, both fields are required
A serialized key_status_changes message which details the changes to make to the different keys lists
The signature from the owner of the caster authorizing the change
Used in:
Deserialization failed
Unable to read desired change
Credentials not signed by recognized authorities or otherwise are not enough.
One or more needed fields are missing
This message defines the permissions granted to the owner of the public key by those that sign a serialized version of this message.
Signing keys to add to the list of accepted signing keys for official basestations
The date at which each of the official_signing_key_to_add become invalid (required, one for each key)
Signing keys to add to the list of accepted signing keys for registered community basestations
The dates at which each of the registered_community_signing_keys_to_add become invalid (required, one for each key)
Signing keys to add to the list of accepted signing keys for registered community basestations
The dates at which each of the keys should be removed from the blacklist (their certificates have expired by then) (required, one for each key)
This message is used to inform the caster that one of its proxy requests may have timed out. If the socket this message refers to is still around, it is deleted and the source of the add proxy request is informed of the failure. If it is not, then nothing happens.
The binary value (local machine format) of the address for the query socket
The connection id associated with the base station
This refers to an authenticated basestation if true
This message represents the timepoint at which a proxy stream may have expired (the check occurs)
The foreign caster ID
The foreign stream ID
Used in:
Missing "optional" fields required for a valid transaction
Unable to retrieve basestation information from the caster
Used in:
Deserialization failed
Unable to read credentials
Credentials not signed by recognized authorities or otherwise are not enough.
This message carries the public key of a key pair used to sign a given message and the resulting signed hash for associated with the particular message that was signed
Used in: ,
The public key associated with the private key that was used to sign the key
The signature generated from the key pair/message
This message represents the timepoint at which the certficate associated with the given key has expired
The official key which timed out
True if it is an "official" signing key and false if it is a "registered community" signing key
This message is used as part of a subquery message to specify conditions on one or more parts of stream base station results that are returned. It specifies a constraint on the value of a particular field of the stream base station entry.
Used in:
The value the condition is in relation to
The relation to the value (<,<=, ==, >=, >)
This message is used as part of a subquery message to specify conditions on one or more parts of stream base station results that are returned. It specifies a constraint on the value of a particular field of the stream base station entry.
Used in:
The value the condition is in relation to
The relation to the value (<,<=, ==, >=, >)
Relational operators for SQL operations
Used in: ,
This message is used as part of a subquery message to specify conditions on one or more parts of stream base station results that are returned. It specifies a constraint on the value of a particular field of the stream base station entry.
Used in:
The value the condition is in relation to
The relation to the value (==, LIKE (permits wildcards))
Used in:
This message is published by a caster to inform proxies or interested clients if a stream has been added or has been removed from the caster's list of information sources. This allows clients and proxies to be aware of when their subscribed source disconnects and allow for waiting until a source comes online. The registrations notifications include a base_station_stream_information message with all of the details associated with the new source.
Non-empty if there is a new base station available
The 64 bit ID of the base station that is being removed from the caster
The reason the base station was removed from the caster
Used in:
Key to allow senders to find this receiver on loading, required to be unique across all receivers stored
Used in:
Data receiver this sender forwards from
This message is used to store the current state of a PylonGPS 2.0 transceiver so that it can be restarted in the same state.
This message used used by a caster to reply to a transmitter_registration_request. It indicates if the registration succeeded and if not, then why it failed.
True if the registration request succeeded
The reason for the request being rejected
This message is used by a PylonGPS transmitter to submit any required credentials and give the required metadata for the stream to the caster (lat/long, expected update rate, basestation tech, message protocol). The caster should reply with a transmitter_registration_reply.
The metadata associated with the stream we are attempting to register
This is any credentials (such as signatures of its key via an organization key) used to authenticate this transmitter's key (if it is attempting to authenticate) as a representative of a particular organization.
This message represents the timepoint at which the the next wave of real_update_rate entries should be updated
(message has no fields)
Used in:
Key to allow senders to find this receiver on loading, required to be unique across all receivers stored
Used in:
Data receiver this sender forwards from