mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-05-05 02:20:11 -05:00
restructure signal transmission activity
This commit is contained in:
@@ -24,7 +24,7 @@
|
||||
|
||||
#include <modules/dsn/managers/signalmanager.h>
|
||||
|
||||
|
||||
#include <openspace/util/spicemanager.h>
|
||||
namespace openspace {
|
||||
constexpr const char* _loggerCat = "SignalManager";
|
||||
|
||||
@@ -36,7 +36,6 @@ namespace openspace {
|
||||
{
|
||||
bool dataFilesSuccess = DataFileHelper::checkFileNames(identifier, dictionary, _dataFiles);
|
||||
fileStartTimes = DataFileHelper::getDaysFromFileNames(_dataFiles);
|
||||
//SignalManager::updateSignalData(0, 0);
|
||||
|
||||
return dataFilesSuccess;
|
||||
}
|
||||
@@ -61,14 +60,20 @@ namespace openspace {
|
||||
structSignal.lightTravelTime = 71397.6659308273;
|
||||
|
||||
if (structSignal.direction == "uplink") {
|
||||
structSignal.endTimeExtension = structSignal.lightTravelTime;
|
||||
structSignal.startTransmission = SpiceManager::ref().ephemerisTimeFromDate(structSignal.startTime);
|
||||
structSignal.endTransmission = SpiceManager::ref().ephemerisTimeFromDate(structSignal.endTime);
|
||||
}
|
||||
else if (structSignal.direction == "downlink") {
|
||||
structSignal.startTimeExtension = structSignal.lightTravelTime;
|
||||
structSignal.startTransmission = SpiceManager::ref().ephemerisTimeFromDate(structSignal.startTime) -
|
||||
structSignal.lightTravelTime;
|
||||
structSignal.endTransmission = SpiceManager::ref().ephemerisTimeFromDate(structSignal.endTime) -
|
||||
structSignal.lightTravelTime;;
|
||||
}// if we have both an uplink and a downlink, handle these like two different signals
|
||||
else if (structSignal.direction == "both") {
|
||||
// handle ordinary signal like uplink
|
||||
structSignal.endTimeExtension = structSignal.lightTravelTime;
|
||||
// handle ordinary signal like uplink
|
||||
// structSignal.endTimeExtension = structSignal.lightTravelTime;
|
||||
structSignal.startTransmission = SpiceManager::ref().ephemerisTimeFromDate(structSignal.startTime);
|
||||
structSignal.endTransmission = SpiceManager::ref().ephemerisTimeFromDate(structSignal.endTime);
|
||||
structSignal.direction = "uplink";
|
||||
// Make an extra downlink
|
||||
SignalManager::Signal structSignal2;
|
||||
@@ -78,7 +83,10 @@ namespace openspace {
|
||||
structSignal2.startTime = structSignal.startTime;
|
||||
structSignal2.direction = "downlink";
|
||||
structSignal2.lightTravelTime = 71397.6659308273;
|
||||
structSignal2.startTimeExtension = structSignal.lightTravelTime;
|
||||
structSignal2.startTransmission = SpiceManager::ref().ephemerisTimeFromDate(structSignal.startTime) -
|
||||
structSignal2.lightTravelTime;
|
||||
structSignal2.endTransmission = SpiceManager::ref().ephemerisTimeFromDate(structSignal.endTime) -
|
||||
structSignal2.lightTravelTime;;
|
||||
|
||||
//Add extra signal to vector of signals
|
||||
signalData.signals.push_back(structSignal2);
|
||||
|
||||
@@ -43,12 +43,12 @@ namespace openspace {
|
||||
std::string dishName;
|
||||
std::string spacecraft;
|
||||
std::string direction;
|
||||
std::string startTime;
|
||||
std::string endTime;
|
||||
double startTimeExtension = 0.0;
|
||||
double endTimeExtension = 0.0;
|
||||
std::string startTime; //todo: get rid of?
|
||||
std::string endTime; //todo: get rid of?
|
||||
double startTransmission = 0.0;
|
||||
double endTransmission = 0.0;
|
||||
double timeSinceStart = 0.0;
|
||||
double lightTravelTime;
|
||||
double lightTravelTime = 0.0;
|
||||
};
|
||||
|
||||
static struct SignalData {
|
||||
@@ -72,7 +72,6 @@ namespace openspace {
|
||||
/* updates the loaded signal data from disk */
|
||||
static void updateSignalData(int index, int sizeBuffer);
|
||||
|
||||
|
||||
private:
|
||||
/* A vector with all our datafile paths*/
|
||||
static std::vector<std::string> _dataFiles;
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
#include <openspace/rendering/renderengine.h>
|
||||
#include <openspace/util/updatestructures.h>
|
||||
#include <ghoul/opengl/programobject.h>
|
||||
#include <openspace/util/spicemanager.h>
|
||||
#include <openspace/interaction/navigationhandler.h>
|
||||
|
||||
namespace {
|
||||
@@ -315,7 +314,7 @@ void RenderableSignals::update(const UpdateData& data) {
|
||||
|
||||
SignalManager::Signal currentSignal = SignalManager::signalData.signals[i];
|
||||
if (isSignalActive(currentTime, currentSignal)) {
|
||||
currentSignal.timeSinceStart = currentTime - (Time::convertTime(currentSignal.startTime) - currentSignal.startTimeExtension);
|
||||
currentSignal.timeSinceStart = currentTime - currentSignal.startTransmission;
|
||||
pushSignalDataToVertexArray(currentSignal);
|
||||
}
|
||||
};
|
||||
@@ -344,8 +343,8 @@ void RenderableSignals::update(const UpdateData& data) {
|
||||
// Todo: handle signalIsSending, not only signalIsActive for the signal segments
|
||||
bool RenderableSignals::isSignalActive(double currentTime, SignalManager::Signal signal) {
|
||||
|
||||
double startTimeInSeconds = SpiceManager::ref().ephemerisTimeFromDate(signal.startTime) - signal.startTimeExtension;
|
||||
double endTimeInSeconds = SpiceManager::ref().ephemerisTimeFromDate(signal.endTime) + signal.endTimeExtension;
|
||||
double startTimeInSeconds = signal.startTransmission;
|
||||
double endTimeInSeconds = signal.endTransmission + signal.lightTravelTime;
|
||||
|
||||
if (startTimeInSeconds <= currentTime && endTimeInSeconds >= currentTime)
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user