pub trait Commands<const H: usize, const HSUB1: usize, const HSUB2: usize, const HSUB4: usize, const ID: usize> {
Show 99 methods fn tx_packetbuffer_send(
        &mut self,
        buf: &mut HidIoPacketBuffer<H>
    ) -> Result<(), CommandError>; fn supported_id(&self, _id: HidIoCommandId) -> bool { ... } fn default_packet_chunk(&self) -> u32 { ... } fn empty_ack(&mut self, id: HidIoCommandId) -> Result<(), CommandError> { ... } fn empty_nak(&mut self, id: HidIoCommandId) -> Result<(), CommandError> { ... } fn byte_ack(
        &mut self,
        id: HidIoCommandId,
        byte: u8
    ) -> Result<(), CommandError> { ... } fn byte_nak(
        &mut self,
        id: HidIoCommandId,
        byte: u8
    ) -> Result<(), CommandError> { ... } fn short_ack(
        &mut self,
        id: HidIoCommandId,
        val: u16
    ) -> Result<(), CommandError> { ... } fn short_nak(
        &mut self,
        id: HidIoCommandId,
        val: u16
    ) -> Result<(), CommandError> { ... } fn rx_message_handling(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0000_supported_ids(&mut self, _data: Cmd) -> Result<(), CommandError> { ... } fn h0000_supported_ids_cmd(&mut self, _data: Cmd) -> Result<Ack<ID>, Nak> { ... } fn h0000_supported_ids_ack(
        &mut self,
        _data: Ack<ID>
    ) -> Result<(), CommandError> { ... } fn h0000_supported_ids_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0000_supported_ids_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0001_info(&mut self, data: Cmd) -> Result<(), CommandError> { ... } fn h0001_info_cmd(&mut self, _data: Cmd) -> Result<Ack<HSUB1>, Nak> { ... } fn h0001_info_ack(&mut self, _data: Ack<HSUB1>) -> Result<(), CommandError> { ... } fn h0001_info_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0001_info_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0002_test(&mut self, data: Cmd<H>, na: bool) -> Result<(), CommandError> { ... } fn h0002_test_cmd(&mut self, _data: Cmd<H>) -> Result<Ack<H>, Nak> { ... } fn h0002_test_nacmd(&mut self, _data: Cmd<H>) -> Result<(), CommandError> { ... } fn h0002_test_ack(&mut self, _data: Ack<H>) -> Result<(), CommandError> { ... } fn h0002_test_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0002_test_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0003_resethidio(&mut self, _data: Cmd) -> Result<(), CommandError> { ... } fn h0003_resethidio_cmd(&mut self, _data: Cmd) -> Result<Ack, Nak> { ... } fn h0003_resethidio_ack(&mut self, _data: Ack) -> Result<(), CommandError> { ... } fn h0003_resethidio_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0003_resethidio_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0016_flashmode(&mut self, _data: Cmd) -> Result<(), CommandError> { ... } fn h0016_flashmode_cmd(&mut self, _data: Cmd) -> Result<Ack, Nak> { ... } fn h0016_flashmode_ack(&mut self, _data: Ack) -> Result<(), CommandError> { ... } fn h0016_flashmode_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0016_flashmode_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0017_unicodetext(
        &mut self,
        data: Cmd<H>,
        na: bool
    ) -> Result<(), CommandError> { ... } fn h0017_unicodetext_cmd(&mut self, _data: Cmd<H>) -> Result<Ack, Nak> { ... } fn h0017_unicodetext_nacmd(
        &mut self,
        _data: Cmd<H>
    ) -> Result<(), CommandError> { ... } fn h0017_unicodetext_ack(&mut self, _data: Ack) -> Result<(), CommandError> { ... } fn h0017_unicodetext_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0017_unicodetext_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0018_unicodestate(
        &mut self,
        data: Cmd<H>,
        na: bool
    ) -> Result<(), CommandError> { ... } fn h0018_unicodestate_cmd(&mut self, _data: Cmd<H>) -> Result<Ack, Nak> { ... } fn h0018_unicodestate_nacmd(
        &mut self,
        _data: Cmd<H>
    ) -> Result<(), CommandError> { ... } fn h0018_unicodestate_ack(&mut self, _data: Ack) -> Result<(), CommandError> { ... } fn h0018_unicodestate_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0018_unicodestate_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h001a_sleepmode(&mut self, _data: Cmd) -> Result<(), CommandError> { ... } fn h001a_sleepmode_cmd(&mut self, _data: Cmd) -> Result<Ack, Nak> { ... } fn h001a_sleepmode_ack(&mut self, _data: Ack) -> Result<(), CommandError> { ... } fn h001a_sleepmode_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h001a_sleepmode_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0020_klltrigger(
        &mut self,
        data: Cmd,
        na: bool
    ) -> Result<(), CommandError> { ... } fn h0020_klltrigger_cmd(&mut self, _data: Cmd) -> Result<Ack, Nak> { ... } fn h0020_klltrigger_nacmd(&mut self, _data: Cmd) -> Result<(), CommandError> { ... } fn h0020_klltrigger_ack(&mut self, _data: Ack) -> Result<(), CommandError> { ... } fn h0020_klltrigger_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0020_klltrigger_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0021_pixelsetting(
        &mut self,
        data: Cmd,
        na: bool
    ) -> Result<(), CommandError> { ... } fn h0021_pixelsetting_cmd(&mut self, _data: Cmd) -> Result<Ack, Nak> { ... } fn h0021_pixelsetting_nacmd(
        &mut self,
        _data: Cmd
    ) -> Result<(), CommandError> { ... } fn h0021_pixelsetting_ack(&mut self, _data: Ack) -> Result<(), CommandError> { ... } fn h0021_pixelsetting_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0021_pixelsetting_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0026_directset(
        &mut self,
        data: Cmd<HSUB2>,
        na: bool
    ) -> Result<(), CommandError> { ... } fn h0026_directset_cmd(&mut self, _data: Cmd<HSUB2>) -> Result<Ack, Nak> { ... } fn h0026_directset_nacmd(
        &mut self,
        _data: Cmd<HSUB2>
    ) -> Result<(), CommandError> { ... } fn h0026_directset_ack(&mut self, _data: Ack) -> Result<(), CommandError> { ... } fn h0026_directset_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0026_directset_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0030_openurl(&mut self, data: Cmd<H>) -> Result<(), CommandError> { ... } fn h0030_openurl_cmd(&mut self, _data: Cmd<H>) -> Result<Ack, Nak> { ... } fn h0030_openurl_nacmd(&mut self, _data: Cmd<H>) -> Result<(), CommandError> { ... } fn h0030_openurl_ack(&mut self, _data: Ack) -> Result<(), CommandError> { ... } fn h0030_openurl_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0030_openurl_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0031_terminalcmd(
        &mut self,
        data: Cmd<H>,
        na: bool
    ) -> Result<(), CommandError> { ... } fn h0031_terminalcmd_cmd(&mut self, _data: Cmd<H>) -> Result<Ack, Nak> { ... } fn h0031_terminalcmd_nacmd(
        &mut self,
        _data: Cmd<H>
    ) -> Result<(), CommandError> { ... } fn h0031_terminalcmd_ack(&mut self, _data: Ack) -> Result<(), CommandError> { ... } fn h0031_terminalcmd_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0031_terminalcmd_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0034_terminalout(
        &mut self,
        data: Cmd<H>,
        na: bool
    ) -> Result<(), CommandError> { ... } fn h0034_terminalout_cmd(&mut self, _data: Cmd<H>) -> Result<Ack, Nak> { ... } fn h0034_terminalout_nacmd(
        &mut self,
        _data: Cmd<H>
    ) -> Result<(), CommandError> { ... } fn h0034_terminalout_ack(&mut self, _data: Ack) -> Result<(), CommandError> { ... } fn h0034_terminalout_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0034_terminalout_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0050_manufacturing(&mut self, data: Cmd) -> Result<(), CommandError> { ... } fn h0050_manufacturing_cmd(&mut self, _data: Cmd) -> Result<Ack, Nak> { ... } fn h0050_manufacturing_ack(&mut self, _data: Ack) -> Result<(), CommandError> { ... } fn h0050_manufacturing_nak(&mut self, _data: Nak) -> Result<(), CommandError> { ... } fn h0050_manufacturing_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... } fn h0051_manufacturingres(
        &mut self,
        data: Cmd<HSUB4>
    ) -> Result<(), CommandError> { ... } fn h0051_manufacturingres_cmd(
        &mut self,
        _data: Cmd<HSUB4>
    ) -> Result<Ack, Nak> { ... } fn h0051_manufacturingres_ack(
        &mut self,
        _data: Ack
    ) -> Result<(), CommandError> { ... } fn h0051_manufacturingres_nak(
        &mut self,
        _data: Nak
    ) -> Result<(), CommandError> { ... } fn h0051_manufacturingres_handler(
        &mut self,
        buf: HidIoPacketBuffer<H>
    ) -> Result<(), CommandError> { ... }
}
Expand description

HID-IO Command Interface H - Max data payload length (HidIoPacketBuffer) HSUB1, HSUB2, HSUB4 - Due to current limitations of const generics (missing const_evaluatable_checked), H - 1, H - 2 and H - 4 must be defined at the top-level. ID - Max number of HidIoCommandIds

Required Methods§

Given a HidIoPacketBuffer serialize (and resulting send bytes)

Provided Methods§

Check if id is valid for this interface (By default support all ids)

Default packet chunk (Usual chunk sizes are 63 or 64)

Simple empty ack

Simple empty nak

Simple byte ack

Simple byte nak

Simple short ack (16-bit)

Simple short nak (16-bit)

Process specific packet types Handles matching to interface functions

Implementors§