Voyant API
0.2.1
Loading...
Searching...
No Matches
usr
include
voyant_api
proto_wrappers
voyant_header_wrapper.hpp
Go to the documentation of this file.
1
// Copyright (c) 2024-2025 Voyant Photonics, Inc.
2
// All rights reserved.
3
4
#pragma once
5
#include "../capnp_wrapper.h"
6
#include "
header.capnp.h
"
7
#include "
voyant_version_wrapper.hpp
"
8
#include <cstdint>
9
#include <string>
10
14
enum class
DeviceClass
: uint8_t
15
{
16
Unknown
= 0,
17
Mdl
= 1,
18
Ldk
= 2
19
// Add more classes as we develop additional products
20
};
21
27
DeviceClass
deviceClassFromDeviceId
(
const
std::string &device_id);
28
34
uint16_t
deviceNumberFromDeviceId
(
const
std::string &device_id);
35
42
class
VoyantHeaderWrapper
:
public
CapnpWrapper
<VoyantHeader>
43
{
44
private
:
45
MessageType
message_type_ = MessageType::UNKNOWN;
46
int64_t timestamp_seconds_ = 0;
47
int32_t timestamp_nanoseconds_ = 0;
48
uint32_t frame_index_ = 0;
49
DeviceClass
device_class_ =
DeviceClass::Unknown
;
50
uint16_t device_number_ = 0;
51
VoyantVersionWrapper
proto_version_;
52
VoyantVersionWrapper
api_version_;
53
VoyantVersionWrapper
firmware_version_;
54
VoyantVersionWrapper
hdl_version_;
55
56
public
:
60
VoyantHeaderWrapper
() =
default
;
61
65
~VoyantHeaderWrapper
()
override
=
default
;
66
71
void
fromProto
(
VoyantHeader::Reader
reader)
override
;
72
77
void
toProto
(
VoyantHeader::Builder
&builder)
const override
;
78
83
void
debugString
(std::ostream &os)
const override
;
84
85
// Getters
90
std::string
deviceId
()
const
;
91
96
DeviceClass
deviceClass
()
const
{
return
device_class_; }
97
102
uint16_t
deviceNumber
()
const
{
return
device_number_; }
103
108
MessageType
messageType
()
const
{
return
message_type_; }
109
114
int64_t
timestampSeconds
()
const
{
return
timestamp_seconds_; }
115
120
int32_t
timestampNanoseconds
()
const
{
return
timestamp_nanoseconds_; }
121
126
uint32_t
frameIndex
()
const
{
return
frame_index_; }
127
132
const
VoyantVersionWrapper
&
protoVersion
()
const
{
return
proto_version_; }
133
138
VoyantVersionWrapper
&
protoVersionMut
() {
return
proto_version_; }
139
144
const
VoyantVersionWrapper
&
apiVersion
()
const
{
return
api_version_; }
145
150
VoyantVersionWrapper
&
apiVersionMut
() {
return
api_version_; }
151
156
const
VoyantVersionWrapper
&
firmwareVersion
()
const
{
return
firmware_version_; }
157
162
VoyantVersionWrapper
&
firmwareVersionMut
() {
return
firmware_version_; }
163
168
const
VoyantVersionWrapper
&
hdlVersion
()
const
{
return
hdl_version_; }
169
174
VoyantVersionWrapper
&
hdlVersionMut
() {
return
hdl_version_; }
175
176
// Setters
181
void
setDeviceClass
(
DeviceClass
value) { device_class_ = value; }
182
187
void
setDeviceNumber
(uint16_t value) { device_number_ = value; }
188
193
void
setMessageType
(
MessageType
value) { message_type_ = value; }
194
199
void
setTimestampSeconds
(int64_t value) { timestamp_seconds_ = value; }
200
205
void
setTimestampNanoseconds
(int32_t value) { timestamp_nanoseconds_ = value; }
206
211
void
setFrameIndex
(uint32_t value) { frame_index_ = value; }
212
222
bool
setVersion
(uint8_t major,
223
uint8_t minor,
224
uint8_t patch,
225
VersionStatus
status,
226
VersionComponent
component);
227
};
CapnpWrapper
Base template class for Cap'n Proto wrappers.
Definition
capnp_wrapper.h:23
VoyantHeaderWrapper
Wrapper for VoyantHeader messages.
Definition
voyant_header_wrapper.hpp:43
VoyantHeaderWrapper::timestampNanoseconds
int32_t timestampNanoseconds() const
Get timestamp nanoseconds.
Definition
voyant_header_wrapper.hpp:120
VoyantHeaderWrapper::setVersion
bool setVersion(uint8_t major, uint8_t minor, uint8_t patch, VersionStatus status, VersionComponent component)
Helper method to set version details for a specific component.
VoyantHeaderWrapper::setMessageType
void setMessageType(MessageType value)
Set message type.
Definition
voyant_header_wrapper.hpp:193
VoyantHeaderWrapper::apiVersionMut
VoyantVersionWrapper & apiVersionMut()
Get mutable API version object.
Definition
voyant_header_wrapper.hpp:150
VoyantHeaderWrapper::setTimestampNanoseconds
void setTimestampNanoseconds(int32_t value)
Set timestamp nanoseconds.
Definition
voyant_header_wrapper.hpp:205
VoyantHeaderWrapper::frameIndex
uint32_t frameIndex() const
Get frame index.
Definition
voyant_header_wrapper.hpp:126
VoyantHeaderWrapper::protoVersionMut
VoyantVersionWrapper & protoVersionMut()
Get mutable protocol version object.
Definition
voyant_header_wrapper.hpp:138
VoyantHeaderWrapper::hdlVersion
const VoyantVersionWrapper & hdlVersion() const
Get HDL version information.
Definition
voyant_header_wrapper.hpp:168
VoyantHeaderWrapper::setDeviceNumber
void setDeviceNumber(uint16_t value)
Set device number.
Definition
voyant_header_wrapper.hpp:187
VoyantHeaderWrapper::setDeviceClass
void setDeviceClass(DeviceClass value)
Set device class.
Definition
voyant_header_wrapper.hpp:181
VoyantHeaderWrapper::~VoyantHeaderWrapper
~VoyantHeaderWrapper() override=default
Destructor.
VoyantHeaderWrapper::timestampSeconds
int64_t timestampSeconds() const
Get timestamp seconds.
Definition
voyant_header_wrapper.hpp:114
VoyantHeaderWrapper::messageType
MessageType messageType() const
Get message type.
Definition
voyant_header_wrapper.hpp:108
VoyantHeaderWrapper::toProto
void toProto(VoyantHeader::Builder &builder) const override
Write wrapper fields to a Cap'n Proto builder.
VoyantHeaderWrapper::firmwareVersionMut
VoyantVersionWrapper & firmwareVersionMut()
Get mutable firmware version object.
Definition
voyant_header_wrapper.hpp:162
VoyantHeaderWrapper::hdlVersionMut
VoyantVersionWrapper & hdlVersionMut()
Get mutable HDL version object.
Definition
voyant_header_wrapper.hpp:174
VoyantHeaderWrapper::fromProto
void fromProto(VoyantHeader::Reader reader) override
Update wrapper fields from a Cap'n Proto reader.
VoyantHeaderWrapper::deviceNumber
uint16_t deviceNumber() const
Get device number.
Definition
voyant_header_wrapper.hpp:102
VoyantHeaderWrapper::setFrameIndex
void setFrameIndex(uint32_t value)
Set frame index.
Definition
voyant_header_wrapper.hpp:211
VoyantHeaderWrapper::debugString
void debugString(std::ostream &os) const override
Generate a debug string representation.
VoyantHeaderWrapper::deviceClass
DeviceClass deviceClass() const
Get device class.
Definition
voyant_header_wrapper.hpp:96
VoyantHeaderWrapper::deviceId
std::string deviceId() const
Get formatted device ID string.
VoyantHeaderWrapper::VoyantHeaderWrapper
VoyantHeaderWrapper()=default
Default constructor.
VoyantHeaderWrapper::setTimestampSeconds
void setTimestampSeconds(int64_t value)
Set timestamp seconds.
Definition
voyant_header_wrapper.hpp:199
VoyantHeaderWrapper::apiVersion
const VoyantVersionWrapper & apiVersion() const
Get API version information.
Definition
voyant_header_wrapper.hpp:144
VoyantHeaderWrapper::firmwareVersion
const VoyantVersionWrapper & firmwareVersion() const
Get firmware version information.
Definition
voyant_header_wrapper.hpp:156
VoyantHeaderWrapper::protoVersion
const VoyantVersionWrapper & protoVersion() const
Get protocol version information.
Definition
voyant_header_wrapper.hpp:132
VoyantHeader::Builder
Definition
header.capnp.h:138
VoyantHeader::Reader
Definition
header.capnp.h:86
VoyantVersionWrapper
Wrapper for VoyantVersion messages.
Definition
voyant_version_wrapper.hpp:43
header.capnp.h
capnp::schemas::MessageType_811118aae8b7ce84
MessageType_811118aae8b7ce84
Definition
header.capnp.h:24
deviceClassFromDeviceId
DeviceClass deviceClassFromDeviceId(const std::string &device_id)
Extract device class from device ID string.
deviceNumberFromDeviceId
uint16_t deviceNumberFromDeviceId(const std::string &device_id)
Extract device number from device ID string.
DeviceClass
DeviceClass
Device class types for Voyant hardware.
Definition
voyant_header_wrapper.hpp:15
DeviceClass::Ldk
@ Ldk
Lark Dev Kit (legacy) device class.
DeviceClass::Mdl
@ Mdl
MeadowLark device class.
DeviceClass::Unknown
@ Unknown
Unknown device class (default)
voyant_version_wrapper.hpp
VersionStatus
VersionStatus
Version status, stored in bits 3-0 of the flags field.
Definition
voyant_version_wrapper.hpp:28
VersionComponent
VersionComponent
Component type for a version, stored in bits 7-4 of the flags field.
Definition
voyant_version_wrapper.hpp:14
Generated by
1.9.8