2021-06-30 15:18:41 +02:00
|
|
|
#include "obsw.h"
|
|
|
|
#include "OBSWVersion.h"
|
2021-07-24 15:13:56 +02:00
|
|
|
#include "OBSWConfig.h"
|
2021-06-30 15:18:41 +02:00
|
|
|
#include "InitMission.h"
|
2021-07-29 16:31:04 +02:00
|
|
|
#include "watchdogConf.h"
|
2021-07-24 13:47:09 +02:00
|
|
|
|
2021-06-30 15:18:41 +02:00
|
|
|
#include "fsfw/tasks/TaskFactory.h"
|
2021-07-24 13:47:09 +02:00
|
|
|
#include "fsfw/FSFWVersion.h"
|
|
|
|
|
2021-06-30 15:18:41 +02:00
|
|
|
#include <iostream>
|
2021-07-29 16:31:04 +02:00
|
|
|
#include <filesystem>
|
|
|
|
|
|
|
|
static int OBSW_ALREADY_RUNNING = -2;
|
2021-06-30 15:18:41 +02:00
|
|
|
|
|
|
|
int obsw::obsw() {
|
|
|
|
std::cout << "-- EIVE OBSW --" << std::endl;
|
2021-07-19 12:44:43 +02:00
|
|
|
#if BOARD_TE0720 == 0
|
2021-06-30 15:18:41 +02:00
|
|
|
std::cout << "-- Compiled for Linux (Xiphos Q7S) --" << std::endl;
|
|
|
|
#else
|
|
|
|
std::cout << "-- Compiled for Linux (TE0720) --" << std::endl;
|
|
|
|
#endif
|
2021-08-09 11:27:08 +02:00
|
|
|
std::cout << "-- OBSW v" << SW_VERSION << "." << SW_SUBVERSION <<
|
2021-07-24 15:17:54 +02:00
|
|
|
"." << SW_REVISION << ", FSFW v" << FSFW_VERSION << "." << FSFW_SUBVERSION << "." <<
|
2021-07-24 13:47:09 +02:00
|
|
|
FSFW_REVISION << "--" << std::endl;
|
2021-06-30 15:18:41 +02:00
|
|
|
std::cout << "-- " << __DATE__ << " " << __TIME__ << " --" << std::endl;
|
|
|
|
|
2021-07-29 13:07:07 +02:00
|
|
|
#if Q7S_CHECK_FOR_ALREADY_RUNNING_IMG == 1
|
2021-07-29 16:31:04 +02:00
|
|
|
// Check special file here. This file is created or deleted by the eive-watchdog application
|
|
|
|
// or systemd service!
|
|
|
|
if(std::filesystem::exists(watchdog::RUNNING_FILE_NAME)) {
|
|
|
|
sif::warning << "File " << watchdog::RUNNING_FILE_NAME << " exists so the software might "
|
|
|
|
"already be running. Aborting.." << std::endl;
|
|
|
|
return OBSW_ALREADY_RUNNING;
|
|
|
|
}
|
2021-07-29 13:07:07 +02:00
|
|
|
#endif
|
2021-06-30 15:18:41 +02:00
|
|
|
initmission::initMission();
|
|
|
|
|
|
|
|
for(;;) {
|
|
|
|
/* Suspend main thread by sleeping it. */
|
|
|
|
TaskFactory::delayTask(5000);
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|