VieSched++
VieVS VLBI Scheduling Software
VieVS::StationEndposition Class Reference

Information about which station can be used for fillin mode and how much time is available. More...

#include <StationEndposition.h>

Inheritance diagram for VieVS::StationEndposition:
Collaboration diagram for VieVS::StationEndposition:

Public Types

enum  change { change::start, change::end }
 

Public Member Functions

 StationEndposition (unsigned long nsta)
 constructor More...
 
void addPointingVectorAsEndposition (const PointingVector &pv)
 add new endposition More...
 
void checkStationPossibility (const Station &station)
 check if scan is possible for this station More...
 
bool checkStationPossibility (const std::vector< Station > &station)
 check if scan is possible for all stations More...
 
bool getStationPossible (unsigned long staid) const noexcept
 get flag if scan is possible with this station More...
 
bool hasEndposition (unsigned long staid) const noexcept
 check if station has endposition More...
 
unsigned int requiredEndpositionTime (unsigned long staid, bool flag_rigorous=true) const
 get required scan end time More...
 
bool hugeOffset (unsigned long staid) const
 
const std::vector< boost::optional< PointingVector > > & getFinalPosition () const noexcept
 getter for all desired positions at the end of the fillin scans. More...
 
const boost::optional< PointingVector > & getFinalPosition (unsigned long staid) const noexcept
 get final position of station More...
 
bool getStationAvailable (unsigned long staid) const noexcept
 get flag if station is available More...
 
bool everyStationInitialized () const noexcept
 check if every station is initialized More...
 
std::set< unsigned long > getObservedSources (unsigned int time, const SourceList &sourceList) const noexcept
 get observed sources More...
 
unsigned int getEarliestScanStart () const noexcept
 get earliest possible scan start More...
 
void setStationAvailable (const std::vector< Station > &stations)
 set station available flags More...
 
- Public Member Functions inherited from VieVS::VieVS_Object
 VieVS_Object (unsigned long id)
 constructor More...
 
const unsigned long getId () const
 get object id More...
 
bool hasValidId () const
 check if id is valid More...
 
bool hasId (unsigned long id) const
 check if object has specific id More...
 
void setId (unsigned long id)
 set object id More...
 
std::string printId () const
 object id string More...
 

Private Attributes

std::vector< char > stationAvailable_
 saves available state of station More...
 
std::vector< char > stationPossible_
 true if it is possible to use this station More...
 
std::vector< boost::optional< PointingVector > > finalPosition_
 final required end position for all stations More...
 
unsigned int earliestScanStart_ = TimeSystem::duration
 earliest scan start More...
 

Static Private Attributes

static unsigned long nextId = 0
 next id for this object type More...
 

Detailed Description

Information about which station can be used for fillin mode and how much time is available.

The available time is the time between the end of the slew time to the next source and the start of the scan of the next scan. If a station is not participating in all following next scans the available time is the time between the end of the last scan the station was participating and the earliest start of the next scan.

Author
Matthias Schartner
Date
12.08.2017

Member Enumeration Documentation

Author
Matthias Schartner
Enumerator
start 

start

end 

end

Constructor & Destructor Documentation

StationEndposition::StationEndposition ( unsigned long  nsta)
explicit

constructor

Author
Matthias Schartner
Parameters
nstanumber of stations

Member Function Documentation

void StationEndposition::addPointingVectorAsEndposition ( const PointingVector pv)

add new endposition

Author
Matthias Schartner
Parameters
pvendposition pointing vector

Here is the call graph for this function:

void StationEndposition::checkStationPossibility ( const Station station)

check if scan is possible for this station

Author
Matthias Schartner
Parameters
stationstation

Here is the call graph for this function:

Here is the caller graph for this function:

bool StationEndposition::checkStationPossibility ( const std::vector< Station > &  station)

check if scan is possible for all stations

Author
Matthias Schartner
Parameters
stationall stations
Returns
true if scan is possible

Here is the call graph for this function:

bool VieVS::StationEndposition::everyStationInitialized ( ) const
inlinenoexcept

check if every station is initialized

Author
Matthias Schartner
Returns
flag if all stations were initialized

Here is the call graph for this function:

unsigned int VieVS::StationEndposition::getEarliestScanStart ( ) const
inlinenoexcept

get earliest possible scan start

Author
Matthias Schartner
Returns
earliest possible scan start

Here is the call graph for this function:

const std::vector<boost::optional<PointingVector> >& VieVS::StationEndposition::getFinalPosition ( ) const
inlinenoexcept

getter for all desired positions at the end of the fillin scans.

This end positions are the start positions of the following scan. If a station is not participating in the following scans a default pointing vector is used. This information is than also stored in the getStationUnused() function.

Returns
vector of desired end positions per station
const boost::optional<PointingVector>& VieVS::StationEndposition::getFinalPosition ( unsigned long  staid) const
inlinenoexcept

get final position of station

Author
Matthias Schartner
Parameters
staidstation id
Returns
required position of station
std::set< unsigned long > StationEndposition::getObservedSources ( unsigned int  time,
const SourceList sourceList 
) const
noexcept

get observed sources

Author
Matthias Schartner
Parameters
timecurrent scheduling time
sourceListlist of all sources
Returns
all next observed source ids

Here is the call graph for this function:

Here is the caller graph for this function:

bool VieVS::StationEndposition::getStationAvailable ( unsigned long  staid) const
inlinenoexcept

get flag if station is available

Parameters
staidstation id
Returns
flag if station is available
bool VieVS::StationEndposition::getStationPossible ( unsigned long  staid) const
inlinenoexcept

get flag if scan is possible with this station

Author
Matthias Schartner
Parameters
staidstation id
Returns
flag if scan is possible
bool VieVS::StationEndposition::hasEndposition ( unsigned long  staid) const
inlinenoexcept

check if station has endposition

Author
Matthias Schartner
Parameters
staidstation id
Returns
flag if station has endposition

Here is the call graph for this function:

bool StationEndposition::hugeOffset ( unsigned long  staid) const
Parameters
staid
Returns

Here is the caller graph for this function:

unsigned int StationEndposition::requiredEndpositionTime ( unsigned long  staid,
bool  flag_rigorous = true 
) const

get required scan end time

Author
Matthias Schartner

if rigorous check is false: use earliest_scan_start_time instead of final_position_time in case the difference is larger than 20 minutes

Parameters
staidstation id
flag_rigorousrigorous check
Returns
latest possible scan end time

Here is the call graph for this function:

Here is the caller graph for this function:

void StationEndposition::setStationAvailable ( const std::vector< Station > &  stations)

set station available flags

Author
Matthias Schartner
Parameters
stationslist of stations

Here is the caller graph for this function:

Member Data Documentation

unsigned int VieVS::StationEndposition::earliestScanStart_ = TimeSystem::duration
private

earliest scan start

std::vector<boost::optional<PointingVector> > VieVS::StationEndposition::finalPosition_
private

final required end position for all stations

unsigned long StationEndposition::nextId = 0
staticprivate

next id for this object type

std::vector<char> VieVS::StationEndposition::stationAvailable_
private

saves available state of station

std::vector<char> VieVS::StationEndposition::stationPossible_
private

true if it is possible to use this station


The documentation for this class was generated from the following files: