Voyant API 1.0.0
Loading...
Searching...
No Matches
voyant_types_ffi.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
6#include <cstdarg>
7#include <cstdint>
8#include <cstdlib>
9#include <ostream>
10#include <new>
12
16constexpr static const uint8_t DROP_REASON_VALID = 1;
17
43
147
153enum class StateProvenance : uint8_t {
167};
168
196
209
245
260
279
317
335
360
397
433
499
507 float x;
508 float y;
509 float z;
510};
511
524 uint8_t valid;
528 int64_t offset_ns;
537 int64_t jitter_ns;
541 uint32_t sample_count;
545 uint64_t age_ms;
546};
547
548extern "C" {
549
558
564
570uintptr_t voyant_frame_device_id(const VoyantFrameMeta *meta, char *buf, uintptr_t capacity);
571
581bool voyant_synthetic_frame_meta(uint8_t source,
582 int64_t timestamp_seconds,
583 int32_t timestamp_nanoseconds,
584 uint32_t frame_index,
585 VoyantFrameMeta *out);
586
596bool voyant_stateless_frame_meta(uint8_t source,
597 uint32_t serial_number,
598 int64_t timestamp_seconds,
599 int32_t timestamp_nanoseconds,
600 uint32_t frame_index,
601 VoyantFrameMeta *out);
602
613 uint8_t req_state,
614 float frame_rate_fps,
615 float hfov_deg,
616 float hfov_center_deg,
617 float ramp_bandwidth_ghz);
618
628bool voyant_points_xyz(const PointDataV1 *points, uintptr_t n_points, VoyantVec3 *out);
629
641bool voyant_points_set_xyz(PointDataV1 *points, uintptr_t n_points, const VoyantVec3 *positions);
642
647uintptr_t voyant_api_version_string(char *buf, uintptr_t capacity);
648
652uintptr_t voyant_interface_contract_version_string(char *buf, uintptr_t capacity);
653
654} // extern "C"
DspFrameStartToggle
Enum for dsp::frame_start_toggle register.
Definition sdl_types_generated.hpp:9
SdlRampLength
Enum for sdl::set_ramp_length register.
Definition sdl_types_generated.hpp:14
SdlState
Enum for sdl::set_state register.
Definition sdl_types_generated.hpp:20
Definition voyant_types_ffi.hpp:283
float datum_delta_y_m
Definition voyant_types_ffi.hpp:298
float doppler_calibration_mirror_offset
Definition voyant_types_ffi.hpp:295
int16_t encoder_azimuth_offset
Definition voyant_types_ffi.hpp:287
float reflectance_channel_scales[7]
Definition voyant_types_ffi.hpp:315
float datum_delta_x_m
Definition voyant_types_ffi.hpp:297
float encoder_eccentricity_coeffs[6]
Definition voyant_types_ffi.hpp:306
float datum_delta_z_m
Definition voyant_types_ffi.hpp:299
float chirp_bandwidth_hz
Definition voyant_types_ffi.hpp:296
float doppler_calibration_mirror_bias
Definition voyant_types_ffi.hpp:291
float reflectance_poly_coeffs[4]
Definition voyant_types_ffi.hpp:310
Definition voyant_types_ffi.hpp:249
uint64_t total_ramp_count
Definition voyant_types_ffi.hpp:251
uint32_t total_drops_count
Definition voyant_types_ffi.hpp:252
uint8_t any_drops_sticky
Definition voyant_types_ffi.hpp:257
uint64_t total_frame_count
Definition voyant_types_ffi.hpp:250
uint32_t mcu_cycles_counter
Definition voyant_types_ffi.hpp:258
Definition voyant_types_ffi.hpp:269
ProductId product_id
Definition voyant_types_ffi.hpp:271
uint8_t mcu_version_patch
Definition voyant_types_ffi.hpp:277
uint8_t fpga_version_minor
Definition voyant_types_ffi.hpp:273
uint8_t fpga_version_patch
Definition voyant_types_ffi.hpp:274
uint8_t mcu_version_major
Definition voyant_types_ffi.hpp:275
uint8_t mcu_version_minor
Definition voyant_types_ffi.hpp:276
uint32_t serial_number
Definition voyant_types_ffi.hpp:270
uint8_t fpga_version_major
Definition voyant_types_ffi.hpp:272
Definition voyant_types_ffi.hpp:327
int32_t timestamp_nanoseconds
Definition voyant_types_ffi.hpp:332
DspFrameStartToggle frame_start_toggle
Definition voyant_types_ffi.hpp:333
int64_t timestamp_seconds
Definition voyant_types_ffi.hpp:328
Definition voyant_types_ffi.hpp:213
float soa_temp_c
Definition voyant_types_ffi.hpp:229
float fpga_temp_c
Definition voyant_types_ffi.hpp:231
float carat_board_temp_c
Definition voyant_types_ffi.hpp:227
float ll_fom
Definition voyant_types_ffi.hpp:235
float ll_fom_smoothed
Definition voyant_types_ffi.hpp:239
float pic_temp_c
Definition voyant_types_ffi.hpp:228
uint16_t lo_power_mon
Definition voyant_types_ffi.hpp:243
uint8_t power_health
Definition voyant_types_ffi.hpp:225
float adc_temp_c
Definition voyant_types_ffi.hpp:230
uint32_t hardware_health
Definition voyant_types_ffi.hpp:221
uint64_t error_word
Definition voyant_types_ffi.hpp:217
float clarity_board_temp_c
Definition voyant_types_ffi.hpp:226
Definition voyant_types_ffi.hpp:403
int64_t sync_offset_ns
Definition voyant_types_ffi.hpp:422
int16_t state_age_frames
Definition voyant_types_ffi.hpp:409
uint32_t sync_jitter_ns
Definition voyant_types_ffi.hpp:427
uint16_t dropped_ramps
Definition voyant_types_ffi.hpp:413
bool sync_valid
Definition voyant_types_ffi.hpp:418
uint32_t sync_round_trip_ns
Definition voyant_types_ffi.hpp:431
Definition voyant_types_ffi.hpp:443
uint8_t combine_method
Definition voyant_types_ffi.hpp:490
uint8_t user_data[2]
Definition voyant_types_ffi.hpp:497
uint16_t azimuth_idx
Definition voyant_types_ffi.hpp:475
float calibrated_reflectance
Definition voyant_types_ffi.hpp:467
float doppler_mps
Definition voyant_types_ffi.hpp:459
float azimuth_rad
Definition voyant_types_ffi.hpp:451
uint16_t elevation_idx
Definition voyant_types_ffi.hpp:479
uint32_t timestamp_nanosecs
Definition voyant_types_ffi.hpp:471
float snr
Definition voyant_types_ffi.hpp:463
uint8_t drop_reason
Definition voyant_types_ffi.hpp:484
float range_m
Definition voyant_types_ffi.hpp:447
float elevation_rad
Definition voyant_types_ffi.hpp:455
Definition voyant_types_ffi.hpp:200
float ramp_bandwidth_ghz
Definition voyant_types_ffi.hpp:206
float hfov_center_deg
Definition voyant_types_ffi.hpp:205
float frame_rate_fps
Definition voyant_types_ffi.hpp:203
SdlStatus sdl_status
Definition voyant_types_ffi.hpp:202
SdlState device_state
Definition voyant_types_ffi.hpp:201
float hfov_deg
Definition voyant_types_ffi.hpp:204
SdlRampLength ramp_length
Definition voyant_types_ffi.hpp:207
Definition voyant_types_ffi.hpp:350
HealthState health
Definition voyant_types_ffi.hpp:352
uint64_t last_heartbeat_frame
Definition voyant_types_ffi.hpp:358
CalibrationState calibration
Definition voyant_types_ffi.hpp:355
DeviceInfo device
Definition voyant_types_ffi.hpp:354
CounterState counters
Definition voyant_types_ffi.hpp:353
SdlDeviceState sdl
Definition voyant_types_ffi.hpp:351
DspHeaderState dsp_header
Definition voyant_types_ffi.hpp:356
uint32_t peaks_per_frame
Definition voyant_types_ffi.hpp:357
Definition voyant_types_ffi.hpp:519
uint64_t age_ms
Definition voyant_types_ffi.hpp:545
uint32_t sample_count
Definition voyant_types_ffi.hpp:541
int64_t jitter_ns
Definition voyant_types_ffi.hpp:537
int64_t offset_ns
Definition voyant_types_ffi.hpp:528
uint8_t valid
Definition voyant_types_ffi.hpp:524
int64_t round_trip_ns
Definition voyant_types_ffi.hpp:533
SyncQuality quality
Definition voyant_types_ffi.hpp:520
Definition voyant_types_ffi.hpp:365
uint8_t host_state_raw[21]
Definition voyant_types_ffi.hpp:374
int32_t timestamp_nanoseconds
Definition voyant_types_ffi.hpp:387
int64_t timestamp_seconds
Definition voyant_types_ffi.hpp:383
uint8_t state_provenance
Definition voyant_types_ffi.hpp:379
uintptr_t n_points
Definition voyant_types_ffi.hpp:395
uint32_t frame_index
Definition voyant_types_ffi.hpp:391
uint8_t sensor_state_raw[154]
Definition voyant_types_ffi.hpp:370
Definition voyant_types_ffi.hpp:506
float y
Definition voyant_types_ffi.hpp:508
float z
Definition voyant_types_ffi.hpp:509
float x
Definition voyant_types_ffi.hpp:507
bool voyant_synthetic_frame_meta(uint8_t source, int64_t timestamp_seconds, int32_t timestamp_nanoseconds, uint32_t frame_index, VoyantFrameMeta *out)
bool voyant_points_xyz(const PointDataV1 *points, uintptr_t n_points, VoyantVec3 *out)
bool voyant_points_set_xyz(PointDataV1 *points, uintptr_t n_points, const VoyantVec3 *positions)
SensorState voyant_frame_sensor_state(const VoyantFrameMeta *meta)
SyncQuality
Definition voyant_types_ffi.hpp:174
@ Good
Definition voyant_types_ffi.hpp:190
@ Poor
Definition voyant_types_ffi.hpp:182
@ Unsynced
Definition voyant_types_ffi.hpp:178
@ Fair
Definition voyant_types_ffi.hpp:186
@ Excellent
Definition voyant_types_ffi.hpp:194
uintptr_t voyant_frame_device_id(const VoyantFrameMeta *meta, char *buf, uintptr_t capacity)
ProductId
Definition voyant_types_ffi.hpp:28
@ Lark
Definition voyant_types_ffi.hpp:30
@ XceliumSimulator
Definition voyant_types_ffi.hpp:36
@ VerilatorSimulator
Definition voyant_types_ffi.hpp:35
@ CarbonBenchtop
Definition voyant_types_ffi.hpp:32
@ SoftwareSimulator
Definition voyant_types_ffi.hpp:41
@ Meadowlark
Definition voyant_types_ffi.hpp:31
@ Unknown
Definition voyant_types_ffi.hpp:29
@ IsaacSim
Definition voyant_types_ffi.hpp:37
@ VivadoSimulator
Definition voyant_types_ffi.hpp:34
@ Carbon30
Definition voyant_types_ffi.hpp:33
uintptr_t voyant_api_version_string(char *buf, uintptr_t capacity)
HostState voyant_frame_host_state(const VoyantFrameMeta *meta)
bool voyant_stateless_frame_meta(uint8_t source, uint32_t serial_number, int64_t timestamp_seconds, int32_t timestamp_nanoseconds, uint32_t frame_index, VoyantFrameMeta *out)
SdlStatus
Definition voyant_types_ffi.hpp:52
@ SendFailed
Definition voyant_types_ffi.hpp:119
@ InvalidStateTransition
Definition voyant_types_ffi.hpp:86
@ Pending
Definition voyant_types_ffi.hpp:68
@ InvalidParameter
Definition voyant_types_ffi.hpp:82
@ Applied
Definition voyant_types_ffi.hpp:72
@ MessageReadyForMcu
Definition voyant_types_ffi.hpp:135
@ FovFpsError
Definition voyant_types_ffi.hpp:107
@ ValidMessageParsed
Definition voyant_types_ffi.hpp:139
@ BadFovCenterCombo
Definition voyant_types_ffi.hpp:77
@ PreviousCommandPending
Definition voyant_types_ffi.hpp:115
@ CommandBuildFailed
Definition voyant_types_ffi.hpp:111
@ UnableToCalibrate
Definition voyant_types_ffi.hpp:94
@ ObserverOnly
Definition voyant_types_ffi.hpp:145
@ MissingCalibration
Definition voyant_types_ffi.hpp:90
@ MaxRetriesExceeded
Definition voyant_types_ffi.hpp:127
@ Timeout
Definition voyant_types_ffi.hpp:123
@ StreamReset
Definition voyant_types_ffi.hpp:131
@ ApplicationError
Definition voyant_types_ffi.hpp:102
@ ParseError
Definition voyant_types_ffi.hpp:98
@ Idle
Definition voyant_types_ffi.hpp:62
uintptr_t voyant_interface_contract_version_string(char *buf, uintptr_t capacity)
StateProvenance
Definition voyant_types_ffi.hpp:153
@ Measured
Definition voyant_types_ffi.hpp:162
@ Absent
Definition voyant_types_ffi.hpp:166
bool voyant_frame_meta_with_sdl(VoyantFrameMeta *meta, uint8_t req_state, float frame_rate_fps, float hfov_deg, float hfov_center_deg, float ramp_bandwidth_ghz)