v1.6.1 #81

Merged
muellerr merged 9 commits from develop into main 2021-08-11 10:47:37 +02:00
20 changed files with 32 additions and 51 deletions

View File

@ -251,21 +251,13 @@ You then need to run `scp` with the `-P 1535` flag with `localhost` as the targe
## Port forwarding for TMTC commanding ## Port forwarding for TMTC commanding
If you are using the UDP communication interface, you can use: You can enable port forwarding for TMTC commanding with the following command:
```sh ```sh
ssh -L 1536:192.168.133.10:7301 eive@2001:7c0:2018:1099:babe:0:e1fe:f1a5 -t /bin/bash ssh -L 1536:192.168.133.10:7301 eive@2001:7c0:2018:1099:babe:0:e1fe:f1a5 -t /bin/bash
``` ```
This forwards UDP TMTC packets on port `1536` of localhost to the TMTC reception port of the Q7S. This forwards TMTC packets on port `1536` of localhost to the TMTC reception port of the Q7S.
For TCP, you can use
```sh
ssh -L 1537:192.168.133.10:7303 eive@2001:7c0:2018:1099:babe:0:e1fe:f1a5 -t /bin/bash
```
This forwards TCP TMTC packets on port `1537` of localhost to the TMTC reception port of the Q7S.
## Set up all port forwarding at once ## Set up all port forwarding at once

View File

@ -6,5 +6,3 @@ target_sources(${TARGET_NAME} PUBLIC
add_subdirectory(fsfwconfig) add_subdirectory(fsfwconfig)
add_subdirectory(boardconfig) add_subdirectory(boardconfig)

View File

@ -51,7 +51,7 @@ void ObjectFactory::produce(void* args){
new UdpTcPollingTask(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE); new UdpTcPollingTask(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE);
#else #else
sif::info << "Setting up TCP TMTC bridge with listener port " << sif::info << "Setting up TCP TMTC bridge with listener port " <<
TcpTmTcBridge::DEFAULT_SERVER_PORT << std::endl; TcpTmTcServer::DEFAULT_SERVER_PORT << std::endl;
new TcpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR); new TcpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
new TcpTmTcServer(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE); new TcpTmTcServer(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE);
#endif #endif

View File

@ -13,4 +13,5 @@ else()
add_subdirectory(core) add_subdirectory(core)
add_subdirectory(memory) add_subdirectory(memory)
add_subdirectory(spiCallbacks) add_subdirectory(spiCallbacks)
add_subdirectory(devices)
endif() endif()

View File

@ -10,7 +10,7 @@
#if OBSW_USE_TMTC_TCP_BRIDGE == 0 #if OBSW_USE_TMTC_TCP_BRIDGE == 0
#include "fsfw/osal/common/UdpTmTcBridge.h" #include "fsfw/osal/common/UdpTmTcBridge.h"
#else #else
#include "fsfw/osal/common/TcpTmTcBridge.h" #include "fsfw/osal/common/TcpTmTcServer.h"
#endif #endif
#include "bsp_q7s/memory/scratchApi.h" #include "bsp_q7s/memory/scratchApi.h"
@ -780,14 +780,6 @@ ReturnValue_t CoreController::initWatchdogFifo() {
void CoreController::initPrint() { void CoreController::initPrint() {
#if OBSW_VERBOSE_LEVEL >= 1 #if OBSW_VERBOSE_LEVEL >= 1
#if OBSW_USE_TMTC_TCP_BRIDGE == 0
sif::info << "Created UDP server for TMTC commanding with listener port " <<
UdpTmTcBridge::DEFAULT_SERVER_PORT << std::endl;
#else
sif::info << "Created TCP server for TMTC commanding with listener port " <<
TcpTmTcBridge::DEFAULT_SERVER_PORT << std::endl;
#endif
if(watchdogFifoFd > 0) { if(watchdogFifoFd > 0) {
sif::info << "Opened watchdog FIFO successfully.." << std::endl; sif::info << "Opened watchdog FIFO successfully.." << std::endl;
} }

View File

@ -12,6 +12,8 @@
#include "bsp_q7s/spiCallbacks/rwSpiCallback.h" #include "bsp_q7s/spiCallbacks/rwSpiCallback.h"
#include "bsp_q7s/boardtest/Q7STestTask.h" #include "bsp_q7s/boardtest/Q7STestTask.h"
#include "bsp_q7s/memory/FileSystemHandler.h" #include "bsp_q7s/memory/FileSystemHandler.h"
#include "bsp_q7s/devices/PlocSupervisorHandler.h"
#include "bsp_q7s/devices/PlocUpdater.h"
#include "linux/devices/HeaterHandler.h" #include "linux/devices/HeaterHandler.h"
#include "linux/devices/SolarArrayDeploymentHandler.h" #include "linux/devices/SolarArrayDeploymentHandler.h"
@ -33,15 +35,12 @@
#include "mission/devices/MGMHandlerLIS3MDL.h" #include "mission/devices/MGMHandlerLIS3MDL.h"
#include "mission/devices/MGMHandlerRM3100.h" #include "mission/devices/MGMHandlerRM3100.h"
#include "mission/devices/PlocMPSoCHandler.h" #include "mission/devices/PlocMPSoCHandler.h"
#include "mission/devices/PlocSupervisorHandler.h"
#include "mission/devices/RadiationSensorHandler.h" #include "mission/devices/RadiationSensorHandler.h"
#include "mission/devices/RwHandler.h" #include "mission/devices/RwHandler.h"
#include "mission/devices/StarTrackerHandler.h" #include "mission/devices/StarTrackerHandler.h"
#include "mission/devices/PlocUpdater.h"
#include "mission/devices/devicedefinitions/GomspaceDefinitions.h" #include "mission/devices/devicedefinitions/GomspaceDefinitions.h"
#include "mission/devices/devicedefinitions/SyrlinksDefinitions.h" #include "mission/devices/devicedefinitions/SyrlinksDefinitions.h"
#include "mission/devices/devicedefinitions/PlocMPSoCDefinitions.h" #include "mission/devices/devicedefinitions/PlocMPSoCDefinitions.h"
#include "mission/devices/devicedefinitions/PlocSupervisorDefinitions.h"
#include "mission/devices/devicedefinitions/RadSensorDefinitions.h" #include "mission/devices/devicedefinitions/RadSensorDefinitions.h"
#include "mission/devices/devicedefinitions/Max31865Definitions.h" #include "mission/devices/devicedefinitions/Max31865Definitions.h"
#include "mission/devices/devicedefinitions/RwDefinitions.h" #include "mission/devices/devicedefinitions/RwDefinitions.h"
@ -140,11 +139,15 @@ void ObjectFactory::produce(void* args){
#endif /* TE7020 != 0 */ #endif /* TE7020 != 0 */
#if OBSW_USE_TMTC_TCP_BRIDGE == 0 #if OBSW_USE_TMTC_TCP_BRIDGE == 0
new UdpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR); auto udpBridge = new UdpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
new UdpTcPollingTask(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE); new UdpTcPollingTask(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE);
sif::info << "Created UDP server for TMTC commanding with listener port " <<
udpBridge->getUdpPort() << std::endl;
#else #else
new TcpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR); new TcpTmTcBridge(objects::TMTC_BRIDGE, objects::CCSDS_PACKET_DISTRIBUTOR);
new TcpTmTcServer(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE); auto tcpServer = new TcpTmTcServer(objects::TMTC_POLLING_TASK, objects::TMTC_BRIDGE);
sif::info << "Created TCP server for TMTC commanding with listener port " <<
tcpServer->getTcpPort() << std::endl;
#endif #endif
/* Test Task */ /* Test Task */

View File

@ -0,0 +1,4 @@
target_sources(${TARGET_NAME} PRIVATE
PlocSupervisorHandler.cpp
PlocUpdater.cpp
)

View File

@ -1,11 +1,12 @@
#ifndef MISSION_DEVICES_PLOCSUPERVISORHANDLER_H_ #ifndef MISSION_DEVICES_PLOCSUPERVISORHANDLER_H_
#define MISSION_DEVICES_PLOCSUPERVISORHANDLER_H_ #define MISSION_DEVICES_PLOCSUPERVISORHANDLER_H_
#include <fsfw/devicehandlers/DeviceHandlerBase.h> #include "devicedefinitions/PlocSupervisorDefinitions.h"
#include <mission/devices/devicedefinitions/PlocSupervisorDefinitions.h>
#include <fsfw_hal/linux/uart/UartComIF.h>
#include <bsp_q7s/memory/SdCardManager.h> #include <bsp_q7s/memory/SdCardManager.h>
#include <fsfw/devicehandlers/DeviceHandlerBase.h>
#include <fsfw_hal/linux/uart/UartComIF.h>
/** /**
* @brief This is the device handler for the supervisor of the PLOC which is programmed by * @brief This is the device handler for the supervisor of the PLOC which is programmed by
* Thales. * Thales.

View File

@ -1,5 +1,6 @@
#include "fsfw/ipc/QueueFactory.h" #include "fsfw/ipc/QueueFactory.h"
#include <mission/devices/PlocUpdater.h> #include "PlocUpdater.h"
#include <fstream> #include <fstream>
#include <filesystem> #include <filesystem>
#include <string> #include <string>

View File

@ -1,6 +1,9 @@
#ifndef MISSION_DEVICES_PLOCUPDATER_H_ #ifndef MISSION_DEVICES_PLOCUPDATER_H_
#define MISSION_DEVICES_PLOCUPDATER_H_ #define MISSION_DEVICES_PLOCUPDATER_H_
#include "OBSWConfig.h"
#include "devicedefinitions/PlocSupervisorDefinitions.h"
#include "fsfw/action/CommandActionHelper.h" #include "fsfw/action/CommandActionHelper.h"
#include "fsfw/action/ActionHelper.h" #include "fsfw/action/ActionHelper.h"
#include "fsfw/action/HasActionsIF.h" #include "fsfw/action/HasActionsIF.h"
@ -11,8 +14,7 @@
#include "bsp_q7s/memory/SdCardManager.h" #include "bsp_q7s/memory/SdCardManager.h"
#include "linux/fsfwconfig/objects/systemObjectList.h" #include "linux/fsfwconfig/objects/systemObjectList.h"
#include "fsfw/tmtcpacket/SpacePacket.h" #include "fsfw/tmtcpacket/SpacePacket.h"
#include "OBSWConfig.h"
#include <mission/devices/devicedefinitions/PlocSupervisorDefinitions.h>
/** /**
* @brief An object of this class can be used to perform the software updates of the PLOC. The * @brief An object of this class can be used to perform the software updates of the PLOC. The

View File

@ -5,6 +5,6 @@ const char* const SW_NAME = "eive";
#define SW_VERSION 1 #define SW_VERSION 1
#define SW_SUBVERSION 6 #define SW_SUBVERSION 6
#define SW_REVISION 0 #define SW_REVISION 1
#endif /* COMMON_CONFIG_OBSWVERSION_H_ */ #endif /* COMMON_CONFIG_OBSWVERSION_H_ */

View File

@ -20,6 +20,7 @@ enum commonClassIds: uint8_t {
SUS_HANDLER, //SUSS SUS_HANDLER, //SUSS
CCSDS_IP_CORE_BRIDGE, //IPCI CCSDS_IP_CORE_BRIDGE, //IPCI
PLOC_UPDATER, //PLUD PLOC_UPDATER, //PLUD
GOM_SPACE_HANDLER, //GOMS
COMMON_CLASS_ID_END // [EXPORT] : [END] COMMON_CLASS_ID_END // [EXPORT] : [END]
}; };

View File

@ -5,6 +5,6 @@
// Use TCP instead of UDP for the TMTC bridge. This allows using the TMTC client locally // Use TCP instead of UDP for the TMTC bridge. This allows using the TMTC client locally
// because UDP packets are not allowed in the VPN // because UDP packets are not allowed in the VPN
#define OBSW_USE_TMTC_TCP_BRIDGE 0 #define OBSW_USE_TMTC_TCP_BRIDGE 1
#endif /* COMMON_CONFIG_COMMONCONFIG_H_ */ #endif /* COMMON_CONFIG_COMMONCONFIG_H_ */

2
fsfw

@ -1 +1 @@
Subproject commit 22e29144b6783a824b310204c76fa413eb94f331 Subproject commit 1ac372cb89fabc868aa9cc6ef024f822c744eaed

View File

@ -12,7 +12,6 @@
namespace CLASS_ID { namespace CLASS_ID {
enum { enum {
CLASS_ID_START = COMMON_CLASS_ID_END, CLASS_ID_START = COMMON_CLASS_ID_END,
GOM_SPACE_HANDLER, //GOMS
SA_DEPL_HANDLER, //SADPL SA_DEPL_HANDLER, //SADPL
SD_CARD_MANAGER, //SDMA SD_CARD_MANAGER, //SDMA
SCRATCH_BUFFER, //SCBU SCRATCH_BUFFER, //SCBU

View File

@ -13,12 +13,10 @@ target_sources(${TARGET_NAME} PUBLIC
Max31865PT1000Handler.cpp Max31865PT1000Handler.cpp
IMTQHandler.cpp IMTQHandler.cpp
PlocMPSoCHandler.cpp PlocMPSoCHandler.cpp
PlocSupervisorHandler.cpp
RadiationSensorHandler.cpp RadiationSensorHandler.cpp
GyroADIS16507Handler.cpp GyroADIS16507Handler.cpp
RwHandler.cpp RwHandler.cpp
StarTrackerHandler.cpp StarTrackerHandler.cpp
PlocUpdater.cpp
) )

View File

@ -1,11 +0,0 @@
#!/bin/bash
echo "Setting up all Q7S ports"
echo "-L 1534:192.168.133.10:1534 for connection to TCF agent"
echo "-L 1535:192.168.133.10:22 for file transfers"
echo "-L 1537:192.168.133.10:7303 to TMTC commanding using TCP"
ssh -L 1534:192.168.133.10:1534 \
-L 1535:192.168.133.10:22 \
-L 1537:192.168.133.10:7303 \
eive@2001:7c0:2018:1099:babe:0:e1fe:f1a5 \
-t 'CONSOLE_PREFIX="[Q7S Tunnel]" /bin/bash'

View File

@ -2,7 +2,7 @@
echo "Setting up all Q7S ports" echo "Setting up all Q7S ports"
echo "-L 1534:192.168.133.10:1534 for connection to TCF agent" echo "-L 1534:192.168.133.10:1534 for connection to TCF agent"
echo "-L 1535:192.168.133.10:22 for file transfers" echo "-L 1535:192.168.133.10:22 for file transfers"
echo "-L 1536:192.168.133.10:7301 to TMTC commanding using UDP" echo "-L 1536:192.168.133.10:7301 for TMTC commanding"
ssh -L 1534:192.168.133.10:1534 \ ssh -L 1534:192.168.133.10:1534 \
-L 1535:192.168.133.10:22 \ -L 1535:192.168.133.10:22 \