Skip to main content
Version: DeepHub 2024 R1 - 2.5.2

Quuppa Connector

The Quuppa connector for the DeepHub allows to connect a Quuppa Positioning Engine to the DeepHub by creating omlox location updates from the Quuppa locations.

The connector can thereby be configured as a UDP output target in the Quuppa Positioning Engine.

Setup and Configuration

The Quuppa connector is available as a standalone Docker image at flowcate/deephub-connector:quuppa. To start this connector alongside a DeepHub instance the following configuration must be added to the service section in the docker-compose file used to start the DeepHub:

quuppa:
image: flowcate/deephub-connector:quuppa
container_name: qpa-connector
environment:
- DEEPHUB_URL=deephub
- DEEPHUB_PORT=7081
- QUUPPA_CONNECTOR_PORT=12000
- QUUPPA_CONNECTOR_DEBUG=false
ports:
- '12000:12000/udp'
networks:
- deephub-net
depends_on:
- deephub

This configuration is based on the DeepHub Basic Example. It will start an additional container ("quuppa-connector"), which accepts udp messages at port 12000. These messages will be forwarded as omlox location updates to the DeepHub service.

For other setups, the details of the configuration may have to be adjusted. The relevant configuration parameters are:

VariableDescription
DEEPHUB_PORTThe port of the DeepHub instance.
DEEPHUB_URLThe address of the DeepHub instance.
DEEPHUB_TARGETThe url target of the DeepHub instance.
QUUPPA_CONNECTOR_PORTThe port used for receiving udp messages.
QUUPPA_CONNECTOR_DEBUGWhether debug output should be printed by the connector. (true or false)

The Quuppa connector can also run as a standalone service. It does not have to run in the same docker network as the DeepHub. In this case, the variable DEEPHUB_URL must point to the ip address or URL where the DeepHub can be reached.

Property Mapping

The omlox location updates are constructed based on the information contained in the Quuppa location. The connector thereby uses the following mapping:

Quuppaomlox
tagIdprovider_id
locationCoordSysIdsource
locationposition
locationTStimestamp_generated
locationRadiusaccuracy

Optional omlox properties may be omitted from the Quuppa message, but all required properties must be present.

The location updates are always interpreted as local coordinates. This means that locationCoordSysId MUST correspond to a valid id or foreign_id of a zone in the DeepHub.
Also, locationType is expected to be present in the Quuppa location and to be neither hidden, nor noData.
The provider_type of the omlox location update will always be set to unknown.

In addition, the original Quuppa location will be added to the properties field of the omlox location as "quuppa_original".

Example

The following Quuppa location will result in the following omlox location update websocket message.

// Quuppa location
{
"location": [0, 0],
"tagId": "qpa_tag_id",
"locationCoordSysId": "qpa_zone_id",
"locationType": "position"
}
// resulting omlox location update websocket message
{
"event": "message",
"topic": "location_updates",
"payload": [
{
"provider_type": "unknown",
"provider_id": "qpa_tag_id",
"source": "qpa_zone_id",
"position": { "type": "Point", "coordinates": [0, 0] },
"properties": {
"quuppa_original": {
"location": [0, 0],
"tagId": "qpa_tag_id",
"locationCoordSysId": "qpa_zone_id",
"locationType": "position"
}
}
}
]
}

Authorization

Access management with authorization is currently not supported by this connector. If the DeepHub is configured to require authorization for sending location updates via websocket, this connector will not be able to send location updates.