From da71154cccae5249a7fa313de865cdedaa2acff3 Mon Sep 17 00:00:00 2001 From: Gus Grubba Date: Mon, 28 Aug 2017 19:26:42 -0400 Subject: [PATCH] Vehicle UID --- src/Vehicle/Vehicle.cc | 21 +++++++++++++++++++++ src/Vehicle/Vehicle.h | 6 ++++++ 2 files changed, 27 insertions(+) diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc index 47b23f333..9be3c6ad5 100644 --- a/src/Vehicle/Vehicle.cc +++ b/src/Vehicle/Vehicle.cc @@ -147,6 +147,7 @@ Vehicle::Vehicle(LinkInterface* link, , _firmwareCustomPatchVersion(versionNotSetValue) , _firmwareVersionType(FIRMWARE_VERSION_TYPE_OFFICIAL) , _gitHash(versionNotSetValue) + , _uid(0) , _lastAnnouncedLowBatteryPercent(100) , _rollFact (0, _rollFactName, FactMetaData::valueTypeDouble) , _pitchFact (0, _pitchFactName, FactMetaData::valueTypeDouble) @@ -310,6 +311,7 @@ Vehicle::Vehicle(MAV_AUTOPILOT firmwareType, , _firmwareCustomPatchVersion(versionNotSetValue) , _firmwareVersionType(FIRMWARE_VERSION_TYPE_OFFICIAL) , _gitHash(versionNotSetValue) + , _uid(0) , _lastAnnouncedLowBatteryPercent(100) , _rollFact (0, _rollFactName, FactMetaData::valueTypeDouble) , _pitchFact (0, _pitchFactName, FactMetaData::valueTypeDouble) @@ -745,6 +747,9 @@ void Vehicle::_handleAutopilotVersion(LinkInterface *link, mavlink_message_t& me mavlink_autopilot_version_t autopilotVersion; mavlink_msg_autopilot_version_decode(&message, &autopilotVersion); + _uid = (quint64)autopilotVersion.uid; + emit vehicleUIDChanged(); + if (autopilotVersion.flight_sw_version != 0) { int majorVersion, minorVersion, patchVersion; FIRMWARE_VERSION_TYPE versionType; @@ -780,6 +785,22 @@ void Vehicle::_handleAutopilotVersion(LinkInterface *link, mavlink_message_t& me _startPlanRequest(); } +QString Vehicle::vehicleUIDStr() +{ + QString uid; + uint8_t* pUid = (uint8_t*)(void*)&_uid; + uid.sprintf("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X", + pUid[0] & 0xff, + pUid[1] & 0xff, + pUid[2] & 0xff, + pUid[3] & 0xff, + pUid[4] & 0xff, + pUid[5] & 0xff, + pUid[6] & 0xff, + pUid[7] & 0xff); + return uid; +} + void Vehicle::_handleHilActuatorControls(mavlink_message_t &message) { mavlink_hil_actuator_controls_t hil; diff --git a/src/Vehicle/Vehicle.h b/src/Vehicle/Vehicle.h index 745e0330a..1a40d793a 100644 --- a/src/Vehicle/Vehicle.h +++ b/src/Vehicle/Vehicle.h @@ -361,6 +361,8 @@ public: Q_PROPERTY(int firmwareCustomMinorVersion READ firmwareCustomMinorVersion NOTIFY firmwareCustomVersionChanged) Q_PROPERTY(int firmwareCustomPatchVersion READ firmwareCustomPatchVersion NOTIFY firmwareCustomVersionChanged) Q_PROPERTY(QString gitHash READ gitHash NOTIFY gitHashChanged) + Q_PROPERTY(quint64 vehicleUID READ vehicleUID NOTIFY vehicleUIDChanged) + Q_PROPERTY(QString vehicleUIDStr READ vehicleUIDStr NOTIFY vehicleUIDChanged) /// Resets link status counters Q_INVOKABLE void resetCounters (); @@ -643,6 +645,8 @@ public: static const int versionNotSetValue = -1; QString gitHash(void) const { return _gitHash; } + quint64 vehicleUID(void) const { return _uid; } + QString vehicleUIDStr(); bool soloFirmware(void) const { return _soloFirmware; } void setSoloFirmware(bool soloFirmware); @@ -754,6 +758,7 @@ signals: void firmwareVersionChanged(void); void firmwareCustomVersionChanged(void); void gitHashChanged(QString hash); + void vehicleUIDChanged(); /// New RC channel values /// @param channelCount Number of available channels, cMaxRcChannels max @@ -1008,6 +1013,7 @@ private: FIRMWARE_VERSION_TYPE _firmwareVersionType; QString _gitHash; + quint64 _uid; int _lastAnnouncedLowBatteryPercent; -- 2.22.0