From 5a0edb88756e5082903c40c9e81a9ead7bfe1887 Mon Sep 17 00:00:00 2001 From: Pos <pierpaolo.mancini@mail.polimi.it> Date: Tue, 22 Feb 2022 19:31:13 +0100 Subject: [PATCH] Implemented basic command authentication --- Modules/Mavlink/mavlinkcommandadapter.h | 6 +++--- Modules/Mavlink/mavlinkmodule.cpp | 9 +++++---- Modules/Mavlink/mavlinkreader.cpp | 10 ++++++---- Modules/Mavlink/mavlinkversionheader.h | 4 ++-- Modules/moduleinfo.h | 3 ++- Modules/moduleslist.cpp | 1 - SkywardHub.pro.user | 2 +- 7 files changed, 19 insertions(+), 16 deletions(-) diff --git a/Modules/Mavlink/mavlinkcommandadapter.h b/Modules/Mavlink/mavlinkcommandadapter.h index d7831574..60d82f73 100644 --- a/Modules/Mavlink/mavlinkcommandadapter.h +++ b/Modules/Mavlink/mavlinkcommandadapter.h @@ -40,6 +40,9 @@ public: //void loadMsgDefinition(); + static const int MAV_CMP = 96; + static const int MAV_SYS = 171; + signals: void publishRequested(const ModuleMessage &msg); @@ -52,9 +55,6 @@ private: QMap<QString, int> msgNameIdMap; //QString msgDefinitionFile = GroundStation::getResourceDirectory()+"/mavlinkMsgDefinition.xml"; - static const int MAV_CMP = 1; - static const int MAV_SYS = 1; - int portNumber = -1; }; diff --git a/Modules/Mavlink/mavlinkmodule.cpp b/Modules/Mavlink/mavlinkmodule.cpp index 2c65c846..cbf6cd6c 100644 --- a/Modules/Mavlink/mavlinkmodule.cpp +++ b/Modules/Mavlink/mavlinkmodule.cpp @@ -58,6 +58,7 @@ void MavlinkModule::subscribe() getCore()->getModuleMessagesBroker()->subscribe(SkywardHubStrings::commandsTopic,this,[this](const ModuleMessage &msg){ onCommandReceived(msg); }); + getCore()->getModuleMessagesBroker()->subscribe(SkywardHubStrings::telemetryRequestTopic,this,[this](const ModuleMessage &msg){ onTelemetryRequestReceived(msg); }); @@ -402,8 +403,8 @@ void MavlinkModule::onCommandReceived(const ModuleMessage &msg) // } // } - encoded_mvl_msg.sysid = validSysid; - encoded_mvl_msg.compid = validCompid; + //encoded_mvl_msg.sysid = validSysid; + //encoded_mvl_msg.compid = validCompid; if(portOpen && portNumber >= 0){ mavlinkCommandAdapter.send(encoded_mvl_msg); @@ -483,8 +484,8 @@ void MavlinkModule::onTelemetryRequestReceived(const ModuleMessage &msg) // encoded_mvl_msg = mavlinkCommandAdapter.encode_TELEMETRY_REQUEST_TC(MAV_STRAIN_BOARD_TM_ID); // } - encoded_mvl_msg.sysid = validSysid; - encoded_mvl_msg.compid = validCompid; + //encoded_mvl_msg.sysid = validSysid; + //encoded_mvl_msg.compid = validCompid; if(portOpen && portNumber >= 0){ mavlinkCommandAdapter.send(encoded_mvl_msg); diff --git a/Modules/Mavlink/mavlinkreader.cpp b/Modules/Mavlink/mavlinkreader.cpp index 733a9df9..2d339c6d 100644 --- a/Modules/Mavlink/mavlinkreader.cpp +++ b/Modules/Mavlink/mavlinkreader.cpp @@ -7,6 +7,7 @@ #include "rs232.h" #include "Modules/skywardhubstrings.h" #include <QDir> +#include "mavlinkcommandadapter.h" MavlinkReader::MavlinkReader() { @@ -62,10 +63,11 @@ void MavlinkReader::run() bool MavlinkReader::chackMsgOwnership(const mavlink_message_t& msg) const { - if(msg.sysid == validSysid && msg.compid == validCompid){ - return true; - } - return false; + return true; +// if(msg.sysid == MavlinkCommandAdapter::MAV_SYS && msg.compid == MavlinkCommandAdapter::MAV_CMP){ +// return true; +// } +// return false; } diff --git a/Modules/Mavlink/mavlinkversionheader.h b/Modules/Mavlink/mavlinkversionheader.h index ecf5344a..dbc925c4 100644 --- a/Modules/Mavlink/mavlinkversionheader.h +++ b/Modules/Mavlink/mavlinkversionheader.h @@ -4,8 +4,8 @@ //#include "mavlink_skyward_lib/mavlink_lib/hermes/mavlink.h" #include "mavlink_skyward_lib/mavlink_lib/lynx/mavlink.h" -static __attribute__((unused)) uint8_t validSysid = 171; -static __attribute__((unused)) uint8_t validCompid = 96; +//static __attribute__((unused)) uint8_t validSysid = 171; +//static __attribute__((unused)) uint8_t validCompid = 96; #endif // MAVLINKVERSIONHEADER_H diff --git a/Modules/moduleinfo.h b/Modules/moduleinfo.h index 0aa4a56d..12a3f048 100644 --- a/Modules/moduleinfo.h +++ b/Modules/moduleinfo.h @@ -24,7 +24,8 @@ enum ModuleId{ STATEVIEWER, VALUESCONVERTERVIEWER, MAVLINK_RCK_TESTING, - TIMER_CONTROLLER + TIMER_CONTROLLER, + MODULETEST }; enum ModuleCategory{ diff --git a/Modules/moduleslist.cpp b/Modules/moduleslist.cpp index d05a1262..1c1cb035 100644 --- a/Modules/moduleslist.cpp +++ b/Modules/moduleslist.cpp @@ -161,7 +161,6 @@ void ModulesList::createModuleList() timerController.addModuleSourceFiles("Modules/TimerController/"); addModuleInfo(timerController); #endif - } diff --git a/SkywardHub.pro.user b/SkywardHub.pro.user index 863e5eae..974552b0 100644 --- a/SkywardHub.pro.user +++ b/SkywardHub.pro.user @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE QtCreatorProject> -<!-- Written by QtCreator 4.14.2, 2021-10-01T22:10:38. --> +<!-- Written by QtCreator 4.14.2, 2021-10-30T12:42:19. --> <qtcreator> <data> <variable>EnvironmentId</variable> -- GitLab