Trait jvs_packets::Packet

source ·
pub trait Packet: AsRef<[u8]> + AsMut<[u8]> {
    const SIZE_INDEX: usize;
    const DATA_BEGIN_INDEX: usize;
    const DESTINATION_INDEX: usize;
Show 14 methods // Provided methods fn len_of_packet(&self) -> usize { ... } fn as_slice(&self) -> &[u8] { ... } fn as_mut_slice(&mut self) -> &mut [u8] { ... } fn sync(&self) -> u8 { ... } fn set_sync(&mut self) -> &mut Self { ... } fn size(&self) -> u8 { ... } fn set_size(&mut self, size: u8) -> &mut Self { ... } fn dest(&self) -> u8 { ... } fn set_dest(&mut self, dest: u8) -> &mut Self { ... } fn data(&self) -> &[u8] { ... } fn set_data(&mut self, data: &[u8]) -> &mut Self { ... } fn calculate_checksum(&mut self) -> &mut Self { ... } fn checksum(&self) -> u8 { ... } fn set_checksum(&mut self, checksum: u8) -> &mut Self { ... }
}
Expand description

A trait for all packets structures

Required Associated Constants§

Provided Methods§

source

fn len_of_packet(&self) -> usize

source

fn as_slice(&self) -> &[u8]

Returns a slice of the packet until SUM byte.

source

fn as_mut_slice(&mut self) -> &mut [u8]

Returns a mutable slice of the packet until SUM byte.

source

fn sync(&self) -> u8

Returns a first byte in the slice.

source

fn set_sync(&mut self) -> &mut Self

source

fn size(&self) -> u8

Returns a SIZE byte at Packet::SIZE_INDEX

source

fn set_size(&mut self, size: u8) -> &mut Self

Sets a size byte at Packet::SIZE_INDEX.

Don’t use this method unless you know what you’re doing. Use Packet::set_data instead.

source

fn dest(&self) -> u8

Returns a destination byte at Packet::DESTINATION_INDEX.

source

fn set_dest(&mut self, dest: u8) -> &mut Self

Sets a destination byte at Packet::DESTINATION_INDEX and calculates a new checksum.

source

fn data(&self) -> &[u8]

Returns a slice of the packet data.

source

fn set_data(&mut self, data: &[u8]) -> &mut Self

Sets the packet data.

This method will also set the size byte and calculate a new checksum.

source

fn calculate_checksum(&mut self) -> &mut Self

Calculates checksum.

The checksum is calculated by summing all bytes in the packet except the SYNC_BYTE.

source

fn checksum(&self) -> u8

Returns a checksum.

source

fn set_checksum(&mut self, checksum: u8) -> &mut Self

Sets a checksum in the end of the packet.

Don’t use this method unless you know what you’re doing. Use Packet::calculate_checksum instead.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<const N: usize> Packet for jvs_packets::jvs::RequestPacket<N>

source§

impl<const N: usize> Packet for jvs_packets::jvs::ResponsePacket<N>

source§

impl<const N: usize> Packet for jvs_packets::jvs_modified::RequestPacket<N>

source§

impl<const N: usize> Packet for jvs_packets::jvs_modified::ResponsePacket<N>