7#ifndef CCF_STDPUB_PUB_FITS_HPP_H_
8#define CCF_STDPUB_PUB_FITS_HPP_H_
11#include <CCfits/CCfits.h>
12#include <CCfits/FITS.h>
13#include <CCfits/PHDU.h>
15#include <ifw/core/dit/fits/fits.hpp>
71 PubFits(
const std::string& proc_thread_name,
72 const std::string& pub_thread_name);
89 const std::string& pub_thread_name,
93 int64_t& nb_of_frames);
112 void WriteTimestampTable_();
115 std::string m_setup_file_basename;
116 int32_t m_setup_max_size;
117 int32_t m_setup_nb_of_frames;
119 bool m_setup_overwrite;
121 int32_t m_setup_frame_interval;
122 double m_setup_frame_period;
124 int32_t m_setup_expo_nb;
125 int16_t m_nb_of_hdr_blocks;
126 bool m_store_telemetry_in_dps{
false};
129 std::string m_stat_cur_filename;
130 std::string m_stat_prev_filename;
132 int32_t m_stat_frames_stored;
133 double m_stat_last_frame_storage_time;
134 double m_stat_size_frames_stored_mb;
137 uint32_t m_stat_frame_count;
139 std::shared_ptr<CCfits::FITS> m_fits_handle;
143 std::vector<int32_t> m_ts_fits_pub_count;
144 std::vector<int64_t> m_ts_cam_frame_count;
145 std::vector<int64_t> m_ts_int_frame_count;
146 std::vector<double> m_ts_timestamps;
149 std::string m_det_system;
150 std::string m_det_cam_name;
151 std::string m_det_cam_id;
152 std::string m_det_cam_model;
153 std::string m_det_cam_chip_model;
154 std::string m_det_cam_type;
Frame class used to store the data and metadata for one frames received from the camera.
Definition dataFrame.hpp:20
Class for implementing CCF Data Publishers.
Definition pubBase.hpp:117
PubBase(const std::string &proc_thread_name, const std::string &pub_thread_name)
Definition pubBase.cpp:374
RecordingMode
Definition pubFits.hpp:51
@ INTERVAL
Definition pubFits.hpp:53
@ ALL
Definition pubFits.hpp:52
@ PERIODIC
Definition pubFits.hpp:54
PubFits()
Definition pubFits.cpp:57
const std::string TIMESTAMP_TBL_NONE
Definition pubFits.hpp:67
virtual ~PubFits()
Definition pubFits.cpp:62
const std::string RECORDING_MODE_ALL
Definition pubFits.hpp:57
const std::string FORMAT_CUBE_X
Definition pubFits.hpp:49
const std::string FORMAT_CUBE
Definition pubFits.hpp:47
PubFits(const std::string &proc_thread_name, const std::string &pub_thread_name)
Definition pubFits.cpp:28
const std::string FORMAT_MEF
Definition pubFits.hpp:48
const std::string SETUP_KEY_ADD_TIMESTAMPS_TBL
Definition pubFits.hpp:33
const std::string RECORDING_MODE_INTERVAL
Definition pubFits.hpp:58
Format
Definition pubFits.hpp:35
@ SINGLE
Definition pubFits.hpp:36
@ CUBE_X
Definition pubFits.hpp:43
@ MEF
Definition pubFits.hpp:38
@ CUBE
Definition pubFits.hpp:37
void DecodeRecMode(const std::string &rec_mode_specifier)
Definition pubFits.cpp:237
virtual void DeactivateUser()
Definition pubFits.cpp:201
Format FormatToNb(const std::string &format)
Definition pubFits.cpp:213
const std::string SETUP_KEY_NB_REC_HDR_BLOCKS
Definition pubFits.hpp:32
const std::string SETUP_KEY_REC_MODE
Definition pubFits.hpp:31
std::string TimestampTblTypeToStr(const TimestampTableType type)
Definition pubFits.cpp:285
TimestampTableType
Definition pubFits.hpp:61
@ BINARY
Definition pubFits.hpp:63
@ NONE
Definition pubFits.hpp:62
@ ASCII
Definition pubFits.hpp:64
static bool s_initialised
Definition pubFits.hpp:25
const std::string FORMAT_SINGLE
Definition pubFits.hpp:46
virtual void EstimateExecutionUser(double &duration, int64_t &nb_of_frames)
Definition pubFits.cpp:686
std::string FormatToStr(const Format format)
Definition pubFits.cpp:227
static char s_padding_bytes[2880]
Definition pubFits.hpp:26
std::string RecordingModeToStr(const RecordingMode mode)
Definition pubFits.cpp:263
const std::string RECORDING_MODE_PERIODIC
Definition pubFits.hpp:59
virtual void InitialiseUser()
Definition pubFits.cpp:66
TimestampTableType TimestampTblTypeToNb(const std::string &type)
Definition pubFits.cpp:272
virtual void ActivateUser()
Definition pubFits.cpp:183
virtual void CheckForDeactivationUser()
Definition pubFits.cpp:576
virtual void PublishUser(ifw::ccf::common::DataFrame &frame)
Definition pubFits.cpp:147
const std::string TIMESTAMP_TBL_ASCII
Definition pubFits.hpp:69
const std::string SETUP_KEY_OVERWRITE
Definition pubFits.hpp:30
const std::string TIMESTAMP_TBL_BINARY
Definition pubFits.hpp:68
const std::string SETUP_KEY_NB_OF_FRAMES
Definition pubFits.hpp:29
virtual void CreateObjectUser(const std::string &proc_thread_name, const std::string &pub_thread_name, PubBase **new_object)
Definition pubFits.cpp:206
Definition mudpiCreator.hpp:21
ExpoMode
Exposure modes.
Definition base.hpp:208