pub struct ControlInterface {
pub host: String,
/* private fields */
}
Fields§
§host: String
Implementations§
Source§impl ControlInterface
impl ControlInterface
pub async fn new( host: &str, hw_address: &str, existing_auth_token: Option<String>, ) -> Result<Self>
pub async fn reauthenticate(&mut self) -> bool
Sourcepub fn with_auth_token(self, auth_token: String) -> Self
pub fn with_auth_token(self, auth_token: String) -> Self
Updates the authentication token, after a device re-authenticated.
Sourcepub fn new_mock_device_info_response(
id: String,
device_name: String,
mac: String,
number_of_led: usize,
) -> DeviceInfoResponse
pub fn new_mock_device_info_response( id: String, device_name: String, mac: String, number_of_led: usize, ) -> DeviceInfoResponse
Creates a mock / demo DeviceInfoResponse. A utility function for Self::new_mock_control_interface.
Sourcepub fn new_mock_control_interface(
host: String,
hw_address: String,
auth_token: String,
device_info: DeviceInfoResponse,
) -> Self
pub fn new_mock_control_interface( host: String, hw_address: String, auth_token: String, device_info: DeviceInfoResponse, ) -> Self
Creates a mock / demo ControlInterface with a demo DeviceInfoResponse. A utility function Self::new_mock_device_info_response exists, to easily create a valid DeviceInfoResponse.
Sourcepub async fn from_device_identifier(
device_identifier: DeviceIdentifier,
) -> Result<Self>
pub async fn from_device_identifier( device_identifier: DeviceIdentifier, ) -> Result<Self>
Creates a ControlInterface by a DeviceIdentifier.
pub fn get_hw_address(&self) -> String
pub async fn shine_leds( &self, time_between_glow_start: Duration, time_to_max_glow: Duration, time_to_fade: Duration, colors: HashSet<RGB>, frame_rate: f64, num_start_simultaneous: usize, ) -> Result<()>
pub async fn show_solid_color(&self, rgb: RGB) -> Result<()>
pub async fn show_real_time_stdin_stream( &self, format: RtStdinFormat, error_mode: RtStdinErrorMode, leds_per_frame: u16, min_frame_time: Duration, ) -> Result<()>
pub async fn show_real_time_test_color_wheel( &self, step: f64, frame_rate: f64, ) -> Result<()>
pub fn flatten_rgb_vec(rgb_vec: Vec<(u8, u8, u8)>) -> Vec<u8> ⓘ
Sourcepub async fn set_rt_frame_socket(
&self,
socket: &UdpSocket,
frame: &[u8],
version: HardwareVersion,
) -> Result<usize>
pub async fn set_rt_frame_socket( &self, socket: &UdpSocket, frame: &[u8], version: HardwareVersion, ) -> Result<usize>
Sourcepub async fn show_rt_frame(&self, frame: &[u8]) -> Result<usize>
pub async fn show_rt_frame(&self, frame: &[u8]) -> Result<usize>
Ensures the mode is DeviceMode::RealTime
, creates a UDP socket, connect it and send a frame to it.
For a continuous animation, without constant socket recreation and rebinding,
use Self::set_rt_frame_socket
instead.
§Return
Returns either the written bytes or an error.
pub fn get_device_info(&self) -> &DeviceInfoResponse
Sourcepub async fn upload_movie<P: AsRef<Path>>(
&self,
path: P,
led_profile: LedProfile,
_fps: f64,
force: bool,
) -> Result<u32>
pub async fn upload_movie<P: AsRef<Path>>( &self, path: P, led_profile: LedProfile, _fps: f64, force: bool, ) -> Result<u32>
Uploads a new movie to the device.
Sourcepub async fn turn_on(&self) -> Result<VerifyResponse>
pub async fn turn_on(&self) -> Result<VerifyResponse>
Turns on the device by setting it to the last known mode or a default mode.
Sourcepub async fn turn_off(&self) -> Result<VerifyResponse>
pub async fn turn_off(&self) -> Result<VerifyResponse>
Turns off the device and remembers the last non-real-time mode.
Sourcepub async fn set_mode(&self, mode: DeviceMode) -> Result<VerifyResponse>
pub async fn set_mode(&self, mode: DeviceMode) -> Result<VerifyResponse>
Helper method to set the device mode.
Sourcepub async fn set_brightness(&self, brightness: i32) -> Result<()>
pub async fn set_brightness(&self, brightness: i32) -> Result<()>
Helper method to set the device brightness.
§Arguments
brightness
: The brightness value to set. Range is 0..100.
pub async fn get_mode(&self) -> Result<DeviceMode>
pub async fn get_brightness(&self) -> Result<BrightnessResponse>
pub async fn get_timer(&self) -> Result<TimerResponse>
pub async fn set_formatted_timer( &self, time_on_str: &str, time_off_str: &str, ) -> Result<()>
pub async fn get_playlist(&self) -> Result<PlaylistResponse>
Sourcepub async fn fetch_layout(&self) -> Result<LayoutResponse>
pub async fn fetch_layout(&self) -> Result<LayoutResponse>
Fetches the LED layout from the device.
pub async fn get_device_capacity(&self) -> Result<usize>
Sourcepub async fn clear_movies(&self) -> Result<()>
pub async fn clear_movies(&self) -> Result<()>
Clears all uploaded movies from the device.
Trait Implementations§
Source§impl Clone for ControlInterface
impl Clone for ControlInterface
Source§fn clone(&self) -> ControlInterface
fn clone(&self) -> ControlInterface
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ControlInterface
impl Debug for ControlInterface
Source§impl PartialEq for ControlInterface
Compare everything, except the client, since this that is a utility, and not a device describing
identifier. Also ignoring the token, since this changes on every new connection,
while the device stays the same.
impl PartialEq for ControlInterface
Compare everything, except the client, since this that is a utility, and not a device describing identifier. Also ignoring the token, since this changes on every new connection, while the device stays the same.
Auto Trait Implementations§
impl Freeze for ControlInterface
impl !RefUnwindSafe for ControlInterface
impl Send for ControlInterface
impl Sync for ControlInterface
impl Unpin for ControlInterface
impl !UnwindSafe for ControlInterface
Blanket Implementations§
Source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for Swhere
T: Real + Zero + Arithmetics + Clone,
Swp: WhitePoint<T>,
Dwp: WhitePoint<T>,
D: AdaptFrom<S, Swp, Dwp, T>,
Source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<T>,
Source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
Source§impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
impl<T, C> ArraysFrom<C> for Twhere
C: IntoArrays<T>,
Source§fn arrays_from(colors: C) -> T
fn arrays_from(colors: C) -> T
Source§impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
impl<T, C> ArraysInto<C> for Twhere
C: FromArrays<T>,
Source§fn arrays_into(self) -> C
fn arrays_into(self) -> C
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<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
impl<WpParam, T, U> Cam16IntoUnclamped<WpParam, T> for Uwhere
T: FromCam16Unclamped<WpParam, U>,
Source§type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
type Scalar = <T as FromCam16Unclamped<WpParam, U>>::Scalar
parameters
when converting.Source§fn cam16_into_unclamped(
self,
parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>,
) -> T
fn cam16_into_unclamped( self, parameters: BakedParameters<WpParam, <U as Cam16IntoUnclamped<WpParam, T>>::Scalar>, ) -> T
self
into C
, using the provided parameters.Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
impl<T, C> ComponentsFrom<C> for Twhere
C: IntoComponents<T>,
Source§fn components_from(colors: C) -> T
fn components_from(colors: C) -> T
Source§impl<T> FromAngle<T> for T
impl<T> FromAngle<T> for T
Source§fn from_angle(angle: T) -> T
fn from_angle(angle: T) -> T
angle
.Source§impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
impl<T, U> FromStimulus<U> for Twhere
U: IntoStimulus<T>,
Source§fn from_stimulus(other: U) -> T
fn from_stimulus(other: U) -> T
other
into Self
, while performing the appropriate scaling,
rounding and clamping.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
impl<T, U> IntoAngle<U> for Twhere
U: FromAngle<T>,
Source§fn into_angle(self) -> U
fn into_angle(self) -> U
T
.Source§impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
impl<WpParam, T, U> IntoCam16Unclamped<WpParam, T> for Uwhere
T: Cam16FromUnclamped<WpParam, U>,
Source§type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
type Scalar = <T as Cam16FromUnclamped<WpParam, U>>::Scalar
parameters
when converting.Source§fn into_cam16_unclamped(
self,
parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>,
) -> T
fn into_cam16_unclamped( self, parameters: BakedParameters<WpParam, <U as IntoCam16Unclamped<WpParam, T>>::Scalar>, ) -> T
self
into C
, using the provided parameters.Source§impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
impl<T, U> IntoColor<U> for Twhere
U: FromColor<T>,
Source§fn into_color(self) -> U
fn into_color(self) -> U
Source§impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
impl<T, U> IntoColorUnclamped<U> for Twhere
U: FromColorUnclamped<T>,
Source§fn into_color_unclamped(self) -> U
fn into_color_unclamped(self) -> U
Source§impl<T> IntoStimulus<T> for T
impl<T> IntoStimulus<T> for T
Source§fn into_stimulus(self) -> T
fn into_stimulus(self) -> T
self
into T
, while performing the appropriate scaling,
rounding and clamping.Source§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.Source§impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
impl<T, C> TryComponentsInto<C> for Twhere
C: TryFromComponents<T>,
Source§type Error = <C as TryFromComponents<T>>::Error
type Error = <C as TryFromComponents<T>>::Error
try_into_colors
fails to cast.Source§fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
fn try_components_into(self) -> Result<C, <T as TryComponentsInto<C>>::Error>
Source§impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
impl<T, U> TryIntoColor<U> for Twhere
U: TryFromColor<T>,
Source§fn try_into_color(self) -> Result<U, OutOfBounds<U>>
fn try_into_color(self) -> Result<U, OutOfBounds<U>>
OutOfBounds
error is returned which contains
the unclamped color. Read more