#pragma once

#include "xmsdk_export.h"

namespace xavia::sdk
{
  /**
   * @brief The possible states of the sensor.
   */
  enum class SensorState
  {
    UNKNOWN,       ///< State unknown to the sdk. Trigger synchronization to get the correct state.
    UNINITIALIZED, ///< Not initialized. This means the sensor endpoint is reachable, but the system failed to correctly initialize all (hardware) components. The system is unusable.
    IDLE,          ///< The system is ready to measure and awaiting the start command.
    RUNNING,       ///< The system is actively measuring. It should be streaming point clouds.
    SENSOR_ERROR,  ///< The system is in error state. Various scenarios can trigger this state. Correct the illegal situation and reboot the sensor.
  };
}