Apollon-Q T/R/TR Quickstart Guide
You are looking for the Apollon-Q T/R/TR Quc
📄 You can view the PDF above or
download it here
.
Table of Contents
- NFC Setup and Location of the NFC Tag
- Mounting Options
- Payload Decoder Apollon-Q Series
1. NFC Setup and Location of the NFC Tag
- Activation is performed via the NFC app. A smartphone is required for this. The app can be downloaded from the respective app store. Search for Sentinum LinQs and install the application.
- First, locate the NFC tag on the sensor and then the NFC reader on your smartphone. The position of the NFC tag is shown in the following figures.
- Open the app and activate the sensor. In the start menu, select the "Activate Sensor" button and hold your smartphone up to the sensor's NFC tag.
Note:
When the sensor is activated, you'll see "Sensor Updated!". You can then continue activating additional sensors.
When the sensor is activated, you'll see "Sensor Updated!". You can then continue activating additional sensors.
2. Mounting Options
3. Payload Decoder Apollon-Q Series
// Up-to-date Apollon decoder
function Decoder(bytes, port) {
// Conversion of signed integers
function uncomplement(val, bitwidth) {
var isnegative = val & (1 << (bitwidth - 1));
var boundary = (1 << bitwidth);
var minval = -boundary;
var mask = boundary - 1;
return isnegative ? minval + (val & mask) : val;
}
var decoded = {};
if (port === 1) {
// Attributes
decoded.base_id = bytes[0] >> 4;
decoded.major_version = bytes[0] & 0x0F;
decoded.minor_version = bytes[1] >> 4;
decoded.product_version = bytes[1] & 0x0F;
// Telemetry
decoded.up_cnt = bytes[2];
decoded.battery_voltage = ((bytes[3] << 8) | bytes[4]) / 1000.0;
decoded.internal_temperature = bytes[5] - 128;
decoded.alarm = bytes[6] ? "ALARM" : "NO ALARM";
decoded.master_value = ((bytes[7] << 8) | bytes[8]);
var byte_cnt = 9;
// Onboard ToF
if (bytes[1] & 0x01) {
decoded.tof_status = bytes[byte_cnt++];
decoded.tof_distance = ((bytes[byte_cnt++] << 8) | bytes[byte_cnt++]);
decoded.tof_index = bytes[byte_cnt++];
}
// Onboard radar
if (bytes[1] & 0x02) {
decoded.radar_status = bytes[byte_cnt++];
decoded.radar_no_peaks = bytes[byte_cnt++];
decoded.radar_distance_1 = ((bytes[byte_cnt++] << 8) | bytes[byte_cnt++]);
decoded.radar_amplitude_1 = uncomplement(
(bytes[byte_cnt++] << 8) | bytes[byte_cnt++], 16
);
decoded.radar_distance_2 = ((bytes[byte_cnt++] << 8) | bytes[byte_cnt++]);
decoded.radar_amplitude_2 = uncomplement(
(bytes[byte_cnt++] << 8) | bytes[byte_cnt++], 16
);
decoded.radar_distance_3 = ((bytes[byte_cnt++] << 8) | bytes[byte_cnt++]);
decoded.radar_amplitude_3 = uncomplement(
(bytes[byte_cnt++] << 8) | bytes[byte_cnt++], 16
);
}
// Onboard ACC
if (bytes[1] & 0x04) {
decoded.acc_status = bytes[byte_cnt++] ? "Error" : "OK";
decoded.acc_orientation = bytes[byte_cnt++];
decoded.acc_open = bytes[byte_cnt++];
decoded.acc_open_cnt = ((bytes[byte_cnt++] << 8) | bytes[byte_cnt++]);
decoded.acc_impact = bytes[byte_cnt++] ? "Vandalism" : "OK";
}
// Hall sensor
if (bytes[1] & 0x08) {
decoded.hall_open = bytes[byte_cnt++];
decoded.hall_open_cnt = ((bytes[byte_cnt++] << 8) | bytes[byte_cnt++]);
}
}
return decoded;
}
© Sentinum GmbH – All rights reserved.
All content in this document, including text, tables, and images, is protected by copyright and is the property of Sentinum GmbH.
All images are subject to the copyright of Sentinum GmbH, unless otherwise stated.
Reproduction, distribution, or use—even in part—is not permitted without express written permission.
Specifications are subject to change. All information is provided without warranty.