LCOV - code coverage report
Current view: top level - libMagAOX/logger/types - telem_telsee.hpp (source / functions) Coverage Total Hit
Test: MagAOX Lines: 16.4 % 55 9
Test Date: 2026-01-03 21:03:39 Functions: 10.0 % 10 1

            Line data    Source code
       1              : /** \file telem_telsee.hpp
       2              :   * \brief The MagAO-X logger telem_telsee log type.
       3              :   * \author Jared R. Males (jaredmales@gmail.com)
       4              :   *
       5              :   * \ingroup logger_types_files
       6              :   *
       7              :   * History:
       8              :   * - 2018-09-06 created by JRM
       9              :   */
      10              : #ifndef logger_types_telem_telsee_hpp
      11              : #define logger_types_telem_telsee_hpp
      12              : 
      13              : #include "generated/telem_telsee_generated.h"
      14              : #include "flatbuffer_log.hpp"
      15              : 
      16              : namespace MagAOX
      17              : {
      18              : namespace logger
      19              : {
      20              : 
      21              : 
      22              : /// Log entry recording the build-time git state.
      23              : /** \ingroup logger_types
      24              :   */
      25              : struct telem_telsee : public flatbuffer_log
      26              : {
      27              :    ///The event code
      28              :    static const flatlogs::eventCodeT eventCode = eventCodes::TELEM_TELSEE;
      29              : 
      30              :    ///The default level
      31              :    static const flatlogs::logPrioT defaultLevel = flatlogs::logPrio::LOG_TELEM;
      32              : 
      33              :    static timespec lastRecord; ///< The time of the last time this log was recorded.  Used by the telemetry system.
      34              : 
      35              :    ///The type of the input message
      36              :    struct messageT : public fbMessage
      37              :    {
      38              :       ///Construct from components
      39            0 :       messageT( const int & dimm_time,         ///< [in]
      40              :                 const double & dimm_fwhm_corr, ///< [in]
      41              :                 const int & mag1_time,         ///< [in]
      42              :                 const double & mag1_fwhm_corr, ///< [in]
      43              :                 const int & mag2_time,         ///< [in]
      44              :                 const double & mag2_fwhm_corr  ///< [in]
      45              :               )
      46            0 :       {
      47            0 :          auto fp = CreateTelem_telsee_fb(builder, dimm_time, dimm_fwhm_corr, mag1_time, mag1_fwhm_corr, mag2_time, mag2_fwhm_corr);
      48            0 :          builder.Finish(fp);
      49            0 :       }
      50              : 
      51              :    };
      52              : 
      53            0 :    static bool verify( flatlogs::bufferPtrT & logBuff,  ///< [in] Buffer containing the flatbuffer serialized message.
      54              :                        flatlogs::msgLenT len            ///< [in] length of msgBuffer.
      55              :                      )
      56              :    {
      57            0 :       auto verifier = flatbuffers::Verifier( static_cast<uint8_t*>(flatlogs::logHeader::messageBuffer(logBuff)), static_cast<size_t>(len));
      58            0 :       return VerifyTelem_telsee_fbBuffer(verifier);
      59              :    }
      60              : 
      61              :    ///Get the message formatte for human consumption.
      62            0 :    static std::string msgString( void * msgBuffer,  /**< [in] Buffer containing the flatbuffer serialized message.*/
      63              :                                  flatlogs::msgLenT len  /**< [in] [unused] length of msgBuffer.*/
      64              :                                )
      65              :    {
      66              :       static_cast<void>(len);
      67              : 
      68            0 :       auto fbs = GetTelem_telsee_fb(msgBuffer);
      69              : 
      70            0 :       std::string msg = "[telsee] ";
      71              : 
      72            0 :       msg += "dimm[ ";
      73              : 
      74            0 :       msg += "t: ";
      75            0 :       msg += std::to_string(fbs->dimm_time()) + " ";
      76              : 
      77            0 :       msg += "fw-cor: ";
      78            0 :       msg += std::to_string(fbs->dimm_fwhm_corr()) + "] ";
      79              : 
      80            0 :       msg += "mag1[ ";
      81              : 
      82            0 :       msg += "t: ";
      83            0 :       msg += std::to_string(fbs->mag1_time()) + " ";
      84              : 
      85            0 :       msg += "fw-cor: ";
      86            0 :       msg += std::to_string(fbs->mag1_fwhm_corr()) + "] ";
      87              : 
      88              : 
      89            0 :       msg += "mag2[ ";
      90              : 
      91            0 :       msg += "t: ";
      92            0 :       msg += std::to_string(fbs->mag2_time()) + " ";
      93              : 
      94            0 :       msg += "fw-cor: ";
      95            0 :       msg += std::to_string(fbs->mag2_fwhm_corr()) + "] ";
      96            0 :       return msg;
      97              : 
      98            0 :    }
      99              : 
     100            0 :     static int dimm_time( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     101              :     {
     102            0 :         auto fbs = GetTelem_telsee_fb(msgBuffer);
     103            0 :         return fbs->dimm_time();
     104              :     }
     105              : 
     106            0 :     static double dimm_fwhm_corr( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     107              :     {
     108            0 :         auto fbs = GetTelem_telsee_fb(msgBuffer);
     109            0 :         return fbs->dimm_fwhm_corr();
     110              :     }
     111              : 
     112            0 :     static int mag1_time( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     113              :     {
     114            0 :         auto fbs = GetTelem_telsee_fb(msgBuffer);
     115            0 :         return fbs->mag1_time();
     116              :     }
     117              : 
     118            0 :     static double mag1_fwhm_corr( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     119              :     {
     120            0 :         auto fbs = GetTelem_telsee_fb(msgBuffer);
     121            0 :         return fbs->mag1_fwhm_corr();
     122              :     }
     123              : 
     124            0 :     static int mag2_time( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     125              :     {
     126            0 :         auto fbs = GetTelem_telsee_fb(msgBuffer);
     127            0 :         return fbs->mag2_time();
     128              :     }
     129              : 
     130            0 :     static double mag2_fwhm_corr( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     131              :     {
     132            0 :         auto fbs = GetTelem_telsee_fb(msgBuffer);
     133            0 :         return fbs->mag2_fwhm_corr();
     134              :     }
     135              : 
     136              :    /// Get the logMetaDetail for a member by name
     137              :    /**
     138              :      * \returns the a logMetaDetail filled in with the appropriate details
     139              :      * \returns an empty logMetaDetail if member not recognized
     140              :      */
     141            1 :    static logMetaDetail getAccessor( const std::string & member /**< [in] the name of the member */ )
     142              :    {
     143            1 :       if(     member == "dimm_time") return logMetaDetail({"DIMM TIME", "DIMM meas. time [sec since midnight]", logMeta::valTypes::Int, logMeta::metaTypes::State, reinterpret_cast<void*>(&dimm_time), false});
     144            1 :       else if( member == "dimm_fwhm_corr") return logMetaDetail({"DIMM FWHM CORR", "DIMM FWHM corrected to zenith", logMeta::valTypes::Double, logMeta::metaTypes::State, reinterpret_cast<void*>(&dimm_fwhm_corr), false});
     145            1 :       else if( member == "mag1_time") return logMetaDetail({"MAG1 TIME", "Baade meas. time [sec since midnight]", logMeta::valTypes::Int, logMeta::metaTypes::State, reinterpret_cast<void*>(&mag1_time), false});
     146            1 :       else if( member == "mag1_fwhm_corr") return logMetaDetail({"MAG1 FWHM CORR", "Baade FWHM corrected to zenith", logMeta::valTypes::Double, logMeta::metaTypes::State, reinterpret_cast<void*>(&mag1_fwhm_corr), false});
     147            1 :       else if( member == "mag2_time") return logMetaDetail({"MAG2 TIME", "Clay meas. time [sec since midnight]", logMeta::valTypes::Int, logMeta::metaTypes::State, reinterpret_cast<void*>(&mag2_time), false});
     148            1 :       else if( member == "mag2_fwhm_corr") return logMetaDetail({"MAG2 FWHM CORR", "Clay FWHM corrected to zenith", logMeta::valTypes::Double, logMeta::metaTypes::State, reinterpret_cast<void*>(&mag2_fwhm_corr), false});
     149              :       else
     150              :       {
     151            1 :          std::cerr << "No member " << member << " in telem_saving\n";
     152            1 :          return logMetaDetail();
     153              :       }
     154              :     }
     155              : 
     156              : }; //telem_telsee
     157              : 
     158              : 
     159              : 
     160              : } //namespace logger
     161              : } //namespace MagAOX
     162              : 
     163              : #endif //logger_types_telem_telsee_hpp
     164              : 
        

Generated by: LCOV version 2.0-1