pub struct Session {
pub status: SharedStatus,
pub selection: Selection,
/* private fields */
}Expand description
One owner per camera. All public entry points are serialized by the frontend. Status and queued controls remain readable while capture owns the worker.
Fields§
§status: SharedStatus§selection: SelectionImplementations§
Source§impl Session
impl Session
pub fn new( selection: Selection, runtime: Runtime, log: Diagnostic, ) -> Result<Self>
pub fn snapshot(&self) -> Status
pub fn cooling(&self) -> CoolingHandle
Sourcepub async fn service_cooling(&mut self, token: &CancellationToken) -> Result<()>
pub async fn service_cooling(&mut self, token: &CancellationToken) -> Result<()>
Drive one reserved command while idle. Capture drives the same mailbox at safe worker checkpoints. Frontends retain/serialize this operation.
Sourcepub async fn set_imaging_control(
&mut self,
kind: i32,
value: i64,
deadline: Instant,
token: &CancellationToken,
) -> Result<i64>
pub async fn set_imaging_control( &mut self, kind: i32, value: i64, deadline: Instant, token: &CancellationToken, ) -> Result<i64>
Acknowledge gain/offset while idle, using the same serialized worker as capture. The caller must retain this future through dispatch/cleanup. Unlike queue_control, success means write plus readback, not desired intent. The absolute deadline includes time spent waiting for owner admission.
Sourcepub async fn set_white_balance(
&mut self,
settings: Settings,
token: &CancellationToken,
) -> Result<()>
pub async fn set_white_balance( &mut self, settings: Settings, token: &CancellationToken, ) -> Result<()>
Opt into Regain-owned WB. The caller serializes this with capture, like all Session operations. Settings and effective AWB gains survive recovery.
pub async fn simulate_read_failures( &mut self, count: u32, token: &CancellationToken, ) -> Result<()>
pub fn seed_recovery(&mut self, temperature: Option<f64>, power: Option<i64>)
pub fn seed_recovery_target(&mut self, target: Option<i64>)
pub fn queue_control(status: &SharedStatus, kind: i32, value: i64) -> Result<()>
pub async fn connect(&mut self, token: &CancellationToken) -> Result<()>
Sourcepub async fn refresh_environment(
&mut self,
token: &CancellationToken,
) -> Result<()>
pub async fn refresh_environment( &mut self, token: &CancellationToken, ) -> Result<()>
Read-only idle telemetry on the existing worker. Unlike refresh, this never opens a replacement worker or applies desired configuration.