Skip to main content

StoreType

Struct StoreType 

Source
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 capabilities
  • has_flydratrax_compiled: Kalman tracking and LED control
  • has_checkercal_compiled: Checkerboard calibration
  • apriltag_state: AprilTag detection (None if not compiled)

Fields§

§is_braid: bool

Whether we are running inside Braid.

§ffmpeg_version: Option<String>

What version of ffmpeg is available to Strand Camera

§is_nvenc_functioning: bool

Whether we have Nvidia NvEnc encoder available.

§is_videotoolbox_functioning: bool

Whether 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: String

Format string template for MP4 filenames.

§format_str: String

Format string template for FMF filenames.

§format_str_ufmf: String

Format string template for UFMF filenames.

§camera_name: String

Name 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: RecordingFrameRate

Maximum frame rate for MP4 recording.

§mp4_bitrate: BitrateSelection

Bitrate selection for MP4 encoding.

§mp4_codec: CodecSelection

Video codec selection for MP4 encoding.

§mp4_cuda_device: String

CUDA device number (only used if using nvidia encoder)

§gain_auto: Option<AutoMode>

Automatic gain control mode.

§gain: RangedValue

Camera gain settings and range.

§exposure_auto: Option<AutoMode>

Automatic exposure control mode.

§exposure_time: RangedValue

Camera exposure time settings and range.

§frame_rate_limit_enabled: bool

Whether software frame rate limiting is enabled.

§frame_rate_limit: Option<RangedValue>

None when frame_rate_limit is not supported

§trigger_mode: TriggerMode

Camera trigger mode (internal, external, etc.).

§trigger_selector: TriggerSelector

Which trigger input to use.

§image_width: u32

Width of captured images in pixels.

§image_height: u32

Height of captured images in pixels.

§has_image_tracker_compiled: bool

Whether object detection with image-tracker crate is compiled.

§is_doing_object_detection: bool

Whether object detection is currently used.

§measured_fps: f32

Current 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: ImPtDetectCfg

Configuration for image point detection algorithms.

§has_flydratrax_compiled: bool

Whether flydratrax (2D kalman tracking and LED triggering) is compiled.

§kalman_tracking_config: KalmanTrackingConfig

Configuration for Kalman tracking of detected objects.

§led_program_config: LedProgramConfig

Configuration for LED control and triggering.

§led_box_device_lost: bool

Whether 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: bool

Whether checkerboard calibration is compiled.

§checkerboard_data: CheckerboardCalState

Current state of checkerboard calibration process.

§checkerboard_save_debug: Option<String>

Path where debug data is being saved.

§post_trigger_buffer_size: usize

Number 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: ImOpsState

State of image operations processing.

§format_str_apriltag_csv: String

Format string template for AprilTag CSV filenames.

§had_frame_processing_error: bool

Whether 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 Clone for StoreType

Source§

fn clone(&self) -> StoreType

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for StoreType

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for StoreType

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for StoreType

Source§

fn eq(&self, other: &StoreType) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for StoreType

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for StoreType

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,