pub struct StoreType {Show 49 fields
pub is_braid: bool,
pub ffmpeg_version: Option<String>,
pub is_nvenc_functioning: bool,
pub is_videotoolbox_functioning: bool,
pub is_recording_mp4: Option<RecordingPath>,
pub is_recording_fmf: Option<RecordingPath>,
pub is_recording_ufmf: Option<RecordingPath>,
pub format_str_mp4: String,
pub format_str: String,
pub format_str_ufmf: String,
pub camera_name: String,
pub camera_gamma: Option<f32>,
pub recording_filename: Option<String>,
pub mp4_max_framerate: RecordingFrameRate,
pub mp4_bitrate: BitrateSelection,
pub mp4_codec: CodecSelection,
pub mp4_cuda_device: String,
pub gain_auto: Option<AutoMode>,
pub gain: RangedValue,
pub exposure_auto: Option<AutoMode>,
pub exposure_time: RangedValue,
pub frame_rate_limit_enabled: bool,
pub frame_rate_limit: Option<RangedValue>,
pub trigger_mode: TriggerMode,
pub trigger_selector: TriggerSelector,
pub image_width: u32,
pub image_height: u32,
pub has_image_tracker_compiled: bool,
pub is_doing_object_detection: bool,
pub measured_fps: f32,
pub is_saving_im_pt_detect_csv: Option<RecordingPath>,
pub im_pt_detect_cfg: ImPtDetectCfg,
pub has_flydratrax_compiled: bool,
pub kalman_tracking_config: KalmanTrackingConfig,
pub led_program_config: LedProgramConfig,
pub led_box_device_lost: bool,
pub led_box_device_state: Option<DeviceState>,
pub led_box_device_path: Option<String>,
pub has_checkercal_compiled: bool,
pub checkerboard_data: CheckerboardCalState,
pub checkerboard_save_debug: Option<String>,
pub post_trigger_buffer_size: usize,
pub cuda_devices: Vec<String>,
pub apriltag_state: Option<ApriltagState>,
pub im_ops_state: ImOpsState,
pub format_str_apriltag_csv: String,
pub had_frame_processing_error: bool,
pub camera_calibration: Option<Camera<f64>>,
pub version_update: Option<VersionUpdate>,
}Expand description
Complete state representation of a Strand Camera instance.
This is the primary data structure that encapsulates all configuration, status, and capability information for a running camera. It includes everything from basic camera settings to complex processing features like object detection, Kalman tracking, and AprilTag recognition.
The structure is designed to be serialized and sent to web browsers for real-time monitoring and control of the camera system.
§Feature Compilation
Many fields are conditional based on compile-time features:
has_image_tracker_compiled: Object detection capabilitieshas_flydratrax_compiled: Kalman tracking and LED controlhas_checkercal_compiled: Checkerboard calibrationapriltag_state: AprilTag detection (None if not compiled)
Fields§
§is_braid: boolWhether we are running inside Braid.
ffmpeg_version: Option<String>What version of ffmpeg is available to Strand Camera
is_nvenc_functioning: boolWhether we have Nvidia NvEnc encoder available.
is_videotoolbox_functioning: boolWhether we have VideoToolbox
is_recording_mp4: Option<RecordingPath>is saving MP4 file
is_recording_fmf: Option<RecordingPath>is saving FMF file
is_recording_ufmf: Option<RecordingPath>is saving UFMF file
format_str_mp4: StringFormat string template for MP4 filenames.
format_str: StringFormat string template for FMF filenames.
format_str_ufmf: StringFormat string template for UFMF filenames.
camera_name: StringName of the camera device.
camera_gamma: Option<f32>Current gamma correction value applied to the camera.
recording_filename: Option<String>Base filename for recordings (without extension).
mp4_max_framerate: RecordingFrameRateMaximum frame rate for MP4 recording.
mp4_bitrate: BitrateSelectionBitrate selection for MP4 encoding.
mp4_codec: CodecSelectionVideo codec selection for MP4 encoding.
mp4_cuda_device: StringCUDA device number (only used if using nvidia encoder)
gain_auto: Option<AutoMode>Automatic gain control mode.
gain: RangedValueCamera gain settings and range.
exposure_auto: Option<AutoMode>Automatic exposure control mode.
exposure_time: RangedValueCamera exposure time settings and range.
frame_rate_limit_enabled: boolWhether software frame rate limiting is enabled.
frame_rate_limit: Option<RangedValue>None when frame_rate_limit is not supported
trigger_mode: TriggerModeCamera trigger mode (internal, external, etc.).
trigger_selector: TriggerSelectorWhich trigger input to use.
image_width: u32Width of captured images in pixels.
image_height: u32Height of captured images in pixels.
has_image_tracker_compiled: boolWhether object detection with image-tracker crate is compiled.
is_doing_object_detection: boolWhether object detection is currently used.
measured_fps: f32Current measured frame rate in frames per second.
is_saving_im_pt_detect_csv: Option<RecordingPath>is saving object detection CSV file
im_pt_detect_cfg: ImPtDetectCfgConfiguration for image point detection algorithms.
has_flydratrax_compiled: boolWhether flydratrax (2D kalman tracking and LED triggering) is compiled.
kalman_tracking_config: KalmanTrackingConfigConfiguration for Kalman tracking of detected objects.
led_program_config: LedProgramConfigConfiguration for LED control and triggering.
led_box_device_lost: boolWhether connection to LED control device has been lost.
led_box_device_state: Option<DeviceState>Current state of the LED control device.
led_box_device_path: Option<String>Path to the LED control device.
has_checkercal_compiled: boolWhether checkerboard calibration is compiled.
checkerboard_data: CheckerboardCalStateCurrent state of checkerboard calibration process.
checkerboard_save_debug: Option<String>Path where debug data is being saved.
post_trigger_buffer_size: usizeNumber of frames to buffer for post-trigger recording.
cuda_devices: Vec<String>List of available CUDA devices for hardware acceleration.
apriltag_state: Option<ApriltagState>This is None if no apriltag support is compiled in. Otherwise Some(_).
im_ops_state: ImOpsStateState of image operations processing.
format_str_apriltag_csv: StringFormat string template for AprilTag CSV filenames.
had_frame_processing_error: boolWhether there was an error during frame processing.
camera_calibration: Option<Camera<f64>>The camera calibration (does not contain potential information about water)
version_update: Option<VersionUpdate>A newer available release discovered by the background version check, or
None if up to date (or the check has not yet found a newer version).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for StoreType
impl<'de> Deserialize<'de> for StoreType
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl StructuralPartialEq for StoreType
Auto Trait Implementations§
impl Freeze for StoreType
impl RefUnwindSafe for StoreType
impl Send for StoreType
impl Sync for StoreType
impl Unpin for StoreType
impl UnsafeUnpin for StoreType
impl UnwindSafe for StoreType
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.