LCOV - code coverage report
Current view: top level - libMagAOX/logger/types - telem_telvane.hpp (source / functions) Coverage Total Hit
Test: MagAOX Lines: 27.6 % 76 21
Test Date: 2026-01-03 21:03:39 Functions: 21.4 % 14 3

            Line data    Source code
       1              : /** \file telem_telvane.hpp
       2              :   * \brief The MagAO-X logger telem_telvane 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_telvane_hpp
      11              : #define logger_types_telem_telvane_hpp
      12              : 
      13              : #include "generated/telem_telvane_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_telvane : public flatbuffer_log
      26              : {
      27              :    ///The event code
      28              :    static const flatlogs::eventCodeT eventCode = eventCodes::TELEM_TELVANE;
      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            1 :       messageT( const double & secz, ///< [in] secondary z-position
      40              :                 const double & encz, ///< [in] secondary z-encoder
      41              :                 const double & secx, ///< [in] secondary x-position
      42              :                 const double & encx, ///< [in] secondary x-encoder
      43              :                 const double & secy, ///< [in] secondary y-position
      44              :                 const double & ency, ///< [in] secondary y-encoder
      45              :                 const double & sech, ///< [in] secondary h-position
      46              :                 const double & ench, ///< [in] secondary h-encoder
      47              :                 const double & secv, ///< [in] secondary v-position
      48              :                 const double & encv  ///< [in] secondary v-encoder
      49              :               )
      50            1 :       {
      51            1 :          auto fp = CreateTelem_telvane_fb(builder, secz, encz, secx, encx, secy, ency,sech, ench, secv, encv);
      52            1 :          builder.Finish(fp);
      53            1 :       }
      54              : 
      55              :    };
      56              : 
      57              : 
      58            1 :    static bool verify( flatlogs::bufferPtrT & logBuff,  ///< [in] Buffer containing the flatbuffer serialized message.
      59              :                        flatlogs::msgLenT len            ///< [in] length of msgBuffer.
      60              :                      )
      61              :    {
      62            1 :       auto verifier = flatbuffers::Verifier( static_cast<uint8_t*>(flatlogs::logHeader::messageBuffer(logBuff)), static_cast<size_t>(len));
      63            2 :       return VerifyTelem_telvane_fbBuffer(verifier);
      64              :    }
      65              : 
      66              :    ///Get the message formatte for human consumption.
      67            0 :    static std::string msgString( void * msgBuffer,  /**< [in] Buffer containing the flatbuffer serialized message.*/
      68              :                                  flatlogs::msgLenT len  /**< [in] [unused] length of msgBuffer.*/
      69              :                                )
      70              :    {
      71              :       static_cast<void>(len);
      72              : 
      73            0 :       auto fbs = GetTelem_telvane_fb(msgBuffer);
      74              : 
      75            0 :       std::string msg = "[telvane] ";
      76              : 
      77            0 :       msg += "secz: ";
      78            0 :       msg += std::to_string(fbs->secz()) + " ";
      79              : 
      80            0 :       msg += "encz: ";
      81            0 :       msg += std::to_string(fbs->encz()) + " ";
      82              : 
      83            0 :       msg += "secx: ";
      84            0 :       msg += std::to_string(fbs->secx()) + " ";
      85              : 
      86            0 :       msg += "encx: ";
      87            0 :       msg += std::to_string(fbs->encx()) + " ";
      88              : 
      89            0 :       msg += "secy: ";
      90            0 :       msg += std::to_string(fbs->secy()) + " ";
      91              : 
      92            0 :       msg += "ency: ";
      93            0 :       msg += std::to_string(fbs->ency()) + " ";
      94              : 
      95            0 :       msg += "sech: ";
      96            0 :       msg += std::to_string(fbs->sech()) + " ";
      97              : 
      98            0 :       msg += "ench: ";
      99            0 :       msg += std::to_string(fbs->ench()) + " ";
     100              : 
     101            0 :       msg += "secv: ";
     102            0 :       msg += std::to_string(fbs->secv()) + " ";
     103              : 
     104            0 :       msg += "encv: ";
     105            0 :       msg += std::to_string(fbs->encv()) + " ";
     106              : 
     107            0 :       return msg;
     108              : 
     109            0 :    }
     110              : 
     111            0 :    static double secz( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     112              :    {
     113            0 :       auto fbs = GetTelem_telvane_fb(msgBuffer);
     114              : 
     115            0 :       return fbs->secz();
     116              :    }
     117              : 
     118            0 :    static double encz( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     119              :    {
     120            0 :       auto fbs = GetTelem_telvane_fb(msgBuffer);
     121              : 
     122            0 :       return fbs->encz();
     123              :    }
     124              : 
     125            0 :    static double secx( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     126              :    {
     127            0 :       auto fbs = GetTelem_telvane_fb(msgBuffer);
     128              : 
     129            0 :       return fbs->secx();
     130              :    }
     131              : 
     132            0 :    static double encx( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     133              :    {
     134            0 :       auto fbs = GetTelem_telvane_fb(msgBuffer);
     135              : 
     136            0 :       return fbs->encx();
     137              :    }
     138              : 
     139            0 :    static double secy( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     140              :    {
     141            0 :       auto fbs = GetTelem_telvane_fb(msgBuffer);
     142              : 
     143            0 :       return fbs->secy();
     144              :    }
     145              : 
     146            0 :    static double ency( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     147              :    {
     148            0 :       auto fbs = GetTelem_telvane_fb(msgBuffer);
     149              : 
     150            0 :       return fbs->ency();
     151              :    }
     152              : 
     153            0 :    static double sech( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     154              :    {
     155            0 :       auto fbs = GetTelem_telvane_fb(msgBuffer);
     156              : 
     157            0 :       return fbs->sech();
     158              :    }
     159              : 
     160            0 :    static double ench( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     161              :    {
     162            0 :       auto fbs = GetTelem_telvane_fb(msgBuffer);
     163              : 
     164            0 :       return fbs->ench();
     165              :    }
     166              : 
     167            0 :    static double secv( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     168              :    {
     169            0 :       auto fbs = GetTelem_telvane_fb(msgBuffer);
     170              : 
     171            0 :       return fbs->secv();
     172              :    }
     173              : 
     174            0 :    static double encv( void * msgBuffer  /**< [in] Buffer containing the flatbuffer serialized message.*/ )
     175              :    {
     176            0 :       auto fbs = GetTelem_telvane_fb(msgBuffer);
     177              : 
     178            0 :       return fbs->encv();
     179              :    }
     180              : 
     181              :    /// Get the logMetaDetail for a member by name
     182              :    /**
     183              :      * \returns the a logMetaDetail filled in with the appropriate details
     184              :      * \returns an empty logMetaDetail if member not recognized
     185              :      */
     186            1 :    static logMetaDetail getAccessor( const std::string & member /**< [in] the name of the member */ )
     187              :    {
     188            1 :       if(     member == "secz") return logMetaDetail({"SECONDARY Z", "secondary z position", logMeta::valTypes::Double, logMeta::metaTypes::State, reinterpret_cast<void*>(&secz), false});
     189            1 :       else if( member == "encz") return logMetaDetail({"ENCODER Z", "secondary z encoder", logMeta::valTypes::Double, logMeta::metaTypes::State, reinterpret_cast<void*>(&encz), false});
     190            1 :       else if( member == "secx") return logMetaDetail({"SECONDARY X", "secondary X position", logMeta::valTypes::Double, logMeta::metaTypes::State, reinterpret_cast<void*>(&secx), false});
     191            1 :       else if( member == "encx") return logMetaDetail({"ENCODER X", "secondary X encoder", logMeta::valTypes::Double, logMeta::metaTypes::State, reinterpret_cast<void*>(&encx), false});
     192            1 :       else if( member == "secy") return logMetaDetail({"SECONDARY Y", "secondary Y position", logMeta::valTypes::Double, logMeta::metaTypes::State, reinterpret_cast<void*>(&secy), false});
     193            1 :       else if( member == "ency") return logMetaDetail({"ENCODER Y", "secondary Y encoder", logMeta::valTypes::Double, logMeta::metaTypes::State, reinterpret_cast<void*>(&ency), false});
     194            1 :       else if( member == "sech") return logMetaDetail({"SECONDARY H", "secondary H position", logMeta::valTypes::Double, logMeta::metaTypes::State, reinterpret_cast<void*>(&sech), false});
     195            1 :       else if( member == "ench") return logMetaDetail({"ENCODER H", "secondary H encoder", logMeta::valTypes::Double, logMeta::metaTypes::State, reinterpret_cast<void*>(&ench), false});
     196            1 :       else if( member == "secv") return logMetaDetail({"SECONDARY V", "secondary V position", logMeta::valTypes::Double, logMeta::metaTypes::State, reinterpret_cast<void*>(&secv), false});
     197            1 :       else if( member == "encv") return logMetaDetail({"ENCODER V", "secondary V encoder", logMeta::valTypes::Double, logMeta::metaTypes::State, reinterpret_cast<void*>(&encv), false});
     198              :       else
     199              :       {
     200            1 :          std::cerr << "No member " << member << " in telem_telvane\n";
     201            1 :          return logMetaDetail();
     202              :       }
     203              :     }
     204              : }; //telem_telvane
     205              : 
     206              : 
     207              : 
     208              : } //namespace logger
     209              : } //namespace MagAOX
     210              : 
     211              : #endif //logger_types_telem_telvane_hpp
     212              : 
        

Generated by: LCOV version 2.0-1