restructure signal transmission activity

This commit is contained in:
Lovisa Hassler
2018-12-06 16:15:50 -05:00
parent 06c0ac8104
commit 391e0a7033
3 changed files with 23 additions and 17 deletions
+15 -7
View File
@@ -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);
+5 -6
View File
@@ -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;
+3 -4
View File
@@ -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;