LCOV - code coverage report
Current view: top level - libMagAOX/app - stateCodes.cpp (source / functions) Coverage Total Hit
Test: MagAOX Lines: 100.0 % 118 118
Test Date: 2026-01-03 21:03:39 Functions: 100.0 % 3 3

            Line data    Source code
       1              : /** \file stateCodes.cpp
       2              :   * \brief MagAO-X Application States
       3              :   * \author Jared R. Males (jaredmales@gmail.com)
       4              :   *
       5              :   *
       6              :   * \ingroup app_files
       7              :   */
       8              : 
       9              : #include "stateCodes.hpp"
      10              : 
      11              : namespace MagAOX
      12              : {
      13              : namespace app
      14              : {
      15              : 
      16           96 : std::string stateCodes::codeText( const stateCodeT & stateCode )
      17              : {
      18           96 :    switch(stateCode)
      19              :    {
      20           15 :       case stateCodes::FAILURE:
      21           30 :          return "FAILURE";
      22            1 :       case stateCodes::ERROR:
      23            2 :          return "ERROR";
      24           11 :       case stateCodes::UNINITIALIZED:
      25           22 :          return "UNINITIALIZED";
      26           12 :       case stateCodes::INITIALIZED:
      27           24 :          return "INITIALIZED";
      28            5 :       case stateCodes::NODEVICE:
      29           10 :          return "NODEVICE";
      30           13 :       case stateCodes::POWEROFF:
      31           26 :          return "POWEROFF";
      32           14 :       case stateCodes::POWERON:
      33           28 :          return "POWERON";
      34            1 :       case stateCodes::NOTCONNECTED:
      35            2 :          return "NOTCONNECTED";
      36            1 :       case stateCodes::CONNECTED:
      37            2 :          return "CONNECTED";
      38            3 :       case stateCodes::LOGGEDIN:
      39            6 :          return "LOGGEDIN";
      40            1 :       case stateCodes::CONFIGURING:
      41            2 :          return "CONFIGURING";
      42            3 :       case stateCodes::NOTHOMED:
      43            6 :          return "NOTHOMED";
      44            3 :       case stateCodes::HOMING:
      45            6 :          return "HOMING";
      46            1 :       case stateCodes::OPERATING:
      47            2 :          return "OPERATING";
      48            4 :       case stateCodes::READY:
      49            8 :          return "READY";
      50            7 :       case stateCodes::SHUTDOWN:
      51           14 :          return "SHUTDOWN";
      52            1 :       default:
      53            2 :          return "UNKNOWN";
      54              :    }
      55              : }
      56              : 
      57           35 : stateCodes::stateCodeT stateCodes::str2Code( const std::string & stateStr )
      58              : {
      59              : 
      60           35 :    if(stateStr == "FAILURE")
      61              :    {
      62            1 :       return stateCodes::FAILURE;
      63              :    }
      64           34 :    else if(stateStr == "ERROR")
      65              :    {
      66            1 :       return stateCodes::ERROR;
      67              :    }
      68           33 :    else if(stateStr == "UNINITIALIZED")
      69              :    {
      70            1 :       return stateCodes::UNINITIALIZED;
      71              :    }
      72           32 :    else if(stateStr == "INITIALIZED" )
      73              :    {
      74            1 :       return stateCodes::INITIALIZED;
      75              :    }
      76           31 :    else if(stateStr == "NODEVICE" )
      77              :    {
      78            1 :       return stateCodes::NODEVICE;
      79              :    }
      80           30 :    else if(stateStr == "POWEROFF")
      81              :    {
      82            1 :       return stateCodes::POWEROFF;
      83              :    }
      84           29 :    else if(stateStr == "POWERON")
      85              :    {
      86            1 :       return stateCodes::POWERON;
      87              :    }
      88           28 :    else if(stateStr == "NOTCONNECTED")
      89              :    {
      90            1 :       return stateCodes::NOTCONNECTED;
      91              :    }
      92           27 :    else if(stateStr == "CONNECTED")
      93              :    {
      94            1 :       return stateCodes::CONNECTED;
      95              :    }
      96           26 :    else if(stateStr == "LOGGEDIN")
      97              :    {
      98            1 :       return stateCodes::LOGGEDIN;
      99              :    }
     100           25 :    else if(stateStr == "CONFIGURING")
     101              :    {
     102            1 :       return stateCodes::CONFIGURING;
     103              :    }
     104           24 :    else if(stateStr == "NOTHOMED")
     105              :    {
     106            1 :       return stateCodes::NOTHOMED;
     107              :    }
     108           23 :    else if(stateStr == "HOMING")
     109              :    {
     110            1 :       return stateCodes::HOMING;
     111              :    }
     112           22 :    else if(stateStr == "OPERATING")
     113              :    {
     114            3 :       return stateCodes::OPERATING;
     115              :    }
     116           19 :    else if(stateStr == "READY")
     117              :    {
     118            2 :       return stateCodes::READY;
     119              :    }
     120           17 :    else if(stateStr == "SHUTDOWN")
     121              :    {
     122            1 :       return stateCodes::SHUTDOWN;
     123              :    }
     124              :    else
     125              :    {
     126           16 :       return -999;
     127              :    }
     128              : 
     129              : }
     130              : 
     131           30 : stateCodes::stateCodeT stateCodes::str2CodeFast( const std::string & stateStr )
     132              : {
     133           30 :    switch(stateStr[0])
     134              :    {
     135            5 :       case 'C':
     136            5 :          if(stateStr.size() < 4)
     137              :          {
     138            2 :             return -999;
     139              :          }
     140              : 
     141            3 :          if( stateStr[3] == 'F')
     142              :          {
     143            1 :             return stateCodes::CONFIGURING;
     144              :          }
     145            2 :          else if( stateStr[3] == 'N')
     146              :          {
     147            1 :             return stateCodes::CONNECTED;
     148              :          }
     149              :          else
     150              :          {
     151            1 :             return -999;
     152              :          }
     153            1 :       case 'E':
     154            1 :          return stateCodes::ERROR;
     155            1 :       case 'F':
     156            1 :          return stateCodes::FAILURE;
     157            1 :       case 'H':
     158            1 :          return stateCodes::HOMING;
     159            1 :       case 'I':
     160            1 :          return INITIALIZED;
     161            1 :       case 'L':
     162            1 :          return LOGGEDIN;
     163            7 :       case 'N':
     164            7 :          if(size(stateStr) < 4)
     165              :          {
     166            3 :             return -999;
     167              :          }
     168            4 :          if(stateStr[2] == 'D')
     169              :          {
     170            1 :             return stateCodes::NODEVICE;
     171              :          }
     172            3 :          else if(stateStr[3] == 'C')
     173              :          {
     174            1 :             return stateCodes::NOTCONNECTED;
     175              :          }
     176            2 :          else if(stateStr[3] == 'H')
     177              :          {
     178            1 :             return stateCodes::NOTHOMED;
     179              :          }
     180              :          else
     181              :          {
     182            1 :             return -999;
     183              :          }
     184            2 :       case 'O':
     185            2 :          return stateCodes::OPERATING;
     186            5 :       case 'P':
     187            5 :          if(stateStr.size() < 7)
     188              :          {
     189            2 :             return -999;
     190              :          }
     191              : 
     192            3 :          if(stateStr[6] == 'F')
     193              :          {
     194            1 :             return stateCodes::POWEROFF;
     195              :          }
     196            2 :          else if(stateStr[6] == 'N')
     197              :          {
     198            1 :             return stateCodes::POWERON;
     199              :          }
     200              :          else
     201              :          {
     202            1 :             return -999;
     203              :          }
     204            3 :       case 'R':
     205            3 :          return stateCodes::READY;
     206            1 :       case 'S':
     207            1 :          return stateCodes::SHUTDOWN;
     208            1 :       case 'U':
     209            1 :          return stateCodes::UNINITIALIZED;
     210            1 :       default:
     211            1 :          return -999;
     212              :    }
     213              : }
     214              : 
     215              : } //namespace app
     216              : } //namespace MagAOX
     217              : 
        

Generated by: LCOV version 2.0-1