DataBridge is a special data application which allows you to create DMR data applications without care about DMR data transportation, BrandMeister servers perform assembling, transmitting, retrying whole DMR data blocks for you.
Access to DataBridge can be done via MQTT API. There two special group of topics:
Please note: DataBridge supports only private data calls as an input from the air.
More datails about available options to transfer the data are available at article DMR Data Transport.
// DataBridge Application DataBridge : { // List of mapped service IDs: // <Private ID>, <Responding Mode> numbers = [ 250970, 8, // 8 means data stack will respond with success code automatically 250971, 255 // 255 means external application will respond with Response Packet ]; };
Unlike to all other MQTT API functions you have to provide an extra header having transmission information to BrandMeister. Fortunately BrandMeister sends absolutely the same header to inform application of incoming transmission details.
<syntaxhighlight lang="c">
extern "C" {
struct DataTransportHeader {
uint8_t version; // Header version, 1 uint8_t length; // sizeof(struct DataTransportHeader)
uint8_t priority; // TRANSMITTER_PRIORITY_*
uint8_t format; // DPF_* uint8_t application; // SAP_* uint8_t options; // Depends on format uint8_t type; // Depends on format uint8_t code; // Depends on format
uint8_t rate; // TYPE_RATE_*
uint8_t reserved[7]; // Align to 16 bytes
};
}
</syntaxhighlight>
All emunerations are standard for DMR: <syntaxhighlight lang="c">
// Data Packet Format
// SAP Identifier
// Options
</syntaxhighlight>
All reserved filds should be filled with 0!
Please keep in mind: options CHEAD_GROUP_DESTINATION and CHEAD_RESPONSE_REQUIRED cannot be applied both at the same time.
To keep transmissions compatible with most of repeaters and radios it is highly recommended to use:
Normally you have to fill following fields:
Normally you have to fill following fields:
You can use:
You can use:
You can use: