Instrument Neutral Distributed Interface INDI 2.2.5
Classes | Namespaces | Typedefs | Enumerations | Functions
instrumentation.h File Reference
#include <atomic>
#include <chrono>
#include <condition_variable>
#include <cstdint>
#include <functional>
#include <memory>
#include <mutex>
#include <string>
#include <variant>
#include <vector>

Go to the source code of this file.

Classes

struct  geminipbh::instrumentation::NamedValue
 
struct  geminipbh::instrumentation::FieldChange
 
struct  geminipbh::instrumentation::ConnectionPayload
 
struct  geminipbh::instrumentation::FramePayload
 
struct  geminipbh::instrumentation::StatusDecodedPayload
 
struct  geminipbh::instrumentation::FieldChangesPayload
 
struct  geminipbh::instrumentation::VerificationPayload
 
struct  geminipbh::instrumentation::WarningPayload
 
struct  geminipbh::instrumentation::ParserAnomalyPayload
 
struct  geminipbh::instrumentation::ReconnectAttemptPayload
 
struct  geminipbh::instrumentation::TimingPayload
 
struct  geminipbh::instrumentation::Event
 
class  geminipbh::instrumentation::Dispatcher
 
class  geminipbh::instrumentation::EventFormatter
 
class  geminipbh::instrumentation::EventLogger
 

Namespaces

namespace  geminipbh
 
namespace  geminipbh::instrumentation
 

Typedefs

using geminipbh::instrumentation::Value = std::variant< std::monostate, bool, std::int64_t, std::uint64_t, double, std::string >
 
using geminipbh::instrumentation::Payload = std::variant< ConnectionPayload, FramePayload, StatusDecodedPayload, FieldChangesPayload, VerificationPayload, WarningPayload, ParserAnomalyPayload, ReconnectAttemptPayload, TimingPayload >
 

Enumerations

enum class  geminipbh::instrumentation::Level {
  geminipbh::instrumentation::Off = 0 , geminipbh::instrumentation::Error , geminipbh::instrumentation::Info , geminipbh::instrumentation::Protocol ,
  geminipbh::instrumentation::Verbose , geminipbh::instrumentation::Trace
}
 
enum class  geminipbh::instrumentation::EventType {
  geminipbh::instrumentation::Connection , geminipbh::instrumentation::FrameTransmitted , geminipbh::instrumentation::FrameReceived , geminipbh::instrumentation::StatusDecoded ,
  geminipbh::instrumentation::FieldChanges , geminipbh::instrumentation::Verification , geminipbh::instrumentation::Warning , geminipbh::instrumentation::ParserAnomaly ,
  geminipbh::instrumentation::ReconnectAttempt , geminipbh::instrumentation::Timing
}
 
enum class  geminipbh::instrumentation::ConnectionState { geminipbh::instrumentation::Connected , geminipbh::instrumentation::Disconnected , geminipbh::instrumentation::CommunicationFailure , geminipbh::instrumentation::ReconnectSuccess }
 
enum class  geminipbh::instrumentation::FrameDirection { geminipbh::instrumentation::Tx , geminipbh::instrumentation::Rx }
 
enum class  geminipbh::instrumentation::VerificationOperation { geminipbh::instrumentation::CommandStateConfirm }
 
enum class  geminipbh::instrumentation::VerificationOutcome { geminipbh::instrumentation::Passed , geminipbh::instrumentation::Failed }
 
enum class  geminipbh::instrumentation::WarningCode {
  geminipbh::instrumentation::FirmwareBelowRecommended , geminipbh::instrumentation::QueueFull , geminipbh::instrumentation::WritesNotAccepted , geminipbh::instrumentation::QueuedCommandsDiscarded ,
  geminipbh::instrumentation::CallbackException , geminipbh::instrumentation::TransportError , geminipbh::instrumentation::SerialWriteFailed , geminipbh::instrumentation::ProtocolRejected
}
 
enum class  geminipbh::instrumentation::ParserAnomalyCode {
  geminipbh::instrumentation::MalformedStatusFrame , geminipbh::instrumentation::IgnoredFrameWhileWaiting , geminipbh::instrumentation::UnexpectedFrame , geminipbh::instrumentation::OversizedFrameDiscarded ,
  geminipbh::instrumentation::MissingTerminator , geminipbh::instrumentation::TrailingData , geminipbh::instrumentation::InvalidField , geminipbh::instrumentation::OutOfRangeField
}
 
enum class  geminipbh::instrumentation::ReconnectResult {
  geminipbh::instrumentation::Starting , geminipbh::instrumentation::AttemptFailed , geminipbh::instrumentation::Succeeded , geminipbh::instrumentation::Cancelled ,
  geminipbh::instrumentation::Exhausted
}
 
enum class  geminipbh::instrumentation::TimingOperation {
  geminipbh::instrumentation::Open , geminipbh::instrumentation::Handshake , geminipbh::instrumentation::ReadFirmware , geminipbh::instrumentation::FirstStatusFrame ,
  geminipbh::instrumentation::Connect , geminipbh::instrumentation::ReconnectAttempt , geminipbh::instrumentation::SyncWrite , geminipbh::instrumentation::AsyncWrite ,
  geminipbh::instrumentation::ParseStatusPayload
}
 

Functions

Event geminipbh::instrumentation::makeEvent (Level level, EventType type, Payload payload)
 
const char * geminipbh::instrumentation::toString (Level level)
 
const char * geminipbh::instrumentation::toString (EventType type)
 
const char * geminipbh::instrumentation::toString (ConnectionState state)
 
const char * geminipbh::instrumentation::toString (FrameDirection direction)
 
const char * geminipbh::instrumentation::toString (VerificationOperation operation)
 
const char * geminipbh::instrumentation::toString (VerificationOutcome outcome)
 
const char * geminipbh::instrumentation::toString (WarningCode code)
 
const char * geminipbh::instrumentation::toString (ParserAnomalyCode code)
 
const char * geminipbh::instrumentation::toString (ReconnectResult result)
 
const char * geminipbh::instrumentation::toString (TimingOperation operation)
 
std::string geminipbh::instrumentation::formatValue (const Value &value)
 
std::string geminipbh::instrumentation::escapeFrame (const std::string &frame)