Voyant API
0.8.0
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
Carbon
= 3,
20
Simulated
= 255
21
// Add more classes as we develop additional products
22
};
23
29
DeviceClass
deviceClassFromDeviceId
(
const
std::string &device_id);
30
36
uint16_t
deviceNumberFromDeviceId
(
const
std::string &device_id);
37
44
class
VoyantHeaderWrapper
:
public
CapnpWrapper
<VoyantHeader>
45
{
46
private
:
47
MessageType
message_type_
= MessageType::UNKNOWN;
48
int64_t
timestamp_seconds_
= 0;
49
int32_t
timestamp_nanoseconds_
= 0;
50
uint32_t
frame_index_
= 0;
51
DeviceClass
device_class_
=
DeviceClass::Unknown
;
52
uint16_t
device_number_
= 0;
53
VoyantVersionWrapper
proto_version_
;
54
VoyantVersionWrapper
api_version_
;
55
VoyantVersionWrapper
firmware_version_
;
56
VoyantVersionWrapper
hdl_version_
;
57
58
public
:
62
VoyantHeaderWrapper
() =
default
;
63
67
~VoyantHeaderWrapper
()
override
=
default
;
68
73
void
fromProto
(
VoyantHeader::Reader
reader)
override
;
74
79
void
toProto
(
VoyantHeader::Builder
&builder)
const override
;
80
85
void
debugString
(std::ostream &os)
const override
;
86
87
// Getters
92
std::string
deviceId
()
const
;
93
98
DeviceClass
deviceClass
()
const
{
return
device_class_
; }
99
104
uint16_t
deviceNumber
()
const
{
return
device_number_
; }
105
110
MessageType
messageType
()
const
{
return
message_type_
; }
111
116
int64_t
timestampSeconds
()
const
{
return
timestamp_seconds_
; }
117
122
int32_t
timestampNanoseconds
()
const
{
return
timestamp_nanoseconds_
; }
123
128
uint32_t
frameIndex
()
const
{
return
frame_index_
; }
129
134
const
VoyantVersionWrapper
&
protoVersion
()
const
{
return
proto_version_
; }
135
140
VoyantVersionWrapper
&
protoVersionMut
() {
return
proto_version_
; }
141
146
const
VoyantVersionWrapper
&
apiVersion
()
const
{
return
api_version_
; }
147
152
VoyantVersionWrapper
&
apiVersionMut
() {
return
api_version_
; }
153
158
const
VoyantVersionWrapper
&
firmwareVersion
()
const
{
return
firmware_version_
; }
159
164
VoyantVersionWrapper
&
firmwareVersionMut
() {
return
firmware_version_
; }
165
170
const
VoyantVersionWrapper
&
hdlVersion
()
const
{
return
hdl_version_
; }
171
176
VoyantVersionWrapper
&
hdlVersionMut
() {
return
hdl_version_
; }
177
178
// Setters
183
void
setDeviceClass
(
DeviceClass
value) {
device_class_
= value; }
184
189
void
setDeviceNumber
(uint16_t value) {
device_number_
= value; }
190
195
void
setMessageType
(
MessageType
value) {
message_type_
= value; }
196
201
void
setTimestampSeconds
(int64_t value) {
timestamp_seconds_
= value; }
202
207
void
setTimestampNanoseconds
(int32_t value) {
timestamp_nanoseconds_
= value; }
208
213
void
setFrameIndex
(uint32_t value) {
frame_index_
= value; }
214
224
bool
setVersion
(uint8_t major,
225
uint8_t minor,
226
uint8_t patch,
227
VersionStatus
status,
228
VersionComponent
component);
229
};
CapnpWrapper
Base template class for Cap'n Proto wrappers.
Definition
capnp_wrapper.h:23
VoyantHeaderWrapper
Wrapper for VoyantHeader messages.
Definition
voyant_header_wrapper.hpp:45
VoyantHeaderWrapper::message_type_
MessageType message_type_
Definition
voyant_header_wrapper.hpp:47
VoyantHeaderWrapper::timestampNanoseconds
int32_t timestampNanoseconds() const
Get timestamp nanoseconds.
Definition
voyant_header_wrapper.hpp:122
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::timestamp_nanoseconds_
int32_t timestamp_nanoseconds_
Definition
voyant_header_wrapper.hpp:49
VoyantHeaderWrapper::setMessageType
void setMessageType(MessageType value)
Set message type.
Definition
voyant_header_wrapper.hpp:195
VoyantHeaderWrapper::device_number_
uint16_t device_number_
Definition
voyant_header_wrapper.hpp:52
VoyantHeaderWrapper::frame_index_
uint32_t frame_index_
Definition
voyant_header_wrapper.hpp:50
VoyantHeaderWrapper::apiVersionMut
VoyantVersionWrapper & apiVersionMut()
Get mutable API version object.
Definition
voyant_header_wrapper.hpp:152
VoyantHeaderWrapper::timestamp_seconds_
int64_t timestamp_seconds_
Definition
voyant_header_wrapper.hpp:48
VoyantHeaderWrapper::setTimestampNanoseconds
void setTimestampNanoseconds(int32_t value)
Set timestamp nanoseconds.
Definition
voyant_header_wrapper.hpp:207
VoyantHeaderWrapper::frameIndex
uint32_t frameIndex() const
Get frame index.
Definition
voyant_header_wrapper.hpp:128
VoyantHeaderWrapper::protoVersionMut
VoyantVersionWrapper & protoVersionMut()
Get mutable protocol version object.
Definition
voyant_header_wrapper.hpp:140
VoyantHeaderWrapper::hdlVersion
const VoyantVersionWrapper & hdlVersion() const
Get HDL version information.
Definition
voyant_header_wrapper.hpp:170
VoyantHeaderWrapper::setDeviceNumber
void setDeviceNumber(uint16_t value)
Set device number.
Definition
voyant_header_wrapper.hpp:189
VoyantHeaderWrapper::setDeviceClass
void setDeviceClass(DeviceClass value)
Set device class.
Definition
voyant_header_wrapper.hpp:183
VoyantHeaderWrapper::proto_version_
VoyantVersionWrapper proto_version_
Definition
voyant_header_wrapper.hpp:53
VoyantHeaderWrapper::~VoyantHeaderWrapper
~VoyantHeaderWrapper() override=default
Destructor.
VoyantHeaderWrapper::timestampSeconds
int64_t timestampSeconds() const
Get timestamp seconds.
Definition
voyant_header_wrapper.hpp:116
VoyantHeaderWrapper::messageType
MessageType messageType() const
Get message type.
Definition
voyant_header_wrapper.hpp:110
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:164
VoyantHeaderWrapper::hdlVersionMut
VoyantVersionWrapper & hdlVersionMut()
Get mutable HDL version object.
Definition
voyant_header_wrapper.hpp:176
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:104
VoyantHeaderWrapper::setFrameIndex
void setFrameIndex(uint32_t value)
Set frame index.
Definition
voyant_header_wrapper.hpp:213
VoyantHeaderWrapper::debugString
void debugString(std::ostream &os) const override
Generate a debug string representation.
VoyantHeaderWrapper::api_version_
VoyantVersionWrapper api_version_
Definition
voyant_header_wrapper.hpp:54
VoyantHeaderWrapper::deviceClass
DeviceClass deviceClass() const
Get device class.
Definition
voyant_header_wrapper.hpp:98
VoyantHeaderWrapper::hdl_version_
VoyantVersionWrapper hdl_version_
Definition
voyant_header_wrapper.hpp:56
VoyantHeaderWrapper::device_class_
DeviceClass device_class_
Definition
voyant_header_wrapper.hpp:51
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:201
VoyantHeaderWrapper::firmware_version_
VoyantVersionWrapper firmware_version_
Definition
voyant_header_wrapper.hpp:55
VoyantHeaderWrapper::apiVersion
const VoyantVersionWrapper & apiVersion() const
Get API version information.
Definition
voyant_header_wrapper.hpp:146
VoyantHeaderWrapper::firmwareVersion
const VoyantVersionWrapper & firmwareVersion() const
Get firmware version information.
Definition
voyant_header_wrapper.hpp:158
VoyantHeaderWrapper::protoVersion
const VoyantVersionWrapper & protoVersion() const
Get protocol version information.
Definition
voyant_header_wrapper.hpp:134
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::Simulated
@ Simulated
Simulated / test.
DeviceClass::Unknown
@ Unknown
Unknown device class (default)
DeviceClass::Carbon
@ Carbon
Carbon device class [IN DEVELOPMENT].
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