use crate::{
camera::{Camera, CameraFeatures},
errors::WardError,
};
pub trait ControllerFeatures {
fn controller_open(&self) -> Result<(), WardError>;
fn controller_close(&self) -> Result<(), WardError>;
}
impl ControllerFeatures for Camera {
fn controller_open(&self) -> Result<(), WardError> {
let path = format!(
"/alarmout_cgi?action=set&output={}&status=1",
&self.alarm_out
);
Ok(self.send_request(&path)?.check_status_code()?)
}
fn controller_close(&self) -> Result<(), WardError> {
let path = format!(
"/alarmout_cgi?action=set&output={}&status=0",
&self.alarm_out
);
Ok(self.send_request(&path)?.check_status_code()?)
}
}