diff --git a/bluerobotics_ping/bluebps/enum.Messages.html b/bluerobotics_ping/bluebps/enum.Messages.html index aa0dafd15..d85d0e32b 100644 --- a/bluerobotics_ping/bluebps/enum.Messages.html +++ b/bluerobotics_ping/bluebps/enum.Messages.html @@ -1,26 +1,26 @@ Messages in bluerobotics_ping::bluebps - Rust
pub enum Messages {
-
Show 20 variants State(StateStruct), - SetTemperatureMax(SetTemperatureMaxStruct), - CellTimeout(CellTimeoutStruct), - EraseFlash(EraseFlashStruct), - TemperatureMax(TemperatureMaxStruct), - CellVoltageMin(CellVoltageMinStruct), +
Show 20 variants SetTemperatureTimeout(SetTemperatureTimeoutStruct), CurrentTimeout(CurrentTimeoutStruct), - Reboot(RebootStruct), + Events(EventsStruct), + SetCurrentTimeout(SetCurrentTimeoutStruct), + SetStreamRate(SetStreamRateStruct), + SetLpfSampleFrequency(SetLpfSampleFrequencyStruct), + CurrentMax(CurrentMaxStruct), SetCellVoltageTimeout(SetCellVoltageTimeoutStruct), - SetCellVoltageMinimum(SetCellVoltageMinimumStruct), + SetTemperatureMax(SetTemperatureMaxStruct), SetLpfSetting(SetLpfSettingStruct), TemperatureTimeout(TemperatureTimeoutStruct), - SetLpfSampleFrequency(SetLpfSampleFrequencyStruct), - SetCurrentTimeout(SetCurrentTimeoutStruct), - ResetDefaults(ResetDefaultsStruct), - SetTemperatureTimeout(SetTemperatureTimeoutStruct), - SetStreamRate(SetStreamRateStruct), + TemperatureMax(TemperatureMaxStruct), + Reboot(RebootStruct), + SetCellVoltageMinimum(SetCellVoltageMinimumStruct), + EraseFlash(EraseFlashStruct), SetCurrentMax(SetCurrentMaxStruct), - CurrentMax(CurrentMaxStruct), - Events(EventsStruct), -
}

Variants§

§

State(StateStruct)

§

SetTemperatureMax(SetTemperatureMaxStruct)

§

CellTimeout(CellTimeoutStruct)

§

EraseFlash(EraseFlashStruct)

§

TemperatureMax(TemperatureMaxStruct)

§

CellVoltageMin(CellVoltageMinStruct)

§

CurrentTimeout(CurrentTimeoutStruct)

§

Reboot(RebootStruct)

§

SetCellVoltageTimeout(SetCellVoltageTimeoutStruct)

§

SetCellVoltageMinimum(SetCellVoltageMinimumStruct)

§

SetLpfSetting(SetLpfSettingStruct)

§

TemperatureTimeout(TemperatureTimeoutStruct)

§

SetLpfSampleFrequency(SetLpfSampleFrequencyStruct)

§

SetCurrentTimeout(SetCurrentTimeoutStruct)

§

ResetDefaults(ResetDefaultsStruct)

§

SetTemperatureTimeout(SetTemperatureTimeoutStruct)

§

SetStreamRate(SetStreamRateStruct)

§

SetCurrentMax(SetCurrentMaxStruct)

§

CurrentMax(CurrentMaxStruct)

§

Events(EventsStruct)

Implementations§

source§

impl Messages

source

pub fn inner<T: 'static>(&self) -> Option<&T>

Trait Implementations§

source§

impl Clone for Messages

source§

fn clone(&self) -> Messages

Returns a copy 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 Messages

source§

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

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

impl DeserializeGenericMessage for Messages

source§

fn deserialize(message_id: u16, payload: &[u8]) -> Result<Self, &'static str>

source§

impl PartialEq for Messages

source§

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

This method tests for self and other values to be equal, and is used + ResetDefaults(ResetDefaultsStruct), + CellVoltageMin(CellVoltageMinStruct), + State(StateStruct), + CellTimeout(CellTimeoutStruct), +
}

Variants§

§

SetTemperatureTimeout(SetTemperatureTimeoutStruct)

§

CurrentTimeout(CurrentTimeoutStruct)

§

Events(EventsStruct)

§

SetCurrentTimeout(SetCurrentTimeoutStruct)

§

SetStreamRate(SetStreamRateStruct)

§

SetLpfSampleFrequency(SetLpfSampleFrequencyStruct)

§

CurrentMax(CurrentMaxStruct)

§

SetCellVoltageTimeout(SetCellVoltageTimeoutStruct)

§

SetTemperatureMax(SetTemperatureMaxStruct)

§

SetLpfSetting(SetLpfSettingStruct)

§

TemperatureTimeout(TemperatureTimeoutStruct)

§

TemperatureMax(TemperatureMaxStruct)

§

Reboot(RebootStruct)

§

SetCellVoltageMinimum(SetCellVoltageMinimumStruct)

§

EraseFlash(EraseFlashStruct)

§

SetCurrentMax(SetCurrentMaxStruct)

§

ResetDefaults(ResetDefaultsStruct)

§

CellVoltageMin(CellVoltageMinStruct)

§

State(StateStruct)

§

CellTimeout(CellTimeoutStruct)

Implementations§

source§

impl Messages

source

pub fn inner<T: 'static>(&self) -> Option<&T>

Trait Implementations§

source§

impl Clone for Messages

source§

fn clone(&self) -> Messages

Returns a copy 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 Messages

source§

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

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

impl DeserializeGenericMessage for Messages

source§

fn deserialize(message_id: u16, payload: &[u8]) -> Result<Self, &'static str>

source§

impl PartialEq for Messages

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PingMessage for Messages

source§

impl SerializePayload for Messages

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for Messages

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 diff --git a/bluerobotics_ping/bluebps/struct.CellTimeoutStruct.html b/bluerobotics_ping/bluebps/struct.CellTimeoutStruct.html index 443ae048b..08fa79f86 100644 --- a/bluerobotics_ping/bluebps/struct.CellTimeoutStruct.html +++ b/bluerobotics_ping/bluebps/struct.CellTimeoutStruct.html @@ -1,11 +1,11 @@ CellTimeoutStruct in bluerobotics_ping::bluebps - Rust -
pub struct CellTimeoutStruct {
+    
pub struct CellTimeoutStruct {
     pub timeout: u16,
 }
Expand description

Get the undervoltage timeout

Fields§

§timeout: u16

If an individual cell exceeds the configured limit for this duration of time, the power will be locked-out

-

Trait Implementations§

source§

impl Clone for CellTimeoutStruct

source§

fn clone(&self) -> CellTimeoutStruct

Returns a copy 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 CellTimeoutStruct

source§

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

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

impl Default for CellTimeoutStruct

source§

fn default() -> CellTimeoutStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for CellTimeoutStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for CellTimeoutStruct

source§

fn id() -> u16

source§

impl PartialEq for CellTimeoutStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for CellTimeoutStruct

source§

fn clone(&self) -> CellTimeoutStruct

Returns a copy 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 CellTimeoutStruct

source§

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

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

impl Default for CellTimeoutStruct

source§

fn default() -> CellTimeoutStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for CellTimeoutStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for CellTimeoutStruct

source§

fn id() -> u16

source§

impl PartialEq for CellTimeoutStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for CellTimeoutStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for CellTimeoutStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for CellTimeoutStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for CellTimeoutStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.CellVoltageMinStruct.html b/bluerobotics_ping/bluebps/struct.CellVoltageMinStruct.html index cca422d4e..8e541c4a7 100644 --- a/bluerobotics_ping/bluebps/struct.CellVoltageMinStruct.html +++ b/bluerobotics_ping/bluebps/struct.CellVoltageMinStruct.html @@ -1,11 +1,11 @@ CellVoltageMinStruct in bluerobotics_ping::bluebps - Rust -
pub struct CellVoltageMinStruct {
+    
pub struct CellVoltageMinStruct {
     pub limit: u16,
 }
Expand description

Get the minimum allowed cell voltage

Fields§

§limit: u16

The minimum voltage allowed for any individual cell. 0~5000: 0~5V

-

Trait Implementations§

source§

impl Clone for CellVoltageMinStruct

source§

fn clone(&self) -> CellVoltageMinStruct

Returns a copy 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 CellVoltageMinStruct

source§

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

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

impl Default for CellVoltageMinStruct

source§

fn default() -> CellVoltageMinStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for CellVoltageMinStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for CellVoltageMinStruct

source§

fn id() -> u16

source§

impl PartialEq for CellVoltageMinStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for CellVoltageMinStruct

source§

fn clone(&self) -> CellVoltageMinStruct

Returns a copy 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 CellVoltageMinStruct

source§

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

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

impl Default for CellVoltageMinStruct

source§

fn default() -> CellVoltageMinStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for CellVoltageMinStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for CellVoltageMinStruct

source§

fn id() -> u16

source§

impl PartialEq for CellVoltageMinStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for CellVoltageMinStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for CellVoltageMinStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for CellVoltageMinStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for CellVoltageMinStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.CurrentMaxStruct.html b/bluerobotics_ping/bluebps/struct.CurrentMaxStruct.html index 20baa7408..70d1e9ab7 100644 --- a/bluerobotics_ping/bluebps/struct.CurrentMaxStruct.html +++ b/bluerobotics_ping/bluebps/struct.CurrentMaxStruct.html @@ -1,11 +1,11 @@ CurrentMaxStruct in bluerobotics_ping::bluebps - Rust -
pub struct CurrentMaxStruct {
+    
pub struct CurrentMaxStruct {
     pub limit: u16,
 }
Expand description

get the maximum allowed battery current

Fields§

§limit: u16

The maximum allowed battery current 0~20000 = 0~200A

-

Trait Implementations§

source§

impl Clone for CurrentMaxStruct

source§

fn clone(&self) -> CurrentMaxStruct

Returns a copy 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 CurrentMaxStruct

source§

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

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

impl Default for CurrentMaxStruct

source§

fn default() -> CurrentMaxStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for CurrentMaxStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for CurrentMaxStruct

source§

fn id() -> u16

source§

impl PartialEq for CurrentMaxStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for CurrentMaxStruct

source§

fn clone(&self) -> CurrentMaxStruct

Returns a copy 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 CurrentMaxStruct

source§

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

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

impl Default for CurrentMaxStruct

source§

fn default() -> CurrentMaxStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for CurrentMaxStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for CurrentMaxStruct

source§

fn id() -> u16

source§

impl PartialEq for CurrentMaxStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for CurrentMaxStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for CurrentMaxStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for CurrentMaxStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for CurrentMaxStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.CurrentTimeoutStruct.html b/bluerobotics_ping/bluebps/struct.CurrentTimeoutStruct.html index a057d2299..f5b08ec31 100644 --- a/bluerobotics_ping/bluebps/struct.CurrentTimeoutStruct.html +++ b/bluerobotics_ping/bluebps/struct.CurrentTimeoutStruct.html @@ -1,11 +1,11 @@ CurrentTimeoutStruct in bluerobotics_ping::bluebps - Rust -
pub struct CurrentTimeoutStruct {
+    
pub struct CurrentTimeoutStruct {
     pub timeout: u16,
 }
Expand description

Get the over-current timeout

Fields§

§timeout: u16

If the battery current exceeds the configured limit for this duration of time, the power will be locked-out

-

Trait Implementations§

source§

impl Clone for CurrentTimeoutStruct

source§

fn clone(&self) -> CurrentTimeoutStruct

Returns a copy 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 CurrentTimeoutStruct

source§

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

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

impl Default for CurrentTimeoutStruct

source§

fn default() -> CurrentTimeoutStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for CurrentTimeoutStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for CurrentTimeoutStruct

source§

fn id() -> u16

source§

impl PartialEq for CurrentTimeoutStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for CurrentTimeoutStruct

source§

fn clone(&self) -> CurrentTimeoutStruct

Returns a copy 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 CurrentTimeoutStruct

source§

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

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

impl Default for CurrentTimeoutStruct

source§

fn default() -> CurrentTimeoutStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for CurrentTimeoutStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for CurrentTimeoutStruct

source§

fn id() -> u16

source§

impl PartialEq for CurrentTimeoutStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for CurrentTimeoutStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for CurrentTimeoutStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for CurrentTimeoutStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for CurrentTimeoutStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.Device.html b/bluerobotics_ping/bluebps/struct.Device.html index 064024959..0ff472edb 100644 --- a/bluerobotics_ping/bluebps/struct.Device.html +++ b/bluerobotics_ping/bluebps/struct.Device.html @@ -2,80 +2,80 @@
pub struct Device {
     pub common: Common,
 }

Fields§

§common: Common

Implementations§

source§

impl Device

source

pub fn new<T>(io: T) -> Self
where - T: AsyncRead + AsyncWrite + Unpin + Send + 'static,

source

pub async fn state(&self) -> Result<StateStruct, PingError>

Get the current state of the device

-
source

pub async fn set_temperature_max(&self, limit: u16) -> Result<(), PingError>

Set the maximum allowed battery temperature

+ T: AsyncRead + AsyncWrite + Unpin + Send + 'static,

source

pub async fn set_temperature_timeout( + &self, + timeout: u16 +) -> Result<(), PingError>

Set the over-temperature timeout

§Arguments
    -
  • limit [centidegrees Centigrade] - The maximum temperature allowed at the thermistor probe installed on the battery. 0~5000: 0~5V
  • +
  • timeout [millisecond] - If the battery temperature exceeds the configured limit for this duration of time, the power will be locked-out
-
source

pub async fn cell_timeout(&self) -> Result<CellTimeoutStruct, PingError>

Get the undervoltage timeout

-
source

pub async fn erase_flash(&self) -> Result<(), PingError>

Erase flash, including parameter configuration and event counters. The mcu has a limited number of write/erase cycles (1k)!

-
§Arguments
source

pub async fn temperature_max(&self) -> Result<TemperatureMaxStruct, PingError>

Get the maximum allowed battery temperature

-
source

pub async fn cell_voltage_min(&self) -> Result<CellVoltageMinStruct, PingError>

Get the minimum allowed cell voltage

-
source

pub async fn current_timeout(&self) -> Result<CurrentTimeoutStruct, PingError>

Get the over-current timeout

-
source

pub async fn reboot(&self, goto_bootloader: u8) -> Result<(), PingError>

reboot the system

+
source

pub async fn current_timeout(&self) -> Result<CurrentTimeoutStruct, PingError>

Get the over-current timeout

+
source

pub async fn events(&self) -> Result<EventsStruct, PingError>

A record of events causing a power lock-out. These numbers are non-volatile and reset only with the erase_flash control message.

+
source

pub async fn set_current_timeout(&self, timeout: u16) -> Result<(), PingError>

Set the over-current timeout

+
§Arguments
+
    +
  • timeout [millisecond] - If the battery current exceeds the configured limit for this duration of time, the power will be locked-out
  • +
+
source

pub async fn set_stream_rate(&self, rate: u32) -> Result<(), PingError>

Set the frequency to automatically output state messages.

§Arguments
    -
  • goto_bootloader - 0 = normal reboot, run main application after reboot 1 = hold the device in bootloader after reboot
  • +
  • rate [Hz] - Rate to stream state messages. 0~100000Hz
-
source

pub async fn set_cell_voltage_timeout( +

source

pub async fn set_lpf_sample_frequency( &self, - timeout: u16 -) -> Result<(), PingError>

Set the under-voltage timeout

+ sample_frequency: u32 +) -> Result<(), PingError>

the frequency to take adc samples and run the filter.

§Arguments
    -
  • timeout [millisecond] - If an individual cell exceeds the configured limit for this duration of time, the power will be locked-out
  • +
  • sample_frequency - sample frequency in Hz. 1~100000
-
source

pub async fn set_cell_voltage_minimum( +

source

pub async fn current_max(&self) -> Result<CurrentMaxStruct, PingError>

get the maximum allowed battery current

+
source

pub async fn set_cell_voltage_timeout( &self, - limit: u16 -) -> Result<(), PingError>

Set the minimum allowed cell voltage

+ timeout: u16 +) -> Result<(), PingError>

Set the under-voltage timeout

§Arguments
    -
  • limit [millivolt] - The minimum voltage allowed for any individual cell. 0~5000: 0~5V
  • +
  • timeout [millisecond] - If an individual cell exceeds the configured limit for this duration of time, the power will be locked-out
-
source

pub async fn set_lpf_setting(&self, setting: u16) -> Result<(), PingError>

Low pass filter setting. This value represents x in the equation value = value * x + sample * (1-x). 0.0 = no filtering, 0.99 = heavy filtering.

+
source

pub async fn set_temperature_max(&self, limit: u16) -> Result<(), PingError>

Set the maximum allowed battery temperature

§Arguments
    -
  • setting - 0~999: x = 0~0.999
  • +
  • limit [centidegrees Centigrade] - The maximum temperature allowed at the thermistor probe installed on the battery. 0~5000: 0~5V
-
source

pub async fn temperature_timeout( - &self -) -> Result<TemperatureTimeoutStruct, PingError>

Get the over-temperature timeout

-
source

pub async fn set_lpf_sample_frequency( - &self, - sample_frequency: u32 -) -> Result<(), PingError>

the frequency to take adc samples and run the filter.

+
source

pub async fn set_lpf_setting(&self, setting: u16) -> Result<(), PingError>

Low pass filter setting. This value represents x in the equation value = value * x + sample * (1-x). 0.0 = no filtering, 0.99 = heavy filtering.

§Arguments
    -
  • sample_frequency - sample frequency in Hz. 1~100000
  • +
  • setting - 0~999: x = 0~0.999
-
source

pub async fn set_current_timeout(&self, timeout: u16) -> Result<(), PingError>

Set the over-current timeout

+
source

pub async fn temperature_timeout( + &self +) -> Result<TemperatureTimeoutStruct, PingError>

Get the over-temperature timeout

+
source

pub async fn temperature_max(&self) -> Result<TemperatureMaxStruct, PingError>

Get the maximum allowed battery temperature

+
source

pub async fn reboot(&self, goto_bootloader: u8) -> Result<(), PingError>

reboot the system

§Arguments
    -
  • timeout [millisecond] - If the battery current exceeds the configured limit for this duration of time, the power will be locked-out
  • +
  • goto_bootloader - 0 = normal reboot, run main application after reboot 1 = hold the device in bootloader after reboot
-
source

pub async fn reset_defaults(&self) -> Result<(), PingError>

Reset parameter configuration to default values.

-
§Arguments
source

pub async fn set_temperature_timeout( +

source

pub async fn set_cell_voltage_minimum( &self, - timeout: u16 -) -> Result<(), PingError>

Set the over-temperature timeout

-
§Arguments
+ limit: u16 +) -> Result<(), PingError>

Set the minimum allowed cell voltage

+
§Arguments
    -
  • timeout [millisecond] - If the battery temperature exceeds the configured limit for this duration of time, the power will be locked-out
  • +
  • limit [millivolt] - The minimum voltage allowed for any individual cell. 0~5000: 0~5V
-
source

pub async fn set_stream_rate(&self, rate: u32) -> Result<(), PingError>

Set the frequency to automatically output state messages.

+
source

pub async fn erase_flash(&self) -> Result<(), PingError>

Erase flash, including parameter configuration and event counters. The mcu has a limited number of write/erase cycles (1k)!

+
§Arguments
source

pub async fn set_current_max(&self, limit: u16) -> Result<(), PingError>

Set the maximum allowed battery current

§Arguments
    -
  • rate [Hz] - Rate to stream state messages. 0~100000Hz
  • -
-
source

pub async fn set_current_max(&self, limit: u16) -> Result<(), PingError>

Set the maximum allowed battery current

-
§Arguments
-
  • limit [centiampere] - The maximum allowed battery current 0~20000 = 0~200A
-
source

pub async fn current_max(&self) -> Result<CurrentMaxStruct, PingError>

get the maximum allowed battery current

-
source

pub async fn events(&self) -> Result<EventsStruct, PingError>

A record of events causing a power lock-out. These numbers are non-volatile and reset only with the erase_flash control message.

+
source

pub async fn reset_defaults(&self) -> Result<(), PingError>

Reset parameter configuration to default values.

+
§Arguments
source

pub async fn cell_voltage_min(&self) -> Result<CellVoltageMinStruct, PingError>

Get the minimum allowed cell voltage

+
source

pub async fn state(&self) -> Result<StateStruct, PingError>

Get the current state of the device

+
source

pub async fn cell_timeout(&self) -> Result<CellTimeoutStruct, PingError>

Get the undervoltage timeout

Trait Implementations§

source§

impl PingDevice for Device

source§

fn get_common(&self) -> &Common

source§

fn get_mut_common(&mut self) -> &mut Common

source§

fn subscribe(&self) -> Receiver<ProtocolMessage>

source§

async fn send_general_request(&self, requested_id: u16) -> Result<(), PingError>

source§

async fn wait_for_message<T>( &self, receiver: Receiver<ProtocolMessage> diff --git a/bluerobotics_ping/bluebps/struct.EraseFlashStruct.html b/bluerobotics_ping/bluebps/struct.EraseFlashStruct.html index c32f4b24b..4365197ce 100644 --- a/bluerobotics_ping/bluebps/struct.EraseFlashStruct.html +++ b/bluerobotics_ping/bluebps/struct.EraseFlashStruct.html @@ -1,8 +1,8 @@ EraseFlashStruct in bluerobotics_ping::bluebps - Rust -
pub struct EraseFlashStruct {}
Expand description

Erase flash, including parameter configuration and event counters. The mcu has a limited number of write/erase cycles (1k)!

-

Trait Implementations§

source§

impl Clone for EraseFlashStruct

source§

fn clone(&self) -> EraseFlashStruct

Returns a copy 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 EraseFlashStruct

source§

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

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

impl Default for EraseFlashStruct

source§

fn default() -> EraseFlashStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for EraseFlashStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for EraseFlashStruct

source§

fn id() -> u16

source§

impl PartialEq for EraseFlashStruct

source§

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

This method tests for self and other values to be equal, and is used +
pub struct EraseFlashStruct {}
Expand description

Erase flash, including parameter configuration and event counters. The mcu has a limited number of write/erase cycles (1k)!

+

Trait Implementations§

source§

impl Clone for EraseFlashStruct

source§

fn clone(&self) -> EraseFlashStruct

Returns a copy 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 EraseFlashStruct

source§

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

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

impl Default for EraseFlashStruct

source§

fn default() -> EraseFlashStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for EraseFlashStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for EraseFlashStruct

source§

fn id() -> u16

source§

impl PartialEq for EraseFlashStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for EraseFlashStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for EraseFlashStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for EraseFlashStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for EraseFlashStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.EventsStruct.html b/bluerobotics_ping/bluebps/struct.EventsStruct.html index e3a4cc4d1..32310875a 100644 --- a/bluerobotics_ping/bluebps/struct.EventsStruct.html +++ b/bluerobotics_ping/bluebps/struct.EventsStruct.html @@ -1,5 +1,5 @@ EventsStruct in bluerobotics_ping::bluebps - Rust -
pub struct EventsStruct {
+    
pub struct EventsStruct {
     pub voltage: u16,
     pub current: u16,
     pub temperature: u16,
@@ -7,9 +7,9 @@
 

Fields§

§voltage: u16

The number of under-voltage events

§current: u16

The number of over-current events

§temperature: u16

The number of over-temperature events

-

Trait Implementations§

source§

impl Clone for EventsStruct

source§

fn clone(&self) -> EventsStruct

Returns a copy 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 EventsStruct

source§

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

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

impl Default for EventsStruct

source§

fn default() -> EventsStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for EventsStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for EventsStruct

source§

fn id() -> u16

source§

impl PartialEq for EventsStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for EventsStruct

source§

fn clone(&self) -> EventsStruct

Returns a copy 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 EventsStruct

source§

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

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

impl Default for EventsStruct

source§

fn default() -> EventsStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for EventsStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for EventsStruct

source§

fn id() -> u16

source§

impl PartialEq for EventsStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for EventsStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for EventsStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for EventsStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for EventsStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.RebootStruct.html b/bluerobotics_ping/bluebps/struct.RebootStruct.html index 3b3747301..c3884b38d 100644 --- a/bluerobotics_ping/bluebps/struct.RebootStruct.html +++ b/bluerobotics_ping/bluebps/struct.RebootStruct.html @@ -1,11 +1,11 @@ RebootStruct in bluerobotics_ping::bluebps - Rust -
pub struct RebootStruct {
+    
pub struct RebootStruct {
     pub goto_bootloader: u8,
 }
Expand description

reboot the system

Fields§

§goto_bootloader: u8

0 = normal reboot, run main application after reboot 1 = hold the device in bootloader after reboot

-

Trait Implementations§

source§

impl Clone for RebootStruct

source§

fn clone(&self) -> RebootStruct

Returns a copy 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 RebootStruct

source§

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

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

impl Default for RebootStruct

source§

fn default() -> RebootStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for RebootStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for RebootStruct

source§

fn id() -> u16

source§

impl PartialEq for RebootStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for RebootStruct

source§

fn clone(&self) -> RebootStruct

Returns a copy 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 RebootStruct

source§

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

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

impl Default for RebootStruct

source§

fn default() -> RebootStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for RebootStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for RebootStruct

source§

fn id() -> u16

source§

impl PartialEq for RebootStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for RebootStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for RebootStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for RebootStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for RebootStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.ResetDefaultsStruct.html b/bluerobotics_ping/bluebps/struct.ResetDefaultsStruct.html index 088343ea3..5f37a6349 100644 --- a/bluerobotics_ping/bluebps/struct.ResetDefaultsStruct.html +++ b/bluerobotics_ping/bluebps/struct.ResetDefaultsStruct.html @@ -1,8 +1,8 @@ ResetDefaultsStruct in bluerobotics_ping::bluebps - Rust -
pub struct ResetDefaultsStruct {}
Expand description

Reset parameter configuration to default values.

-

Trait Implementations§

source§

impl Clone for ResetDefaultsStruct

source§

fn clone(&self) -> ResetDefaultsStruct

Returns a copy 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 ResetDefaultsStruct

source§

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

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

impl Default for ResetDefaultsStruct

source§

fn default() -> ResetDefaultsStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ResetDefaultsStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ResetDefaultsStruct

source§

fn id() -> u16

source§

impl PartialEq for ResetDefaultsStruct

source§

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

This method tests for self and other values to be equal, and is used +
pub struct ResetDefaultsStruct {}
Expand description

Reset parameter configuration to default values.

+

Trait Implementations§

source§

impl Clone for ResetDefaultsStruct

source§

fn clone(&self) -> ResetDefaultsStruct

Returns a copy 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 ResetDefaultsStruct

source§

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

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

impl Default for ResetDefaultsStruct

source§

fn default() -> ResetDefaultsStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ResetDefaultsStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ResetDefaultsStruct

source§

fn id() -> u16

source§

impl PartialEq for ResetDefaultsStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for ResetDefaultsStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ResetDefaultsStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for ResetDefaultsStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ResetDefaultsStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.SetCellVoltageMinimumStruct.html b/bluerobotics_ping/bluebps/struct.SetCellVoltageMinimumStruct.html index c6e27372c..337d1f4e9 100644 --- a/bluerobotics_ping/bluebps/struct.SetCellVoltageMinimumStruct.html +++ b/bluerobotics_ping/bluebps/struct.SetCellVoltageMinimumStruct.html @@ -1,11 +1,11 @@ SetCellVoltageMinimumStruct in bluerobotics_ping::bluebps - Rust -
pub struct SetCellVoltageMinimumStruct {
+    
pub struct SetCellVoltageMinimumStruct {
     pub limit: u16,
 }
Expand description

Set the minimum allowed cell voltage

Fields§

§limit: u16

The minimum voltage allowed for any individual cell. 0~5000: 0~5V

-

Trait Implementations§

source§

impl Clone for SetCellVoltageMinimumStruct

source§

fn clone(&self) -> SetCellVoltageMinimumStruct

Returns a copy 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 SetCellVoltageMinimumStruct

source§

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

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

impl Default for SetCellVoltageMinimumStruct

source§

fn default() -> SetCellVoltageMinimumStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetCellVoltageMinimumStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetCellVoltageMinimumStruct

source§

fn id() -> u16

source§

impl PartialEq for SetCellVoltageMinimumStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetCellVoltageMinimumStruct

source§

fn clone(&self) -> SetCellVoltageMinimumStruct

Returns a copy 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 SetCellVoltageMinimumStruct

source§

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

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

impl Default for SetCellVoltageMinimumStruct

source§

fn default() -> SetCellVoltageMinimumStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetCellVoltageMinimumStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetCellVoltageMinimumStruct

source§

fn id() -> u16

source§

impl PartialEq for SetCellVoltageMinimumStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetCellVoltageMinimumStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetCellVoltageMinimumStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetCellVoltageMinimumStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetCellVoltageMinimumStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.SetCellVoltageTimeoutStruct.html b/bluerobotics_ping/bluebps/struct.SetCellVoltageTimeoutStruct.html index 23d6661af..aa4fd8228 100644 --- a/bluerobotics_ping/bluebps/struct.SetCellVoltageTimeoutStruct.html +++ b/bluerobotics_ping/bluebps/struct.SetCellVoltageTimeoutStruct.html @@ -1,11 +1,11 @@ SetCellVoltageTimeoutStruct in bluerobotics_ping::bluebps - Rust -
pub struct SetCellVoltageTimeoutStruct {
+    
pub struct SetCellVoltageTimeoutStruct {
     pub timeout: u16,
 }
Expand description

Set the under-voltage timeout

Fields§

§timeout: u16

If an individual cell exceeds the configured limit for this duration of time, the power will be locked-out

-

Trait Implementations§

source§

impl Clone for SetCellVoltageTimeoutStruct

source§

fn clone(&self) -> SetCellVoltageTimeoutStruct

Returns a copy 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 SetCellVoltageTimeoutStruct

source§

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

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

impl Default for SetCellVoltageTimeoutStruct

source§

fn default() -> SetCellVoltageTimeoutStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetCellVoltageTimeoutStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetCellVoltageTimeoutStruct

source§

fn id() -> u16

source§

impl PartialEq for SetCellVoltageTimeoutStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetCellVoltageTimeoutStruct

source§

fn clone(&self) -> SetCellVoltageTimeoutStruct

Returns a copy 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 SetCellVoltageTimeoutStruct

source§

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

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

impl Default for SetCellVoltageTimeoutStruct

source§

fn default() -> SetCellVoltageTimeoutStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetCellVoltageTimeoutStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetCellVoltageTimeoutStruct

source§

fn id() -> u16

source§

impl PartialEq for SetCellVoltageTimeoutStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetCellVoltageTimeoutStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetCellVoltageTimeoutStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetCellVoltageTimeoutStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetCellVoltageTimeoutStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.SetCurrentMaxStruct.html b/bluerobotics_ping/bluebps/struct.SetCurrentMaxStruct.html index 93187da4b..631650795 100644 --- a/bluerobotics_ping/bluebps/struct.SetCurrentMaxStruct.html +++ b/bluerobotics_ping/bluebps/struct.SetCurrentMaxStruct.html @@ -1,11 +1,11 @@ SetCurrentMaxStruct in bluerobotics_ping::bluebps - Rust -
pub struct SetCurrentMaxStruct {
+    
pub struct SetCurrentMaxStruct {
     pub limit: u16,
 }
Expand description

Set the maximum allowed battery current

Fields§

§limit: u16

The maximum allowed battery current 0~20000 = 0~200A

-

Trait Implementations§

source§

impl Clone for SetCurrentMaxStruct

source§

fn clone(&self) -> SetCurrentMaxStruct

Returns a copy 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 SetCurrentMaxStruct

source§

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

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

impl Default for SetCurrentMaxStruct

source§

fn default() -> SetCurrentMaxStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetCurrentMaxStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetCurrentMaxStruct

source§

fn id() -> u16

source§

impl PartialEq for SetCurrentMaxStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetCurrentMaxStruct

source§

fn clone(&self) -> SetCurrentMaxStruct

Returns a copy 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 SetCurrentMaxStruct

source§

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

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

impl Default for SetCurrentMaxStruct

source§

fn default() -> SetCurrentMaxStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetCurrentMaxStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetCurrentMaxStruct

source§

fn id() -> u16

source§

impl PartialEq for SetCurrentMaxStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetCurrentMaxStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetCurrentMaxStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetCurrentMaxStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetCurrentMaxStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.SetCurrentTimeoutStruct.html b/bluerobotics_ping/bluebps/struct.SetCurrentTimeoutStruct.html index eee0d0405..80b1658e5 100644 --- a/bluerobotics_ping/bluebps/struct.SetCurrentTimeoutStruct.html +++ b/bluerobotics_ping/bluebps/struct.SetCurrentTimeoutStruct.html @@ -1,11 +1,11 @@ SetCurrentTimeoutStruct in bluerobotics_ping::bluebps - Rust -
pub struct SetCurrentTimeoutStruct {
+    
pub struct SetCurrentTimeoutStruct {
     pub timeout: u16,
 }
Expand description

Set the over-current timeout

Fields§

§timeout: u16

If the battery current exceeds the configured limit for this duration of time, the power will be locked-out

-

Trait Implementations§

source§

impl Clone for SetCurrentTimeoutStruct

source§

fn clone(&self) -> SetCurrentTimeoutStruct

Returns a copy 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 SetCurrentTimeoutStruct

source§

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

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

impl Default for SetCurrentTimeoutStruct

source§

fn default() -> SetCurrentTimeoutStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetCurrentTimeoutStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetCurrentTimeoutStruct

source§

fn id() -> u16

source§

impl PartialEq for SetCurrentTimeoutStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetCurrentTimeoutStruct

source§

fn clone(&self) -> SetCurrentTimeoutStruct

Returns a copy 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 SetCurrentTimeoutStruct

source§

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

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

impl Default for SetCurrentTimeoutStruct

source§

fn default() -> SetCurrentTimeoutStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetCurrentTimeoutStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetCurrentTimeoutStruct

source§

fn id() -> u16

source§

impl PartialEq for SetCurrentTimeoutStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetCurrentTimeoutStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetCurrentTimeoutStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetCurrentTimeoutStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetCurrentTimeoutStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.SetLpfSampleFrequencyStruct.html b/bluerobotics_ping/bluebps/struct.SetLpfSampleFrequencyStruct.html index e99ed4e25..a9ffef886 100644 --- a/bluerobotics_ping/bluebps/struct.SetLpfSampleFrequencyStruct.html +++ b/bluerobotics_ping/bluebps/struct.SetLpfSampleFrequencyStruct.html @@ -1,11 +1,11 @@ SetLpfSampleFrequencyStruct in bluerobotics_ping::bluebps - Rust -
pub struct SetLpfSampleFrequencyStruct {
+    
pub struct SetLpfSampleFrequencyStruct {
     pub sample_frequency: u32,
 }
Expand description

the frequency to take adc samples and run the filter.

Fields§

§sample_frequency: u32

sample frequency in Hz. 1~100000

-

Trait Implementations§

source§

impl Clone for SetLpfSampleFrequencyStruct

source§

fn clone(&self) -> SetLpfSampleFrequencyStruct

Returns a copy 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 SetLpfSampleFrequencyStruct

source§

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

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

impl Default for SetLpfSampleFrequencyStruct

source§

fn default() -> SetLpfSampleFrequencyStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetLpfSampleFrequencyStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetLpfSampleFrequencyStruct

source§

fn id() -> u16

source§

impl PartialEq for SetLpfSampleFrequencyStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetLpfSampleFrequencyStruct

source§

fn clone(&self) -> SetLpfSampleFrequencyStruct

Returns a copy 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 SetLpfSampleFrequencyStruct

source§

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

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

impl Default for SetLpfSampleFrequencyStruct

source§

fn default() -> SetLpfSampleFrequencyStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetLpfSampleFrequencyStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetLpfSampleFrequencyStruct

source§

fn id() -> u16

source§

impl PartialEq for SetLpfSampleFrequencyStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetLpfSampleFrequencyStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetLpfSampleFrequencyStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetLpfSampleFrequencyStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetLpfSampleFrequencyStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.SetLpfSettingStruct.html b/bluerobotics_ping/bluebps/struct.SetLpfSettingStruct.html index f6074d763..c1aa294f2 100644 --- a/bluerobotics_ping/bluebps/struct.SetLpfSettingStruct.html +++ b/bluerobotics_ping/bluebps/struct.SetLpfSettingStruct.html @@ -1,11 +1,11 @@ SetLpfSettingStruct in bluerobotics_ping::bluebps - Rust -
pub struct SetLpfSettingStruct {
+    
pub struct SetLpfSettingStruct {
     pub setting: u16,
 }
Expand description

Low pass filter setting. This value represents x in the equation value = value * x + sample * (1-x). 0.0 = no filtering, 0.99 = heavy filtering.

Fields§

§setting: u16

0~999: x = 0~0.999

-

Trait Implementations§

source§

impl Clone for SetLpfSettingStruct

source§

fn clone(&self) -> SetLpfSettingStruct

Returns a copy 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 SetLpfSettingStruct

source§

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

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

impl Default for SetLpfSettingStruct

source§

fn default() -> SetLpfSettingStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetLpfSettingStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetLpfSettingStruct

source§

fn id() -> u16

source§

impl PartialEq for SetLpfSettingStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetLpfSettingStruct

source§

fn clone(&self) -> SetLpfSettingStruct

Returns a copy 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 SetLpfSettingStruct

source§

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

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

impl Default for SetLpfSettingStruct

source§

fn default() -> SetLpfSettingStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetLpfSettingStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetLpfSettingStruct

source§

fn id() -> u16

source§

impl PartialEq for SetLpfSettingStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetLpfSettingStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetLpfSettingStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetLpfSettingStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetLpfSettingStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.SetStreamRateStruct.html b/bluerobotics_ping/bluebps/struct.SetStreamRateStruct.html index d7817f3df..9ab253ff9 100644 --- a/bluerobotics_ping/bluebps/struct.SetStreamRateStruct.html +++ b/bluerobotics_ping/bluebps/struct.SetStreamRateStruct.html @@ -1,11 +1,11 @@ SetStreamRateStruct in bluerobotics_ping::bluebps - Rust -
pub struct SetStreamRateStruct {
+    
pub struct SetStreamRateStruct {
     pub rate: u32,
 }
Expand description

Set the frequency to automatically output state messages.

Fields§

§rate: u32

Rate to stream state messages. 0~100000Hz

-

Trait Implementations§

source§

impl Clone for SetStreamRateStruct

source§

fn clone(&self) -> SetStreamRateStruct

Returns a copy 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 SetStreamRateStruct

source§

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

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

impl Default for SetStreamRateStruct

source§

fn default() -> SetStreamRateStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetStreamRateStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetStreamRateStruct

source§

fn id() -> u16

source§

impl PartialEq for SetStreamRateStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetStreamRateStruct

source§

fn clone(&self) -> SetStreamRateStruct

Returns a copy 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 SetStreamRateStruct

source§

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

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

impl Default for SetStreamRateStruct

source§

fn default() -> SetStreamRateStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetStreamRateStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetStreamRateStruct

source§

fn id() -> u16

source§

impl PartialEq for SetStreamRateStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetStreamRateStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetStreamRateStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetStreamRateStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetStreamRateStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.SetTemperatureMaxStruct.html b/bluerobotics_ping/bluebps/struct.SetTemperatureMaxStruct.html index 923051098..b686de60b 100644 --- a/bluerobotics_ping/bluebps/struct.SetTemperatureMaxStruct.html +++ b/bluerobotics_ping/bluebps/struct.SetTemperatureMaxStruct.html @@ -1,11 +1,11 @@ SetTemperatureMaxStruct in bluerobotics_ping::bluebps - Rust -
pub struct SetTemperatureMaxStruct {
+    
pub struct SetTemperatureMaxStruct {
     pub limit: u16,
 }
Expand description

Set the maximum allowed battery temperature

Fields§

§limit: u16

The maximum temperature allowed at the thermistor probe installed on the battery. 0~5000: 0~5V

-

Trait Implementations§

source§

impl Clone for SetTemperatureMaxStruct

source§

fn clone(&self) -> SetTemperatureMaxStruct

Returns a copy 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 SetTemperatureMaxStruct

source§

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

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

impl Default for SetTemperatureMaxStruct

source§

fn default() -> SetTemperatureMaxStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetTemperatureMaxStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetTemperatureMaxStruct

source§

fn id() -> u16

source§

impl PartialEq for SetTemperatureMaxStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetTemperatureMaxStruct

source§

fn clone(&self) -> SetTemperatureMaxStruct

Returns a copy 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 SetTemperatureMaxStruct

source§

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

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

impl Default for SetTemperatureMaxStruct

source§

fn default() -> SetTemperatureMaxStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetTemperatureMaxStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetTemperatureMaxStruct

source§

fn id() -> u16

source§

impl PartialEq for SetTemperatureMaxStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetTemperatureMaxStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetTemperatureMaxStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetTemperatureMaxStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetTemperatureMaxStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.SetTemperatureTimeoutStruct.html b/bluerobotics_ping/bluebps/struct.SetTemperatureTimeoutStruct.html index eb533b17b..c3738c4e9 100644 --- a/bluerobotics_ping/bluebps/struct.SetTemperatureTimeoutStruct.html +++ b/bluerobotics_ping/bluebps/struct.SetTemperatureTimeoutStruct.html @@ -1,11 +1,11 @@ SetTemperatureTimeoutStruct in bluerobotics_ping::bluebps - Rust -
pub struct SetTemperatureTimeoutStruct {
+    
pub struct SetTemperatureTimeoutStruct {
     pub timeout: u16,
 }
Expand description

Set the over-temperature timeout

Fields§

§timeout: u16

If the battery temperature exceeds the configured limit for this duration of time, the power will be locked-out

-

Trait Implementations§

source§

impl Clone for SetTemperatureTimeoutStruct

source§

fn clone(&self) -> SetTemperatureTimeoutStruct

Returns a copy 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 SetTemperatureTimeoutStruct

source§

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

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

impl Default for SetTemperatureTimeoutStruct

source§

fn default() -> SetTemperatureTimeoutStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetTemperatureTimeoutStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetTemperatureTimeoutStruct

source§

fn id() -> u16

source§

impl PartialEq for SetTemperatureTimeoutStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetTemperatureTimeoutStruct

source§

fn clone(&self) -> SetTemperatureTimeoutStruct

Returns a copy 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 SetTemperatureTimeoutStruct

source§

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

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

impl Default for SetTemperatureTimeoutStruct

source§

fn default() -> SetTemperatureTimeoutStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetTemperatureTimeoutStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetTemperatureTimeoutStruct

source§

fn id() -> u16

source§

impl PartialEq for SetTemperatureTimeoutStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetTemperatureTimeoutStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetTemperatureTimeoutStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetTemperatureTimeoutStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetTemperatureTimeoutStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.StateStruct.html b/bluerobotics_ping/bluebps/struct.StateStruct.html index 3207dddc2..db566fc74 100644 --- a/bluerobotics_ping/bluebps/struct.StateStruct.html +++ b/bluerobotics_ping/bluebps/struct.StateStruct.html @@ -1,5 +1,5 @@ StateStruct in bluerobotics_ping::bluebps - Rust -
pub struct StateStruct {
+    
pub struct StateStruct {
     pub battery_voltage: u16,
     pub battery_current: u16,
     pub battery_temperature: u16,
@@ -14,9 +14,9 @@
 
§cpu_temperature: u16

The cpu temperature

§flags: u8

flags indicating if any of the configured limits are currently exceeded

§cell_voltages_length: u8

Array containing cell voltages

-
§cell_voltages: Vec<u16>

Trait Implementations§

source§

impl Clone for StateStruct

source§

fn clone(&self) -> StateStruct

Returns a copy 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 StateStruct

source§

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

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

impl Default for StateStruct

source§

fn default() -> StateStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for StateStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for StateStruct

source§

fn id() -> u16

source§

impl PartialEq for StateStruct

source§

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

This method tests for self and other values to be equal, and is used +
§cell_voltages: Vec<u16>

Trait Implementations§

source§

impl Clone for StateStruct

source§

fn clone(&self) -> StateStruct

Returns a copy 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 StateStruct

source§

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

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

impl Default for StateStruct

source§

fn default() -> StateStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for StateStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for StateStruct

source§

fn id() -> u16

source§

impl PartialEq for StateStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for StateStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for StateStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for StateStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for StateStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.TemperatureMaxStruct.html b/bluerobotics_ping/bluebps/struct.TemperatureMaxStruct.html index f8d3a2ea5..f8cbd7f64 100644 --- a/bluerobotics_ping/bluebps/struct.TemperatureMaxStruct.html +++ b/bluerobotics_ping/bluebps/struct.TemperatureMaxStruct.html @@ -1,11 +1,11 @@ TemperatureMaxStruct in bluerobotics_ping::bluebps - Rust -
pub struct TemperatureMaxStruct {
+    
pub struct TemperatureMaxStruct {
     pub limit: u16,
 }
Expand description

Get the maximum allowed battery temperature

Fields§

§limit: u16

The minimum voltage allowed for any individual cell. 0~5000: 0~5V

-

Trait Implementations§

source§

impl Clone for TemperatureMaxStruct

source§

fn clone(&self) -> TemperatureMaxStruct

Returns a copy 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 TemperatureMaxStruct

source§

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

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

impl Default for TemperatureMaxStruct

source§

fn default() -> TemperatureMaxStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for TemperatureMaxStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for TemperatureMaxStruct

source§

fn id() -> u16

source§

impl PartialEq for TemperatureMaxStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for TemperatureMaxStruct

source§

fn clone(&self) -> TemperatureMaxStruct

Returns a copy 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 TemperatureMaxStruct

source§

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

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

impl Default for TemperatureMaxStruct

source§

fn default() -> TemperatureMaxStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for TemperatureMaxStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for TemperatureMaxStruct

source§

fn id() -> u16

source§

impl PartialEq for TemperatureMaxStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for TemperatureMaxStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for TemperatureMaxStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for TemperatureMaxStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for TemperatureMaxStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/bluebps/struct.TemperatureTimeoutStruct.html b/bluerobotics_ping/bluebps/struct.TemperatureTimeoutStruct.html index 2c6cae4e3..7e9803428 100644 --- a/bluerobotics_ping/bluebps/struct.TemperatureTimeoutStruct.html +++ b/bluerobotics_ping/bluebps/struct.TemperatureTimeoutStruct.html @@ -1,11 +1,11 @@ TemperatureTimeoutStruct in bluerobotics_ping::bluebps - Rust -
pub struct TemperatureTimeoutStruct {
+    
pub struct TemperatureTimeoutStruct {
     pub timeout: u16,
 }
Expand description

Get the over-temperature timeout

Fields§

§timeout: u16

If the battery temperature exceeds the configured limit for this duration of time, the power will be locked-out

-

Trait Implementations§

source§

impl Clone for TemperatureTimeoutStruct

source§

fn clone(&self) -> TemperatureTimeoutStruct

Returns a copy 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 TemperatureTimeoutStruct

source§

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

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

impl Default for TemperatureTimeoutStruct

source§

fn default() -> TemperatureTimeoutStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for TemperatureTimeoutStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for TemperatureTimeoutStruct

source§

fn id() -> u16

source§

impl PartialEq for TemperatureTimeoutStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for TemperatureTimeoutStruct

source§

fn clone(&self) -> TemperatureTimeoutStruct

Returns a copy 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 TemperatureTimeoutStruct

source§

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

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

impl Default for TemperatureTimeoutStruct

source§

fn default() -> TemperatureTimeoutStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for TemperatureTimeoutStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for TemperatureTimeoutStruct

source§

fn id() -> u16

source§

impl PartialEq for TemperatureTimeoutStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for TemperatureTimeoutStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for TemperatureTimeoutStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for TemperatureTimeoutStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for TemperatureTimeoutStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/common/enum.Messages.html b/bluerobotics_ping/common/enum.Messages.html index d67639a57..0d7bdf3d6 100644 --- a/bluerobotics_ping/common/enum.Messages.html +++ b/bluerobotics_ping/common/enum.Messages.html @@ -1,13 +1,13 @@ Messages in bluerobotics_ping::common - Rust
pub enum Messages {
-    DeviceInformation(DeviceInformationStruct),
-    ProtocolVersion(ProtocolVersionStruct),
+    Ack(AckStruct),
     Nack(NackStruct),
-    GeneralRequest(GeneralRequestStruct),
-    SetDeviceId(SetDeviceIdStruct),
     AsciiText(AsciiTextStruct),
-    Ack(AckStruct),
-}

Variants§

§

DeviceInformation(DeviceInformationStruct)

§

ProtocolVersion(ProtocolVersionStruct)

§

Nack(NackStruct)

§

GeneralRequest(GeneralRequestStruct)

§

SetDeviceId(SetDeviceIdStruct)

§

AsciiText(AsciiTextStruct)

§

Ack(AckStruct)

Implementations§

source§

impl Messages

source

pub fn inner<T: 'static>(&self) -> Option<&T>

Trait Implementations§

source§

impl Clone for Messages

source§

fn clone(&self) -> Messages

Returns a copy 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 Messages

source§

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

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

impl DeserializeGenericMessage for Messages

source§

fn deserialize(message_id: u16, payload: &[u8]) -> Result<Self, &'static str>

source§

impl PartialEq for Messages

source§

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

This method tests for self and other values to be equal, and is used + DeviceInformation(DeviceInformationStruct), + SetDeviceId(SetDeviceIdStruct), + GeneralRequest(GeneralRequestStruct), + ProtocolVersion(ProtocolVersionStruct), +}

Variants§

§

Ack(AckStruct)

§

Nack(NackStruct)

§

AsciiText(AsciiTextStruct)

§

DeviceInformation(DeviceInformationStruct)

§

SetDeviceId(SetDeviceIdStruct)

§

GeneralRequest(GeneralRequestStruct)

§

ProtocolVersion(ProtocolVersionStruct)

Implementations§

source§

impl Messages

source

pub fn inner<T: 'static>(&self) -> Option<&T>

Trait Implementations§

source§

impl Clone for Messages

source§

fn clone(&self) -> Messages

Returns a copy 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 Messages

source§

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

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

impl DeserializeGenericMessage for Messages

source§

fn deserialize(message_id: u16, payload: &[u8]) -> Result<Self, &'static str>

source§

impl PartialEq for Messages

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PingMessage for Messages

source§

impl SerializePayload for Messages

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for Messages

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 diff --git a/bluerobotics_ping/common/struct.AckStruct.html b/bluerobotics_ping/common/struct.AckStruct.html index d2ce4ff8e..884987227 100644 --- a/bluerobotics_ping/common/struct.AckStruct.html +++ b/bluerobotics_ping/common/struct.AckStruct.html @@ -1,11 +1,11 @@ AckStruct in bluerobotics_ping::common - Rust -
pub struct AckStruct {
+    
pub struct AckStruct {
     pub acked_id: u16,
 }
Expand description

Acknowledged.

Fields§

§acked_id: u16

The message ID that is ACKnowledged.

-

Trait Implementations§

source§

impl Clone for AckStruct

source§

fn clone(&self) -> AckStruct

Returns a copy 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 AckStruct

source§

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

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

impl Default for AckStruct

source§

fn default() -> AckStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for AckStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for AckStruct

source§

fn id() -> u16

source§

impl PartialEq for AckStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for AckStruct

source§

fn clone(&self) -> AckStruct

Returns a copy 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 AckStruct

source§

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

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

impl Default for AckStruct

source§

fn default() -> AckStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for AckStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for AckStruct

source§

fn id() -> u16

source§

impl PartialEq for AckStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for AckStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for AckStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for AckStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for AckStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/common/struct.AsciiTextStruct.html b/bluerobotics_ping/common/struct.AsciiTextStruct.html index 4abdf6a28..c6db67ab8 100644 --- a/bluerobotics_ping/common/struct.AsciiTextStruct.html +++ b/bluerobotics_ping/common/struct.AsciiTextStruct.html @@ -1,11 +1,11 @@ AsciiTextStruct in bluerobotics_ping::common - Rust -
pub struct AsciiTextStruct {
+    
pub struct AsciiTextStruct {
     pub ascii_message: String,
 }
Expand description

A message for transmitting text data.

Fields§

§ascii_message: String

ASCII text message. (not necessarily NULL terminated)

-

Trait Implementations§

source§

impl Clone for AsciiTextStruct

source§

fn clone(&self) -> AsciiTextStruct

Returns a copy 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 AsciiTextStruct

source§

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

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

impl Default for AsciiTextStruct

source§

fn default() -> AsciiTextStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for AsciiTextStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for AsciiTextStruct

source§

fn id() -> u16

source§

impl PartialEq for AsciiTextStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for AsciiTextStruct

source§

fn clone(&self) -> AsciiTextStruct

Returns a copy 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 AsciiTextStruct

source§

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

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

impl Default for AsciiTextStruct

source§

fn default() -> AsciiTextStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for AsciiTextStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for AsciiTextStruct

source§

fn id() -> u16

source§

impl PartialEq for AsciiTextStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for AsciiTextStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for AsciiTextStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for AsciiTextStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for AsciiTextStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/common/struct.Device.html b/bluerobotics_ping/common/struct.Device.html index a96c4bae2..60ee58e88 100644 --- a/bluerobotics_ping/common/struct.Device.html +++ b/bluerobotics_ping/common/struct.Device.html @@ -5,12 +5,12 @@ T: AsyncRead + AsyncWrite + Unpin + Send + 'static,

source

pub async fn device_information( &self ) -> Result<DeviceInformationStruct, PingError>

Device information

-
source

pub async fn protocol_version(&self) -> Result<ProtocolVersionStruct, PingError>

The protocol version

-
source

pub async fn set_device_id(&self, device_id: u8) -> Result<(), PingError>

Set the device ID.

+
source

pub async fn set_device_id(&self, device_id: u8) -> Result<(), PingError>

Set the device ID.

§Arguments
  • device_id - Device ID (1-254). 0 is unknown and 255 is reserved for broadcast messages.
+
source

pub async fn protocol_version(&self) -> Result<ProtocolVersionStruct, PingError>

The protocol version

Trait Implementations§

source§

impl PingDevice for Device

source§

fn get_common(&self) -> &Common

source§

fn get_mut_common(&mut self) -> &mut Common

source§

fn subscribe(&self) -> Receiver<ProtocolMessage>

source§

async fn send_general_request(&self, requested_id: u16) -> Result<(), PingError>

source§

async fn wait_for_message<T>( &self, receiver: Receiver<ProtocolMessage> diff --git a/bluerobotics_ping/common/struct.DeviceInformationStruct.html b/bluerobotics_ping/common/struct.DeviceInformationStruct.html index 1d1e89c1b..5cfdc63e6 100644 --- a/bluerobotics_ping/common/struct.DeviceInformationStruct.html +++ b/bluerobotics_ping/common/struct.DeviceInformationStruct.html @@ -1,5 +1,5 @@ DeviceInformationStruct in bluerobotics_ping::common - Rust -
pub struct DeviceInformationStruct {
+    
pub struct DeviceInformationStruct {
     pub device_type: u8,
     pub device_revision: u8,
     pub firmware_version_major: u8,
@@ -13,9 +13,9 @@
 
§firmware_version_minor: u8

Firmware version minor number.

§firmware_version_patch: u8

Firmware version patch number.

§reserved: u8

reserved

-

Trait Implementations§

source§

impl Clone for DeviceInformationStruct

source§

fn clone(&self) -> DeviceInformationStruct

Returns a copy 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 DeviceInformationStruct

source§

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

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

impl Default for DeviceInformationStruct

source§

fn default() -> DeviceInformationStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for DeviceInformationStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for DeviceInformationStruct

source§

fn id() -> u16

source§

impl PartialEq for DeviceInformationStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for DeviceInformationStruct

source§

fn clone(&self) -> DeviceInformationStruct

Returns a copy 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 DeviceInformationStruct

source§

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

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

impl Default for DeviceInformationStruct

source§

fn default() -> DeviceInformationStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for DeviceInformationStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for DeviceInformationStruct

source§

fn id() -> u16

source§

impl PartialEq for DeviceInformationStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for DeviceInformationStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for DeviceInformationStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for DeviceInformationStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for DeviceInformationStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/common/struct.GeneralRequestStruct.html b/bluerobotics_ping/common/struct.GeneralRequestStruct.html index 5433b44f1..312ab7802 100644 --- a/bluerobotics_ping/common/struct.GeneralRequestStruct.html +++ b/bluerobotics_ping/common/struct.GeneralRequestStruct.html @@ -1,11 +1,11 @@ GeneralRequestStruct in bluerobotics_ping::common - Rust -
pub struct GeneralRequestStruct {
+    
pub struct GeneralRequestStruct {
     pub requested_id: u16,
 }
Expand description

Requests a specific message to be sent from the sonar to the host. Command timeout should be set to 50 msec.

Fields§

§requested_id: u16

Message ID to be requested.

-

Trait Implementations§

source§

impl Clone for GeneralRequestStruct

source§

fn clone(&self) -> GeneralRequestStruct

Returns a copy 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 GeneralRequestStruct

source§

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

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

impl Default for GeneralRequestStruct

source§

fn default() -> GeneralRequestStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for GeneralRequestStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for GeneralRequestStruct

source§

fn id() -> u16

source§

impl PartialEq for GeneralRequestStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for GeneralRequestStruct

source§

fn clone(&self) -> GeneralRequestStruct

Returns a copy 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 GeneralRequestStruct

source§

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

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

impl Default for GeneralRequestStruct

source§

fn default() -> GeneralRequestStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for GeneralRequestStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for GeneralRequestStruct

source§

fn id() -> u16

source§

impl PartialEq for GeneralRequestStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for GeneralRequestStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for GeneralRequestStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for GeneralRequestStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for GeneralRequestStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/common/struct.NackStruct.html b/bluerobotics_ping/common/struct.NackStruct.html index bf869183d..793ca3ba7 100644 --- a/bluerobotics_ping/common/struct.NackStruct.html +++ b/bluerobotics_ping/common/struct.NackStruct.html @@ -1,13 +1,13 @@ NackStruct in bluerobotics_ping::common - Rust -
pub struct NackStruct {
+    
pub struct NackStruct {
     pub nacked_id: u16,
     pub nack_message: String,
 }
Expand description

Not acknowledged.

Fields§

§nacked_id: u16

The message ID that is Not ACKnowledged.

§nack_message: String

ASCII text message indicating NACK condition. (not necessarily NULL terminated)

-

Trait Implementations§

source§

impl Clone for NackStruct

source§

fn clone(&self) -> NackStruct

Returns a copy 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 NackStruct

source§

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

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

impl Default for NackStruct

source§

fn default() -> NackStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for NackStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for NackStruct

source§

fn id() -> u16

source§

impl PartialEq for NackStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for NackStruct

source§

fn clone(&self) -> NackStruct

Returns a copy 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 NackStruct

source§

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

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

impl Default for NackStruct

source§

fn default() -> NackStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for NackStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for NackStruct

source§

fn id() -> u16

source§

impl PartialEq for NackStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for NackStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for NackStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for NackStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for NackStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/common/struct.ProtocolVersionStruct.html b/bluerobotics_ping/common/struct.ProtocolVersionStruct.html index a88528b5f..a0d655053 100644 --- a/bluerobotics_ping/common/struct.ProtocolVersionStruct.html +++ b/bluerobotics_ping/common/struct.ProtocolVersionStruct.html @@ -1,5 +1,5 @@ ProtocolVersionStruct in bluerobotics_ping::common - Rust -
pub struct ProtocolVersionStruct {
+    
pub struct ProtocolVersionStruct {
     pub version_major: u8,
     pub version_minor: u8,
     pub version_patch: u8,
@@ -9,9 +9,9 @@
 
§version_minor: u8

Protocol version minor number.

§version_patch: u8

Protocol version patch number.

§reserved: u8

reserved

-

Trait Implementations§

source§

impl Clone for ProtocolVersionStruct

source§

fn clone(&self) -> ProtocolVersionStruct

Returns a copy 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 ProtocolVersionStruct

source§

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

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

impl Default for ProtocolVersionStruct

source§

fn default() -> ProtocolVersionStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ProtocolVersionStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ProtocolVersionStruct

source§

fn id() -> u16

source§

impl PartialEq for ProtocolVersionStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for ProtocolVersionStruct

source§

fn clone(&self) -> ProtocolVersionStruct

Returns a copy 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 ProtocolVersionStruct

source§

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

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

impl Default for ProtocolVersionStruct

source§

fn default() -> ProtocolVersionStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ProtocolVersionStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ProtocolVersionStruct

source§

fn id() -> u16

source§

impl PartialEq for ProtocolVersionStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for ProtocolVersionStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ProtocolVersionStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for ProtocolVersionStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ProtocolVersionStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/common/struct.SetDeviceIdStruct.html b/bluerobotics_ping/common/struct.SetDeviceIdStruct.html index bfc6c176b..c459ce0d2 100644 --- a/bluerobotics_ping/common/struct.SetDeviceIdStruct.html +++ b/bluerobotics_ping/common/struct.SetDeviceIdStruct.html @@ -1,11 +1,11 @@ SetDeviceIdStruct in bluerobotics_ping::common - Rust -
pub struct SetDeviceIdStruct {
+    
pub struct SetDeviceIdStruct {
     pub device_id: u8,
 }
Expand description

Set the device ID.

Fields§

§device_id: u8

Device ID (1-254). 0 is unknown and 255 is reserved for broadcast messages.

-

Trait Implementations§

source§

impl Clone for SetDeviceIdStruct

source§

fn clone(&self) -> SetDeviceIdStruct

Returns a copy 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 SetDeviceIdStruct

source§

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

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

impl Default for SetDeviceIdStruct

source§

fn default() -> SetDeviceIdStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetDeviceIdStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetDeviceIdStruct

source§

fn id() -> u16

source§

impl PartialEq for SetDeviceIdStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetDeviceIdStruct

source§

fn clone(&self) -> SetDeviceIdStruct

Returns a copy 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 SetDeviceIdStruct

source§

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

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

impl Default for SetDeviceIdStruct

source§

fn default() -> SetDeviceIdStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetDeviceIdStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetDeviceIdStruct

source§

fn id() -> u16

source§

impl PartialEq for SetDeviceIdStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetDeviceIdStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetDeviceIdStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetDeviceIdStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetDeviceIdStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/message/trait.DeserializePayload.html b/bluerobotics_ping/message/trait.DeserializePayload.html index 2c04a4556..915581a6e 100644 --- a/bluerobotics_ping/message/trait.DeserializePayload.html +++ b/bluerobotics_ping/message/trait.DeserializePayload.html @@ -2,4 +2,4 @@
pub trait DeserializePayload {
     // Required method
     fn deserialize(payload: &[u8]) -> Self;
-}

Required Methods§

source

fn deserialize(payload: &[u8]) -> Self

Object Safety§

This trait is not object safe.

Implementors§

source§

impl DeserializePayload for CellTimeoutStruct

source§

impl DeserializePayload for CellVoltageMinStruct

source§

impl DeserializePayload for CurrentMaxStruct

source§

impl DeserializePayload for CurrentTimeoutStruct

source§

impl DeserializePayload for EraseFlashStruct

source§

impl DeserializePayload for EventsStruct

source§

impl DeserializePayload for RebootStruct

source§

impl DeserializePayload for ResetDefaultsStruct

source§

impl DeserializePayload for SetCellVoltageMinimumStruct

source§

impl DeserializePayload for SetCellVoltageTimeoutStruct

source§

impl DeserializePayload for SetCurrentMaxStruct

source§

impl DeserializePayload for SetCurrentTimeoutStruct

source§

impl DeserializePayload for SetLpfSampleFrequencyStruct

source§

impl DeserializePayload for SetLpfSettingStruct

source§

impl DeserializePayload for SetStreamRateStruct

source§

impl DeserializePayload for SetTemperatureMaxStruct

source§

impl DeserializePayload for SetTemperatureTimeoutStruct

source§

impl DeserializePayload for StateStruct

source§

impl DeserializePayload for TemperatureMaxStruct

source§

impl DeserializePayload for TemperatureTimeoutStruct

source§

impl DeserializePayload for AckStruct

source§

impl DeserializePayload for AsciiTextStruct

source§

impl DeserializePayload for DeviceInformationStruct

source§

impl DeserializePayload for GeneralRequestStruct

source§

impl DeserializePayload for NackStruct

source§

impl DeserializePayload for ProtocolVersionStruct

source§

impl DeserializePayload for bluerobotics_ping::common::SetDeviceIdStruct

source§

impl DeserializePayload for ContinuousStartStruct

source§

impl DeserializePayload for ContinuousStopStruct

source§

impl DeserializePayload for bluerobotics_ping::ping1d::DeviceIdStruct

source§

impl DeserializePayload for DistanceSimpleStruct

source§

impl DeserializePayload for DistanceStruct

source§

impl DeserializePayload for FirmwareVersionStruct

source§

impl DeserializePayload for GainSettingStruct

source§

impl DeserializePayload for GeneralInfoStruct

source§

impl DeserializePayload for GotoBootloaderStruct

source§

impl DeserializePayload for ModeAutoStruct

source§

impl DeserializePayload for PcbTemperatureStruct

source§

impl DeserializePayload for PingEnableStruct

source§

impl DeserializePayload for PingIntervalStruct

source§

impl DeserializePayload for ProcessorTemperatureStruct

source§

impl DeserializePayload for ProfileStruct

source§

impl DeserializePayload for RangeStruct

source§

impl DeserializePayload for bluerobotics_ping::ping1d::SetDeviceIdStruct

source§

impl DeserializePayload for SetGainSettingStruct

source§

impl DeserializePayload for SetModeAutoStruct

source§

impl DeserializePayload for SetPingEnableStruct

source§

impl DeserializePayload for SetPingIntervalStruct

source§

impl DeserializePayload for SetRangeStruct

source§

impl DeserializePayload for SetSpeedOfSoundStruct

source§

impl DeserializePayload for SpeedOfSoundStruct

source§

impl DeserializePayload for TransmitDurationStruct

source§

impl DeserializePayload for Voltage5Struct

source§

impl DeserializePayload for AutoDeviceDataStruct

source§

impl DeserializePayload for AutoTransmitStruct

source§

impl DeserializePayload for DeviceDataStruct

source§

impl DeserializePayload for bluerobotics_ping::ping360::DeviceIdStruct

source§

impl DeserializePayload for MotorOffStruct

source§

impl DeserializePayload for ResetStruct

source§

impl DeserializePayload for TransducerStruct

\ No newline at end of file +}

Required Methods§

source

fn deserialize(payload: &[u8]) -> Self

Object Safety§

This trait is not object safe.

Implementors§

source§

impl DeserializePayload for CellTimeoutStruct

source§

impl DeserializePayload for CellVoltageMinStruct

source§

impl DeserializePayload for CurrentMaxStruct

source§

impl DeserializePayload for CurrentTimeoutStruct

source§

impl DeserializePayload for EraseFlashStruct

source§

impl DeserializePayload for EventsStruct

source§

impl DeserializePayload for RebootStruct

source§

impl DeserializePayload for ResetDefaultsStruct

source§

impl DeserializePayload for SetCellVoltageMinimumStruct

source§

impl DeserializePayload for SetCellVoltageTimeoutStruct

source§

impl DeserializePayload for SetCurrentMaxStruct

source§

impl DeserializePayload for SetCurrentTimeoutStruct

source§

impl DeserializePayload for SetLpfSampleFrequencyStruct

source§

impl DeserializePayload for SetLpfSettingStruct

source§

impl DeserializePayload for SetStreamRateStruct

source§

impl DeserializePayload for SetTemperatureMaxStruct

source§

impl DeserializePayload for SetTemperatureTimeoutStruct

source§

impl DeserializePayload for StateStruct

source§

impl DeserializePayload for TemperatureMaxStruct

source§

impl DeserializePayload for TemperatureTimeoutStruct

source§

impl DeserializePayload for AckStruct

source§

impl DeserializePayload for AsciiTextStruct

source§

impl DeserializePayload for DeviceInformationStruct

source§

impl DeserializePayload for GeneralRequestStruct

source§

impl DeserializePayload for NackStruct

source§

impl DeserializePayload for ProtocolVersionStruct

source§

impl DeserializePayload for bluerobotics_ping::common::SetDeviceIdStruct

source§

impl DeserializePayload for ContinuousStartStruct

source§

impl DeserializePayload for ContinuousStopStruct

source§

impl DeserializePayload for bluerobotics_ping::ping1d::DeviceIdStruct

source§

impl DeserializePayload for DistanceSimpleStruct

source§

impl DeserializePayload for DistanceStruct

source§

impl DeserializePayload for FirmwareVersionStruct

source§

impl DeserializePayload for GainSettingStruct

source§

impl DeserializePayload for GeneralInfoStruct

source§

impl DeserializePayload for GotoBootloaderStruct

source§

impl DeserializePayload for ModeAutoStruct

source§

impl DeserializePayload for PcbTemperatureStruct

source§

impl DeserializePayload for PingEnableStruct

source§

impl DeserializePayload for PingIntervalStruct

source§

impl DeserializePayload for ProcessorTemperatureStruct

source§

impl DeserializePayload for ProfileStruct

source§

impl DeserializePayload for RangeStruct

source§

impl DeserializePayload for bluerobotics_ping::ping1d::SetDeviceIdStruct

source§

impl DeserializePayload for SetGainSettingStruct

source§

impl DeserializePayload for SetModeAutoStruct

source§

impl DeserializePayload for SetPingEnableStruct

source§

impl DeserializePayload for SetPingIntervalStruct

source§

impl DeserializePayload for SetRangeStruct

source§

impl DeserializePayload for SetSpeedOfSoundStruct

source§

impl DeserializePayload for SpeedOfSoundStruct

source§

impl DeserializePayload for TransmitDurationStruct

source§

impl DeserializePayload for Voltage5Struct

source§

impl DeserializePayload for AutoDeviceDataStruct

source§

impl DeserializePayload for AutoTransmitStruct

source§

impl DeserializePayload for DeviceDataStruct

source§

impl DeserializePayload for bluerobotics_ping::ping360::DeviceIdStruct

source§

impl DeserializePayload for MotorOffStruct

source§

impl DeserializePayload for ResetStruct

source§

impl DeserializePayload for TransducerStruct

\ No newline at end of file diff --git a/bluerobotics_ping/message/trait.MessageInfo.html b/bluerobotics_ping/message/trait.MessageInfo.html index 6b5342db3..b2bb9b1a8 100644 --- a/bluerobotics_ping/message/trait.MessageInfo.html +++ b/bluerobotics_ping/message/trait.MessageInfo.html @@ -2,4 +2,4 @@
pub trait MessageInfo {
     // Required method
     fn id() -> u16;
-}

Required Methods§

source

fn id() -> u16

Object Safety§

This trait is not object safe.

Implementors§

source§

impl MessageInfo for CellTimeoutStruct

source§

impl MessageInfo for CellVoltageMinStruct

source§

impl MessageInfo for CurrentMaxStruct

source§

impl MessageInfo for CurrentTimeoutStruct

source§

impl MessageInfo for EraseFlashStruct

source§

impl MessageInfo for EventsStruct

source§

impl MessageInfo for RebootStruct

source§

impl MessageInfo for ResetDefaultsStruct

source§

impl MessageInfo for SetCellVoltageMinimumStruct

source§

impl MessageInfo for SetCellVoltageTimeoutStruct

source§

impl MessageInfo for SetCurrentMaxStruct

source§

impl MessageInfo for SetCurrentTimeoutStruct

source§

impl MessageInfo for SetLpfSampleFrequencyStruct

source§

impl MessageInfo for SetLpfSettingStruct

source§

impl MessageInfo for SetStreamRateStruct

source§

impl MessageInfo for SetTemperatureMaxStruct

source§

impl MessageInfo for SetTemperatureTimeoutStruct

source§

impl MessageInfo for StateStruct

source§

impl MessageInfo for TemperatureMaxStruct

source§

impl MessageInfo for TemperatureTimeoutStruct

source§

impl MessageInfo for AckStruct

source§

impl MessageInfo for AsciiTextStruct

source§

impl MessageInfo for DeviceInformationStruct

source§

impl MessageInfo for GeneralRequestStruct

source§

impl MessageInfo for NackStruct

source§

impl MessageInfo for ProtocolVersionStruct

source§

impl MessageInfo for bluerobotics_ping::common::SetDeviceIdStruct

source§

impl MessageInfo for ContinuousStartStruct

source§

impl MessageInfo for ContinuousStopStruct

source§

impl MessageInfo for bluerobotics_ping::ping1d::DeviceIdStruct

source§

impl MessageInfo for DistanceSimpleStruct

source§

impl MessageInfo for DistanceStruct

source§

impl MessageInfo for FirmwareVersionStruct

source§

impl MessageInfo for GainSettingStruct

source§

impl MessageInfo for GeneralInfoStruct

source§

impl MessageInfo for GotoBootloaderStruct

source§

impl MessageInfo for ModeAutoStruct

source§

impl MessageInfo for PcbTemperatureStruct

source§

impl MessageInfo for PingEnableStruct

source§

impl MessageInfo for PingIntervalStruct

source§

impl MessageInfo for ProcessorTemperatureStruct

source§

impl MessageInfo for ProfileStruct

source§

impl MessageInfo for RangeStruct

source§

impl MessageInfo for bluerobotics_ping::ping1d::SetDeviceIdStruct

source§

impl MessageInfo for SetGainSettingStruct

source§

impl MessageInfo for SetModeAutoStruct

source§

impl MessageInfo for SetPingEnableStruct

source§

impl MessageInfo for SetPingIntervalStruct

source§

impl MessageInfo for SetRangeStruct

source§

impl MessageInfo for SetSpeedOfSoundStruct

source§

impl MessageInfo for SpeedOfSoundStruct

source§

impl MessageInfo for TransmitDurationStruct

source§

impl MessageInfo for Voltage5Struct

source§

impl MessageInfo for AutoDeviceDataStruct

source§

impl MessageInfo for AutoTransmitStruct

source§

impl MessageInfo for DeviceDataStruct

source§

impl MessageInfo for bluerobotics_ping::ping360::DeviceIdStruct

source§

impl MessageInfo for MotorOffStruct

source§

impl MessageInfo for ResetStruct

source§

impl MessageInfo for TransducerStruct

\ No newline at end of file +}

Required Methods§

source

fn id() -> u16

Object Safety§

This trait is not object safe.

Implementors§

source§

impl MessageInfo for CellTimeoutStruct

source§

impl MessageInfo for CellVoltageMinStruct

source§

impl MessageInfo for CurrentMaxStruct

source§

impl MessageInfo for CurrentTimeoutStruct

source§

impl MessageInfo for EraseFlashStruct

source§

impl MessageInfo for EventsStruct

source§

impl MessageInfo for RebootStruct

source§

impl MessageInfo for ResetDefaultsStruct

source§

impl MessageInfo for SetCellVoltageMinimumStruct

source§

impl MessageInfo for SetCellVoltageTimeoutStruct

source§

impl MessageInfo for SetCurrentMaxStruct

source§

impl MessageInfo for SetCurrentTimeoutStruct

source§

impl MessageInfo for SetLpfSampleFrequencyStruct

source§

impl MessageInfo for SetLpfSettingStruct

source§

impl MessageInfo for SetStreamRateStruct

source§

impl MessageInfo for SetTemperatureMaxStruct

source§

impl MessageInfo for SetTemperatureTimeoutStruct

source§

impl MessageInfo for StateStruct

source§

impl MessageInfo for TemperatureMaxStruct

source§

impl MessageInfo for TemperatureTimeoutStruct

source§

impl MessageInfo for AckStruct

source§

impl MessageInfo for AsciiTextStruct

source§

impl MessageInfo for DeviceInformationStruct

source§

impl MessageInfo for GeneralRequestStruct

source§

impl MessageInfo for NackStruct

source§

impl MessageInfo for ProtocolVersionStruct

source§

impl MessageInfo for bluerobotics_ping::common::SetDeviceIdStruct

source§

impl MessageInfo for ContinuousStartStruct

source§

impl MessageInfo for ContinuousStopStruct

source§

impl MessageInfo for bluerobotics_ping::ping1d::DeviceIdStruct

source§

impl MessageInfo for DistanceSimpleStruct

source§

impl MessageInfo for DistanceStruct

source§

impl MessageInfo for FirmwareVersionStruct

source§

impl MessageInfo for GainSettingStruct

source§

impl MessageInfo for GeneralInfoStruct

source§

impl MessageInfo for GotoBootloaderStruct

source§

impl MessageInfo for ModeAutoStruct

source§

impl MessageInfo for PcbTemperatureStruct

source§

impl MessageInfo for PingEnableStruct

source§

impl MessageInfo for PingIntervalStruct

source§

impl MessageInfo for ProcessorTemperatureStruct

source§

impl MessageInfo for ProfileStruct

source§

impl MessageInfo for RangeStruct

source§

impl MessageInfo for bluerobotics_ping::ping1d::SetDeviceIdStruct

source§

impl MessageInfo for SetGainSettingStruct

source§

impl MessageInfo for SetModeAutoStruct

source§

impl MessageInfo for SetPingEnableStruct

source§

impl MessageInfo for SetPingIntervalStruct

source§

impl MessageInfo for SetRangeStruct

source§

impl MessageInfo for SetSpeedOfSoundStruct

source§

impl MessageInfo for SpeedOfSoundStruct

source§

impl MessageInfo for TransmitDurationStruct

source§

impl MessageInfo for Voltage5Struct

source§

impl MessageInfo for AutoDeviceDataStruct

source§

impl MessageInfo for AutoTransmitStruct

source§

impl MessageInfo for DeviceDataStruct

source§

impl MessageInfo for bluerobotics_ping::ping360::DeviceIdStruct

source§

impl MessageInfo for MotorOffStruct

source§

impl MessageInfo for ResetStruct

source§

impl MessageInfo for TransducerStruct

\ No newline at end of file diff --git a/bluerobotics_ping/message/trait.SerializePayload.html b/bluerobotics_ping/message/trait.SerializePayload.html index f58108bc9..f4349fdd3 100644 --- a/bluerobotics_ping/message/trait.SerializePayload.html +++ b/bluerobotics_ping/message/trait.SerializePayload.html @@ -2,4 +2,4 @@
pub trait SerializePayload {
     // Required method
     fn serialize(&self) -> Vec<u8>;
-}

Required Methods§

source

fn serialize(&self) -> Vec<u8>

Implementors§

source§

impl SerializePayload for bluerobotics_ping::bluebps::Messages

source§

impl SerializePayload for bluerobotics_ping::common::Messages

source§

impl SerializePayload for bluerobotics_ping::ping1d::Messages

source§

impl SerializePayload for bluerobotics_ping::ping360::Messages

source§

impl SerializePayload for CellTimeoutStruct

source§

impl SerializePayload for CellVoltageMinStruct

source§

impl SerializePayload for CurrentMaxStruct

source§

impl SerializePayload for CurrentTimeoutStruct

source§

impl SerializePayload for EraseFlashStruct

source§

impl SerializePayload for EventsStruct

source§

impl SerializePayload for RebootStruct

source§

impl SerializePayload for ResetDefaultsStruct

source§

impl SerializePayload for SetCellVoltageMinimumStruct

source§

impl SerializePayload for SetCellVoltageTimeoutStruct

source§

impl SerializePayload for SetCurrentMaxStruct

source§

impl SerializePayload for SetCurrentTimeoutStruct

source§

impl SerializePayload for SetLpfSampleFrequencyStruct

source§

impl SerializePayload for SetLpfSettingStruct

source§

impl SerializePayload for SetStreamRateStruct

source§

impl SerializePayload for SetTemperatureMaxStruct

source§

impl SerializePayload for SetTemperatureTimeoutStruct

source§

impl SerializePayload for StateStruct

source§

impl SerializePayload for TemperatureMaxStruct

source§

impl SerializePayload for TemperatureTimeoutStruct

source§

impl SerializePayload for AckStruct

source§

impl SerializePayload for AsciiTextStruct

source§

impl SerializePayload for DeviceInformationStruct

source§

impl SerializePayload for GeneralRequestStruct

source§

impl SerializePayload for NackStruct

source§

impl SerializePayload for ProtocolVersionStruct

source§

impl SerializePayload for bluerobotics_ping::common::SetDeviceIdStruct

source§

impl SerializePayload for ContinuousStartStruct

source§

impl SerializePayload for ContinuousStopStruct

source§

impl SerializePayload for bluerobotics_ping::ping1d::DeviceIdStruct

source§

impl SerializePayload for DistanceSimpleStruct

source§

impl SerializePayload for DistanceStruct

source§

impl SerializePayload for FirmwareVersionStruct

source§

impl SerializePayload for GainSettingStruct

source§

impl SerializePayload for GeneralInfoStruct

source§

impl SerializePayload for GotoBootloaderStruct

source§

impl SerializePayload for ModeAutoStruct

source§

impl SerializePayload for PcbTemperatureStruct

source§

impl SerializePayload for PingEnableStruct

source§

impl SerializePayload for PingIntervalStruct

source§

impl SerializePayload for ProcessorTemperatureStruct

source§

impl SerializePayload for ProfileStruct

source§

impl SerializePayload for RangeStruct

source§

impl SerializePayload for bluerobotics_ping::ping1d::SetDeviceIdStruct

source§

impl SerializePayload for SetGainSettingStruct

source§

impl SerializePayload for SetModeAutoStruct

source§

impl SerializePayload for SetPingEnableStruct

source§

impl SerializePayload for SetPingIntervalStruct

source§

impl SerializePayload for SetRangeStruct

source§

impl SerializePayload for SetSpeedOfSoundStruct

source§

impl SerializePayload for SpeedOfSoundStruct

source§

impl SerializePayload for TransmitDurationStruct

source§

impl SerializePayload for Voltage5Struct

source§

impl SerializePayload for AutoDeviceDataStruct

source§

impl SerializePayload for AutoTransmitStruct

source§

impl SerializePayload for DeviceDataStruct

source§

impl SerializePayload for bluerobotics_ping::ping360::DeviceIdStruct

source§

impl SerializePayload for MotorOffStruct

source§

impl SerializePayload for ResetStruct

source§

impl SerializePayload for TransducerStruct

\ No newline at end of file +}

Required Methods§

source

fn serialize(&self) -> Vec<u8>

Implementors§

source§

impl SerializePayload for bluerobotics_ping::bluebps::Messages

source§

impl SerializePayload for bluerobotics_ping::common::Messages

source§

impl SerializePayload for bluerobotics_ping::ping1d::Messages

source§

impl SerializePayload for bluerobotics_ping::ping360::Messages

source§

impl SerializePayload for CellTimeoutStruct

source§

impl SerializePayload for CellVoltageMinStruct

source§

impl SerializePayload for CurrentMaxStruct

source§

impl SerializePayload for CurrentTimeoutStruct

source§

impl SerializePayload for EraseFlashStruct

source§

impl SerializePayload for EventsStruct

source§

impl SerializePayload for RebootStruct

source§

impl SerializePayload for ResetDefaultsStruct

source§

impl SerializePayload for SetCellVoltageMinimumStruct

source§

impl SerializePayload for SetCellVoltageTimeoutStruct

source§

impl SerializePayload for SetCurrentMaxStruct

source§

impl SerializePayload for SetCurrentTimeoutStruct

source§

impl SerializePayload for SetLpfSampleFrequencyStruct

source§

impl SerializePayload for SetLpfSettingStruct

source§

impl SerializePayload for SetStreamRateStruct

source§

impl SerializePayload for SetTemperatureMaxStruct

source§

impl SerializePayload for SetTemperatureTimeoutStruct

source§

impl SerializePayload for StateStruct

source§

impl SerializePayload for TemperatureMaxStruct

source§

impl SerializePayload for TemperatureTimeoutStruct

source§

impl SerializePayload for AckStruct

source§

impl SerializePayload for AsciiTextStruct

source§

impl SerializePayload for DeviceInformationStruct

source§

impl SerializePayload for GeneralRequestStruct

source§

impl SerializePayload for NackStruct

source§

impl SerializePayload for ProtocolVersionStruct

source§

impl SerializePayload for bluerobotics_ping::common::SetDeviceIdStruct

source§

impl SerializePayload for ContinuousStartStruct

source§

impl SerializePayload for ContinuousStopStruct

source§

impl SerializePayload for bluerobotics_ping::ping1d::DeviceIdStruct

source§

impl SerializePayload for DistanceSimpleStruct

source§

impl SerializePayload for DistanceStruct

source§

impl SerializePayload for FirmwareVersionStruct

source§

impl SerializePayload for GainSettingStruct

source§

impl SerializePayload for GeneralInfoStruct

source§

impl SerializePayload for GotoBootloaderStruct

source§

impl SerializePayload for ModeAutoStruct

source§

impl SerializePayload for PcbTemperatureStruct

source§

impl SerializePayload for PingEnableStruct

source§

impl SerializePayload for PingIntervalStruct

source§

impl SerializePayload for ProcessorTemperatureStruct

source§

impl SerializePayload for ProfileStruct

source§

impl SerializePayload for RangeStruct

source§

impl SerializePayload for bluerobotics_ping::ping1d::SetDeviceIdStruct

source§

impl SerializePayload for SetGainSettingStruct

source§

impl SerializePayload for SetModeAutoStruct

source§

impl SerializePayload for SetPingEnableStruct

source§

impl SerializePayload for SetPingIntervalStruct

source§

impl SerializePayload for SetRangeStruct

source§

impl SerializePayload for SetSpeedOfSoundStruct

source§

impl SerializePayload for SpeedOfSoundStruct

source§

impl SerializePayload for TransmitDurationStruct

source§

impl SerializePayload for Voltage5Struct

source§

impl SerializePayload for AutoDeviceDataStruct

source§

impl SerializePayload for AutoTransmitStruct

source§

impl SerializePayload for DeviceDataStruct

source§

impl SerializePayload for bluerobotics_ping::ping360::DeviceIdStruct

source§

impl SerializePayload for MotorOffStruct

source§

impl SerializePayload for ResetStruct

source§

impl SerializePayload for TransducerStruct

\ No newline at end of file diff --git a/bluerobotics_ping/ping1d/enum.Messages.html b/bluerobotics_ping/ping1d/enum.Messages.html index 428620634..28cffd636 100644 --- a/bluerobotics_ping/ping1d/enum.Messages.html +++ b/bluerobotics_ping/ping1d/enum.Messages.html @@ -1,32 +1,32 @@ Messages in bluerobotics_ping::ping1d - Rust
pub enum Messages {
-
Show 26 variants ContinuousStart(ContinuousStartStruct), - SetModeAuto(SetModeAutoStruct), - FirmwareVersion(FirmwareVersionStruct), - GeneralInfo(GeneralInfoStruct), - ModeAuto(ModeAutoStruct), - GotoBootloader(GotoBootloaderStruct), - SetPingInterval(SetPingIntervalStruct), - PingInterval(PingIntervalStruct), - SetRange(SetRangeStruct), - SetSpeedOfSound(SetSpeedOfSoundStruct), - ContinuousStop(ContinuousStopStruct), - Range(RangeStruct), +
Show 26 variants SetPingInterval(SetPingIntervalStruct), + DistanceSimple(DistanceSimpleStruct), Profile(ProfileStruct), - SetDeviceId(SetDeviceIdStruct), TransmitDuration(TransmitDurationStruct), - SetGainSetting(SetGainSettingStruct), - DistanceSimple(DistanceSimpleStruct), + GeneralInfo(GeneralInfoStruct), + GainSetting(GainSettingStruct), + FirmwareVersion(FirmwareVersionStruct), SetPingEnable(SetPingEnableStruct), - PcbTemperature(PcbTemperatureStruct), + ContinuousStop(ContinuousStopStruct), + SetGainSetting(SetGainSettingStruct), + SetSpeedOfSound(SetSpeedOfSoundStruct), Distance(DistanceStruct), - GainSetting(GainSettingStruct), - DeviceId(DeviceIdStruct), - Voltage5(Voltage5Struct), + SetRange(SetRangeStruct), + ContinuousStart(ContinuousStartStruct), + GotoBootloader(GotoBootloaderStruct), + Range(RangeStruct), ProcessorTemperature(ProcessorTemperatureStruct), + Voltage5(Voltage5Struct), PingEnable(PingEnableStruct), + ModeAuto(ModeAutoStruct), SpeedOfSound(SpeedOfSoundStruct), -
}

Variants§

§

ContinuousStart(ContinuousStartStruct)

§

SetModeAuto(SetModeAutoStruct)

§

FirmwareVersion(FirmwareVersionStruct)

§

GeneralInfo(GeneralInfoStruct)

§

ModeAuto(ModeAutoStruct)

§

GotoBootloader(GotoBootloaderStruct)

§

SetPingInterval(SetPingIntervalStruct)

§

PingInterval(PingIntervalStruct)

§

SetRange(SetRangeStruct)

§

SetSpeedOfSound(SetSpeedOfSoundStruct)

§

ContinuousStop(ContinuousStopStruct)

§

Range(RangeStruct)

§

Profile(ProfileStruct)

§

SetDeviceId(SetDeviceIdStruct)

§

TransmitDuration(TransmitDurationStruct)

§

SetGainSetting(SetGainSettingStruct)

§

DistanceSimple(DistanceSimpleStruct)

§

SetPingEnable(SetPingEnableStruct)

§

PcbTemperature(PcbTemperatureStruct)

§

Distance(DistanceStruct)

§

GainSetting(GainSettingStruct)

§

DeviceId(DeviceIdStruct)

§

Voltage5(Voltage5Struct)

§

ProcessorTemperature(ProcessorTemperatureStruct)

§

PingEnable(PingEnableStruct)

§

SpeedOfSound(SpeedOfSoundStruct)

Implementations§

source§

impl Messages

source

pub fn inner<T: 'static>(&self) -> Option<&T>

Trait Implementations§

source§

impl Clone for Messages

source§

fn clone(&self) -> Messages

Returns a copy 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 Messages

source§

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

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

impl DeserializeGenericMessage for Messages

source§

fn deserialize(message_id: u16, payload: &[u8]) -> Result<Self, &'static str>

source§

impl PartialEq for Messages

source§

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

This method tests for self and other values to be equal, and is used + SetDeviceId(SetDeviceIdStruct), + SetModeAuto(SetModeAutoStruct), + DeviceId(DeviceIdStruct), + PcbTemperature(PcbTemperatureStruct), + PingInterval(PingIntervalStruct), +
}

Variants§

§

SetPingInterval(SetPingIntervalStruct)

§

DistanceSimple(DistanceSimpleStruct)

§

Profile(ProfileStruct)

§

TransmitDuration(TransmitDurationStruct)

§

GeneralInfo(GeneralInfoStruct)

§

GainSetting(GainSettingStruct)

§

FirmwareVersion(FirmwareVersionStruct)

§

SetPingEnable(SetPingEnableStruct)

§

ContinuousStop(ContinuousStopStruct)

§

SetGainSetting(SetGainSettingStruct)

§

SetSpeedOfSound(SetSpeedOfSoundStruct)

§

Distance(DistanceStruct)

§

SetRange(SetRangeStruct)

§

ContinuousStart(ContinuousStartStruct)

§

GotoBootloader(GotoBootloaderStruct)

§

Range(RangeStruct)

§

ProcessorTemperature(ProcessorTemperatureStruct)

§

Voltage5(Voltage5Struct)

§

PingEnable(PingEnableStruct)

§

ModeAuto(ModeAutoStruct)

§

SpeedOfSound(SpeedOfSoundStruct)

§

SetDeviceId(SetDeviceIdStruct)

§

SetModeAuto(SetModeAutoStruct)

§

DeviceId(DeviceIdStruct)

§

PcbTemperature(PcbTemperatureStruct)

§

PingInterval(PingIntervalStruct)

Implementations§

source§

impl Messages

source

pub fn inner<T: 'static>(&self) -> Option<&T>

Trait Implementations§

source§

impl Clone for Messages

source§

fn clone(&self) -> Messages

Returns a copy 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 Messages

source§

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

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

impl DeserializeGenericMessage for Messages

source§

fn deserialize(message_id: u16, payload: &[u8]) -> Result<Self, &'static str>

source§

impl PartialEq for Messages

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PingMessage for Messages

source§

impl SerializePayload for Messages

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for Messages

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 diff --git a/bluerobotics_ping/ping1d/struct.ContinuousStartStruct.html b/bluerobotics_ping/ping1d/struct.ContinuousStartStruct.html index 69057dc8f..ac172a173 100644 --- a/bluerobotics_ping/ping1d/struct.ContinuousStartStruct.html +++ b/bluerobotics_ping/ping1d/struct.ContinuousStartStruct.html @@ -1,11 +1,11 @@ ContinuousStartStruct in bluerobotics_ping::ping1d - Rust -
pub struct ContinuousStartStruct {
+    
pub struct ContinuousStartStruct {
     pub id: u16,
 }
Expand description

Command to initiate continuous data stream of profile messages.

Fields§

§id: u16

The message id to stream. 1300: profile

-

Trait Implementations§

source§

impl Clone for ContinuousStartStruct

source§

fn clone(&self) -> ContinuousStartStruct

Returns a copy 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 ContinuousStartStruct

source§

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

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

impl Default for ContinuousStartStruct

source§

fn default() -> ContinuousStartStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ContinuousStartStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ContinuousStartStruct

source§

fn id() -> u16

source§

impl PartialEq for ContinuousStartStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for ContinuousStartStruct

source§

fn clone(&self) -> ContinuousStartStruct

Returns a copy 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 ContinuousStartStruct

source§

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

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

impl Default for ContinuousStartStruct

source§

fn default() -> ContinuousStartStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ContinuousStartStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ContinuousStartStruct

source§

fn id() -> u16

source§

impl PartialEq for ContinuousStartStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for ContinuousStartStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ContinuousStartStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for ContinuousStartStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ContinuousStartStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.ContinuousStopStruct.html b/bluerobotics_ping/ping1d/struct.ContinuousStopStruct.html index ea3c99e86..2a06cff85 100644 --- a/bluerobotics_ping/ping1d/struct.ContinuousStopStruct.html +++ b/bluerobotics_ping/ping1d/struct.ContinuousStopStruct.html @@ -1,11 +1,11 @@ ContinuousStopStruct in bluerobotics_ping::ping1d - Rust -
pub struct ContinuousStopStruct {
+    
pub struct ContinuousStopStruct {
     pub id: u16,
 }
Expand description

Command to stop the continuous data stream of profile messages.

Fields§

§id: u16

The message id to stop streaming. 1300: profile

-

Trait Implementations§

source§

impl Clone for ContinuousStopStruct

source§

fn clone(&self) -> ContinuousStopStruct

Returns a copy 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 ContinuousStopStruct

source§

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

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

impl Default for ContinuousStopStruct

source§

fn default() -> ContinuousStopStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ContinuousStopStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ContinuousStopStruct

source§

fn id() -> u16

source§

impl PartialEq for ContinuousStopStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for ContinuousStopStruct

source§

fn clone(&self) -> ContinuousStopStruct

Returns a copy 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 ContinuousStopStruct

source§

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

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

impl Default for ContinuousStopStruct

source§

fn default() -> ContinuousStopStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ContinuousStopStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ContinuousStopStruct

source§

fn id() -> u16

source§

impl PartialEq for ContinuousStopStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for ContinuousStopStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ContinuousStopStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for ContinuousStopStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ContinuousStopStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.Device.html b/bluerobotics_ping/ping1d/struct.Device.html index ffd4ba57e..8a64de68c 100644 --- a/bluerobotics_ping/ping1d/struct.Device.html +++ b/bluerobotics_ping/ping1d/struct.Device.html @@ -2,83 +2,83 @@
pub struct Device {
     pub common: Common,
 }

Fields§

§common: Common

Implementations§

source§

impl Device

source

pub fn new<T>(io: T) -> Self
where - T: AsyncRead + AsyncWrite + Unpin + Send + 'static,

source

pub async fn continuous_start(&self, id: u16) -> Result<(), PingError>

Command to initiate continuous data stream of profile messages.

+ T: AsyncRead + AsyncWrite + Unpin + Send + 'static,

source

pub async fn set_ping_interval( + &self, + ping_interval: u16 +) -> Result<(), PingError>

The interval between acoustic measurements.

§Arguments
    -
  • id - The message id to stream. 1300: profile
  • +
  • ping_interval [ms] - The interval between acoustic measurements.
-
source

pub async fn set_mode_auto(&self, mode_auto: u8) -> Result<(), PingError>

Set automatic or manual mode. Manual mode allows for manual selection of the gain and scan range.

+
source

pub async fn distance_simple(&self) -> Result<DistanceSimpleStruct, PingError>

The distance to target with confidence estimate.

+
source

pub async fn profile(&self) -> Result<ProfileStruct, PingError>

A profile produced from a single acoustic measurement. The data returned is an array of response strength at even intervals across the scan region. The scan region is defined as the region between <scan_start> and <scan_start + scan_length> millimeters away from the transducer. A distance measurement to the target is also provided.

+
source

pub async fn transmit_duration( + &self +) -> Result<TransmitDurationStruct, PingError>

The duration of the acoustic activation/transmission.

+
source

pub async fn general_info(&self) -> Result<GeneralInfoStruct, PingError>

General information.

+
source

pub async fn gain_setting(&self) -> Result<GainSettingStruct, PingError>

The current gain setting.

+
source

pub async fn firmware_version(&self) -> Result<FirmwareVersionStruct, PingError>

Device information

+
source

pub async fn set_ping_enable(&self, ping_enabled: u8) -> Result<(), PingError>

Enable or disable acoustic measurements.

§Arguments
    -
  • mode_auto - 0: manual mode. 1: auto mode.
  • +
  • ping_enabled - 0: Disable, 1: Enable.
-
source

pub async fn firmware_version(&self) -> Result<FirmwareVersionStruct, PingError>

Device information

-
source

pub async fn general_info(&self) -> Result<GeneralInfoStruct, PingError>

General information.

-
source

pub async fn mode_auto(&self) -> Result<ModeAutoStruct, PingError>

The current operating mode of the device. Manual mode allows for manual selection of the gain and scan range.

-
source

pub async fn goto_bootloader(&self) -> Result<(), PingError>

Send the device into the bootloader. This is useful for firmware updates.

-
§Arguments
source

pub async fn set_ping_interval( - &self, - ping_interval: u16 -) -> Result<(), PingError>

The interval between acoustic measurements.

-
§Arguments
+
source

pub async fn continuous_stop(&self, id: u16) -> Result<(), PingError>

Command to stop the continuous data stream of profile messages.

+
§Arguments
    -
  • ping_interval [ms] - The interval between acoustic measurements.
  • +
  • id - The message id to stop streaming. 1300: profile
-
source

pub async fn ping_interval(&self) -> Result<PingIntervalStruct, PingError>

The interval between acoustic measurements.

-
source

pub async fn set_range( - &self, - scan_start: u32, - scan_length: u32 -) -> Result<(), PingError>

Set the scan range for acoustic measurements.

-
§Arguments
+
source

pub async fn set_gain_setting(&self, gain_setting: u8) -> Result<(), PingError>

Set the current gain setting.

+
§Arguments
    -
  • scan_start [mm] - Not documented
  • -
  • scan_length [mm] - The length of the scan range.
  • +
  • gain_setting - The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144
-
source

pub async fn set_speed_of_sound( +

source

pub async fn set_speed_of_sound( &self, speed_of_sound: u32 ) -> Result<(), PingError>

Set the speed of sound used for distance calculations.

-
§Arguments
+
§Arguments
  • speed_of_sound [mm/s] - The speed of sound in the measurement medium. ~1,500,000 mm/s for water.
-
source

pub async fn continuous_stop(&self, id: u16) -> Result<(), PingError>

Command to stop the continuous data stream of profile messages.

-
§Arguments
+
source

pub async fn distance(&self) -> Result<DistanceStruct, PingError>

The distance to target with confidence estimate. Relevant device parameters during the measurement are also provided.

+
source

pub async fn set_range( + &self, + scan_start: u32, + scan_length: u32 +) -> Result<(), PingError>

Set the scan range for acoustic measurements.

+
§Arguments
    -
  • id - The message id to stop streaming. 1300: profile
  • +
  • scan_start [mm] - Not documented
  • +
  • scan_length [mm] - The length of the scan range.
-
source

pub async fn range(&self) -> Result<RangeStruct, PingError>

The scan range for acoustic measurements. Measurements returned by the device will lie in the range (scan_start, scan_start + scan_length).

-
source

pub async fn profile(&self) -> Result<ProfileStruct, PingError>

A profile produced from a single acoustic measurement. The data returned is an array of response strength at even intervals across the scan region. The scan region is defined as the region between <scan_start> and <scan_start + scan_length> millimeters away from the transducer. A distance measurement to the target is also provided.

-
source

pub async fn set_device_id(&self, device_id: u8) -> Result<(), PingError>

Set the device ID.

-
§Arguments
+
source

pub async fn continuous_start(&self, id: u16) -> Result<(), PingError>

Command to initiate continuous data stream of profile messages.

+
§Arguments
    -
  • device_id - Device ID (0-254). 255 is reserved for broadcast messages.
  • +
  • id - The message id to stream. 1300: profile
-
source

pub async fn transmit_duration( +

source

pub async fn goto_bootloader(&self) -> Result<(), PingError>

Send the device into the bootloader. This is useful for firmware updates.

+
§Arguments
source

pub async fn range(&self) -> Result<RangeStruct, PingError>

The scan range for acoustic measurements. Measurements returned by the device will lie in the range (scan_start, scan_start + scan_length).

+
source

pub async fn processor_temperature( &self -) -> Result<TransmitDurationStruct, PingError>

The duration of the acoustic activation/transmission.

-
source

pub async fn set_gain_setting(&self, gain_setting: u8) -> Result<(), PingError>

Set the current gain setting.

+) -> Result<ProcessorTemperatureStruct, PingError>

Temperature of the device cpu.

+
source

pub async fn voltage_5(&self) -> Result<Voltage5Struct, PingError>

The 5V rail voltage.

+
source

pub async fn ping_enable(&self) -> Result<PingEnableStruct, PingError>

Acoustic output enabled state.

+
source

pub async fn mode_auto(&self) -> Result<ModeAutoStruct, PingError>

The current operating mode of the device. Manual mode allows for manual selection of the gain and scan range.

+
source

pub async fn speed_of_sound(&self) -> Result<SpeedOfSoundStruct, PingError>

The speed of sound used for distance calculations.

+
source

pub async fn set_device_id(&self, device_id: u8) -> Result<(), PingError>

Set the device ID.

§Arguments
    -
  • gain_setting - The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144
  • +
  • device_id - Device ID (0-254). 255 is reserved for broadcast messages.
-
source

pub async fn distance_simple(&self) -> Result<DistanceSimpleStruct, PingError>

The distance to target with confidence estimate.

-
source

pub async fn set_ping_enable(&self, ping_enabled: u8) -> Result<(), PingError>

Enable or disable acoustic measurements.

+
source

pub async fn set_mode_auto(&self, mode_auto: u8) -> Result<(), PingError>

Set automatic or manual mode. Manual mode allows for manual selection of the gain and scan range.

§Arguments
    -
  • ping_enabled - 0: Disable, 1: Enable.
  • +
  • mode_auto - 0: manual mode. 1: auto mode.
-
source

pub async fn pcb_temperature(&self) -> Result<PcbTemperatureStruct, PingError>

Temperature of the on-board thermistor.

-
source

pub async fn distance(&self) -> Result<DistanceStruct, PingError>

The distance to target with confidence estimate. Relevant device parameters during the measurement are also provided.

-
source

pub async fn gain_setting(&self) -> Result<GainSettingStruct, PingError>

The current gain setting.

-
source

pub async fn device_id(&self) -> Result<DeviceIdStruct, PingError>

The device ID.

-
source

pub async fn voltage_5(&self) -> Result<Voltage5Struct, PingError>

The 5V rail voltage.

-
source

pub async fn processor_temperature( - &self -) -> Result<ProcessorTemperatureStruct, PingError>

Temperature of the device cpu.

-
source

pub async fn ping_enable(&self) -> Result<PingEnableStruct, PingError>

Acoustic output enabled state.

-
source

pub async fn speed_of_sound(&self) -> Result<SpeedOfSoundStruct, PingError>

The speed of sound used for distance calculations.

+
source

pub async fn device_id(&self) -> Result<DeviceIdStruct, PingError>

The device ID.

+
source

pub async fn pcb_temperature(&self) -> Result<PcbTemperatureStruct, PingError>

Temperature of the on-board thermistor.

+
source

pub async fn ping_interval(&self) -> Result<PingIntervalStruct, PingError>

The interval between acoustic measurements.

Trait Implementations§

source§

impl PingDevice for Device

source§

fn get_common(&self) -> &Common

source§

fn get_mut_common(&mut self) -> &mut Common

source§

fn subscribe(&self) -> Receiver<ProtocolMessage>

source§

async fn send_general_request(&self, requested_id: u16) -> Result<(), PingError>

source§

async fn wait_for_message<T>( &self, receiver: Receiver<ProtocolMessage> diff --git a/bluerobotics_ping/ping1d/struct.DeviceIdStruct.html b/bluerobotics_ping/ping1d/struct.DeviceIdStruct.html index e05689824..876d1e795 100644 --- a/bluerobotics_ping/ping1d/struct.DeviceIdStruct.html +++ b/bluerobotics_ping/ping1d/struct.DeviceIdStruct.html @@ -1,11 +1,11 @@ DeviceIdStruct in bluerobotics_ping::ping1d - Rust -
pub struct DeviceIdStruct {
+    
pub struct DeviceIdStruct {
     pub device_id: u8,
 }
Expand description

The device ID.

Fields§

§device_id: u8

The device ID (0-254). 255 is reserved for broadcast messages.

-

Trait Implementations§

source§

impl Clone for DeviceIdStruct

source§

fn clone(&self) -> DeviceIdStruct

Returns a copy 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 DeviceIdStruct

source§

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

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

impl Default for DeviceIdStruct

source§

fn default() -> DeviceIdStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for DeviceIdStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for DeviceIdStruct

source§

fn id() -> u16

source§

impl PartialEq for DeviceIdStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for DeviceIdStruct

source§

fn clone(&self) -> DeviceIdStruct

Returns a copy 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 DeviceIdStruct

source§

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

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

impl Default for DeviceIdStruct

source§

fn default() -> DeviceIdStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for DeviceIdStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for DeviceIdStruct

source§

fn id() -> u16

source§

impl PartialEq for DeviceIdStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for DeviceIdStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for DeviceIdStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for DeviceIdStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for DeviceIdStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.DistanceSimpleStruct.html b/bluerobotics_ping/ping1d/struct.DistanceSimpleStruct.html index f13e72e35..185e53a00 100644 --- a/bluerobotics_ping/ping1d/struct.DistanceSimpleStruct.html +++ b/bluerobotics_ping/ping1d/struct.DistanceSimpleStruct.html @@ -1,13 +1,13 @@ DistanceSimpleStruct in bluerobotics_ping::ping1d - Rust -
pub struct DistanceSimpleStruct {
+    
pub struct DistanceSimpleStruct {
     pub distance: u32,
     pub confidence: u8,
 }
Expand description

The distance to target with confidence estimate.

Fields§

§distance: u32

Distance to the target.

§confidence: u8

Confidence in the distance measurement.

-

Trait Implementations§

source§

impl Clone for DistanceSimpleStruct

source§

fn clone(&self) -> DistanceSimpleStruct

Returns a copy 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 DistanceSimpleStruct

source§

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

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

impl Default for DistanceSimpleStruct

source§

fn default() -> DistanceSimpleStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for DistanceSimpleStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for DistanceSimpleStruct

source§

fn id() -> u16

source§

impl PartialEq for DistanceSimpleStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for DistanceSimpleStruct

source§

fn clone(&self) -> DistanceSimpleStruct

Returns a copy 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 DistanceSimpleStruct

source§

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

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

impl Default for DistanceSimpleStruct

source§

fn default() -> DistanceSimpleStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for DistanceSimpleStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for DistanceSimpleStruct

source§

fn id() -> u16

source§

impl PartialEq for DistanceSimpleStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for DistanceSimpleStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for DistanceSimpleStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for DistanceSimpleStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for DistanceSimpleStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.DistanceStruct.html b/bluerobotics_ping/ping1d/struct.DistanceStruct.html index 9207e6cc7..2eaa09812 100644 --- a/bluerobotics_ping/ping1d/struct.DistanceStruct.html +++ b/bluerobotics_ping/ping1d/struct.DistanceStruct.html @@ -1,5 +1,5 @@ DistanceStruct in bluerobotics_ping::ping1d - Rust -
pub struct DistanceStruct {
+    
pub struct DistanceStruct {
     pub distance: u32,
     pub confidence: u16,
     pub transmit_duration: u16,
@@ -15,9 +15,9 @@
 
§scan_start: u32

The beginning of the scan region in mm from the transducer.

§scan_length: u32

The length of the scan region.

§gain_setting: u32

The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144

-

Trait Implementations§

source§

impl Clone for DistanceStruct

source§

fn clone(&self) -> DistanceStruct

Returns a copy 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 DistanceStruct

source§

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

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

impl Default for DistanceStruct

source§

fn default() -> DistanceStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for DistanceStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for DistanceStruct

source§

fn id() -> u16

source§

impl PartialEq for DistanceStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for DistanceStruct

source§

fn clone(&self) -> DistanceStruct

Returns a copy 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 DistanceStruct

source§

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

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

impl Default for DistanceStruct

source§

fn default() -> DistanceStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for DistanceStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for DistanceStruct

source§

fn id() -> u16

source§

impl PartialEq for DistanceStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for DistanceStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for DistanceStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for DistanceStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for DistanceStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.FirmwareVersionStruct.html b/bluerobotics_ping/ping1d/struct.FirmwareVersionStruct.html index cfa56ecbf..0070a8471 100644 --- a/bluerobotics_ping/ping1d/struct.FirmwareVersionStruct.html +++ b/bluerobotics_ping/ping1d/struct.FirmwareVersionStruct.html @@ -1,5 +1,5 @@ FirmwareVersionStruct in bluerobotics_ping::ping1d - Rust -
pub struct FirmwareVersionStruct {
+    
pub struct FirmwareVersionStruct {
     pub device_type: u8,
     pub device_model: u8,
     pub firmware_version_major: u16,
@@ -9,9 +9,9 @@
 
§device_model: u8

Device model. 0: Unknown; 1: Ping1D

§firmware_version_major: u16

Firmware version major number.

§firmware_version_minor: u16

Firmware version minor number.

-

Trait Implementations§

source§

impl Clone for FirmwareVersionStruct

source§

fn clone(&self) -> FirmwareVersionStruct

Returns a copy 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 FirmwareVersionStruct

source§

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

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

impl Default for FirmwareVersionStruct

source§

fn default() -> FirmwareVersionStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for FirmwareVersionStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for FirmwareVersionStruct

source§

fn id() -> u16

source§

impl PartialEq for FirmwareVersionStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for FirmwareVersionStruct

source§

fn clone(&self) -> FirmwareVersionStruct

Returns a copy 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 FirmwareVersionStruct

source§

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

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

impl Default for FirmwareVersionStruct

source§

fn default() -> FirmwareVersionStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for FirmwareVersionStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for FirmwareVersionStruct

source§

fn id() -> u16

source§

impl PartialEq for FirmwareVersionStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for FirmwareVersionStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for FirmwareVersionStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for FirmwareVersionStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for FirmwareVersionStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.GainSettingStruct.html b/bluerobotics_ping/ping1d/struct.GainSettingStruct.html index e7fd99685..f6ee68960 100644 --- a/bluerobotics_ping/ping1d/struct.GainSettingStruct.html +++ b/bluerobotics_ping/ping1d/struct.GainSettingStruct.html @@ -1,11 +1,11 @@ GainSettingStruct in bluerobotics_ping::ping1d - Rust -
pub struct GainSettingStruct {
+    
pub struct GainSettingStruct {
     pub gain_setting: u32,
 }
Expand description

The current gain setting.

Fields§

§gain_setting: u32

The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144

-

Trait Implementations§

source§

impl Clone for GainSettingStruct

source§

fn clone(&self) -> GainSettingStruct

Returns a copy 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 GainSettingStruct

source§

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

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

impl Default for GainSettingStruct

source§

fn default() -> GainSettingStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for GainSettingStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for GainSettingStruct

source§

fn id() -> u16

source§

impl PartialEq for GainSettingStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for GainSettingStruct

source§

fn clone(&self) -> GainSettingStruct

Returns a copy 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 GainSettingStruct

source§

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

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

impl Default for GainSettingStruct

source§

fn default() -> GainSettingStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for GainSettingStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for GainSettingStruct

source§

fn id() -> u16

source§

impl PartialEq for GainSettingStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for GainSettingStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for GainSettingStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for GainSettingStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for GainSettingStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.GeneralInfoStruct.html b/bluerobotics_ping/ping1d/struct.GeneralInfoStruct.html index 0d56e564b..d36793bba 100644 --- a/bluerobotics_ping/ping1d/struct.GeneralInfoStruct.html +++ b/bluerobotics_ping/ping1d/struct.GeneralInfoStruct.html @@ -1,5 +1,5 @@ GeneralInfoStruct in bluerobotics_ping::ping1d - Rust -
pub struct GeneralInfoStruct {
+    
pub struct GeneralInfoStruct {
     pub firmware_version_major: u16,
     pub firmware_version_minor: u16,
     pub voltage_5: u16,
@@ -13,9 +13,9 @@
 
§ping_interval: u16

The interval between acoustic measurements.

§gain_setting: u8

The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144

§mode_auto: u8

The current operating mode of the device. 0: manual mode, 1: auto mode

-

Trait Implementations§

source§

impl Clone for GeneralInfoStruct

source§

fn clone(&self) -> GeneralInfoStruct

Returns a copy 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 GeneralInfoStruct

source§

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

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

impl Default for GeneralInfoStruct

source§

fn default() -> GeneralInfoStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for GeneralInfoStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for GeneralInfoStruct

source§

fn id() -> u16

source§

impl PartialEq for GeneralInfoStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for GeneralInfoStruct

source§

fn clone(&self) -> GeneralInfoStruct

Returns a copy 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 GeneralInfoStruct

source§

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

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

impl Default for GeneralInfoStruct

source§

fn default() -> GeneralInfoStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for GeneralInfoStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for GeneralInfoStruct

source§

fn id() -> u16

source§

impl PartialEq for GeneralInfoStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for GeneralInfoStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for GeneralInfoStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for GeneralInfoStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for GeneralInfoStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.GotoBootloaderStruct.html b/bluerobotics_ping/ping1d/struct.GotoBootloaderStruct.html index d6db9a788..cceb4c095 100644 --- a/bluerobotics_ping/ping1d/struct.GotoBootloaderStruct.html +++ b/bluerobotics_ping/ping1d/struct.GotoBootloaderStruct.html @@ -1,8 +1,8 @@ GotoBootloaderStruct in bluerobotics_ping::ping1d - Rust -
pub struct GotoBootloaderStruct {}
Expand description

Send the device into the bootloader. This is useful for firmware updates.

-

Trait Implementations§

source§

impl Clone for GotoBootloaderStruct

source§

fn clone(&self) -> GotoBootloaderStruct

Returns a copy 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 GotoBootloaderStruct

source§

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

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

impl Default for GotoBootloaderStruct

source§

fn default() -> GotoBootloaderStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for GotoBootloaderStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for GotoBootloaderStruct

source§

fn id() -> u16

source§

impl PartialEq for GotoBootloaderStruct

source§

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

This method tests for self and other values to be equal, and is used +
pub struct GotoBootloaderStruct {}
Expand description

Send the device into the bootloader. This is useful for firmware updates.

+

Trait Implementations§

source§

impl Clone for GotoBootloaderStruct

source§

fn clone(&self) -> GotoBootloaderStruct

Returns a copy 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 GotoBootloaderStruct

source§

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

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

impl Default for GotoBootloaderStruct

source§

fn default() -> GotoBootloaderStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for GotoBootloaderStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for GotoBootloaderStruct

source§

fn id() -> u16

source§

impl PartialEq for GotoBootloaderStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for GotoBootloaderStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for GotoBootloaderStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for GotoBootloaderStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for GotoBootloaderStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.ModeAutoStruct.html b/bluerobotics_ping/ping1d/struct.ModeAutoStruct.html index 2f1ff99a5..ce74fa153 100644 --- a/bluerobotics_ping/ping1d/struct.ModeAutoStruct.html +++ b/bluerobotics_ping/ping1d/struct.ModeAutoStruct.html @@ -1,11 +1,11 @@ ModeAutoStruct in bluerobotics_ping::ping1d - Rust -
pub struct ModeAutoStruct {
+    
pub struct ModeAutoStruct {
     pub mode_auto: u8,
 }
Expand description

The current operating mode of the device. Manual mode allows for manual selection of the gain and scan range.

Fields§

§mode_auto: u8

0: manual mode, 1: auto mode

-

Trait Implementations§

source§

impl Clone for ModeAutoStruct

source§

fn clone(&self) -> ModeAutoStruct

Returns a copy 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 ModeAutoStruct

source§

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

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

impl Default for ModeAutoStruct

source§

fn default() -> ModeAutoStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ModeAutoStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ModeAutoStruct

source§

fn id() -> u16

source§

impl PartialEq for ModeAutoStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for ModeAutoStruct

source§

fn clone(&self) -> ModeAutoStruct

Returns a copy 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 ModeAutoStruct

source§

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

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

impl Default for ModeAutoStruct

source§

fn default() -> ModeAutoStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ModeAutoStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ModeAutoStruct

source§

fn id() -> u16

source§

impl PartialEq for ModeAutoStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for ModeAutoStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ModeAutoStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for ModeAutoStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ModeAutoStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.PcbTemperatureStruct.html b/bluerobotics_ping/ping1d/struct.PcbTemperatureStruct.html index ae7623d54..9cfc2c667 100644 --- a/bluerobotics_ping/ping1d/struct.PcbTemperatureStruct.html +++ b/bluerobotics_ping/ping1d/struct.PcbTemperatureStruct.html @@ -1,11 +1,11 @@ PcbTemperatureStruct in bluerobotics_ping::ping1d - Rust -
pub struct PcbTemperatureStruct {
+    
pub struct PcbTemperatureStruct {
     pub pcb_temperature: u16,
 }
Expand description

Temperature of the on-board thermistor.

Fields§

§pcb_temperature: u16

The temperature in centi-degrees Centigrade (100 * degrees C).

-

Trait Implementations§

source§

impl Clone for PcbTemperatureStruct

source§

fn clone(&self) -> PcbTemperatureStruct

Returns a copy 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 PcbTemperatureStruct

source§

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

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

impl Default for PcbTemperatureStruct

source§

fn default() -> PcbTemperatureStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for PcbTemperatureStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for PcbTemperatureStruct

source§

fn id() -> u16

source§

impl PartialEq for PcbTemperatureStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for PcbTemperatureStruct

source§

fn clone(&self) -> PcbTemperatureStruct

Returns a copy 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 PcbTemperatureStruct

source§

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

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

impl Default for PcbTemperatureStruct

source§

fn default() -> PcbTemperatureStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for PcbTemperatureStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for PcbTemperatureStruct

source§

fn id() -> u16

source§

impl PartialEq for PcbTemperatureStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for PcbTemperatureStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for PcbTemperatureStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for PcbTemperatureStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for PcbTemperatureStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.PingEnableStruct.html b/bluerobotics_ping/ping1d/struct.PingEnableStruct.html index da677dfa4..d7a4ddefd 100644 --- a/bluerobotics_ping/ping1d/struct.PingEnableStruct.html +++ b/bluerobotics_ping/ping1d/struct.PingEnableStruct.html @@ -1,11 +1,11 @@ PingEnableStruct in bluerobotics_ping::ping1d - Rust -
pub struct PingEnableStruct {
+    
pub struct PingEnableStruct {
     pub ping_enabled: u8,
 }
Expand description

Acoustic output enabled state.

Fields§

§ping_enabled: u8

The state of the acoustic output. 0: disabled, 1:enabled

-

Trait Implementations§

source§

impl Clone for PingEnableStruct

source§

fn clone(&self) -> PingEnableStruct

Returns a copy 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 PingEnableStruct

source§

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

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

impl Default for PingEnableStruct

source§

fn default() -> PingEnableStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for PingEnableStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for PingEnableStruct

source§

fn id() -> u16

source§

impl PartialEq for PingEnableStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for PingEnableStruct

source§

fn clone(&self) -> PingEnableStruct

Returns a copy 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 PingEnableStruct

source§

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

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

impl Default for PingEnableStruct

source§

fn default() -> PingEnableStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for PingEnableStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for PingEnableStruct

source§

fn id() -> u16

source§

impl PartialEq for PingEnableStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for PingEnableStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for PingEnableStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for PingEnableStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for PingEnableStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.PingIntervalStruct.html b/bluerobotics_ping/ping1d/struct.PingIntervalStruct.html index 00490d5b9..767c362c0 100644 --- a/bluerobotics_ping/ping1d/struct.PingIntervalStruct.html +++ b/bluerobotics_ping/ping1d/struct.PingIntervalStruct.html @@ -1,11 +1,11 @@ PingIntervalStruct in bluerobotics_ping::ping1d - Rust -
pub struct PingIntervalStruct {
+    
pub struct PingIntervalStruct {
     pub ping_interval: u16,
 }
Expand description

The interval between acoustic measurements.

Fields§

§ping_interval: u16

The minimum interval between acoustic measurements. The actual interval may be longer.

-

Trait Implementations§

source§

impl Clone for PingIntervalStruct

source§

fn clone(&self) -> PingIntervalStruct

Returns a copy 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 PingIntervalStruct

source§

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

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

impl Default for PingIntervalStruct

source§

fn default() -> PingIntervalStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for PingIntervalStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for PingIntervalStruct

source§

fn id() -> u16

source§

impl PartialEq for PingIntervalStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for PingIntervalStruct

source§

fn clone(&self) -> PingIntervalStruct

Returns a copy 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 PingIntervalStruct

source§

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

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

impl Default for PingIntervalStruct

source§

fn default() -> PingIntervalStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for PingIntervalStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for PingIntervalStruct

source§

fn id() -> u16

source§

impl PartialEq for PingIntervalStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for PingIntervalStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for PingIntervalStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for PingIntervalStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for PingIntervalStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.ProcessorTemperatureStruct.html b/bluerobotics_ping/ping1d/struct.ProcessorTemperatureStruct.html index e5e16f655..42d25d543 100644 --- a/bluerobotics_ping/ping1d/struct.ProcessorTemperatureStruct.html +++ b/bluerobotics_ping/ping1d/struct.ProcessorTemperatureStruct.html @@ -1,11 +1,11 @@ ProcessorTemperatureStruct in bluerobotics_ping::ping1d - Rust -
pub struct ProcessorTemperatureStruct {
+    
pub struct ProcessorTemperatureStruct {
     pub processor_temperature: u16,
 }
Expand description

Temperature of the device cpu.

Fields§

§processor_temperature: u16

The temperature in centi-degrees Centigrade (100 * degrees C).

-

Trait Implementations§

source§

impl Clone for ProcessorTemperatureStruct

source§

fn clone(&self) -> ProcessorTemperatureStruct

Returns a copy 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 ProcessorTemperatureStruct

source§

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

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

impl Default for ProcessorTemperatureStruct

source§

fn default() -> ProcessorTemperatureStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ProcessorTemperatureStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ProcessorTemperatureStruct

source§

fn id() -> u16

source§

impl PartialEq for ProcessorTemperatureStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for ProcessorTemperatureStruct

source§

fn clone(&self) -> ProcessorTemperatureStruct

Returns a copy 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 ProcessorTemperatureStruct

source§

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

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

impl Default for ProcessorTemperatureStruct

source§

fn default() -> ProcessorTemperatureStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ProcessorTemperatureStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ProcessorTemperatureStruct

source§

fn id() -> u16

source§

impl PartialEq for ProcessorTemperatureStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for ProcessorTemperatureStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ProcessorTemperatureStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for ProcessorTemperatureStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ProcessorTemperatureStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.ProfileStruct.html b/bluerobotics_ping/ping1d/struct.ProfileStruct.html index f71bc4357..d8c54af1d 100644 --- a/bluerobotics_ping/ping1d/struct.ProfileStruct.html +++ b/bluerobotics_ping/ping1d/struct.ProfileStruct.html @@ -1,5 +1,5 @@ ProfileStruct in bluerobotics_ping::ping1d - Rust -
pub struct ProfileStruct {
+    
pub struct ProfileStruct {
     pub distance: u32,
     pub confidence: u16,
     pub transmit_duration: u16,
@@ -18,9 +18,9 @@
 
§scan_length: u32

The length of the scan region.

§gain_setting: u32

The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144

§profile_data_length: u16

An array of return strength measurements taken at regular intervals across the scan region.

-
§profile_data: Vec<u8>

Trait Implementations§

source§

impl Clone for ProfileStruct

source§

fn clone(&self) -> ProfileStruct

Returns a copy 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 ProfileStruct

source§

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

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

impl Default for ProfileStruct

source§

fn default() -> ProfileStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ProfileStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ProfileStruct

source§

fn id() -> u16

source§

impl PartialEq for ProfileStruct

source§

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

This method tests for self and other values to be equal, and is used +
§profile_data: Vec<u8>

Trait Implementations§

source§

impl Clone for ProfileStruct

source§

fn clone(&self) -> ProfileStruct

Returns a copy 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 ProfileStruct

source§

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

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

impl Default for ProfileStruct

source§

fn default() -> ProfileStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for ProfileStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for ProfileStruct

source§

fn id() -> u16

source§

impl PartialEq for ProfileStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for ProfileStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ProfileStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for ProfileStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for ProfileStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.RangeStruct.html b/bluerobotics_ping/ping1d/struct.RangeStruct.html index 5d87f8233..8c5c150c4 100644 --- a/bluerobotics_ping/ping1d/struct.RangeStruct.html +++ b/bluerobotics_ping/ping1d/struct.RangeStruct.html @@ -1,13 +1,13 @@ RangeStruct in bluerobotics_ping::ping1d - Rust -
pub struct RangeStruct {
+    
pub struct RangeStruct {
     pub scan_start: u32,
     pub scan_length: u32,
 }
Expand description

The scan range for acoustic measurements. Measurements returned by the device will lie in the range (scan_start, scan_start + scan_length).

Fields§

§scan_start: u32

The beginning of the scan range in mm from the transducer.

§scan_length: u32

The length of the scan range.

-

Trait Implementations§

source§

impl Clone for RangeStruct

source§

fn clone(&self) -> RangeStruct

Returns a copy 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 RangeStruct

source§

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

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

impl Default for RangeStruct

source§

fn default() -> RangeStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for RangeStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for RangeStruct

source§

fn id() -> u16

source§

impl PartialEq for RangeStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for RangeStruct

source§

fn clone(&self) -> RangeStruct

Returns a copy 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 RangeStruct

source§

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

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

impl Default for RangeStruct

source§

fn default() -> RangeStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for RangeStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for RangeStruct

source§

fn id() -> u16

source§

impl PartialEq for RangeStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for RangeStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for RangeStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for RangeStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for RangeStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.SetDeviceIdStruct.html b/bluerobotics_ping/ping1d/struct.SetDeviceIdStruct.html index f784b4445..2c06f6508 100644 --- a/bluerobotics_ping/ping1d/struct.SetDeviceIdStruct.html +++ b/bluerobotics_ping/ping1d/struct.SetDeviceIdStruct.html @@ -1,11 +1,11 @@ SetDeviceIdStruct in bluerobotics_ping::ping1d - Rust -
pub struct SetDeviceIdStruct {
+    
pub struct SetDeviceIdStruct {
     pub device_id: u8,
 }
Expand description

Set the device ID.

Fields§

§device_id: u8

Device ID (0-254). 255 is reserved for broadcast messages.

-

Trait Implementations§

source§

impl Clone for SetDeviceIdStruct

source§

fn clone(&self) -> SetDeviceIdStruct

Returns a copy 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 SetDeviceIdStruct

source§

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

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

impl Default for SetDeviceIdStruct

source§

fn default() -> SetDeviceIdStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetDeviceIdStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetDeviceIdStruct

source§

fn id() -> u16

source§

impl PartialEq for SetDeviceIdStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetDeviceIdStruct

source§

fn clone(&self) -> SetDeviceIdStruct

Returns a copy 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 SetDeviceIdStruct

source§

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

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

impl Default for SetDeviceIdStruct

source§

fn default() -> SetDeviceIdStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetDeviceIdStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetDeviceIdStruct

source§

fn id() -> u16

source§

impl PartialEq for SetDeviceIdStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetDeviceIdStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetDeviceIdStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetDeviceIdStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetDeviceIdStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.SetGainSettingStruct.html b/bluerobotics_ping/ping1d/struct.SetGainSettingStruct.html index 71a229af7..f9bf86d2d 100644 --- a/bluerobotics_ping/ping1d/struct.SetGainSettingStruct.html +++ b/bluerobotics_ping/ping1d/struct.SetGainSettingStruct.html @@ -1,11 +1,11 @@ SetGainSettingStruct in bluerobotics_ping::ping1d - Rust -
pub struct SetGainSettingStruct {
+    
pub struct SetGainSettingStruct {
     pub gain_setting: u8,
 }
Expand description

Set the current gain setting.

Fields§

§gain_setting: u8

The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144

-

Trait Implementations§

source§

impl Clone for SetGainSettingStruct

source§

fn clone(&self) -> SetGainSettingStruct

Returns a copy 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 SetGainSettingStruct

source§

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

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

impl Default for SetGainSettingStruct

source§

fn default() -> SetGainSettingStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetGainSettingStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetGainSettingStruct

source§

fn id() -> u16

source§

impl PartialEq for SetGainSettingStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetGainSettingStruct

source§

fn clone(&self) -> SetGainSettingStruct

Returns a copy 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 SetGainSettingStruct

source§

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

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

impl Default for SetGainSettingStruct

source§

fn default() -> SetGainSettingStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetGainSettingStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetGainSettingStruct

source§

fn id() -> u16

source§

impl PartialEq for SetGainSettingStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetGainSettingStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetGainSettingStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetGainSettingStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetGainSettingStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.SetModeAutoStruct.html b/bluerobotics_ping/ping1d/struct.SetModeAutoStruct.html index c2f8c2af2..b172e2d75 100644 --- a/bluerobotics_ping/ping1d/struct.SetModeAutoStruct.html +++ b/bluerobotics_ping/ping1d/struct.SetModeAutoStruct.html @@ -1,11 +1,11 @@ SetModeAutoStruct in bluerobotics_ping::ping1d - Rust -
pub struct SetModeAutoStruct {
+    
pub struct SetModeAutoStruct {
     pub mode_auto: u8,
 }
Expand description

Set automatic or manual mode. Manual mode allows for manual selection of the gain and scan range.

Fields§

§mode_auto: u8

0: manual mode. 1: auto mode.

-

Trait Implementations§

source§

impl Clone for SetModeAutoStruct

source§

fn clone(&self) -> SetModeAutoStruct

Returns a copy 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 SetModeAutoStruct

source§

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

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

impl Default for SetModeAutoStruct

source§

fn default() -> SetModeAutoStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetModeAutoStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetModeAutoStruct

source§

fn id() -> u16

source§

impl PartialEq for SetModeAutoStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetModeAutoStruct

source§

fn clone(&self) -> SetModeAutoStruct

Returns a copy 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 SetModeAutoStruct

source§

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

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

impl Default for SetModeAutoStruct

source§

fn default() -> SetModeAutoStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetModeAutoStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetModeAutoStruct

source§

fn id() -> u16

source§

impl PartialEq for SetModeAutoStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetModeAutoStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetModeAutoStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetModeAutoStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetModeAutoStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.SetPingEnableStruct.html b/bluerobotics_ping/ping1d/struct.SetPingEnableStruct.html index 339bc1a62..4435b27a5 100644 --- a/bluerobotics_ping/ping1d/struct.SetPingEnableStruct.html +++ b/bluerobotics_ping/ping1d/struct.SetPingEnableStruct.html @@ -1,11 +1,11 @@ SetPingEnableStruct in bluerobotics_ping::ping1d - Rust -
pub struct SetPingEnableStruct {
+    
pub struct SetPingEnableStruct {
     pub ping_enabled: u8,
 }
Expand description

Enable or disable acoustic measurements.

Fields§

§ping_enabled: u8

0: Disable, 1: Enable.

-

Trait Implementations§

source§

impl Clone for SetPingEnableStruct

source§

fn clone(&self) -> SetPingEnableStruct

Returns a copy 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 SetPingEnableStruct

source§

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

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

impl Default for SetPingEnableStruct

source§

fn default() -> SetPingEnableStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetPingEnableStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetPingEnableStruct

source§

fn id() -> u16

source§

impl PartialEq for SetPingEnableStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetPingEnableStruct

source§

fn clone(&self) -> SetPingEnableStruct

Returns a copy 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 SetPingEnableStruct

source§

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

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

impl Default for SetPingEnableStruct

source§

fn default() -> SetPingEnableStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetPingEnableStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetPingEnableStruct

source§

fn id() -> u16

source§

impl PartialEq for SetPingEnableStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetPingEnableStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetPingEnableStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetPingEnableStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetPingEnableStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.SetPingIntervalStruct.html b/bluerobotics_ping/ping1d/struct.SetPingIntervalStruct.html index 803399497..1145e2367 100644 --- a/bluerobotics_ping/ping1d/struct.SetPingIntervalStruct.html +++ b/bluerobotics_ping/ping1d/struct.SetPingIntervalStruct.html @@ -1,11 +1,11 @@ SetPingIntervalStruct in bluerobotics_ping::ping1d - Rust -
pub struct SetPingIntervalStruct {
+    
pub struct SetPingIntervalStruct {
     pub ping_interval: u16,
 }
Expand description

The interval between acoustic measurements.

Fields§

§ping_interval: u16

The interval between acoustic measurements.

-

Trait Implementations§

source§

impl Clone for SetPingIntervalStruct

source§

fn clone(&self) -> SetPingIntervalStruct

Returns a copy 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 SetPingIntervalStruct

source§

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

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

impl Default for SetPingIntervalStruct

source§

fn default() -> SetPingIntervalStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetPingIntervalStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetPingIntervalStruct

source§

fn id() -> u16

source§

impl PartialEq for SetPingIntervalStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetPingIntervalStruct

source§

fn clone(&self) -> SetPingIntervalStruct

Returns a copy 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 SetPingIntervalStruct

source§

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

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

impl Default for SetPingIntervalStruct

source§

fn default() -> SetPingIntervalStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetPingIntervalStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetPingIntervalStruct

source§

fn id() -> u16

source§

impl PartialEq for SetPingIntervalStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetPingIntervalStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetPingIntervalStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetPingIntervalStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetPingIntervalStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.SetRangeStruct.html b/bluerobotics_ping/ping1d/struct.SetRangeStruct.html index 4e5ce1386..946e20147 100644 --- a/bluerobotics_ping/ping1d/struct.SetRangeStruct.html +++ b/bluerobotics_ping/ping1d/struct.SetRangeStruct.html @@ -1,13 +1,13 @@ SetRangeStruct in bluerobotics_ping::ping1d - Rust -
pub struct SetRangeStruct {
+    
pub struct SetRangeStruct {
     pub scan_start: u32,
     pub scan_length: u32,
 }
Expand description

Set the scan range for acoustic measurements.

Fields§

§scan_start: u32

Not documented

§scan_length: u32

The length of the scan range.

-

Trait Implementations§

source§

impl Clone for SetRangeStruct

source§

fn clone(&self) -> SetRangeStruct

Returns a copy 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 SetRangeStruct

source§

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

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

impl Default for SetRangeStruct

source§

fn default() -> SetRangeStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetRangeStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetRangeStruct

source§

fn id() -> u16

source§

impl PartialEq for SetRangeStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetRangeStruct

source§

fn clone(&self) -> SetRangeStruct

Returns a copy 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 SetRangeStruct

source§

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

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

impl Default for SetRangeStruct

source§

fn default() -> SetRangeStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetRangeStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetRangeStruct

source§

fn id() -> u16

source§

impl PartialEq for SetRangeStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetRangeStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetRangeStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetRangeStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetRangeStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.SetSpeedOfSoundStruct.html b/bluerobotics_ping/ping1d/struct.SetSpeedOfSoundStruct.html index d99b04381..fa963772e 100644 --- a/bluerobotics_ping/ping1d/struct.SetSpeedOfSoundStruct.html +++ b/bluerobotics_ping/ping1d/struct.SetSpeedOfSoundStruct.html @@ -1,11 +1,11 @@ SetSpeedOfSoundStruct in bluerobotics_ping::ping1d - Rust -
pub struct SetSpeedOfSoundStruct {
+    
pub struct SetSpeedOfSoundStruct {
     pub speed_of_sound: u32,
 }
Expand description

Set the speed of sound used for distance calculations.

Fields§

§speed_of_sound: u32

The speed of sound in the measurement medium. ~1,500,000 mm/s for water.

-

Trait Implementations§

source§

impl Clone for SetSpeedOfSoundStruct

source§

fn clone(&self) -> SetSpeedOfSoundStruct

Returns a copy 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 SetSpeedOfSoundStruct

source§

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

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

impl Default for SetSpeedOfSoundStruct

source§

fn default() -> SetSpeedOfSoundStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetSpeedOfSoundStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetSpeedOfSoundStruct

source§

fn id() -> u16

source§

impl PartialEq for SetSpeedOfSoundStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SetSpeedOfSoundStruct

source§

fn clone(&self) -> SetSpeedOfSoundStruct

Returns a copy 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 SetSpeedOfSoundStruct

source§

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

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

impl Default for SetSpeedOfSoundStruct

source§

fn default() -> SetSpeedOfSoundStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SetSpeedOfSoundStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SetSpeedOfSoundStruct

source§

fn id() -> u16

source§

impl PartialEq for SetSpeedOfSoundStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SetSpeedOfSoundStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetSpeedOfSoundStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SetSpeedOfSoundStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SetSpeedOfSoundStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.SpeedOfSoundStruct.html b/bluerobotics_ping/ping1d/struct.SpeedOfSoundStruct.html index 7fb831d08..66a52bc7b 100644 --- a/bluerobotics_ping/ping1d/struct.SpeedOfSoundStruct.html +++ b/bluerobotics_ping/ping1d/struct.SpeedOfSoundStruct.html @@ -1,11 +1,11 @@ SpeedOfSoundStruct in bluerobotics_ping::ping1d - Rust -
pub struct SpeedOfSoundStruct {
+    
pub struct SpeedOfSoundStruct {
     pub speed_of_sound: u32,
 }
Expand description

The speed of sound used for distance calculations.

Fields§

§speed_of_sound: u32

The speed of sound in the measurement medium. ~1,500,000 mm/s for water.

-

Trait Implementations§

source§

impl Clone for SpeedOfSoundStruct

source§

fn clone(&self) -> SpeedOfSoundStruct

Returns a copy 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 SpeedOfSoundStruct

source§

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

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

impl Default for SpeedOfSoundStruct

source§

fn default() -> SpeedOfSoundStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SpeedOfSoundStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SpeedOfSoundStruct

source§

fn id() -> u16

source§

impl PartialEq for SpeedOfSoundStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for SpeedOfSoundStruct

source§

fn clone(&self) -> SpeedOfSoundStruct

Returns a copy 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 SpeedOfSoundStruct

source§

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

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

impl Default for SpeedOfSoundStruct

source§

fn default() -> SpeedOfSoundStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for SpeedOfSoundStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for SpeedOfSoundStruct

source§

fn id() -> u16

source§

impl PartialEq for SpeedOfSoundStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for SpeedOfSoundStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SpeedOfSoundStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for SpeedOfSoundStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for SpeedOfSoundStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.TransmitDurationStruct.html b/bluerobotics_ping/ping1d/struct.TransmitDurationStruct.html index ded276f9c..e8763afa4 100644 --- a/bluerobotics_ping/ping1d/struct.TransmitDurationStruct.html +++ b/bluerobotics_ping/ping1d/struct.TransmitDurationStruct.html @@ -1,11 +1,11 @@ TransmitDurationStruct in bluerobotics_ping::ping1d - Rust -
pub struct TransmitDurationStruct {
+    
pub struct TransmitDurationStruct {
     pub transmit_duration: u16,
 }
Expand description

The duration of the acoustic activation/transmission.

Fields§

§transmit_duration: u16

Acoustic pulse duration.

-

Trait Implementations§

source§

impl Clone for TransmitDurationStruct

source§

fn clone(&self) -> TransmitDurationStruct

Returns a copy 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 TransmitDurationStruct

source§

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

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

impl Default for TransmitDurationStruct

source§

fn default() -> TransmitDurationStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for TransmitDurationStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for TransmitDurationStruct

source§

fn id() -> u16

source§

impl PartialEq for TransmitDurationStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for TransmitDurationStruct

source§

fn clone(&self) -> TransmitDurationStruct

Returns a copy 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 TransmitDurationStruct

source§

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

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

impl Default for TransmitDurationStruct

source§

fn default() -> TransmitDurationStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for TransmitDurationStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for TransmitDurationStruct

source§

fn id() -> u16

source§

impl PartialEq for TransmitDurationStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for TransmitDurationStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for TransmitDurationStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for TransmitDurationStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for TransmitDurationStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping1d/struct.Voltage5Struct.html b/bluerobotics_ping/ping1d/struct.Voltage5Struct.html index 88c304971..9c16d0ffc 100644 --- a/bluerobotics_ping/ping1d/struct.Voltage5Struct.html +++ b/bluerobotics_ping/ping1d/struct.Voltage5Struct.html @@ -1,11 +1,11 @@ Voltage5Struct in bluerobotics_ping::ping1d - Rust -
pub struct Voltage5Struct {
+    
pub struct Voltage5Struct {
     pub voltage_5: u16,
 }
Expand description

The 5V rail voltage.

Fields§

§voltage_5: u16

The 5V rail voltage.

-

Trait Implementations§

source§

impl Clone for Voltage5Struct

source§

fn clone(&self) -> Voltage5Struct

Returns a copy 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 Voltage5Struct

source§

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

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

impl Default for Voltage5Struct

source§

fn default() -> Voltage5Struct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for Voltage5Struct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for Voltage5Struct

source§

fn id() -> u16

source§

impl PartialEq for Voltage5Struct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for Voltage5Struct

source§

fn clone(&self) -> Voltage5Struct

Returns a copy 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 Voltage5Struct

source§

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

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

impl Default for Voltage5Struct

source§

fn default() -> Voltage5Struct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for Voltage5Struct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for Voltage5Struct

source§

fn id() -> u16

source§

impl PartialEq for Voltage5Struct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for Voltage5Struct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for Voltage5Struct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for Voltage5Struct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for Voltage5Struct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping360/enum.Messages.html b/bluerobotics_ping/ping360/enum.Messages.html index 9db6231aa..1bc284aaf 100644 --- a/bluerobotics_ping/ping360/enum.Messages.html +++ b/bluerobotics_ping/ping360/enum.Messages.html @@ -1,13 +1,13 @@ Messages in bluerobotics_ping::ping360 - Rust
pub enum Messages {
-    AutoDeviceData(AutoDeviceDataStruct),
-    Reset(ResetStruct),
     MotorOff(MotorOffStruct),
     AutoTransmit(AutoTransmitStruct),
+    Reset(ResetStruct),
+    AutoDeviceData(AutoDeviceDataStruct),
+    DeviceData(DeviceDataStruct),
     Transducer(TransducerStruct),
     DeviceId(DeviceIdStruct),
-    DeviceData(DeviceDataStruct),
-}

Variants§

Implementations§

source§

impl Messages

source

pub fn inner<T: 'static>(&self) -> Option<&T>

Trait Implementations§

source§

impl Clone for Messages

source§

fn clone(&self) -> Messages

Returns a copy 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 Messages

source§

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

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

impl DeserializeGenericMessage for Messages

source§

fn deserialize(message_id: u16, payload: &[u8]) -> Result<Self, &'static str>

source§

impl PartialEq for Messages

source§

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

This method tests for self and other values to be equal, and is used +}

Variants§

Implementations§

source§

impl Messages

source

pub fn inner<T: 'static>(&self) -> Option<&T>

Trait Implementations§

source§

impl Clone for Messages

source§

fn clone(&self) -> Messages

Returns a copy 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 Messages

source§

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

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

impl DeserializeGenericMessage for Messages

source§

fn deserialize(message_id: u16, payload: &[u8]) -> Result<Self, &'static str>

source§

impl PartialEq for Messages

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl PingMessage for Messages

source§

impl SerializePayload for Messages

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for Messages

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 diff --git a/bluerobotics_ping/ping360/struct.AutoDeviceDataStruct.html b/bluerobotics_ping/ping360/struct.AutoDeviceDataStruct.html index 8217f9e1f..3ec588cca 100644 --- a/bluerobotics_ping/ping360/struct.AutoDeviceDataStruct.html +++ b/bluerobotics_ping/ping360/struct.AutoDeviceDataStruct.html @@ -1,5 +1,5 @@ AutoDeviceDataStruct in bluerobotics_ping::ping360 - Rust -
pub struct AutoDeviceDataStruct {
Show 13 fields +
pub struct AutoDeviceDataStruct {
Show 13 fields pub mode: u8, pub gain_setting: u8, pub angle: u16, @@ -26,9 +26,9 @@
§delay: u8

An additional delay between successive transmit pulses (0~100 ms). This may be necessary for some programs to avoid collisions on the RS485 USRT.

§number_of_samples: u16

Number of samples per reflected signal

§data_length: u16

8 bit binary data array representing sonar echo strength

-
§data: Vec<u8>

Trait Implementations§

source§

impl Clone for AutoDeviceDataStruct

source§

fn clone(&self) -> AutoDeviceDataStruct

Returns a copy 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 AutoDeviceDataStruct

source§

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

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

impl Default for AutoDeviceDataStruct

source§

fn default() -> AutoDeviceDataStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for AutoDeviceDataStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for AutoDeviceDataStruct

source§

fn id() -> u16

source§

impl PartialEq for AutoDeviceDataStruct

source§

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

This method tests for self and other values to be equal, and is used +
§data: Vec<u8>

Trait Implementations§

source§

impl Clone for AutoDeviceDataStruct

source§

fn clone(&self) -> AutoDeviceDataStruct

Returns a copy 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 AutoDeviceDataStruct

source§

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

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

impl Default for AutoDeviceDataStruct

source§

fn default() -> AutoDeviceDataStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for AutoDeviceDataStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for AutoDeviceDataStruct

source§

fn id() -> u16

source§

impl PartialEq for AutoDeviceDataStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for AutoDeviceDataStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for AutoDeviceDataStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for AutoDeviceDataStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for AutoDeviceDataStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping360/struct.AutoTransmitStruct.html b/bluerobotics_ping/ping360/struct.AutoTransmitStruct.html index c380abe2f..244742d18 100644 --- a/bluerobotics_ping/ping360/struct.AutoTransmitStruct.html +++ b/bluerobotics_ping/ping360/struct.AutoTransmitStruct.html @@ -1,5 +1,5 @@ AutoTransmitStruct in bluerobotics_ping::ping360 - Rust -
pub struct AutoTransmitStruct {
+    
pub struct AutoTransmitStruct {
     pub mode: u8,
     pub gain_setting: u8,
     pub transmit_duration: u16,
@@ -21,9 +21,9 @@
 
§stop_angle: u16

Head angle to end scan sector for autoscan in gradians (0~399 = 0~360 degrees).

§num_steps: u8

Number of 0.9 degree motor steps between pings for auto scan (1~10 = 0.9~9.0 degrees)

§delay: u8

An additional delay between successive transmit pulses (0~100 ms). This may be necessary for some programs to avoid collisions on the RS485 USRT.

-

Trait Implementations§

source§

impl Clone for AutoTransmitStruct

source§

fn clone(&self) -> AutoTransmitStruct

Returns a copy 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 AutoTransmitStruct

source§

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

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

impl Default for AutoTransmitStruct

source§

fn default() -> AutoTransmitStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for AutoTransmitStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for AutoTransmitStruct

source§

fn id() -> u16

source§

impl PartialEq for AutoTransmitStruct

source§

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

This method tests for self and other values to be equal, and is used +

Trait Implementations§

source§

impl Clone for AutoTransmitStruct

source§

fn clone(&self) -> AutoTransmitStruct

Returns a copy 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 AutoTransmitStruct

source§

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

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

impl Default for AutoTransmitStruct

source§

fn default() -> AutoTransmitStruct

Returns the “default value” for a type. Read more
source§

impl DeserializePayload for AutoTransmitStruct

source§

fn deserialize(payload: &[u8]) -> Self

source§

impl MessageInfo for AutoTransmitStruct

source§

fn id() -> u16

source§

impl PartialEq for AutoTransmitStruct

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl SerializePayload for AutoTransmitStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for AutoTransmitStruct

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where +sufficient, and should not be overridden without very good reason.

source§

impl SerializePayload for AutoTransmitStruct

source§

fn serialize(&self) -> Vec<u8>

source§

impl StructuralPartialEq for AutoTransmitStruct

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> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

diff --git a/bluerobotics_ping/ping360/struct.Device.html b/bluerobotics_ping/ping360/struct.Device.html index dc1fe5144..073ec68b5 100644 --- a/bluerobotics_ping/ping360/struct.Device.html +++ b/bluerobotics_ping/ping360/struct.Device.html @@ -2,15 +2,8 @@
pub struct Device {
     pub common: Common,
 }

Fields§

§common: Common

Implementations§

source§

impl Device

source

pub fn new<T>(io: T) -> Self
where - T: AsyncRead + AsyncWrite + Unpin + Send + 'static,

source

pub async fn auto_device_data(&self) -> Result<AutoDeviceDataStruct, PingError>

Extended version of device_data with auto_transmit information. The sensor emits this message when in auto_transmit mode.

-
source

pub async fn reset(&self, bootloader: u8, reserved: u8) -> Result<(), PingError>

Reset the sonar. The bootloader may run depending on the selection according to the bootloader payload field. When the bootloader runs, the external LED flashes at 5Hz. If the bootloader is not contacted within 5 seconds, it will run the current program. If there is no program, then the bootloader will wait forever for a connection. Note that if you issue a reset then you will have to close all your open comm ports and go back to issuing either a discovery message for UDP or go through the break sequence for serial comms before you can talk to the sonar again.

-
§Arguments
-
    -
  • bootloader - 0 = skip bootloader; 1 = run bootloader
  • -
  • reserved - reserved
  • -
-
source

pub async fn motor_off(&self) -> Result<(), PingError>

The sonar switches the current through the stepper motor windings off to save power. The sonar will send an ack message in response. The command timeout should be set to 50 msec. If the sonar is idle (not scanning) for more than 30 seconds then the motor current will automatically turn off. When the user sends any command that involves moving the transducer then the motor current is automatically re-enabled.

-
§Arguments
source

pub async fn auto_transmit( + T: AsyncRead + AsyncWrite + Unpin + Send + 'static,

source

pub async fn motor_off(&self) -> Result<(), PingError>

The sonar switches the current through the stepper motor windings off to save power. The sonar will send an ack message in response. The command timeout should be set to 50 msec. If the sonar is idle (not scanning) for more than 30 seconds then the motor current will automatically turn off. When the user sends any command that involves moving the transducer then the motor current is automatically re-enabled.

+
§Arguments
source

pub async fn auto_transmit( &self, mode: u8, gain_setting: u8, @@ -23,7 +16,7 @@

§Argumentsu8, delay: u8 ) -> Result<(), PingError>

Extended transducer message with auto-scan function. The sonar will automatically scan the region between start_angle and end_angle and send auto_device_data messages as soon as new data is available. Send a line break to stop scanning (and also begin the autobaudrate procedure). Alternatively, a motor_off message may be sent (but retrys might be necessary on the half-duplex RS485 interface).

-
§Arguments
+
§Arguments
  • mode - Operating mode (1 for Ping360)
  • gain_setting - Analog gain setting (0 = low, 1 = normal, 2 = high)
  • @@ -36,7 +29,15 @@
    §Argumentsnum_steps [gradian] - Number of 0.9 degree motor steps between pings for auto scan (1~10 = 0.9~9.0 degrees)
  • delay [millisecond] - An additional delay between successive transmit pulses (0~100 ms). This may be necessary for some programs to avoid collisions on the RS485 USRT.
-
source

pub async fn transducer( +

source

pub async fn reset(&self, bootloader: u8, reserved: u8) -> Result<(), PingError>

Reset the sonar. The bootloader may run depending on the selection according to the bootloader payload field. When the bootloader runs, the external LED flashes at 5Hz. If the bootloader is not contacted within 5 seconds, it will run the current program. If there is no program, then the bootloader will wait forever for a connection. Note that if you issue a reset then you will have to close all your open comm ports and go back to issuing either a discovery message for UDP or go through the break sequence for serial comms before you can talk to the sonar again.

+
§Arguments
+
    +
  • bootloader - 0 = skip bootloader; 1 = run bootloader
  • +
  • reserved - reserved
  • +
+
source

pub async fn auto_device_data(&self) -> Result<AutoDeviceDataStruct, PingError>

Extended version of device_data with auto_transmit information. The sensor emits this message when in auto_transmit mode.

+
source

pub async fn device_data(&self) -> Result<DeviceDataStruct, PingError>

This message is used to communicate the current sonar state. If the data field is populated, the other fields indicate the sonar state when the data was captured. The time taken before the response to the command is sent depends on the difference between the last angle scanned and the new angle in the parameters as well as the number of samples and sample interval (range). To allow for the worst case reponse time the command timeout should be set to 4000 msec.

+
source

pub async fn transducer( &self, mode: u8, gain_setting: u8, @@ -60,13 +61,12 @@

§Argumentstransmit - 0 = do not transmit; 1 = transmit after the transducer has reached the specified angle
  • reserved - reserved
  • -
    source

    pub async fn device_id(&self, id: u8, reserved: u8) -> Result<(), PingError>

    Change the device id

    +
    source

    pub async fn device_id(&self, id: u8, reserved: u8) -> Result<(), PingError>

    Change the device id

    §Arguments
    • id - Device ID (1-254). 0 and 255 are reserved.
    • reserved - reserved
    -
    source

    pub async fn device_data(&self) -> Result<DeviceDataStruct, PingError>

    This message is used to communicate the current sonar state. If the data field is populated, the other fields indicate the sonar state when the data was captured. The time taken before the response to the command is sent depends on the difference between the last angle scanned and the new angle in the parameters as well as the number of samples and sample interval (range). To allow for the worst case reponse time the command timeout should be set to 4000 msec.

    Trait Implementations§

    source§

    impl PingDevice for Device

    source§

    fn get_common(&self) -> &Common

    source§

    fn get_mut_common(&mut self) -> &mut Common

    source§

    fn subscribe(&self) -> Receiver<ProtocolMessage>

    source§

    async fn send_general_request(&self, requested_id: u16) -> Result<(), PingError>

    source§

    async fn wait_for_message<T>( &self, receiver: Receiver<ProtocolMessage> diff --git a/bluerobotics_ping/ping360/struct.DeviceDataStruct.html b/bluerobotics_ping/ping360/struct.DeviceDataStruct.html index 1f6afe555..64c93f49e 100644 --- a/bluerobotics_ping/ping360/struct.DeviceDataStruct.html +++ b/bluerobotics_ping/ping360/struct.DeviceDataStruct.html @@ -1,5 +1,5 @@ DeviceDataStruct in bluerobotics_ping::ping360 - Rust -
    pub struct DeviceDataStruct {
    +    
    pub struct DeviceDataStruct {
         pub mode: u8,
         pub gain_setting: u8,
         pub angle: u16,
    @@ -18,9 +18,9 @@
     
    §transmit_frequency: u16

    Acoustic operating frequency. Frequency range is 500kHz to 1000kHz, however it is only practical to use say 650kHz to 850kHz due to the narrow bandwidth of the acoustic receiver.

    §number_of_samples: u16

    Number of samples per reflected signal

    §data_length: u16

    8 bit binary data array representing sonar echo strength

    -
    §data: Vec<u8>

    Trait Implementations§

    source§

    impl Clone for DeviceDataStruct

    source§

    fn clone(&self) -> DeviceDataStruct

    Returns a copy 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 DeviceDataStruct

    source§

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

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

    impl Default for DeviceDataStruct

    source§

    fn default() -> DeviceDataStruct

    Returns the “default value” for a type. Read more
    source§

    impl DeserializePayload for DeviceDataStruct

    source§

    fn deserialize(payload: &[u8]) -> Self

    source§

    impl MessageInfo for DeviceDataStruct

    source§

    fn id() -> u16

    source§

    impl PartialEq for DeviceDataStruct

    source§

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

    This method tests for self and other values to be equal, and is used +
    §data: Vec<u8>

    Trait Implementations§

    source§

    impl Clone for DeviceDataStruct

    source§

    fn clone(&self) -> DeviceDataStruct

    Returns a copy 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 DeviceDataStruct

    source§

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

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

    impl Default for DeviceDataStruct

    source§

    fn default() -> DeviceDataStruct

    Returns the “default value” for a type. Read more
    source§

    impl DeserializePayload for DeviceDataStruct

    source§

    fn deserialize(payload: &[u8]) -> Self

    source§

    impl MessageInfo for DeviceDataStruct

    source§

    fn id() -> u16

    source§

    impl PartialEq for DeviceDataStruct

    source§

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

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

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

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl SerializePayload for DeviceDataStruct

    source§

    fn serialize(&self) -> Vec<u8>

    source§

    impl StructuralPartialEq for DeviceDataStruct

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +sufficient, and should not be overridden without very good reason.

    source§

    impl SerializePayload for DeviceDataStruct

    source§

    fn serialize(&self) -> Vec<u8>

    source§

    impl StructuralPartialEq for DeviceDataStruct

    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> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/bluerobotics_ping/ping360/struct.DeviceIdStruct.html b/bluerobotics_ping/ping360/struct.DeviceIdStruct.html index feee3721b..f7ee56e7b 100644 --- a/bluerobotics_ping/ping360/struct.DeviceIdStruct.html +++ b/bluerobotics_ping/ping360/struct.DeviceIdStruct.html @@ -1,13 +1,13 @@ DeviceIdStruct in bluerobotics_ping::ping360 - Rust -
    pub struct DeviceIdStruct {
    +    
    pub struct DeviceIdStruct {
         pub id: u8,
         pub reserved: u8,
     }
    Expand description

    Change the device id

    Fields§

    §id: u8

    Device ID (1-254). 0 and 255 are reserved.

    §reserved: u8

    reserved

    -

    Trait Implementations§

    source§

    impl Clone for DeviceIdStruct

    source§

    fn clone(&self) -> DeviceIdStruct

    Returns a copy 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 DeviceIdStruct

    source§

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

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

    impl Default for DeviceIdStruct

    source§

    fn default() -> DeviceIdStruct

    Returns the “default value” for a type. Read more
    source§

    impl DeserializePayload for DeviceIdStruct

    source§

    fn deserialize(payload: &[u8]) -> Self

    source§

    impl MessageInfo for DeviceIdStruct

    source§

    fn id() -> u16

    source§

    impl PartialEq for DeviceIdStruct

    source§

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

    This method tests for self and other values to be equal, and is used +

    Trait Implementations§

    source§

    impl Clone for DeviceIdStruct

    source§

    fn clone(&self) -> DeviceIdStruct

    Returns a copy 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 DeviceIdStruct

    source§

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

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

    impl Default for DeviceIdStruct

    source§

    fn default() -> DeviceIdStruct

    Returns the “default value” for a type. Read more
    source§

    impl DeserializePayload for DeviceIdStruct

    source§

    fn deserialize(payload: &[u8]) -> Self

    source§

    impl MessageInfo for DeviceIdStruct

    source§

    fn id() -> u16

    source§

    impl PartialEq for DeviceIdStruct

    source§

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

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

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

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl SerializePayload for DeviceIdStruct

    source§

    fn serialize(&self) -> Vec<u8>

    source§

    impl StructuralPartialEq for DeviceIdStruct

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +sufficient, and should not be overridden without very good reason.

    source§

    impl SerializePayload for DeviceIdStruct

    source§

    fn serialize(&self) -> Vec<u8>

    source§

    impl StructuralPartialEq for DeviceIdStruct

    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> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/bluerobotics_ping/ping360/struct.MotorOffStruct.html b/bluerobotics_ping/ping360/struct.MotorOffStruct.html index 5f9913f9b..c3ea1074a 100644 --- a/bluerobotics_ping/ping360/struct.MotorOffStruct.html +++ b/bluerobotics_ping/ping360/struct.MotorOffStruct.html @@ -1,8 +1,8 @@ MotorOffStruct in bluerobotics_ping::ping360 - Rust -
    pub struct MotorOffStruct {}
    Expand description

    The sonar switches the current through the stepper motor windings off to save power. The sonar will send an ack message in response. The command timeout should be set to 50 msec. If the sonar is idle (not scanning) for more than 30 seconds then the motor current will automatically turn off. When the user sends any command that involves moving the transducer then the motor current is automatically re-enabled.

    -

    Trait Implementations§

    source§

    impl Clone for MotorOffStruct

    source§

    fn clone(&self) -> MotorOffStruct

    Returns a copy 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 MotorOffStruct

    source§

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

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

    impl Default for MotorOffStruct

    source§

    fn default() -> MotorOffStruct

    Returns the “default value” for a type. Read more
    source§

    impl DeserializePayload for MotorOffStruct

    source§

    fn deserialize(payload: &[u8]) -> Self

    source§

    impl MessageInfo for MotorOffStruct

    source§

    fn id() -> u16

    source§

    impl PartialEq for MotorOffStruct

    source§

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

    This method tests for self and other values to be equal, and is used +
    pub struct MotorOffStruct {}
    Expand description

    The sonar switches the current through the stepper motor windings off to save power. The sonar will send an ack message in response. The command timeout should be set to 50 msec. If the sonar is idle (not scanning) for more than 30 seconds then the motor current will automatically turn off. When the user sends any command that involves moving the transducer then the motor current is automatically re-enabled.

    +

    Trait Implementations§

    source§

    impl Clone for MotorOffStruct

    source§

    fn clone(&self) -> MotorOffStruct

    Returns a copy 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 MotorOffStruct

    source§

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

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

    impl Default for MotorOffStruct

    source§

    fn default() -> MotorOffStruct

    Returns the “default value” for a type. Read more
    source§

    impl DeserializePayload for MotorOffStruct

    source§

    fn deserialize(payload: &[u8]) -> Self

    source§

    impl MessageInfo for MotorOffStruct

    source§

    fn id() -> u16

    source§

    impl PartialEq for MotorOffStruct

    source§

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

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

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

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl SerializePayload for MotorOffStruct

    source§

    fn serialize(&self) -> Vec<u8>

    source§

    impl StructuralPartialEq for MotorOffStruct

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +sufficient, and should not be overridden without very good reason.

    source§

    impl SerializePayload for MotorOffStruct

    source§

    fn serialize(&self) -> Vec<u8>

    source§

    impl StructuralPartialEq for MotorOffStruct

    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> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/bluerobotics_ping/ping360/struct.ResetStruct.html b/bluerobotics_ping/ping360/struct.ResetStruct.html index a609785cc..2089bf75d 100644 --- a/bluerobotics_ping/ping360/struct.ResetStruct.html +++ b/bluerobotics_ping/ping360/struct.ResetStruct.html @@ -1,13 +1,13 @@ ResetStruct in bluerobotics_ping::ping360 - Rust -
    pub struct ResetStruct {
    +    
    pub struct ResetStruct {
         pub bootloader: u8,
         pub reserved: u8,
     }
    Expand description

    Reset the sonar. The bootloader may run depending on the selection according to the bootloader payload field. When the bootloader runs, the external LED flashes at 5Hz. If the bootloader is not contacted within 5 seconds, it will run the current program. If there is no program, then the bootloader will wait forever for a connection. Note that if you issue a reset then you will have to close all your open comm ports and go back to issuing either a discovery message for UDP or go through the break sequence for serial comms before you can talk to the sonar again.

    Fields§

    §bootloader: u8

    0 = skip bootloader; 1 = run bootloader

    §reserved: u8

    reserved

    -

    Trait Implementations§

    source§

    impl Clone for ResetStruct

    source§

    fn clone(&self) -> ResetStruct

    Returns a copy 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 ResetStruct

    source§

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

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

    impl Default for ResetStruct

    source§

    fn default() -> ResetStruct

    Returns the “default value” for a type. Read more
    source§

    impl DeserializePayload for ResetStruct

    source§

    fn deserialize(payload: &[u8]) -> Self

    source§

    impl MessageInfo for ResetStruct

    source§

    fn id() -> u16

    source§

    impl PartialEq for ResetStruct

    source§

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

    This method tests for self and other values to be equal, and is used +

    Trait Implementations§

    source§

    impl Clone for ResetStruct

    source§

    fn clone(&self) -> ResetStruct

    Returns a copy 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 ResetStruct

    source§

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

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

    impl Default for ResetStruct

    source§

    fn default() -> ResetStruct

    Returns the “default value” for a type. Read more
    source§

    impl DeserializePayload for ResetStruct

    source§

    fn deserialize(payload: &[u8]) -> Self

    source§

    impl MessageInfo for ResetStruct

    source§

    fn id() -> u16

    source§

    impl PartialEq for ResetStruct

    source§

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

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

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

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl SerializePayload for ResetStruct

    source§

    fn serialize(&self) -> Vec<u8>

    source§

    impl StructuralPartialEq for ResetStruct

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +sufficient, and should not be overridden without very good reason.

    source§

    impl SerializePayload for ResetStruct

    source§

    fn serialize(&self) -> Vec<u8>

    source§

    impl StructuralPartialEq for ResetStruct

    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> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/bluerobotics_ping/ping360/struct.TransducerStruct.html b/bluerobotics_ping/ping360/struct.TransducerStruct.html index a8102b162..b0959d015 100644 --- a/bluerobotics_ping/ping360/struct.TransducerStruct.html +++ b/bluerobotics_ping/ping360/struct.TransducerStruct.html @@ -1,5 +1,5 @@ TransducerStruct in bluerobotics_ping::ping360 - Rust -
    pub struct TransducerStruct {
    +    
    pub struct TransducerStruct {
         pub mode: u8,
         pub gain_setting: u8,
         pub angle: u16,
    @@ -19,9 +19,9 @@
     
    §number_of_samples: u16

    Number of samples per reflected signal

    §transmit: u8

    0 = do not transmit; 1 = transmit after the transducer has reached the specified angle

    §reserved: u8

    reserved

    -

    Trait Implementations§

    source§

    impl Clone for TransducerStruct

    source§

    fn clone(&self) -> TransducerStruct

    Returns a copy 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 TransducerStruct

    source§

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

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

    impl Default for TransducerStruct

    source§

    fn default() -> TransducerStruct

    Returns the “default value” for a type. Read more
    source§

    impl DeserializePayload for TransducerStruct

    source§

    fn deserialize(payload: &[u8]) -> Self

    source§

    impl MessageInfo for TransducerStruct

    source§

    fn id() -> u16

    source§

    impl PartialEq for TransducerStruct

    source§

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

    This method tests for self and other values to be equal, and is used +

    Trait Implementations§

    source§

    impl Clone for TransducerStruct

    source§

    fn clone(&self) -> TransducerStruct

    Returns a copy 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 TransducerStruct

    source§

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

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

    impl Default for TransducerStruct

    source§

    fn default() -> TransducerStruct

    Returns the “default value” for a type. Read more
    source§

    impl DeserializePayload for TransducerStruct

    source§

    fn deserialize(payload: &[u8]) -> Self

    source§

    impl MessageInfo for TransducerStruct

    source§

    fn id() -> u16

    source§

    impl PartialEq for TransducerStruct

    source§

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

    This method tests for self and other values to be equal, and is used by ==.
    1.0.0 · source§

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

    This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
    source§

    impl SerializePayload for TransducerStruct

    source§

    fn serialize(&self) -> Vec<u8>

    source§

    impl StructuralPartialEq for TransducerStruct

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where +sufficient, and should not be overridden without very good reason.

    source§

    impl SerializePayload for TransducerStruct

    source§

    fn serialize(&self) -> Vec<u8>

    source§

    impl StructuralPartialEq for TransducerStruct

    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> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    diff --git a/search-index.js b/search-index.js index 572c5fbbe..48095dead 100644 --- a/search-index.js +++ b/search-index.js @@ -4,7 +4,7 @@ var searchIndex = new Map(JSON.parse('[\ ["anstyle_parse",{"doc":"Parser for implementing virtual terminal emulators","t":"FKIFFFKFMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNGPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPGPPNNNNNNNNNNNNNNNNNNHNNNNNNNNNN","n":["AsciiParser","CharAccumulator","DefaultCharAccumulator","Params","ParamsIter","Parser","Perform","Utf8Parser","add","add","add","advance","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","csi_dispatch","default","default","default","default","eq","eq","eq","eq","esc_dispatch","execute","fmt","fmt","fmt","fmt","from","from","from","from","from","hook","into","into","into","into","into","into_iter","into_iter","is_empty","iter","len","new","next","osc_dispatch","print","put","size_hint","state","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","unhook","Action","Anywhere","BeginUtf8","Clear","Collect","CsiDispatch","CsiEntry","CsiIgnore","CsiIntermediate","CsiParam","DcsEntry","DcsIgnore","DcsIntermediate","DcsParam","DcsPassthrough","EscDispatch","Escape","EscapeIntermediate","Execute","Ground","Hook","Ignore","Nop","OscEnd","OscPut","OscStart","OscString","Param","Print","Put","SosPmApcString","State","Unhook","Utf8","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","default","eq","eq","fmt","fmt","from","from","into","into","state_change","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","type_id","type_id"],"q":[[0,"anstyle_parse"],[88,"anstyle_parse::state"],[151,"core::option"],[152,"core::clone"],[153,"core::default"],[154,"core::cmp"],[155,"core::fmt"],[156,"core::fmt"],[157,"core::any"]],"d":["Only allow parsing 7-bit ASCII","Build a char out of bytes","Most flexible CharAccumulator for Parser based on active …","","Immutable subparameter iterator.","Parser for raw VTE protocol which delegates actions to a …","Performs actions requested by the Parser","Allow parsing UTF-8","Build a char out of bytes","","","Advance the parser state","","","","","","","","","","","","","","","","","","","A final character has arrived for a CSI sequence","","","","","","","","","The final character of an escape sequence has arrived.","Execute a C0 or C1 control function.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Invoked when a final character arrives in first part of …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Returns true if there are no parameters present.","Returns an iterator over all parameters and subparameters.","Returns the number of parameters.","Create a new Parser","","Dispatch an operating system command.","Draw a character to the screen and update states.","Pass bytes as part of a device control string to the …","","ANSI escape code parsing state machine","","","","","","","","","","","","","","","","","","","","Called when a device control string is terminated.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Transition to next State","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,1,5,6,7,19,10,7,5,6,19,10,7,5,6,10,7,5,6,10,7,5,6,9,10,7,5,6,10,7,5,6,9,9,10,7,5,6,19,10,7,5,6,9,19,10,7,5,6,19,10,10,10,10,7,19,9,9,9,19,0,10,7,5,6,19,10,7,5,6,19,10,7,5,6,19,10,7,5,6,9,0,24,25,25,25,25,24,24,24,24,24,24,24,24,24,25,24,24,25,24,25,25,25,25,25,25,24,25,25,25,24,0,25,24,24,25,24,25,24,25,24,25,24,25,24,25,24,25,24,25,24,25,0,24,25,24,24,25,25,24,25,24,25],"f":"````````{{bd}{{h{f}}}}{{jd}{{h{f}}}}{{ld}{{h{f}}}}{{{n{c}}ed}A`bAb}{ce{}{}}000000000{AdAd}{{{n{c}}}{{n{c}}}Af}{jj}{ll}{{ce}A`{}{}}000{{AbAd{Ah{d}}Ajd}A`}{{}Ad}{{}{{n{c}}}Al}{{}j}{{}l}{{AdAd}Aj}{{{n{c}}{n{c}}}AjAn}{{jj}Aj}{{ll}Aj}{{Ab{Ah{d}}Ajd}A`}{{Abd}A`}{{AdB`}Bb}{{{n{c}}B`}BbBd}{{jB`}Bb}{{lB`}Bb}{cc{}}0000?{ce{}{}}00000{Adc{}}{AdAj}{AdBf}{AdBh}{{}n}{Bf{{h{c}}}{}}{{Ab{Ah{{Ah{d}}}}Aj}A`}{{Abf}A`}>{Bf{{Bj{Bh{h{Bh}}}}}}`9999{c{{Bl{e}}}{}{}}000000000{cBn{}}0000{AbA`}``````````````````````````````````<<<<{C`C`}{CbCb}{{ce}A`{}{}}0{{}C`}{{}Cb}{{C`C`}Aj}{{CbCb}Aj}{{C`B`}Bb}{{CbB`}Bb}{cc{}}0{ce{}{}}0{{C`d}{{Bj{C`Cb}}}}11>{d{{Bl{C`c}}}{}}{d{{Bl{Cbc}}}{}}{c{{Bl{e}}}{}{}}00{cBn{}}0","c":[],"p":[[10,"CharAccumulator",0],[1,"u8"],[1,"char"],[6,"Option",151],[5,"AsciiParser",0],[5,"Utf8Parser",0],[5,"Parser",0],[1,"unit"],[10,"Perform",0],[5,"Params",0],[10,"Clone",152],[1,"slice"],[1,"bool"],[10,"Default",153],[10,"PartialEq",154],[5,"Formatter",155],[8,"Result",155],[10,"Debug",155],[5,"ParamsIter",0],[1,"usize"],[1,"tuple"],[6,"Result",156],[5,"TypeId",157],[6,"State",88],[6,"Action",88]],"b":[]}],\ ["anstyle_query",{"doc":"Low level terminal capability lookups","t":"HHHHHHHCH","n":["clicolor","clicolor_force","is_ci","no_color","term_supports_ansi_color","term_supports_color","truecolor","windows","enable_ansi_colors"],"q":[[0,"anstyle_query"],[8,"anstyle_query::windows"],[9,"core::option"]],"d":["Check CLICOLOR status","Check CLICOLOR_FORCE status","Report whether this is running in CI","Check NO_COLOR status","Check TERM for ANSI color support","Check TERM for color support","Check COLORTERM for truecolor support","Windows-specific style queries","Enable ANSI escape codes (…"],"i":[0,0,0,0,0,0,0,0,0],"f":"{{}{{d{b}}}}{{}b}00000`1","c":[],"p":[[1,"bool"],[6,"Option",9]],"b":[]}],\ ["bitflags",{"doc":"Generate types for C-style flags with ergonomic APIs.","t":"TEKRTTFKNNQMNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNCNNNNNNCNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNFKKNNNNNNHHHNNNMHHHNNNM","n":["ALL","BitFlags","Bits","Bits","EMPTY","FLAGS","Flag","Flags","all","all","bitflags","bits","borrow","borrow_mut","complement","complement","contains","contains","difference","difference","empty","empty","fmt","from","from_bits","from_bits","from_bits_retain","from_bits_truncate","from_bits_truncate","from_name","from_name","insert","insert","intersection","intersection","intersects","intersects","into","is_all","is_all","is_empty","is_empty","is_named","is_unnamed","iter","iter","iter","iter_names","iter_names","name","new","parser","remove","remove","set","set","symmetric_difference","symmetric_difference","toggle","toggle","try_from","try_into","type_id","union","union","value","Iter","IterNames","borrow","borrow","borrow_mut","borrow_mut","from","from","into","into","into_iter","into_iter","next","next","remaining","try_from","try_from","try_into","try_into","type_id","type_id","ParseError","ParseHex","WriteHex","borrow","borrow_mut","empty_flag","fmt","fmt","from","from_str","from_str_strict","from_str_truncate","into","invalid_hex_flag","invalid_named_flag","parse_hex","to_writer","to_writer_strict","to_writer_truncate","try_from","try_into","type_id","write_hex"],"q":[[0,"bitflags"],[66,"bitflags::iter"],[87,"bitflags::parser"],[110,"core::fmt"],[111,"core::fmt"],[112,"core::result"],[113,"core::any"],[114,"core::fmt"]],"d":["A value with all bits set.","","A bits type that can be used as storage for a flags type.","The underlying bits type.","A value with all bits unset.","The set of defined flags.","A defined flags value that may be named or unnamed.","A set of defined flags using a bits type as storage.","Get a flags value with all known bits set.","Get a flags value with all known bits set.","Generate a flags type.","Get the underlying bits value.","","","The bitwise negation (!) of the bits in a flags value, …","The bitwise negation (!) of the bits in a flags value, …","Whether all set bits in a source flags value are also set …","Whether all set bits in a source flags value are also set …","The intersection of a source flags value with the …","The intersection of a source flags value with the …","Get a flags value with all bits unset.","Get a flags value with all bits unset.","","Returns the argument unchanged.","Convert from a bits value.","Convert from a bits value.","Convert from a bits value exactly.","Convert from a bits value, unsetting any unknown bits.","Convert from a bits value, unsetting any unknown bits.","Get a flags value with the bits of a flag with the given …","Get a flags value with the bits of a flag with the given …","The bitwise or (|) of the bits in two flags values.","The bitwise or (|) of the bits in two flags values.","The bitwise and (&) of the bits in two flags values.","The bitwise and (&) of the bits in two flags values.","Whether any set bits in a source flags value are also set …","Whether any set bits in a source flags value are also set …","Calls U::from(self).","Whether all known bits in this flags value are set.","Whether all known bits in this flags value are set.","Whether all bits in this flags value are unset.","Whether all bits in this flags value are unset.","Whether the flag is named.","Whether the flag is unnamed.","Yield the bits of a source flags value in a set of …","Yield a set of contained flags values.","Yield a set of contained flags values.","Yield a set of contained named flags values.","Yield a set of contained named flags values.","Get the name of this flag.","Define a flag.","Parsing flags from text.","The intersection of a source flags value with the …","The intersection of a source flags value with the …","Call Flags::insert when value is true or Flags::remove …","Call Flags::insert when value is true or Flags::remove …","The bitwise exclusive-or (^) of the bits in two flags …","The bitwise exclusive-or (^) of the bits in two flags …","The bitwise exclusive-or (^) of the bits in two flags …","The bitwise exclusive-or (^) of the bits in two flags …","","","","The bitwise or (|) of the bits in two flags values.","The bitwise or (|) of the bits in two flags values.","Get the flags value of this flag.","An iterator over flags values.","An iterator over flags values.","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","Get a flags value of any remaining bits that haven’t …","","","","","","","An error encountered while parsing flags from text.","Parse a value from a hex string.","Encode a value as a hex string.","","","A hex or named flag wasn’t found between separators.","","","Returns the argument unchanged.","Parse a flags value from text.","Parse a flags value from text.","Parse a flags value from text.","Calls U::from(self).","An invalid hex flag was encountered.","A named flag that doesn’t correspond to any on the flags …","Parse the value from hex.","Write a flags value as text.","Write only the contained, defined, named flags in a flags …","Write a flags value as text, ignoring any unknown bits.","","","","Write the value as hex."],"i":[3,0,0,2,3,2,0,0,2,2,0,2,5,5,2,2,2,2,2,2,2,2,5,5,2,2,2,2,2,2,2,2,2,2,2,2,2,5,2,2,2,2,5,5,0,2,2,2,2,5,5,0,2,2,2,2,2,2,2,2,5,5,5,2,2,5,0,0,12,13,12,13,12,13,12,13,12,13,12,13,13,12,13,12,13,12,13,0,0,0,16,16,16,16,16,16,0,0,0,16,16,16,18,0,0,0,16,16,16,21],"f":"````````{{}{{d{}{{b{c}}}}}f}0`{{{d{}{{b{c}}}}}cf}{ce{}{}}0{{{d{}{{b{c}}}}}{{d{}{{b{c}}}}}f}0{{{d{}{{b{c}}}}{d{}{{b{c}}}}}hf}0{{{d{}{{b{c}}}}{d{}{{b{c}}}}}{{d{}{{b{c}}}}}f}055{{{j{c}}l}nA`}{cc{}}{c{{Ab{{d{}{{b{c}}}}}}}f}0{c{{d{}{{b{c}}}}}f}00{Ad{{Ab{{d{}{{b{c}}}}}}}f}0{{{d{}{{b{c}}}}{d{}{{b{c}}}}}Aff}066779{{{d{}{{b{c}}}}}hf}000{{{j{c}}}h{}}0`{{{d{}{{b{c}}}}}{{Ah{{d{}{{b{c}}}}}}}f}0{{{d{}{{b{c}}}}}{{Aj{{d{}{{b{c}}}}}}}f}0{{{j{c}}}Ad{}}{{Adc}{{j{c}}}{}}`66{{{d{}{{b{c}}}}{d{}{{b{c}}}}h}Aff}0==77{c{{Al{e}}}{}{}}0{cAn{}}??{{{j{c}}}c{}}``{ce{}{}}000??0000{{{Ah{c}}}{{Ab{e}}}d{}}{{{Aj{c}}}{{Ab{e}}}d{}}{{{Aj{c}}}c{}}666655```33{{}B`}{{B`l}n}0{cc{}}{Ad{{Al{cB`}}}d}007{cB`Bb}0{Ad{{Al{BdB`}}}}{{ce}{{Al{AfBf}}}dBh}00==<{{Bjc}nBh}","c":[],"p":[[17,"Bits"],[10,"Flags",0],[10,"Bits",0],[1,"bool"],[5,"Flag",0],[5,"Formatter",110],[8,"Result",110],[10,"Debug",110],[6,"Option",111],[1,"str"],[1,"unit"],[5,"Iter",66],[5,"IterNames",66],[6,"Result",112],[5,"TypeId",113],[5,"ParseError",87],[10,"Display",110],[10,"ParseHex",87],[5,"Error",110],[10,"Write",110],[10,"WriteHex",87]],"b":[[93,"impl-Debug-for-ParseError"],[94,"impl-Display-for-ParseError"]]}],\ -["bluerobotics_ping",{"doc":"","t":"PPGPPCNNHCCCCCNNNNCCCNNNNNPFPFPFPFFPFPFGFPFPFPFPFPFPFPFPFPFPFPFPFPFPFOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOONNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONONNOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOFNNNNNNNNNNPFPFFPFPFGPFFPFPFOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNOONOONNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNOOONNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOPPPFGGPPPPGPPPPNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNFEEKNNNMMNNNNNNNNNNNNNPPPPGPPPPNNNNNNNNNNKKSKKFKNNNNONNNMMNONNNNMNNMOMMNNOOMNNNNONNNNNNPFPFFPFPPFFPFPFPFPFGPFPFPFPFFPFPFPFPFPFPFPFPFPFPFPFPFPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOOOONOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNONOONOOOOONONOONOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOPFPFFPFPFGPFFPFPFOOONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNOONNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNONNNNNNNNNNNNNNOOOONNOOOOOOOOONOOOONNNNNNNNOOOOONNNNNNNNNNOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Bluebps","Common","Messages","Ping1D","Ping360","bluebps","borrow","borrow_mut","calculate_crc","codec","common","decoder","device","error","fmt","from","inner","into","message","ping1d","ping360","try_from","try_from","try_from","try_into","type_id","CellTimeout","CellTimeoutStruct","CellVoltageMin","CellVoltageMinStruct","CurrentMax","CurrentMaxStruct","CurrentTimeout","CurrentTimeoutStruct","Device","EraseFlash","EraseFlashStruct","Events","EventsStruct","Messages","PingProtocolHead","Reboot","RebootStruct","ResetDefaults","ResetDefaultsStruct","SetCellVoltageMinimum","SetCellVoltageMinimumStruct","SetCellVoltageTimeout","SetCellVoltageTimeoutStruct","SetCurrentMax","SetCurrentMaxStruct","SetCurrentTimeout","SetCurrentTimeoutStruct","SetLpfSampleFrequency","SetLpfSampleFrequencyStruct","SetLpfSetting","SetLpfSettingStruct","SetStreamRate","SetStreamRateStruct","SetTemperatureMax","SetTemperatureMaxStruct","SetTemperatureTimeout","SetTemperatureTimeoutStruct","State","StateStruct","TemperatureMax","TemperatureMaxStruct","TemperatureTimeout","TemperatureTimeoutStruct","battery_current","battery_temperature","battery_voltage","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell_timeout","cell_voltage_min","cell_voltages","cell_voltages_length","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","common","cpu_temperature","current","current_max","current_timeout","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","destiny_device_id","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","erase_flash","events","flags","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_common","get_mut_common","goto_bootloader","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","inner","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","limit","limit","limit","limit","limit","limit","message_id","message_id_from_name","message_name","new","rate","reboot","reset_defaults","sample_frequency","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_cell_voltage_minimum","set_cell_voltage_timeout","set_current_max","set_current_timeout","set_lpf_sample_frequency","set_lpf_setting","set_stream_rate","set_temperature_max","set_temperature_timeout","setting","source_device_id","state","temperature","temperature_max","temperature_timeout","timeout","timeout","timeout","timeout","timeout","timeout","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","voltage","PingCodec","borrow","borrow_mut","decode","encode","from","into","new","try_from","try_into","type_id","Ack","AckStruct","AsciiText","AsciiTextStruct","Device","DeviceInformation","DeviceInformationStruct","GeneralRequest","GeneralRequestStruct","Messages","Nack","NackStruct","PingProtocolHead","ProtocolVersion","ProtocolVersionStruct","SetDeviceId","SetDeviceIdStruct","acked_id","ascii_message","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","common","default","default","default","default","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","destiny_device_id","device_id","device_information","device_revision","device_type","eq","eq","eq","eq","eq","eq","eq","eq","eq","firmware_version_major","firmware_version_minor","firmware_version_patch","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","get_common","get_mut_common","id","id","id","id","id","id","id","inner","into","into","into","into","into","into","into","into","into","into","message_id","message_id_from_name","message_name","nack_message","nacked_id","new","protocol_version","requested_id","reserved","reserved","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_device_id","source_device_id","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","version_major","version_minor","version_patch","AwaitingStart1","AwaitingStart2","ChecksumError","Decoder","DecoderResult","DecoderState","Error","InProgress","IncompleteData","InvalidStartByte","ParseError","ReadingChecksum","ReadingHeader","ReadingPayload","Success","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","eq","fmt","fmt","fmt","from","from","from","from","into","into","into","into","new","parse_byte","state","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","Common","Ping1D","Ping360","PingDevice","borrow","borrow_mut","from","get_common","get_mut_common","get_protocol_version","into","new","request","send_general_request","send_message","set_device_id","subscribe","try_from","try_into","type_id","wait_for_ack","wait_for_message","Io","JoinError","NackError","ParseError","PingError","TimeoutError","TokioBroadcastError","TokioMpscError","TryFromError","borrow","borrow_mut","fmt","from","from","from","into","try_from","try_into","type_id","DeserializeGenericMessage","DeserializePayload","HEADER","MessageInfo","PingMessage","ProtocolMessage","SerializePayload","borrow","borrow_mut","calculate_crc","checksum","checksum","clone","clone_into","default","deserialize","deserialize","dst_device_id","dst_device_id","eq","fmt","from","has_valid_crc","id","into","length","message_id","message_id","message_id_from_name","message_name","new","payload","payload","payload_length","serialize","serialized","set_dst_device_id","set_message","set_src_device_id","src_device_id","to_owned","try_from","try_into","type_id","update_checksum","write","ContinuousStart","ContinuousStartStruct","ContinuousStop","ContinuousStopStruct","Device","DeviceId","DeviceIdStruct","Distance","DistanceSimple","DistanceSimpleStruct","DistanceStruct","FirmwareVersion","FirmwareVersionStruct","GainSetting","GainSettingStruct","GeneralInfo","GeneralInfoStruct","GotoBootloader","GotoBootloaderStruct","Messages","ModeAuto","ModeAutoStruct","PcbTemperature","PcbTemperatureStruct","PingEnable","PingEnableStruct","PingInterval","PingIntervalStruct","PingProtocolHead","ProcessorTemperature","ProcessorTemperatureStruct","Profile","ProfileStruct","Range","RangeStruct","SetDeviceId","SetDeviceIdStruct","SetGainSetting","SetGainSettingStruct","SetModeAuto","SetModeAutoStruct","SetPingEnable","SetPingEnableStruct","SetPingInterval","SetPingIntervalStruct","SetRange","SetRangeStruct","SetSpeedOfSound","SetSpeedOfSoundStruct","SpeedOfSound","SpeedOfSoundStruct","TransmitDuration","TransmitDurationStruct","Voltage5","Voltage5Struct","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","common","confidence","confidence","confidence","continuous_start","continuous_stop","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","destiny_device_id","device_id","device_id","device_id","device_model","device_type","distance","distance","distance","distance","distance_simple","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","firmware_version","firmware_version_major","firmware_version_major","firmware_version_minor","firmware_version_minor","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","gain_setting","gain_setting","gain_setting","gain_setting","gain_setting","gain_setting","general_info","get_common","get_mut_common","goto_bootloader","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","inner","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","message_id","message_id_from_name","message_name","mode_auto","mode_auto","mode_auto","mode_auto","new","pcb_temperature","pcb_temperature","ping_enable","ping_enabled","ping_enabled","ping_interval","ping_interval","ping_interval","ping_interval","ping_number","ping_number","processor_temperature","processor_temperature","profile","profile_data","profile_data_length","range","scan_length","scan_length","scan_length","scan_length","scan_start","scan_start","scan_start","scan_start","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_device_id","set_gain_setting","set_mode_auto","set_ping_enable","set_ping_interval","set_range","set_speed_of_sound","source_device_id","speed_of_sound","speed_of_sound","speed_of_sound","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","transmit_duration","transmit_duration","transmit_duration","transmit_duration","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","voltage_5","voltage_5","voltage_5","AutoDeviceData","AutoDeviceDataStruct","AutoTransmit","AutoTransmitStruct","Device","DeviceData","DeviceDataStruct","DeviceId","DeviceIdStruct","Messages","MotorOff","MotorOffStruct","PingProtocolHead","Reset","ResetStruct","Transducer","TransducerStruct","angle","angle","angle","auto_device_data","auto_transmit","bootloader","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","common","data","data","data_length","data_length","default","default","default","default","default","default","default","default","delay","delay","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","destiny_device_id","device_data","device_id","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","gain_setting","gain_setting","gain_setting","gain_setting","get_common","get_mut_common","id","id","id","id","id","id","id","id","inner","into","into","into","into","into","into","into","into","into","into","message_id","message_id_from_name","message_name","mode","mode","mode","mode","motor_off","new","num_steps","num_steps","number_of_samples","number_of_samples","number_of_samples","number_of_samples","reserved","reserved","reserved","reset","sample_period","sample_period","sample_period","sample_period","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","source_device_id","start_angle","start_angle","stop_angle","stop_angle","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","transducer","transmit","transmit_duration","transmit_duration","transmit_duration","transmit_duration","transmit_frequency","transmit_frequency","transmit_frequency","transmit_frequency","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id"],"q":[[0,"bluerobotics_ping"],[26,"bluerobotics_ping::bluebps"],[479,"bluerobotics_ping::codec"],[490,"bluerobotics_ping::common"],[682,"bluerobotics_ping::decoder"],[732,"bluerobotics_ping::device"],[754,"bluerobotics_ping::error"],[773,"bluerobotics_ping::message"],[819,"bluerobotics_ping::ping1d"],[1410,"bluerobotics_ping::ping360"],[1635,"core::fmt"],[1636,"core::fmt"],[1637,"core::result"],[1638,"alloc::vec"],[1639,"core::any"],[1640,"alloc::string"],[1641,"tokio::io::async_read"],[1642,"tokio::io::async_write"],[1643,"core::marker"],[1644,"core::marker"],[1645,"core::marker"],[1646,"tokio::sync::broadcast"],[1647,"std::io::error"],[1648,"serialport"],[1649,"std::io"],[1650,"std::io::error"]],"d":["","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","Get the undervoltage timeout","","Get the minimum allowed cell voltage","","get the maximum allowed battery current","","Get the over-current timeout","","","Erase flash, including parameter configuration and event …","","A record of events causing a power lock-out. These numbers …","","","","reboot the system","","Reset parameter configuration to default values.","","Set the minimum allowed cell voltage","","Set the under-voltage timeout","","Set the maximum allowed battery current","","Set the over-current timeout","","the frequency to take adc samples and run the filter.","","Low pass filter setting. This value represents x in the …","","Set the frequency to automatically output state messages.","","Set the maximum allowed battery temperature","","Set the over-temperature timeout","","Get the current state of the device","","Get the maximum allowed battery temperature","","Get the over-temperature timeout","The current measurement","The battery temperature","The main battery voltage","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the undervoltage timeout","Get the minimum allowed cell voltage","","Array containing cell voltages","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The cpu temperature","The number of over-current events","get the maximum allowed battery current","Get the over-current timeout","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Erase flash, including parameter configuration and event …","A record of events causing a power lock-out. These numbers …","flags indicating if any of the configured limits are …","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","0 = normal reboot, run main application after reboot 1 = …","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The maximum temperature allowed at the thermistor probe …","The minimum voltage allowed for any individual cell. …","The minimum voltage allowed for any individual cell. …","The minimum voltage allowed for any individual cell. …","The maximum allowed battery current 0~20000 = 0~200A","The maximum allowed battery current 0~20000 = 0~200A","","","","","Rate to stream state messages. 0~100000Hz","reboot the system","Reset parameter configuration to default values.","sample frequency in Hz. 1~100000","","","","","","","","","","","","","","","","","","","","","","Set the minimum allowed cell voltage","Set the under-voltage timeout","Set the maximum allowed battery current","Set the over-current timeout","the frequency to take adc samples and run the filter.","Low pass filter setting. This value represents x in the …","Set the frequency to automatically output state messages.","Set the maximum allowed battery temperature","Set the over-temperature timeout","0~999: x = 0~0.999","","Get the current state of the device","The number of over-temperature events","Get the maximum allowed battery temperature","Get the over-temperature timeout","If an individual cell exceeds the configured limit for …","If the battery current exceeds the configured limit for …","If an individual cell exceeds the configured limit for …","If the battery temperature exceeds the configured limit …","If the battery current exceeds the configured limit for …","If the battery temperature exceeds the configured limit …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The number of under-voltage events","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","Acknowledged.","","A message for transmitting text data.","","","Device information","","Requests a specific message to be sent from the sonar to …","","","Not acknowledged.","","","The protocol version","","Set the device ID.","The message ID that is ACKnowledged.","ASCII text message. (not necessarily NULL terminated)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Device ID (1-254). 0 is unknown and 255 is reserved for …","Device information","device-specific hardware revision","Device type. 0: Unknown; 1: Ping Echosounder; 2: Ping360","","","","","","","","","","Firmware version major number.","Firmware version minor number.","Firmware version patch number.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","ASCII text message indicating NACK condition. (not …","The message ID that is Not ACKnowledged.","","The protocol version","Message ID to be requested.","reserved","reserved","","","","","","","","","Set the device ID.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Protocol version major number.","Protocol version minor number.","Protocol version patch number.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","Message Format","","","","","","","","","","","","","","","","","Command to initiate continuous data stream of profile …","","Command to stop the continuous data stream of profile …","","","The device ID.","","","The distance to target with confidence estimate.","The distance to target with confidence estimate. Relevant …","","Device information","","The current gain setting.","","General information.","","Send the device into the bootloader. This is useful for …","","","The current operating mode of the device. Manual mode …","","Temperature of the on-board thermistor.","","Acoustic output enabled state.","","The interval between acoustic measurements.","","","Temperature of the device cpu.","","A profile produced from a single acoustic measurement. The …","","The scan range for acoustic measurements. Measurements …","","Set the device ID.","","Set the current gain setting.","","Set automatic or manual mode. Manual mode allows for …","","Enable or disable acoustic measurements.","","The interval between acoustic measurements.","","Set the scan range for acoustic measurements.","","Set the speed of sound used for distance calculations.","","The speed of sound used for distance calculations.","","The duration of the acoustic activation/transmission.","","The 5V rail voltage.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Confidence in the most recent range measurement.","Confidence in the distance measurement.","Confidence in the most recent range measurement.","Command to initiate continuous data stream of profile …","Command to stop the continuous data stream of profile …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The device ID.","Device ID (0-254). 255 is reserved for broadcast messages.","The device ID (0-254). 255 is reserved for broadcast …","Device model. 0: Unknown; 1: Ping1D","Device type. 0: Unknown; 1: Echosounder","The distance to target with confidence estimate. Relevant …","The current return distance determined for the most recent …","Distance to the target.","The current return distance determined for the most recent …","The distance to target with confidence estimate.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Device information","Firmware version major number.","Firmware major version.","Firmware version minor number.","Firmware minor version.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The current gain setting.","The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, …","The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, …","The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, …","The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, …","The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, …","General information.","","","Send the device into the bootloader. This is useful for …","","","","","","","","","","","","","","","","","","","","","","","","","","","The message id to stream. 1300: profile","The message id to stop streaming. 1300: profile","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","The current operating mode of the device. Manual mode …","0: manual mode. 1: auto mode.","The current operating mode of the device. 0: manual mode, …","0: manual mode, 1: auto mode","","Temperature of the on-board thermistor.","The temperature in centi-degrees Centigrade (100 * degrees …","Acoustic output enabled state.","0: Disable, 1: Enable.","The state of the acoustic output. 0: disabled, 1:enabled","The interval between acoustic measurements.","The interval between acoustic measurements.","The interval between acoustic measurements.","The minimum interval between acoustic measurements. The …","The pulse/measurement count since boot.","The pulse/measurement count since boot.","Temperature of the device cpu.","The temperature in centi-degrees Centigrade (100 * degrees …","A profile produced from a single acoustic measurement. The …","","An array of return strength measurements taken at regular …","The scan range for acoustic measurements. Measurements …","The length of the scan range.","The length of the scan range.","The length of the scan region.","The length of the scan region.","Not documented","The beginning of the scan range in mm from the transducer.","The beginning of the scan region in mm from the transducer.","The beginning of the scan region in mm from the transducer.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Set the device ID.","Set the current gain setting.","Set automatic or manual mode. Manual mode allows for …","Enable or disable acoustic measurements.","The interval between acoustic measurements.","Set the scan range for acoustic measurements.","Set the speed of sound used for distance calculations.","","The speed of sound used for distance calculations.","The speed of sound in the measurement medium. ~1,500,000 …","The speed of sound in the measurement medium. ~1,500,000 …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The duration of the acoustic activation/transmission.","The acoustic pulse length during acoustic …","Acoustic pulse duration.","The acoustic pulse length during acoustic …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The 5V rail voltage.","Device supply voltage.","The 5V rail voltage.","","Extended version of device_data with auto_transmit …","","Extended transducer message with auto-scan function. The …","","","This message is used to communicate the current sonar …","","Change the device id","","","The sonar switches the current through the stepper motor …","","","Reset the sonar. The bootloader may run depending on the …","","The transducer will apply the commanded settings. The …","Head angle","Head angle","Head angle","Extended version of device_data with auto_transmit …","Extended transducer message with auto-scan function. The …","0 = skip bootloader; 1 = run bootloader","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","8 bit binary data array representing sonar echo strength","8 bit binary data array representing sonar echo strength","","","","","","","","","An additional delay between successive transmit pulses …","An additional delay between successive transmit pulses …","","","","","","","","","","This message is used to communicate the current sonar …","Change the device id","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Analog gain setting (0 = low, 1 = normal, 2 = high)","Analog gain setting (0 = low, 1 = normal, 2 = high)","Analog gain setting (0 = low, 1 = normal, 2 = high)","Analog gain setting (0 = low, 1 = normal, 2 = high)","","","","","","","","","","Device ID (1-254). 0 and 255 are reserved.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","Operating mode (1 for Ping360)","Operating mode (1 for Ping360)","Operating mode (1 for Ping360)","Operating mode (1 for Ping360)","The sonar switches the current through the stepper motor …","","Number of 0.9 degree motor steps between pings for auto …","Number of 0.9 degree motor steps between pings for auto …","Number of samples per reflected signal","Number of samples per reflected signal","Number of samples per reflected signal","Number of samples per reflected signal","reserved","reserved","reserved","Reset the sonar. The bootloader may run depending on the …","Time interval between individual signal intensity samples …","Time interval between individual signal intensity samples …","Time interval between individual signal intensity samples …","Time interval between individual signal intensity samples …","","","","","","","","","","Head angle to begin scan sector for autoscan in gradians …","Head angle to begin scan sector for autoscan in gradians …","Head angle to end scan sector for autoscan in gradians …","Head angle to end scan sector for autoscan in gradians …","","","","","","","","","","The transducer will apply the commanded settings. The …","0 = do not transmit; 1 = transmit after the transducer has …","Acoustic transmission duration (1~1000 microseconds)","Acoustic transmission duration (1~1000 microseconds)","Acoustic transmission duration (1~1000 microseconds)","Acoustic transmission duration (1~1000 microseconds)","Acoustic operating frequency. Frequency range is 500kHz to …","Acoustic operating frequency. Frequency range is 500kHz to …","Acoustic operating frequency. Frequency range is 500kHz to …","Acoustic operating frequency. Frequency range is 500kHz to …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[4,4,0,4,4,0,4,4,0,0,0,0,0,0,4,4,4,4,0,0,0,4,4,4,4,4,17,0,17,0,17,0,17,0,0,17,0,17,0,0,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,18,18,18,12,16,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,12,16,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,12,12,18,18,16,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,16,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,12,18,35,12,12,16,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,16,16,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,12,12,18,16,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,12,16,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,12,12,23,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,17,12,16,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,19,21,15,25,33,34,17,17,17,12,32,12,12,28,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,12,12,12,12,12,12,12,12,12,26,16,12,35,12,12,13,22,24,27,29,31,16,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,12,16,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,12,16,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,12,16,17,18,19,13,20,21,15,22,23,24,25,26,27,28,29,30,31,32,33,34,35,35,0,46,46,46,46,46,46,46,46,46,46,49,0,49,0,0,49,0,49,0,0,49,0,0,49,0,49,0,56,55,57,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,48,49,50,51,52,53,54,55,56,48,49,50,51,52,53,54,55,56,57,48,50,51,52,53,54,55,56,49,50,51,52,53,54,55,56,48,54,57,50,50,48,49,50,51,52,53,54,55,56,50,50,50,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,57,50,51,52,53,54,55,56,49,57,48,49,50,51,52,53,54,55,56,49,49,49,52,52,57,57,53,50,51,49,50,51,52,53,54,55,56,57,48,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,51,51,51,60,60,58,0,0,0,59,59,58,58,0,60,60,60,59,61,58,59,60,61,58,59,60,58,58,59,60,61,58,59,60,61,58,59,60,61,61,61,61,58,59,60,61,58,59,60,61,58,59,60,0,0,0,0,39,39,39,62,62,62,39,39,62,62,39,62,62,39,39,39,62,62,14,14,14,14,0,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,0,0,10,10,10,10,10,10,10,10,69,70,10,10,10,10,10,10,63,10,10,72,10,72,72,10,10,10,10,73,10,10,10,10,10,10,10,10,10,10,10,77,0,77,0,0,77,0,77,77,0,0,77,0,77,0,77,0,77,0,0,77,0,77,0,77,0,77,0,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,90,94,97,104,104,76,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,76,104,91,99,80,80,104,90,94,97,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,80,81,80,81,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,81,90,93,97,98,104,104,104,104,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,78,88,77,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,77,77,77,104,79,81,82,104,104,96,104,95,102,104,81,84,85,90,97,104,101,104,90,90,104,86,89,90,97,86,89,90,97,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,104,104,104,104,104,104,76,104,87,103,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,90,92,97,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,81,100,108,0,108,0,0,108,0,108,0,0,108,0,0,108,0,108,0,106,112,114,105,105,109,105,107,108,106,109,110,111,112,113,114,105,107,108,106,109,110,111,112,113,114,107,108,106,109,110,111,112,113,114,107,108,106,109,110,111,112,113,114,105,106,114,106,114,107,106,109,110,111,112,113,114,106,111,108,106,109,110,111,112,113,114,107,105,105,107,108,106,109,110,111,112,113,114,107,108,106,109,110,111,112,113,114,105,107,108,106,109,110,111,112,113,114,106,111,112,114,105,105,106,109,110,111,112,113,114,113,108,105,107,108,106,109,110,111,112,113,114,108,108,108,106,111,112,114,105,105,106,111,106,111,112,114,109,112,113,105,106,111,112,114,108,106,109,110,111,112,113,114,107,106,111,106,111,107,108,106,109,110,111,112,113,114,105,112,106,111,112,114,106,111,112,114,105,107,108,106,109,110,111,112,113,114,105,107,108,106,109,110,111,112,113,114,105,107,108,106,109,110,111,112,113,114],"f":"``````{ce{}{}}0{{{d{b}}}f}`````{{hj}l}{cc{}}{h{{n{c}}}{}}4```{c{{A`{e}}}{}{}}{{{Ab{b}}}{{A`{hc}}}{}}{Ad{{A`{hc}}}{}}2{cAf{}}``````````````````````````````````````````````8888888888888888888888888888888888888888888888{Ah{{A`{AjAl}}}}{Ah{{A`{AnAl}}}}``{B`B`}{BbBb}{BdBd}{BfBf}{AjAj}{BhBh}{BjBj}{AnAn}{BlBl}{BnBn}{C`C`}{CbCb}{CdCd}{CfCf}{ChCh}{CjCj}{ClCl}{CnCn}{D`D`}{DbDb}{DdDd}{DfDf}{{ce}Dh{}{}}000000000000000000000```{Ah{{A`{DdAl}}}}{Ah{{A`{BlAl}}}}{{}B`}{{}Bd}{{}Bf}{{}Aj}{{}Bh}{{}Bj}{{}An}{{}Bl}{{}Bn}{{}C`}{{}Cb}{{}Cd}{{}Cf}{{}Ch}{{}Cj}{{}Cl}{{}Cn}{{}D`}{{}Db}{{}Dd}{{}Df}{{f{d{b}}}{{A`{BbDj}}}}{{{d{b}}}Bd}{{{d{b}}}Bf}{{{d{b}}}Aj}{{{d{b}}}Bh}{{{d{b}}}Bj}{{{d{b}}}An}{{{d{b}}}Bl}{{{d{b}}}Bn}{{{d{b}}}C`}{{{d{b}}}Cb}{{{d{b}}}Cd}{{{d{b}}}Cf}{{{d{b}}}Ch}{{{d{b}}}Cj}{{{d{b}}}Cl}{{{d{b}}}Cn}{{{d{b}}}D`}{{{d{b}}}Db}{{{d{b}}}Dd}{{{d{b}}}Df}`{{B`B`}Dl}{{BbBb}Dl}{{BdBd}Dl}{{BfBf}Dl}{{AjAj}Dl}{{BhBh}Dl}{{BjBj}Dl}{{AnAn}Dl}{{BlBl}Dl}{{BnBn}Dl}{{C`C`}Dl}{{CbCb}Dl}{{CdCd}Dl}{{CfCf}Dl}{{ChCh}Dl}{{CjCj}Dl}{{ClCl}Dl}{{CnCn}Dl}{{D`D`}Dl}{{DbDb}Dl}{{DdDd}Dl}{{DfDf}Dl}{Ah{{A`{DhAl}}}}{Ah{{A`{DfAl}}}}`{{B`j}l}{{Bbj}l}{{Bdj}l}{{Bfj}l}{{Ajj}l}{{Bhj}l}{{Bjj}l}{{Anj}l}{{Blj}l}{{Bnj}l}{{C`j}l}{{Cbj}l}{{Cdj}l}{{Cfj}l}{{Chj}l}{{Cjj}l}{{Clj}l}{{Cnj}l}{{D`j}l}{{Dbj}l}{{Ddj}l}{{Dfj}l}{cc{}}0000000000000000000000{AhDn}0`{{}f}0000000000000000000{Bb{{n{c}}}{}}{ce{}{}}0000000000000000000000``````{Bbf}{Dj{{A`{fE`}}}}{BbDj}{cAh{EbEdEfEh}}`{{Ahb}{{A`{DhAl}}}}{Ah{{A`{DhAl}}}}`{Bb{{Ab{b}}}}{Bd{{Ab{b}}}}{Bf{{Ab{b}}}}{Aj{{Ab{b}}}}{Bh{{Ab{b}}}}{Bj{{Ab{b}}}}{An{{Ab{b}}}}{Bl{{Ab{b}}}}{Bn{{Ab{b}}}}{C`{{Ab{b}}}}{Cb{{Ab{b}}}}{Cd{{Ab{b}}}}{Cf{{Ab{b}}}}{Ch{{Ab{b}}}}{Cj{{Ab{b}}}}{Cl{{Ab{b}}}}{Cn{{Ab{b}}}}{D`{{Ab{b}}}}{Db{{Ab{b}}}}{Dd{{Ab{b}}}}{Df{{Ab{b}}}}{{Ahf}{{A`{DhAl}}}}000{{AhEj}{{A`{DhAl}}}}1011``{Ah{{A`{BdAl}}}}`{Ah{{A`{BjAl}}}}{Ah{{A`{CfAl}}}}``````{ce{}{}}000000000000000000000{c{{A`{e}}}{}{}}000000000000000000000000000000000000000000000{cAf{}}0000000000000000000000``22{{ElEn}{{A`{{n{c}}e}}}{}{}}{{ElAdEn}{{A`{Dhc}}}{}}{cc{}}5{{}El}554```````````````````66666666666666666666{F`F`}{FbFb}{FdFd}{FfFf}{FhFh}{FjFj}{FlFl}{FnFn}{G`G`}{{ce}Dh{}{}}00000000`{{}F`}{{}Fd}{{}Ff}{{}Fh}{{}Fj}{{}Fl}{{}Fn}{{}G`}{{f{d{b}}}{{A`{FbDj}}}}{{{d{b}}}Fd}{{{d{b}}}Ff}{{{d{b}}}Fh}{{{d{b}}}Fj}{{{d{b}}}Fl}{{{d{b}}}Fn}{{{d{b}}}G`}``{Gb{{A`{FdAl}}}}``{{F`F`}Dl}{{FbFb}Dl}{{FdFd}Dl}{{FfFf}Dl}{{FhFh}Dl}{{FjFj}Dl}{{FlFl}Dl}{{FnFn}Dl}{{G`G`}Dl}```{{F`j}l}{{Fbj}l}{{Fdj}l}{{Ffj}l}{{Fhj}l}{{Fjj}l}{{Flj}l}{{Fnj}l}{{G`j}l}{cc{}}000000000{GbDn}0{{}f}000000{Fb{{n{c}}}{}}{ce{}{}}000000000{Fbf}{Dj{{A`{fE`}}}}{FbDj}``{cGb{EbEdEfEh}}{Gb{{A`{FfAl}}}}```{Fb{{Ab{b}}}}{Fd{{Ab{b}}}}{Ff{{Ab{b}}}}{Fh{{Ab{b}}}}{Fj{{Ab{b}}}}{Fl{{Ab{b}}}}{Fn{{Ab{b}}}}{G`{{Ab{b}}}}{{Gbb}{{A`{DhAl}}}}`>>>>>>>>>{c{{A`{e}}}{}{}}0000000000000000000{cAf{}}000000000``````````````````{ce{}{}}0000000{{GdGd}Dl}{{Gdj}l}{{Gfj}l}{{Ghj}l}{cc{}}0005555{{}Gj}{{Gjb}Gf}`999999998888````772{GlDn}0{Gl{{A`{FfAl}}}}9{cDn{EbEdEfEh}}{Gl{{A`{cAl}}}{GnH`HbEh}}{{Glf}{{A`{DhAl}}}}{{DnAd}{{A`{DhAl}}}}{{Glb}{{A`{DhAl}}}}{Gl{{Hd{Ad}}}}{c{{A`{e}}}{}{}}0{cAf{}}{{Gl{Hd{Ad}}f}{{A`{DhAl}}}}{{Gl{Hd{Ad}}}{{A`{cAl}}}{GnH`HbEh}}`````````{ce{}{}}0{{Alj}l}{HfAl}{cc{}}{HhAl}4887```````44{Adf}0`{AdAd}{{ce}Dh{}{}}{{}Ad}{{{d{b}}}Hj}{{f{d{b}}}{{A`{HlDj}}}}{Adb}`{{AdAd}Dl}{{Adj}l}:{AdDl}{{}f}?{AdHn}{I`f}`{Dj{{A`{fE`}}}}{I`Dj};{Ad{{d{b}}}}``{Ib{{Ab{b}}}}{Ad{{Ab{b}}}}{{Adb}Dh}{{Adc}DhI`}1`{ce{}{}}{c{{A`{e}}}{}{}}0{cAf{}}{AdDh}{{AdId}{{If{Hn}}}}```````````````````````````````````````````````````````4444444444444444444444444444444444444444444444444444444444{IhIh}{IjIj}{IlIl}{InIn}{J`J`}{JbJb}{JdJd}{JfJf}{JhJh}{JjJj}{JlJl}{JnJn}{K`K`}{KbKb}{KdKd}{KfKf}{KhKh}{KjKj}{KlKl}{KnKn}{L`L`}{LbLb}{LdLd}{LfLf}{LhLh}{LjLj}{LlLl}{LnLn}{{ce}Dh{}{}}000000000000000000000000000````{{M`f}{{A`{DhAl}}}}0{{}Ih}{{}Il}{{}In}{{}J`}{{}Jb}{{}Jd}{{}Jf}{{}Jh}{{}Jj}{{}Jl}{{}Jn}{{}K`}{{}Kb}{{}Kd}{{}Kf}{{}Kh}{{}Kj}{{}Kl}{{}Kn}{{}L`}{{}Lb}{{}Ld}{{}Lf}{{}Lh}{{}Lj}{{}Ll}{{}Ln}{{f{d{b}}}{{A`{IjDj}}}}{{{d{b}}}Il}{{{d{b}}}In}{{{d{b}}}J`}{{{d{b}}}Jb}{{{d{b}}}Jd}{{{d{b}}}Jf}{{{d{b}}}Jh}{{{d{b}}}Jj}{{{d{b}}}Jl}{{{d{b}}}Jn}{{{d{b}}}K`}{{{d{b}}}Kb}{{{d{b}}}Kd}{{{d{b}}}Kf}{{{d{b}}}Kh}{{{d{b}}}Kj}{{{d{b}}}Kl}{{{d{b}}}Kn}{{{d{b}}}L`}{{{d{b}}}Lb}{{{d{b}}}Ld}{{{d{b}}}Lf}{{{d{b}}}Lh}{{{d{b}}}Lj}{{{d{b}}}Ll}{{{d{b}}}Ln}`{M`{{A`{LfAl}}}}````{M`{{A`{LbAl}}}}```{M`{{A`{KlAl}}}}{{IhIh}Dl}{{IjIj}Dl}{{IlIl}Dl}{{InIn}Dl}{{J`J`}Dl}{{JbJb}Dl}{{JdJd}Dl}{{JfJf}Dl}{{JhJh}Dl}{{JjJj}Dl}{{JlJl}Dl}{{JnJn}Dl}{{K`K`}Dl}{{KbKb}Dl}{{KdKd}Dl}{{KfKf}Dl}{{KhKh}Dl}{{KjKj}Dl}{{KlKl}Dl}{{KnKn}Dl}{{L`L`}Dl}{{LbLb}Dl}{{LdLd}Dl}{{LfLf}Dl}{{LhLh}Dl}{{LjLj}Dl}{{LlLl}Dl}{{LnLn}Dl}{M`{{A`{J`Al}}}}````{{Ihj}l}{{Ijj}l}{{Ilj}l}{{Inj}l}{{J`j}l}{{Jbj}l}{{Jdj}l}{{Jfj}l}{{Jhj}l}{{Jjj}l}{{Jlj}l}{{Jnj}l}{{K`j}l}{{Kbj}l}{{Kdj}l}{{Kfj}l}{{Khj}l}{{Kjj}l}{{Klj}l}{{Knj}l}{{L`j}l}{{Lbj}l}{{Ldj}l}{{Lfj}l}{{Lhj}l}{{Ljj}l}{{Llj}l}{{Lnj}l}{cc{}}0000000000000000000000000000{M`{{A`{LdAl}}}}`````{M`{{A`{JbAl}}}}{M`Dn}0{M`{{A`{DhAl}}}}{{}f}0000000000000000000000000``{Ij{{n{c}}}{}}{ce{}{}}0000000000000000000000000000{Ijf}{Dj{{A`{fE`}}}}{IjDj}{M`{{A`{JdAl}}}}```{cM`{EbEdEfEh}}{M`{{A`{L`Al}}}}`{M`{{A`{LlAl}}}}``{M`{{A`{JjAl}}}}`````{M`{{A`{LjAl}}}}`{M`{{A`{KdAl}}}}``{M`{{A`{KbAl}}}}````````{Ij{{Ab{b}}}}{Il{{Ab{b}}}}{In{{Ab{b}}}}{J`{{Ab{b}}}}{Jb{{Ab{b}}}}{Jd{{Ab{b}}}}{Jf{{Ab{b}}}}{Jh{{Ab{b}}}}{Jj{{Ab{b}}}}{Jl{{Ab{b}}}}{Jn{{Ab{b}}}}{K`{{Ab{b}}}}{Kb{{Ab{b}}}}{Kd{{Ab{b}}}}{Kf{{Ab{b}}}}{Kh{{Ab{b}}}}{Kj{{Ab{b}}}}{Kl{{Ab{b}}}}{Kn{{Ab{b}}}}{L`{{Ab{b}}}}{Lb{{Ab{b}}}}{Ld{{Ab{b}}}}{Lf{{Ab{b}}}}{Lh{{Ab{b}}}}{Lj{{Ab{b}}}}{Ll{{Ab{b}}}}{Ln{{Ab{b}}}}{{M`b}{{A`{DhAl}}}}000{{M`f}{{A`{DhAl}}}}{{M`EjEj}{{A`{DhAl}}}}{{M`Ej}{{A`{DhAl}}}}`{M`{{A`{LnAl}}}}``{ce{}{}}000000000000000000000000000{M`{{A`{KhAl}}}}```{c{{A`{e}}}{}{}}000000000000000000000000000000000000000000000000000000000{cAf{}}0000000000000000000000000000{M`{{A`{LhAl}}}}``````````````````````{Mb{{A`{MdAl}}}}{{Mbbbffffffbb}{{A`{DhAl}}}}`66666666666666666666{MfMf}{MhMh}{MdMd}{MjMj}{MlMl}{MnMn}{N`N`}{NbNb}{NdNd}{{ce}Dh{}{}}00000000`````{{}Mf}{{}Md}{{}Mj}{{}Ml}{{}Mn}{{}N`}{{}Nb}{{}Nd}``{{f{d{b}}}{{A`{MhDj}}}}{{{d{b}}}Md}{{{d{b}}}Mj}{{{d{b}}}Ml}{{{d{b}}}Mn}{{{d{b}}}N`}{{{d{b}}}Nb}{{{d{b}}}Nd}`{Mb{{A`{NdAl}}}}{{Mbbb}{{A`{DhAl}}}}{{MfMf}Dl}{{MhMh}Dl}{{MdMd}Dl}{{MjMj}Dl}{{MlMl}Dl}{{MnMn}Dl}{{N`N`}Dl}{{NbNb}Dl}{{NdNd}Dl}{{Mfj}l}{{Mhj}l}{{Mdj}l}{{Mjj}l}{{Mlj}l}{{Mnj}l}{{N`j}l}{{Nbj}l}{{Ndj}l}{cc{}}000000000````{MbDn}0{{}f}000000`{Mh{{n{c}}}{}}{ce{}{}}000000000{Mhf}{Dj{{A`{fE`}}}}{MhDj}````{Mb{{A`{DhAl}}}}{cMb{EbEdEfEh}}`````````{{Mbbb}{{A`{DhAl}}}}````{Mh{{Ab{b}}}}{Md{{Ab{b}}}}{Mj{{Ab{b}}}}{Ml{{Ab{b}}}}{Mn{{Ab{b}}}}{N`{{Ab{b}}}}{Nb{{Ab{b}}}}{Nd{{Ab{b}}}}`````>>>>>>>>>{{Mbbbfffffbb}{{A`{DhAl}}}}`````````{c{{A`{e}}}{}{}}0000000000000000000{cAf{}}000000000","c":[],"p":[[1,"u8"],[1,"slice"],[1,"u16"],[6,"Messages",0],[5,"Formatter",1635],[8,"Result",1635],[6,"Option",1636],[6,"Result",1637],[5,"Vec",1638],[5,"ProtocolMessage",773],[5,"TypeId",1639],[5,"Device",26],[5,"CellTimeoutStruct",26],[6,"PingError",754],[5,"CellVoltageMinStruct",26],[5,"PingProtocolHead",26],[6,"Messages",26],[5,"StateStruct",26],[5,"SetTemperatureMaxStruct",26],[5,"EraseFlashStruct",26],[5,"TemperatureMaxStruct",26],[5,"CurrentTimeoutStruct",26],[5,"RebootStruct",26],[5,"SetCellVoltageTimeoutStruct",26],[5,"SetCellVoltageMinimumStruct",26],[5,"SetLpfSettingStruct",26],[5,"TemperatureTimeoutStruct",26],[5,"SetLpfSampleFrequencyStruct",26],[5,"SetCurrentTimeoutStruct",26],[5,"ResetDefaultsStruct",26],[5,"SetTemperatureTimeoutStruct",26],[5,"SetStreamRateStruct",26],[5,"SetCurrentMaxStruct",26],[5,"CurrentMaxStruct",26],[5,"EventsStruct",26],[1,"unit"],[1,"str"],[1,"bool"],[5,"Common",732],[5,"String",1640],[10,"AsyncRead",1641],[10,"AsyncWrite",1642],[10,"Unpin",1643],[10,"Send",1643],[1,"u32"],[5,"PingCodec",479],[5,"BytesMut",1644],[5,"PingProtocolHead",490],[6,"Messages",490],[5,"DeviceInformationStruct",490],[5,"ProtocolVersionStruct",490],[5,"NackStruct",490],[5,"GeneralRequestStruct",490],[5,"SetDeviceIdStruct",490],[5,"AsciiTextStruct",490],[5,"AckStruct",490],[5,"Device",490],[6,"ParseError",682],[6,"DecoderResult",682],[6,"DecoderState",682],[5,"Decoder",682],[10,"PingDevice",732],[10,"MessageInfo",773],[10,"Sync",1643],[10,"Clone",1645],[5,"Receiver",1646],[5,"Error",1647],[5,"Error",1648],[10,"DeserializePayload",773],[10,"DeserializeGenericMessage",773],[1,"usize"],[10,"PingMessage",773],[10,"SerializePayload",773],[10,"Write",1649],[8,"Result",1647],[5,"PingProtocolHead",819],[6,"Messages",819],[5,"ContinuousStartStruct",819],[5,"SetModeAutoStruct",819],[5,"FirmwareVersionStruct",819],[5,"GeneralInfoStruct",819],[5,"ModeAutoStruct",819],[5,"GotoBootloaderStruct",819],[5,"SetPingIntervalStruct",819],[5,"PingIntervalStruct",819],[5,"SetRangeStruct",819],[5,"SetSpeedOfSoundStruct",819],[5,"ContinuousStopStruct",819],[5,"RangeStruct",819],[5,"ProfileStruct",819],[5,"SetDeviceIdStruct",819],[5,"TransmitDurationStruct",819],[5,"SetGainSettingStruct",819],[5,"DistanceSimpleStruct",819],[5,"SetPingEnableStruct",819],[5,"PcbTemperatureStruct",819],[5,"DistanceStruct",819],[5,"GainSettingStruct",819],[5,"DeviceIdStruct",819],[5,"Voltage5Struct",819],[5,"ProcessorTemperatureStruct",819],[5,"PingEnableStruct",819],[5,"SpeedOfSoundStruct",819],[5,"Device",819],[5,"Device",1410],[5,"AutoDeviceDataStruct",1410],[5,"PingProtocolHead",1410],[6,"Messages",1410],[5,"ResetStruct",1410],[5,"MotorOffStruct",1410],[5,"AutoTransmitStruct",1410],[5,"TransducerStruct",1410],[5,"DeviceIdStruct",1410],[5,"DeviceDataStruct",1410]],"b":[[22,"impl-TryFrom%3C%26Vec%3Cu8%3E%3E-for-Messages"],[23,"impl-TryFrom%3C%26ProtocolMessage%3E-for-Messages"],[766,"impl-From%3CError%3E-for-PingError"],[768,"impl-From%3CError%3E-for-PingError"]]}],\ +["bluerobotics_ping",{"doc":"","t":"PPGPPCNNHCCCCCNNNNCCCNNNNNPFPFPFPFFPFPFGFPFPFPFPFPFPFPFPFPFPFPFPFPFPFOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOONNNNONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONONNOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOFNNNNNNNNNNPFPFFPFPFGPFFPFPFOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNOONOONNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNOOONNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOPPPFGGPPPPGPPPPNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNFEEKNNNMMNNNNNNNNNNNNNPPPPGPPPPNNNNNNNNNNKKSKKFKNNNNONNNMMNONNNNMNNMOMMNNOOMNNNNONNNNNNPFPFFPFPPFFPFPFPFPFGPFPFPFPFFPFPFPFPFPFPFPFPFPFPFPFPFPFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOOOONOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNONOONOOOOONONOONOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOPFPFFPFPFGPFFPFPFOOONNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOONNNNNNNNOONNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNONNNNNNNNNNNNNNOOOONNOOOOOOOOONOOOONNNNNNNNOOOOONNNNNNNNNNOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Bluebps","Common","Messages","Ping1D","Ping360","bluebps","borrow","borrow_mut","calculate_crc","codec","common","decoder","device","error","fmt","from","inner","into","message","ping1d","ping360","try_from","try_from","try_from","try_into","type_id","CellTimeout","CellTimeoutStruct","CellVoltageMin","CellVoltageMinStruct","CurrentMax","CurrentMaxStruct","CurrentTimeout","CurrentTimeoutStruct","Device","EraseFlash","EraseFlashStruct","Events","EventsStruct","Messages","PingProtocolHead","Reboot","RebootStruct","ResetDefaults","ResetDefaultsStruct","SetCellVoltageMinimum","SetCellVoltageMinimumStruct","SetCellVoltageTimeout","SetCellVoltageTimeoutStruct","SetCurrentMax","SetCurrentMaxStruct","SetCurrentTimeout","SetCurrentTimeoutStruct","SetLpfSampleFrequency","SetLpfSampleFrequencyStruct","SetLpfSetting","SetLpfSettingStruct","SetStreamRate","SetStreamRateStruct","SetTemperatureMax","SetTemperatureMaxStruct","SetTemperatureTimeout","SetTemperatureTimeoutStruct","State","StateStruct","TemperatureMax","TemperatureMaxStruct","TemperatureTimeout","TemperatureTimeoutStruct","battery_current","battery_temperature","battery_voltage","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","cell_timeout","cell_voltage_min","cell_voltages","cell_voltages_length","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","common","cpu_temperature","current","current_max","current_timeout","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","destiny_device_id","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","erase_flash","events","flags","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_common","get_mut_common","goto_bootloader","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","inner","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","limit","limit","limit","limit","limit","limit","message_id","message_id_from_name","message_name","new","rate","reboot","reset_defaults","sample_frequency","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_cell_voltage_minimum","set_cell_voltage_timeout","set_current_max","set_current_timeout","set_lpf_sample_frequency","set_lpf_setting","set_stream_rate","set_temperature_max","set_temperature_timeout","setting","source_device_id","state","temperature","temperature_max","temperature_timeout","timeout","timeout","timeout","timeout","timeout","timeout","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","voltage","PingCodec","borrow","borrow_mut","decode","encode","from","into","new","try_from","try_into","type_id","Ack","AckStruct","AsciiText","AsciiTextStruct","Device","DeviceInformation","DeviceInformationStruct","GeneralRequest","GeneralRequestStruct","Messages","Nack","NackStruct","PingProtocolHead","ProtocolVersion","ProtocolVersionStruct","SetDeviceId","SetDeviceIdStruct","acked_id","ascii_message","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","common","default","default","default","default","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","destiny_device_id","device_id","device_information","device_revision","device_type","eq","eq","eq","eq","eq","eq","eq","eq","eq","firmware_version_major","firmware_version_minor","firmware_version_patch","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","get_common","get_mut_common","id","id","id","id","id","id","id","inner","into","into","into","into","into","into","into","into","into","into","message_id","message_id_from_name","message_name","nack_message","nacked_id","new","protocol_version","requested_id","reserved","reserved","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_device_id","source_device_id","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","version_major","version_minor","version_patch","AwaitingStart1","AwaitingStart2","ChecksumError","Decoder","DecoderResult","DecoderState","Error","InProgress","IncompleteData","InvalidStartByte","ParseError","ReadingChecksum","ReadingHeader","ReadingPayload","Success","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","eq","fmt","fmt","fmt","from","from","from","from","into","into","into","into","new","parse_byte","state","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","Common","Ping1D","Ping360","PingDevice","borrow","borrow_mut","from","get_common","get_mut_common","get_protocol_version","into","new","request","send_general_request","send_message","set_device_id","subscribe","try_from","try_into","type_id","wait_for_ack","wait_for_message","Io","JoinError","NackError","ParseError","PingError","TimeoutError","TokioBroadcastError","TokioMpscError","TryFromError","borrow","borrow_mut","fmt","from","from","from","into","try_from","try_into","type_id","DeserializeGenericMessage","DeserializePayload","HEADER","MessageInfo","PingMessage","ProtocolMessage","SerializePayload","borrow","borrow_mut","calculate_crc","checksum","checksum","clone","clone_into","default","deserialize","deserialize","dst_device_id","dst_device_id","eq","fmt","from","has_valid_crc","id","into","length","message_id","message_id","message_id_from_name","message_name","new","payload","payload","payload_length","serialize","serialized","set_dst_device_id","set_message","set_src_device_id","src_device_id","to_owned","try_from","try_into","type_id","update_checksum","write","ContinuousStart","ContinuousStartStruct","ContinuousStop","ContinuousStopStruct","Device","DeviceId","DeviceIdStruct","Distance","DistanceSimple","DistanceSimpleStruct","DistanceStruct","FirmwareVersion","FirmwareVersionStruct","GainSetting","GainSettingStruct","GeneralInfo","GeneralInfoStruct","GotoBootloader","GotoBootloaderStruct","Messages","ModeAuto","ModeAutoStruct","PcbTemperature","PcbTemperatureStruct","PingEnable","PingEnableStruct","PingInterval","PingIntervalStruct","PingProtocolHead","ProcessorTemperature","ProcessorTemperatureStruct","Profile","ProfileStruct","Range","RangeStruct","SetDeviceId","SetDeviceIdStruct","SetGainSetting","SetGainSettingStruct","SetModeAuto","SetModeAutoStruct","SetPingEnable","SetPingEnableStruct","SetPingInterval","SetPingIntervalStruct","SetRange","SetRangeStruct","SetSpeedOfSound","SetSpeedOfSoundStruct","SpeedOfSound","SpeedOfSoundStruct","TransmitDuration","TransmitDurationStruct","Voltage5","Voltage5Struct","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","common","confidence","confidence","confidence","continuous_start","continuous_stop","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","destiny_device_id","device_id","device_id","device_id","device_model","device_type","distance","distance","distance","distance","distance_simple","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","firmware_version","firmware_version_major","firmware_version_major","firmware_version_minor","firmware_version_minor","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","gain_setting","gain_setting","gain_setting","gain_setting","gain_setting","gain_setting","general_info","get_common","get_mut_common","goto_bootloader","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","id","inner","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","message_id","message_id_from_name","message_name","mode_auto","mode_auto","mode_auto","mode_auto","new","pcb_temperature","pcb_temperature","ping_enable","ping_enabled","ping_enabled","ping_interval","ping_interval","ping_interval","ping_interval","ping_number","ping_number","processor_temperature","processor_temperature","profile","profile_data","profile_data_length","range","scan_length","scan_length","scan_length","scan_length","scan_start","scan_start","scan_start","scan_start","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","set_device_id","set_gain_setting","set_mode_auto","set_ping_enable","set_ping_interval","set_range","set_speed_of_sound","source_device_id","speed_of_sound","speed_of_sound","speed_of_sound","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","transmit_duration","transmit_duration","transmit_duration","transmit_duration","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","voltage_5","voltage_5","voltage_5","AutoDeviceData","AutoDeviceDataStruct","AutoTransmit","AutoTransmitStruct","Device","DeviceData","DeviceDataStruct","DeviceId","DeviceIdStruct","Messages","MotorOff","MotorOffStruct","PingProtocolHead","Reset","ResetStruct","Transducer","TransducerStruct","angle","angle","angle","auto_device_data","auto_transmit","bootloader","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","common","data","data","data_length","data_length","default","default","default","default","default","default","default","default","delay","delay","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","destiny_device_id","device_data","device_id","eq","eq","eq","eq","eq","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","gain_setting","gain_setting","gain_setting","gain_setting","get_common","get_mut_common","id","id","id","id","id","id","id","id","inner","into","into","into","into","into","into","into","into","into","into","message_id","message_id_from_name","message_name","mode","mode","mode","mode","motor_off","new","num_steps","num_steps","number_of_samples","number_of_samples","number_of_samples","number_of_samples","reserved","reserved","reserved","reset","sample_period","sample_period","sample_period","sample_period","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","source_device_id","start_angle","start_angle","stop_angle","stop_angle","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","transducer","transmit","transmit_duration","transmit_duration","transmit_duration","transmit_duration","transmit_frequency","transmit_frequency","transmit_frequency","transmit_frequency","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id"],"q":[[0,"bluerobotics_ping"],[26,"bluerobotics_ping::bluebps"],[479,"bluerobotics_ping::codec"],[490,"bluerobotics_ping::common"],[682,"bluerobotics_ping::decoder"],[732,"bluerobotics_ping::device"],[754,"bluerobotics_ping::error"],[773,"bluerobotics_ping::message"],[819,"bluerobotics_ping::ping1d"],[1410,"bluerobotics_ping::ping360"],[1635,"core::fmt"],[1636,"core::fmt"],[1637,"alloc::vec"],[1638,"core::result"],[1639,"core::any"],[1640,"alloc::string"],[1641,"tokio::io::async_read"],[1642,"tokio::io::async_write"],[1643,"core::marker"],[1644,"core::marker"],[1645,"core::marker"],[1646,"tokio::sync::broadcast"],[1647,"std::io::error"],[1648,"serialport"],[1649,"std::io"],[1650,"std::io::error"]],"d":["","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","Get the undervoltage timeout","","Get the minimum allowed cell voltage","","get the maximum allowed battery current","","Get the over-current timeout","","","Erase flash, including parameter configuration and event …","","A record of events causing a power lock-out. These numbers …","","","","reboot the system","","Reset parameter configuration to default values.","","Set the minimum allowed cell voltage","","Set the under-voltage timeout","","Set the maximum allowed battery current","","Set the over-current timeout","","the frequency to take adc samples and run the filter.","","Low pass filter setting. This value represents x in the …","","Set the frequency to automatically output state messages.","","Set the maximum allowed battery temperature","","Set the over-temperature timeout","","Get the current state of the device","","Get the maximum allowed battery temperature","","Get the over-temperature timeout","The current measurement","The battery temperature","The main battery voltage","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Get the undervoltage timeout","Get the minimum allowed cell voltage","","Array containing cell voltages","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The cpu temperature","The number of over-current events","get the maximum allowed battery current","Get the over-current timeout","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Erase flash, including parameter configuration and event …","A record of events causing a power lock-out. These numbers …","flags indicating if any of the configured limits are …","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","0 = normal reboot, run main application after reboot 1 = …","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","The maximum allowed battery current 0~20000 = 0~200A","The maximum temperature allowed at the thermistor probe …","The minimum voltage allowed for any individual cell. …","The minimum voltage allowed for any individual cell. …","The maximum allowed battery current 0~20000 = 0~200A","The minimum voltage allowed for any individual cell. …","","","","","Rate to stream state messages. 0~100000Hz","reboot the system","Reset parameter configuration to default values.","sample frequency in Hz. 1~100000","","","","","","","","","","","","","","","","","","","","","","Set the minimum allowed cell voltage","Set the under-voltage timeout","Set the maximum allowed battery current","Set the over-current timeout","the frequency to take adc samples and run the filter.","Low pass filter setting. This value represents x in the …","Set the frequency to automatically output state messages.","Set the maximum allowed battery temperature","Set the over-temperature timeout","0~999: x = 0~0.999","","Get the current state of the device","The number of over-temperature events","Get the maximum allowed battery temperature","Get the over-temperature timeout","If the battery temperature exceeds the configured limit …","If the battery current exceeds the configured limit for …","If the battery current exceeds the configured limit for …","If an individual cell exceeds the configured limit for …","If the battery temperature exceeds the configured limit …","If an individual cell exceeds the configured limit for …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The number of under-voltage events","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","Acknowledged.","","A message for transmitting text data.","","","Device information","","Requests a specific message to be sent from the sonar to …","","","Not acknowledged.","","","The protocol version","","Set the device ID.","The message ID that is ACKnowledged.","ASCII text message. (not necessarily NULL terminated)","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Device ID (1-254). 0 is unknown and 255 is reserved for …","Device information","device-specific hardware revision","Device type. 0: Unknown; 1: Ping Echosounder; 2: Ping360","","","","","","","","","","Firmware version major number.","Firmware version minor number.","Firmware version patch number.","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","ASCII text message indicating NACK condition. (not …","The message ID that is Not ACKnowledged.","","The protocol version","Message ID to be requested.","reserved","reserved","","","","","","","","","Set the device ID.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Protocol version major number.","Protocol version minor number.","Protocol version patch number.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","Message Format","","","","","","","","","","","","","","","","","Command to initiate continuous data stream of profile …","","Command to stop the continuous data stream of profile …","","","The device ID.","","","The distance to target with confidence estimate.","The distance to target with confidence estimate. Relevant …","","Device information","","The current gain setting.","","General information.","","Send the device into the bootloader. This is useful for …","","","The current operating mode of the device. Manual mode …","","Temperature of the on-board thermistor.","","Acoustic output enabled state.","","The interval between acoustic measurements.","","","Temperature of the device cpu.","","A profile produced from a single acoustic measurement. The …","","The scan range for acoustic measurements. Measurements …","","Set the device ID.","","Set the current gain setting.","","Set automatic or manual mode. Manual mode allows for …","","Enable or disable acoustic measurements.","","The interval between acoustic measurements.","","Set the scan range for acoustic measurements.","","Set the speed of sound used for distance calculations.","","The speed of sound used for distance calculations.","","The duration of the acoustic activation/transmission.","","The 5V rail voltage.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Confidence in the distance measurement.","Confidence in the most recent range measurement.","Confidence in the most recent range measurement.","Command to initiate continuous data stream of profile …","Command to stop the continuous data stream of profile …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The device ID.","Device ID (0-254). 255 is reserved for broadcast messages.","The device ID (0-254). 255 is reserved for broadcast …","Device model. 0: Unknown; 1: Ping1D","Device type. 0: Unknown; 1: Echosounder","The distance to target with confidence estimate. Relevant …","Distance to the target.","The current return distance determined for the most recent …","The current return distance determined for the most recent …","The distance to target with confidence estimate.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Device information","Firmware major version.","Firmware version major number.","Firmware minor version.","Firmware version minor number.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","The current gain setting.","The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, …","The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, …","The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, …","The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, …","The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, …","General information.","","","Send the device into the bootloader. This is useful for …","","","","","","","","","","","","","","","","","","","","","","","","","","","The message id to stop streaming. 1300: profile","The message id to stream. 1300: profile","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","The current operating mode of the device. Manual mode …","The current operating mode of the device. 0: manual mode, …","0: manual mode, 1: auto mode","0: manual mode. 1: auto mode.","","Temperature of the on-board thermistor.","The temperature in centi-degrees Centigrade (100 * degrees …","Acoustic output enabled state.","0: Disable, 1: Enable.","The state of the acoustic output. 0: disabled, 1:enabled","The interval between acoustic measurements.","The interval between acoustic measurements.","The interval between acoustic measurements.","The minimum interval between acoustic measurements. The …","The pulse/measurement count since boot.","The pulse/measurement count since boot.","Temperature of the device cpu.","The temperature in centi-degrees Centigrade (100 * degrees …","A profile produced from a single acoustic measurement. The …","","An array of return strength measurements taken at regular …","The scan range for acoustic measurements. Measurements …","The length of the scan region.","The length of the scan region.","The length of the scan range.","The length of the scan range.","The beginning of the scan region in mm from the transducer.","The beginning of the scan region in mm from the transducer.","Not documented","The beginning of the scan range in mm from the transducer.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Set the device ID.","Set the current gain setting.","Set automatic or manual mode. Manual mode allows for …","Enable or disable acoustic measurements.","The interval between acoustic measurements.","Set the scan range for acoustic measurements.","Set the speed of sound used for distance calculations.","","The speed of sound used for distance calculations.","The speed of sound in the measurement medium. ~1,500,000 …","The speed of sound in the measurement medium. ~1,500,000 …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The duration of the acoustic activation/transmission.","The acoustic pulse length during acoustic …","Acoustic pulse duration.","The acoustic pulse length during acoustic …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","The 5V rail voltage.","Device supply voltage.","The 5V rail voltage.","","Extended version of device_data with auto_transmit …","","Extended transducer message with auto-scan function. The …","","","This message is used to communicate the current sonar …","","Change the device id","","","The sonar switches the current through the stepper motor …","","","Reset the sonar. The bootloader may run depending on the …","","The transducer will apply the commanded settings. The …","Head angle","Head angle","Head angle","Extended version of device_data with auto_transmit …","Extended transducer message with auto-scan function. The …","0 = skip bootloader; 1 = run bootloader","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","8 bit binary data array representing sonar echo strength","8 bit binary data array representing sonar echo strength","","","","","","","","","An additional delay between successive transmit pulses …","An additional delay between successive transmit pulses …","","","","","","","","","","This message is used to communicate the current sonar …","Change the device id","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Analog gain setting (0 = low, 1 = normal, 2 = high)","Analog gain setting (0 = low, 1 = normal, 2 = high)","Analog gain setting (0 = low, 1 = normal, 2 = high)","Analog gain setting (0 = low, 1 = normal, 2 = high)","","","","","","","","","","Device ID (1-254). 0 and 255 are reserved.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","Operating mode (1 for Ping360)","Operating mode (1 for Ping360)","Operating mode (1 for Ping360)","Operating mode (1 for Ping360)","The sonar switches the current through the stepper motor …","","Number of 0.9 degree motor steps between pings for auto …","Number of 0.9 degree motor steps between pings for auto …","Number of samples per reflected signal","Number of samples per reflected signal","Number of samples per reflected signal","Number of samples per reflected signal","reserved","reserved","reserved","Reset the sonar. The bootloader may run depending on the …","Time interval between individual signal intensity samples …","Time interval between individual signal intensity samples …","Time interval between individual signal intensity samples …","Time interval between individual signal intensity samples …","","","","","","","","","","Head angle to begin scan sector for autoscan in gradians …","Head angle to begin scan sector for autoscan in gradians …","Head angle to end scan sector for autoscan in gradians …","Head angle to end scan sector for autoscan in gradians …","","","","","","","","","","The transducer will apply the commanded settings. The …","0 = do not transmit; 1 = transmit after the transducer has …","Acoustic transmission duration (1~1000 microseconds)","Acoustic transmission duration (1~1000 microseconds)","Acoustic transmission duration (1~1000 microseconds)","Acoustic transmission duration (1~1000 microseconds)","Acoustic operating frequency. Frequency range is 500kHz to …","Acoustic operating frequency. Frequency range is 500kHz to …","Acoustic operating frequency. Frequency range is 500kHz to …","Acoustic operating frequency. Frequency range is 500kHz to …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[4,4,0,4,4,0,4,4,0,0,0,0,0,0,4,4,4,4,0,0,0,4,4,4,4,4,17,0,17,0,17,0,17,0,0,17,0,17,0,0,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,17,0,35,35,35,12,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,12,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,12,12,35,35,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,12,35,20,12,12,16,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,16,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,12,12,35,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,12,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,12,12,30,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,17,12,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,24,26,29,31,33,15,17,17,17,12,22,12,12,23,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,12,12,12,12,12,12,12,12,12,27,16,12,20,12,12,18,19,21,25,28,13,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,12,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,12,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,12,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,15,35,13,20,0,46,46,46,46,46,46,46,46,46,46,49,0,49,0,0,49,0,49,0,0,49,0,0,49,0,49,0,50,52,57,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,48,49,50,51,52,53,54,55,56,48,49,50,51,52,53,54,55,56,57,48,50,51,52,53,54,55,56,49,50,51,52,53,54,55,56,48,54,57,53,53,48,49,50,51,52,53,54,55,56,53,53,53,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,57,50,51,52,53,54,55,56,49,57,48,49,50,51,52,53,54,55,56,49,49,49,51,51,57,57,55,53,56,49,50,51,52,53,54,55,56,57,48,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,57,48,49,50,51,52,53,54,55,56,56,56,56,60,60,58,0,0,0,59,59,58,58,0,60,60,60,59,61,58,59,60,61,58,59,60,58,58,59,60,61,58,59,60,61,58,59,60,61,61,61,61,58,59,60,61,58,59,60,61,58,59,60,0,0,0,0,39,39,39,62,62,62,39,39,62,62,39,62,62,39,39,39,62,62,14,14,14,14,0,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,0,0,10,10,10,10,10,10,10,10,69,70,10,10,10,10,10,10,63,10,10,72,10,72,72,10,10,10,10,73,10,10,10,10,10,10,10,10,10,10,10,77,0,77,0,0,77,0,77,77,0,0,77,0,77,0,77,0,77,0,0,77,0,77,0,77,0,77,0,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,77,0,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,79,80,89,104,104,76,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,76,104,99,101,84,84,104,79,80,89,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,82,84,82,84,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,80,82,83,87,89,104,104,104,104,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,86,91,77,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,77,77,77,104,82,97,100,104,104,102,104,85,96,104,78,82,103,80,89,104,94,104,80,80,104,80,89,90,93,80,89,90,93,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,104,104,104,104,104,104,76,104,88,98,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,80,81,89,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,82,95,108,0,108,0,0,108,0,108,0,0,108,0,0,108,0,108,0,106,112,113,105,105,111,105,107,108,109,110,111,106,112,113,114,105,107,108,109,110,111,106,112,113,114,107,108,109,110,111,106,112,113,114,107,108,109,110,111,106,112,113,114,105,106,112,106,112,107,109,110,111,106,112,113,114,110,106,108,109,110,111,106,112,113,114,107,105,105,107,108,109,110,111,106,112,113,114,107,108,109,110,111,106,112,113,114,105,107,108,109,110,111,106,112,113,114,110,106,112,113,105,105,109,110,111,106,112,113,114,114,108,105,107,108,109,110,111,106,112,113,114,108,108,108,110,106,112,113,105,105,110,106,110,106,112,113,111,113,114,105,110,106,112,113,108,109,110,111,106,112,113,114,107,110,106,110,106,107,108,109,110,111,106,112,113,114,105,113,110,106,112,113,110,106,112,113,105,107,108,109,110,111,106,112,113,114,105,107,108,109,110,111,106,112,113,114,105,107,108,109,110,111,106,112,113,114],"f":"``````{ce{}{}}0{{{d{b}}}f}`````{{hj}l}{cc{}}{h{{n{c}}}{}}4```{{{A`{b}}}{{Ab{hc}}}{}}{Ad{{Ab{hc}}}{}}{c{{Ab{e}}}{}{}}0{cAf{}}``````````````````````````````````````````````8888888888888888888888888888888888888888888888{Ah{{Ab{AjAl}}}}{Ah{{Ab{AnAl}}}}``{B`B`}{BbBb}{BdBd}{BfBf}{BhBh}{BjBj}{BlBl}{BnBn}{C`C`}{CbCb}{CdCd}{CfCf}{ChCh}{CjCj}{ClCl}{CnCn}{D`D`}{DbDb}{DdDd}{AnAn}{DfDf}{AjAj}{{ce}Dh{}{}}000000000000000000000```{Ah{{Ab{C`Al}}}}{Ah{{Ab{BfAl}}}}{{}B`}{{}Bd}{{}Bf}{{}Bh}{{}Bj}{{}Bl}{{}Bn}{{}C`}{{}Cb}{{}Cd}{{}Cf}{{}Ch}{{}Cj}{{}Cl}{{}Cn}{{}D`}{{}Db}{{}Dd}{{}An}{{}Df}{{}Aj}{{f{d{b}}}{{Ab{BbDj}}}}{{{d{b}}}Bd}{{{d{b}}}Bf}{{{d{b}}}Bh}{{{d{b}}}Bj}{{{d{b}}}Bl}{{{d{b}}}Bn}{{{d{b}}}C`}{{{d{b}}}Cb}{{{d{b}}}Cd}{{{d{b}}}Cf}{{{d{b}}}Ch}{{{d{b}}}Cj}{{{d{b}}}Cl}{{{d{b}}}Cn}{{{d{b}}}D`}{{{d{b}}}Db}{{{d{b}}}Dd}{{{d{b}}}An}{{{d{b}}}Df}{{{d{b}}}Aj}`{{B`B`}Dl}{{BbBb}Dl}{{BdBd}Dl}{{BfBf}Dl}{{BhBh}Dl}{{BjBj}Dl}{{BlBl}Dl}{{BnBn}Dl}{{C`C`}Dl}{{CbCb}Dl}{{CdCd}Dl}{{CfCf}Dl}{{ChCh}Dl}{{CjCj}Dl}{{ClCl}Dl}{{CnCn}Dl}{{D`D`}Dl}{{DbDb}Dl}{{DdDd}Dl}{{AnAn}Dl}{{DfDf}Dl}{{AjAj}Dl}{Ah{{Ab{DhAl}}}}{Ah{{Ab{BhAl}}}}`{{B`j}l}{{Bbj}l}{{Bdj}l}{{Bfj}l}{{Bhj}l}{{Bjj}l}{{Blj}l}{{Bnj}l}{{C`j}l}{{Cbj}l}{{Cdj}l}{{Cfj}l}{{Chj}l}{{Cjj}l}{{Clj}l}{{Cnj}l}{{D`j}l}{{Dbj}l}{{Ddj}l}{{Anj}l}{{Dfj}l}{{Ajj}l}{cc{}}0000000000000000000000{AhDn}0`{{}f}0000000000000000000{Bb{{n{c}}}{}}{ce{}{}}0000000000000000000000``````{Bbf}{Dj{{Ab{fE`}}}}{BbDj}{cAh{EbEdEfEh}}`{{Ahb}{{Ab{DhAl}}}}{Ah{{Ab{DhAl}}}}`{Bb{{A`{b}}}}{Bd{{A`{b}}}}{Bf{{A`{b}}}}{Bh{{A`{b}}}}{Bj{{A`{b}}}}{Bl{{A`{b}}}}{Bn{{A`{b}}}}{C`{{A`{b}}}}{Cb{{A`{b}}}}{Cd{{A`{b}}}}{Cf{{A`{b}}}}{Ch{{A`{b}}}}{Cj{{A`{b}}}}{Cl{{A`{b}}}}{Cn{{A`{b}}}}{D`{{A`{b}}}}{Db{{A`{b}}}}{Dd{{A`{b}}}}{An{{A`{b}}}}{Df{{A`{b}}}}{Aj{{A`{b}}}}{{Ahf}{{Ab{DhAl}}}}000{{AhEj}{{Ab{DhAl}}}}1011``{Ah{{Ab{DfAl}}}}`{Ah{{Ab{CjAl}}}}{Ah{{Ab{ChAl}}}}``````{ce{}{}}000000000000000000000{c{{Ab{e}}}{}{}}000000000000000000000000000000000000000000000{cAf{}}0000000000000000000000``22{{ElEn}{{Ab{{n{c}}e}}}{}{}}{{ElAdEn}{{Ab{Dhc}}}{}}{cc{}}5{{}El}554```````````````````66666666666666666666{F`F`}{FbFb}{FdFd}{FfFf}{FhFh}{FjFj}{FlFl}{FnFn}{G`G`}{{ce}Dh{}{}}00000000`{{}F`}{{}Fd}{{}Ff}{{}Fh}{{}Fj}{{}Fl}{{}Fn}{{}G`}{{f{d{b}}}{{Ab{FbDj}}}}{{{d{b}}}Fd}{{{d{b}}}Ff}{{{d{b}}}Fh}{{{d{b}}}Fj}{{{d{b}}}Fl}{{{d{b}}}Fn}{{{d{b}}}G`}``{Gb{{Ab{FjAl}}}}``{{F`F`}Dl}{{FbFb}Dl}{{FdFd}Dl}{{FfFf}Dl}{{FhFh}Dl}{{FjFj}Dl}{{FlFl}Dl}{{FnFn}Dl}{{G`G`}Dl}```{{F`j}l}{{Fbj}l}{{Fdj}l}{{Ffj}l}{{Fhj}l}{{Fjj}l}{{Flj}l}{{Fnj}l}{{G`j}l}{cc{}}000000000{GbDn}0{{}f}000000{Fb{{n{c}}}{}}{ce{}{}}000000000{Fbf}{Dj{{Ab{fE`}}}}{FbDj}``{cGb{EbEdEfEh}}{Gb{{Ab{G`Al}}}}```{Fb{{A`{b}}}}{Fd{{A`{b}}}}{Ff{{A`{b}}}}{Fh{{A`{b}}}}{Fj{{A`{b}}}}{Fl{{A`{b}}}}{Fn{{A`{b}}}}{G`{{A`{b}}}}{{Gbb}{{Ab{DhAl}}}}`>>>>>>>>>{c{{Ab{e}}}{}{}}0000000000000000000{cAf{}}000000000``````````````````{ce{}{}}0000000{{GdGd}Dl}{{Gdj}l}{{Gfj}l}{{Ghj}l}{cc{}}0005555{{}Gj}{{Gjb}Gf}`999999998888````772{GlDn}0{Gl{{Ab{G`Al}}}}9{cDn{EbEdEfEh}}{Gl{{Ab{cAl}}}{GnH`HbEh}}{{Glf}{{Ab{DhAl}}}}{{DnAd}{{Ab{DhAl}}}}{{Glb}{{Ab{DhAl}}}}{Gl{{Hd{Ad}}}}{c{{Ab{e}}}{}{}}0{cAf{}}{{Gl{Hd{Ad}}f}{{Ab{DhAl}}}}{{Gl{Hd{Ad}}}{{Ab{cAl}}}{GnH`HbEh}}`````````{ce{}{}}0{{Alj}l}{HfAl}{cc{}}{HhAl}4887```````44{Adf}0`{AdAd}{{ce}Dh{}{}}{{}Ad}{{{d{b}}}Hj}{{f{d{b}}}{{Ab{HlDj}}}}{Adb}`{{AdAd}Dl}{{Adj}l}:{AdDl}{{}f}?{AdHn}{I`f}`{Dj{{Ab{fE`}}}}{I`Dj};{Ad{{d{b}}}}``{Ib{{A`{b}}}}{Ad{{A`{b}}}}{{Adb}Dh}{{Adc}DhI`}1`{ce{}{}}{c{{Ab{e}}}{}{}}0{cAf{}}{AdDh}{{AdId}{{If{Hn}}}}```````````````````````````````````````````````````````4444444444444444444444444444444444444444444444444444444444{IhIh}{IjIj}{IlIl}{InIn}{J`J`}{JbJb}{JdJd}{JfJf}{JhJh}{JjJj}{JlJl}{JnJn}{K`K`}{KbKb}{KdKd}{KfKf}{KhKh}{KjKj}{KlKl}{KnKn}{L`L`}{LbLb}{LdLd}{LfLf}{LhLh}{LjLj}{LlLl}{LnLn}{{ce}Dh{}{}}000000000000000000000000000````{{M`f}{{Ab{DhAl}}}}0{{}Ih}{{}Il}{{}In}{{}J`}{{}Jb}{{}Jd}{{}Jf}{{}Jh}{{}Jj}{{}Jl}{{}Jn}{{}K`}{{}Kb}{{}Kd}{{}Kf}{{}Kh}{{}Kj}{{}Kl}{{}Kn}{{}L`}{{}Lb}{{}Ld}{{}Lf}{{}Lh}{{}Lj}{{}Ll}{{}Ln}{{f{d{b}}}{{Ab{IjDj}}}}{{{d{b}}}Il}{{{d{b}}}In}{{{d{b}}}J`}{{{d{b}}}Jb}{{{d{b}}}Jd}{{{d{b}}}Jf}{{{d{b}}}Jh}{{{d{b}}}Jj}{{{d{b}}}Jl}{{{d{b}}}Jn}{{{d{b}}}K`}{{{d{b}}}Kb}{{{d{b}}}Kd}{{{d{b}}}Kf}{{{d{b}}}Kh}{{{d{b}}}Kj}{{{d{b}}}Kl}{{{d{b}}}Kn}{{{d{b}}}L`}{{{d{b}}}Lb}{{{d{b}}}Ld}{{{d{b}}}Lf}{{{d{b}}}Lh}{{{d{b}}}Lj}{{{d{b}}}Ll}{{{d{b}}}Ln}`{M`{{Ab{LjAl}}}}````{M`{{Ab{KbAl}}}}```{M`{{Ab{InAl}}}}{{IhIh}Dl}{{IjIj}Dl}{{IlIl}Dl}{{InIn}Dl}{{J`J`}Dl}{{JbJb}Dl}{{JdJd}Dl}{{JfJf}Dl}{{JhJh}Dl}{{JjJj}Dl}{{JlJl}Dl}{{JnJn}Dl}{{K`K`}Dl}{{KbKb}Dl}{{KdKd}Dl}{{KfKf}Dl}{{KhKh}Dl}{{KjKj}Dl}{{KlKl}Dl}{{KnKn}Dl}{{L`L`}Dl}{{LbLb}Dl}{{LdLd}Dl}{{LfLf}Dl}{{LhLh}Dl}{{LjLj}Dl}{{LlLl}Dl}{{LnLn}Dl}{M`{{Ab{JhAl}}}}````{{Ihj}l}{{Ijj}l}{{Ilj}l}{{Inj}l}{{J`j}l}{{Jbj}l}{{Jdj}l}{{Jfj}l}{{Jhj}l}{{Jjj}l}{{Jlj}l}{{Jnj}l}{{K`j}l}{{Kbj}l}{{Kdj}l}{{Kfj}l}{{Khj}l}{{Kjj}l}{{Klj}l}{{Knj}l}{{L`j}l}{{Lbj}l}{{Ldj}l}{{Lfj}l}{{Lhj}l}{{Ljj}l}{{Llj}l}{{Lnj}l}{cc{}}0000000000000000000000000000{M`{{Ab{JfAl}}}}`````{M`{{Ab{JdAl}}}}{M`Dn}0{M`{{Ab{DhAl}}}}{{}f}0000000000000000000000000``{Ij{{n{c}}}{}}{ce{}{}}0000000000000000000000000000{Ijf}{Dj{{Ab{fE`}}}}{IjDj}{M`{{Ab{LbAl}}}}```{cM`{EbEdEfEh}}{M`{{Ab{LlAl}}}}`{M`{{Ab{L`Al}}}}``{M`{{Ab{LnAl}}}}`````{M`{{Ab{KlAl}}}}`{M`{{Ab{J`Al}}}}``{M`{{Ab{KjAl}}}}````````{Ij{{A`{b}}}}{Il{{A`{b}}}}{In{{A`{b}}}}{J`{{A`{b}}}}{Jb{{A`{b}}}}{Jd{{A`{b}}}}{Jf{{A`{b}}}}{Jh{{A`{b}}}}{Jj{{A`{b}}}}{Jl{{A`{b}}}}{Jn{{A`{b}}}}{K`{{A`{b}}}}{Kb{{A`{b}}}}{Kd{{A`{b}}}}{Kf{{A`{b}}}}{Kh{{A`{b}}}}{Kj{{A`{b}}}}{Kl{{A`{b}}}}{Kn{{A`{b}}}}{L`{{A`{b}}}}{Lb{{A`{b}}}}{Ld{{A`{b}}}}{Lf{{A`{b}}}}{Lh{{A`{b}}}}{Lj{{A`{b}}}}{Ll{{A`{b}}}}{Ln{{A`{b}}}}{{M`b}{{Ab{DhAl}}}}000{{M`f}{{Ab{DhAl}}}}{{M`EjEj}{{Ab{DhAl}}}}{{M`Ej}{{Ab{DhAl}}}}`{M`{{Ab{LdAl}}}}``{ce{}{}}000000000000000000000000000{M`{{Ab{JbAl}}}}```{c{{Ab{e}}}{}{}}000000000000000000000000000000000000000000000000000000000{cAf{}}0000000000000000000000000000{M`{{Ab{KnAl}}}}``````````````````````{Mb{{Ab{MdAl}}}}{{Mbbbffffffbb}{{Ab{DhAl}}}}`66666666666666666666{MfMf}{MhMh}{MjMj}{MlMl}{MnMn}{MdMd}{N`N`}{NbNb}{NdNd}{{ce}Dh{}{}}00000000`````{{}Mf}{{}Mj}{{}Ml}{{}Mn}{{}Md}{{}N`}{{}Nb}{{}Nd}``{{f{d{b}}}{{Ab{MhDj}}}}{{{d{b}}}Mj}{{{d{b}}}Ml}{{{d{b}}}Mn}{{{d{b}}}Md}{{{d{b}}}N`}{{{d{b}}}Nb}{{{d{b}}}Nd}`{Mb{{Ab{N`Al}}}}{{Mbbb}{{Ab{DhAl}}}}{{MfMf}Dl}{{MhMh}Dl}{{MjMj}Dl}{{MlMl}Dl}{{MnMn}Dl}{{MdMd}Dl}{{N`N`}Dl}{{NbNb}Dl}{{NdNd}Dl}{{Mfj}l}{{Mhj}l}{{Mjj}l}{{Mlj}l}{{Mnj}l}{{Mdj}l}{{N`j}l}{{Nbj}l}{{Ndj}l}{cc{}}000000000````{MbDn}0{{}f}000000`{Mh{{n{c}}}{}}{ce{}{}}000000000{Mhf}{Dj{{Ab{fE`}}}}{MhDj}````{Mb{{Ab{DhAl}}}}{cMb{EbEdEfEh}}`````````{{Mbbb}{{Ab{DhAl}}}}````{Mh{{A`{b}}}}{Mj{{A`{b}}}}{Ml{{A`{b}}}}{Mn{{A`{b}}}}{Md{{A`{b}}}}{N`{{A`{b}}}}{Nb{{A`{b}}}}{Nd{{A`{b}}}}`````>>>>>>>>>{{Mbbbfffffbb}{{Ab{DhAl}}}}`````````{c{{Ab{e}}}{}{}}0000000000000000000{cAf{}}000000000","c":[],"p":[[1,"u8"],[1,"slice"],[1,"u16"],[6,"Messages",0],[5,"Formatter",1635],[8,"Result",1635],[6,"Option",1636],[5,"Vec",1637],[6,"Result",1638],[5,"ProtocolMessage",773],[5,"TypeId",1639],[5,"Device",26],[5,"CellTimeoutStruct",26],[6,"PingError",754],[5,"CellVoltageMinStruct",26],[5,"PingProtocolHead",26],[6,"Messages",26],[5,"SetTemperatureTimeoutStruct",26],[5,"CurrentTimeoutStruct",26],[5,"EventsStruct",26],[5,"SetCurrentTimeoutStruct",26],[5,"SetStreamRateStruct",26],[5,"SetLpfSampleFrequencyStruct",26],[5,"CurrentMaxStruct",26],[5,"SetCellVoltageTimeoutStruct",26],[5,"SetTemperatureMaxStruct",26],[5,"SetLpfSettingStruct",26],[5,"TemperatureTimeoutStruct",26],[5,"TemperatureMaxStruct",26],[5,"RebootStruct",26],[5,"SetCellVoltageMinimumStruct",26],[5,"EraseFlashStruct",26],[5,"SetCurrentMaxStruct",26],[5,"ResetDefaultsStruct",26],[5,"StateStruct",26],[1,"unit"],[1,"str"],[1,"bool"],[5,"Common",732],[5,"String",1640],[10,"AsyncRead",1641],[10,"AsyncWrite",1642],[10,"Unpin",1643],[10,"Send",1643],[1,"u32"],[5,"PingCodec",479],[5,"BytesMut",1644],[5,"PingProtocolHead",490],[6,"Messages",490],[5,"AckStruct",490],[5,"NackStruct",490],[5,"AsciiTextStruct",490],[5,"DeviceInformationStruct",490],[5,"SetDeviceIdStruct",490],[5,"GeneralRequestStruct",490],[5,"ProtocolVersionStruct",490],[5,"Device",490],[6,"ParseError",682],[6,"DecoderResult",682],[6,"DecoderState",682],[5,"Decoder",682],[10,"PingDevice",732],[10,"MessageInfo",773],[10,"Sync",1643],[10,"Clone",1645],[5,"Receiver",1646],[5,"Error",1647],[5,"Error",1648],[10,"DeserializePayload",773],[10,"DeserializeGenericMessage",773],[1,"usize"],[10,"PingMessage",773],[10,"SerializePayload",773],[10,"Write",1649],[8,"Result",1647],[5,"PingProtocolHead",819],[6,"Messages",819],[5,"SetPingIntervalStruct",819],[5,"DistanceSimpleStruct",819],[5,"ProfileStruct",819],[5,"TransmitDurationStruct",819],[5,"GeneralInfoStruct",819],[5,"GainSettingStruct",819],[5,"FirmwareVersionStruct",819],[5,"SetPingEnableStruct",819],[5,"ContinuousStopStruct",819],[5,"SetGainSettingStruct",819],[5,"SetSpeedOfSoundStruct",819],[5,"DistanceStruct",819],[5,"SetRangeStruct",819],[5,"ContinuousStartStruct",819],[5,"GotoBootloaderStruct",819],[5,"RangeStruct",819],[5,"ProcessorTemperatureStruct",819],[5,"Voltage5Struct",819],[5,"PingEnableStruct",819],[5,"ModeAutoStruct",819],[5,"SpeedOfSoundStruct",819],[5,"SetDeviceIdStruct",819],[5,"SetModeAutoStruct",819],[5,"DeviceIdStruct",819],[5,"PcbTemperatureStruct",819],[5,"PingIntervalStruct",819],[5,"Device",819],[5,"Device",1410],[5,"AutoDeviceDataStruct",1410],[5,"PingProtocolHead",1410],[6,"Messages",1410],[5,"MotorOffStruct",1410],[5,"AutoTransmitStruct",1410],[5,"ResetStruct",1410],[5,"DeviceDataStruct",1410],[5,"TransducerStruct",1410],[5,"DeviceIdStruct",1410]],"b":[[21,"impl-TryFrom%3C%26Vec%3Cu8%3E%3E-for-Messages"],[22,"impl-TryFrom%3C%26ProtocolMessage%3E-for-Messages"],[766,"impl-From%3CError%3E-for-PingError"],[768,"impl-From%3CError%3E-for-PingError"]]}],\ ["bytes",{"doc":"Provides abstractions for working with bytes.","t":"EEFFNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKKFFFFFFFMNNMNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Buf","BufMut","Bytes","BytesMut","advance","advance","advance_mut","as_mut","as_ref","as_ref","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","buf","capacity","chunk","chunk","chunk_mut","clear","clear","clone","clone","clone_into","clone_into","cmp","cmp","copy_from_slice","copy_to_bytes","copy_to_bytes","default","default","deref","deref","deref_mut","drop","drop","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","extend","extend","extend","extend_from_slice","fmt","fmt","fmt","fmt","fmt","fmt","freeze","from","from","from","from","from","from","from","from","from","from","from_iter","from_iter","from_iter","from_static","hash","hash","into","into","into_iter","into_iter","into_iter","into_iter","is_empty","is_empty","is_unique","len","len","new","new","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","put","put_bytes","put_slice","remaining","remaining","remaining_mut","reserve","resize","set_len","slice","slice_ref","spare_capacity_mut","split","split_off","split_off","split_to","split_to","to_owned","to_owned","truncate","truncate","try_from","try_from","try_into","try_into","type_id","type_id","unsplit","with_capacity","write_fmt","write_str","zeroed","Buf","BufMut","Chain","IntoIter","Limit","Reader","Take","UninitSlice","Writer","advance","advance","advance","advance_mut","advance_mut","advance_mut","as_mut_ptr","as_uninit_slice_mut","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chain","chain","chain_mut","chain_mut","chunk","chunk","chunk","chunk_mut","chunk_mut","chunk_mut","chunks_vectored","chunks_vectored","chunks_vectored","consume","copy_from_slice","copy_to_bytes","copy_to_bytes","copy_to_bytes","copy_to_bytes","copy_to_slice","copy_to_slice","fill_buf","first_mut","first_ref","flush","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from_raw_parts_mut","get_f32","get_f32","get_f32_le","get_f32_le","get_f32_ne","get_f32_ne","get_f64","get_f64","get_f64_le","get_f64_le","get_f64_ne","get_f64_ne","get_i128","get_i128","get_i128_le","get_i128_le","get_i128_ne","get_i128_ne","get_i16","get_i16","get_i16_le","get_i16_le","get_i16_ne","get_i16_ne","get_i32","get_i32","get_i32_le","get_i32_le","get_i32_ne","get_i32_ne","get_i64","get_i64","get_i64_le","get_i64_le","get_i64_ne","get_i64_ne","get_i8","get_i8","get_int","get_int","get_int_le","get_int_le","get_int_ne","get_int_ne","get_mut","get_mut","get_mut","get_mut","get_mut","get_ref","get_ref","get_ref","get_ref","get_ref","get_u128","get_u128","get_u128_le","get_u128_le","get_u128_ne","get_u128_ne","get_u16","get_u16","get_u16_le","get_u16_le","get_u16_ne","get_u16_ne","get_u32","get_u32","get_u32_le","get_u32_le","get_u32_ne","get_u32_ne","get_u64","get_u64","get_u64_le","get_u64_le","get_u64_ne","get_u64_ne","get_u8","get_u8","get_uint","get_uint","get_uint_le","get_uint_le","get_uint_ne","get_uint_ne","has_remaining","has_remaining","has_remaining_mut","has_remaining_mut","index","index","index","index","index","index","index_mut","index_mut","index_mut","index_mut","index_mut","index_mut","into","into","into","into","into","into","into_inner","into_inner","into_inner","into_inner","into_inner","into_inner","into_iter","into_iter","last_mut","last_ref","len","limit","limit","limit","limit","new","new","next","put","put","put_bytes","put_bytes","put_f32","put_f32","put_f32_le","put_f32_le","put_f32_ne","put_f32_ne","put_f64","put_f64","put_f64_le","put_f64_le","put_f64_ne","put_f64_ne","put_i128","put_i128","put_i128_le","put_i128_le","put_i128_ne","put_i128_ne","put_i16","put_i16","put_i16_le","put_i16_le","put_i16_ne","put_i16_ne","put_i32","put_i32","put_i32_le","put_i32_le","put_i32_ne","put_i32_ne","put_i64","put_i64","put_i64_le","put_i64_le","put_i64_ne","put_i64_ne","put_i8","put_i8","put_int","put_int","put_int_le","put_int_le","put_int_ne","put_int_ne","put_slice","put_slice","put_u128","put_u128","put_u128_le","put_u128_le","put_u128_ne","put_u128_ne","put_u16","put_u16","put_u16_le","put_u16_le","put_u16_ne","put_u16_ne","put_u32","put_u32","put_u32_le","put_u32_le","put_u32_ne","put_u32_ne","put_u64","put_u64","put_u64_le","put_u64_le","put_u64_ne","put_u64_ne","put_u8","put_u8","put_uint","put_uint","put_uint_le","put_uint_le","put_uint_ne","put_uint_ne","read","reader","reader","remaining","remaining","remaining","remaining_mut","remaining_mut","remaining_mut","set_limit","set_limit","size_hint","take","take","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","uninit","write","write_byte","writer","writer"],"q":[[0,"bytes"],[138,"bytes::buf"],[456,"core::cmp"],[457,"core::marker"],[458,"alloc::string"],[459,"alloc::vec"],[460,"core::iter::traits::collect"],[461,"core::fmt"],[462,"core::fmt"],[463,"core::hash"],[464,"core::option"],[465,"core::ops::range"],[466,"core::mem::maybe_uninit"],[467,"core::result"],[468,"core::any"],[469,"core::fmt"],[470,"std::io::error"],[471,"core::fmt"]],"d":["","","A cheaply cloneable and sliceable chunk of contiguous …","A unique reference to a contiguous slice of memory.","","","","","","","","","","","","","","Utilities for working with buffers.","Returns the number of bytes the BytesMut can hold without …","","","","Clears the buffer, removing all data.","Clears the buffer, removing all data. Existing capacity is …","","","","","","","Creates Bytes instance from slice, by copying it.","","","","","","","","","","","","","","","","","","","","","","","","","","","Appends given bytes to this BytesMut.","","","","","","","Converts self into an immutable Bytes.","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","Creates a new Bytes from a static slice.","","","Calls U::from(self).","Calls U::from(self).","","","","","Returns true if the Bytes has a length of 0.","Returns true if the BytesMut has a length of 0.","Returns true if this is the only reference to the data.","Returns the number of bytes contained in this Bytes.","Returns the number of bytes contained in this BytesMut.","Creates a new empty Bytes.","Creates a new BytesMut with default capacity.","","","","","","","","","","","","","","","","","","","Reserves capacity for at least additional more bytes to be …","Resizes the buffer so that len is equal to new_len.","Sets the length of the buffer.","Returns a slice of self for the provided range.","Returns a slice of self that is equivalent to the given …","Returns the remaining spare capacity of the buffer as a …","Removes the bytes from the current view, returning them in …","Splits the bytes into two at the given index.","Splits the bytes into two at the given index.","Splits the bytes into two at the given index.","Splits the buffer into two at the given index.","","","Shortens the buffer, keeping the first len bytes and …","Shortens the buffer, keeping the first len bytes and …","","","","","","","Absorbs a BytesMut that was previously split off.","Creates a new BytesMut with the specified capacity.","","","Creates a new BytesMut, which is initialized with zero.","Read bytes from a buffer.","A trait for values that provide sequential write access to …","A Chain sequences two buffers.","Iterator over the bytes contained by the buffer.","A BufMut adapter which limits the amount of bytes that can …","A Buf adapter which implements io::Read for the inner …","A Buf adapter which limits the bytes read from an …","Uninitialized byte slice.","A BufMut adapter which implements io::Write for the inner …","Advance the internal cursor of the Buf","","","Advance the internal cursor of the BufMut","","","Return a raw pointer to the slice’s buffer.","Return a &mut [MaybeUninit<u8>] to this slice’s buffer.","","","","","","","","","","","","","","","Creates an adaptor which will chain this buffer with …","Creates an adaptor which will chain this buffer with …","Creates an adapter which will chain this buffer with …","Creates an adapter which will chain this buffer with …","Returns a slice starting at the current position and of …","","","Returns a mutable slice starting at the current BufMut …","","","Fills dst with potentially multiple slices starting at self…","Fills dst with potentially multiple slices starting at self…","","","Copies bytes from src into self.","Consumes len bytes inside self and returns new instance of …","Consumes len bytes inside self and returns new instance of …","","","Copies bytes from self into dst.","Copies bytes from self into dst.","","Gets a mutable reference to the first underlying Buf.","Gets a reference to the first underlying Buf.","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Create a &mut UninitSlice from a pointer and a length.","Gets an IEEE754 single-precision (4 bytes) floating point …","Gets an IEEE754 single-precision (4 bytes) floating point …","Gets an IEEE754 single-precision (4 bytes) floating point …","Gets an IEEE754 single-precision (4 bytes) floating point …","Gets an IEEE754 single-precision (4 bytes) floating point …","Gets an IEEE754 single-precision (4 bytes) floating point …","Gets an IEEE754 double-precision (8 bytes) floating point …","Gets an IEEE754 double-precision (8 bytes) floating point …","Gets an IEEE754 double-precision (8 bytes) floating point …","Gets an IEEE754 double-precision (8 bytes) floating point …","Gets an IEEE754 double-precision (8 bytes) floating point …","Gets an IEEE754 double-precision (8 bytes) floating point …","Gets a signed 128 bit integer from self in big-endian byte …","Gets a signed 128 bit integer from self in big-endian byte …","Gets a signed 128 bit integer from self in little-endian …","Gets a signed 128 bit integer from self in little-endian …","Gets a signed 128 bit integer from self in native-endian …","Gets a signed 128 bit integer from self in native-endian …","Gets a signed 16 bit integer from self in big-endian byte …","Gets a signed 16 bit integer from self in big-endian byte …","Gets a signed 16 bit integer from self in little-endian …","Gets a signed 16 bit integer from self in little-endian …","Gets a signed 16 bit integer from self in native-endian …","Gets a signed 16 bit integer from self in native-endian …","Gets a signed 32 bit integer from self in big-endian byte …","Gets a signed 32 bit integer from self in big-endian byte …","Gets a signed 32 bit integer from self in little-endian …","Gets a signed 32 bit integer from self in little-endian …","Gets a signed 32 bit integer from self in native-endian …","Gets a signed 32 bit integer from self in native-endian …","Gets a signed 64 bit integer from self in big-endian byte …","Gets a signed 64 bit integer from self in big-endian byte …","Gets a signed 64 bit integer from self in little-endian …","Gets a signed 64 bit integer from self in little-endian …","Gets a signed 64 bit integer from self in native-endian …","Gets a signed 64 bit integer from self in native-endian …","Gets a signed 8 bit integer from self.","Gets a signed 8 bit integer from self.","Gets a signed n-byte integer from self in big-endian byte …","Gets a signed n-byte integer from self in big-endian byte …","Gets a signed n-byte integer from self in little-endian …","Gets a signed n-byte integer from self in little-endian …","Gets a signed n-byte integer from self in native-endian …","Gets a signed n-byte integer from self in native-endian …","Gets a mutable reference to the underlying Buf.","Gets a mutable reference to the underlying BufMut.","Gets a mutable reference to the underlying Buf.","Gets a mutable reference to the underlying Buf.","Gets a mutable reference to the underlying BufMut.","Gets a reference to the underlying Buf.","Gets a reference to the underlying BufMut.","Gets a reference to the underlying Buf.","Gets a reference to the underlying Buf.","Gets a reference to the underlying BufMut.","Gets an unsigned 128 bit integer from self in big-endian …","Gets an unsigned 128 bit integer from self in big-endian …","Gets an unsigned 128 bit integer from self in …","Gets an unsigned 128 bit integer from self in …","Gets an unsigned 128 bit integer from self in …","Gets an unsigned 128 bit integer from self in …","Gets an unsigned 16 bit integer from self in big-endian …","Gets an unsigned 16 bit integer from self in big-endian …","Gets an unsigned 16 bit integer from self in little-endian …","Gets an unsigned 16 bit integer from self in little-endian …","Gets an unsigned 16 bit integer from self in native-endian …","Gets an unsigned 16 bit integer from self in native-endian …","Gets an unsigned 32 bit integer from self in the …","Gets an unsigned 32 bit integer from self in the …","Gets an unsigned 32 bit integer from self in the …","Gets an unsigned 32 bit integer from self in the …","Gets an unsigned 32 bit integer from self in native-endian …","Gets an unsigned 32 bit integer from self in native-endian …","Gets an unsigned 64 bit integer from self in big-endian …","Gets an unsigned 64 bit integer from self in big-endian …","Gets an unsigned 64 bit integer from self in little-endian …","Gets an unsigned 64 bit integer from self in little-endian …","Gets an unsigned 64 bit integer from self in native-endian …","Gets an unsigned 64 bit integer from self in native-endian …","Gets an unsigned 8 bit integer from self.","Gets an unsigned 8 bit integer from self.","Gets an unsigned n-byte integer from self in big-endian …","Gets an unsigned n-byte integer from self in big-endian …","Gets an unsigned n-byte integer from self in little-endian …","Gets an unsigned n-byte integer from self in little-endian …","Gets an unsigned n-byte integer from self in native-endian …","Gets an unsigned n-byte integer from self in native-endian …","Returns true if there are any more bytes to consume","Returns true if there are any more bytes to consume","Returns true if there is space in self for more bytes.","Returns true if there is space in self for more bytes.","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Consumes this Chain, returning the underlying values.","Consumes this IntoIter, returning the underlying value.","Consumes this Limit, returning the underlying value.","Consumes this Reader, returning the underlying value.","Consumes this Take, returning the underlying value.","Consumes this Writer, returning the underlying value.","","","Gets a mutable reference to the last underlying Buf.","Gets a reference to the last underlying Buf.","Returns the number of bytes in the slice.","Creates an adaptor which can write at most limit bytes to …","Creates an adaptor which can write at most limit bytes to …","Returns the maximum number of bytes that can be written","Returns the maximum number of bytes that can be read.","Creates a &mut UninitSlice wrapping a slice of initialised …","Creates an iterator over the bytes contained by the buffer.","","Transfer bytes into self from src and advance the cursor …","Transfer bytes into self from src and advance the cursor …","Put cnt bytes val into self.","Put cnt bytes val into self.","Writes an IEEE754 single-precision (4 bytes) floating …","Writes an IEEE754 single-precision (4 bytes) floating …","Writes an IEEE754 single-precision (4 bytes) floating …","Writes an IEEE754 single-precision (4 bytes) floating …","Writes an IEEE754 single-precision (4 bytes) floating …","Writes an IEEE754 single-precision (4 bytes) floating …","Writes an IEEE754 double-precision (8 bytes) floating …","Writes an IEEE754 double-precision (8 bytes) floating …","Writes an IEEE754 double-precision (8 bytes) floating …","Writes an IEEE754 double-precision (8 bytes) floating …","Writes an IEEE754 double-precision (8 bytes) floating …","Writes an IEEE754 double-precision (8 bytes) floating …","Writes a signed 128 bit integer to self in the big-endian …","Writes a signed 128 bit integer to self in the big-endian …","Writes a signed 128 bit integer to self in little-endian …","Writes a signed 128 bit integer to self in little-endian …","Writes a signed 128 bit integer to self in native-endian …","Writes a signed 128 bit integer to self in native-endian …","Writes a signed 16 bit integer to self in big-endian byte …","Writes a signed 16 bit integer to self in big-endian byte …","Writes a signed 16 bit integer to self in little-endian …","Writes a signed 16 bit integer to self in little-endian …","Writes a signed 16 bit integer to self in native-endian …","Writes a signed 16 bit integer to self in native-endian …","Writes a signed 32 bit integer to self in big-endian byte …","Writes a signed 32 bit integer to self in big-endian byte …","Writes a signed 32 bit integer to self in little-endian …","Writes a signed 32 bit integer to self in little-endian …","Writes a signed 32 bit integer to self in native-endian …","Writes a signed 32 bit integer to self in native-endian …","Writes a signed 64 bit integer to self in the big-endian …","Writes a signed 64 bit integer to self in the big-endian …","Writes a signed 64 bit integer to self in little-endian …","Writes a signed 64 bit integer to self in little-endian …","Writes a signed 64 bit integer to self in native-endian …","Writes a signed 64 bit integer to self in native-endian …","Writes a signed 8 bit integer to self.","Writes a signed 8 bit integer to self.","Writes low nbytes of a signed integer to self in …","Writes low nbytes of a signed integer to self in …","Writes low nbytes of a signed integer to self in …","Writes low nbytes of a signed integer to self in …","Writes low nbytes of a signed integer to self in …","Writes low nbytes of a signed integer to self in …","Transfer bytes into self from src and advance the cursor …","Transfer bytes into self from src and advance the cursor …","Writes an unsigned 128 bit integer to self in the …","Writes an unsigned 128 bit integer to self in the …","Writes an unsigned 128 bit integer to self in …","Writes an unsigned 128 bit integer to self in …","Writes an unsigned 128 bit integer to self in …","Writes an unsigned 128 bit integer to self in …","Writes an unsigned 16 bit integer to self in big-endian …","Writes an unsigned 16 bit integer to self in big-endian …","Writes an unsigned 16 bit integer to self in little-endian …","Writes an unsigned 16 bit integer to self in little-endian …","Writes an unsigned 16 bit integer to self in native-endian …","Writes an unsigned 16 bit integer to self in native-endian …","Writes an unsigned 32 bit integer to self in big-endian …","Writes an unsigned 32 bit integer to self in big-endian …","Writes an unsigned 32 bit integer to self in little-endian …","Writes an unsigned 32 bit integer to self in little-endian …","Writes an unsigned 32 bit integer to self in native-endian …","Writes an unsigned 32 bit integer to self in native-endian …","Writes an unsigned 64 bit integer to self in the …","Writes an unsigned 64 bit integer to self in the …","Writes an unsigned 64 bit integer to self in little-endian …","Writes an unsigned 64 bit integer to self in little-endian …","Writes an unsigned 64 bit integer to self in native-endian …","Writes an unsigned 64 bit integer to self in native-endian …","Writes an unsigned 8 bit integer to self.","Writes an unsigned 8 bit integer to self.","Writes an unsigned n-byte integer to self in big-endian …","Writes an unsigned n-byte integer to self in big-endian …","Writes an unsigned n-byte integer to self in the …","Writes an unsigned n-byte integer to self in the …","Writes an unsigned n-byte integer to self in the …","Writes an unsigned n-byte integer to self in the …","","Creates an adaptor which implements the Read trait for self…","Creates an adaptor which implements the Read trait for self…","Returns the number of bytes between the current position …","","","Returns the number of bytes that can be written from the …","","","Sets the maximum number of bytes that can be written.","Sets the maximum number of bytes that can be read.","","Creates an adaptor which will read at most limit bytes …","Creates an adaptor which will read at most limit bytes …","","","","","","","","","","","","","","","","","","","","Creates a &mut UninitSlice wrapping a slice of …","","Write a single byte at the specified offset.","Creates an adaptor which implements the Write trait for …","Creates an adaptor which implements the Write trait for …"],"i":[0,0,0,0,1,4,4,4,1,4,1,1,4,4,1,4,4,0,4,1,4,4,1,4,1,4,1,4,1,4,1,1,4,1,4,1,4,4,1,4,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,1,1,1,4,4,4,4,1,1,1,1,1,1,1,4,4,4,1,4,4,1,1,4,1,4,1,1,4,4,1,4,1,1,4,1,4,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,1,4,4,4,4,4,1,1,4,4,1,4,1,4,1,4,1,4,1,4,1,4,1,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,21,27,28,29,27,30,7,7,7,27,36,30,32,28,34,7,27,36,30,32,28,34,21,21,29,29,21,27,28,29,27,30,21,21,27,32,7,21,21,27,28,21,21,32,27,27,34,7,27,36,30,32,28,34,7,7,27,36,30,32,28,34,7,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,36,30,32,28,34,36,30,32,28,34,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,29,29,7,7,7,7,7,7,7,7,7,7,7,7,27,36,30,32,28,34,27,36,30,32,28,34,27,36,27,27,7,29,29,30,28,7,36,36,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,32,21,21,21,27,28,29,27,30,30,28,36,21,21,27,36,30,32,28,34,27,36,30,32,28,34,7,27,36,30,32,28,34,7,34,7,29,29],"f":"````{{bd}f}{{hd}f}0{h{{l{j}}}}{b{{l{j}}}}10{ce{}{}}20020`{hd}23{hn}{bf}{hf}{bb}{hh}{{ce}f{}{}}0{{bb}A`}{{hh}A`}{{{l{j}}}b}{{bd}b}{{hd}b}{{}b}{{}h}?{h{{l{j}}}}0<;{{bc}AbAd}{{bAf}Ab}{{b{Ah{j}}}Ab}{{bb}Ab}{{bAj}Ab}{{b{l{j}}}Ab}{{bh}Ab}{{hAf}Ab}{{hAj}Ab}{{hc}AbAd}{{hh}Ab}{{h{Ah{j}}}Ab}{{h{l{j}}}Ab}{{hb}Ab}{{hc}f{{An{}{{Al{j}}}}}}0{{hc}f{{An{}{{Al{b}}}}}}{{h{l{j}}}f}{{bB`}Bb}00{{hB`}Bb}00{hb}{{{Bd{{l{j}}}}}b}{{{Ah{j}}}b}{Ajb}{{{l{j}}}b}4{Afb}{cc{}}0{Ajh}{{{l{j}}}h}{cb{{An{}{{Al{j}}}}}}{ch{{An{}{{Al{j}}}}}}06{{bc}fBf}{{hc}fBf}{ce{}{}}0{bc{}}0{hc{}}0{bAb}{hAb}1{bd}{hd}{{}b}{{}h}{{bAf}{{Bh{A`}}}}{{b{l{j}}}{{Bh{A`}}}}{{bAj}{{Bh{A`}}}}{{bc}{{Bh{A`}}}Ad}{{bb}{{Bh{A`}}}}{{b{Ah{j}}}{{Bh{A`}}}}{{hAj}{{Bh{A`}}}}{{hh}{{Bh{A`}}}}{{hAf}{{Bh{A`}}}}{{hc}{{Bh{A`}}}Ad}{{h{l{j}}}{{Bh{A`}}}}{{h{Ah{j}}}{{Bh{A`}}}}{{hc}fBj}{{hjd}f}{{h{l{j}}}f}{bd}{hd}0{{hd}f}{{hdj}f}1{{bc}b{{Bl{d}}}}{{b{l{j}}}b}{h{{l{{Bn{j}}}}}}{hh}{{bd}b}{{hd}h}10{ce{}{}}0{{bd}f}9{c{{C`{e}}}{}{}}000{cCb{}}0{{hh}f}{dh}{{hCd}Bb}{{hAj}Bb}2`````````{{Bjd}f}{{{Cf{ce}}d}fBjBj}{{{Ch{c}}d}fBj}{{Cjd}f}{{{Cf{ce}}d}fCjCj}{{{Cl{c}}d}fCj}{nj}{n{{l{{Bn{j}}}}}}??????????????{{Bjc}{{Cf{Bjc}}}Bj}0{{Cjc}{{Cf{Cjc}}}Cj}0{Bj{{l{j}}}}{{{Cf{ce}}}{{l{j}}}BjBj}{{{Ch{c}}}{{l{j}}}Bj}{Cjn}{{{Cf{ce}}}nCjCj}{{{Cl{c}}}nCj}{{Bj{l{Cn}}}d}0{{{Cf{ce}}{l{Cn}}}dBjBj}{{{D`{c}}d}f{BjAd}}{{n{l{j}}}f}{{Bjd}b}0{{{Cf{ce}}d}bBjBj}{{{Ch{c}}d}bBj}{{Bj{l{j}}}f}0{{{D`{c}}}{{Db{{l{j}}}}}{BjAd}}{{{Cf{ce}}}c{}{}}0{{{Dd{c}}}{{Db{f}}}{CjAd}}{{nB`}Bb}{{{Cf{ce}}B`}BbDfDf}{{{Dh{c}}B`}BbDf}{{{Cl{c}}B`}BbDf}{{{D`{c}}B`}BbDf}{{{Ch{c}}B`}BbDf}{{{Dd{c}}B`}BbDf}{{{l{j}}}n}{{{l{{Bn{j}}}}}n}{cc{}}00000{{jd}n}{BjDj}00000{BjDl}00000{BjDn}00000{BjE`}00000{BjEb}00000{BjEd}00000{BjEf}0{{Bjd}Ed}00000{{{Dh{c}}}c{}}{{{Cl{c}}}c{}}{{{D`{c}}}cBj}{{{Ch{c}}}c{}}{{{Dd{c}}}cCj}43210{BjEh}00000{BjEj}00000{BjEl}00000{BjEn}00000{Bjj}0{{Bjd}En}00000{BjAb}0{CjAb}0{{nF`}n}{{n{Fb{d}}}n}{{n{Fd{d}}}n}{{n{Ff{d}}}n}{{n{Fh{d}}}n}{{n{Fj{d}}}n}324051{ce{}{}}00000{{{Cf{ce}}}{{Fl{ce}}}{}{}}{{{Dh{c}}}c{}}{{{Cl{c}}}c{}}{{{D`{c}}}cBj}{{{Ch{c}}}c{}}{{{Dd{c}}}cCj}{{{Cf{ce}}}gBjBj{}}7{{{Cf{ce}}}e{}{}}0{nd}{{Cjd}{{Cl{Cj}}}}0{{{Cl{c}}}d{}}{{{Ch{c}}}d{}}{{{l{j}}}n}{c{{Dh{c}}}{}}{{{Dh{c}}}{{Bh{j}}}Bj}{{Cjc}fBj}0{{Cjjd}f}0{{CjDj}f}00000{{CjDl}f}00000{{CjDn}f}00000{{CjE`}f}00000{{CjEb}f}00000{{CjEd}f}00000{{CjEf}f}0{{CjEdd}f}00000{{Cj{l{j}}}f}0{{CjEh}f}00000{{CjEj}f}00000{{CjEl}f}00000{{CjEn}f}00000{{Cjj}f}0{{CjEnd}f}00000{{{D`{c}}{l{j}}}{{Db{d}}}{BjAd}}{Bj{{D`{Bj}}}}0{Bjd}{{{Cf{ce}}}dBjBj}{{{Ch{c}}}dBj}{Cjd}{{{Cf{ce}}}dCjCj}{{{Cl{c}}}dCj}{{{Cl{c}}d}f{}}{{{Ch{c}}d}f{}}{{{Dh{c}}}{{Fl{d{Bh{d}}}}}Bj}{{Bjd}{{Ch{Bj}}}}0{c{{C`{e}}}{}{}}00000000000{cCb{}}000000{{{l{{Bn{j}}}}}n}{{{Dd{c}}{l{j}}}{{Db{d}}}{CjAd}}{{ndj}f}{Cj{{Dd{Cj}}}}0","c":[],"p":[[5,"Bytes",0],[1,"usize"],[1,"unit"],[5,"BytesMut",0],[1,"u8"],[1,"slice"],[5,"UninitSlice",138],[6,"Ordering",456],[1,"bool"],[10,"Sized",457],[5,"String",458],[5,"Vec",459],[1,"str"],[17,"Item"],[10,"IntoIterator",460],[5,"Formatter",461],[8,"Result",461],[5,"Box",462],[10,"Hasher",463],[6,"Option",464],[10,"Buf",138],[10,"RangeBounds",465],[20,"MaybeUninit",466],[6,"Result",467],[5,"TypeId",468],[5,"Arguments",461],[5,"Chain",138],[5,"Take",138],[10,"BufMut",138],[5,"Limit",138],[5,"IoSlice",469],[5,"Reader",138],[8,"Result",470],[5,"Writer",138],[10,"Debug",461],[5,"IntoIter",138],[1,"f32"],[1,"f64"],[1,"i128"],[1,"i16"],[1,"i32"],[1,"i64"],[1,"i8"],[1,"u128"],[1,"u16"],[1,"u32"],[1,"u64"],[5,"RangeFull",465],[5,"RangeInclusive",465],[5,"Range",465],[5,"RangeToInclusive",465],[5,"RangeFrom",465],[5,"RangeTo",465],[1,"tuple"]],"b":[[40,"impl-PartialEq%3C%26T%3E-for-Bytes"],[41,"impl-PartialEq%3CString%3E-for-Bytes"],[42,"impl-PartialEq%3CVec%3Cu8%3E%3E-for-Bytes"],[43,"impl-PartialEq-for-Bytes"],[44,"impl-PartialEq%3Cstr%3E-for-Bytes"],[45,"impl-PartialEq%3C%5Bu8%5D%3E-for-Bytes"],[46,"impl-PartialEq%3CBytesMut%3E-for-Bytes"],[47,"impl-PartialEq%3CString%3E-for-BytesMut"],[48,"impl-PartialEq%3Cstr%3E-for-BytesMut"],[49,"impl-PartialEq%3C%26T%3E-for-BytesMut"],[50,"impl-PartialEq-for-BytesMut"],[51,"impl-PartialEq%3CVec%3Cu8%3E%3E-for-BytesMut"],[52,"impl-PartialEq%3C%5Bu8%5D%3E-for-BytesMut"],[53,"impl-PartialEq%3CBytes%3E-for-BytesMut"],[54,"impl-Extend%3Cu8%3E-for-BytesMut"],[55,"impl-Extend%3C%26u8%3E-for-BytesMut"],[56,"impl-Extend%3CBytes%3E-for-BytesMut"],[58,"impl-Debug-for-Bytes"],[59,"impl-LowerHex-for-Bytes"],[60,"impl-UpperHex-for-Bytes"],[61,"impl-LowerHex-for-BytesMut"],[62,"impl-UpperHex-for-BytesMut"],[63,"impl-Debug-for-BytesMut"],[65,"impl-From%3CBox%3C%5Bu8%5D%3E%3E-for-Bytes"],[66,"impl-From%3CVec%3Cu8%3E%3E-for-Bytes"],[67,"impl-From%3C%26str%3E-for-Bytes"],[68,"impl-From%3C%26%5Bu8%5D%3E-for-Bytes"],[69,"impl-From%3CBytesMut%3E-for-Bytes"],[70,"impl-From%3CString%3E-for-Bytes"],[73,"impl-From%3C%26str%3E-for-BytesMut"],[74,"impl-From%3C%26%5Bu8%5D%3E-for-BytesMut"],[76,"impl-FromIterator%3Cu8%3E-for-BytesMut"],[77,"impl-FromIterator%3C%26u8%3E-for-BytesMut"],[83,"impl-IntoIterator-for-%26Bytes"],[84,"impl-IntoIterator-for-Bytes"],[85,"impl-IntoIterator-for-%26BytesMut"],[86,"impl-IntoIterator-for-BytesMut"],[94,"impl-PartialOrd%3CString%3E-for-Bytes"],[95,"impl-PartialOrd%3C%5Bu8%5D%3E-for-Bytes"],[96,"impl-PartialOrd%3Cstr%3E-for-Bytes"],[97,"impl-PartialOrd%3C%26T%3E-for-Bytes"],[98,"impl-PartialOrd-for-Bytes"],[99,"impl-PartialOrd%3CVec%3Cu8%3E%3E-for-Bytes"],[100,"impl-PartialOrd%3Cstr%3E-for-BytesMut"],[101,"impl-PartialOrd-for-BytesMut"],[102,"impl-PartialOrd%3CString%3E-for-BytesMut"],[103,"impl-PartialOrd%3C%26T%3E-for-BytesMut"],[104,"impl-PartialOrd%3C%5Bu8%5D%3E-for-BytesMut"],[105,"impl-PartialOrd%3CVec%3Cu8%3E%3E-for-BytesMut"],[201,"impl-From%3C%26mut+%5Bu8%5D%3E-for-%26mut+UninitSlice"],[202,"impl-From%3C%26mut+%5BMaybeUninit%3Cu8%3E%5D%3E-for-%26mut+UninitSlice"],[300,"impl-Index%3CRangeFull%3E-for-UninitSlice"],[301,"impl-Index%3CRangeInclusive%3Cusize%3E%3E-for-UninitSlice"],[302,"impl-Index%3CRange%3Cusize%3E%3E-for-UninitSlice"],[303,"impl-Index%3CRangeToInclusive%3Cusize%3E%3E-for-UninitSlice"],[304,"impl-Index%3CRangeFrom%3Cusize%3E%3E-for-UninitSlice"],[305,"impl-Index%3CRangeTo%3Cusize%3E%3E-for-UninitSlice"],[306,"impl-IndexMut%3CRange%3Cusize%3E%3E-for-UninitSlice"],[307,"impl-IndexMut%3CRangeToInclusive%3Cusize%3E%3E-for-UninitSlice"],[308,"impl-IndexMut%3CRangeInclusive%3Cusize%3E%3E-for-UninitSlice"],[309,"impl-IndexMut%3CRangeTo%3Cusize%3E%3E-for-UninitSlice"],[310,"impl-IndexMut%3CRangeFull%3E-for-UninitSlice"],[311,"impl-IndexMut%3CRangeFrom%3Cusize%3E%3E-for-UninitSlice"]]}],\ ["cfg_if",{"doc":"A macro for defining #[cfg] if-else statements.","t":"Q","n":["cfg_if"],"q":[[0,"cfg_if"]],"d":["The main macro provided by this crate. See crate …"],"i":[0],"f":"`","c":[],"p":[],"b":[]}],\ ["clap",{"doc":"Command Line Argument Parser for Rust","t":"PPPFGFFKPGFKPPPPPPIPPKPPPPFPPKPPPKPPPKGPNNNNNNNNNNNNNNQNNNNNNNNMMMMNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNMQMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNQNNMNNNNNNNNNNNNPPFGFGFFFPPPPPTPFPPFPPPPPKPFFFFPRFFFFFPGTPPPFFFFFKPFPPPRGFKFPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNPPFGTTPPPPPPPPPPTGPTTTTFFPTTTPPFPFTFFTPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPGGPFPPPPFKGPPPPPPPPPFPPPPPPPPIFPPPPPPPPPPPPPPPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPPPPFFGFPGFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOO","n":["Always","AnyPath","Append","Arg","ArgAction","ArgGroup","ArgMatches","Args","Auto","ColorChoice","Command","CommandFactory","CommandName","CommandString","CommandWithArguments","Count","DirPath","EmailAddress","Error","ExecutablePath","FilePath","FromArgMatches","Help","HelpLong","HelpShort","Hostname","Id","Never","Other","Parser","Set","SetFalse","SetTrue","Subcommand","Unknown","Url","Username","ValueEnum","ValueHint","Version","about","action","after_help","after_long_help","alias","alias","aliases","aliases","allow_external_subcommands","allow_hyphen_values","allow_missing_positional","allow_negative_numbers","arg","arg","arg","arg_required_else_help","args","args","args_conflicts_with_subcommands","args_override_self","args_present","as_ref","as_str","augment_args","augment_args_for_update","augment_subcommands","augment_subcommands_for_update","author","before_help","before_long_help","bin_name","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","builder","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","color","command","command","command_for_update","conflicts_with","conflicts_with","conflicts_with_all","conflicts_with_all","contains_id","debug_assert","default","default","default","default","default","default","default","default_missing_value","default_missing_value_os","default_missing_values","default_missing_values_os","default_value","default_value_if","default_value_ifs","default_values","defer","disable_colored_help","disable_help_flag","disable_help_subcommand","disable_version_flag","display_name","display_order","display_order","dont_delimit_trailing_values","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","error","error","exclusive","external_subcommand_value_parser","find_subcommand","find_subcommand_mut","flatten_help","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_arg_matches","from_arg_matches_mut","from_str","from_str","from_str","get_about","get_action","get_after_help","get_after_long_help","get_all_aliases","get_all_aliases","get_all_long_flag_aliases","get_all_short_aliases","get_all_short_flag_aliases","get_arg_conflicts_with","get_args","get_arguments","get_author","get_before_help","get_before_long_help","get_bin_name","get_color","get_count","get_default_values","get_display_name","get_external_subcommand_value_parser","get_flag","get_groups","get_help","get_help_heading","get_id","get_id","get_index","get_long","get_long_about","get_long_and_visible_aliases","get_long_flag","get_long_help","get_long_version","get_many","get_matches","get_matches_from","get_matches_mut","get_name","get_next_help_heading","get_num_args","get_occurrences","get_one","get_opts","get_positionals","get_possible_values","get_raw","get_raw_occurrences","get_short","get_short_and_visible_aliases","get_short_flag","get_styles","get_subcommand_help_heading","get_subcommand_value_name","get_subcommands","get_subcommands_mut","get_value_delimiter","get_value_hint","get_value_names","get_value_parser","get_value_terminator","get_version","get_visible_aliases","get_visible_aliases","get_visible_long_flag_aliases","get_visible_short_aliases","get_visible_short_flag_aliases","global","group","group","group_id","groups","groups","has_subcommand","has_subcommands","hash","hash","help","help_expected","help_heading","help_template","hide","hide","hide_default_value","hide_long_help","hide_possible_values","hide_possible_values","hide_short_help","id","id","ids","ignore_case","ignore_errors","index","index","index_of","indices_of","infer_long_args","infer_subcommands","into","into","into","into","into","into","into","into","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","is_allow_external_subcommands_set","is_allow_hyphen_values_set","is_allow_missing_positional_set","is_allow_negative_numbers_set","is_arg_required_else_help_set","is_args_conflicts_with_subcommands_set","is_disable_colored_help_set","is_disable_help_flag_set","is_disable_help_subcommand_set","is_disable_version_flag_set","is_dont_delimit_trailing_values_set","is_exclusive_set","is_flatten_help_set","is_global_set","is_hide_default_value_set","is_hide_long_help_set","is_hide_possible_values_set","is_hide_set","is_hide_set","is_hide_short_help_set","is_ignore_case_set","is_last_set","is_multicall_set","is_multiple","is_next_line_help_set","is_next_line_help_set","is_no_binary_name_set","is_positional","is_propagate_version_set","is_require_equals_set","is_required_set","is_required_set","is_subcommand_negates_reqs_set","is_subcommand_precedence_over_arg_set","is_subcommand_required_set","is_trailing_var_arg_set","last","long","long_about","long_flag","long_flag_alias","long_flag_aliases","long_help","long_version","max_term_width","multicall","multiple","mut_arg","mut_args","mut_group","mut_subcommand","name","new","new","new","next_display_order","next_help_heading","next_line_help","next_line_help","no_binary_name","num_args","override_help","override_usage","overrides_with","overrides_with_all","parse","parse_from","parser","partial_cmp","partial_cmp","possible_values","print_help","print_long_help","propagate_version","raw","remove_many","remove_occurrences","remove_one","remove_subcommand","render_help","render_long_help","render_long_version","render_usage","render_version","require_equals","required","required","required_if_eq","required_if_eq_all","required_if_eq_any","required_unless_present","required_unless_present_all","required_unless_present_any","requires","requires","requires_all","requires_if","requires_ifs","set_bin_name","short","short_alias","short_aliases","short_flag","short_flag_alias","short_flag_aliases","styles","subcommand","subcommand","subcommand_help_heading","subcommand_matches","subcommand_name","subcommand_negates_reqs","subcommand_precedence_over_arg","subcommand_required","subcommand_value_name","subcommands","takes_values","term_width","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_possible_value","to_possible_value","to_string","to_string","to_string","to_string","trailing_var_arg","try_contains_id","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_get_many","try_get_matches","try_get_matches_from","try_get_matches_from_mut","try_get_occurrences","try_get_one","try_get_raw","try_get_raw_occurrences","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_parse","try_parse_from","try_remove_many","try_remove_occurrences","try_remove_one","try_update_from","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_from","update_from_arg_matches","update_from_arg_matches_mut","value_delimiter","value_hint","value_name","value_names","value_parser","value_parser","value_source","value_terminator","value_variants","value_variants","version","visible_alias","visible_alias","visible_aliases","visible_aliases","visible_long_flag_alias","visible_long_flag_aliases","visible_short_alias","visible_short_aliases","visible_short_flag_alias","visible_short_flag_aliases","AnyPath","Append","Arg","ArgAction","ArgGroup","ArgPredicate","BoolValueParser","BoolishValueParser","Command","CommandName","CommandString","CommandWithArguments","Count","DirPath","EMPTY","EmailAddress","EnumValueParser","Equals","ExecutablePath","FalseyValueParser","FilePath","Help","HelpLong","HelpShort","Hostname","IntoResettable","IsPresent","MapValueParser","NonEmptyStringValueParser","OsStr","OsStringValueParser","Other","Parser","PathBufValueParser","PossibleValue","PossibleValuesParser","RangedI64ValueParser","RangedU64ValueParser","Reset","Resettable","SINGLE","Set","SetFalse","SetTrue","Str","StringValueParser","StyledStr","Styles","TryMapValueParser","TypedValueParser","Unknown","UnknownArgumentValueParser","Url","Username","Value","Value","ValueHint","ValueParser","ValueParserFactory","ValueRange","Version","alias","aliases","and_suggest","ansi","as_os_str","as_ref","as_ref","as_ref","as_ref","as_ref","as_ref","as_str","bool","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","default","deref","deref","end_bound","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","error","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_error","get_header","get_help","get_invalid","get_literal","get_name","get_name_and_aliases","get_placeholder","get_usage","get_valid","hash","hash","hash","hash","header","help","hide","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","into_resettable","invalid","is_hide_set","literal","map","matches","max_values","min_values","new","new","new","new","new","new","new","new","new","new","new","new","new","new","new","os_string","parse","parse","parse","parse","parse","parse","parse_","parse_ref","parse_ref","parse_ref","parse_ref","parse_ref","parse_ref","parse_ref","parse_ref","parse_ref","parse_ref","parse_ref","parse_ref","parse_ref","parse_ref","parse_ref","parse_ref_","parse_ref_","partial_cmp","partial_cmp","partial_cmp","partial_cmp","path_buf","placeholder","plain","possible_values","possible_values","possible_values","possible_values","possible_values","possible_values","possible_values","possible_values","possible_values","range","range","start_bound","string","styled","styling","suggest","suggest_arg","takes_values","to_os_string","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_map","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","usage","valid","value_parser","write_char","write_str","Ansi","Ansi256","Ansi256Color","AnsiColor","BLINK","BOLD","Black","Blue","BrightBlack","BrightBlue","BrightCyan","BrightGreen","BrightMagenta","BrightRed","BrightWhite","BrightYellow","CURLY_UNDERLINE","Color","Cyan","DASHED_UNDERLINE","DIMMED","DOTTED_UNDERLINE","DOUBLE_UNDERLINE","EffectIter","Effects","Green","HIDDEN","INVERT","ITALIC","Magenta","Red","Reset","Rgb","RgbColor","STRIKETHROUGH","Style","Styles","UNDERLINE","White","Yellow","b","bg_color","bitor","bitor","bitor_assign","bitor_assign","blink","bold","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","bright","clear","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","cmp","cmp","cmp","contains","default","default","default","dimmed","effects","eq","eq","eq","eq","eq","eq","eq","eq","eq","fg_color","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from_ansi","g","get_bg_color","get_effects","get_fg_color","get_underline_color","hash","hash","hash","hash","hash","hash","hash","hidden","index","insert","into","into","into","into","into","into","into","into","into_ansi","into_iter","invert","is_bright","is_plain","is_plain","italic","iter","new","new","next","on","on","on","on","on_default","on_default","on_default","on_default","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","partial_cmp","r","remove","render","render","render","render_bg","render_bg","render_bg","render_bg","render_fg","render_fg","render_fg","render_fg","render_reset","set","strikethrough","sub","sub","sub_assign","sub_assign","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","underline","underline_color","write_reset_to","write_to","ActualNumValues","ArgumentConflict","Bool","ContextKind","ContextValue","Custom","DefaultFormatter","DisplayHelp","DisplayHelpOnMissingArgumentOrSubcommand","DisplayVersion","Err","Error","ErrorFormatter","ErrorKind","ExpectedNumValues","Format","InvalidArg","InvalidSubcommand","InvalidSubcommand","InvalidUtf8","InvalidValue","InvalidValue","Io","KindFormatter","MinValues","MissingRequiredArgument","MissingSubcommand","NoEquals","None","Number","Ok","PriorArg","Result","RichFormatter","String","Strings","StyledStr","StyledStrs","Suggested","SuggestedArg","SuggestedCommand","SuggestedSubcommand","SuggestedValue","TooFewValues","TooManyValues","TrailingArg","UnknownArgument","Usage","ValidSubcommand","ValidValue","ValueValidation","WrongNumberOfValues","apply","as_str","as_str","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","context","eq","eq","eq","exit","exit_code","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","format","format_error","format_error","format_error","from","from","from","from","from","from","from","from","get","hash","hash","insert","into","into","into","into","into","into","kind","new","print","raw","render","source","to_owned","to_owned","to_owned","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","use_stderr","with_cmd","ArgMatches","CommandLine","DefaultValue","Downcast","EnvVariable","IdsRef","Indices","MatchesError","RawValues","UnknownArgument","ValueSource","Values","ValuesRef","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","default","default","default","default","eq","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into_iter","into_iter","into_iter","into_iter","into_iter","next","next","next","next","next","next_back","next_back","next_back","next_back","next_back","partial_cmp","size_hint","size_hint","size_hint","size_hint","size_hint","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","actual","expected"],"q":[[0,"clap"],[500,"clap::builder"],[1039,"clap::builder::styling"],[1279,"clap::error"],[1421,"clap::parser"],[1540,"clap::parser::MatchesError"],[1542,"core::convert"],[1543,"core::iter::traits::collect"],[1544,"alloc::string"],[1545,"core::cmp"],[1546,"core::fmt"],[1547,"core::option"],[1548,"std::ffi::os_str"],[1549,"core::convert"],[1550,"alloc::vec"],[1551,"core::iter::traits::iterator"],[1552,"core::any"],[1553,"core::clone"],[1554,"core::marker"],[1555,"core::marker"],[1556,"clap_builder::parser::matches::arg_matches"],[1557,"core::ops::function"],[1558,"core::ops::function"],[1559,"clap_builder::parser::matches::arg_matches"],[1560,"core::convert"],[1561,"core::cmp"],[1562,"alloc::boxed"],[1563,"core::cmp"],[1564,"core::marker"]],"d":["Enables colored output regardless of whether or not the …","Any existing path.","When encountered, store the associated value(s) in …","The abstract representation of a command line argument. …","Behavior of arguments when they are encountered while …","Family of related arguments.","Container for parse results.","Parse a set of arguments into a user-defined container.","Enables colored output only when the output is going to a …","Represents the color preferences for program output","Build a command-line interface.","Create a Command relevant for a user-defined container.","Name of a command, without arguments. May be relative to …","A single string containing a command and its arguments.","Capture the remaining arguments as a command name and …","When encountered, increment a u8 counter","Path to a directory.","Email address.","Command Line Argument Parser Error","Path to an executable file.","Path to a file.","Converts an instance of ArgMatches to a user-defined …","When encountered, display Command::print_help","When encountered, display Command::print_long_help","When encountered, display Command::print_help","Host name of a computer. Shells usually parse /etc/hosts …","Arg or ArgGroup identifier","Disables colored output no matter if the output is going …","None of the hints below apply. Disables shell completion …","Parse command-line arguments into Self.","When encountered, store the associated value(s) in …","When encountered, act as if "false" was encountered on the …","When encountered, act as if "true" was encountered on the …","Parse a sub-command into a user-defined enum.","Default value if hint is not specified. Follows shell …","Complete web address.","Name of a local operating system user.","Parse arguments into enums.","Provide shell with hint on how to complete an argument.","When encountered, display Command::version","Sets the program’s description for the short help (-h).","Specify how to react to an argument when parsing it.","Free-form help text for after auto-generated short help (-h…","Free-form help text for after auto-generated long help (…","Add an alias, which functions as a hidden long flag.","Sets a hidden alias to this subcommand.","Add aliases, which function as hidden long flags.","Sets multiple hidden aliases to this subcommand.","Assume unexpected positional arguments are a subcommand.","Allows values which start with a leading hyphen (-)","Allows one to implement two styles of CLIs where …","Allows negative numbers to pass as values.","Adds an argument to this group by name","Adds an argument to the list of valid possibilities.","Create an Arg from a usage string.","Exit gracefully if no arguments are present (e.g. $ myprog…","Adds multiple arguments to this group by name","Adds multiple arguments to the list of valid possibilities.","Specifies that use of an argument prevents the use of …","Replace prior occurrences of arguments rather than error","Check if any args were present on the command line","","Get the raw string of the Id","Append to Command so it can instantiate Self.","Append to Command so it can update self.","Append to Command so it can instantiate Self.","Append to Command so it can update self.","Sets the author(s) for the help message.","Free-form help text for before auto-generated short help (…","Free-form help text for before auto-generated long help (…","Overrides the runtime-determined name of the binary for …","","","","","","","","","","","","","","","","","","Prepare for introspecting on all included Commands","Define Command line arguments","","","","","","","","","","","","","","","","","","","Sets when to color output.","Build a Command that can instantiate Self.","Requires cargo feature flag to be enabled.","Build a Command that can update self.","This argument is mutually exclusive with the specified …","Specify an argument or group that must not be present when …","This argument is mutually exclusive with the specified …","Specify arguments or groups that must not be present when …","Check if values are present for the argument or group id","Catch problems earlier in the development cycle.","","","","","","","","Value for the argument when the flag is present but no …","Value for the argument when the flag is present but no …","Value for the argument when the flag is present but no …","Value for the argument when the flag is present but no …","Value for the argument when not present.","Specifies the value of the argument if arg has been used …","Specifies multiple values and conditions in the same …","Value for the argument when not present.","Delay initialization for parts of the Command","Disables colorized help messages.","Disables -h and --help flag.","Disables the help subcommand.","Disables -V and --version flag.","Overrides the runtime-determined display name of the …","Allows custom ordering of args within the help message.","Set the placement of this subcommand within the help.","Disables the automatic delimiting of values after -- or …","","","","","","","","","","","Error reporting","Custom error message for post-parsing validation","This argument must be passed alone; it conflicts with all …","Specifies how to parse external subcommand arguments.","Find subcommand such that its name or one of aliases …","Find subcommand such that its name or one of aliases …","Flatten subcommand help into the current command’s help","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Instantiate Self from ArgMatches, parsing the arguments as …","Instantiate Self from ArgMatches, parsing the arguments as …","Parse an argument into Self.","","","Get the help message specified via Command::about.","Behavior when parsing the argument","Returns the help heading for listing subcommands.","Returns the help heading for listing subcommands.","Get all aliases for this argument, if any, both visible …","Iterate through the set of all the aliases for this …","Iterate through the set of all the long aliases for this …","Get all short aliases for this argument, if any, both …","Iterate through the set of all the short aliases for this …","Get a list of all arguments the given argument conflicts …","Getters for all args. It will return a vector of Id","Iterate through the set of arguments.","Get the authors of the cmd.","Returns the help heading for listing subcommands.","Returns the help heading for listing subcommands.","Get the name of the binary.","Should we color the output?","Gets the value of a specific ArgAction::Count flag","Get the default values specified for this argument, if any","Get the name of the binary.","Configured parser for values passed to an external …","Gets the value of a specific ArgAction::SetTrue or …","Iterate through the set of groups.","Get the help specified for this argument, if any","Get the help heading specified for this argument, if any","Get the name of the argument","Get the name of the group","Get the index of this argument, if any","Get the long option name for this argument, if any","Get the help message specified via Command::long_about.","Get the long option name and its visible aliases, if any","Get the long flag of the subcommand.","Get the long help specified for this argument, if any","Get the long version of the cmd.","Iterate over values of a specific option or positional …","Parse env::args_os, exiting on failure.","Parse the specified arguments, exiting on failure.","Parse env::args_os, exiting on failure.","Get the name of the cmd.","Get the custom section heading specified via …","Get the number of values for this argument.","Iterate over the values passed to each occurrence of an …","Gets the value of a specific option or positional argument.","Iterate through the options.","Iterate through the positionals arguments.","Get the names of possible values for this argument. Only …","Iterate over the original argument values.","Iterate over the original values for each occurrence of an …","Get the short option name for this argument, if any","Get the short option name and its visible aliases, if any","Get the short flag of the subcommand.","Return the current Styles for the Command","Returns the help heading for listing subcommands.","Returns the subcommand value name.","Iterate through the set of subcommands, getting a …","Iterate through the set of subcommands, getting a mutable …","Get the delimiter between multiple values","Get the value hint of this argument","Get the names of values for this argument.","Configured parser for argument values","Get the value terminator for this argument. The …","Get the version of the cmd.","Get visible aliases for this argument, if any","Iterate through the visible aliases for this subcommand.","Iterate through the visible long aliases for this …","Get visible short aliases for this argument, if any","Iterate through the visible short aliases for this …","Specifies that an argument can be matched to all child …","The name of the ArgGroup the argument belongs to.","Adds an ArgGroup to the application.","Report the ArgGroup::id for this set of arguments","The names of ArgGroup’s the argument belongs to.","Adds multiple ArgGroups to the Command at once.","Test whether Self can parse a specific subcommand","Returns true if this Command has subcommands.","","","Sets the description of the argument for short help (-h).","Panic if help descriptions are omitted.","Override the current help section.","Sets the help template to be used, overriding the default …","Do not display the argument in help message.","Specifies that this subcommand should be hidden from help …","Do not display the default value of the argument in the …","Hides an argument from long help (--help).","Do not display the possible values in the help message.","Tells clap not to print possible values when displaying …","Hides an argument from short help (-h).","Set the identifier used for referencing this argument in …","Sets the group name.","Iterate over Arg and ArgGroup Ids via ArgMatches::ids.","Match values against PossibleValuesParser without matching …","Try not to fail on parse errors, like missing option …","Specifies the index of a positional argument starting at 1.","","The first index of that an argument showed up.","All indices an argument appeared at when parsing.","Allow partial matches of long arguments or their aliases.","Allow partial matches of subcommand names and their aliases…","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","Report whether Command::allow_external_subcommands is set","Report whether Arg::allow_hyphen_values is set","Report whether Command::allow_missing_positional is set","Report whether Arg::allow_negative_numbers is set","Report whether Command::arg_required_else_help is set","Report whether Command::args_conflicts_with_subcommands is …","Report whether Command::disable_colored_help is set","Report whether Command::disable_help_flag is set","Report whether Command::disable_help_subcommand is set","Report whether Command::disable_version_flag is set","Report whether Command::dont_delimit_trailing_values is set","Reports whether Arg::exclusive is set","Get the custom section heading specified via …","Report whether Arg::global is set","Report whether Arg::hide_default_value is set","Report whether Arg::hide_long_help is set","Report whether Arg::hide_possible_values is set","Report whether Arg::hide is set","Report whether Command::hide is set","Report whether Arg::hide_short_help is set","Reports whether Arg::ignore_case is set","Reports whether Arg::last is set","Report whether Command::multicall is set","Return true if the group allows more than one of the …","Report whether Arg::next_line_help is set","Report whether Command::next_line_help is set","Report whether Command::no_binary_name is set","Checks whether this argument is a positional or not.","Report whether Command::propagate_version is set","Report whether Arg::require_equals is set","Reports whether Arg::required is set","Reports whether ArgGroup::required is set","Report whether Command::subcommand_negates_reqs is set","Report whether Command::subcommand_precedence_over_arg is …","Report whether Command::subcommand_required is set","Report whether Arg::trailing_var_arg is set","This arg is the last, or final, positional argument (i.e. …","Sets the long version of the argument without the …","Sets the program’s description for the long help (--help…","Sets the long version of the subcommand flag without the …","Add an alias, which functions as a “hidden” long flag …","Add aliases, which function as “hidden” long flag …","Sets the description of the argument for long help (--help…","Sets the version for the long version (--version) and help …","Limit the line length for wrapping help when using the …","Multiple-personality program dispatched on the binary name …","Allows more than one of the Args in this group to be used. …","Allows one to mutate an Arg after it’s been added to a …","Allows one to mutate all Args after they’ve been added …","Allows one to mutate an ArgGroup after it’s been added …","Allows one to mutate a Command after it’s been added as …","(Re)Sets the program’s name.","Create a new Arg with a unique name.","Create a ArgGroup using a unique name.","Creates a new instance of an Command.","Change the starting value for assigning future display …","Set the default section heading for future args.","Render the help on the line after the argument.","Places the help string for all arguments and subcommands …","Specifies that the parser should not assume the first …","Specifies the number of arguments parsed per occurrence","Overrides the clap generated help message (both -h and …","Overrides the clap generated usage string for help and …","Sets an overridable argument.","Sets multiple mutually overridable arguments by name.","Parse from std::env::args_os(), exit on error.","Parse from iterator, exit on error.","Command line argument parser","","","Report all possible_values","Prints the short help message (-h) to io::stdout().","Prints the long help message (--help) to io::stdout().","Specifies to use the version of the current command for …","Consume all following arguments.","Return values of a specific option or positional argument.","Return values for each occurrence of an option.","Returns the value of a specific option or positional …","Return the name and ArgMatches of the current subcommand.","Render the short help message (-h) to a StyledStr","Render the long help message (--help) to a StyledStr.","Version message rendered as if the user ran --version.","Usage statement","Version message rendered as if the user ran -V.","Requires that options use the --option=val syntax","Specifies that the argument must be present.","Require an argument from the group to be present when …","This argument is required only if the specified arg is …","Specify this argument is required based on multiple …","Specify this argument is required based on multiple …","Set this arg as required as long as the specified argument …","Sets this arg as required unless all of the specified …","Sets this arg as required unless any of the specified …","Sets an argument that is required when this one is present","Specify an argument or group that must be present when …","Specify arguments or groups that must be present when this …","Require another argument if this arg matches the …","Allows multiple conditional requirements.","Set binary name. Uses &mut self instead of self.","Sets the short version of the argument without the …","Add an alias, which functions as a hidden short flag.","Add aliases, which functions as a hidden short flag.","Sets the short version of the subcommand flag without the …","Add an alias, which functions as “hidden” short flag …","Add aliases, which function as “hidden” short flag …","Sets the Styles for terminal output","Adds a subcommand to the list of valid possibilities.","The name and ArgMatches of the current subcommand.","Sets the help heading used for subcommands when printing …","The ArgMatches for the current subcommand.","The name of the current subcommand.","Allows subcommands to override all requirements of the …","Prevent subcommands from being consumed as an arguments …","If no subcommand is present at runtime, error and exit …","Sets the value name used for subcommands when printing …","Adds multiple subcommands to the list of valid …","Returns whether this action accepts values on the …","Sets the terminal width at which to wrap help messages.","","","","","","","","","The canonical argument value.","","","","","","This is a “VarArg” and everything that follows should …","Non-panicking version of ArgMatches::contains_id","","","","","","","","","Non-panicking version of ArgMatches::get_many","Parse env::args_os, returning a clap::Result on failure.","Parse the specified arguments, returning a clap::Result on …","Parse the specified arguments, returning a clap::Result on …","Non-panicking version of ArgMatches::get_occurrences","Non-panicking version of ArgMatches::get_one","Non-panicking version of ArgMatches::get_raw","Non-panicking version of ArgMatches::get_raw_occurrences","","","","","","","","","Parse from std::env::args_os(), return Err on error.","Parse from iterator, return Err on error.","Non-panicking version of ArgMatches::remove_many","Non-panicking version of ArgMatches::remove_occurrences","Non-panicking version of ArgMatches::remove_one","Update from iterator, return Err on error.","","","","","","","","","Update from iterator, exit on error.","Assign values from ArgMatches to self.","Assign values from ArgMatches to self.","Allow grouping of multiple values via a delimiter.","Provide the shell a hint about how to complete this …","Placeholder for the argument’s value in the help message …","Placeholders for the argument’s values in the help …","Specify the typed behavior of the argument.","Select a ValueParser implementation from the intended type","Report where argument value came from","Sentinel to stop parsing multiple values of a given …","All possible argument values, in display order.","","Sets the version for the short version (-V) and help …","Add an alias, which functions as a visible long flag.","Sets a visible alias to this subcommand.","Add aliases, which function as visible long flags.","Sets multiple visible aliases to this subcommand.","Add an alias, which functions as a “visible” long flag …","Add aliases, which function as visible long flag …","Add an alias, which functions as a visible short flag.","Add aliases, which function as visible short flags.","Add an alias, which functions as “visible” short flag …","Add aliases, which function as visible short flag …","Any existing path.","When encountered, store the associated value(s) in …","The abstract representation of a command line argument. …","Behavior of arguments when they are encountered while …","Family of related arguments.","Operations to perform on argument values","Implementation for ValueParser::bool","Parse bool-like string values, everything else is true","Build a command-line interface.","Name of a command, without arguments. May be relative to …","A single string containing a command and its arguments.","Capture the remaining arguments as a command name and …","When encountered, increment a u8 counter","Path to a directory.","Nor argument values, or a flag","Email address.","Parse an ValueEnum value.","Does the argument match the specified value?","Path to an executable file.","Parse false-like string values, everything else is true","Path to a file.","When encountered, display Command::print_help","When encountered, display Command::print_long_help","When encountered, display Command::print_help","Host name of a computer. Shells usually parse /etc/hosts …","Convert to the intended resettable type","Is the argument present?","Adapt a TypedValueParser from one value to another","Parse non-empty string values","A UTF-8-encoded fixed string","Implementation for ValueParser::os_string","None of the hints below apply. Disables shell completion …","Generated parser, usually ValueParser.","Implementation for ValueParser::path_buf","A possible value of an argument.","Verify the value is from an enumerated set of PossibleValue…","Parse number that fall within a range of values","Parse number that fall within a range of values","Reset builder value","Clearable builder value","A single argument value, the most common case for options","When encountered, store the associated value(s) in …","When encountered, act as if "false" was encountered on the …","When encountered, act as if "true" was encountered on the …","A UTF-8-encoded fixed string","Implementation for ValueParser::string","Terminal-styling container","Terminal styling definitions","Adapt a TypedValueParser from one value to another","Parse/validate argument values","Default value if hint is not specified. Follows shell …","When encountered, report ErrorKind::UnknownArgument","Complete web address.","Name of a local operating system user.","Overwrite builder value","Argument’s value type","Provide shell with hint on how to complete an argument.","Parse/validate argument values","Register a type with value_parser!","Values per occurrence for an argument","When encountered, display Command::version","Sets a hidden alias for this argument value.","Sets multiple hidden aliases for this argument value.","Extend the suggestions","Display using ANSI Escape Code styling","Get the raw string as an std::ffi::OsStr","","","","","","","Get the raw string of the Str","bool parser for argument values","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Error heading","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","Returns the argument unchanged.","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Error heading","General Heading style, e.g. help_heading","Get the help specified for this argument, if any","Highlight invalid usage","Literal command-line syntax, e.g. --help","Get the name of the argument value","Returns all valid values of the argument value.","Descriptions within command-line syntax, e.g. value_name","Usage heading","Highlight suggested usage","","","","","General Heading style, e.g. help_heading","Sets the help description of the value.","Hides this value from help and shell completions.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Convert to the intended resettable type","","","","","","","","","","","","","","","","","","","","","","","","Highlight invalid usage","Report if PossibleValue::hide is set","Literal command-line syntax, e.g. --help","Adapt a TypedValueParser from one value to another","Tests if the value is valid for this argument value","Most number of values the argument accepts","Fewest number of values the argument accepts","Custom parser for argument values","Create a PossibleValue with its name.","Create a range","Create an empty buffer","Implementation for ValueParser::string","Implementation for ValueParser::os_string","Implementation for ValueParser::path_buf","Parse an ValueEnum","Verify the value is from an enumerated set of PossibleValue…","Select full range of i64","Select full range of u64","Implementation for ValueParser::bool","Parse false-like string values, everything else is true","Parse bool-like string values, everything else is true","Parse non-empty string values","OsString parser for argument values","Parse the argument value","","","","","","Parse the argument value","Parse the argument value","","","","","","","","","","","","","","","Parse the argument value","","","","","","PathBuf parser for argument values","Descriptions within command-line syntax, e.g. value_name","No terminal styling","Reflect on enumerated value properties","Reflect on enumerated value properties","","","","","","","","Narrow the supported range","Narrow the supported range","","String parser for argument values","Default terminal styling","Terminal Styles for help and error output","Provide a general suggestion","Suggest an alternative argument","Report whether the argument takes any values (ie is a flag)","Get the raw string as an OsString","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Adapt a TypedValueParser from one value to another","Describes the content of AnyValue","","","","","","","","","","","","","","","","","","","","","","","","Usage heading","Highlight suggested usage","Create the specified Self::Parser","","","Available 4-bit ANSI color palette codes","256 (8-bit) color support","256 (8-bit) color support","Available 4-bit ANSI color palette codes","","","Black: #0 (foreground code 30, background code 40).","Blue: #4 (foreground code 34, background code 44).","Bright black: #0 (foreground code 90, background code 100).","Bright blue: #4 (foreground code 94, background code 104).","Bright cyan: #6 (foreground code 96, background code 106).","Bright green: #2 (foreground code 92, background code 102).","Bright magenta: #5 (foreground code 95, background code 105…","Bright red: #1 (foreground code 91, background code 101).","Bright white: #7 (foreground code 97, background code 107).","Bright yellow: #3 (foreground code 93, background code 103…","","Any ANSI color code scheme","Cyan: #6 (foreground code 36, background code 46).","","","","","Enumerate each enabled value in Effects","A set of text effects","Green: #2 (foreground code 32, background code 42).","","Swap foreground and background colors; inconsistent …","Not widely supported. Sometimes treated as inverse or blink","Magenta: #5 (foreground code 35, background code 45).","Red: #1 (foreground code 31, background code 41).","Reset terminal formatting","24-bit ANSI RGB color codes","24-bit ANSI RGB color codes","Characters legible but marked as if for deletion. Not …","ANSI Text styling","Terminal styling definitions","Style extensions exist for Kitty, VTE, mintty and iTerm2.","White: #7 (foreground code 37, background code 47).","Yellow: #3 (foreground code 33, background code 43).","Blue","Set background color","","","","","Apply blink effect","Apply bold effect","","","","","","","","","","","","","","","","","Change the color to/from bright","Reset all effects in-place","","","","","","","","","","","","","","","","","","","","","","","","Returns true if all of the effects in other are contained …","","","","Apply dimmed effect","Set text effects","","","","","","","","","","Set foreground color","","","","","","","","","","","","Returns the argument unchanged.","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Losslessly convert from AnsiColor","Green","Get the background color","","Get the foreground color","","","","","","","","","Apply hidden effect","Get the raw value","Inserts the specified effects in-place.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Convert to AnsiColor when there is a 1:1 mapping","","Apply invert effect","Report whether the color is bright","Check if no effects are enabled","Check if no styling is enabled","Apply italic effect","Iterate over enabled effects","No effects enabled","No effects enabled","","Create a Style with this as the foreground","Create a Style with this as the foreground","Create a Style with this as the foreground","Create a Style with this as the foreground","Create a Style with this as the foreground","Create a Style with this as the foreground","Create a Style with this as the foreground","Create a Style with this as the foreground","","","","","","","","Red","Removes the specified effects in-place.","Render the ANSI code","Render the ANSI code","Render the ANSI code","Render the ANSI code for a background color","Render the ANSI code for a background color","Render the ANSI code for a background color","Render the ANSI code for a background color","Render the ANSI code for a foreground color","Render the ANSI code for a foreground color","Render the ANSI code for a foreground color","Render the ANSI code for a foreground color","Renders the relevant Reset code","Enable or disable the specified effects depending on the …","Apply strikethrough effect","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Apply underline effect","Set underline color","Write the relevant Reset code","Write the ANSI code","Number of values present","Occurs when the user provides two values which conflict …","A single value","Semantics for a piece of error information","A piece of error information","An opaque message to the user","Richly formatted error context","Not a true “error” as it means --help or similar was …","Occurs when either an argument or a Subcommand is …","Not a true “error” as it means --version or similar …","Contains the error value","Command Line Argument Parser Error","Defines how to format an error for displaying to the user","Command line argument parser kind of error","Number of allowed values","Represents a Format error (which is a part of Display). …","The cause of the error","The cause of the error","Occurs when the user provides an unrecognized Subcommand …","Occurs when the user provides a value containing invalid …","Rejected values","Occurs when an Arg has a set of possible values, and the …","Represents an I/O error. Can occur when writing to stderr …","Report ErrorKind","Minimum number of allowed values","Occurs when the user does not provide one or more required …","Occurs when a subcommand is required (as defined by …","Occurs when the user doesn’t use equals for an option …","ContextKind is self-sufficient, no additional information …","A single value","Contains the success value","Existing arguments","Short hand for Result type","Richly formatted error context","A single value","Many values","A single value","many value","Potential fix for the user","Potential fix for the user","Potential fix for the user","Potential fix for the user","Potential fix for the user","Occurs when the user provides fewer values for an argument …","Occurs when a user provides more values for an argument …","Trailing argument","Occurs when a user provides a flag, option, argument or …","A usage string","Accepted subcommands","Accepted values","Occurs when the user provides a value for an argument with …","Occurs when the user provides a different number of values …","Apply an alternative formatter to the error","End-user description of the error case, where relevant","End-user description of the error case, where relevant","","","","","","","","","","","","","","","","","","","Additional information to further qualify the error","","","","Prints the error and exits.","Returns the exit code that .exit will exit the process …","","","","","","","","","Format the existing message with the Command’s context","Stylize the error for the terminal","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Lookup a piece of context","","","Insert a piece of context","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Type of error for programmatic processing","Create an error with a pre-defined message","Prints formatted and colored error to stdout or stderr …","Create an unformatted error","Render the error message to a StyledStr.","","","","","","","","","","","","","","","","","","","","","","","","","","","Should the message be written to stdout or not?","Apply Command’s formatting to the error","Container for parse results.","Value was passed in on the command-line","Value came Arg::default_value","Failed to downcast AnyValue to the specified type","Value came [Arg::env][crate::Arg::env]","Iterate over Arg and ArgGroup Ids via ArgMatches::ids.","Iterate over indices for where an argument appeared when …","Violation of ArgMatches assumptions","Iterate over raw argument values via ArgMatches::get_raw.","Argument not defined in Command","Origin of the argument’s value","Iterate over multiple values for an argument via …","Iterate over multiple values for an argument via …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Type for value stored in ArgMatches","The target type to downcast to"],"i":[18,17,5,0,0,0,0,0,18,0,0,0,17,17,17,5,17,17,0,17,17,0,5,5,5,17,0,18,17,0,5,5,5,0,17,17,17,0,0,5,1,4,1,1,4,1,4,1,1,4,1,4,11,1,0,1,11,1,1,1,13,12,12,122,122,123,123,1,1,1,1,5,4,11,1,17,13,12,12,18,5,4,11,1,17,13,12,18,1,0,5,4,11,1,17,13,12,18,5,4,11,1,17,13,12,18,4,12,1,124,0,124,4,11,4,11,13,1,4,11,1,17,13,12,18,4,4,4,4,4,4,4,4,1,1,1,1,1,1,4,1,1,4,11,17,13,12,12,12,12,12,18,0,1,4,1,1,1,1,5,4,4,11,1,1,17,13,12,12,18,18,5,4,4,11,11,1,1,17,13,12,12,12,12,12,12,18,36,36,37,17,18,1,4,1,1,4,1,1,4,1,1,11,1,1,1,1,1,1,13,4,1,1,13,1,4,4,4,11,4,4,1,4,1,4,1,13,1,1,1,1,1,4,13,13,1,1,4,13,13,4,4,1,1,1,1,1,1,4,4,4,4,4,1,4,1,1,4,1,4,4,1,122,4,1,123,1,17,12,4,1,4,1,4,1,4,4,4,1,4,4,11,13,4,1,4,1,13,13,1,1,5,4,11,1,17,13,12,18,5,17,12,12,12,1,4,1,4,1,1,1,1,1,1,1,4,1,4,4,4,4,4,1,4,4,4,1,11,4,1,1,4,1,4,4,11,1,1,1,4,4,4,1,1,1,1,4,1,1,1,11,1,1,1,1,1,4,11,1,1,1,4,1,1,4,1,1,4,4,61,61,0,4,12,18,1,1,1,4,13,13,13,13,1,1,1,1,1,4,4,11,4,4,4,4,4,4,4,11,11,4,4,1,4,4,4,1,1,1,1,1,13,1,13,13,1,1,1,1,1,5,1,5,4,11,1,17,13,12,18,37,18,4,1,12,18,4,13,5,4,11,1,17,13,12,18,13,1,1,1,13,13,13,13,5,4,11,1,17,13,12,18,61,61,13,13,13,61,5,4,11,1,17,13,12,18,61,36,36,4,4,4,4,4,0,13,4,37,18,1,4,1,4,1,1,1,4,4,1,1,17,5,0,0,0,0,0,0,0,17,17,17,5,17,49,17,0,21,17,0,17,5,5,5,17,0,21,0,0,0,0,17,125,0,0,0,0,0,58,0,49,5,5,5,0,0,0,0,0,0,17,0,17,17,58,93,0,0,0,0,5,51,51,68,2,20,20,20,6,6,6,6,6,29,29,21,20,20,51,49,58,6,6,2,70,71,72,73,74,75,78,80,81,82,83,84,85,68,54,29,21,20,51,49,58,6,2,70,71,72,73,74,75,78,80,81,82,83,84,85,68,54,29,21,20,51,49,58,6,2,70,71,72,73,74,75,78,80,81,82,83,84,85,68,54,29,21,20,51,49,58,6,2,70,71,72,73,74,75,78,80,81,82,83,84,85,68,54,20,58,6,2,20,51,49,6,2,2,70,71,72,73,75,78,80,81,82,83,54,54,20,6,49,21,20,20,20,20,20,20,51,49,58,6,6,6,6,6,6,6,2,54,29,21,20,51,49,49,58,6,6,2,2,70,71,72,73,74,75,78,80,81,82,83,84,85,68,54,29,29,29,29,29,29,29,29,29,29,21,21,20,20,20,20,20,20,20,20,51,51,49,49,49,49,49,49,49,49,58,58,58,58,6,6,6,6,6,2,2,2,2,2,70,71,72,73,74,74,75,75,78,78,80,81,82,83,84,85,68,54,54,54,51,54,54,51,51,54,54,54,20,49,58,6,54,51,51,29,21,20,51,49,58,6,2,70,71,72,73,74,75,78,80,81,82,83,84,85,68,54,3,29,20,49,58,6,6,6,6,2,70,71,72,73,74,75,78,80,81,82,83,84,85,68,54,51,54,93,51,49,49,29,51,49,2,70,71,72,73,74,75,78,80,81,82,83,29,93,70,71,72,74,84,93,93,70,71,72,73,74,75,78,80,81,82,83,84,85,68,93,68,20,58,6,2,29,54,54,29,93,73,74,80,81,82,84,85,75,78,49,29,54,0,68,68,49,20,29,21,20,51,49,58,6,2,70,71,72,73,74,75,78,80,81,82,83,84,85,68,54,49,6,2,29,21,20,51,49,58,6,2,70,71,72,73,74,75,78,80,81,82,83,84,85,68,54,29,21,20,51,49,58,6,2,70,71,72,73,74,75,78,80,81,82,83,84,85,68,54,93,29,29,21,20,51,49,58,6,2,70,71,72,73,74,75,78,80,81,82,83,84,85,68,54,54,54,125,2,2,109,109,0,0,110,110,111,111,111,111,111,111,111,111,111,111,110,0,111,110,110,110,110,0,0,111,110,110,110,111,111,0,109,0,110,0,0,110,111,111,108,89,110,89,110,89,89,89,109,111,112,108,110,113,114,89,109,111,112,108,110,113,114,89,111,110,109,111,112,108,110,113,114,89,109,111,112,108,110,113,114,89,109,111,112,108,110,114,89,110,110,114,89,89,89,109,111,112,108,110,113,114,89,89,89,109,111,112,108,110,113,114,114,89,89,109,109,109,109,109,109,111,112,112,112,108,108,110,113,114,89,89,112,108,89,89,89,89,109,111,112,108,110,114,89,89,112,110,109,111,112,108,110,113,114,89,112,113,89,111,110,89,89,110,110,89,113,109,111,112,108,109,111,112,108,109,111,112,108,110,114,89,108,110,110,114,89,109,111,112,108,109,111,112,108,89,110,89,110,89,110,89,109,111,112,108,110,113,114,89,114,89,109,111,112,108,110,113,114,89,109,111,112,108,110,113,114,89,109,111,112,108,110,113,114,89,89,89,89,89,118,26,119,0,0,118,0,26,26,26,126,0,0,0,118,26,118,118,26,26,118,26,26,0,118,26,26,26,119,119,126,118,0,0,119,119,119,119,118,118,118,118,118,26,26,118,26,118,118,118,26,26,27,118,26,121,127,27,118,119,26,121,127,27,118,119,26,118,119,26,118,119,26,27,118,119,26,27,27,27,27,118,118,119,119,26,26,27,117,121,127,121,127,27,27,27,118,119,26,27,118,26,27,121,127,27,118,119,26,27,27,27,27,27,27,118,119,26,27,118,119,26,121,127,27,118,119,26,121,127,27,118,119,26,121,127,27,118,119,26,27,27,0,67,67,65,67,0,0,0,0,65,0,0,0,65,56,63,43,52,57,67,65,56,63,43,52,57,67,65,56,63,43,52,57,67,65,56,63,43,52,57,67,67,63,43,52,57,67,65,65,56,63,43,52,57,67,65,56,63,43,52,57,67,65,56,63,43,52,57,67,56,63,43,52,57,56,63,43,52,57,56,63,43,52,57,67,56,63,43,52,57,65,56,63,43,52,57,67,65,65,56,63,43,52,57,67,65,56,63,43,52,57,67,65,56,63,43,52,57,67,128,128],"f":"````````````````````````````````````````{{bc}b{{f{d}}}}{{hc}h{{f{j}}}}11{{hc}h{{f{l}}}}{{bc}b{{f{l}}}}{{he}h{{n{l}}}{{Ab{}{{A`{c}}}}}}{{be}b{{n{l}}}{{Ab{}{{A`{c}}}}}}{{bAd}b}{{hAd}h}10{{Afc}Af{{f{Ah}}}}{{bc}b{{n{h}}}}`3{{Afe}Af{{n{Ah}}}{{Ab{}{{A`{c}}}}}}{{be}b{{n{h}}}{{Ab{}{{A`{c}}}}}}55{AjAd}{AhAl}0{bb}000;>>{{bc}b{{f{An}}}}{ce{}{}}0000030000000000{bB`}`{jj}{hh}{AfAf}6{BbBb}{AjAj}{AhAh}{BdBd}{{ce}B`{}{}}0000000{{hh}Bf}{{AhAh}Bf}{{bBd}b}{{}b}`0{{hc}h{{f{Ah}}}}{{Afc}Af{{f{Ah}}}}{{he}h{{n{Ah}}}{{Ab{}{{A`{c}}}}}}{{Afe}Af{{n{Ah}}}{{Ab{}{{A`{c}}}}}}{{AjAl}Ad}{bB`}{{}h}{{}Af}8{{}Bb}{{}Aj}{{}Ah}{{}Bd}{{hc}h{{f{Bh}}}}{{hc}h{{n{Bh}}}}{{he}h{{n{Bh}}}{{Ab{}{{A`{c}}}}}}02{{hceg}h{{n{Ah}}}{{n{Bj}}}{{f{Bh}}}}{{hi}h{{n{Ah}}}{{n{Bj}}}{{f{Bh}}}{{Ab{}{{A`{{Bl{ceg}}}}}}}}2{{b{C`{b}{{Bn{b}}}}}b}{{bAd}b}000{{bc}b{{f{An}}}}{{hc}h{{f{Cb}}}}{{bc}b{{f{Cb}}}}3{{hh}Ad}{{AfAf}Ad}{{BbBb}Ad}{{AjAj}Ad}{{AhAh}Ad}{{AhAl}Ad}{{Ahl}Ad}1{{AhAn}Ad}{{BdBd}Ad}`{{bCdc}CfCh}{{hAd}h}{{bc}b{{f{Cj}}}}{{bc}{{Cl{b}}}{{D`{Cn}}}}0{{bAd}b}{{jDb}{{Df{B`Dd}}}}{{hDb}{{Df{B`Dd}}}}0{{AfDb}{{Df{B`Dd}}}}{{bDb}{{Df{B`Dd}}}}0{{BbDb}{{Df{B`Dd}}}}{{AjDb}{{Df{B`Dd}}}}{{AhDb}{{Df{B`Dd}}}}0{{BdDb}{{Df{B`Dd}}}}0{cc{}}{hh}11{AfAf}{bb}333{AhAh}{lAh}{AlAh}6106{Aj{{Df{DhCf}}}}0{{AlAd}{{Df{DjAn}}}}{Al{{Df{Bb}}}}{Al{{Df{Bd}}}}{b{{Cl{d}}}}{hj}11{h{{Cl{{Dl{Al}}}}}}{b{{`{{Dn{}{{A`{Al}}}}}}}}0{h{{Cl{{Dl{E`}}}}}}{b{{`{{Dn{}{{A`{E`}}}}}}}}{{bh}{{Dl{h}}}}{Af{{`{{Dn{}{{A`{Ah}}}}}}}}{b{{`{{Dn{}{{A`{h}}}}}}}}{b{{Cl{Al}}}}990{bBd}{{AjAl}Eb}{h{{Ed{Bh}}}}3{b{{Cl{Cj}}}}{{AjAl}Ad}{b{{`{{Dn{}{{A`{Af}}}}}}}}{h{{Cl{d}}}}{h{{Cl{Al}}}}{hAh}{AfAh}{h{{Cl{Cb}}}}3{b{{Cl{d}}}}{h{{Cl{{Dl{Al}}}}}}=6={{AjAl}{{Cl{{Ef{c}}}}}{EhEjElEn}}{bAj}{{be}Aj{{n{F`}}Ej}{{Ab{}{{A`{c}}}}}}1{bAl}{b{{Cl{Al}}}}{h{{Cl{Fb}}}}{{AjAl}{{Cl{{Fd{c}}}}}{EhEjElEn}}{{AjAl}{{Cl{c}}}{EhEjElEn}}{b{{`{{Dn{}{{A`{h}}}}}}}}0{h{{Dl{Ff}}}}{{AjAl}{{Cl{Fh}}}}{{AjAl}{{Cl{Fj}}}}{h{{Cl{E`}}}}{h{{Cl{{Dl{E`}}}}}}{b{{Cl{E`}}}}{bFl};;{b{{`{{Dn{}{{A`{b}}}}}}}}04{hBb}{h{{Cl{{Ed{l}}}}}}{hCj}{h{{Cl{l}}}}{b{{Cl{Al}}}}{h{{Cl{{Dl{Al}}}}}}{b{{`{{Dn{}{{A`{Al}}}}}}}}0:{b{{`{{Dn{}{{A`{E`}}}}}}}}{{hAd}h}{{hc}h{{f{Ah}}}}{{bc}b{{n{Af}}}}{{}{{Cl{Ah}}}}{{he}h{{n{Ah}}}{{Ab{}{{A`{c}}}}}}{{be}b{{n{Af}}}{{Ab{}{{A`{c}}}}}}{AlAd}{bAd}{{Bbc}B`Fn}{{Ahc}B`Fn}{{hc}h{{f{d}}}}{{bAd}b}{{hc}h{{f{l}}}}{{bc}b{{f{d}}}}=2===2={{hc}h{{n{Ah}}}}{{Afc}Af{{n{Ah}}}}{AjG`}{{hAd}h}6{{hc}h{{f{Cb}}}}{{bAh}}{{AjAl}{{Cl{Cb}}}}{{AjAl}{{Cl{Gb}}}}::{ce{}{}}0000000{j{{Gd{j}}}}{Bb{{Gd{Bb}}}}{c{{Gd{Ah}}}{}}{c{{Gd{l}}}{}}{c{{Gd{An}}}{}}{bAd}{hAd}101111111010000010001{AfAd}122121102221={{hc}h{{f{l}}}}{{bc}b{{f{d}}}}{{bc}b{{n{l}}}}{{bc}b{{f{l}}}}{{be}b{{n{l}}}{{Ab{}{{A`{c}}}}}}{{hc}h{{f{d}}}}2{{bCb}b}{{bAd}b}{{AfAd}Af}{{bce}b{{D`{Al}}}{{Gf{h}{{Bn{h}}}}}}{{bc}b{{Gh{h}{{Bn{h}}}}}}{{bce}b{{D`{Al}}}{{Gf{Af}{{Bn{Af}}}}}}{{bce}b{{D`{Al}}}{{Gf{b}{{Bn{b}}}}}}:{ch{{n{Ah}}}}{cAf{{n{Ah}}}}{cb{{n{l}}}}{{bc}b{{f{Cb}}}}={{hAd}h}::{{hc}h{{f{Fb}}}}{{bc}b{{f{d}}}}0{{hc}h{{f{Ah}}}}{{he}h{{n{Ah}}}{{Ab{}{{A`{c}}}}}}{{}Gj}{eGj{{n{F`}}Ej}{{Ab{}{{A`{c}}}}}}`{{hh}{{Cl{Bf}}}}{{AhAh}{{Cl{Bf}}}}{{}{{`{{Dn{}{{A`{Ff}}}}}}}}{b{{Df{B`Gl}}}}0{{bAd}b};{{AjAl}{{Cl{{Gn{c}}}}}{EhEjElEn}}{{AjAl}{{Cl{{H`{c}}}}}{EhEjElEn}}{{AjAl}{{Cl{c}}}{EhEjElEn}}{Aj{{Cl{{Bl{AnAj}}}}}}{bd}0{bAn}10{{hAd}h}0{{AfAd}Af}{{hce}h{{n{Ah}}}{{n{Bh}}}}{{hg}h{{n{Ah}}}{{n{Bh}}}{{Ab{}{{A`{{Bl{ce}}}}}}}}0{{hc}h{{f{Ah}}}}{{he}h{{n{Ah}}}{{Ab{}{{A`{c}}}}}}01{{Afc}Af{{f{Ah}}}}{{Afe}Af{{n{Ah}}}{{Ab{}{{A`{c}}}}}}{{hce}h{{n{Bj}}}{{n{Ah}}}}{{hg}h{{n{Bj}}}{{n{Ah}}}{{Ab{}{{A`{{Bl{ce}}}}}}}}{{bc}B`{{n{An}}}}{{hc}h{{f{E`}}}}0{{hc}h{{Ab{}{{A`{E`}}}}}}{{bc}b{{f{E`}}}}0{{bc}b{{Ab{}{{A`{E`}}}}}}{{bFl}b}{{bc}b{{n{b}}}}{Aj{{Cl{{Bl{AlAj}}}}}}{{bc}b{{f{l}}}}{{AjAl}{{Cl{Aj}}}}{Aj{{Cl{Al}}}}{{bAd}b}003{{be}b{{n{b}}}{{Ab{}{{A`{c}}}}}}{jAd}{{bCb}b}{ce{}{}}0000000{Dj{{Cl{Ff}}}}{Bd{{Cl{Ff}}}}{cAn{}}000{{hAd}h}{{AjAl}{{Df{AdHb}}}}{c{{Df{e}}}{}{}}0000000{{AjAl}{{Df{{Cl{{Ef{c}}}}Hb}}}{EhEjElEn}}{b{{Df{AjCf}}}}{{be}{{Df{AjCf}}}{{n{F`}}Ej}{{Ab{}{{A`{c}}}}}}0{{AjAl}{{Df{{Cl{{Fd{c}}}}Hb}}}{EhEjElEn}}{{AjAl}{{Df{{Cl{c}}Hb}}}{EhEjElEn}}{{AjAl}{{Df{{Cl{Fh}}Hb}}}}{{AjAl}{{Df{{Cl{Fj}}Hb}}}}77777777{{}{{Df{GjCf}}}}{e{{Df{GjCf}}}{{n{F`}}Ej}{{Ab{}{{A`{c}}}}}}{{AjAl}{{Df{{Cl{{Gn{c}}}}Hb}}}{EhEjElEn}}{{AjAl}{{Df{{Cl{{H`{c}}}}Hb}}}{EhEjElEn}}6{{Gje}{{Df{B`Cf}}}{{n{F`}}Ej}{{Ab{}{{A`{c}}}}}}{cHd{}}0000000{{Gje}B`{{n{F`}}Ej}{{Ab{}{{A`{c}}}}}}{{DhAj}{{Df{B`Cf}}}}0{{hc}h{{f{E`}}}}{{hc}h{{f{Bb}}}}{{hc}h{{f{l}}}}{{he}h{{n{l}}}{{Ab{}{{A`{c}}}}}}{{hc}h{{f{Cj}}}}`{{AjAl}{{Cl{Hf}}}}3{{}{{Ed{Dj}}}}{{}{{Ed{Bd}}}}{{bc}b{{f{l}}}}605{{be}b{{n{l}}}{{Ab{}{{A`{c}}}}}}109{{hc}h{{Ab{}{{A`{E`}}}}}}{{bc}b{{f{E`}}}}{{bc}b{{Ab{}{{A`{E`}}}}}}`````````````````````````````````````````````````````````````{{Ffc}Ff{{f{l}}}}{{Ffe}Ff{{n{l}}}{{Ab{}{{A`{c}}}}}}{{Hhc}Hh{{n{d}}}}{d{{`{Ch}}}}{BhCn}0{BhHj}{lCn}{l{{Ed{Eb}}}}{lAl}{lHj}1{{}Cj}{ce{}{}}00700003000000000000000000000000000000000000000{CjCj}{BjBj}{BhBh}{FfFf}{FbFb}{{{Gd{c}}}{{Gd{c}}}Ej}{ll}{dd}{HlHl}{HnHn}{I`I`}{{{Ib{c}}}{{Ib{c}}}{EjDjEjElEn}}{IdId}{{{If{c}}}{{If{c}}}{Ej{Ij{Ih}}EjElEn}}{{{Il{c}}}{{Il{c}}}{Ej{Ij{In}}}}{J`J`}{JbJb}{JdJd}{JfJf}{{{Jh{ce}}}{{Jh{ce}}}EjEj}{{{Jj{ce}}}{{Jj{ce}}}EjEj}{HhHh}{FlFl}{{ce}B`{}{}}0000000000000000000000{{BhBh}Bf}{{{Gd{c}}{Gd{c}}}BfJl}{{ll}Bf}{{dd}Bf}{{}Bh}{{}Ff}{{}Fb}{{}l}{{}d}0{{}Hl}{{}Hn}{{}I`}{{}{{Ib{c}}}{DjEjElEn}}{{}{{If{c}}}{{Ij{Ih}}EjElEn}}{{}{{Il{c}}}{{Ij{In}}}}{{}J`}{{}Jb}{{}Jd}{{}Jf}{{}Fl}0{BhCn}{lAl}{Fb{{Jn{Cb}}}}{{BjBj}Ad}{{BhBh}Ad}{{BhF`}Ad}{{BhAn}Ad}{{BhCn}Ad}{{BhAl}Ad}0{{FfFf}Ad}{{FbFb}Ad}{{{Gd{c}}{Gd{c}}}AdK`}{{lAh}Ad}{{ll}Ad}{{lCn}Ad}{{lAl}Ad}0{{lAn}Ad}2{{dd}Ad}{{FlKb}Fl}{{CjDb}{{Df{B`Dd}}}}{{BjDb}{{Df{B`Dd}}}}{{BhDb}{{Df{B`Dd}}}}{{FfDb}{{Df{B`Dd}}}}{{FbDb}{{Df{B`Dd}}}}0{{{Gd{c}}Db}{{Df{B`Dd}}}Kd}{{lDb}{{Df{B`Dd}}}}0{{dDb}{{Df{B`Dd}}}}0{{HlDb}{{Df{B`Dd}}}}{{HnDb}{{Df{B`Dd}}}}{{I`Db}{{Df{B`Dd}}}}{{{Ib{c}}Db}{{Df{B`Dd}}}{KdDjEjElEn}}{{IdDb}{{Df{B`Dd}}}}{{{If{c}}Db}{{Df{B`Dd}}}{Kd{Ij{Ih}}EjElEn}}{{{Il{c}}Db}{{Df{B`Dd}}}{Kd{Ij{In}}}}{{J`Db}{{Df{B`Dd}}}}{{JbDb}{{Df{B`Dd}}}}{{JdDb}{{Df{B`Dd}}}}{{JfDb}{{Df{B`Dd}}}}{{{Jh{ce}}Db}{{Df{B`Dd}}}KdKd}{{{Jj{ce}}Db}{{Df{B`Dd}}}KdKd}{{HhDb}{{Df{B`Dd}}}}{{FlDb}{{Df{B`Dd}}}}{{{Kf{Ih}}}Cj}{{{Dl{c}}}Cj{{n{Ff}}}}{{{Kh{Ih}}}Cj}{cc{}}{cCj{KjElEn}}{{{Kl{Ih}}}Cj}{{{Kn{Ih}}}Cj}{{{L`{Ih}}}Cj}{LbCj}{{{Ld{c}}}Cj{{n{Ff}}}}6{cBj{{n{Bh}}}}{lBh}{BhBh}{AlBh}2{CnBh}0;1;{cFf{{n{l}}}}{{{Kn{Cb}}}Fb}={{{L`{Cb}}}Fb}{LbFb}{{{Kl{Cb}}}Fb}{{{Kf{Cb}}}Fb}{CbFb}{{{Kh{Cb}}}Fb}{{{Cl{c}}}{{Gd{c}}}{}}{cc{}}{c{{Gd{c}}}{}}{Lfc{}}{Ahl}3{ll}{All}0{And}{Ald}70177777{eId{{n{Ff}}}{{Ab{}{{A`{c}}}}}}8{c{{If{e}}}{{Lh{Ih}}}{{Ij{Ih}}EjElEn}}9{c{{Il{e}}}{{Lh{In}}}{{Ij{In}}}}::::::::{FlKb}0{Ff{{Cl{d}}}}11{FfAl}{Ff{{`{{Dn{}{{A`{Al}}}}}}}}333{{Bhc}B`Fn}{{Fbc}B`Fn}{{{Gd{c}}e}B`LjFn}{{lc}B`Fn}{{FlKb}Fl}{{Ffc}Ff{{f{d}}}}{{FfAd}Ff}{ce{}{}}0000000000000000000000{f{{Gd{c}}}{}}{c{{Gd{Cj}}}{}}{c{{Gd{Bh}}}{}}{c{{Gd{Fb}}}{}}{{{Gd{c}}}{{Gd{c}}}{}}{c{{Gd{l}}}{}}3{c{{Gd{An}}}{}}{c{{Gd{Ah}}}{}}{c{{Gd{d}}}{}}77777777777777<{FfAd}={{{Kj{}{{Ll{c}}}}g}{{Jh{{Kj{}{{Ll{c}}}}g}}}{ElEnEj}{ElEnEj}{{Ln{c}{{Bn{e}}}}Ej}}{{FfAlAd}Ad}{FbCb}0{cCjKj}{cFf{{n{l}}}}{cFb{{n{Fb}}}}{{}d}{{}Hl}{{}Hn}{{}I`}{{}{{Ib{c}}}{DjEjElEn}}{cId{{n{Id}}}}{{}{{If{c}}}{{Ij{Ih}}EjElEn}}{{}{{Il{c}}}{{Ij{In}}}}{{}J`}{{}Jb}{{}Jd}{{}Jf}{{}Cj}{{{Kj{}{{Ll{c}}}}b{Cl{h}}F`}{{Df{cCf}}}{ElEnEj}}{{Hlb{Cl{h}}F`}{{Df{Cf}}}}{{Hnb{Cl{h}}F`}{{Df{Cf}}}}{{I`b{Cl{h}}F`}{{Df{Cf}}}}{{Idb{Cl{h}}F`}{{Df{AnCf}}}}{{{Jh{cg}}b{Cl{h}}F`}{{Df{Cf}}}Kj{ElEnEj}{{Ln{}{{Bn{e}}}}EjElEn}}{{{Kj{}{{Ll{c}}}}b{Cl{h}}F`Hf}{{Df{cCf}}}{ElEnEj}}{{{Kj{}{{Ll{c}}}}b{Cl{h}}Cn}{{Df{cCf}}}{ElEnEj}}{{Hlb{Cl{h}}Cn}{{Df{Cf}}}}{{Hnb{Cl{h}}Cn}{{Df{Cf}}}}{{I`b{Cl{h}}Cn}{{Df{Cf}}}}{{{Ib{c}}b{Cl{h}}Cn}{{Df{Cf}}}{DjEjElEn}}{{Idb{Cl{h}}Cn}{{Df{Cf}}}}{{{If{c}}b{Cl{h}}Cn}{{Df{Cf}}}{{Ij{Ih}}EjElEn}}{{{Il{c}}b{Cl{h}}Cn}{{Df{Cf}}}{{Ij{In}}EjElEn}}{{J`b{Cl{h}}Cn}{{Df{Cf}}}}{{Jbb{Cl{h}}Cn}{{Df{Cf}}}}{{Jdb{Cl{h}}Cn}{{Df{Cf}}}}{{Jfb{Cl{h}}Cn}{{Df{Cf}}}}{{{Jh{cg}}b{Cl{h}}Cn}{{Df{Cf}}}Kj{ElEnEj}{{Ln{}{{Bn{e}}}}EjElEn}}{{{Jj{ci}}b{Cl{h}}Cn}{{Df{Cf}}}Kj{ElEnEj}{{n{{Mb{M`}}}}}{{Ln{}{{Bn{{Df{eg}}}}}}EjElEn}}{{Hhb{Cl{h}}Cn}{{Df{Cf}}}}{{{Kj{}{{Ll{c}}}}b{Cl{h}}CnHf}{{Df{cCf}}}{ElEnEj}}{{Hhb{Cl{h}}CnHf}{{Df{Cf}}}}{{BhBh}{{Cl{Bf}}}}{{{Gd{c}}{Gd{c}}}{{Cl{Bf}}}Md}{{ll}{{Cl{Bf}}}}{{dd}{{Cl{Bf}}}}{{}Cj}{{FlKb}Fl}{{}Fl}{Cj{{Cl{{Mb{Dn}}}}}}{{{Kj{}{{Ll{c}}}}}{{Cl{{Mb{Dn}}}}}{ElEnEj}}{{{Ib{c}}}{{Cl{{Mb{Dn}}}}}{DjEjElEn}}{Id{{Cl{{Mb{Dn}}}}}}{J`{{Cl{{Mb{Dn}}}}}}{Jb{{Cl{{Mb{Dn}}}}}}{Jd{{Cl{{Mb{Dn}}}}}}{{{Jh{cg}}}{{Cl{{Mb{Dn}}}}}Kj{ElEnEj}{{Ln{}{{Bn{e}}}}EjElEn}}{{{Jj{ci}}}{{Cl{{Mb{Dn}}}}}Kj{ElEnEj}{{n{{Mb{M`}}}}}{{Ln{}{{Bn{{Df{eg}}}}}}EjElEn}}{{{If{c}}e}{{If{c}}}{{Ij{Ih}}EjElEn}{{Lh{Ih}}}}{{{Il{c}}e}{{Il{c}}}{{Ij{In}}}{{Lh{In}}}}{Fb{{Jn{Cb}}}}><`{cHh{{n{d}}}}{cHh{{n{l}}}}{FbAd}{BhF`}{ce{}{}}0000000000000000000000{cAn{}}00{c{{Df{e}}}{}{}}000000000000000000000000000000000000000000000{{{Kj{}{{Ll{c}}}}i}{{Jj{{Kj{}{{Ll{c}}}}i}}}{ElEnEj}{ElEnEj}{{n{{Mb{M`}}}}}{{Ln{c}{{Bn{{Df{eg}}}}}}EjElEn}}{CjMf}{cHd{}}0000000000000000000000{{FlKb}Fl}0{{}c{}}{{dE`}{{Df{B`Dd}}}}{{dAl}{{Df{B`Dd}}}}````````````````````````````````````````{MhEb}{{Kb{Cl{Mj}}}Kb}{{MlMl}Ml}{{KbMl}Kb}{{MlMl}B`}{{KbMl}B`}{KbKb}0{ce{}{}}000000000000000{{MnAd}Mn}{MlMl}{MjMj}{MnMn}{N`N`}{MhMh}4{NbNb}{NdNd}9{{ce}B`{}{}}0000000{{MjMj}Bf}{{MnMn}Bf}{{N`N`}Bf}{{MhMh}Bf}{{MlMl}Bf}{{NdNd}Bf}{{KbKb}Bf}{{MlMl}Ad}{{}Ml}{{}Nd}{{}Kb}{KbKb}{{KbMl}Kb}{{MjMj}Ad}{{MnMn}Ad}{{N`N`}Ad}{{MhMh}Ad}9{{NbNb}Ad}{{NdNd}Ad}{{KbMl}Ad}{{KbKb}Ad}{{Kb{Cl{Mj}}}Kb}{{MjDb}{{Df{B`Dd}}}}{{MnDb}{{Df{B`Dd}}}}{{N`Db}{{Df{B`Dd}}}}{{MhDb}{{Df{B`Dd}}}}{{MlDb}{{Df{B`Dd}}}}{{NbDb}{{Df{B`Dd}}}}{{NdDb}{{Df{B`Dd}}}}0{{KbDb}{{Df{B`Dd}}}}0{MnMj}{cc{}}{N`Mj}{EbMj}{{{Bl{EbEbEb}}}Mj}{MhMj}4{EbN`}{MnN`}6{{{Bl{EbEbEb}}}Mh}7777{MlKb}82{MhEb}{Kb{{Cl{Mj}}}}{KbMl}11{{Mjc}B`Fn}{{Mnc}B`Fn}{{N`c}B`Fn}{{Mhc}B`Fn}{{Mlc}B`Fn}{{Ndc}B`Fn}{{Kbc}B`Fn}{KbKb}{N`Eb}{{MlMl}Ml}{ce{}{}}0000000{N`{{Cl{Mn}}}}14{MnAd}{MlAd}{KbAd}7{MlNb}{{}Ml}{{}Kb}{NbCl}{{Mjc}Kb{{n{Mj}}}}{{Mnc}Kb{{n{Mj}}}}{{N`c}Kb{{n{Mj}}}}{{Mhc}Kb{{n{Mj}}}}{MjKb}{MnKb}{N`Kb}{MhKb}{{MjMj}{{Cl{Bf}}}}{{MnMn}{{Cl{Bf}}}}{{N`N`}{{Cl{Bf}}}}{{MhMh}{{Cl{Bf}}}}{{MlMl}{{Cl{Bf}}}}{{NdNd}{{Cl{Bf}}}}{{KbKb}{{Cl{Bf}}}}{MhEb}{{MlMl}Ml}{Ml{{`{ChNf}}}}{Nd{{`{ChNf}}}}{Kb{{`{ChNf}}}}{Mj{{`{ChNf}}}}{Mn{{`{ChNf}}}}{N`{{`{ChNf}}}}{Mh{{`{ChNf}}}}32104{{MlMlAd}Ml}{KbKb}9{{KbMl}Kb}{{MlMl}B`}{{KbMl}B`}{ce{}{}}0000000{cAn{}}0{c{{Df{e}}}{}{}}000000000000000{cHd{}}00000007{{Kb{Cl{Mj}}}Kb}{{KbNh}{{Df{B`Gl}}}}0````````````````````````````````````````````````````{{{Cf{c}}}{{Cf{e}}}NjNj}{Nl{{Cl{Al}}}}{Cd{{Cl{Al}}}}888888888888{NlNl}{NnNn}{CdCd}{{ce}B`{}{}}00{{{Cf{c}}}{{`{{Dn{}{{A`{{Bl{NlNn}}}}}}}}}Nj}{{NlNl}Ad}{{NnNn}Ad}{{CdCd}Ad}{{{Cf{c}}}LfNj}{{{Cf{c}}}O`Nj}{{{Cf{c}}Db}{{Df{B`Dd}}}Nj}0{{NlDb}{{Df{B`Dd}}}}0{{NnDb}{{Df{B`Dd}}}}0{{CdDb}{{Df{B`Dd}}}}0{{{Cf{c}}b}{{Cf{c}}}Nj}{{{Cf{Nj}}}d}{{{Cf{Ob}}}d}{Cfd}{cc{}}00{Dd{{Cf{c}}}Nj}{Gl{{Cf{c}}}Nj}222{{{Cf{c}}Nl}{{Cl{Nn}}}Nj}{{Nlc}B`Fn}{{Cdc}B`Fn}{{{Cf{c}}NlNn}{{Cl{Nn}}}Nj}{ce{}{}}00000{{{Cf{c}}}CdNj}{Cd{{Cf{c}}}Nj}{{{Cf{c}}}{{Df{B`Gl}}}Nj}{{Cdc}{{Cf{e}}}ChNj}{{{Cf{c}}}dNj}{{{Cf{c}}}{{Cl{M`}}}Nj}666{cAn{}}000{c{{Df{e}}}{}{}}00000000000{cHd{}}00000{{{Cf{c}}}AdNj}{{{Cf{c}}b}{{Cf{c}}}Nj}`````````````;;;;;;;;;;;;;;{HbHb}{G`G`}{{{Gn{c}}}{{Gn{c}}}Ej}{{{Ef{c}}}{{Ef{c}}}Ej}{FhFh}{GbGb}{HfHf}{{ce}B`{}{}}000000{{HfHf}Bf}{{}{{Gn{c}}}{}}{{}{{Ef{c}}}{}}{{}Fh}{{}Gb}{{HfHf}Ad}{{HbDb}{{Df{B`Dd}}}}0{{G`Db}{{Df{B`Dd}}}}{{{Gn{c}}Db}{{Df{B`Dd}}}Kd}{{{Ef{c}}Db}{{Df{B`Dd}}}Kd}{{FhDb}{{Df{B`Dd}}}}{{GbDb}{{Df{B`Dd}}}}{{HfDb}{{Df{B`Dd}}}}{cc{}}000000{ce{}{}}00000000000{G`{{Cl{Ah}}}}{{{Gn{c}}}Cl{}}{{{Ef{c}}}Cl{}}{Fh{{Cl{Cn}}}}{Gb{{Cl{Cb}}}}43210{{HfHf}{{Cl{Bf}}}}{G`{{Bl{Cb{Cl{Cb}}}}}}{{{Gn{c}}}{{Bl{Cb{Cl{Cb}}}}}{}}{{{Ef{c}}}{{Bl{Cb{Cl{Cb}}}}}{}}{Fh{{Bl{Cb{Cl{Cb}}}}}}{Gb{{Bl{Cb{Cl{Cb}}}}}};;;;;;;{cAn{}}{c{{Df{e}}}{}{}}0000000000000{cHd{}}000000``","c":[],"p":[[5,"Command",0],[5,"StyledStr",500],[10,"IntoResettable",500],[5,"Arg",0],[6,"ArgAction",0],[5,"Str",500],[10,"Into",1542],[17,"Item"],[10,"IntoIterator",1543],[1,"bool"],[5,"ArgGroup",0],[5,"Id",0],[5,"ArgMatches",0],[1,"str"],[5,"String",1544],[1,"unit"],[6,"ValueHint",0],[6,"ColorChoice",0],[6,"Ordering",1545],[5,"OsStr",500],[6,"ArgPredicate",500],[1,"tuple"],[17,"Output"],[1,"fn"],[1,"usize"],[6,"ErrorKind",1279],[5,"Error",1279],[10,"Display",1546],[5,"ValueParser",500],[6,"Option",1547],[5,"OsStr",1548],[10,"AsRef",1542],[5,"Formatter",1546],[5,"Error",1546],[6,"Result",1549],[10,"FromArgMatches",0],[10,"ValueEnum",0],[5,"Vec",1550],[10,"Iterator",1551],[1,"char"],[1,"u8"],[1,"slice"],[5,"ValuesRef",1421],[10,"Any",1552],[10,"Clone",1553],[10,"Send",1554],[10,"Sync",1554],[5,"OsString",1548],[5,"ValueRange",500],[5,"OccurrencesRef",1555],[5,"PossibleValue",500],[5,"RawValues",1421],[5,"RawOccurrences",1555],[5,"Styles",500],[10,"Hasher",1556],[5,"IdsRef",1421],[5,"Indices",1421],[6,"Resettable",500],[10,"FnOnce",1557],[10,"FnMut",1557],[10,"Parser",0],[5,"Error",1558],[5,"Values",1421],[5,"Occurrences",1555],[6,"MatchesError",1421],[5,"TypeId",1552],[6,"ValueSource",1421],[5,"UnknownArgumentValueParser",500],[5,"Path",1559],[5,"StringValueParser",500],[5,"OsStringValueParser",500],[5,"PathBufValueParser",500],[5,"EnumValueParser",500],[5,"PossibleValuesParser",500],[5,"RangedI64ValueParser",500],[1,"i64"],[10,"TryFrom",1542],[5,"RangedU64ValueParser",500],[1,"u64"],[5,"BoolValueParser",500],[5,"FalseyValueParser",500],[5,"BoolishValueParser",500],[5,"NonEmptyStringValueParser",500],[5,"MapValueParser",500],[5,"TryMapValueParser",500],[10,"Ord",1545],[6,"Bound",1560],[10,"PartialEq",1545],[5,"Style",1039],[10,"Debug",1546],[5,"RangeToInclusive",1560],[5,"Range",1560],[10,"TypedValueParser",500],[5,"RangeFrom",1560],[5,"RangeInclusive",1560],[5,"RangeTo",1560],[5,"RangeFull",1560],[1,"array"],[1,"never"],[10,"RangeBounds",1560],[10,"Hash",1556],[17,"Value"],[10,"Fn",1557],[10,"Error",1561],[5,"Box",1562],[10,"PartialOrd",1545],[5,"AnyValueId",1563],[5,"RgbColor",1039],[6,"Color",1039],[5,"Effects",1039],[6,"AnsiColor",1039],[5,"Ansi256Color",1039],[5,"EffectIter",1039],[5,"Reset",1039],[10,"Copy",1554],[10,"Write",1564],[10,"ErrorFormatter",1279],[6,"ContextKind",1279],[6,"ContextValue",1279],[1,"i32"],[5,"KindFormatter",1279],[10,"Args",0],[10,"Subcommand",0],[10,"CommandFactory",0],[10,"ValueParserFactory",500],[8,"Result",1279],[5,"DefaultFormatter",1279],[15,"Downcast",1540]],"b":[[146,"impl-PartialEq-for-Id"],[147,"impl-PartialEq%3C%26str%3E-for-Id"],[148,"impl-PartialEq%3CStr%3E-for-Id"],[149,"impl-PartialEq%3Cstr%3E-for-Id"],[150,"impl-PartialEq%3CString%3E-for-Id"],[160,"impl-Debug-for-Arg"],[161,"impl-Display-for-Arg"],[163,"impl-Display-for-Command"],[164,"impl-Debug-for-Command"],[167,"impl-Debug-for-Id"],[168,"impl-Display-for-Id"],[169,"impl-Debug-for-ColorChoice"],[170,"impl-Display-for-ColorChoice"],[180,"impl-From%3C%26Id%3E-for-Id"],[181,"impl-From%3C%26Str%3E-for-Id"],[182,"impl-From%3C%26str%3E-for-Id"],[184,"impl-From%3CStr%3E-for-Id"],[185,"impl-From%3C%26%26str%3E-for-Id"],[566,"impl-AsRef%3COsStr%3E-for-OsStr"],[567,"impl-AsRef%3CPath%3E-for-OsStr"],[568,"impl-AsRef%3COsStr%3E-for-Str"],[569,"impl-AsRef%3C%5Bu8%5D%3E-for-Str"],[570,"impl-AsRef%3Cstr%3E-for-Str"],[571,"impl-AsRef%3CPath%3E-for-Str"],[676,"impl-Default-for-StyledStr"],[677,"impl-Default-for-%26StyledStr"],[688,"impl-Default-for-Styles"],[689,"impl-Default-for-%26Styles"],[694,"impl-PartialEq-for-OsStr"],[695,"impl-PartialEq%3COsString%3E-for-OsStr"],[696,"impl-PartialEq%3CString%3E-for-OsStr"],[697,"impl-PartialEq%3C%26OsStr%3E-for-OsStr"],[698,"impl-PartialEq%3C%26str%3E-for-OsStr"],[699,"impl-PartialEq%3Cstr%3E-for-OsStr"],[703,"impl-PartialEq%3CId%3E-for-Str"],[704,"impl-PartialEq-for-Str"],[705,"impl-PartialEq%3COsStr%3E-for-Str"],[706,"impl-PartialEq%3Cstr%3E-for-Str"],[707,"impl-PartialEq%3C%26str%3E-for-Str"],[708,"impl-PartialEq%3CString%3E-for-Str"],[709,"impl-PartialEq%3C%26OsStr%3E-for-Str"],[716,"impl-Debug-for-ValueRange"],[717,"impl-Display-for-ValueRange"],[719,"impl-Display-for-Str"],[720,"impl-Debug-for-Str"],[721,"impl-Display-for-StyledStr"],[722,"impl-Debug-for-StyledStr"],[738,"impl-From%3CRangeToInclusive%3Ci64%3E%3E-for-ValueParser"],[739,"impl-From%3CVec%3CP%3E%3E-for-ValueParser"],[740,"impl-From%3CRange%3Ci64%3E%3E-for-ValueParser"],[742,"impl-From%3CP%3E-for-ValueParser"],[743,"impl-From%3CRangeFrom%3Ci64%3E%3E-for-ValueParser"],[744,"impl-From%3CRangeInclusive%3Ci64%3E%3E-for-ValueParser"],[745,"impl-From%3CRangeTo%3Ci64%3E%3E-for-ValueParser"],[746,"impl-From%3CRangeFull%3E-for-ValueParser"],[747,"impl-From%3C%5BP;+C%5D%3E-for-ValueParser"],[750,"impl-From%3CStr%3E-for-OsStr"],[751,"impl-From%3C%26OsStr%3E-for-OsStr"],[752,"impl-From%3C%26%26str%3E-for-OsStr"],[753,"impl-From%3C%26Str%3E-for-OsStr"],[754,"impl-From%3C%26OsStr%3E-for-OsStr"],[755,"impl-From%3C%26%26OsStr%3E-for-OsStr"],[757,"impl-From%3C%26str%3E-for-OsStr"],[760,"impl-From%3CRangeInclusive%3Cusize%3E%3E-for-ValueRange"],[762,"impl-From%3CRangeTo%3Cusize%3E%3E-for-ValueRange"],[763,"impl-From%3CRangeFull%3E-for-ValueRange"],[764,"impl-From%3CRangeFrom%3Cusize%3E%3E-for-ValueRange"],[765,"impl-From%3CRangeToInclusive%3Cusize%3E%3E-for-ValueRange"],[766,"impl-From%3Cusize%3E-for-ValueRange"],[767,"impl-From%3CRange%3Cusize%3E%3E-for-ValueRange"],[768,"impl-From%3COption%3CT%3E%3E-for-Resettable%3CT%3E"],[770,"impl-From%3CT%3E-for-Resettable%3CT%3E"],[772,"impl-From%3CId%3E-for-Str"],[774,"impl-From%3C%26Str%3E-for-Str"],[775,"impl-From%3C%26str%3E-for-Str"],[776,"impl-From%3C%26%26str%3E-for-Str"],[777,"impl-From%3CString%3E-for-StyledStr"],[778,"impl-From%3C%26%26str%3E-for-StyledStr"],[780,"impl-From%3C%26str%3E-for-StyledStr"],[781,"impl-From%3C%26String%3E-for-StyledStr"],[1141,"impl-PartialEq%3CEffects%3E-for-Style"],[1142,"impl-PartialEq-for-Style"],[1150,"impl-Display-for-Reset"],[1151,"impl-Debug-for-Reset"],[1152,"impl-Display-for-Style"],[1153,"impl-Debug-for-Style"],[1154,"impl-From%3CAnsiColor%3E-for-Color"],[1156,"impl-From%3CAnsi256Color%3E-for-Color"],[1157,"impl-From%3Cu8%3E-for-Color"],[1158,"impl-From%3C(u8,+u8,+u8)%3E-for-Color"],[1159,"impl-From%3CRgbColor%3E-for-Color"],[1161,"impl-From%3Cu8%3E-for-Ansi256Color"],[1162,"impl-From%3CAnsiColor%3E-for-Ansi256Color"],[1358,"impl-Debug-for-Error%3CF%3E"],[1359,"impl-Display-for-Error%3CF%3E"],[1360,"impl-Display-for-ContextKind"],[1361,"impl-Debug-for-ContextKind"],[1362,"impl-Debug-for-ContextValue"],[1363,"impl-Display-for-ContextValue"],[1364,"impl-Debug-for-ErrorKind"],[1365,"impl-Display-for-ErrorKind"],[1373,"impl-From%3CError%3E-for-Error%3CF%3E"],[1374,"impl-From%3CError%3E-for-Error%3CF%3E"],[1468,"impl-Display-for-MatchesError"],[1469,"impl-Debug-for-MatchesError"]]}],\ diff --git a/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/bluebps.rs.html b/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/bluebps.rs.html index ddc23b628..59fcf254c 100644 --- a/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/bluebps.rs.html +++ b/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/bluebps.rs.html @@ -1094,54 +1094,53 @@

    Files

    #[derive(Debug, Clone, PartialEq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum Messages { - State(StateStruct), - SetTemperatureMax(SetTemperatureMaxStruct), - CellTimeout(CellTimeoutStruct), - EraseFlash(EraseFlashStruct), - TemperatureMax(TemperatureMaxStruct), - CellVoltageMin(CellVoltageMinStruct), + SetTemperatureTimeout(SetTemperatureTimeoutStruct), CurrentTimeout(CurrentTimeoutStruct), - Reboot(RebootStruct), + Events(EventsStruct), + SetCurrentTimeout(SetCurrentTimeoutStruct), + SetStreamRate(SetStreamRateStruct), + SetLpfSampleFrequency(SetLpfSampleFrequencyStruct), + CurrentMax(CurrentMaxStruct), SetCellVoltageTimeout(SetCellVoltageTimeoutStruct), - SetCellVoltageMinimum(SetCellVoltageMinimumStruct), + SetTemperatureMax(SetTemperatureMaxStruct), SetLpfSetting(SetLpfSettingStruct), TemperatureTimeout(TemperatureTimeoutStruct), - SetLpfSampleFrequency(SetLpfSampleFrequencyStruct), - SetCurrentTimeout(SetCurrentTimeoutStruct), - ResetDefaults(ResetDefaultsStruct), - SetTemperatureTimeout(SetTemperatureTimeoutStruct), - SetStreamRate(SetStreamRateStruct), + TemperatureMax(TemperatureMaxStruct), + Reboot(RebootStruct), + SetCellVoltageMinimum(SetCellVoltageMinimumStruct), + EraseFlash(EraseFlashStruct), SetCurrentMax(SetCurrentMaxStruct), - CurrentMax(CurrentMaxStruct), - Events(EventsStruct), + ResetDefaults(ResetDefaultsStruct), + CellVoltageMin(CellVoltageMinStruct), + State(StateStruct), + CellTimeout(CellTimeoutStruct), } impl Messages { pub fn inner<T: 'static>(&self) -> Option<&T> { match self { - Self::State(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), - Self::SetTemperatureMax(inner_struct) => { + Self::SetTemperatureTimeout(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::CellTimeout(inner_struct) => { + Self::CurrentTimeout(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::EraseFlash(inner_struct) => { + Self::Events(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), + Self::SetCurrentTimeout(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::TemperatureMax(inner_struct) => { + Self::SetStreamRate(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::CellVoltageMin(inner_struct) => { + Self::SetLpfSampleFrequency(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::CurrentTimeout(inner_struct) => { + Self::CurrentMax(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::Reboot(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), Self::SetCellVoltageTimeout(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::SetCellVoltageMinimum(inner_struct) => { + Self::SetTemperatureMax(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } Self::SetLpfSetting(inner_struct) => { @@ -1150,147 +1149,153 @@

    Files

    Self::TemperatureTimeout(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::SetLpfSampleFrequency(inner_struct) => { + Self::TemperatureMax(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::SetCurrentTimeout(inner_struct) => { + Self::Reboot(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), + Self::SetCellVoltageMinimum(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::ResetDefaults(inner_struct) => { + Self::EraseFlash(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::SetTemperatureTimeout(inner_struct) => { + Self::SetCurrentMax(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::SetStreamRate(inner_struct) => { + Self::ResetDefaults(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::SetCurrentMax(inner_struct) => { + Self::CellVoltageMin(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::CurrentMax(inner_struct) => { + Self::State(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), + Self::CellTimeout(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::Events(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), } } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Get the current state of the device"] -pub struct StateStruct { - #[doc = "The main battery voltage"] - pub battery_voltage: u16, - #[doc = "The current measurement"] - pub battery_current: u16, - #[doc = "The battery temperature"] - pub battery_temperature: u16, - #[doc = "The cpu temperature"] - pub cpu_temperature: u16, - #[doc = "flags indicating if any of the configured limits are currently exceeded"] - pub flags: u8, - #[doc = "Array containing cell voltages"] - pub cell_voltages_length: u8, - pub cell_voltages: Vec<u16>, +#[doc = "Set the over-temperature timeout"] +pub struct SetTemperatureTimeoutStruct { + #[doc = "If the battery temperature exceeds the configured limit for this duration of time, the power will be locked-out"] + pub timeout: u16, } -impl SerializePayload for StateStruct { +impl SerializePayload for SetTemperatureTimeoutStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.battery_voltage.to_le_bytes()); - buffer.extend_from_slice(&self.battery_current.to_le_bytes()); - buffer.extend_from_slice(&self.battery_temperature.to_le_bytes()); - buffer.extend_from_slice(&self.cpu_temperature.to_le_bytes()); - buffer.extend_from_slice(&self.flags.to_le_bytes()); - buffer.extend_from_slice(&self.cell_voltages_length.to_le_bytes()); - for value in self.cell_voltages.iter() { - buffer.extend_from_slice(&value.to_le_bytes()); - } + buffer.extend_from_slice(&self.timeout.to_le_bytes()); buffer } } -impl DeserializePayload for StateStruct { +impl DeserializePayload for SetTemperatureTimeoutStruct { fn deserialize(payload: &[u8]) -> Self { Self { - battery_voltage: u16::from_le_bytes( + timeout: u16::from_le_bytes( payload[0usize..0usize + 2usize] .try_into() .expect("Wrong slice length"), ), - battery_current: u16::from_le_bytes( - payload[2usize..2usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), - battery_temperature: u16::from_le_bytes( - payload[4usize..4usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), - cpu_temperature: u16::from_le_bytes( - payload[6usize..6usize + 2usize] + } + } +} +impl MessageInfo for SetTemperatureTimeoutStruct { + fn id() -> u16 { + 9005u16 + } +} +#[derive(Debug, Clone, PartialEq, Default)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[doc = "Get the over-current timeout"] +pub struct CurrentTimeoutStruct { + #[doc = "If the battery current exceeds the configured limit for this duration of time, the power will be locked-out"] + pub timeout: u16, +} +impl SerializePayload for CurrentTimeoutStruct { + fn serialize(&self) -> Vec<u8> { + let mut buffer: Vec<u8> = Default::default(); + buffer.extend_from_slice(&self.timeout.to_le_bytes()); + buffer + } +} +impl DeserializePayload for CurrentTimeoutStruct { + fn deserialize(payload: &[u8]) -> Self { + Self { + timeout: u16::from_le_bytes( + payload[0usize..0usize + 2usize] .try_into() .expect("Wrong slice length"), ), - flags: payload[8usize].into(), - cell_voltages_length: payload.len() as u8, - cell_voltages: payload[9usize..payload.len()] - .chunks_exact(2usize) - .into_iter() - .map(|a| u16::from_le_bytes((*a).try_into().expect("Wrong slice length"))) - .collect::<Vec<u16>>(), } } } -impl MessageInfo for StateStruct { +impl MessageInfo for CurrentTimeoutStruct { fn id() -> u16 { - 9106u16 + 9103u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Set the maximum allowed battery temperature"] -pub struct SetTemperatureMaxStruct { - #[doc = "The maximum temperature allowed at the thermistor probe installed on the battery. 0~5000: 0~5V"] - pub limit: u16, +#[doc = "A record of events causing a power lock-out. These numbers are non-volatile and reset only with the erase_flash control message."] +pub struct EventsStruct { + #[doc = "The number of under-voltage events"] + pub voltage: u16, + #[doc = "The number of over-current events"] + pub current: u16, + #[doc = "The number of over-temperature events"] + pub temperature: u16, } -impl SerializePayload for SetTemperatureMaxStruct { +impl SerializePayload for EventsStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.limit.to_le_bytes()); + buffer.extend_from_slice(&self.voltage.to_le_bytes()); + buffer.extend_from_slice(&self.current.to_le_bytes()); + buffer.extend_from_slice(&self.temperature.to_le_bytes()); buffer } } -impl DeserializePayload for SetTemperatureMaxStruct { +impl DeserializePayload for EventsStruct { fn deserialize(payload: &[u8]) -> Self { Self { - limit: u16::from_le_bytes( + voltage: u16::from_le_bytes( payload[0usize..0usize + 2usize] .try_into() .expect("Wrong slice length"), ), + current: u16::from_le_bytes( + payload[2usize..2usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), + temperature: u16::from_le_bytes( + payload[4usize..4usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), } } } -impl MessageInfo for SetTemperatureMaxStruct { +impl MessageInfo for EventsStruct { fn id() -> u16 { - 9004u16 + 9107u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Get the undervoltage timeout"] -pub struct CellTimeoutStruct { - #[doc = "If an individual cell exceeds the configured limit for this duration of time, the power will be locked-out"] +#[doc = "Set the over-current timeout"] +pub struct SetCurrentTimeoutStruct { + #[doc = "If the battery current exceeds the configured limit for this duration of time, the power will be locked-out"] pub timeout: u16, } -impl SerializePayload for CellTimeoutStruct { +impl SerializePayload for SetCurrentTimeoutStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); buffer.extend_from_slice(&self.timeout.to_le_bytes()); buffer } } -impl DeserializePayload for CellTimeoutStruct { +impl DeserializePayload for SetCurrentTimeoutStruct { fn deserialize(payload: &[u8]) -> Self { Self { timeout: u16::from_le_bytes( @@ -1301,76 +1306,86 @@

    Files

    } } } -impl MessageInfo for CellTimeoutStruct { +impl MessageInfo for SetCurrentTimeoutStruct { fn id() -> u16 { - 9101u16 + 9003u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Erase flash, including parameter configuration and event counters. The mcu has a limited number of write/erase cycles (1k)!"] -pub struct EraseFlashStruct {} -impl SerializePayload for EraseFlashStruct { +#[doc = "Set the frequency to automatically output state messages."] +pub struct SetStreamRateStruct { + #[doc = "Rate to stream `state` messages. 0~100000Hz"] + pub rate: u32, +} +impl SerializePayload for SetStreamRateStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); + buffer.extend_from_slice(&self.rate.to_le_bytes()); buffer } } -impl DeserializePayload for EraseFlashStruct { +impl DeserializePayload for SetStreamRateStruct { fn deserialize(payload: &[u8]) -> Self { - Self {} + Self { + rate: u32::from_le_bytes( + payload[0usize..0usize + 4usize] + .try_into() + .expect("Wrong slice length"), + ), + } } } -impl MessageInfo for EraseFlashStruct { +impl MessageInfo for SetStreamRateStruct { fn id() -> u16 { - 9201u16 + 9006u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Get the maximum allowed battery temperature"] -pub struct TemperatureMaxStruct { - #[doc = "The minimum voltage allowed for any individual cell. 0~5000: 0~5V"] - pub limit: u16, +#[doc = "the frequency to take adc samples and run the filter."] +pub struct SetLpfSampleFrequencyStruct { + #[doc = "sample frequency in Hz. 1~100000"] + pub sample_frequency: u32, } -impl SerializePayload for TemperatureMaxStruct { +impl SerializePayload for SetLpfSampleFrequencyStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.limit.to_le_bytes()); + buffer.extend_from_slice(&self.sample_frequency.to_le_bytes()); buffer } } -impl DeserializePayload for TemperatureMaxStruct { +impl DeserializePayload for SetLpfSampleFrequencyStruct { fn deserialize(payload: &[u8]) -> Self { Self { - limit: u16::from_le_bytes( - payload[0usize..0usize + 2usize] + sample_frequency: u32::from_le_bytes( + payload[0usize..0usize + 4usize] .try_into() .expect("Wrong slice length"), ), } } } -impl MessageInfo for TemperatureMaxStruct { +impl MessageInfo for SetLpfSampleFrequencyStruct { fn id() -> u16 { - 9104u16 + 9007u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Get the minimum allowed cell voltage"] -pub struct CellVoltageMinStruct { - #[doc = "The minimum voltage allowed for any individual cell. 0~5000: 0~5V"] +#[doc = "get the maximum allowed battery current"] +pub struct CurrentMaxStruct { + #[doc = "The maximum allowed battery current 0~20000 = 0~200A"] pub limit: u16, } -impl SerializePayload for CellVoltageMinStruct { +impl SerializePayload for CurrentMaxStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); buffer.extend_from_slice(&self.limit.to_le_bytes()); buffer } } -impl DeserializePayload for CellVoltageMinStruct { +impl DeserializePayload for CurrentMaxStruct { fn deserialize(payload: &[u8]) -> Self { Self { limit: u16::from_le_bytes( @@ -1381,65 +1396,9 @@

    Files

    } } } -impl MessageInfo for CellVoltageMinStruct { - fn id() -> u16 { - 9100u16 - } -} -#[derive(Debug, Clone, PartialEq, Default)] -#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Get the over-current timeout"] -pub struct CurrentTimeoutStruct { - #[doc = "If the battery current exceeds the configured limit for this duration of time, the power will be locked-out"] - pub timeout: u16, -} -impl SerializePayload for CurrentTimeoutStruct { - fn serialize(&self) -> Vec<u8> { - let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.timeout.to_le_bytes()); - buffer - } -} -impl DeserializePayload for CurrentTimeoutStruct { - fn deserialize(payload: &[u8]) -> Self { - Self { - timeout: u16::from_le_bytes( - payload[0usize..0usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), - } - } -} -impl MessageInfo for CurrentTimeoutStruct { - fn id() -> u16 { - 9103u16 - } -} -#[derive(Debug, Clone, PartialEq, Default)] -#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "reboot the system"] -pub struct RebootStruct { - #[doc = "0 = normal reboot, run main application after reboot 1 = hold the device in bootloader after reboot"] - pub goto_bootloader: u8, -} -impl SerializePayload for RebootStruct { - fn serialize(&self) -> Vec<u8> { - let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.goto_bootloader.to_le_bytes()); - buffer - } -} -impl DeserializePayload for RebootStruct { - fn deserialize(payload: &[u8]) -> Self { - Self { - goto_bootloader: payload[0usize].into(), - } - } -} -impl MessageInfo for RebootStruct { +impl MessageInfo for CurrentMaxStruct { fn id() -> u16 { - 9200u16 + 9102u16 } } #[derive(Debug, Clone, PartialEq, Default)] @@ -1474,19 +1433,19 @@

    Files

    } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Set the minimum allowed cell voltage"] -pub struct SetCellVoltageMinimumStruct { - #[doc = "The minimum voltage allowed for any individual cell. 0~5000: 0~5V"] +#[doc = "Set the maximum allowed battery temperature"] +pub struct SetTemperatureMaxStruct { + #[doc = "The maximum temperature allowed at the thermistor probe installed on the battery. 0~5000: 0~5V"] pub limit: u16, } -impl SerializePayload for SetCellVoltageMinimumStruct { +impl SerializePayload for SetTemperatureMaxStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); buffer.extend_from_slice(&self.limit.to_le_bytes()); buffer } } -impl DeserializePayload for SetCellVoltageMinimumStruct { +impl DeserializePayload for SetTemperatureMaxStruct { fn deserialize(payload: &[u8]) -> Self { Self { limit: u16::from_le_bytes( @@ -1497,9 +1456,9 @@

    Files

    } } } -impl MessageInfo for SetCellVoltageMinimumStruct { +impl MessageInfo for SetTemperatureMaxStruct { fn id() -> u16 { - 9000u16 + 9004u16 } } #[derive(Debug, Clone, PartialEq, Default)] @@ -1564,102 +1523,78 @@

    Files

    } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "the frequency to take adc samples and run the filter."] -pub struct SetLpfSampleFrequencyStruct { - #[doc = "sample frequency in Hz. 1~100000"] - pub sample_frequency: u32, +#[doc = "Get the maximum allowed battery temperature"] +pub struct TemperatureMaxStruct { + #[doc = "The minimum voltage allowed for any individual cell. 0~5000: 0~5V"] + pub limit: u16, } -impl SerializePayload for SetLpfSampleFrequencyStruct { +impl SerializePayload for TemperatureMaxStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.sample_frequency.to_le_bytes()); + buffer.extend_from_slice(&self.limit.to_le_bytes()); buffer } } -impl DeserializePayload for SetLpfSampleFrequencyStruct { +impl DeserializePayload for TemperatureMaxStruct { fn deserialize(payload: &[u8]) -> Self { Self { - sample_frequency: u32::from_le_bytes( - payload[0usize..0usize + 4usize] + limit: u16::from_le_bytes( + payload[0usize..0usize + 2usize] .try_into() .expect("Wrong slice length"), ), } } } -impl MessageInfo for SetLpfSampleFrequencyStruct { +impl MessageInfo for TemperatureMaxStruct { fn id() -> u16 { - 9007u16 + 9104u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Set the over-current timeout"] -pub struct SetCurrentTimeoutStruct { - #[doc = "If the battery current exceeds the configured limit for this duration of time, the power will be locked-out"] - pub timeout: u16, +#[doc = "reboot the system"] +pub struct RebootStruct { + #[doc = "0 = normal reboot, run main application after reboot 1 = hold the device in bootloader after reboot"] + pub goto_bootloader: u8, } -impl SerializePayload for SetCurrentTimeoutStruct { +impl SerializePayload for RebootStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.timeout.to_le_bytes()); + buffer.extend_from_slice(&self.goto_bootloader.to_le_bytes()); buffer } } -impl DeserializePayload for SetCurrentTimeoutStruct { +impl DeserializePayload for RebootStruct { fn deserialize(payload: &[u8]) -> Self { Self { - timeout: u16::from_le_bytes( - payload[0usize..0usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), + goto_bootloader: payload[0usize].into(), } } } -impl MessageInfo for SetCurrentTimeoutStruct { - fn id() -> u16 { - 9003u16 - } -} -#[derive(Debug, Clone, PartialEq, Default)] -#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Reset parameter configuration to default values."] -pub struct ResetDefaultsStruct {} -impl SerializePayload for ResetDefaultsStruct { - fn serialize(&self) -> Vec<u8> { - let mut buffer: Vec<u8> = Default::default(); - buffer - } -} -impl DeserializePayload for ResetDefaultsStruct { - fn deserialize(payload: &[u8]) -> Self { - Self {} - } -} -impl MessageInfo for ResetDefaultsStruct { +impl MessageInfo for RebootStruct { fn id() -> u16 { - 9202u16 + 9200u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Set the over-temperature timeout"] -pub struct SetTemperatureTimeoutStruct { - #[doc = "If the battery temperature exceeds the configured limit for this duration of time, the power will be locked-out"] - pub timeout: u16, +#[doc = "Set the minimum allowed cell voltage"] +pub struct SetCellVoltageMinimumStruct { + #[doc = "The minimum voltage allowed for any individual cell. 0~5000: 0~5V"] + pub limit: u16, } -impl SerializePayload for SetTemperatureTimeoutStruct { +impl SerializePayload for SetCellVoltageMinimumStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.timeout.to_le_bytes()); + buffer.extend_from_slice(&self.limit.to_le_bytes()); buffer } } -impl DeserializePayload for SetTemperatureTimeoutStruct { +impl DeserializePayload for SetCellVoltageMinimumStruct { fn deserialize(payload: &[u8]) -> Self { Self { - timeout: u16::from_le_bytes( + limit: u16::from_le_bytes( payload[0usize..0usize + 2usize] .try_into() .expect("Wrong slice length"), @@ -1667,39 +1602,29 @@

    Files

    } } } -impl MessageInfo for SetTemperatureTimeoutStruct { +impl MessageInfo for SetCellVoltageMinimumStruct { fn id() -> u16 { - 9005u16 + 9000u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Set the frequency to automatically output state messages."] -pub struct SetStreamRateStruct { - #[doc = "Rate to stream `state` messages. 0~100000Hz"] - pub rate: u32, -} -impl SerializePayload for SetStreamRateStruct { +#[doc = "Erase flash, including parameter configuration and event counters. The mcu has a limited number of write/erase cycles (1k)!"] +pub struct EraseFlashStruct {} +impl SerializePayload for EraseFlashStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.rate.to_le_bytes()); buffer } } -impl DeserializePayload for SetStreamRateStruct { +impl DeserializePayload for EraseFlashStruct { fn deserialize(payload: &[u8]) -> Self { - Self { - rate: u32::from_le_bytes( - payload[0usize..0usize + 4usize] - .try_into() - .expect("Wrong slice length"), - ), - } + Self {} } } -impl MessageInfo for SetStreamRateStruct { +impl MessageInfo for EraseFlashStruct { fn id() -> u16 { - 9006u16 + 9201u16 } } #[derive(Debug, Clone, PartialEq, Default)] @@ -1734,140 +1659,224 @@

    Files

    } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "get the maximum allowed battery current"] -pub struct CurrentMaxStruct { - #[doc = "The maximum allowed battery current 0~20000 = 0~200A"] - pub limit: u16, -} -impl SerializePayload for CurrentMaxStruct { +#[doc = "Reset parameter configuration to default values."] +pub struct ResetDefaultsStruct {} +impl SerializePayload for ResetDefaultsStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.limit.to_le_bytes()); buffer } } -impl DeserializePayload for CurrentMaxStruct { +impl DeserializePayload for ResetDefaultsStruct { fn deserialize(payload: &[u8]) -> Self { - Self { - limit: u16::from_le_bytes( - payload[0usize..0usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), - } + Self {} } } -impl MessageInfo for CurrentMaxStruct { +impl MessageInfo for ResetDefaultsStruct { fn id() -> u16 { - 9102u16 + 9202u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "A record of events causing a power lock-out. These numbers are non-volatile and reset only with the erase_flash control message."] -pub struct EventsStruct { - #[doc = "The number of under-voltage events"] - pub voltage: u16, - #[doc = "The number of over-current events"] - pub current: u16, - #[doc = "The number of over-temperature events"] - pub temperature: u16, +#[doc = "Get the minimum allowed cell voltage"] +pub struct CellVoltageMinStruct { + #[doc = "The minimum voltage allowed for any individual cell. 0~5000: 0~5V"] + pub limit: u16, } -impl SerializePayload for EventsStruct { +impl SerializePayload for CellVoltageMinStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.voltage.to_le_bytes()); - buffer.extend_from_slice(&self.current.to_le_bytes()); - buffer.extend_from_slice(&self.temperature.to_le_bytes()); + buffer.extend_from_slice(&self.limit.to_le_bytes()); buffer } } -impl DeserializePayload for EventsStruct { +impl DeserializePayload for CellVoltageMinStruct { fn deserialize(payload: &[u8]) -> Self { Self { - voltage: u16::from_le_bytes( + limit: u16::from_le_bytes( payload[0usize..0usize + 2usize] .try_into() .expect("Wrong slice length"), ), - current: u16::from_le_bytes( - payload[2usize..2usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), - temperature: u16::from_le_bytes( - payload[4usize..4usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), } } } -impl MessageInfo for EventsStruct { +impl MessageInfo for CellVoltageMinStruct { fn id() -> u16 { - 9107u16 + 9100u16 } } -impl Device { - pub fn new<T>(io: T) -> Self - where - T: AsyncRead + AsyncWrite + Unpin + Send + 'static, - { - Self { - common: Common::new(io), - } - } - #[doc = "Get the current state of the device"] - pub async fn state(&self) -> Result<StateStruct, PingError> { - self.request().await - } - #[doc = "Set the maximum allowed battery temperature"] +#[derive(Debug, Clone, PartialEq, Default)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[doc = "Get the current state of the device"] +pub struct StateStruct { + #[doc = "The main battery voltage"] + pub battery_voltage: u16, + #[doc = "The current measurement"] + pub battery_current: u16, + #[doc = "The battery temperature"] + pub battery_temperature: u16, + #[doc = "The cpu temperature"] + pub cpu_temperature: u16, + #[doc = "flags indicating if any of the configured limits are currently exceeded"] + pub flags: u8, + #[doc = "Array containing cell voltages"] + pub cell_voltages_length: u8, + pub cell_voltages: Vec<u16>, +} +impl SerializePayload for StateStruct { + fn serialize(&self) -> Vec<u8> { + let mut buffer: Vec<u8> = Default::default(); + buffer.extend_from_slice(&self.battery_voltage.to_le_bytes()); + buffer.extend_from_slice(&self.battery_current.to_le_bytes()); + buffer.extend_from_slice(&self.battery_temperature.to_le_bytes()); + buffer.extend_from_slice(&self.cpu_temperature.to_le_bytes()); + buffer.extend_from_slice(&self.flags.to_le_bytes()); + buffer.extend_from_slice(&self.cell_voltages_length.to_le_bytes()); + for value in self.cell_voltages.iter() { + buffer.extend_from_slice(&value.to_le_bytes()); + } + buffer + } +} +impl DeserializePayload for StateStruct { + fn deserialize(payload: &[u8]) -> Self { + Self { + battery_voltage: u16::from_le_bytes( + payload[0usize..0usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), + battery_current: u16::from_le_bytes( + payload[2usize..2usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), + battery_temperature: u16::from_le_bytes( + payload[4usize..4usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), + cpu_temperature: u16::from_le_bytes( + payload[6usize..6usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), + flags: payload[8usize].into(), + cell_voltages_length: payload.len() as u8, + cell_voltages: payload[9usize..payload.len()] + .chunks_exact(2usize) + .into_iter() + .map(|a| u16::from_le_bytes((*a).try_into().expect("Wrong slice length"))) + .collect::<Vec<u16>>(), + } + } +} +impl MessageInfo for StateStruct { + fn id() -> u16 { + 9106u16 + } +} +#[derive(Debug, Clone, PartialEq, Default)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[doc = "Get the undervoltage timeout"] +pub struct CellTimeoutStruct { + #[doc = "If an individual cell exceeds the configured limit for this duration of time, the power will be locked-out"] + pub timeout: u16, +} +impl SerializePayload for CellTimeoutStruct { + fn serialize(&self) -> Vec<u8> { + let mut buffer: Vec<u8> = Default::default(); + buffer.extend_from_slice(&self.timeout.to_le_bytes()); + buffer + } +} +impl DeserializePayload for CellTimeoutStruct { + fn deserialize(payload: &[u8]) -> Self { + Self { + timeout: u16::from_le_bytes( + payload[0usize..0usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), + } + } +} +impl MessageInfo for CellTimeoutStruct { + fn id() -> u16 { + 9101u16 + } +} +impl Device { + pub fn new<T>(io: T) -> Self + where + T: AsyncRead + AsyncWrite + Unpin + Send + 'static, + { + Self { + common: Common::new(io), + } + } + #[doc = "Set the over-temperature timeout"] #[doc = "# Arguments"] - #[doc = "* `limit` \\[centidegrees Centigrade\\] - The maximum temperature allowed at the thermistor probe installed on the battery. 0~5000: 0~5V"] - pub async fn set_temperature_max(&self, limit: u16) -> Result<(), PingError> { - let request = Messages::SetTemperatureMax(SetTemperatureMaxStruct { limit }); + #[doc = "* `timeout` \\[millisecond\\] - If the battery temperature exceeds the configured limit for this duration of time, the power will be locked-out"] + pub async fn set_temperature_timeout(&self, timeout: u16) -> Result<(), PingError> { + let request = Messages::SetTemperatureTimeout(SetTemperatureTimeoutStruct { timeout }); let mut package = ProtocolMessage::new(); package.set_message(&request); let receiver = self.subscribe(); self.get_common().send_message(package).await?; - self.wait_for_ack(receiver, SetTemperatureMaxStruct::id()) + self.wait_for_ack(receiver, SetTemperatureTimeoutStruct::id()) .await } - #[doc = "Get the undervoltage timeout"] - pub async fn cell_timeout(&self) -> Result<CellTimeoutStruct, PingError> { + #[doc = "Get the over-current timeout"] + pub async fn current_timeout(&self) -> Result<CurrentTimeoutStruct, PingError> { self.request().await } - #[doc = "Erase flash, including parameter configuration and event counters. The mcu has a limited number of write/erase cycles (1k)!"] + #[doc = "A record of events causing a power lock-out. These numbers are non-volatile and reset only with the erase_flash control message."] + pub async fn events(&self) -> Result<EventsStruct, PingError> { + self.request().await + } + #[doc = "Set the over-current timeout"] #[doc = "# Arguments"] - pub async fn erase_flash(&self) -> Result<(), PingError> { - let request = Messages::EraseFlash(EraseFlashStruct {}); + #[doc = "* `timeout` \\[millisecond\\] - If the battery current exceeds the configured limit for this duration of time, the power will be locked-out"] + pub async fn set_current_timeout(&self, timeout: u16) -> Result<(), PingError> { + let request = Messages::SetCurrentTimeout(SetCurrentTimeoutStruct { timeout }); let mut package = ProtocolMessage::new(); package.set_message(&request); + let receiver = self.subscribe(); self.get_common().send_message(package).await?; - Ok(()) - } - #[doc = "Get the maximum allowed battery temperature"] - pub async fn temperature_max(&self) -> Result<TemperatureMaxStruct, PingError> { - self.request().await - } - #[doc = "Get the minimum allowed cell voltage"] - pub async fn cell_voltage_min(&self) -> Result<CellVoltageMinStruct, PingError> { - self.request().await + self.wait_for_ack(receiver, SetCurrentTimeoutStruct::id()) + .await } - #[doc = "Get the over-current timeout"] - pub async fn current_timeout(&self) -> Result<CurrentTimeoutStruct, PingError> { - self.request().await + #[doc = "Set the frequency to automatically output state messages."] + #[doc = "# Arguments"] + #[doc = "* `rate` \\[Hz\\] - Rate to stream `state` messages. 0~100000Hz"] + pub async fn set_stream_rate(&self, rate: u32) -> Result<(), PingError> { + let request = Messages::SetStreamRate(SetStreamRateStruct { rate }); + let mut package = ProtocolMessage::new(); + package.set_message(&request); + let receiver = self.subscribe(); + self.get_common().send_message(package).await?; + self.wait_for_ack(receiver, SetStreamRateStruct::id()).await } - #[doc = "reboot the system"] + #[doc = "the frequency to take adc samples and run the filter."] #[doc = "# Arguments"] - #[doc = "* `goto_bootloader` - 0 = normal reboot, run main application after reboot 1 = hold the device in bootloader after reboot"] - pub async fn reboot(&self, goto_bootloader: u8) -> Result<(), PingError> { - let request = Messages::Reboot(RebootStruct { goto_bootloader }); + #[doc = "* `sample_frequency` - sample frequency in Hz. 1~100000"] + pub async fn set_lpf_sample_frequency(&self, sample_frequency: u32) -> Result<(), PingError> { + let request = + Messages::SetLpfSampleFrequency(SetLpfSampleFrequencyStruct { sample_frequency }); let mut package = ProtocolMessage::new(); package.set_message(&request); + let receiver = self.subscribe(); self.get_common().send_message(package).await?; - Ok(()) - } + self.wait_for_ack(receiver, SetLpfSampleFrequencyStruct::id()) + .await + } + #[doc = "get the maximum allowed battery current"] + pub async fn current_max(&self) -> Result<CurrentMaxStruct, PingError> { + self.request().await + } #[doc = "Set the under-voltage timeout"] #[doc = "# Arguments"] #[doc = "* `timeout` \\[millisecond\\] - If an individual cell exceeds the configured limit for this duration of time, the power will be locked-out"] @@ -1880,16 +1889,16 @@

    Files

    self.wait_for_ack(receiver, SetCellVoltageTimeoutStruct::id()) .await } - #[doc = "Set the minimum allowed cell voltage"] + #[doc = "Set the maximum allowed battery temperature"] #[doc = "# Arguments"] - #[doc = "* `limit` \\[millivolt\\] - The minimum voltage allowed for any individual cell. 0~5000: 0~5V"] - pub async fn set_cell_voltage_minimum(&self, limit: u16) -> Result<(), PingError> { - let request = Messages::SetCellVoltageMinimum(SetCellVoltageMinimumStruct { limit }); + #[doc = "* `limit` \\[centidegrees Centigrade\\] - The maximum temperature allowed at the thermistor probe installed on the battery. 0~5000: 0~5V"] + pub async fn set_temperature_max(&self, limit: u16) -> Result<(), PingError> { + let request = Messages::SetTemperatureMax(SetTemperatureMaxStruct { limit }); let mut package = ProtocolMessage::new(); package.set_message(&request); let receiver = self.subscribe(); self.get_common().send_message(package).await?; - self.wait_for_ack(receiver, SetCellVoltageMinimumStruct::id()) + self.wait_for_ack(receiver, SetTemperatureMaxStruct::id()) .await } #[doc = "Low pass filter setting. This value represents x in the equation `value = value * x + sample * (1-x)`. 0.0 = no filtering, 0.99 = heavy filtering."] @@ -1907,63 +1916,41 @@

    Files

    pub async fn temperature_timeout(&self) -> Result<TemperatureTimeoutStruct, PingError> { self.request().await } - #[doc = "the frequency to take adc samples and run the filter."] - #[doc = "# Arguments"] - #[doc = "* `sample_frequency` - sample frequency in Hz. 1~100000"] - pub async fn set_lpf_sample_frequency(&self, sample_frequency: u32) -> Result<(), PingError> { - let request = - Messages::SetLpfSampleFrequency(SetLpfSampleFrequencyStruct { sample_frequency }); - let mut package = ProtocolMessage::new(); - package.set_message(&request); - let receiver = self.subscribe(); - self.get_common().send_message(package).await?; - self.wait_for_ack(receiver, SetLpfSampleFrequencyStruct::id()) - .await - } - #[doc = "Set the over-current timeout"] - #[doc = "# Arguments"] - #[doc = "* `timeout` \\[millisecond\\] - If the battery current exceeds the configured limit for this duration of time, the power will be locked-out"] - pub async fn set_current_timeout(&self, timeout: u16) -> Result<(), PingError> { - let request = Messages::SetCurrentTimeout(SetCurrentTimeoutStruct { timeout }); - let mut package = ProtocolMessage::new(); - package.set_message(&request); - let receiver = self.subscribe(); - self.get_common().send_message(package).await?; - self.wait_for_ack(receiver, SetCurrentTimeoutStruct::id()) - .await + #[doc = "Get the maximum allowed battery temperature"] + pub async fn temperature_max(&self) -> Result<TemperatureMaxStruct, PingError> { + self.request().await } - #[doc = "Reset parameter configuration to default values."] + #[doc = "reboot the system"] #[doc = "# Arguments"] - pub async fn reset_defaults(&self) -> Result<(), PingError> { - let request = Messages::ResetDefaults(ResetDefaultsStruct {}); + #[doc = "* `goto_bootloader` - 0 = normal reboot, run main application after reboot 1 = hold the device in bootloader after reboot"] + pub async fn reboot(&self, goto_bootloader: u8) -> Result<(), PingError> { + let request = Messages::Reboot(RebootStruct { goto_bootloader }); let mut package = ProtocolMessage::new(); package.set_message(&request); self.get_common().send_message(package).await?; Ok(()) } - #[doc = "Set the over-temperature timeout"] + #[doc = "Set the minimum allowed cell voltage"] #[doc = "# Arguments"] - #[doc = "* `timeout` \\[millisecond\\] - If the battery temperature exceeds the configured limit for this duration of time, the power will be locked-out"] - pub async fn set_temperature_timeout(&self, timeout: u16) -> Result<(), PingError> { - let request = Messages::SetTemperatureTimeout(SetTemperatureTimeoutStruct { timeout }); + #[doc = "* `limit` \\[millivolt\\] - The minimum voltage allowed for any individual cell. 0~5000: 0~5V"] + pub async fn set_cell_voltage_minimum(&self, limit: u16) -> Result<(), PingError> { + let request = Messages::SetCellVoltageMinimum(SetCellVoltageMinimumStruct { limit }); let mut package = ProtocolMessage::new(); package.set_message(&request); let receiver = self.subscribe(); self.get_common().send_message(package).await?; - self.wait_for_ack(receiver, SetTemperatureTimeoutStruct::id()) + self.wait_for_ack(receiver, SetCellVoltageMinimumStruct::id()) .await } - #[doc = "Set the frequency to automatically output state messages."] + #[doc = "Erase flash, including parameter configuration and event counters. The mcu has a limited number of write/erase cycles (1k)!"] #[doc = "# Arguments"] - #[doc = "* `rate` \\[Hz\\] - Rate to stream `state` messages. 0~100000Hz"] - pub async fn set_stream_rate(&self, rate: u32) -> Result<(), PingError> { - let request = Messages::SetStreamRate(SetStreamRateStruct { rate }); + pub async fn erase_flash(&self) -> Result<(), PingError> { + let request = Messages::EraseFlash(EraseFlashStruct {}); let mut package = ProtocolMessage::new(); package.set_message(&request); - let receiver = self.subscribe(); self.get_common().send_message(package).await?; - self.wait_for_ack(receiver, SetStreamRateStruct::id()).await - } + Ok(()) + } #[doc = "Set the maximum allowed battery current"] #[doc = "# Arguments"] #[doc = "* `limit` \\[centiampere\\] - The maximum allowed battery current 0~20000 = 0~200A"] @@ -1975,86 +1962,99 @@

    Files

    self.get_common().send_message(package).await?; self.wait_for_ack(receiver, SetCurrentMaxStruct::id()).await } - #[doc = "get the maximum allowed battery current"] - pub async fn current_max(&self) -> Result<CurrentMaxStruct, PingError> { + #[doc = "Reset parameter configuration to default values."] + #[doc = "# Arguments"] + pub async fn reset_defaults(&self) -> Result<(), PingError> { + let request = Messages::ResetDefaults(ResetDefaultsStruct {}); + let mut package = ProtocolMessage::new(); + package.set_message(&request); + self.get_common().send_message(package).await?; + Ok(()) + } + #[doc = "Get the minimum allowed cell voltage"] + pub async fn cell_voltage_min(&self) -> Result<CellVoltageMinStruct, PingError> { self.request().await } - #[doc = "A record of events causing a power lock-out. These numbers are non-volatile and reset only with the erase_flash control message."] - pub async fn events(&self) -> Result<EventsStruct, PingError> { + #[doc = "Get the current state of the device"] + pub async fn state(&self) -> Result<StateStruct, PingError> { + self.request().await + } + #[doc = "Get the undervoltage timeout"] + pub async fn cell_timeout(&self) -> Result<CellTimeoutStruct, PingError> { self.request().await } } impl PingMessage for Messages { fn message_name(&self) -> &'static str { match self { - Messages::State(..) => "state", - Messages::SetTemperatureMax(..) => "set_temperature_max", - Messages::CellTimeout(..) => "cell_timeout", - Messages::EraseFlash(..) => "erase_flash", - Messages::TemperatureMax(..) => "temperature_max", - Messages::CellVoltageMin(..) => "cell_voltage_min", + Messages::SetTemperatureTimeout(..) => "set_temperature_timeout", Messages::CurrentTimeout(..) => "current_timeout", - Messages::Reboot(..) => "reboot", + Messages::Events(..) => "events", + Messages::SetCurrentTimeout(..) => "set_current_timeout", + Messages::SetStreamRate(..) => "set_stream_rate", + Messages::SetLpfSampleFrequency(..) => "set_lpf_sample_frequency", + Messages::CurrentMax(..) => "current_max", Messages::SetCellVoltageTimeout(..) => "set_cell_voltage_timeout", - Messages::SetCellVoltageMinimum(..) => "set_cell_voltage_minimum", + Messages::SetTemperatureMax(..) => "set_temperature_max", Messages::SetLpfSetting(..) => "set_lpf_setting", Messages::TemperatureTimeout(..) => "temperature_timeout", - Messages::SetLpfSampleFrequency(..) => "set_lpf_sample_frequency", - Messages::SetCurrentTimeout(..) => "set_current_timeout", - Messages::ResetDefaults(..) => "reset_defaults", - Messages::SetTemperatureTimeout(..) => "set_temperature_timeout", - Messages::SetStreamRate(..) => "set_stream_rate", + Messages::TemperatureMax(..) => "temperature_max", + Messages::Reboot(..) => "reboot", + Messages::SetCellVoltageMinimum(..) => "set_cell_voltage_minimum", + Messages::EraseFlash(..) => "erase_flash", Messages::SetCurrentMax(..) => "set_current_max", - Messages::CurrentMax(..) => "current_max", - Messages::Events(..) => "events", + Messages::ResetDefaults(..) => "reset_defaults", + Messages::CellVoltageMin(..) => "cell_voltage_min", + Messages::State(..) => "state", + Messages::CellTimeout(..) => "cell_timeout", } } fn message_id(&self) -> u16 { match self { - Messages::State(..) => 9106u16, - Messages::SetTemperatureMax(..) => 9004u16, - Messages::CellTimeout(..) => 9101u16, - Messages::EraseFlash(..) => 9201u16, - Messages::TemperatureMax(..) => 9104u16, - Messages::CellVoltageMin(..) => 9100u16, + Messages::SetTemperatureTimeout(..) => 9005u16, Messages::CurrentTimeout(..) => 9103u16, - Messages::Reboot(..) => 9200u16, + Messages::Events(..) => 9107u16, + Messages::SetCurrentTimeout(..) => 9003u16, + Messages::SetStreamRate(..) => 9006u16, + Messages::SetLpfSampleFrequency(..) => 9007u16, + Messages::CurrentMax(..) => 9102u16, Messages::SetCellVoltageTimeout(..) => 9001u16, - Messages::SetCellVoltageMinimum(..) => 9000u16, + Messages::SetTemperatureMax(..) => 9004u16, Messages::SetLpfSetting(..) => 9008u16, Messages::TemperatureTimeout(..) => 9105u16, - Messages::SetLpfSampleFrequency(..) => 9007u16, - Messages::SetCurrentTimeout(..) => 9003u16, - Messages::ResetDefaults(..) => 9202u16, - Messages::SetTemperatureTimeout(..) => 9005u16, - Messages::SetStreamRate(..) => 9006u16, + Messages::TemperatureMax(..) => 9104u16, + Messages::Reboot(..) => 9200u16, + Messages::SetCellVoltageMinimum(..) => 9000u16, + Messages::EraseFlash(..) => 9201u16, Messages::SetCurrentMax(..) => 9002u16, - Messages::CurrentMax(..) => 9102u16, - Messages::Events(..) => 9107u16, + Messages::ResetDefaults(..) => 9202u16, + Messages::CellVoltageMin(..) => 9100u16, + Messages::State(..) => 9106u16, + Messages::CellTimeout(..) => 9101u16, } } fn message_id_from_name(name: &str) -> Result<u16, String> { match name { - "state" => Ok(9106u16), - "set_temperature_max" => Ok(9004u16), - "cell_timeout" => Ok(9101u16), - "erase_flash" => Ok(9201u16), - "temperature_max" => Ok(9104u16), - "cell_voltage_min" => Ok(9100u16), + "set_temperature_timeout" => Ok(9005u16), "current_timeout" => Ok(9103u16), - "reboot" => Ok(9200u16), + "events" => Ok(9107u16), + "set_current_timeout" => Ok(9003u16), + "set_stream_rate" => Ok(9006u16), + "set_lpf_sample_frequency" => Ok(9007u16), + "current_max" => Ok(9102u16), "set_cell_voltage_timeout" => Ok(9001u16), - "set_cell_voltage_minimum" => Ok(9000u16), + "set_temperature_max" => Ok(9004u16), "set_lpf_setting" => Ok(9008u16), "temperature_timeout" => Ok(9105u16), - "set_lpf_sample_frequency" => Ok(9007u16), - "set_current_timeout" => Ok(9003u16), - "reset_defaults" => Ok(9202u16), - "set_temperature_timeout" => Ok(9005u16), - "set_stream_rate" => Ok(9006u16), + "temperature_max" => Ok(9104u16), + "reboot" => Ok(9200u16), + "set_cell_voltage_minimum" => Ok(9000u16), + "erase_flash" => Ok(9201u16), "set_current_max" => Ok(9002u16), - "current_max" => Ok(9102u16), - "events" => Ok(9107u16), + "reset_defaults" => Ok(9202u16), + "cell_voltage_min" => Ok(9100u16), + "state" => Ok(9106u16), + "cell_timeout" => Ok(9101u16), _ => Err(format!("Failed to find message ID from name: {name}.")), } } @@ -2062,60 +2062,60 @@

    Files

    impl SerializePayload for Messages { fn serialize(&self) -> Vec<u8> { match self { - Messages::State(content) => content.serialize(), - Messages::SetTemperatureMax(content) => content.serialize(), - Messages::CellTimeout(content) => content.serialize(), - Messages::EraseFlash(content) => content.serialize(), - Messages::TemperatureMax(content) => content.serialize(), - Messages::CellVoltageMin(content) => content.serialize(), + Messages::SetTemperatureTimeout(content) => content.serialize(), Messages::CurrentTimeout(content) => content.serialize(), - Messages::Reboot(content) => content.serialize(), + Messages::Events(content) => content.serialize(), + Messages::SetCurrentTimeout(content) => content.serialize(), + Messages::SetStreamRate(content) => content.serialize(), + Messages::SetLpfSampleFrequency(content) => content.serialize(), + Messages::CurrentMax(content) => content.serialize(), Messages::SetCellVoltageTimeout(content) => content.serialize(), - Messages::SetCellVoltageMinimum(content) => content.serialize(), + Messages::SetTemperatureMax(content) => content.serialize(), Messages::SetLpfSetting(content) => content.serialize(), Messages::TemperatureTimeout(content) => content.serialize(), - Messages::SetLpfSampleFrequency(content) => content.serialize(), - Messages::SetCurrentTimeout(content) => content.serialize(), - Messages::ResetDefaults(content) => content.serialize(), - Messages::SetTemperatureTimeout(content) => content.serialize(), - Messages::SetStreamRate(content) => content.serialize(), + Messages::TemperatureMax(content) => content.serialize(), + Messages::Reboot(content) => content.serialize(), + Messages::SetCellVoltageMinimum(content) => content.serialize(), + Messages::EraseFlash(content) => content.serialize(), Messages::SetCurrentMax(content) => content.serialize(), - Messages::CurrentMax(content) => content.serialize(), - Messages::Events(content) => content.serialize(), + Messages::ResetDefaults(content) => content.serialize(), + Messages::CellVoltageMin(content) => content.serialize(), + Messages::State(content) => content.serialize(), + Messages::CellTimeout(content) => content.serialize(), } } } impl DeserializeGenericMessage for Messages { fn deserialize(message_id: u16, payload: &[u8]) -> Result<Self, &'static str> { Ok(match message_id { - 9106u16 => Messages::State(StateStruct::deserialize(payload)), - 9004u16 => Messages::SetTemperatureMax(SetTemperatureMaxStruct::deserialize(payload)), - 9101u16 => Messages::CellTimeout(CellTimeoutStruct::deserialize(payload)), - 9201u16 => Messages::EraseFlash(EraseFlashStruct::deserialize(payload)), - 9104u16 => Messages::TemperatureMax(TemperatureMaxStruct::deserialize(payload)), - 9100u16 => Messages::CellVoltageMin(CellVoltageMinStruct::deserialize(payload)), + 9005u16 => { + Messages::SetTemperatureTimeout(SetTemperatureTimeoutStruct::deserialize(payload)) + } 9103u16 => Messages::CurrentTimeout(CurrentTimeoutStruct::deserialize(payload)), - 9200u16 => Messages::Reboot(RebootStruct::deserialize(payload)), + 9107u16 => Messages::Events(EventsStruct::deserialize(payload)), + 9003u16 => Messages::SetCurrentTimeout(SetCurrentTimeoutStruct::deserialize(payload)), + 9006u16 => Messages::SetStreamRate(SetStreamRateStruct::deserialize(payload)), + 9007u16 => { + Messages::SetLpfSampleFrequency(SetLpfSampleFrequencyStruct::deserialize(payload)) + } + 9102u16 => Messages::CurrentMax(CurrentMaxStruct::deserialize(payload)), 9001u16 => { Messages::SetCellVoltageTimeout(SetCellVoltageTimeoutStruct::deserialize(payload)) } - 9000u16 => { - Messages::SetCellVoltageMinimum(SetCellVoltageMinimumStruct::deserialize(payload)) - } + 9004u16 => Messages::SetTemperatureMax(SetTemperatureMaxStruct::deserialize(payload)), 9008u16 => Messages::SetLpfSetting(SetLpfSettingStruct::deserialize(payload)), 9105u16 => Messages::TemperatureTimeout(TemperatureTimeoutStruct::deserialize(payload)), - 9007u16 => { - Messages::SetLpfSampleFrequency(SetLpfSampleFrequencyStruct::deserialize(payload)) - } - 9003u16 => Messages::SetCurrentTimeout(SetCurrentTimeoutStruct::deserialize(payload)), - 9202u16 => Messages::ResetDefaults(ResetDefaultsStruct::deserialize(payload)), - 9005u16 => { - Messages::SetTemperatureTimeout(SetTemperatureTimeoutStruct::deserialize(payload)) + 9104u16 => Messages::TemperatureMax(TemperatureMaxStruct::deserialize(payload)), + 9200u16 => Messages::Reboot(RebootStruct::deserialize(payload)), + 9000u16 => { + Messages::SetCellVoltageMinimum(SetCellVoltageMinimumStruct::deserialize(payload)) } - 9006u16 => Messages::SetStreamRate(SetStreamRateStruct::deserialize(payload)), + 9201u16 => Messages::EraseFlash(EraseFlashStruct::deserialize(payload)), 9002u16 => Messages::SetCurrentMax(SetCurrentMaxStruct::deserialize(payload)), - 9102u16 => Messages::CurrentMax(CurrentMaxStruct::deserialize(payload)), - 9107u16 => Messages::Events(EventsStruct::deserialize(payload)), + 9202u16 => Messages::ResetDefaults(ResetDefaultsStruct::deserialize(payload)), + 9100u16 => Messages::CellVoltageMin(CellVoltageMinStruct::deserialize(payload)), + 9106u16 => Messages::State(StateStruct::deserialize(payload)), + 9101u16 => Messages::CellTimeout(CellTimeoutStruct::deserialize(payload)), _ => { return Err(&"Unknown message id"); } diff --git a/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/common.rs.html b/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/common.rs.html index cf4bade30..c950dbfce 100644 --- a/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/common.rs.html +++ b/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/common.rs.html @@ -425,119 +425,65 @@

    Files

    #[derive(Debug, Clone, PartialEq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum Messages { - DeviceInformation(DeviceInformationStruct), - ProtocolVersion(ProtocolVersionStruct), + Ack(AckStruct), Nack(NackStruct), - GeneralRequest(GeneralRequestStruct), - SetDeviceId(SetDeviceIdStruct), AsciiText(AsciiTextStruct), - Ack(AckStruct), + DeviceInformation(DeviceInformationStruct), + SetDeviceId(SetDeviceIdStruct), + GeneralRequest(GeneralRequestStruct), + ProtocolVersion(ProtocolVersionStruct), } impl Messages { pub fn inner<T: 'static>(&self) -> Option<&T> { match self { - Self::DeviceInformation(inner_struct) => { + Self::Ack(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), + Self::Nack(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), + Self::AsciiText(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::ProtocolVersion(inner_struct) => { + Self::DeviceInformation(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::Nack(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), - Self::GeneralRequest(inner_struct) => { + Self::SetDeviceId(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::SetDeviceId(inner_struct) => { + Self::GeneralRequest(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::AsciiText(inner_struct) => { + Self::ProtocolVersion(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::Ack(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), } } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Device information"] -pub struct DeviceInformationStruct { - #[doc = "Device type. 0: Unknown; 1: Ping Echosounder; 2: Ping360"] - pub device_type: u8, - #[doc = "device-specific hardware revision"] - pub device_revision: u8, - #[doc = "Firmware version major number."] - pub firmware_version_major: u8, - #[doc = "Firmware version minor number."] - pub firmware_version_minor: u8, - #[doc = "Firmware version patch number."] - pub firmware_version_patch: u8, - #[doc = "reserved"] - pub reserved: u8, -} -impl SerializePayload for DeviceInformationStruct { - fn serialize(&self) -> Vec<u8> { - let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.device_type.to_le_bytes()); - buffer.extend_from_slice(&self.device_revision.to_le_bytes()); - buffer.extend_from_slice(&self.firmware_version_major.to_le_bytes()); - buffer.extend_from_slice(&self.firmware_version_minor.to_le_bytes()); - buffer.extend_from_slice(&self.firmware_version_patch.to_le_bytes()); - buffer.extend_from_slice(&self.reserved.to_le_bytes()); - buffer - } -} -impl DeserializePayload for DeviceInformationStruct { - fn deserialize(payload: &[u8]) -> Self { - Self { - device_type: payload[0usize].into(), - device_revision: payload[1usize].into(), - firmware_version_major: payload[2usize].into(), - firmware_version_minor: payload[3usize].into(), - firmware_version_patch: payload[4usize].into(), - reserved: payload[5usize].into(), - } - } -} -impl MessageInfo for DeviceInformationStruct { - fn id() -> u16 { - 4u16 - } -} -#[derive(Debug, Clone, PartialEq, Default)] -#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The protocol version"] -pub struct ProtocolVersionStruct { - #[doc = "Protocol version major number."] - pub version_major: u8, - #[doc = "Protocol version minor number."] - pub version_minor: u8, - #[doc = "Protocol version patch number."] - pub version_patch: u8, - #[doc = "reserved"] - pub reserved: u8, +#[doc = "Acknowledged."] +pub struct AckStruct { + #[doc = "The message ID that is ACKnowledged."] + pub acked_id: u16, } -impl SerializePayload for ProtocolVersionStruct { +impl SerializePayload for AckStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.version_major.to_le_bytes()); - buffer.extend_from_slice(&self.version_minor.to_le_bytes()); - buffer.extend_from_slice(&self.version_patch.to_le_bytes()); - buffer.extend_from_slice(&self.reserved.to_le_bytes()); + buffer.extend_from_slice(&self.acked_id.to_le_bytes()); buffer } } -impl DeserializePayload for ProtocolVersionStruct { +impl DeserializePayload for AckStruct { fn deserialize(payload: &[u8]) -> Self { Self { - version_major: payload[0usize].into(), - version_minor: payload[1usize].into(), - version_patch: payload[2usize].into(), - reserved: payload[3usize].into(), + acked_id: u16::from_le_bytes( + payload[0usize..0usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), } } } -impl MessageInfo for ProtocolVersionStruct { +impl MessageInfo for AckStruct { fn id() -> u16 { - 5u16 + 1u16 } } #[derive(Debug, Clone, PartialEq, Default)] @@ -578,32 +524,76 @@

    Files

    } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Requests a specific message to be sent from the sonar to the host. Command timeout should be set to 50 msec."] -pub struct GeneralRequestStruct { - #[doc = "Message ID to be requested."] - pub requested_id: u16, +#[doc = "A message for transmitting text data."] +pub struct AsciiTextStruct { + #[doc = "ASCII text message. (not necessarily NULL terminated)"] + pub ascii_message: String, } -impl SerializePayload for GeneralRequestStruct { +impl SerializePayload for AsciiTextStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.requested_id.to_le_bytes()); + buffer.extend_from_slice(self.ascii_message.as_bytes()); + buffer.push(0); buffer } } -impl DeserializePayload for GeneralRequestStruct { +impl DeserializePayload for AsciiTextStruct { fn deserialize(payload: &[u8]) -> Self { Self { - requested_id: u16::from_le_bytes( - payload[0usize..0usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), + ascii_message: String::from_utf8(payload[0usize..0usize + payload.len()].to_vec()) + .unwrap(), } } } -impl MessageInfo for GeneralRequestStruct { +impl MessageInfo for AsciiTextStruct { fn id() -> u16 { - 6u16 + 3u16 + } +} +#[derive(Debug, Clone, PartialEq, Default)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[doc = "Device information"] +pub struct DeviceInformationStruct { + #[doc = "Device type. 0: Unknown; 1: Ping Echosounder; 2: Ping360"] + pub device_type: u8, + #[doc = "device-specific hardware revision"] + pub device_revision: u8, + #[doc = "Firmware version major number."] + pub firmware_version_major: u8, + #[doc = "Firmware version minor number."] + pub firmware_version_minor: u8, + #[doc = "Firmware version patch number."] + pub firmware_version_patch: u8, + #[doc = "reserved"] + pub reserved: u8, +} +impl SerializePayload for DeviceInformationStruct { + fn serialize(&self) -> Vec<u8> { + let mut buffer: Vec<u8> = Default::default(); + buffer.extend_from_slice(&self.device_type.to_le_bytes()); + buffer.extend_from_slice(&self.device_revision.to_le_bytes()); + buffer.extend_from_slice(&self.firmware_version_major.to_le_bytes()); + buffer.extend_from_slice(&self.firmware_version_minor.to_le_bytes()); + buffer.extend_from_slice(&self.firmware_version_patch.to_le_bytes()); + buffer.extend_from_slice(&self.reserved.to_le_bytes()); + buffer + } +} +impl DeserializePayload for DeviceInformationStruct { + fn deserialize(payload: &[u8]) -> Self { + Self { + device_type: payload[0usize].into(), + device_revision: payload[1usize].into(), + firmware_version_major: payload[2usize].into(), + firmware_version_minor: payload[3usize].into(), + firmware_version_patch: payload[4usize].into(), + reserved: payload[5usize].into(), + } + } +} +impl MessageInfo for DeviceInformationStruct { + fn id() -> u16 { + 4u16 } } #[derive(Debug, Clone, PartialEq, Default)] @@ -634,60 +624,70 @@

    Files

    } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "A message for transmitting text data."] -pub struct AsciiTextStruct { - #[doc = "ASCII text message. (not necessarily NULL terminated)"] - pub ascii_message: String, +#[doc = "Requests a specific message to be sent from the sonar to the host. Command timeout should be set to 50 msec."] +pub struct GeneralRequestStruct { + #[doc = "Message ID to be requested."] + pub requested_id: u16, } -impl SerializePayload for AsciiTextStruct { +impl SerializePayload for GeneralRequestStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(self.ascii_message.as_bytes()); - buffer.push(0); + buffer.extend_from_slice(&self.requested_id.to_le_bytes()); buffer } } -impl DeserializePayload for AsciiTextStruct { +impl DeserializePayload for GeneralRequestStruct { fn deserialize(payload: &[u8]) -> Self { Self { - ascii_message: String::from_utf8(payload[0usize..0usize + payload.len()].to_vec()) - .unwrap(), + requested_id: u16::from_le_bytes( + payload[0usize..0usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), } } } -impl MessageInfo for AsciiTextStruct { +impl MessageInfo for GeneralRequestStruct { fn id() -> u16 { - 3u16 + 6u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Acknowledged."] -pub struct AckStruct { - #[doc = "The message ID that is ACKnowledged."] - pub acked_id: u16, +#[doc = "The protocol version"] +pub struct ProtocolVersionStruct { + #[doc = "Protocol version major number."] + pub version_major: u8, + #[doc = "Protocol version minor number."] + pub version_minor: u8, + #[doc = "Protocol version patch number."] + pub version_patch: u8, + #[doc = "reserved"] + pub reserved: u8, } -impl SerializePayload for AckStruct { +impl SerializePayload for ProtocolVersionStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.acked_id.to_le_bytes()); + buffer.extend_from_slice(&self.version_major.to_le_bytes()); + buffer.extend_from_slice(&self.version_minor.to_le_bytes()); + buffer.extend_from_slice(&self.version_patch.to_le_bytes()); + buffer.extend_from_slice(&self.reserved.to_le_bytes()); buffer } } -impl DeserializePayload for AckStruct { +impl DeserializePayload for ProtocolVersionStruct { fn deserialize(payload: &[u8]) -> Self { Self { - acked_id: u16::from_le_bytes( - payload[0usize..0usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), + version_major: payload[0usize].into(), + version_minor: payload[1usize].into(), + version_patch: payload[2usize].into(), + reserved: payload[3usize].into(), } } } -impl MessageInfo for AckStruct { +impl MessageInfo for ProtocolVersionStruct { fn id() -> u16 { - 1u16 + 5u16 } } impl Device { @@ -703,10 +703,6 @@

    Files

    pub async fn device_information(&self) -> Result<DeviceInformationStruct, PingError> { self.request().await } - #[doc = "The protocol version"] - pub async fn protocol_version(&self) -> Result<ProtocolVersionStruct, PingError> { - self.request().await - } #[doc = "Set the device ID."] #[doc = "# Arguments"] #[doc = "* `device_id` - Device ID (1-254). 0 is unknown and 255 is reserved for broadcast messages."] @@ -718,39 +714,43 @@

    Files

    self.get_common().send_message(package).await?; self.wait_for_ack(receiver, SetDeviceIdStruct::id()).await } + #[doc = "The protocol version"] + pub async fn protocol_version(&self) -> Result<ProtocolVersionStruct, PingError> { + self.request().await + } } impl PingMessage for Messages { fn message_name(&self) -> &'static str { match self { - Messages::DeviceInformation(..) => "device_information", - Messages::ProtocolVersion(..) => "protocol_version", + Messages::Ack(..) => "ack", Messages::Nack(..) => "nack", - Messages::GeneralRequest(..) => "general_request", - Messages::SetDeviceId(..) => "set_device_id", Messages::AsciiText(..) => "ascii_text", - Messages::Ack(..) => "ack", + Messages::DeviceInformation(..) => "device_information", + Messages::SetDeviceId(..) => "set_device_id", + Messages::GeneralRequest(..) => "general_request", + Messages::ProtocolVersion(..) => "protocol_version", } } fn message_id(&self) -> u16 { match self { - Messages::DeviceInformation(..) => 4u16, - Messages::ProtocolVersion(..) => 5u16, + Messages::Ack(..) => 1u16, Messages::Nack(..) => 2u16, - Messages::GeneralRequest(..) => 6u16, - Messages::SetDeviceId(..) => 100u16, Messages::AsciiText(..) => 3u16, - Messages::Ack(..) => 1u16, + Messages::DeviceInformation(..) => 4u16, + Messages::SetDeviceId(..) => 100u16, + Messages::GeneralRequest(..) => 6u16, + Messages::ProtocolVersion(..) => 5u16, } } fn message_id_from_name(name: &str) -> Result<u16, String> { match name { - "device_information" => Ok(4u16), - "protocol_version" => Ok(5u16), + "ack" => Ok(1u16), "nack" => Ok(2u16), - "general_request" => Ok(6u16), - "set_device_id" => Ok(100u16), "ascii_text" => Ok(3u16), - "ack" => Ok(1u16), + "device_information" => Ok(4u16), + "set_device_id" => Ok(100u16), + "general_request" => Ok(6u16), + "protocol_version" => Ok(5u16), _ => Err(format!("Failed to find message ID from name: {name}.")), } } @@ -758,26 +758,26 @@

    Files

    impl SerializePayload for Messages { fn serialize(&self) -> Vec<u8> { match self { - Messages::DeviceInformation(content) => content.serialize(), - Messages::ProtocolVersion(content) => content.serialize(), + Messages::Ack(content) => content.serialize(), Messages::Nack(content) => content.serialize(), - Messages::GeneralRequest(content) => content.serialize(), - Messages::SetDeviceId(content) => content.serialize(), Messages::AsciiText(content) => content.serialize(), - Messages::Ack(content) => content.serialize(), + Messages::DeviceInformation(content) => content.serialize(), + Messages::SetDeviceId(content) => content.serialize(), + Messages::GeneralRequest(content) => content.serialize(), + Messages::ProtocolVersion(content) => content.serialize(), } } } impl DeserializeGenericMessage for Messages { fn deserialize(message_id: u16, payload: &[u8]) -> Result<Self, &'static str> { Ok(match message_id { - 4u16 => Messages::DeviceInformation(DeviceInformationStruct::deserialize(payload)), - 5u16 => Messages::ProtocolVersion(ProtocolVersionStruct::deserialize(payload)), + 1u16 => Messages::Ack(AckStruct::deserialize(payload)), 2u16 => Messages::Nack(NackStruct::deserialize(payload)), - 6u16 => Messages::GeneralRequest(GeneralRequestStruct::deserialize(payload)), - 100u16 => Messages::SetDeviceId(SetDeviceIdStruct::deserialize(payload)), 3u16 => Messages::AsciiText(AsciiTextStruct::deserialize(payload)), - 1u16 => Messages::Ack(AckStruct::deserialize(payload)), + 4u16 => Messages::DeviceInformation(DeviceInformationStruct::deserialize(payload)), + 100u16 => Messages::SetDeviceId(SetDeviceIdStruct::deserialize(payload)), + 6u16 => Messages::GeneralRequest(GeneralRequestStruct::deserialize(payload)), + 5u16 => Messages::ProtocolVersion(ProtocolVersionStruct::deserialize(payload)), _ => { return Err(&"Unknown message id"); } diff --git a/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/ping1d.rs.html b/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/ping1d.rs.html index f7ad6b5f5..ae5e505e3 100644 --- a/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/ping1d.rs.html +++ b/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/ping1d.rs.html @@ -1437,108 +1437,108 @@

    Files

    #[derive(Debug, Clone, PartialEq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum Messages { - ContinuousStart(ContinuousStartStruct), - SetModeAuto(SetModeAutoStruct), - FirmwareVersion(FirmwareVersionStruct), - GeneralInfo(GeneralInfoStruct), - ModeAuto(ModeAutoStruct), - GotoBootloader(GotoBootloaderStruct), SetPingInterval(SetPingIntervalStruct), - PingInterval(PingIntervalStruct), - SetRange(SetRangeStruct), - SetSpeedOfSound(SetSpeedOfSoundStruct), - ContinuousStop(ContinuousStopStruct), - Range(RangeStruct), + DistanceSimple(DistanceSimpleStruct), Profile(ProfileStruct), - SetDeviceId(SetDeviceIdStruct), TransmitDuration(TransmitDurationStruct), - SetGainSetting(SetGainSettingStruct), - DistanceSimple(DistanceSimpleStruct), + GeneralInfo(GeneralInfoStruct), + GainSetting(GainSettingStruct), + FirmwareVersion(FirmwareVersionStruct), SetPingEnable(SetPingEnableStruct), - PcbTemperature(PcbTemperatureStruct), + ContinuousStop(ContinuousStopStruct), + SetGainSetting(SetGainSettingStruct), + SetSpeedOfSound(SetSpeedOfSoundStruct), Distance(DistanceStruct), - GainSetting(GainSettingStruct), - DeviceId(DeviceIdStruct), - Voltage5(Voltage5Struct), + SetRange(SetRangeStruct), + ContinuousStart(ContinuousStartStruct), + GotoBootloader(GotoBootloaderStruct), + Range(RangeStruct), ProcessorTemperature(ProcessorTemperatureStruct), + Voltage5(Voltage5Struct), PingEnable(PingEnableStruct), + ModeAuto(ModeAutoStruct), SpeedOfSound(SpeedOfSoundStruct), + SetDeviceId(SetDeviceIdStruct), + SetModeAuto(SetModeAutoStruct), + DeviceId(DeviceIdStruct), + PcbTemperature(PcbTemperatureStruct), + PingInterval(PingIntervalStruct), } impl Messages { pub fn inner<T: 'static>(&self) -> Option<&T> { match self { - Self::ContinuousStart(inner_struct) => { + Self::SetPingInterval(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::SetModeAuto(inner_struct) => { + Self::DistanceSimple(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::FirmwareVersion(inner_struct) => { + Self::Profile(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), + Self::TransmitDuration(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } Self::GeneralInfo(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::ModeAuto(inner_struct) => { + Self::GainSetting(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::GotoBootloader(inner_struct) => { + Self::FirmwareVersion(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::SetPingInterval(inner_struct) => { + Self::SetPingEnable(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::PingInterval(inner_struct) => { + Self::ContinuousStop(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::SetRange(inner_struct) => { + Self::SetGainSetting(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } Self::SetSpeedOfSound(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::ContinuousStop(inner_struct) => { + Self::Distance(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::Range(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), - Self::Profile(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), - Self::SetDeviceId(inner_struct) => { + Self::SetRange(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::TransmitDuration(inner_struct) => { + Self::ContinuousStart(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::SetGainSetting(inner_struct) => { + Self::GotoBootloader(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::DistanceSimple(inner_struct) => { + Self::Range(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), + Self::ProcessorTemperature(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::SetPingEnable(inner_struct) => { + Self::Voltage5(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::PcbTemperature(inner_struct) => { + Self::PingEnable(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::Distance(inner_struct) => { + Self::ModeAuto(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::GainSetting(inner_struct) => { + Self::SpeedOfSound(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::DeviceId(inner_struct) => { + Self::SetDeviceId(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::Voltage5(inner_struct) => { + Self::SetModeAuto(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::ProcessorTemperature(inner_struct) => { + Self::DeviceId(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::PingEnable(inner_struct) => { + Self::PcbTemperature(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::SpeedOfSound(inner_struct) => { + Self::PingInterval(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } } @@ -1546,22 +1546,22 @@

    Files

    } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Command to initiate continuous data stream of profile messages."] -pub struct ContinuousStartStruct { - #[doc = "The message id to stream. 1300: profile"] - pub id: u16, +#[doc = "The interval between acoustic measurements."] +pub struct SetPingIntervalStruct { + #[doc = "The interval between acoustic measurements."] + pub ping_interval: u16, } -impl SerializePayload for ContinuousStartStruct { +impl SerializePayload for SetPingIntervalStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.id.to_le_bytes()); + buffer.extend_from_slice(&self.ping_interval.to_le_bytes()); buffer } } -impl DeserializePayload for ContinuousStartStruct { +impl DeserializePayload for SetPingIntervalStruct { fn deserialize(payload: &[u8]) -> Self { Self { - id: u16::from_le_bytes( + ping_interval: u16::from_le_bytes( payload[0usize..0usize + 2usize] .try_into() .expect("Wrong slice length"), @@ -1569,81 +1569,160 @@

    Files

    } } } -impl MessageInfo for ContinuousStartStruct { +impl MessageInfo for SetPingIntervalStruct { fn id() -> u16 { - 1400u16 + 1004u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Set automatic or manual mode. Manual mode allows for manual selection of the gain and scan range."] -pub struct SetModeAutoStruct { - #[doc = "0: manual mode. 1: auto mode."] - pub mode_auto: u8, +#[doc = "The distance to target with confidence estimate."] +pub struct DistanceSimpleStruct { + #[doc = "Distance to the target."] + pub distance: u32, + #[doc = "Confidence in the distance measurement."] + pub confidence: u8, } -impl SerializePayload for SetModeAutoStruct { +impl SerializePayload for DistanceSimpleStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.mode_auto.to_le_bytes()); + buffer.extend_from_slice(&self.distance.to_le_bytes()); + buffer.extend_from_slice(&self.confidence.to_le_bytes()); buffer } } -impl DeserializePayload for SetModeAutoStruct { +impl DeserializePayload for DistanceSimpleStruct { fn deserialize(payload: &[u8]) -> Self { Self { - mode_auto: payload[0usize].into(), + distance: u32::from_le_bytes( + payload[0usize..0usize + 4usize] + .try_into() + .expect("Wrong slice length"), + ), + confidence: payload[4usize].into(), } } } -impl MessageInfo for SetModeAutoStruct { +impl MessageInfo for DistanceSimpleStruct { fn id() -> u16 { - 1003u16 + 1211u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Device information"] -pub struct FirmwareVersionStruct { - #[doc = "Device type. 0: Unknown; 1: Echosounder"] - pub device_type: u8, - #[doc = "Device model. 0: Unknown; 1: Ping1D"] - pub device_model: u8, - #[doc = "Firmware version major number."] - pub firmware_version_major: u16, - #[doc = "Firmware version minor number."] - pub firmware_version_minor: u16, +#[doc = "A profile produced from a single acoustic measurement. The data returned is an array of response strength at even intervals across the scan region. The scan region is defined as the region between <scan_start> and <scan_start + scan_length> millimeters away from the transducer. A distance measurement to the target is also provided."] +pub struct ProfileStruct { + #[doc = "The current return distance determined for the most recent acoustic measurement."] + pub distance: u32, + #[doc = "Confidence in the most recent range measurement."] + pub confidence: u16, + #[doc = "The acoustic pulse length during acoustic transmission/activation."] + pub transmit_duration: u16, + #[doc = "The pulse/measurement count since boot."] + pub ping_number: u32, + #[doc = "The beginning of the scan region in mm from the transducer."] + pub scan_start: u32, + #[doc = "The length of the scan region."] + pub scan_length: u32, + #[doc = "The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144"] + pub gain_setting: u32, + #[doc = "An array of return strength measurements taken at regular intervals across the scan region."] + pub profile_data_length: u16, + pub profile_data: Vec<u8>, } -impl SerializePayload for FirmwareVersionStruct { +impl SerializePayload for ProfileStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.device_type.to_le_bytes()); - buffer.extend_from_slice(&self.device_model.to_le_bytes()); - buffer.extend_from_slice(&self.firmware_version_major.to_le_bytes()); - buffer.extend_from_slice(&self.firmware_version_minor.to_le_bytes()); + buffer.extend_from_slice(&self.distance.to_le_bytes()); + buffer.extend_from_slice(&self.confidence.to_le_bytes()); + buffer.extend_from_slice(&self.transmit_duration.to_le_bytes()); + buffer.extend_from_slice(&self.ping_number.to_le_bytes()); + buffer.extend_from_slice(&self.scan_start.to_le_bytes()); + buffer.extend_from_slice(&self.scan_length.to_le_bytes()); + buffer.extend_from_slice(&self.gain_setting.to_le_bytes()); + buffer.extend_from_slice(&self.profile_data_length.to_le_bytes()); + for value in self.profile_data.iter() { + buffer.extend_from_slice(&value.to_le_bytes()); + } buffer } } -impl DeserializePayload for FirmwareVersionStruct { +impl DeserializePayload for ProfileStruct { fn deserialize(payload: &[u8]) -> Self { Self { - device_type: payload[0usize].into(), - device_model: payload[1usize].into(), - firmware_version_major: u16::from_le_bytes( - payload[2usize..2usize + 2usize] + distance: u32::from_le_bytes( + payload[0usize..0usize + 4usize] .try_into() .expect("Wrong slice length"), ), - firmware_version_minor: u16::from_le_bytes( + confidence: u16::from_le_bytes( payload[4usize..4usize + 2usize] .try_into() .expect("Wrong slice length"), ), + transmit_duration: u16::from_le_bytes( + payload[6usize..6usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), + ping_number: u32::from_le_bytes( + payload[8usize..8usize + 4usize] + .try_into() + .expect("Wrong slice length"), + ), + scan_start: u32::from_le_bytes( + payload[12usize..12usize + 4usize] + .try_into() + .expect("Wrong slice length"), + ), + scan_length: u32::from_le_bytes( + payload[16usize..16usize + 4usize] + .try_into() + .expect("Wrong slice length"), + ), + gain_setting: u32::from_le_bytes( + payload[20usize..20usize + 4usize] + .try_into() + .expect("Wrong slice length"), + ), + profile_data_length: payload.len() as u16, + profile_data: payload[24usize..payload.len()].to_vec(), } } } -impl MessageInfo for FirmwareVersionStruct { +impl MessageInfo for ProfileStruct { fn id() -> u16 { - 1200u16 + 1300u16 + } +} +#[derive(Debug, Clone, PartialEq, Default)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[doc = "The duration of the acoustic activation/transmission."] +pub struct TransmitDurationStruct { + #[doc = "Acoustic pulse duration."] + pub transmit_duration: u16, +} +impl SerializePayload for TransmitDurationStruct { + fn serialize(&self) -> Vec<u8> { + let mut buffer: Vec<u8> = Default::default(); + buffer.extend_from_slice(&self.transmit_duration.to_le_bytes()); + buffer + } +} +impl DeserializePayload for TransmitDurationStruct { + fn deserialize(payload: &[u8]) -> Self { + Self { + transmit_duration: u16::from_le_bytes( + payload[0usize..0usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), + } + } +} +impl MessageInfo for TransmitDurationStruct { + fn id() -> u16 { + 1208u16 } } #[derive(Debug, Clone, PartialEq, Default)] @@ -1710,250 +1789,196 @@

    Files

    } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The current operating mode of the device. Manual mode allows for manual selection of the gain and scan range."] -pub struct ModeAutoStruct { - #[doc = "0: manual mode, 1: auto mode"] - pub mode_auto: u8, -} -impl SerializePayload for ModeAutoStruct { - fn serialize(&self) -> Vec<u8> { - let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.mode_auto.to_le_bytes()); - buffer - } -} -impl DeserializePayload for ModeAutoStruct { - fn deserialize(payload: &[u8]) -> Self { - Self { - mode_auto: payload[0usize].into(), - } - } -} -impl MessageInfo for ModeAutoStruct { - fn id() -> u16 { - 1205u16 - } -} -#[derive(Debug, Clone, PartialEq, Default)] -#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Send the device into the bootloader. This is useful for firmware updates."] -pub struct GotoBootloaderStruct {} -impl SerializePayload for GotoBootloaderStruct { - fn serialize(&self) -> Vec<u8> { - let mut buffer: Vec<u8> = Default::default(); - buffer - } -} -impl DeserializePayload for GotoBootloaderStruct { - fn deserialize(payload: &[u8]) -> Self { - Self {} - } -} -impl MessageInfo for GotoBootloaderStruct { - fn id() -> u16 { - 1100u16 - } -} -#[derive(Debug, Clone, PartialEq, Default)] -#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The interval between acoustic measurements."] -pub struct SetPingIntervalStruct { - #[doc = "The interval between acoustic measurements."] - pub ping_interval: u16, +#[doc = "The current gain setting."] +pub struct GainSettingStruct { + #[doc = "The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144"] + pub gain_setting: u32, } -impl SerializePayload for SetPingIntervalStruct { +impl SerializePayload for GainSettingStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.ping_interval.to_le_bytes()); + buffer.extend_from_slice(&self.gain_setting.to_le_bytes()); buffer } } -impl DeserializePayload for SetPingIntervalStruct { +impl DeserializePayload for GainSettingStruct { fn deserialize(payload: &[u8]) -> Self { Self { - ping_interval: u16::from_le_bytes( - payload[0usize..0usize + 2usize] + gain_setting: u32::from_le_bytes( + payload[0usize..0usize + 4usize] .try_into() .expect("Wrong slice length"), ), } } } -impl MessageInfo for SetPingIntervalStruct { +impl MessageInfo for GainSettingStruct { fn id() -> u16 { - 1004u16 + 1207u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The interval between acoustic measurements."] -pub struct PingIntervalStruct { - #[doc = "The minimum interval between acoustic measurements. The actual interval may be longer."] - pub ping_interval: u16, +#[doc = "Device information"] +pub struct FirmwareVersionStruct { + #[doc = "Device type. 0: Unknown; 1: Echosounder"] + pub device_type: u8, + #[doc = "Device model. 0: Unknown; 1: Ping1D"] + pub device_model: u8, + #[doc = "Firmware version major number."] + pub firmware_version_major: u16, + #[doc = "Firmware version minor number."] + pub firmware_version_minor: u16, } -impl SerializePayload for PingIntervalStruct { +impl SerializePayload for FirmwareVersionStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.ping_interval.to_le_bytes()); + buffer.extend_from_slice(&self.device_type.to_le_bytes()); + buffer.extend_from_slice(&self.device_model.to_le_bytes()); + buffer.extend_from_slice(&self.firmware_version_major.to_le_bytes()); + buffer.extend_from_slice(&self.firmware_version_minor.to_le_bytes()); buffer } } -impl DeserializePayload for PingIntervalStruct { +impl DeserializePayload for FirmwareVersionStruct { fn deserialize(payload: &[u8]) -> Self { Self { - ping_interval: u16::from_le_bytes( - payload[0usize..0usize + 2usize] + device_type: payload[0usize].into(), + device_model: payload[1usize].into(), + firmware_version_major: u16::from_le_bytes( + payload[2usize..2usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), + firmware_version_minor: u16::from_le_bytes( + payload[4usize..4usize + 2usize] .try_into() .expect("Wrong slice length"), ), } } } -impl MessageInfo for PingIntervalStruct { +impl MessageInfo for FirmwareVersionStruct { fn id() -> u16 { - 1206u16 + 1200u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Set the scan range for acoustic measurements."] -pub struct SetRangeStruct { - #[doc = "Not documented"] - pub scan_start: u32, - #[doc = "The length of the scan range."] - pub scan_length: u32, +#[doc = "Enable or disable acoustic measurements."] +pub struct SetPingEnableStruct { + #[doc = "0: Disable, 1: Enable."] + pub ping_enabled: u8, } -impl SerializePayload for SetRangeStruct { +impl SerializePayload for SetPingEnableStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.scan_start.to_le_bytes()); - buffer.extend_from_slice(&self.scan_length.to_le_bytes()); + buffer.extend_from_slice(&self.ping_enabled.to_le_bytes()); buffer } } -impl DeserializePayload for SetRangeStruct { +impl DeserializePayload for SetPingEnableStruct { fn deserialize(payload: &[u8]) -> Self { Self { - scan_start: u32::from_le_bytes( - payload[0usize..0usize + 4usize] - .try_into() - .expect("Wrong slice length"), - ), - scan_length: u32::from_le_bytes( - payload[4usize..4usize + 4usize] - .try_into() - .expect("Wrong slice length"), - ), + ping_enabled: payload[0usize].into(), } } } -impl MessageInfo for SetRangeStruct { +impl MessageInfo for SetPingEnableStruct { fn id() -> u16 { - 1001u16 + 1006u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Set the speed of sound used for distance calculations."] -pub struct SetSpeedOfSoundStruct { - #[doc = "The speed of sound in the measurement medium. ~1,500,000 mm/s for water."] - pub speed_of_sound: u32, +#[doc = "Command to stop the continuous data stream of profile messages."] +pub struct ContinuousStopStruct { + #[doc = "The message id to stop streaming. 1300: profile"] + pub id: u16, } -impl SerializePayload for SetSpeedOfSoundStruct { +impl SerializePayload for ContinuousStopStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.speed_of_sound.to_le_bytes()); + buffer.extend_from_slice(&self.id.to_le_bytes()); buffer } } -impl DeserializePayload for SetSpeedOfSoundStruct { +impl DeserializePayload for ContinuousStopStruct { fn deserialize(payload: &[u8]) -> Self { Self { - speed_of_sound: u32::from_le_bytes( - payload[0usize..0usize + 4usize] + id: u16::from_le_bytes( + payload[0usize..0usize + 2usize] .try_into() .expect("Wrong slice length"), ), } } } -impl MessageInfo for SetSpeedOfSoundStruct { +impl MessageInfo for ContinuousStopStruct { fn id() -> u16 { - 1002u16 + 1401u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Command to stop the continuous data stream of profile messages."] -pub struct ContinuousStopStruct { - #[doc = "The message id to stop streaming. 1300: profile"] - pub id: u16, +#[doc = "Set the current gain setting."] +pub struct SetGainSettingStruct { + #[doc = "The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144"] + pub gain_setting: u8, } -impl SerializePayload for ContinuousStopStruct { +impl SerializePayload for SetGainSettingStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.id.to_le_bytes()); + buffer.extend_from_slice(&self.gain_setting.to_le_bytes()); buffer } } -impl DeserializePayload for ContinuousStopStruct { +impl DeserializePayload for SetGainSettingStruct { fn deserialize(payload: &[u8]) -> Self { Self { - id: u16::from_le_bytes( - payload[0usize..0usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), + gain_setting: payload[0usize].into(), } } } -impl MessageInfo for ContinuousStopStruct { +impl MessageInfo for SetGainSettingStruct { fn id() -> u16 { - 1401u16 + 1005u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The scan range for acoustic measurements. Measurements returned by the device will lie in the range (scan_start, scan_start + scan_length)."] -pub struct RangeStruct { - #[doc = "The beginning of the scan range in mm from the transducer."] - pub scan_start: u32, - #[doc = "The length of the scan range."] - pub scan_length: u32, +#[doc = "Set the speed of sound used for distance calculations."] +pub struct SetSpeedOfSoundStruct { + #[doc = "The speed of sound in the measurement medium. ~1,500,000 mm/s for water."] + pub speed_of_sound: u32, } -impl SerializePayload for RangeStruct { +impl SerializePayload for SetSpeedOfSoundStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.scan_start.to_le_bytes()); - buffer.extend_from_slice(&self.scan_length.to_le_bytes()); + buffer.extend_from_slice(&self.speed_of_sound.to_le_bytes()); buffer } } -impl DeserializePayload for RangeStruct { +impl DeserializePayload for SetSpeedOfSoundStruct { fn deserialize(payload: &[u8]) -> Self { Self { - scan_start: u32::from_le_bytes( + speed_of_sound: u32::from_le_bytes( payload[0usize..0usize + 4usize] .try_into() .expect("Wrong slice length"), ), - scan_length: u32::from_le_bytes( - payload[4usize..4usize + 4usize] - .try_into() - .expect("Wrong slice length"), - ), } } } -impl MessageInfo for RangeStruct { +impl MessageInfo for SetSpeedOfSoundStruct { fn id() -> u16 { - 1204u16 + 1002u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "A profile produced from a single acoustic measurement. The data returned is an array of response strength at even intervals across the scan region. The scan region is defined as the region between <scan_start> and <scan_start + scan_length> millimeters away from the transducer. A distance measurement to the target is also provided."] -pub struct ProfileStruct { +#[doc = "The distance to target with confidence estimate. Relevant device parameters during the measurement are also provided."] +pub struct DistanceStruct { #[doc = "The current return distance determined for the most recent acoustic measurement."] pub distance: u32, #[doc = "Confidence in the most recent range measurement."] @@ -1968,11 +1993,8 @@

    Files

    pub scan_length: u32, #[doc = "The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144"] pub gain_setting: u32, - #[doc = "An array of return strength measurements taken at regular intervals across the scan region."] - pub profile_data_length: u16, - pub profile_data: Vec<u8>, } -impl SerializePayload for ProfileStruct { +impl SerializePayload for DistanceStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); buffer.extend_from_slice(&self.distance.to_le_bytes()); @@ -1982,14 +2004,10 @@

    Files

    buffer.extend_from_slice(&self.scan_start.to_le_bytes()); buffer.extend_from_slice(&self.scan_length.to_le_bytes()); buffer.extend_from_slice(&self.gain_setting.to_le_bytes()); - buffer.extend_from_slice(&self.profile_data_length.to_le_bytes()); - for value in self.profile_data.iter() { - buffer.extend_from_slice(&value.to_le_bytes()); - } buffer } } -impl DeserializePayload for ProfileStruct { +impl DeserializePayload for DistanceStruct { fn deserialize(payload: &[u8]) -> Self { Self { distance: u32::from_le_bytes( @@ -2027,60 +2045,70 @@

    Files

    .try_into() .expect("Wrong slice length"), ), - profile_data_length: payload.len() as u16, - profile_data: payload[24usize..payload.len()].to_vec(), } } } -impl MessageInfo for ProfileStruct { +impl MessageInfo for DistanceStruct { fn id() -> u16 { - 1300u16 + 1212u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Set the device ID."] -pub struct SetDeviceIdStruct { - #[doc = "Device ID (0-254). 255 is reserved for broadcast messages."] - pub device_id: u8, +#[doc = "Set the scan range for acoustic measurements."] +pub struct SetRangeStruct { + #[doc = "Not documented"] + pub scan_start: u32, + #[doc = "The length of the scan range."] + pub scan_length: u32, } -impl SerializePayload for SetDeviceIdStruct { +impl SerializePayload for SetRangeStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.device_id.to_le_bytes()); + buffer.extend_from_slice(&self.scan_start.to_le_bytes()); + buffer.extend_from_slice(&self.scan_length.to_le_bytes()); buffer } } -impl DeserializePayload for SetDeviceIdStruct { +impl DeserializePayload for SetRangeStruct { fn deserialize(payload: &[u8]) -> Self { Self { - device_id: payload[0usize].into(), + scan_start: u32::from_le_bytes( + payload[0usize..0usize + 4usize] + .try_into() + .expect("Wrong slice length"), + ), + scan_length: u32::from_le_bytes( + payload[4usize..4usize + 4usize] + .try_into() + .expect("Wrong slice length"), + ), } } } -impl MessageInfo for SetDeviceIdStruct { +impl MessageInfo for SetRangeStruct { fn id() -> u16 { - 1000u16 + 1001u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The duration of the acoustic activation/transmission."] -pub struct TransmitDurationStruct { - #[doc = "Acoustic pulse duration."] - pub transmit_duration: u16, +#[doc = "Command to initiate continuous data stream of profile messages."] +pub struct ContinuousStartStruct { + #[doc = "The message id to stream. 1300: profile"] + pub id: u16, } -impl SerializePayload for TransmitDurationStruct { +impl SerializePayload for ContinuousStartStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.transmit_duration.to_le_bytes()); + buffer.extend_from_slice(&self.id.to_le_bytes()); buffer } } -impl DeserializePayload for TransmitDurationStruct { +impl DeserializePayload for ContinuousStartStruct { fn deserialize(payload: &[u8]) -> Self { Self { - transmit_duration: u16::from_le_bytes( + id: u16::from_le_bytes( payload[0usize..0usize + 2usize] .try_into() .expect("Wrong slice length"), @@ -2088,115 +2116,117 @@

    Files

    } } } -impl MessageInfo for TransmitDurationStruct { +impl MessageInfo for ContinuousStartStruct { fn id() -> u16 { - 1208u16 + 1400u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Set the current gain setting."] -pub struct SetGainSettingStruct { - #[doc = "The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144"] - pub gain_setting: u8, -} -impl SerializePayload for SetGainSettingStruct { +#[doc = "Send the device into the bootloader. This is useful for firmware updates."] +pub struct GotoBootloaderStruct {} +impl SerializePayload for GotoBootloaderStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.gain_setting.to_le_bytes()); buffer } } -impl DeserializePayload for SetGainSettingStruct { +impl DeserializePayload for GotoBootloaderStruct { fn deserialize(payload: &[u8]) -> Self { - Self { - gain_setting: payload[0usize].into(), - } + Self {} } } -impl MessageInfo for SetGainSettingStruct { +impl MessageInfo for GotoBootloaderStruct { fn id() -> u16 { - 1005u16 + 1100u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The distance to target with confidence estimate."] -pub struct DistanceSimpleStruct { - #[doc = "Distance to the target."] - pub distance: u32, - #[doc = "Confidence in the distance measurement."] - pub confidence: u8, +#[doc = "The scan range for acoustic measurements. Measurements returned by the device will lie in the range (scan_start, scan_start + scan_length)."] +pub struct RangeStruct { + #[doc = "The beginning of the scan range in mm from the transducer."] + pub scan_start: u32, + #[doc = "The length of the scan range."] + pub scan_length: u32, } -impl SerializePayload for DistanceSimpleStruct { +impl SerializePayload for RangeStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.distance.to_le_bytes()); - buffer.extend_from_slice(&self.confidence.to_le_bytes()); + buffer.extend_from_slice(&self.scan_start.to_le_bytes()); + buffer.extend_from_slice(&self.scan_length.to_le_bytes()); buffer } } -impl DeserializePayload for DistanceSimpleStruct { +impl DeserializePayload for RangeStruct { fn deserialize(payload: &[u8]) -> Self { Self { - distance: u32::from_le_bytes( + scan_start: u32::from_le_bytes( payload[0usize..0usize + 4usize] .try_into() .expect("Wrong slice length"), ), - confidence: payload[4usize].into(), + scan_length: u32::from_le_bytes( + payload[4usize..4usize + 4usize] + .try_into() + .expect("Wrong slice length"), + ), } } } -impl MessageInfo for DistanceSimpleStruct { +impl MessageInfo for RangeStruct { fn id() -> u16 { - 1211u16 + 1204u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Enable or disable acoustic measurements."] -pub struct SetPingEnableStruct { - #[doc = "0: Disable, 1: Enable."] - pub ping_enabled: u8, +#[doc = "Temperature of the device cpu."] +pub struct ProcessorTemperatureStruct { + #[doc = "The temperature in centi-degrees Centigrade (100 * degrees C)."] + pub processor_temperature: u16, } -impl SerializePayload for SetPingEnableStruct { +impl SerializePayload for ProcessorTemperatureStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.ping_enabled.to_le_bytes()); + buffer.extend_from_slice(&self.processor_temperature.to_le_bytes()); buffer } } -impl DeserializePayload for SetPingEnableStruct { +impl DeserializePayload for ProcessorTemperatureStruct { fn deserialize(payload: &[u8]) -> Self { Self { - ping_enabled: payload[0usize].into(), + processor_temperature: u16::from_le_bytes( + payload[0usize..0usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), } } } -impl MessageInfo for SetPingEnableStruct { +impl MessageInfo for ProcessorTemperatureStruct { fn id() -> u16 { - 1006u16 + 1213u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Temperature of the on-board thermistor."] -pub struct PcbTemperatureStruct { - #[doc = "The temperature in centi-degrees Centigrade (100 * degrees C)."] - pub pcb_temperature: u16, +#[doc = "The 5V rail voltage."] +pub struct Voltage5Struct { + #[doc = "The 5V rail voltage."] + pub voltage_5: u16, } -impl SerializePayload for PcbTemperatureStruct { +impl SerializePayload for Voltage5Struct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.pcb_temperature.to_le_bytes()); + buffer.extend_from_slice(&self.voltage_5.to_le_bytes()); buffer } } -impl DeserializePayload for PcbTemperatureStruct { +impl DeserializePayload for Voltage5Struct { fn deserialize(payload: &[u8]) -> Self { Self { - pcb_temperature: u16::from_le_bytes( + voltage_5: u16::from_le_bytes( payload[0usize..0usize + 2usize] .try_into() .expect("Wrong slice length"), @@ -2204,259 +2234,229 @@

    Files

    } } } -impl MessageInfo for PcbTemperatureStruct { +impl MessageInfo for Voltage5Struct { fn id() -> u16 { - 1214u16 + 1202u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The distance to target with confidence estimate. Relevant device parameters during the measurement are also provided."] -pub struct DistanceStruct { - #[doc = "The current return distance determined for the most recent acoustic measurement."] - pub distance: u32, - #[doc = "Confidence in the most recent range measurement."] - pub confidence: u16, - #[doc = "The acoustic pulse length during acoustic transmission/activation."] - pub transmit_duration: u16, - #[doc = "The pulse/measurement count since boot."] - pub ping_number: u32, - #[doc = "The beginning of the scan region in mm from the transducer."] - pub scan_start: u32, - #[doc = "The length of the scan region."] - pub scan_length: u32, - #[doc = "The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144"] - pub gain_setting: u32, +#[doc = "Acoustic output enabled state."] +pub struct PingEnableStruct { + #[doc = "The state of the acoustic output. 0: disabled, 1:enabled"] + pub ping_enabled: u8, } -impl SerializePayload for DistanceStruct { +impl SerializePayload for PingEnableStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.distance.to_le_bytes()); - buffer.extend_from_slice(&self.confidence.to_le_bytes()); - buffer.extend_from_slice(&self.transmit_duration.to_le_bytes()); - buffer.extend_from_slice(&self.ping_number.to_le_bytes()); - buffer.extend_from_slice(&self.scan_start.to_le_bytes()); - buffer.extend_from_slice(&self.scan_length.to_le_bytes()); - buffer.extend_from_slice(&self.gain_setting.to_le_bytes()); + buffer.extend_from_slice(&self.ping_enabled.to_le_bytes()); buffer } } -impl DeserializePayload for DistanceStruct { +impl DeserializePayload for PingEnableStruct { fn deserialize(payload: &[u8]) -> Self { Self { - distance: u32::from_le_bytes( - payload[0usize..0usize + 4usize] - .try_into() - .expect("Wrong slice length"), - ), - confidence: u16::from_le_bytes( - payload[4usize..4usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), - transmit_duration: u16::from_le_bytes( - payload[6usize..6usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), - ping_number: u32::from_le_bytes( - payload[8usize..8usize + 4usize] - .try_into() - .expect("Wrong slice length"), - ), - scan_start: u32::from_le_bytes( - payload[12usize..12usize + 4usize] - .try_into() - .expect("Wrong slice length"), - ), - scan_length: u32::from_le_bytes( - payload[16usize..16usize + 4usize] - .try_into() - .expect("Wrong slice length"), - ), - gain_setting: u32::from_le_bytes( - payload[20usize..20usize + 4usize] - .try_into() - .expect("Wrong slice length"), - ), + ping_enabled: payload[0usize].into(), } } } -impl MessageInfo for DistanceStruct { +impl MessageInfo for PingEnableStruct { fn id() -> u16 { - 1212u16 + 1215u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The current gain setting."] -pub struct GainSettingStruct { - #[doc = "The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144"] - pub gain_setting: u32, +#[doc = "The current operating mode of the device. Manual mode allows for manual selection of the gain and scan range."] +pub struct ModeAutoStruct { + #[doc = "0: manual mode, 1: auto mode"] + pub mode_auto: u8, } -impl SerializePayload for GainSettingStruct { +impl SerializePayload for ModeAutoStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.gain_setting.to_le_bytes()); + buffer.extend_from_slice(&self.mode_auto.to_le_bytes()); buffer } } -impl DeserializePayload for GainSettingStruct { +impl DeserializePayload for ModeAutoStruct { fn deserialize(payload: &[u8]) -> Self { Self { - gain_setting: u32::from_le_bytes( - payload[0usize..0usize + 4usize] - .try_into() - .expect("Wrong slice length"), - ), + mode_auto: payload[0usize].into(), } } } -impl MessageInfo for GainSettingStruct { +impl MessageInfo for ModeAutoStruct { fn id() -> u16 { - 1207u16 + 1205u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The device ID."] -pub struct DeviceIdStruct { - #[doc = "The device ID (0-254). 255 is reserved for broadcast messages."] - pub device_id: u8, +#[doc = "The speed of sound used for distance calculations."] +pub struct SpeedOfSoundStruct { + #[doc = "The speed of sound in the measurement medium. ~1,500,000 mm/s for water."] + pub speed_of_sound: u32, } -impl SerializePayload for DeviceIdStruct { +impl SerializePayload for SpeedOfSoundStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.device_id.to_le_bytes()); + buffer.extend_from_slice(&self.speed_of_sound.to_le_bytes()); buffer } } -impl DeserializePayload for DeviceIdStruct { +impl DeserializePayload for SpeedOfSoundStruct { fn deserialize(payload: &[u8]) -> Self { Self { - device_id: payload[0usize].into(), + speed_of_sound: u32::from_le_bytes( + payload[0usize..0usize + 4usize] + .try_into() + .expect("Wrong slice length"), + ), } } } -impl MessageInfo for DeviceIdStruct { +impl MessageInfo for SpeedOfSoundStruct { fn id() -> u16 { - 1201u16 + 1203u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The 5V rail voltage."] -pub struct Voltage5Struct { - #[doc = "The 5V rail voltage."] - pub voltage_5: u16, +#[doc = "Set the device ID."] +pub struct SetDeviceIdStruct { + #[doc = "Device ID (0-254). 255 is reserved for broadcast messages."] + pub device_id: u8, } -impl SerializePayload for Voltage5Struct { +impl SerializePayload for SetDeviceIdStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.voltage_5.to_le_bytes()); + buffer.extend_from_slice(&self.device_id.to_le_bytes()); buffer } } -impl DeserializePayload for Voltage5Struct { +impl DeserializePayload for SetDeviceIdStruct { fn deserialize(payload: &[u8]) -> Self { Self { - voltage_5: u16::from_le_bytes( - payload[0usize..0usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), + device_id: payload[0usize].into(), } } } -impl MessageInfo for Voltage5Struct { +impl MessageInfo for SetDeviceIdStruct { fn id() -> u16 { - 1202u16 + 1000u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Temperature of the device cpu."] -pub struct ProcessorTemperatureStruct { - #[doc = "The temperature in centi-degrees Centigrade (100 * degrees C)."] - pub processor_temperature: u16, +#[doc = "Set automatic or manual mode. Manual mode allows for manual selection of the gain and scan range."] +pub struct SetModeAutoStruct { + #[doc = "0: manual mode. 1: auto mode."] + pub mode_auto: u8, } -impl SerializePayload for ProcessorTemperatureStruct { +impl SerializePayload for SetModeAutoStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.processor_temperature.to_le_bytes()); + buffer.extend_from_slice(&self.mode_auto.to_le_bytes()); buffer } } -impl DeserializePayload for ProcessorTemperatureStruct { +impl DeserializePayload for SetModeAutoStruct { fn deserialize(payload: &[u8]) -> Self { Self { - processor_temperature: u16::from_le_bytes( - payload[0usize..0usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), + mode_auto: payload[0usize].into(), } } } -impl MessageInfo for ProcessorTemperatureStruct { +impl MessageInfo for SetModeAutoStruct { fn id() -> u16 { - 1213u16 + 1003u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Acoustic output enabled state."] -pub struct PingEnableStruct { - #[doc = "The state of the acoustic output. 0: disabled, 1:enabled"] - pub ping_enabled: u8, +#[doc = "The device ID."] +pub struct DeviceIdStruct { + #[doc = "The device ID (0-254). 255 is reserved for broadcast messages."] + pub device_id: u8, } -impl SerializePayload for PingEnableStruct { +impl SerializePayload for DeviceIdStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.ping_enabled.to_le_bytes()); + buffer.extend_from_slice(&self.device_id.to_le_bytes()); buffer } } -impl DeserializePayload for PingEnableStruct { +impl DeserializePayload for DeviceIdStruct { fn deserialize(payload: &[u8]) -> Self { Self { - ping_enabled: payload[0usize].into(), + device_id: payload[0usize].into(), } } } -impl MessageInfo for PingEnableStruct { +impl MessageInfo for DeviceIdStruct { fn id() -> u16 { - 1215u16 + 1201u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The speed of sound used for distance calculations."] -pub struct SpeedOfSoundStruct { - #[doc = "The speed of sound in the measurement medium. ~1,500,000 mm/s for water."] - pub speed_of_sound: u32, +#[doc = "Temperature of the on-board thermistor."] +pub struct PcbTemperatureStruct { + #[doc = "The temperature in centi-degrees Centigrade (100 * degrees C)."] + pub pcb_temperature: u16, } -impl SerializePayload for SpeedOfSoundStruct { +impl SerializePayload for PcbTemperatureStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.speed_of_sound.to_le_bytes()); + buffer.extend_from_slice(&self.pcb_temperature.to_le_bytes()); buffer } } -impl DeserializePayload for SpeedOfSoundStruct { +impl DeserializePayload for PcbTemperatureStruct { fn deserialize(payload: &[u8]) -> Self { Self { - speed_of_sound: u32::from_le_bytes( - payload[0usize..0usize + 4usize] + pcb_temperature: u16::from_le_bytes( + payload[0usize..0usize + 2usize] .try_into() .expect("Wrong slice length"), ), } } } -impl MessageInfo for SpeedOfSoundStruct { +impl MessageInfo for PcbTemperatureStruct { fn id() -> u16 { - 1203u16 + 1214u16 + } +} +#[derive(Debug, Clone, PartialEq, Default)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[doc = "The interval between acoustic measurements."] +pub struct PingIntervalStruct { + #[doc = "The minimum interval between acoustic measurements. The actual interval may be longer."] + pub ping_interval: u16, +} +impl SerializePayload for PingIntervalStruct { + fn serialize(&self) -> Vec<u8> { + let mut buffer: Vec<u8> = Default::default(); + buffer.extend_from_slice(&self.ping_interval.to_le_bytes()); + buffer + } +} +impl DeserializePayload for PingIntervalStruct { + fn deserialize(payload: &[u8]) -> Self { + Self { + ping_interval: u16::from_le_bytes( + payload[0usize..0usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), + } + } +} +impl MessageInfo for PingIntervalStruct { + fn id() -> u16 { + 1206u16 } } impl Device { @@ -2468,62 +2468,89 @@

    Files

    common: Common::new(io), } } - #[doc = "Command to initiate continuous data stream of profile messages."] - #[doc = "# Arguments"] - #[doc = "* `id` - The message id to stream. 1300: profile"] - pub async fn continuous_start(&self, id: u16) -> Result<(), PingError> { - let request = Messages::ContinuousStart(ContinuousStartStruct { id }); - let mut package = ProtocolMessage::new(); - package.set_message(&request); - self.get_common().send_message(package).await?; - Ok(()) - } - #[doc = "Set automatic or manual mode. Manual mode allows for manual selection of the gain and scan range."] + #[doc = "The interval between acoustic measurements."] #[doc = "# Arguments"] - #[doc = "* `mode_auto` - 0: manual mode. 1: auto mode."] - pub async fn set_mode_auto(&self, mode_auto: u8) -> Result<(), PingError> { - let request = Messages::SetModeAuto(SetModeAutoStruct { mode_auto }); + #[doc = "* `ping_interval` \\[ms\\] - The interval between acoustic measurements."] + pub async fn set_ping_interval(&self, ping_interval: u16) -> Result<(), PingError> { + let request = Messages::SetPingInterval(SetPingIntervalStruct { ping_interval }); let mut package = ProtocolMessage::new(); package.set_message(&request); let receiver = self.subscribe(); self.get_common().send_message(package).await?; - self.wait_for_ack(receiver, SetModeAutoStruct::id()).await + self.wait_for_ack(receiver, SetPingIntervalStruct::id()) + .await } - #[doc = "Device information"] - pub async fn firmware_version(&self) -> Result<FirmwareVersionStruct, PingError> { + #[doc = "The distance to target with confidence estimate."] + pub async fn distance_simple(&self) -> Result<DistanceSimpleStruct, PingError> { + self.request().await + } + #[doc = "A profile produced from a single acoustic measurement. The data returned is an array of response strength at even intervals across the scan region. The scan region is defined as the region between <scan_start> and <scan_start + scan_length> millimeters away from the transducer. A distance measurement to the target is also provided."] + pub async fn profile(&self) -> Result<ProfileStruct, PingError> { + self.request().await + } + #[doc = "The duration of the acoustic activation/transmission."] + pub async fn transmit_duration(&self) -> Result<TransmitDurationStruct, PingError> { self.request().await } #[doc = "General information."] pub async fn general_info(&self) -> Result<GeneralInfoStruct, PingError> { self.request().await } - #[doc = "The current operating mode of the device. Manual mode allows for manual selection of the gain and scan range."] - pub async fn mode_auto(&self) -> Result<ModeAutoStruct, PingError> { + #[doc = "The current gain setting."] + pub async fn gain_setting(&self) -> Result<GainSettingStruct, PingError> { self.request().await } - #[doc = "Send the device into the bootloader. This is useful for firmware updates."] + #[doc = "Device information"] + pub async fn firmware_version(&self) -> Result<FirmwareVersionStruct, PingError> { + self.request().await + } + #[doc = "Enable or disable acoustic measurements."] #[doc = "# Arguments"] - pub async fn goto_bootloader(&self) -> Result<(), PingError> { - let request = Messages::GotoBootloader(GotoBootloaderStruct {}); + #[doc = "* `ping_enabled` - 0: Disable, 1: Enable."] + pub async fn set_ping_enable(&self, ping_enabled: u8) -> Result<(), PingError> { + let request = Messages::SetPingEnable(SetPingEnableStruct { ping_enabled }); + let mut package = ProtocolMessage::new(); + package.set_message(&request); + let receiver = self.subscribe(); + self.get_common().send_message(package).await?; + self.wait_for_ack(receiver, SetPingEnableStruct::id()).await + } + #[doc = "Command to stop the continuous data stream of profile messages."] + #[doc = "# Arguments"] + #[doc = "* `id` - The message id to stop streaming. 1300: profile"] + pub async fn continuous_stop(&self, id: u16) -> Result<(), PingError> { + let request = Messages::ContinuousStop(ContinuousStopStruct { id }); let mut package = ProtocolMessage::new(); package.set_message(&request); self.get_common().send_message(package).await?; Ok(()) } - #[doc = "The interval between acoustic measurements."] + #[doc = "Set the current gain setting."] #[doc = "# Arguments"] - #[doc = "* `ping_interval` \\[ms\\] - The interval between acoustic measurements."] - pub async fn set_ping_interval(&self, ping_interval: u16) -> Result<(), PingError> { - let request = Messages::SetPingInterval(SetPingIntervalStruct { ping_interval }); + #[doc = "* `gain_setting` - The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144"] + pub async fn set_gain_setting(&self, gain_setting: u8) -> Result<(), PingError> { + let request = Messages::SetGainSetting(SetGainSettingStruct { gain_setting }); let mut package = ProtocolMessage::new(); package.set_message(&request); let receiver = self.subscribe(); self.get_common().send_message(package).await?; - self.wait_for_ack(receiver, SetPingIntervalStruct::id()) + self.wait_for_ack(receiver, SetGainSettingStruct::id()) .await } - #[doc = "The interval between acoustic measurements."] - pub async fn ping_interval(&self) -> Result<PingIntervalStruct, PingError> { + #[doc = "Set the speed of sound used for distance calculations."] + #[doc = "# Arguments"] + #[doc = "* `speed_of_sound` \\[mm/s\\] - The speed of sound in the measurement medium. ~1,500,000 mm/s for water."] + pub async fn set_speed_of_sound(&self, speed_of_sound: u32) -> Result<(), PingError> { + let request = Messages::SetSpeedOfSound(SetSpeedOfSoundStruct { speed_of_sound }); + let mut package = ProtocolMessage::new(); + package.set_message(&request); + let receiver = self.subscribe(); + self.get_common().send_message(package).await?; + self.wait_for_ack(receiver, SetSpeedOfSoundStruct::id()) + .await + } + #[doc = "The distance to target with confidence estimate. Relevant device parameters during the measurement are also provided."] + pub async fn distance(&self) -> Result<DistanceStruct, PingError> { self.request().await } #[doc = "Set the scan range for acoustic measurements."] @@ -2541,23 +2568,20 @@

    Files

    self.get_common().send_message(package).await?; self.wait_for_ack(receiver, SetRangeStruct::id()).await } - #[doc = "Set the speed of sound used for distance calculations."] + #[doc = "Command to initiate continuous data stream of profile messages."] #[doc = "# Arguments"] - #[doc = "* `speed_of_sound` \\[mm/s\\] - The speed of sound in the measurement medium. ~1,500,000 mm/s for water."] - pub async fn set_speed_of_sound(&self, speed_of_sound: u32) -> Result<(), PingError> { - let request = Messages::SetSpeedOfSound(SetSpeedOfSoundStruct { speed_of_sound }); + #[doc = "* `id` - The message id to stream. 1300: profile"] + pub async fn continuous_start(&self, id: u16) -> Result<(), PingError> { + let request = Messages::ContinuousStart(ContinuousStartStruct { id }); let mut package = ProtocolMessage::new(); package.set_message(&request); - let receiver = self.subscribe(); self.get_common().send_message(package).await?; - self.wait_for_ack(receiver, SetSpeedOfSoundStruct::id()) - .await - } - #[doc = "Command to stop the continuous data stream of profile messages."] + Ok(()) + } + #[doc = "Send the device into the bootloader. This is useful for firmware updates."] #[doc = "# Arguments"] - #[doc = "* `id` - The message id to stop streaming. 1300: profile"] - pub async fn continuous_stop(&self, id: u16) -> Result<(), PingError> { - let request = Messages::ContinuousStop(ContinuousStopStruct { id }); + pub async fn goto_bootloader(&self) -> Result<(), PingError> { + let request = Messages::GotoBootloader(GotoBootloaderStruct {}); let mut package = ProtocolMessage::new(); package.set_message(&request); self.get_common().send_message(package).await?; @@ -2567,8 +2591,24 @@

    Files

    pub async fn range(&self) -> Result<RangeStruct, PingError> { self.request().await } - #[doc = "A profile produced from a single acoustic measurement. The data returned is an array of response strength at even intervals across the scan region. The scan region is defined as the region between <scan_start> and <scan_start + scan_length> millimeters away from the transducer. A distance measurement to the target is also provided."] - pub async fn profile(&self) -> Result<ProfileStruct, PingError> { + #[doc = "Temperature of the device cpu."] + pub async fn processor_temperature(&self) -> Result<ProcessorTemperatureStruct, PingError> { + self.request().await + } + #[doc = "The 5V rail voltage."] + pub async fn voltage_5(&self) -> Result<Voltage5Struct, PingError> { + self.request().await + } + #[doc = "Acoustic output enabled state."] + pub async fn ping_enable(&self) -> Result<PingEnableStruct, PingError> { + self.request().await + } + #[doc = "The current operating mode of the device. Manual mode allows for manual selection of the gain and scan range."] + pub async fn mode_auto(&self) -> Result<ModeAutoStruct, PingError> { + self.request().await + } + #[doc = "The speed of sound used for distance calculations."] + pub async fn speed_of_sound(&self) -> Result<SpeedOfSoundStruct, PingError> { self.request().await } #[doc = "Set the device ID."] @@ -2582,159 +2622,119 @@

    Files

    self.get_common().send_message(package).await?; self.wait_for_ack(receiver, SetDeviceIdStruct::id()).await } - #[doc = "The duration of the acoustic activation/transmission."] - pub async fn transmit_duration(&self) -> Result<TransmitDurationStruct, PingError> { - self.request().await - } - #[doc = "Set the current gain setting."] - #[doc = "# Arguments"] - #[doc = "* `gain_setting` - The current gain setting. 0: 0.6, 1: 1.8, 2: 5.5, 3: 12.9, 4: 30.2, 5: 66.1, 6: 144"] - pub async fn set_gain_setting(&self, gain_setting: u8) -> Result<(), PingError> { - let request = Messages::SetGainSetting(SetGainSettingStruct { gain_setting }); - let mut package = ProtocolMessage::new(); - package.set_message(&request); - let receiver = self.subscribe(); - self.get_common().send_message(package).await?; - self.wait_for_ack(receiver, SetGainSettingStruct::id()) - .await - } - #[doc = "The distance to target with confidence estimate."] - pub async fn distance_simple(&self) -> Result<DistanceSimpleStruct, PingError> { - self.request().await - } - #[doc = "Enable or disable acoustic measurements."] + #[doc = "Set automatic or manual mode. Manual mode allows for manual selection of the gain and scan range."] #[doc = "# Arguments"] - #[doc = "* `ping_enabled` - 0: Disable, 1: Enable."] - pub async fn set_ping_enable(&self, ping_enabled: u8) -> Result<(), PingError> { - let request = Messages::SetPingEnable(SetPingEnableStruct { ping_enabled }); + #[doc = "* `mode_auto` - 0: manual mode. 1: auto mode."] + pub async fn set_mode_auto(&self, mode_auto: u8) -> Result<(), PingError> { + let request = Messages::SetModeAuto(SetModeAutoStruct { mode_auto }); let mut package = ProtocolMessage::new(); package.set_message(&request); let receiver = self.subscribe(); self.get_common().send_message(package).await?; - self.wait_for_ack(receiver, SetPingEnableStruct::id()).await - } - #[doc = "Temperature of the on-board thermistor."] - pub async fn pcb_temperature(&self) -> Result<PcbTemperatureStruct, PingError> { - self.request().await - } - #[doc = "The distance to target with confidence estimate. Relevant device parameters during the measurement are also provided."] - pub async fn distance(&self) -> Result<DistanceStruct, PingError> { - self.request().await - } - #[doc = "The current gain setting."] - pub async fn gain_setting(&self) -> Result<GainSettingStruct, PingError> { - self.request().await + self.wait_for_ack(receiver, SetModeAutoStruct::id()).await } #[doc = "The device ID."] pub async fn device_id(&self) -> Result<DeviceIdStruct, PingError> { self.request().await } - #[doc = "The 5V rail voltage."] - pub async fn voltage_5(&self) -> Result<Voltage5Struct, PingError> { - self.request().await - } - #[doc = "Temperature of the device cpu."] - pub async fn processor_temperature(&self) -> Result<ProcessorTemperatureStruct, PingError> { - self.request().await - } - #[doc = "Acoustic output enabled state."] - pub async fn ping_enable(&self) -> Result<PingEnableStruct, PingError> { + #[doc = "Temperature of the on-board thermistor."] + pub async fn pcb_temperature(&self) -> Result<PcbTemperatureStruct, PingError> { self.request().await } - #[doc = "The speed of sound used for distance calculations."] - pub async fn speed_of_sound(&self) -> Result<SpeedOfSoundStruct, PingError> { + #[doc = "The interval between acoustic measurements."] + pub async fn ping_interval(&self) -> Result<PingIntervalStruct, PingError> { self.request().await } } impl PingMessage for Messages { fn message_name(&self) -> &'static str { match self { - Messages::ContinuousStart(..) => "continuous_start", - Messages::SetModeAuto(..) => "set_mode_auto", - Messages::FirmwareVersion(..) => "firmware_version", - Messages::GeneralInfo(..) => "general_info", - Messages::ModeAuto(..) => "mode_auto", - Messages::GotoBootloader(..) => "goto_bootloader", Messages::SetPingInterval(..) => "set_ping_interval", - Messages::PingInterval(..) => "ping_interval", - Messages::SetRange(..) => "set_range", - Messages::SetSpeedOfSound(..) => "set_speed_of_sound", - Messages::ContinuousStop(..) => "continuous_stop", - Messages::Range(..) => "range", + Messages::DistanceSimple(..) => "distance_simple", Messages::Profile(..) => "profile", - Messages::SetDeviceId(..) => "set_device_id", Messages::TransmitDuration(..) => "transmit_duration", - Messages::SetGainSetting(..) => "set_gain_setting", - Messages::DistanceSimple(..) => "distance_simple", + Messages::GeneralInfo(..) => "general_info", + Messages::GainSetting(..) => "gain_setting", + Messages::FirmwareVersion(..) => "firmware_version", Messages::SetPingEnable(..) => "set_ping_enable", - Messages::PcbTemperature(..) => "pcb_temperature", + Messages::ContinuousStop(..) => "continuous_stop", + Messages::SetGainSetting(..) => "set_gain_setting", + Messages::SetSpeedOfSound(..) => "set_speed_of_sound", Messages::Distance(..) => "distance", - Messages::GainSetting(..) => "gain_setting", - Messages::DeviceId(..) => "device_id", - Messages::Voltage5(..) => "voltage_5", + Messages::SetRange(..) => "set_range", + Messages::ContinuousStart(..) => "continuous_start", + Messages::GotoBootloader(..) => "goto_bootloader", + Messages::Range(..) => "range", Messages::ProcessorTemperature(..) => "processor_temperature", + Messages::Voltage5(..) => "voltage_5", Messages::PingEnable(..) => "ping_enable", + Messages::ModeAuto(..) => "mode_auto", Messages::SpeedOfSound(..) => "speed_of_sound", + Messages::SetDeviceId(..) => "set_device_id", + Messages::SetModeAuto(..) => "set_mode_auto", + Messages::DeviceId(..) => "device_id", + Messages::PcbTemperature(..) => "pcb_temperature", + Messages::PingInterval(..) => "ping_interval", } } fn message_id(&self) -> u16 { match self { - Messages::ContinuousStart(..) => 1400u16, - Messages::SetModeAuto(..) => 1003u16, - Messages::FirmwareVersion(..) => 1200u16, - Messages::GeneralInfo(..) => 1210u16, - Messages::ModeAuto(..) => 1205u16, - Messages::GotoBootloader(..) => 1100u16, Messages::SetPingInterval(..) => 1004u16, - Messages::PingInterval(..) => 1206u16, - Messages::SetRange(..) => 1001u16, - Messages::SetSpeedOfSound(..) => 1002u16, - Messages::ContinuousStop(..) => 1401u16, - Messages::Range(..) => 1204u16, + Messages::DistanceSimple(..) => 1211u16, Messages::Profile(..) => 1300u16, - Messages::SetDeviceId(..) => 1000u16, Messages::TransmitDuration(..) => 1208u16, - Messages::SetGainSetting(..) => 1005u16, - Messages::DistanceSimple(..) => 1211u16, + Messages::GeneralInfo(..) => 1210u16, + Messages::GainSetting(..) => 1207u16, + Messages::FirmwareVersion(..) => 1200u16, Messages::SetPingEnable(..) => 1006u16, - Messages::PcbTemperature(..) => 1214u16, + Messages::ContinuousStop(..) => 1401u16, + Messages::SetGainSetting(..) => 1005u16, + Messages::SetSpeedOfSound(..) => 1002u16, Messages::Distance(..) => 1212u16, - Messages::GainSetting(..) => 1207u16, - Messages::DeviceId(..) => 1201u16, - Messages::Voltage5(..) => 1202u16, + Messages::SetRange(..) => 1001u16, + Messages::ContinuousStart(..) => 1400u16, + Messages::GotoBootloader(..) => 1100u16, + Messages::Range(..) => 1204u16, Messages::ProcessorTemperature(..) => 1213u16, + Messages::Voltage5(..) => 1202u16, Messages::PingEnable(..) => 1215u16, + Messages::ModeAuto(..) => 1205u16, Messages::SpeedOfSound(..) => 1203u16, + Messages::SetDeviceId(..) => 1000u16, + Messages::SetModeAuto(..) => 1003u16, + Messages::DeviceId(..) => 1201u16, + Messages::PcbTemperature(..) => 1214u16, + Messages::PingInterval(..) => 1206u16, } } fn message_id_from_name(name: &str) -> Result<u16, String> { match name { - "continuous_start" => Ok(1400u16), - "set_mode_auto" => Ok(1003u16), - "firmware_version" => Ok(1200u16), - "general_info" => Ok(1210u16), - "mode_auto" => Ok(1205u16), - "goto_bootloader" => Ok(1100u16), "set_ping_interval" => Ok(1004u16), - "ping_interval" => Ok(1206u16), - "set_range" => Ok(1001u16), - "set_speed_of_sound" => Ok(1002u16), - "continuous_stop" => Ok(1401u16), - "range" => Ok(1204u16), + "distance_simple" => Ok(1211u16), "profile" => Ok(1300u16), - "set_device_id" => Ok(1000u16), "transmit_duration" => Ok(1208u16), - "set_gain_setting" => Ok(1005u16), - "distance_simple" => Ok(1211u16), + "general_info" => Ok(1210u16), + "gain_setting" => Ok(1207u16), + "firmware_version" => Ok(1200u16), "set_ping_enable" => Ok(1006u16), - "pcb_temperature" => Ok(1214u16), + "continuous_stop" => Ok(1401u16), + "set_gain_setting" => Ok(1005u16), + "set_speed_of_sound" => Ok(1002u16), "distance" => Ok(1212u16), - "gain_setting" => Ok(1207u16), - "device_id" => Ok(1201u16), - "voltage_5" => Ok(1202u16), + "set_range" => Ok(1001u16), + "continuous_start" => Ok(1400u16), + "goto_bootloader" => Ok(1100u16), + "range" => Ok(1204u16), "processor_temperature" => Ok(1213u16), + "voltage_5" => Ok(1202u16), "ping_enable" => Ok(1215u16), + "mode_auto" => Ok(1205u16), "speed_of_sound" => Ok(1203u16), + "set_device_id" => Ok(1000u16), + "set_mode_auto" => Ok(1003u16), + "device_id" => Ok(1201u16), + "pcb_temperature" => Ok(1214u16), + "ping_interval" => Ok(1206u16), _ => Err(format!("Failed to find message ID from name: {name}.")), } } @@ -2742,66 +2742,66 @@

    Files

    impl SerializePayload for Messages { fn serialize(&self) -> Vec<u8> { match self { - Messages::ContinuousStart(content) => content.serialize(), - Messages::SetModeAuto(content) => content.serialize(), - Messages::FirmwareVersion(content) => content.serialize(), - Messages::GeneralInfo(content) => content.serialize(), - Messages::ModeAuto(content) => content.serialize(), - Messages::GotoBootloader(content) => content.serialize(), Messages::SetPingInterval(content) => content.serialize(), - Messages::PingInterval(content) => content.serialize(), - Messages::SetRange(content) => content.serialize(), - Messages::SetSpeedOfSound(content) => content.serialize(), - Messages::ContinuousStop(content) => content.serialize(), - Messages::Range(content) => content.serialize(), + Messages::DistanceSimple(content) => content.serialize(), Messages::Profile(content) => content.serialize(), - Messages::SetDeviceId(content) => content.serialize(), Messages::TransmitDuration(content) => content.serialize(), - Messages::SetGainSetting(content) => content.serialize(), - Messages::DistanceSimple(content) => content.serialize(), + Messages::GeneralInfo(content) => content.serialize(), + Messages::GainSetting(content) => content.serialize(), + Messages::FirmwareVersion(content) => content.serialize(), Messages::SetPingEnable(content) => content.serialize(), - Messages::PcbTemperature(content) => content.serialize(), + Messages::ContinuousStop(content) => content.serialize(), + Messages::SetGainSetting(content) => content.serialize(), + Messages::SetSpeedOfSound(content) => content.serialize(), Messages::Distance(content) => content.serialize(), - Messages::GainSetting(content) => content.serialize(), - Messages::DeviceId(content) => content.serialize(), - Messages::Voltage5(content) => content.serialize(), + Messages::SetRange(content) => content.serialize(), + Messages::ContinuousStart(content) => content.serialize(), + Messages::GotoBootloader(content) => content.serialize(), + Messages::Range(content) => content.serialize(), Messages::ProcessorTemperature(content) => content.serialize(), + Messages::Voltage5(content) => content.serialize(), Messages::PingEnable(content) => content.serialize(), + Messages::ModeAuto(content) => content.serialize(), Messages::SpeedOfSound(content) => content.serialize(), + Messages::SetDeviceId(content) => content.serialize(), + Messages::SetModeAuto(content) => content.serialize(), + Messages::DeviceId(content) => content.serialize(), + Messages::PcbTemperature(content) => content.serialize(), + Messages::PingInterval(content) => content.serialize(), } } } impl DeserializeGenericMessage for Messages { fn deserialize(message_id: u16, payload: &[u8]) -> Result<Self, &'static str> { Ok(match message_id { - 1400u16 => Messages::ContinuousStart(ContinuousStartStruct::deserialize(payload)), - 1003u16 => Messages::SetModeAuto(SetModeAutoStruct::deserialize(payload)), - 1200u16 => Messages::FirmwareVersion(FirmwareVersionStruct::deserialize(payload)), - 1210u16 => Messages::GeneralInfo(GeneralInfoStruct::deserialize(payload)), - 1205u16 => Messages::ModeAuto(ModeAutoStruct::deserialize(payload)), - 1100u16 => Messages::GotoBootloader(GotoBootloaderStruct::deserialize(payload)), 1004u16 => Messages::SetPingInterval(SetPingIntervalStruct::deserialize(payload)), - 1206u16 => Messages::PingInterval(PingIntervalStruct::deserialize(payload)), - 1001u16 => Messages::SetRange(SetRangeStruct::deserialize(payload)), - 1002u16 => Messages::SetSpeedOfSound(SetSpeedOfSoundStruct::deserialize(payload)), - 1401u16 => Messages::ContinuousStop(ContinuousStopStruct::deserialize(payload)), - 1204u16 => Messages::Range(RangeStruct::deserialize(payload)), + 1211u16 => Messages::DistanceSimple(DistanceSimpleStruct::deserialize(payload)), 1300u16 => Messages::Profile(ProfileStruct::deserialize(payload)), - 1000u16 => Messages::SetDeviceId(SetDeviceIdStruct::deserialize(payload)), 1208u16 => Messages::TransmitDuration(TransmitDurationStruct::deserialize(payload)), - 1005u16 => Messages::SetGainSetting(SetGainSettingStruct::deserialize(payload)), - 1211u16 => Messages::DistanceSimple(DistanceSimpleStruct::deserialize(payload)), + 1210u16 => Messages::GeneralInfo(GeneralInfoStruct::deserialize(payload)), + 1207u16 => Messages::GainSetting(GainSettingStruct::deserialize(payload)), + 1200u16 => Messages::FirmwareVersion(FirmwareVersionStruct::deserialize(payload)), 1006u16 => Messages::SetPingEnable(SetPingEnableStruct::deserialize(payload)), - 1214u16 => Messages::PcbTemperature(PcbTemperatureStruct::deserialize(payload)), + 1401u16 => Messages::ContinuousStop(ContinuousStopStruct::deserialize(payload)), + 1005u16 => Messages::SetGainSetting(SetGainSettingStruct::deserialize(payload)), + 1002u16 => Messages::SetSpeedOfSound(SetSpeedOfSoundStruct::deserialize(payload)), 1212u16 => Messages::Distance(DistanceStruct::deserialize(payload)), - 1207u16 => Messages::GainSetting(GainSettingStruct::deserialize(payload)), - 1201u16 => Messages::DeviceId(DeviceIdStruct::deserialize(payload)), - 1202u16 => Messages::Voltage5(Voltage5Struct::deserialize(payload)), + 1001u16 => Messages::SetRange(SetRangeStruct::deserialize(payload)), + 1400u16 => Messages::ContinuousStart(ContinuousStartStruct::deserialize(payload)), + 1100u16 => Messages::GotoBootloader(GotoBootloaderStruct::deserialize(payload)), + 1204u16 => Messages::Range(RangeStruct::deserialize(payload)), 1213u16 => { Messages::ProcessorTemperature(ProcessorTemperatureStruct::deserialize(payload)) } + 1202u16 => Messages::Voltage5(Voltage5Struct::deserialize(payload)), 1215u16 => Messages::PingEnable(PingEnableStruct::deserialize(payload)), + 1205u16 => Messages::ModeAuto(ModeAutoStruct::deserialize(payload)), 1203u16 => Messages::SpeedOfSound(SpeedOfSoundStruct::deserialize(payload)), + 1000u16 => Messages::SetDeviceId(SetDeviceIdStruct::deserialize(payload)), + 1003u16 => Messages::SetModeAuto(SetModeAutoStruct::deserialize(payload)), + 1201u16 => Messages::DeviceId(DeviceIdStruct::deserialize(payload)), + 1214u16 => Messages::PcbTemperature(PcbTemperatureStruct::deserialize(payload)), + 1206u16 => Messages::PingInterval(PingIntervalStruct::deserialize(payload)), _ => { return Err(&"Unknown message id"); } diff --git a/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/ping360.rs.html b/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/ping360.rs.html index d195baa86..d7b2afb9a 100644 --- a/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/ping360.rs.html +++ b/src/bluerobotics_ping/home/runner/work/ping-rs/ping-rs/target/debug/build/bluerobotics-ping-c6430b71020009b8/out/ping360.rs.html @@ -724,25 +724,28 @@

    Files

    #[derive(Debug, Clone, PartialEq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum Messages { - AutoDeviceData(AutoDeviceDataStruct), - Reset(ResetStruct), MotorOff(MotorOffStruct), AutoTransmit(AutoTransmitStruct), + Reset(ResetStruct), + AutoDeviceData(AutoDeviceDataStruct), + DeviceData(DeviceDataStruct), Transducer(TransducerStruct), DeviceId(DeviceIdStruct), - DeviceData(DeviceDataStruct), } impl Messages { pub fn inner<T: 'static>(&self) -> Option<&T> { match self { - Self::AutoDeviceData(inner_struct) => { + Self::MotorOff(inner_struct) => { + (inner_struct as &dyn std::any::Any).downcast_ref::<T>() + } + Self::AutoTransmit(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } Self::Reset(inner_struct) => (inner_struct as &dyn std::any::Any).downcast_ref::<T>(), - Self::MotorOff(inner_struct) => { + Self::AutoDeviceData(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::AutoTransmit(inner_struct) => { + Self::DeviceData(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } Self::Transducer(inner_struct) => { @@ -751,28 +754,45 @@

    Files

    Self::DeviceId(inner_struct) => { (inner_struct as &dyn std::any::Any).downcast_ref::<T>() } - Self::DeviceData(inner_struct) => { - (inner_struct as &dyn std::any::Any).downcast_ref::<T>() - } } } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Extended version of *device_data* with *auto_transmit* information. The sensor emits this message when in *auto_transmit* mode."] -pub struct AutoDeviceDataStruct { +#[doc = "The sonar switches the current through the stepper motor windings off to save power. The sonar will send an ack message in response. The command timeout should be set to 50 msec. If the sonar is idle (not scanning) for more than 30 seconds then the motor current will automatically turn off. When the user sends any command that involves moving the transducer then the motor current is automatically re-enabled."] +pub struct MotorOffStruct {} +impl SerializePayload for MotorOffStruct { + fn serialize(&self) -> Vec<u8> { + let mut buffer: Vec<u8> = Default::default(); + buffer + } +} +impl DeserializePayload for MotorOffStruct { + fn deserialize(payload: &[u8]) -> Self { + Self {} + } +} +impl MessageInfo for MotorOffStruct { + fn id() -> u16 { + 2903u16 + } +} +#[derive(Debug, Clone, PartialEq, Default)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[doc = "Extended *transducer* message with auto-scan function. The sonar will automatically scan the region between start_angle and end_angle and send auto_device_data messages as soon as new data is available. Send a line break to stop scanning (and also begin the autobaudrate procedure). Alternatively, a motor_off message may be sent (but retrys might be necessary on the half-duplex RS485 interface)."] +pub struct AutoTransmitStruct { #[doc = "Operating mode (1 for Ping360)"] pub mode: u8, #[doc = "Analog gain setting (0 = low, 1 = normal, 2 = high)"] pub gain_setting: u8, - #[doc = "Head angle"] - pub angle: u16, #[doc = "Acoustic transmission duration (1~1000 microseconds)"] pub transmit_duration: u16, #[doc = "Time interval between individual signal intensity samples in 25nsec increments (80 to 40000 == 2 microseconds to 1000 microseconds)"] pub sample_period: u16, #[doc = "Acoustic operating frequency. Frequency range is 500kHz to 1000kHz, however it is only practical to use say 650kHz to 850kHz due to the narrow bandwidth of the acoustic receiver."] pub transmit_frequency: u16, + #[doc = "Number of samples per reflected signal"] + pub number_of_samples: u16, #[doc = "Head angle to begin scan sector for autoscan in gradians (0~399 = 0~360 degrees)."] pub start_angle: u16, #[doc = "Head angle to end scan sector for autoscan in gradians (0~399 = 0~360 degrees)."] @@ -781,54 +801,44 @@

    Files

    pub num_steps: u8, #[doc = "An additional delay between successive transmit pulses (0~100 ms). This may be necessary for some programs to avoid collisions on the RS485 USRT."] pub delay: u8, - #[doc = "Number of samples per reflected signal"] - pub number_of_samples: u16, - #[doc = "8 bit binary data array representing sonar echo strength"] - pub data_length: u16, - pub data: Vec<u8>, } -impl SerializePayload for AutoDeviceDataStruct { +impl SerializePayload for AutoTransmitStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); buffer.extend_from_slice(&self.mode.to_le_bytes()); buffer.extend_from_slice(&self.gain_setting.to_le_bytes()); - buffer.extend_from_slice(&self.angle.to_le_bytes()); buffer.extend_from_slice(&self.transmit_duration.to_le_bytes()); buffer.extend_from_slice(&self.sample_period.to_le_bytes()); buffer.extend_from_slice(&self.transmit_frequency.to_le_bytes()); + buffer.extend_from_slice(&self.number_of_samples.to_le_bytes()); buffer.extend_from_slice(&self.start_angle.to_le_bytes()); buffer.extend_from_slice(&self.stop_angle.to_le_bytes()); buffer.extend_from_slice(&self.num_steps.to_le_bytes()); buffer.extend_from_slice(&self.delay.to_le_bytes()); - buffer.extend_from_slice(&self.number_of_samples.to_le_bytes()); - buffer.extend_from_slice(&self.data_length.to_le_bytes()); - for value in self.data.iter() { - buffer.extend_from_slice(&value.to_le_bytes()); - } buffer } } -impl DeserializePayload for AutoDeviceDataStruct { +impl DeserializePayload for AutoTransmitStruct { fn deserialize(payload: &[u8]) -> Self { Self { mode: payload[0usize].into(), gain_setting: payload[1usize].into(), - angle: u16::from_le_bytes( + transmit_duration: u16::from_le_bytes( payload[2usize..2usize + 2usize] .try_into() .expect("Wrong slice length"), ), - transmit_duration: u16::from_le_bytes( + sample_period: u16::from_le_bytes( payload[4usize..4usize + 2usize] .try_into() .expect("Wrong slice length"), ), - sample_period: u16::from_le_bytes( + transmit_frequency: u16::from_le_bytes( payload[6usize..6usize + 2usize] .try_into() .expect("Wrong slice length"), ), - transmit_frequency: u16::from_le_bytes( + number_of_samples: u16::from_le_bytes( payload[8usize..8usize + 2usize] .try_into() .expect("Wrong slice length"), @@ -845,19 +855,12 @@

    Files

    ), num_steps: payload[14usize].into(), delay: payload[15usize].into(), - number_of_samples: u16::from_le_bytes( - payload[16usize..16usize + 2usize] - .try_into() - .expect("Wrong slice length"), - ), - data_length: payload.len() as u16, - data: payload[18usize..payload.len()].to_vec(), } } } -impl MessageInfo for AutoDeviceDataStruct { +impl MessageInfo for AutoTransmitStruct { fn id() -> u16 { - 2301u16 + 2602u16 } } #[derive(Debug, Clone, PartialEq, Default)] @@ -892,40 +895,20 @@

    Files

    } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The sonar switches the current through the stepper motor windings off to save power. The sonar will send an ack message in response. The command timeout should be set to 50 msec. If the sonar is idle (not scanning) for more than 30 seconds then the motor current will automatically turn off. When the user sends any command that involves moving the transducer then the motor current is automatically re-enabled."] -pub struct MotorOffStruct {} -impl SerializePayload for MotorOffStruct { - fn serialize(&self) -> Vec<u8> { - let mut buffer: Vec<u8> = Default::default(); - buffer - } -} -impl DeserializePayload for MotorOffStruct { - fn deserialize(payload: &[u8]) -> Self { - Self {} - } -} -impl MessageInfo for MotorOffStruct { - fn id() -> u16 { - 2903u16 - } -} -#[derive(Debug, Clone, PartialEq, Default)] -#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Extended *transducer* message with auto-scan function. The sonar will automatically scan the region between start_angle and end_angle and send auto_device_data messages as soon as new data is available. Send a line break to stop scanning (and also begin the autobaudrate procedure). Alternatively, a motor_off message may be sent (but retrys might be necessary on the half-duplex RS485 interface)."] -pub struct AutoTransmitStruct { +#[doc = "Extended version of *device_data* with *auto_transmit* information. The sensor emits this message when in *auto_transmit* mode."] +pub struct AutoDeviceDataStruct { #[doc = "Operating mode (1 for Ping360)"] pub mode: u8, #[doc = "Analog gain setting (0 = low, 1 = normal, 2 = high)"] pub gain_setting: u8, + #[doc = "Head angle"] + pub angle: u16, #[doc = "Acoustic transmission duration (1~1000 microseconds)"] pub transmit_duration: u16, #[doc = "Time interval between individual signal intensity samples in 25nsec increments (80 to 40000 == 2 microseconds to 1000 microseconds)"] pub sample_period: u16, #[doc = "Acoustic operating frequency. Frequency range is 500kHz to 1000kHz, however it is only practical to use say 650kHz to 850kHz due to the narrow bandwidth of the acoustic receiver."] pub transmit_frequency: u16, - #[doc = "Number of samples per reflected signal"] - pub number_of_samples: u16, #[doc = "Head angle to begin scan sector for autoscan in gradians (0~399 = 0~360 degrees)."] pub start_angle: u16, #[doc = "Head angle to end scan sector for autoscan in gradians (0~399 = 0~360 degrees)."] @@ -934,44 +917,54 @@

    Files

    pub num_steps: u8, #[doc = "An additional delay between successive transmit pulses (0~100 ms). This may be necessary for some programs to avoid collisions on the RS485 USRT."] pub delay: u8, + #[doc = "Number of samples per reflected signal"] + pub number_of_samples: u16, + #[doc = "8 bit binary data array representing sonar echo strength"] + pub data_length: u16, + pub data: Vec<u8>, } -impl SerializePayload for AutoTransmitStruct { +impl SerializePayload for AutoDeviceDataStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); buffer.extend_from_slice(&self.mode.to_le_bytes()); buffer.extend_from_slice(&self.gain_setting.to_le_bytes()); + buffer.extend_from_slice(&self.angle.to_le_bytes()); buffer.extend_from_slice(&self.transmit_duration.to_le_bytes()); buffer.extend_from_slice(&self.sample_period.to_le_bytes()); buffer.extend_from_slice(&self.transmit_frequency.to_le_bytes()); - buffer.extend_from_slice(&self.number_of_samples.to_le_bytes()); buffer.extend_from_slice(&self.start_angle.to_le_bytes()); buffer.extend_from_slice(&self.stop_angle.to_le_bytes()); buffer.extend_from_slice(&self.num_steps.to_le_bytes()); buffer.extend_from_slice(&self.delay.to_le_bytes()); + buffer.extend_from_slice(&self.number_of_samples.to_le_bytes()); + buffer.extend_from_slice(&self.data_length.to_le_bytes()); + for value in self.data.iter() { + buffer.extend_from_slice(&value.to_le_bytes()); + } buffer } } -impl DeserializePayload for AutoTransmitStruct { +impl DeserializePayload for AutoDeviceDataStruct { fn deserialize(payload: &[u8]) -> Self { Self { mode: payload[0usize].into(), gain_setting: payload[1usize].into(), - transmit_duration: u16::from_le_bytes( + angle: u16::from_le_bytes( payload[2usize..2usize + 2usize] .try_into() .expect("Wrong slice length"), ), - sample_period: u16::from_le_bytes( + transmit_duration: u16::from_le_bytes( payload[4usize..4usize + 2usize] .try_into() .expect("Wrong slice length"), ), - transmit_frequency: u16::from_le_bytes( + sample_period: u16::from_le_bytes( payload[6usize..6usize + 2usize] .try_into() .expect("Wrong slice length"), ), - number_of_samples: u16::from_le_bytes( + transmit_frequency: u16::from_le_bytes( payload[8usize..8usize + 2usize] .try_into() .expect("Wrong slice length"), @@ -988,18 +981,25 @@

    Files

    ), num_steps: payload[14usize].into(), delay: payload[15usize].into(), + number_of_samples: u16::from_le_bytes( + payload[16usize..16usize + 2usize] + .try_into() + .expect("Wrong slice length"), + ), + data_length: payload.len() as u16, + data: payload[18usize..payload.len()].to_vec(), } } } -impl MessageInfo for AutoTransmitStruct { +impl MessageInfo for AutoDeviceDataStruct { fn id() -> u16 { - 2602u16 + 2301u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "The transducer will apply the commanded settings. The sonar will reply with a `ping360_data` message. If the `transmit` field is 0, the sonar will not transmit after locating the transducer, and the `data` field in the `ping360_data` message reply will be empty. If the `transmit` field is 1, the sonar will make an acoustic transmission after locating the transducer, and the resulting data will be uploaded in the `data` field of the `ping360_data` message reply. To allow for the worst case reponse time the command timeout should be set to 4000 msec."] -pub struct TransducerStruct { +#[doc = "This message is used to communicate the current sonar state. If the data field is populated, the other fields indicate the sonar state when the data was captured. The time taken before the response to the command is sent depends on the difference between the last angle scanned and the new angle in the parameters as well as the number of samples and sample interval (range). To allow for the worst case reponse time the command timeout should be set to 4000 msec."] +pub struct DeviceDataStruct { #[doc = "Operating mode (1 for Ping360)"] pub mode: u8, #[doc = "Analog gain setting (0 = low, 1 = normal, 2 = high)"] @@ -1014,12 +1014,11 @@

    Files

    pub transmit_frequency: u16, #[doc = "Number of samples per reflected signal"] pub number_of_samples: u16, - #[doc = "0 = do not transmit; 1 = transmit after the transducer has reached the specified angle"] - pub transmit: u8, - #[doc = "reserved"] - pub reserved: u8, + #[doc = "8 bit binary data array representing sonar echo strength"] + pub data_length: u16, + pub data: Vec<u8>, } -impl SerializePayload for TransducerStruct { +impl SerializePayload for DeviceDataStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); buffer.extend_from_slice(&self.mode.to_le_bytes()); @@ -1029,12 +1028,14 @@

    Files

    buffer.extend_from_slice(&self.sample_period.to_le_bytes()); buffer.extend_from_slice(&self.transmit_frequency.to_le_bytes()); buffer.extend_from_slice(&self.number_of_samples.to_le_bytes()); - buffer.extend_from_slice(&self.transmit.to_le_bytes()); - buffer.extend_from_slice(&self.reserved.to_le_bytes()); + buffer.extend_from_slice(&self.data_length.to_le_bytes()); + for value in self.data.iter() { + buffer.extend_from_slice(&value.to_le_bytes()); + } buffer } } -impl DeserializePayload for TransducerStruct { +impl DeserializePayload for DeviceDataStruct { fn deserialize(payload: &[u8]) -> Self { Self { mode: payload[0usize].into(), @@ -1064,50 +1065,20 @@

    Files

    .try_into() .expect("Wrong slice length"), ), - transmit: payload[12usize].into(), - reserved: payload[13usize].into(), - } - } -} -impl MessageInfo for TransducerStruct { - fn id() -> u16 { - 2601u16 - } -} -#[derive(Debug, Clone, PartialEq, Default)] -#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "Change the device id"] -pub struct DeviceIdStruct { - #[doc = "Device ID (1-254). 0 and 255 are reserved."] - pub id: u8, - #[doc = "reserved"] - pub reserved: u8, -} -impl SerializePayload for DeviceIdStruct { - fn serialize(&self) -> Vec<u8> { - let mut buffer: Vec<u8> = Default::default(); - buffer.extend_from_slice(&self.id.to_le_bytes()); - buffer.extend_from_slice(&self.reserved.to_le_bytes()); - buffer - } -} -impl DeserializePayload for DeviceIdStruct { - fn deserialize(payload: &[u8]) -> Self { - Self { - id: payload[0usize].into(), - reserved: payload[1usize].into(), + data_length: payload.len() as u16, + data: payload[12usize..payload.len()].to_vec(), } } } -impl MessageInfo for DeviceIdStruct { +impl MessageInfo for DeviceDataStruct { fn id() -> u16 { - 2000u16 + 2300u16 } } #[derive(Debug, Clone, PartialEq, Default)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -#[doc = "This message is used to communicate the current sonar state. If the data field is populated, the other fields indicate the sonar state when the data was captured. The time taken before the response to the command is sent depends on the difference between the last angle scanned and the new angle in the parameters as well as the number of samples and sample interval (range). To allow for the worst case reponse time the command timeout should be set to 4000 msec."] -pub struct DeviceDataStruct { +#[doc = "The transducer will apply the commanded settings. The sonar will reply with a `ping360_data` message. If the `transmit` field is 0, the sonar will not transmit after locating the transducer, and the `data` field in the `ping360_data` message reply will be empty. If the `transmit` field is 1, the sonar will make an acoustic transmission after locating the transducer, and the resulting data will be uploaded in the `data` field of the `ping360_data` message reply. To allow for the worst case reponse time the command timeout should be set to 4000 msec."] +pub struct TransducerStruct { #[doc = "Operating mode (1 for Ping360)"] pub mode: u8, #[doc = "Analog gain setting (0 = low, 1 = normal, 2 = high)"] @@ -1122,11 +1093,12 @@

    Files

    pub transmit_frequency: u16, #[doc = "Number of samples per reflected signal"] pub number_of_samples: u16, - #[doc = "8 bit binary data array representing sonar echo strength"] - pub data_length: u16, - pub data: Vec<u8>, + #[doc = "0 = do not transmit; 1 = transmit after the transducer has reached the specified angle"] + pub transmit: u8, + #[doc = "reserved"] + pub reserved: u8, } -impl SerializePayload for DeviceDataStruct { +impl SerializePayload for TransducerStruct { fn serialize(&self) -> Vec<u8> { let mut buffer: Vec<u8> = Default::default(); buffer.extend_from_slice(&self.mode.to_le_bytes()); @@ -1136,14 +1108,12 @@

    Files

    buffer.extend_from_slice(&self.sample_period.to_le_bytes()); buffer.extend_from_slice(&self.transmit_frequency.to_le_bytes()); buffer.extend_from_slice(&self.number_of_samples.to_le_bytes()); - buffer.extend_from_slice(&self.data_length.to_le_bytes()); - for value in self.data.iter() { - buffer.extend_from_slice(&value.to_le_bytes()); - } + buffer.extend_from_slice(&self.transmit.to_le_bytes()); + buffer.extend_from_slice(&self.reserved.to_le_bytes()); buffer } } -impl DeserializePayload for DeviceDataStruct { +impl DeserializePayload for TransducerStruct { fn deserialize(payload: &[u8]) -> Self { Self { mode: payload[0usize].into(), @@ -1173,14 +1143,44 @@

    Files

    .try_into() .expect("Wrong slice length"), ), - data_length: payload.len() as u16, - data: payload[12usize..payload.len()].to_vec(), + transmit: payload[12usize].into(), + reserved: payload[13usize].into(), } } } -impl MessageInfo for DeviceDataStruct { +impl MessageInfo for TransducerStruct { fn id() -> u16 { - 2300u16 + 2601u16 + } +} +#[derive(Debug, Clone, PartialEq, Default)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[doc = "Change the device id"] +pub struct DeviceIdStruct { + #[doc = "Device ID (1-254). 0 and 255 are reserved."] + pub id: u8, + #[doc = "reserved"] + pub reserved: u8, +} +impl SerializePayload for DeviceIdStruct { + fn serialize(&self) -> Vec<u8> { + let mut buffer: Vec<u8> = Default::default(); + buffer.extend_from_slice(&self.id.to_le_bytes()); + buffer.extend_from_slice(&self.reserved.to_le_bytes()); + buffer + } +} +impl DeserializePayload for DeviceIdStruct { + fn deserialize(payload: &[u8]) -> Self { + Self { + id: payload[0usize].into(), + reserved: payload[1usize].into(), + } + } +} +impl MessageInfo for DeviceIdStruct { + fn id() -> u16 { + 2000u16 } } impl Device { @@ -1192,24 +1192,6 @@

    Files

    common: Common::new(io), } } - #[doc = "Extended version of *device_data* with *auto_transmit* information. The sensor emits this message when in *auto_transmit* mode."] - pub async fn auto_device_data(&self) -> Result<AutoDeviceDataStruct, PingError> { - self.request().await - } - #[doc = "Reset the sonar. The bootloader may run depending on the selection according to the `bootloader` payload field. When the bootloader runs, the external LED flashes at 5Hz. If the bootloader is not contacted within 5 seconds, it will run the current program. If there is no program, then the bootloader will wait forever for a connection. Note that if you issue a reset then you will have to close all your open comm ports and go back to issuing either a discovery message for UDP or go through the break sequence for serial comms before you can talk to the sonar again."] - #[doc = "# Arguments"] - #[doc = "* `bootloader` - 0 = skip bootloader; 1 = run bootloader"] - #[doc = "* `reserved` - reserved"] - pub async fn reset(&self, bootloader: u8, reserved: u8) -> Result<(), PingError> { - let request = Messages::Reset(ResetStruct { - bootloader, - reserved, - }); - let mut package = ProtocolMessage::new(); - package.set_message(&request); - self.get_common().send_message(package).await?; - Ok(()) - } #[doc = "The sonar switches the current through the stepper motor windings off to save power. The sonar will send an ack message in response. The command timeout should be set to 50 msec. If the sonar is idle (not scanning) for more than 30 seconds then the motor current will automatically turn off. When the user sends any command that involves moving the transducer then the motor current is automatically re-enabled."] #[doc = "# Arguments"] pub async fn motor_off(&self) -> Result<(), PingError> { @@ -1261,6 +1243,28 @@

    Files

    self.get_common().send_message(package).await?; Ok(()) } + #[doc = "Reset the sonar. The bootloader may run depending on the selection according to the `bootloader` payload field. When the bootloader runs, the external LED flashes at 5Hz. If the bootloader is not contacted within 5 seconds, it will run the current program. If there is no program, then the bootloader will wait forever for a connection. Note that if you issue a reset then you will have to close all your open comm ports and go back to issuing either a discovery message for UDP or go through the break sequence for serial comms before you can talk to the sonar again."] + #[doc = "# Arguments"] + #[doc = "* `bootloader` - 0 = skip bootloader; 1 = run bootloader"] + #[doc = "* `reserved` - reserved"] + pub async fn reset(&self, bootloader: u8, reserved: u8) -> Result<(), PingError> { + let request = Messages::Reset(ResetStruct { + bootloader, + reserved, + }); + let mut package = ProtocolMessage::new(); + package.set_message(&request); + self.get_common().send_message(package).await?; + Ok(()) + } + #[doc = "Extended version of *device_data* with *auto_transmit* information. The sensor emits this message when in *auto_transmit* mode."] + pub async fn auto_device_data(&self) -> Result<AutoDeviceDataStruct, PingError> { + self.request().await + } + #[doc = "This message is used to communicate the current sonar state. If the data field is populated, the other fields indicate the sonar state when the data was captured. The time taken before the response to the command is sent depends on the difference between the last angle scanned and the new angle in the parameters as well as the number of samples and sample interval (range). To allow for the worst case reponse time the command timeout should be set to 4000 msec."] + pub async fn device_data(&self) -> Result<DeviceDataStruct, PingError> { + self.request().await + } #[doc = "The transducer will apply the commanded settings. The sonar will reply with a `ping360_data` message. If the `transmit` field is 0, the sonar will not transmit after locating the transducer, and the `data` field in the `ping360_data` message reply will be empty. If the `transmit` field is 1, the sonar will make an acoustic transmission after locating the transducer, and the resulting data will be uploaded in the `data` field of the `ping360_data` message reply. To allow for the worst case reponse time the command timeout should be set to 4000 msec."] #[doc = "# Arguments"] #[doc = "* `mode` - Operating mode (1 for Ping360)"] @@ -1312,43 +1316,39 @@

    Files

    self.get_common().send_message(package).await?; self.wait_for_ack(receiver, DeviceIdStruct::id()).await } - #[doc = "This message is used to communicate the current sonar state. If the data field is populated, the other fields indicate the sonar state when the data was captured. The time taken before the response to the command is sent depends on the difference between the last angle scanned and the new angle in the parameters as well as the number of samples and sample interval (range). To allow for the worst case reponse time the command timeout should be set to 4000 msec."] - pub async fn device_data(&self) -> Result<DeviceDataStruct, PingError> { - self.request().await - } } impl PingMessage for Messages { fn message_name(&self) -> &'static str { match self { - Messages::AutoDeviceData(..) => "auto_device_data", - Messages::Reset(..) => "reset", Messages::MotorOff(..) => "motor_off", Messages::AutoTransmit(..) => "auto_transmit", + Messages::Reset(..) => "reset", + Messages::AutoDeviceData(..) => "auto_device_data", + Messages::DeviceData(..) => "device_data", Messages::Transducer(..) => "transducer", Messages::DeviceId(..) => "device_id", - Messages::DeviceData(..) => "device_data", } } fn message_id(&self) -> u16 { match self { - Messages::AutoDeviceData(..) => 2301u16, - Messages::Reset(..) => 2600u16, Messages::MotorOff(..) => 2903u16, Messages::AutoTransmit(..) => 2602u16, + Messages::Reset(..) => 2600u16, + Messages::AutoDeviceData(..) => 2301u16, + Messages::DeviceData(..) => 2300u16, Messages::Transducer(..) => 2601u16, Messages::DeviceId(..) => 2000u16, - Messages::DeviceData(..) => 2300u16, } } fn message_id_from_name(name: &str) -> Result<u16, String> { match name { - "auto_device_data" => Ok(2301u16), - "reset" => Ok(2600u16), "motor_off" => Ok(2903u16), "auto_transmit" => Ok(2602u16), + "reset" => Ok(2600u16), + "auto_device_data" => Ok(2301u16), + "device_data" => Ok(2300u16), "transducer" => Ok(2601u16), "device_id" => Ok(2000u16), - "device_data" => Ok(2300u16), _ => Err(format!("Failed to find message ID from name: {name}.")), } } @@ -1356,26 +1356,26 @@

    Files

    impl SerializePayload for Messages { fn serialize(&self) -> Vec<u8> { match self { - Messages::AutoDeviceData(content) => content.serialize(), - Messages::Reset(content) => content.serialize(), Messages::MotorOff(content) => content.serialize(), Messages::AutoTransmit(content) => content.serialize(), + Messages::Reset(content) => content.serialize(), + Messages::AutoDeviceData(content) => content.serialize(), + Messages::DeviceData(content) => content.serialize(), Messages::Transducer(content) => content.serialize(), Messages::DeviceId(content) => content.serialize(), - Messages::DeviceData(content) => content.serialize(), } } } impl DeserializeGenericMessage for Messages { fn deserialize(message_id: u16, payload: &[u8]) -> Result<Self, &'static str> { Ok(match message_id { - 2301u16 => Messages::AutoDeviceData(AutoDeviceDataStruct::deserialize(payload)), - 2600u16 => Messages::Reset(ResetStruct::deserialize(payload)), 2903u16 => Messages::MotorOff(MotorOffStruct::deserialize(payload)), 2602u16 => Messages::AutoTransmit(AutoTransmitStruct::deserialize(payload)), + 2600u16 => Messages::Reset(ResetStruct::deserialize(payload)), + 2301u16 => Messages::AutoDeviceData(AutoDeviceDataStruct::deserialize(payload)), + 2300u16 => Messages::DeviceData(DeviceDataStruct::deserialize(payload)), 2601u16 => Messages::Transducer(TransducerStruct::deserialize(payload)), 2000u16 => Messages::DeviceId(DeviceIdStruct::deserialize(payload)), - 2300u16 => Messages::DeviceData(DeviceDataStruct::deserialize(payload)), _ => { return Err(&"Unknown message id"); }