13#ifndef HLCC_TELIF_ELTPK_DATACONTEXT_HPP
14#define HLCC_TELIF_ELTPK_DATACONTEXT_HPP
19#include <ptk/posastro.hpp>
20#include <taiclock/taiClock.hpp>
21#include <rad/dataContext.hpp>
22#include "mal/utility/shared_vector.hpp"
23#include "Ccsinsif.hpp"
24#include "Ccsinsdetif.hpp"
46 std::optional<ptk::Radians>
alt;
47 std::optional<ptk::Radians>
az;
61 double target_observed_alt = 0;
62 double target_observed_az = 0;
63 double north_angle = 0;
64 double pupil_angle = 0;
65 double elevation_direction_angle = 0;
66 double parallactic_angle = 0;
67 double ra_at_xy_from_guide_stars = 0;
68 double dec_at_xy_from_guide_stars = 0;
117 DataContext(std::shared_ptr<OldbInterface> oldb_interface =
nullptr);
170 std::shared_ptr<const ::ccsinsif::PresetData>
GetPresetData();
180 void SetPresetArgs(std::shared_ptr<const ::ccsinsif::PresetArgs> preset_args);
254 ::taiclock::TaiClock::time_point time_tai = ::taiclock::TaiClock::time_point{})
const;
306 ElapsedTimeStats& stats, ::taiclock::TaiClock::time_point time_tai = ptk::NextTimeEvent());
452 void RecordOpsLog (
const std::string &name,
const std::string &value);
470 ptk::IcrsCirsConverter m_conv_icrs;
472 std::shared_ptr<OldbInterface> m_oldb_interface;
474 bool m_is_publishing_enabled;
483 std::shared_ptr<const ::ccsinsif::PresetArgs> m_preset_args;
497 ptk::EquatorialPosition m_ra_dec_target;
504 ptk::EquatorialPosition m_ra_dec_target_cirs;
516 bool ra_dec_target_is_valid;
533 std::map<::taiclock::TaiClock::time_point, ptk::HorizonPositionEsoTimestamped> m_alt_az_target_map;
541 bool m_alt_az_target_is_valid;
548 ptk::HorizonPositionEsoTimestamped alt_az_current;
570 bool m_site_info_published;
571 bool m_site_info_first_iteration;
581 mutable std::recursive_mutex m_mutex;
587 std::atomic<bool> is_initialized;
AmbientData class header file.
Config class header file.
Performance and other monitoring.
OldbInterface class header file.
Definition ambientData.hpp:48
Definition dataContext.hpp:56
void setTime_dut1(double x)
Definition dataContext.hpp:76
void setRa_at_xy_from_guide_stars(double x)
Definition dataContext.hpp:97
double getTarget_observed_az() const
Definition dataContext.hpp:81
double getDec_at_xy_from_guide_stars() const
Definition dataContext.hpp:99
void setTarget_observed_az(double x)
Definition dataContext.hpp:82
double getElevation_direction_angle() const
Definition dataContext.hpp:90
void setPupil_angle(double x)
Definition dataContext.hpp:88
double getTime_tai() const
Definition dataContext.hpp:72
void setNorth_angle(double x)
Definition dataContext.hpp:85
double getRa_at_xy_from_guide_stars() const
Definition dataContext.hpp:96
void setTime_tai(double x)
Definition dataContext.hpp:73
void setTarget_observed_alt(double x)
Definition dataContext.hpp:79
void setParallactic_angle(double x)
Definition dataContext.hpp:94
double getTime_dut1() const
Definition dataContext.hpp:75
void setElevation_direction_angle(double x)
Definition dataContext.hpp:91
double getNorth_angle() const
Definition dataContext.hpp:84
double getPupil_angle() const
Definition dataContext.hpp:87
void setDec_at_xy_from_guide_stars(double x)
Definition dataContext.hpp:100
double getParallactic_angle() const
Definition dataContext.hpp:93
double getTarget_observed_alt() const
Definition dataContext.hpp:78
Definition config.hpp:248
void SetEstimatedState(EstimatedState state)
Definition dataContext.cpp:521
ptk::EquatorialPosition GetTargetRaDec() const
Definition dataContext.cpp:163
void SetSiteInfo(ElapsedTimeStats &stats)
Definition dataContext.cpp:608
std::shared_ptr< const ::ccsinsif::PresetData > GetPresetData()
Definition dataContext.cpp:172
hlcc::ambientdataclient::AmbientData & GetAmbientData()
Definition dataContext.cpp:156
void SetPointingKernelPositions(const AgnosticPointingKernelPositions &x, ElapsedTimeStats &stats)
Definition dataContext.cpp:561
Config & GetConfig() override
Definition dataContext.cpp:120
void SetTargetAltAz(const ptk::HorizonPositionEsoTimestamped &alt_az, ElapsedTimeStats &stats)
EstimatedState
Definition dataContext.hpp:351
@ UNDEFINED
Definition dataContext.hpp:358
@ STANDING_STILL
Definition dataContext.hpp:366
@ PRESETTING
Definition dataContext.hpp:370
@ TRACKING
Definition dataContext.hpp:374
@ MOVING
Definition dataContext.hpp:379
bool GetTargetRaDecValidity() const
Definition dataContext.cpp:257
void SetCurrentAltAz(const ptk::HorizonPositionEsoTimestamped &alt_az)
bool IsPublishingEnabled() const
Definition dataContext.cpp:113
DataContext & operator=(const DataContext &)=delete
Disable copy constructor.
AgnosticPointingKernelPositions GetPointingKernelPositions() const
Definition dataContext.cpp:557
void SetTargetRaDecCirs(const ptk::EquatorialPosition &pos_cirs)
Definition dataContext.cpp:243
OldbInterface & GetOldbInterface() override
Definition dataContext.cpp:102
void RecordOpsLog(const std::string &name, const std::string &value)
Definition dataContext.cpp:652
bool GetTargetAltAzValidity() const
Definition dataContext.cpp:441
void SetTargetRaDec(ptk::EquatorialPosition pos)
Definition dataContext.cpp:205
ptk::HorizonPositionEsoTimestamped GetCurrentAltAz() const
Definition dataContext.cpp:455
DataContext(const DataContext &)=delete
EstimatedState GetEstimatedState() const
Definition dataContext.cpp:533
void SetTargetAltAzToCurrent(ElapsedTimeStats &stats)
Definition dataContext.cpp:385
ptk::EquatorialPosition GetTargetRaDecCirs() const
Definition dataContext.cpp:235
ptk::HorizonPositionEsoTimestamped MergeTargetAltAz(const AltAzOptional &alt_az, ElapsedTimeStats &stats, ::taiclock::TaiClock::time_point time_tai=ptk::NextTimeEvent())
Definition dataContext.cpp:394
void SetTargetAltAzValidity(bool is_valid)
Definition dataContext.cpp:447
virtual ~DataContext()
Definition dataContext.cpp:65
ptk::PositionOnEarth GetSitePosition() const
Definition dataContext.cpp:145
DataContext(std::shared_ptr< OldbInterface > oldb_interface=nullptr)
Definition dataContext.cpp:33
void UpdateDb() override
Definition dataContext.cpp:73
const Config & GetConfigConst() const
Definition dataContext.cpp:126
void EnablePublishing(bool enabled)
Definition dataContext.cpp:107
std::optional< ptk::HorizonPositionEsoTimestamped > GetTargetAltAz(::taiclock::TaiClock::time_point time_tai=::taiclock::TaiClock::time_point{}) const
Definition dataContext.cpp:281
void ReloadConfig() override
Definition dataContext.cpp:132
void SetTargetRaDecValidity(bool is_valid)
Definition dataContext.cpp:263
void SetPresetArgs(std::shared_ptr< const ::ccsinsif::PresetArgs > preset_args)
Definition dataContext.cpp:180
Definition monitoring.hpp:31
Definition oldbInterface.hpp:117
Definition actionMgr.cpp:31
constexpr const char * EstimatedStateToString(DataContext::EstimatedState state)
Definition dataContext.cpp:540
std::ostream & operator<<(std::ostream &os, DataContext::EstimatedState state)
Definition dataContext.cpp:552
Definition dataContext.hpp:45
std::optional< ptk::Radians > az
Definition dataContext.hpp:47
std::optional< ptk::Radians > alt
Definition dataContext.hpp:46