34 #ifndef CMSIS_PLUS_DRIVER_USB_DEVICE_H_ 35 #define CMSIS_PLUS_DRIVER_USB_DEVICE_H_ 57 #pragma GCC diagnostic push 58 #pragma GCC diagnostic ignored "-Wpadded" 81 #pragma GCC diagnostic pop 86 #pragma GCC diagnostic push 87 #pragma GCC diagnostic ignored "-Wpadded" 97 is_vbus_on (
void)
const noexcept;
100 get_speed (
void)
const noexcept;
103 is_active (
void)
const noexcept;
122 #pragma GCC diagnostic pop 188 #pragma GCC diagnostic push 189 #pragma GCC diagnostic ignored "-Wpadded" 205 operator= (
const Device&) =
delete;
208 operator= (
Device&&) =
delete;
223 const void* cb_object =
nullptr) noexcept;
227 const void* cb_object =
nullptr) noexcept;
236 get_capabilities (
void) noexcept;
257 get_status (
void) noexcept;
264 wakeup_remote (
void) noexcept;
280 read_setup_packet (uint8_t* buf) noexcept;
287 get_frame_number (
void) noexcept;
310 unconfigure_endpoint (
endpoint_t ep_addr) noexcept;
323 stall_endpoint (
endpoint_t ep_addr,
bool stall) noexcept;
335 transfer (
endpoint_t ep_addr, uint8_t* data, std::size_t num) noexcept;
345 get_transfer_count (
endpoint_t ep_addr) noexcept;
363 signal_device_event (
event_t event) noexcept;
379 do_get_capabilities (
void) noexcept = 0;
382 do_connect (
void) noexcept = 0;
385 do_disconnect (
void) noexcept = 0;
388 do_get_status (
void) noexcept = 0;
391 do_wakeup_remote (
void) noexcept = 0;
397 do_read_setup_packet (uint8_t* buf) noexcept = 0;
400 do_get_frame_number (
void) noexcept = 0;
407 do_unconfigure_endpoint (
endpoint_t ep_addr) noexcept = 0;
410 do_stall_endpoint (
endpoint_t ep_addr,
bool stall) noexcept = 0;
413 do_transfer (
endpoint_t ep_addr, uint8_t* data, std::size_t num)
417 do_get_transfer_count (
endpoint_t ep_addr) noexcept = 0;
420 do_abort_transfer (
endpoint_t ep_addr) noexcept = 0;
441 #pragma GCC diagnostic pop 475 return do_get_capabilities ();
481 return do_get_status ();
487 return do_connect ();
493 return do_disconnect ();
499 return do_wakeup_remote ();
505 return do_configure_address (dev_addr);
511 return do_get_frame_number ();
518 return do_configure_endpoint (ep_addr, ep_type, ep_max_packet_size);
524 return do_unconfigure_endpoint (ep_addr);
530 return do_stall_endpoint (ep_addr, stall);
536 return do_get_transfer_count (ep_addr);
542 return do_abort_transfer (ep_addr);
const void * cb_endpoint_object_
Pointer to object instance associated with the endpoint callback.
bool is_active(void) const noexcept
return_t unconfigure_endpoint(endpoint_t ep_addr) noexcept
Unconfigure USB Endpoint.
device::Status & get_status(void) noexcept
Get current USB Device Status.
const void * cb_device_object_
Pointer to object instance associated with the device callback.
void(* signal_endpoint_event_t)(const void *object, endpoint_t ep_addr, event_t event)
USB device driver capabilities.
bool event_vbus_on
Signal VBUS Off event.
return_t configure_address(device_address_t dev_addr) noexcept
Set USB Device Address.
speed_t get_speed(void) const noexcept
device::signal_device_event_t cb_device_func_
Pointer to static function that implements the device callback.
bool vbus
< USB Device VBUS flag
speed_t speed
USB Device active flag.
Endpoint_event
USB Device Endpoint Events.
bool is_vbus_on(void) const noexcept
Endpoint_type
Endpoint type.
return_t configure_endpoint(endpoint_t ep_addr, Endpoint_type ep_type, packet_size_t ep_max_packet_size) noexcept
Configure USB Endpoint.
return_t stall_endpoint(endpoint_t ep_addr, bool stall) noexcept
Set/Clear Stall for USB Endpoint.
USB Device Connected to Port.
void(* signal_device_event_t)(const void *object, event_t event)
USB Device caused Overcurrent.
return_t wakeup_remote(void) noexcept
Trigger USB Remote Wakeup.
return_t connect(void) noexcept
Connect USB Device.
frame_number_t get_frame_number(void) noexcept
Get current USB Frame Number.
std::size_t get_transfer_count(endpoint_t ep_addr) noexcept
Get result of USB Endpoint transfer.
return_t abort_transfer(endpoint_t ep_addr) noexcept
Abort current USB Endpoint transfer.
device::signal_endpoint_event_t cb_endpoint_func_
Pointer to static function that implements the endpoint callback.
return_t disconnect(void) noexcept
Disconnect USB Device.
bool vbus_detection
< VBUS detection
Device_event
USB Device Events.
USB switch to High Speed occurred.
const device::Capabilities & get_capabilities(void) noexcept
Get driver capabilities.