Skip to content

Commit

Permalink
cleaned new dependent variables interface code.
Browse files Browse the repository at this point in the history
  • Loading branch information
SamFayolle committed Oct 23, 2024
1 parent 7c045fe commit d5fbcc0
Show file tree
Hide file tree
Showing 11 changed files with 16 additions and 810 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,8 @@ class ObservationDependentVariableSettings
const LinkEndType linkEndType = unidentified_link_end,
const LinkEndId originatingLinkEndId = LinkEndId( "", "" ),
const LinkEndType originatingLinkEndType = unidentified_link_end ):
variableType_( variableType ), linkEndId_( linkEndId ), linkEndType_( linkEndType ), originatingLinkEndId_( originatingLinkEndId ), originatingLinkEndType_( originatingLinkEndType )
{

}
variableType_( variableType ), linkEndId_( linkEndId ), linkEndType_( linkEndType ),
originatingLinkEndId_( originatingLinkEndId ), originatingLinkEndType_( originatingLinkEndType ){ }

virtual ~ObservationDependentVariableSettings( ){ }

Expand Down Expand Up @@ -98,12 +96,12 @@ class ObservationDependentVariableSettings
return identifier;
}

virtual std::string getIdentifier( ) // = 0;
virtual std::string getIdentifier( )
{
return getBaseIdentifier( );
}

virtual bool areSettingsCompatible( const std::shared_ptr< ObservationDependentVariableSettings > otherSettings ) //= 0;
virtual bool areSettingsCompatible( const std::shared_ptr< ObservationDependentVariableSettings > otherSettings )
{
return areBaseSettingsCompatible( otherSettings, true );
}
Expand Down Expand Up @@ -134,18 +132,9 @@ class ObservationDependentVariableSettings
&& ( ( originatingLinkEndId_ == otherSettings->linkEndId_ ||
originatingLinkEndId_ == LinkEndId( "", "" ) || otherSettings->linkEndId_ == LinkEndId( "", "" ) ) ) );

if ( !directLinksMatch && ( !revertedLinksAllowed || !revertedLinksMatch ) /*( linkEndType_ != otherSettings->linkEndType_ && linkEndType_ != unidentified_link_end && otherSettings->linkEndType_ != unidentified_link_end )
|| ( ( linkEndId_ != otherSettings->linkEndId_ && linkEndId_ != LinkEndId( "", "" ) && otherSettings->linkEndId_ != LinkEndId( "", "" ) ) )
|| ( ( originatingLinkEndType_ != otherSettings->originatingLinkEndType_ &&
originatingLinkEndType_ != unidentified_link_end && otherSettings->originatingLinkEndType_ != unidentified_link_end ) )
|| ( ( originatingLinkEndId_ != otherSettings->originatingLinkEndId_ &&
originatingLinkEndId_ != LinkEndId( "", "" ) && otherSettings->originatingLinkEndId_ != LinkEndId( "", "" ) ) )*/ )
if ( !directLinksMatch && ( !revertedLinksAllowed || !revertedLinksMatch ) )
{
// isCompatible = false;
// if ( !revertedLinksAllowed || !revertedLinksMatch )
// {
isCompatible = false;
// }
isCompatible = false;
}
}

Expand Down Expand Up @@ -180,27 +169,8 @@ class StationAngleObservationDependentVariableSettings: public ObservationDepend
const LinkEndType originatingLinkEndRole = unidentified_link_end,
const IntegratedObservationPropertyHandling integratedObservableHandling = interval_start ):
ObservationDependentVariableSettings( variableType, relevantLinkEnd, linkEndRole, originatingLinkEndId, originatingLinkEndRole ),
// relevantLinkEnd_( relevantLinkEnd ), linkEndRole_( linkEndRole ),
integratedObservableHandling_( integratedObservableHandling ),
// originatingLinkEndRole_( originatingLinkEndRole ),
isLinkEndDefined_( ( relevantLinkEnd != LinkEndId( "", "" ) ? true : false ) )
{

}

// StationAngleObservationDependentVariableSettings(
// const ObservationDependentVariables variableType,
// const LinkEndType linkEndRole,
// const IntegratedObservationPropertyHandling integratedObservableHandling = interval_start, // interval_undefined,
// const LinkEndType originatingLinkEndRole = unidentified_link_end ):
// ObservationDependentVariableSettings( variableType, LinkEndId( "", "" ), linkEndRole, LinkEndId( "", "" ), originatingLinkEndRole ),
//// linkEndRole_( linkEndRole ),
// integratedObservableHandling_( integratedObservableHandling ),
//// originatingLinkEndRole_( originatingLinkEndRole ),
// isLinkEndDefined_( false )
// {
//
// }
isLinkEndDefined_( ( relevantLinkEnd != LinkEndId( "", "" ) ? true : false ) ){ }

std::string getIdentifier( )
{
Expand Down Expand Up @@ -236,14 +206,8 @@ class StationAngleObservationDependentVariableSettings: public ObservationDepend
return isCompatible;
}

// LinkEndId relevantLinkEnd_;

// LinkEndType linkEndRole_;

IntegratedObservationPropertyHandling integratedObservableHandling_;

// LinkEndType originatingLinkEndRole_;

bool isLinkEndDefined_;

};
Expand All @@ -257,10 +221,9 @@ class InterlinkObservationDependentVariableSettings: public ObservationDependent
const LinkEndType endLinkEndType = unidentified_link_end,
const LinkEndId startLinkEndId = LinkEndId( "", "" ),
const LinkEndId endLinkEndId = LinkEndId( "", "" ),
const IntegratedObservationPropertyHandling integratedObservableHandling = interval_start, // interval_undefined,
const IntegratedObservationPropertyHandling integratedObservableHandling = interval_start,
const std::string relativeBody = "" ):
ObservationDependentVariableSettings( variableType, endLinkEndId, endLinkEndType, startLinkEndId, startLinkEndType ),
// startLinkEnd_( startLinkEnd ), endLinkEnd_( endLinkEnd ),
integratedObservableHandling_( integratedObservableHandling ),
relativeBody_( relativeBody ){ }

Expand Down Expand Up @@ -311,10 +274,6 @@ class InterlinkObservationDependentVariableSettings: public ObservationDependent
return isCompatible;
}

// LinkEndType startLinkEnd_;

// LinkEndType endLinkEnd_;

IntegratedObservationPropertyHandling integratedObservableHandling_;

std::string relativeBody_;
Expand All @@ -334,11 +293,6 @@ class AncillaryObservationDependentVariableSettings: public ObservationDependent
isObservableTypeCompatible_ = getIsObservableTypeCompatibleFunction( variableType );
}

// AncillaryObservationDependentVariableSettings(
// const ObservationDependentVariables variableType,
// const ObservableType observableTypes ):
// ObservationDependentVariableSettings( variableType ), observableTypes_( std::vector< ObservableType >( { observableTypes } ) ){ }

~AncillaryObservationDependentVariableSettings( ){ }

std::string getIdentifier( )
Expand Down Expand Up @@ -371,25 +325,6 @@ class AncillaryObservationDependentVariableSettings: public ObservationDependent
{
isCompatible = false;
}
// if ( )
// for ( unsigned int k = 0 ; k )
// if ( !areBaseSettingsCompatible( otherSettings ) )
// {
// isCompatible = false;
// }
// else
// {
// if ( ( integratedObservableHandling_ != interlinkSettings->integratedObservableHandling_ )
// && ( integratedObservableHandling_ != interval_undefined )
// && ( interlinkSettings->integratedObservableHandling_ != interval_undefined ) )
// {
// isCompatible = false;
// }
// if ( ( relativeBody_ != interlinkSettings->relativeBody_ ) && ( relativeBody_ != "" ) && ( interlinkSettings->relativeBody_ != "" ) )
// {
// isCompatible = false;
// }
// }
}

return isCompatible;
Expand Down Expand Up @@ -526,12 +461,6 @@ inline std::shared_ptr< ObservationDependentVariableSettings > retransmissionDel
return std::make_shared< AncillaryObservationDependentVariableSettings >( retransmission_delays_dependent_variable, observableType );
}




// type -> always needs to be provided
// linkEndsId

}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -454,133 +454,30 @@ void clearNoiseFunctionFromObservationSimulationSettings(
}
}

// NOT USED ANYWHERE? REMOVE?
//void addDependentVariables(
// const std::vector< std::shared_ptr< ObservationDependentVariableSettings > > settingsList,
// const SystemOfBodies& bodies );

template< typename TimeType = double >
void addDependentVariableToSingleObservationSimulationSettings(
const std::shared_ptr< ObservationSimulationSettings< TimeType > >& observationSimulationSettings,
const std::vector< std::shared_ptr< ObservationDependentVariableSettings > >& dependentVariableList,
const SystemOfBodies& bodies )
{
std::cout << "---------------------------" << std::endl;
std::vector< std::shared_ptr< ObservationDependentVariableSettings > > extendedDependentVariablesList;

// Retrieve interlinks information for current observable type and link ends
ObservableType observableType = observationSimulationSettings->getObservableType( );
LinkEnds linkEnds = observationSimulationSettings->getLinkEnds( ).linkEnds_;
std::cout << "observable type: " << observableType << std::endl;
std::vector< std::pair< std::pair< LinkEndType, LinkEndId >, std::pair< LinkEndType, LinkEndId > > > interlinksInSet = getInterlinks( observableType, linkEnds );


// Parse all dependent variable settings
for ( auto settings : dependentVariableList )
{
// std::cout << "dependent variable type: " << settings->variableType_ << std::endl;
// // Get interlink requirements from dependent variable settings
// std::pair< std::pair< LinkEndType, LinkEndId >, std::pair< LinkEndType, LinkEndId > > interlinksSettings =
// std::make_pair( std::make_pair( settings->linkEndType_, settings->linkEndId_ ), std::make_pair( settings->originatingLinkEndType_, settings->originatingLinkEndId_ ) );
// std::cout << "interlink settings: " << interlinksSettings.first.first << " : " << interlinksSettings.first.second.bodyName_ << ", " << interlinksSettings.first.second.stationName_ << " - "
// << interlinksSettings.second.first << " : " << interlinksSettings.second.second.bodyName_ << ", " << interlinksSettings.second.second.stationName_ << std::endl;
//
// std::vector< std::pair< std::pair< LinkEndType, LinkEndId >, std::pair< LinkEndType, LinkEndId > > > interlinksToCreateList;
// for ( auto interlink : interlinksInSet )
// {
// // PRINT FOR TEST
// std::cout << "interlink: ";
// std::cout << interlink.first.first << " : " << interlink.first.second.bodyName_ << ", " << interlink.first.second.stationName_ << " - "
// << interlink.second.first << " : " << interlink.second.second.bodyName_ << ", " << interlink.second.second.stationName_ << std::endl;
// std::cout << "\n\n";
//
// bool directLinksMatch =
// ( interlink.first.first == interlinksSettings.first.first || interlinksSettings.first.first == unidentified_link_end )// Check link end type start interlink
// && ( interlink.first.second == interlinksSettings.first.second || interlinksSettings.first.second == LinkEndId( "", "" ) ) // Check link end id start interlink
// && ( interlink.second.first == interlinksSettings.second.first || interlinksSettings.second.first == unidentified_link_end ) // Check link end type end interlink
// && ( interlink.second.second == interlinksSettings.second.second || interlinksSettings.second.second == LinkEndId( "", "" ) ); // Check link end id start interlink
// bool revertedLinksMatch =
// ( interlink.second.first == interlinksSettings.first.first || interlinksSettings.first.first == unidentified_link_end )// Check link end type start interlink
// && ( interlink.second.second == interlinksSettings.first.second || interlinksSettings.first.second == LinkEndId( "", "" ) ) // Check link end id start interlink
// && ( interlink.first.first == interlinksSettings.second.first || interlinksSettings.second.first == unidentified_link_end ) // Check link end type end interlink
// && ( interlink.first.second == interlinksSettings.second.second || interlinksSettings.second.second == LinkEndId( "", "" ) ); // Check link end id start interlink
//
// std::cout << "directLinksMatch: " << directLinksMatch << std::endl;
// std::cout << "revertedLinksMatch: " << revertedLinksMatch << std::endl;
//
// if ( directLinksMatch || revertedLinksMatch )
// {
// if ( !isObservationDependentVariableGroundStationProperty( settings ) )
// {
// interlinksToCreateList.push_back( interlink );
// }
// else
// {
// // if station defined for start link end
// if ( interlink.first.second.stationName_ != "" )
// {
// interlinksToCreateList.push_back( interlink );
// }
// // if station only defined for end link end
// else if ( interlink.second.second.stationName_ != "" )
// {
// // Reverse link order
// interlinksToCreateList.push_back( std::make_pair( interlink.second, interlink.first ) );
// }
// }
// }
// }
//
//
//
// // Create dependent variables
// for ( auto interlink : interlinksToCreateList )
// {
// std::cout << "interlinks to be created: ";
// std::cout << interlink.first.first << " : " << interlink.first.second.bodyName_ << ", " << interlink.first.second.stationName_ << " - "
// << interlink.second.first << " : " << interlink.second.second.bodyName_ << ", " << interlink.second.second.stationName_ << std::endl;
// std::cout << "\n\n";
//
//// std::shared_ptr< ObservationDependentVariableSettings > completeSettings;
//// if ( std::dynamic_pointer_cast< StationAngleObservationDependentVariableSettings >( settings ) != nullptr )
//// {
//// std::shared_ptr< StationAngleObservationDependentVariableSettings > stationAngleSettings =
//// std::dynamic_pointer_cast< StationAngleObservationDependentVariableSettings >( settings );
//// completeSettings = std::make_shared< StationAngleObservationDependentVariableSettings >(
//// settings->variableType_, interlink.first.second, interlink.first.first,
//// stationAngleSettings->integratedObservableHandling_, interlink.second.first );
//// completeSettings->originatingLinkEndId_ = interlink.second.second;
//// }
//// else if ( std::dynamic_pointer_cast< InterlinkObservationDependentVariableSettings >( settings ) != nullptr )
//// {
//// std::shared_ptr< InterlinkObservationDependentVariableSettings > interlinkSettings =
//// std::dynamic_pointer_cast< InterlinkObservationDependentVariableSettings >( settings );
//// completeSettings = std::make_shared< InterlinkObservationDependentVariableSettings >(
//// settings->variableType_, interlink.second.first, interlink.first.first, interlinkSettings->integratedObservableHandling_,
//// interlinkSettings->relativeBody_ );
//// completeSettings->linkEndId_ = interlink.first.second;
//// completeSettings->originatingLinkEndId_ = interlink.second.second;
//// }
//
// std::shared_ptr< ObservationDependentVariableSettings > completeSettings = createCompleteObservationDependentVariableSettings(
// settings, interlink.first.first, interlink.first.second, interlink.second.first, interlink.second.second );
//
// extendedDependentVariablesList.push_back( completeSettings );
// }

std::vector< std::shared_ptr< ObservationDependentVariableSettings > > allSettingsToCreate =
createAllCompatibleDependentVariableSettings( observableType, linkEnds, settings );
for ( auto it : allSettingsToCreate )
{
extendedDependentVariablesList.push_back( it );
}
}

std::cout << "extendedDependentVariablesList: " << extendedDependentVariablesList.size( ) << std::endl;

observationSimulationSettings->getDependentVariableCalculator( )->addDependentVariables(
extendedDependentVariablesList, bodies );

std::cout << "---------------------------" << "\n\n";
observationSimulationSettings->getDependentVariableCalculator( )->addDependentVariables( extendedDependentVariablesList, bodies );
}

template< typename TimeType = double >
Expand Down
Loading

0 comments on commit d5fbcc0

Please sign in to comment.