13SysStatusSensorInfo::~SysStatusSensorInfo()
18void SysStatusSensorInfo::update(
const mavlink_sys_status_t &sysStatus)
23 for (
int bitPosition = 0; bitPosition < 32; bitPosition++) {
24 const MAV_SYS_STATUS_SENSOR sensorBitMask =
static_cast<MAV_SYS_STATUS_SENSOR
>(1 << bitPosition);
25 if (sysStatus.onboard_control_sensors_present & sensorBitMask) {
26 if (_sensorInfoMap.contains(sensorBitMask)) {
27 SensorInfo &sensorInfo = _sensorInfoMap[sensorBitMask];
29 const bool newEnabled = sysStatus.onboard_control_sensors_enabled & sensorBitMask;
30 if (sensorInfo.enabled != newEnabled) {
32 sensorInfo.enabled = newEnabled;
35 const bool newHealthy = sysStatus.onboard_control_sensors_health & sensorBitMask;
36 if (sensorInfo.healthy != newHealthy) {
38 sensorInfo.healthy = newHealthy;
42 const SensorInfo sensorInfo = { !!(sysStatus.onboard_control_sensors_enabled & sensorBitMask), !!(sysStatus.onboard_control_sensors_health & sensorBitMask) };
43 _sensorInfoMap[sensorBitMask] = sensorInfo;
45 }
else if (_sensorInfoMap.contains(sensorBitMask)) {
47 (void) _sensorInfoMap.remove(sensorBitMask);
56QStringList SysStatusSensorInfo::sensorNames()
const
61 for (std::pair<MAV_SYS_STATUS_SENSOR, const SensorInfo&> sensorInfo : _sensorInfoMap.asKeyValueRange()) {
62 if (sensorInfo.second.enabled && !sensorInfo.second.healthy) {
67 for (std::pair<MAV_SYS_STATUS_SENSOR, const SensorInfo&> sensorInfo : _sensorInfoMap.asKeyValueRange()) {
68 if (sensorInfo.second.enabled && sensorInfo.second.healthy) {
73 for (std::pair<MAV_SYS_STATUS_SENSOR, const SensorInfo&> sensorInfo : _sensorInfoMap.asKeyValueRange()) {
74 if (!sensorInfo.second.enabled) {
82QStringList SysStatusSensorInfo::sensorStatus()
const
87 for (
const SensorInfo &sensorInfo : _sensorInfoMap.values()) {
88 if (sensorInfo.enabled && !sensorInfo.healthy) {
89 rgStatus.append(tr(
"Error"));
93 for (
const SensorInfo &sensorInfo : _sensorInfoMap.values()) {
94 if (sensorInfo.enabled && sensorInfo.healthy) {
95 rgStatus.append(tr(
"Normal"));
99 for (
const SensorInfo &sensorInfo : _sensorInfoMap.values()) {
100 if (!sensorInfo.enabled) {
101 rgStatus.append(tr(
"Disabled"));
#define QGC_LOGGING_CATEGORY(name, categoryStr)
static QString mavSysStatusSensorToString(MAV_SYS_STATUS_SENSOR sysStatusSensor)
Class which represents sensor info from the SYS_STATUS mavlink message.