#[repr(C, packed)]pub struct _0 {}
Expand description
reg.udral.service.actuator.common.sp._.0.1
Fixed size 0 bytes
This is a collection of weakly-typed primitives used to control groups of actuators synchronously.
Actuators are expected to subscribe using the largest array type. Publishers would choose the array type depending on the number of actuators in the group. The actuators would be expecting the largest array type, where the missing elements will be zero-filled automatically by the protocol stack thanks to the Implicit Zero Extension Rule (refer to the Cyphal Specification for details).
The physical meaning of the values contained in the array is defined by the respective actuator service specification. If ratiometric control is used, then the range should be [-1, +1].
It follows that a standalone actuator (that is not a member of any group) is just a special case of a group of 1, where the setpoint type is a single scalar.
The Cyphal Specification might benefit from supporting flexible array fields to avoid having to deal with redundant
similar types: https://en.wikipedia.org/wiki/Flexible_array_member, so that instead of having multiple types that
differ only in size of the array fields, one could just say float16[0] value
such that the size of zero indicates
that the array is a flex array.
Implementations§
Trait Implementations§
source§impl AsBytes for _0
impl AsBytes for _0
source§fn as_bytes_mut(&mut self) -> &mut [u8]where
Self: FromBytes,
fn as_bytes_mut(&mut self) -> &mut [u8]where Self: FromBytes,
source§fn write_to_prefix<B>(&self, bytes: B) -> Option<()>where
B: ByteSliceMut,
fn write_to_prefix<B>(&self, bytes: B) -> Option<()>where B: ByteSliceMut,
source§fn write_to_suffix<B>(&self, bytes: B) -> Option<()>where
B: ByteSliceMut,
fn write_to_suffix<B>(&self, bytes: B) -> Option<()>where B: ByteSliceMut,
source§impl DataType for _0
impl DataType for _0
source§const EXTENT_BYTES: Option<u32> = _
const EXTENT_BYTES: Option<u32> = _
This type is delimited with an extent of 0 bytes.
source§impl Deserialize for _0
impl Deserialize for _0
source§fn deserialize(cursor: &mut ReadCursor<'_>) -> Result<Self, DeserializeError>where
Self: Sized,
fn deserialize(cursor: &mut ReadCursor<'_>) -> Result<Self, DeserializeError>where Self: Sized,
source§fn deserialize_zero_copy(cursor: &mut ReadCursor<'_>) -> Selfwhere
Self: Sized + AsBytes + FromBytes,
fn deserialize_zero_copy(cursor: &mut ReadCursor<'_>) -> Selfwhere Self: Sized + AsBytes + FromBytes,
source§fn deserialize_from_bytes(bytes: &[u8]) -> Result<Self, DeserializeError>where
Self: Sized,
fn deserialize_from_bytes(bytes: &[u8]) -> Result<Self, DeserializeError>where Self: Sized,
deserialize
source§impl FromBytes for _0
impl FromBytes for _0
source§fn new_zeroed() -> Selfwhere
Self: Sized,
fn new_zeroed() -> Selfwhere Self: Sized,
Self
from zeroed bytes.source§impl Serialize for _0
impl Serialize for _0
source§fn size_bits(&self) -> usize
fn size_bits(&self) -> usize
source§fn serialize(&self, cursor: &mut WriteCursor<'_>)
fn serialize(&self, cursor: &mut WriteCursor<'_>)
source§fn serialize_to_bytes(&self, bytes: &mut [u8])
fn serialize_to_bytes(&self, bytes: &mut [u8])
serialize