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

representation of the VLBI scan time More...

#include <ScanTimes.h>

Inheritance diagram for VieVS::ScanTimes:
Collaboration diagram for VieVS::ScanTimes:

Public Types

enum  AlignmentAnchor { AlignmentAnchor::start, AlignmentAnchor::end, AlignmentAnchor::individual }
 observation time alignment anchor More...
 

Public Member Functions

 ScanTimes (unsigned int nsta)
 constructor More...
 
void setEndOfLastScan (const std::vector< unsigned int > &endOfLastScan) noexcept
 sets the endtime of the last scan More...
 
bool updateAfterFillinmode (int idx, unsigned int endOfLastScan, unsigned int fieldSystem, unsigned int slewTime, unsigned int preobTime) noexcept
 update times after fillin mode scan More...
 
void addTimes (int idx, unsigned int fieldSystem, unsigned int slew, unsigned int preob) noexcept
 adds the times for an element More...
 
void giveNewId ()
 set new id More...
 
const std::vector< unsigned int > getEndOfSlewTimes () const noexcept
 get end of slew times More...
 
void removeElement (int idx) noexcept
 removes an element More...
 
unsigned int getFieldSystemDuration (int idx) const noexcept
 get field system duration More...
 
unsigned int getSlewDuration (int idx) const noexcept
 get slew duration More...
 
unsigned int getIdleDuration (int idx) const noexcept
 get idle duration More...
 
unsigned int getPreobDuration (int idx) const noexcept
 get preob duration More...
 
unsigned int getObservingDuration (int idx) const noexcept
 get observing duration More...
 
unsigned int getObservingDuration (unsigned long idx1, unsigned long idx2) const noexcept
 get observing duration between two stations More...
 
unsigned int getObservingDuration () const noexcept
 get total observing duration More...
 
unsigned int getScanDuration () const noexcept
 get total scan duration More...
 
unsigned int getFieldSystemTime (int idx, Timestamp ts=Timestamp::start) const noexcept
 get field system time More...
 
unsigned int getSlewTime (int idx, Timestamp ts=Timestamp::start) const noexcept
 get slew time More...
 
unsigned int getIdleTime (int idx, Timestamp ts=Timestamp::start) const noexcept
 get idle time More...
 
unsigned int getPreobTime (int idx, Timestamp ts=Timestamp::start) const noexcept
 get preob time More...
 
unsigned int getObservingTime (int idx, Timestamp ts=Timestamp::start) const noexcept
 get observing time More...
 
unsigned int getObservingTime (int idx1, int idx2, Timestamp ts=Timestamp::start) const noexcept
 get observing time between two stations More...
 
unsigned int getObservingTime (Timestamp ts=Timestamp::start) const noexcept
 get total observing time More...
 
unsigned int getScanTime (Timestamp ts=Timestamp::start) const noexcept
 get total scan time More...
 
void alignStartTimes () noexcept
 align start times More...
 
void setObservingStarts (unsigned int scanStart) noexcept
 set observing start time More...
 
void setObservingStarts (const std::vector< unsigned int > &scanStart) noexcept
 set observing start time if they are different for the stations More...
 
void setSlewTime (int idx, unsigned int new_slewtime) noexcept
 updates the slewtime of one element More...
 
void setObservingTimes (const std::vector< unsigned int > &scanTimes) noexcept
 adds scan times to each element More...
 
void setObservingTimes (unsigned int scanTimes) noexcept
 set observing times More...
 
void setObservingTime (int idx, unsigned int time, Timestamp ts)
 set observing time More...
 
bool reduceObservingTime (int idx, unsigned int maxObsTime, Timestamp ts)
 reduce observing time More...
 
void addTagalongStationTime (const VieVS::PointingVector &pv_start, const VieVS::PointingVector &pv_end, unsigned int slewtime, unsigned int currentTime, unsigned int fieldSystem, unsigned int preob)
 add tagalong station times More...
 
bool setPreobTime (const std::vector< unsigned int > &preob)
 set preob time for all stations More...
 
bool setPreobTime (int idx, unsigned int preob)
 set preob time for one station More...
 
int removeUnnecessaryObservingTime (Timestamp ts)
 remove unnecessary observing time 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...
 

Static Public Member Functions

static void setAlignmentAnchor (AlignmentAnchor newAnchor)
 set observation time alignment anchor More...
 
static AlignmentAnchor getAlignmentAnchor ()
 get alignment anchor More...
 

Private Member Functions

void removeIdleTime ()
 remove idle times More...
 

Private Attributes

std::vector< unsigned int > endOfLastScan_
 end of last scan More...
 
std::vector< unsigned int > endOfFieldSystemTime_
 end of setup time More...
 
std::vector< unsigned int > endOfSlewTime_
 end of slew time More...
 
std::vector< unsigned int > endOfIdleTime_
 end of idle time More...
 
std::vector< unsigned int > endOfPreobTime_
 end of preob time More...
 
std::vector< unsigned int > endOfObservingTime_
 end of scan time More...
 
std::vector< unsigned int > endOfPostobTime_
 end of postob time More...
 

Static Private Attributes

static unsigned long nextId = 0
 next id for this object type More...
 
static AlignmentAnchor anchor = ScanTimes::AlignmentAnchor::start
 scan alignment anchor More...
 

Detailed Description

representation of the VLBI scan time

all times are stored in seconds since session start

Author
Matthias Schartner
Date
29.06.2017

Member Enumeration Documentation

observation time alignment anchor

Author
Matthias Schartner
Enumerator
start 

align start time

end 

align end time

individual 

do not align observations

Constructor & Destructor Documentation

ScanTimes::ScanTimes ( unsigned int  nsta)
explicit

constructor

Author
Matthias Schartner
Parameters
nstanumber of stations

Here is the caller graph for this function:

Member Function Documentation

void ScanTimes::addTagalongStationTime ( const VieVS::PointingVector pv_start,
const VieVS::PointingVector pv_end,
unsigned int  slewtime,
unsigned int  currentTime,
unsigned int  fieldSystem,
unsigned int  preob 
)

add tagalong station times

Author
Matthias Schartner
Parameters
pv_startstart pointing vector
pv_endend pointing vector
slewtimeslew time in seconds
currentTimecurrent time of antenna
fieldSystemfield system time in seconds
preobcalibration time in seconds

Here is the call graph for this function:

Here is the caller graph for this function:

void ScanTimes::addTimes ( int  idx,
unsigned int  fieldSystem,
unsigned int  slew,
unsigned int  preob 
)
noexcept

adds the times for an element

Author
Matthias Schartner
Parameters
idxindex of which element should be updated
fieldSystemfield system time in seconds
slewslew time in seconds
preobcalibration time in seconds

Here is the caller graph for this function:

void ScanTimes::alignStartTimes ( )
noexcept

align start times

Author
Matthias Schartner

Here is the call graph for this function:

Here is the caller graph for this function:

static AlignmentAnchor VieVS::ScanTimes::getAlignmentAnchor ( )
inlinestatic

get alignment anchor

Author
Matthias Schartner
Returns
alignemnt anchor

Here is the call graph for this function:

Here is the caller graph for this function:

const std::vector<unsigned int> VieVS::ScanTimes::getEndOfSlewTimes ( ) const
inlinenoexcept

get end of slew times

Author
Matthias Schartner
Returns
end of slew times for each station

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned int VieVS::ScanTimes::getFieldSystemDuration ( int  idx) const
inlinenoexcept

get field system duration

Author
Matthias Schartner
Parameters
idxindex
Returns
field system duration

Here is the caller graph for this function:

unsigned int VieVS::ScanTimes::getFieldSystemTime ( int  idx,
Timestamp  ts = Timestamp::start 
) const
inlinenoexcept

get field system time

Author
Matthias Schartner
Parameters
idxindex
tstime stamp
Returns
field system time

Here is the caller graph for this function:

unsigned int VieVS::ScanTimes::getIdleDuration ( int  idx) const
inlinenoexcept

get idle duration

Author
Matthias Schartner
Parameters
idxindex
Returns
idle duration

Here is the caller graph for this function:

unsigned int VieVS::ScanTimes::getIdleTime ( int  idx,
Timestamp  ts = Timestamp::start 
) const
inlinenoexcept

get idle time

Author
Matthias Schartner
Parameters
idxindex
tstime stamp
Returns
idle time
unsigned int VieVS::ScanTimes::getObservingDuration ( int  idx) const
inlinenoexcept

get observing duration

Author
Matthias Schartner
Parameters
idxindex
Returns
observing duration

Here is the caller graph for this function:

unsigned int VieVS::ScanTimes::getObservingDuration ( unsigned long  idx1,
unsigned long  idx2 
) const
inlinenoexcept

get observing duration between two stations

Author
Matthias Schartner
Parameters
idx1index of first station
idx2index of second station
Returns
observing duration between two stations
unsigned int VieVS::ScanTimes::getObservingDuration ( ) const
inlinenoexcept

get total observing duration

Author
Matthias Schartner
Returns
total observing duration

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned int VieVS::ScanTimes::getObservingTime ( int  idx,
Timestamp  ts = Timestamp::start 
) const
inlinenoexcept

get observing time

Author
Matthias Schartner
Parameters
idxindex
tstime stamp
Returns
observing time

Here is the caller graph for this function:

unsigned int VieVS::ScanTimes::getObservingTime ( int  idx1,
int  idx2,
Timestamp  ts = Timestamp::start 
) const
inlinenoexcept

get observing time between two stations

Author
Matthias Schartner
Parameters
idx1index of first station
idx2index of second station
tstime stamp
Returns
observing time
unsigned int VieVS::ScanTimes::getObservingTime ( Timestamp  ts = Timestamp::start) const
inlinenoexcept

get total observing time

Author
Matthias Schartner
Parameters
tstime stamp
Returns
total observing time
unsigned int VieVS::ScanTimes::getPreobDuration ( int  idx) const
inlinenoexcept

get preob duration

Author
Matthias Schartner
Parameters
idxindex
Returns
preob duration

Here is the caller graph for this function:

unsigned int VieVS::ScanTimes::getPreobTime ( int  idx,
Timestamp  ts = Timestamp::start 
) const
inlinenoexcept

get preob time

Author
Matthias Schartner
Parameters
idxindex
tstime stamp
Returns
preob time

Here is the caller graph for this function:

unsigned int VieVS::ScanTimes::getScanDuration ( ) const
inlinenoexcept

get total scan duration

Author
Matthias Schartner
Returns
total scan duration

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned int VieVS::ScanTimes::getScanTime ( Timestamp  ts = Timestamp::start) const
inlinenoexcept

get total scan time

Author
Matthias Schartner
Parameters
tstime stamp
Returns
total scan time

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned int VieVS::ScanTimes::getSlewDuration ( int  idx) const
inlinenoexcept

get slew duration

Author
Matthias Schartner
Parameters
idxindex
Returns
slew duration

Here is the caller graph for this function:

unsigned int VieVS::ScanTimes::getSlewTime ( int  idx,
Timestamp  ts = Timestamp::start 
) const
inlinenoexcept

get slew time

Author
Matthias Schartner
Parameters
idxindex
tstime stamp
Returns
slew time

Here is the caller graph for this function:

void VieVS::ScanTimes::giveNewId ( )
inline

set new id

Author
Matthias Schartner

Here is the call graph for this function:

bool ScanTimes::reduceObservingTime ( int  idx,
unsigned int  maxObsTime,
Timestamp  ts 
)

reduce observing time

Author
Matthias Schartner
Parameters
idxindex
maxObsTimemaximum observing time
tstime stamp
Returns
true if time was reduced, otherwise false

Here is the call graph for this function:

Here is the caller graph for this function:

void ScanTimes::removeElement ( int  idx)
noexcept

removes an element

Parameters
idxindex of the element that should be removed

Here is the call graph for this function:

Here is the caller graph for this function:

void ScanTimes::removeIdleTime ( )
private

remove idle times

Author
Matthias Schartner

Here is the call graph for this function:

Here is the caller graph for this function:

int ScanTimes::removeUnnecessaryObservingTime ( Timestamp  ts)

remove unnecessary observing time

Author
Matthias Schartner
Parameters
tstime stamp
Returns
index where observing time was removed

Here is the call graph for this function:

Here is the caller graph for this function:

static void VieVS::ScanTimes::setAlignmentAnchor ( AlignmentAnchor  newAnchor)
inlinestatic

set observation time alignment anchor

Author
Matthias Schartner
Parameters
newAnchoralignment anchor

Here is the caller graph for this function:

void VieVS::ScanTimes::setEndOfLastScan ( const std::vector< unsigned int > &  endOfLastScan)
inlinenoexcept

sets the endtime of the last scan

Author
Matthias Schartner

this is simultaneously the start time of this new scan

Parameters
endOfLastScanend time of last scan in seconds since session start

Here is the caller graph for this function:

void ScanTimes::setObservingStarts ( unsigned int  scanStart)
noexcept

set observing start time

Author
Matthias Schartner
Parameters
scanStartstart time

Here is the call graph for this function:

Here is the caller graph for this function:

void VieVS::ScanTimes::setObservingStarts ( const std::vector< unsigned int > &  scanStart)
noexcept

set observing start time if they are different for the stations

Author
Helene Wolf
Parameters
scanTimesnew observing times
void ScanTimes::setObservingTime ( int  idx,
unsigned int  time,
Timestamp  ts 
)

set observing time

Author
Matthias Schartner
Parameters
idxindex
timenew observing time
tstime stamp

Here is the call graph for this function:

Here is the caller graph for this function:

void VieVS::ScanTimes::setObservingTimes ( const std::vector< unsigned int > &  scanTimes)
noexcept

adds scan times to each element

Author
Matthias Schartner

Order of the scan times must be the same as the order of the element

Parameters
scanTimesall scan times in seconds

Here is the caller graph for this function:

void ScanTimes::setObservingTimes ( unsigned int  scanTimes)
noexcept

set observing times

Author
Matthias Schartner
Parameters
scanTimesnew observing times

Here is the call graph for this function:

bool VieVS::ScanTimes::setPreobTime ( const std::vector< unsigned int > &  preob)

set preob time for all stations

Author
Matthias Schartner
Parameters
preobpreob time
Returns
true if value was valid, otherwise false

Here is the caller graph for this function:

bool ScanTimes::setPreobTime ( int  idx,
unsigned int  preob 
)

set preob time for one station

Author
Matthias Schartner
Parameters
idxindex
preobpreob time
Returns
true if value was valid, otherwise false
void ScanTimes::setSlewTime ( int  idx,
unsigned int  new_slewtime 
)
noexcept

updates the slewtime of one element

Author
Matthias Schartner
Parameters
idxindex of the element whichs slewtime is chanded
new_slewtimenew slew time in seconds

Here is the call graph for this function:

Here is the caller graph for this function:

bool VieVS::ScanTimes::updateAfterFillinmode ( int  idx,
unsigned int  endOfLastScan,
unsigned int  fieldSystem,
unsigned int  slewTime,
unsigned int  preobTime 
)
inlinenoexcept

update times after fillin mode scan

Author
Matthias Schartner
Parameters
idxindex
endOfLastScanend of last scan
fieldSystemfield system time in seconds
slewTimeslew time in seconds
preobTimepreob time in seconds
Returns
true if times are valid, otherwise false

Here is the call graph for this function:

Member Data Documentation

scan alignment anchor

std::vector<unsigned int> VieVS::ScanTimes::endOfFieldSystemTime_
private

end of setup time

std::vector<unsigned int> VieVS::ScanTimes::endOfIdleTime_
private

end of idle time

std::vector<unsigned int> VieVS::ScanTimes::endOfLastScan_
private

end of last scan

std::vector<unsigned int> VieVS::ScanTimes::endOfObservingTime_
private

end of scan time

std::vector<unsigned int> VieVS::ScanTimes::endOfPostobTime_
private

end of postob time

std::vector<unsigned int> VieVS::ScanTimes::endOfPreobTime_
private

end of preob time

std::vector<unsigned int> VieVS::ScanTimes::endOfSlewTime_
private

end of slew time

unsigned long ScanTimes::nextId = 0
staticprivate

next id for this object type


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