libxr  1.0
Want to be the best embedded framework
Loading...
Searching...
No Matches
LibXR::CH32USBDevice Class Reference
Inheritance diagram for LibXR::CH32USBDevice:
[legend]
Collaboration diagram for LibXR::CH32USBDevice:
[legend]

Public Member Functions

 CH32USBDevice (ch32_usb_dev_id_t id, size_t max_ep_num, USB::DeviceDescriptor::PacketSize0 packet_size, uint16_t vid, uint16_t pid, uint16_t bcd, const std::initializer_list< const USB::DescriptorStrings::LanguagePack * > LANG_LIST, const std::initializer_list< const std::initializer_list< USB::ConfigDescriptorItem * > > CONFIGS, USB::Speed speed=USB::Speed::FULL, USB::USBSpec spec=USB::USBSpec::USB_2_1)
 构造 CH32 USB 设备核心对象 / Construct CH32 USB device core
 
void Init (bool in_isr) override
 初始化 / Initialize
 
void Deinit (bool in_isr) override
 反初始化 / Deinitialize
 
- Public Member Functions inherited from LibXR::USB::EndpointPool
 EndpointPool (size_t endpoint_num)
 构造函数 / Constructor
 
 EndpointPool (const EndpointPool &)=delete
 
EndpointPooloperator= (const EndpointPool &)=delete
 
ErrorCode Put (Endpoint *ep)
 登记一个端点到池中 / Register an endpoint into the pool
 
ErrorCode Get (Endpoint *&ep_info, Endpoint::Direction direction, Endpoint::EPNumber ep_num)
 分配端点 / Allocate endpoint
 
ErrorCode Release (Endpoint *ep_info)
 回收端点 / Release endpoint
 
ErrorCode FindEndpoint (uint8_t ep_addr, Endpoint *&ans)
 查找端点/ Lookup endpoint
 
EndpointGetEndpoint0Out ()
 获取端点0的OUT对象 / Get Endpoint 0's OUT object
 
EndpointGetEndpoint0In ()
 获取端点0的IN对象 / Get Endpoint 0's IN object
 
void SetEndpoint0 (Endpoint *ep0_in, Endpoint *ep0_out)
 设置端点0的IN/OUT对象 / Set Endpoint 0 IN/OUT objects
 
- Public Member Functions inherited from LibXR::USB::DeviceCore
 DeviceCore (EndpointPool &ep_pool, USBSpec spec, Speed speed, DeviceDescriptor::PacketSize0 packet_size, uint16_t vid, uint16_t pid, uint16_t bcd, const std::initializer_list< const DescriptorStrings::LanguagePack * > &lang_list, const std::initializer_list< const std::initializer_list< ConfigDescriptorItem * > > &configs, ConstRawData uid={nullptr, 0})
 构造函数 / Constructor
 
virtual void Start (bool in_isr)=0
 启动设备(由子类实现)/ Start device (implemented by derived class)
 
virtual void Stop (bool in_isr)=0
 停止设备(由子类实现)/ Stop device (implemented by derived class)
 
void OnSetupPacket (bool in_isr, const SetupPacket *setup)
 处理 Setup 包 / Handle Setup packet
 
bool IsInited () const
 查询设备核心是否已经完成初始化 / Query whether the device core is initialized
 

Data Fields

uint8_t id_
 
- Data Fields inherited from LibXR::USB::DeviceCore

Additional Inherited Members

- Public Types inherited from LibXR::USB::DeviceCore
enum  Context : uint8_t {
  UNKNOWN = 0 , SETUP_BEFORE_STATUS , STATUS_IN_ARMED , DATA_OUT ,
  STATUS_OUT , DATA_IN , STATUS_IN_COMPLETE , ZLP
}
 控制传输上下文 / Control transfer context More...
 
- Protected Member Functions inherited from LibXR::USB::DeviceCore
virtual ErrorCode SetAddress (uint8_t address, Context state)=0
 设置设备地址(由子类实现) Set device address (implemented by derived class).
 
virtual void EnableRemoteWakeup ()
 启用远程唤醒 / Enable remote wakeup
 
virtual void DisableRemoteWakeup ()
 禁用远程唤醒 / Disable remote wakeup
 
virtual bool IsRemoteWakeupEnabled () const
 远程唤醒是否启用 / Whether remote wakeup is enabled
 
Speed GetSpeed () const
 获取设备速度 / Get device speed
 

Detailed Description

Definition at line 13 of file ch32_usb_dev.hpp.

Constructor & Destructor Documentation

◆ CH32USBDevice()

LibXR::CH32USBDevice::CH32USBDevice ( ch32_usb_dev_id_t id,
size_t max_ep_num,
USB::DeviceDescriptor::PacketSize0 packet_size,
uint16_t vid,
uint16_t pid,
uint16_t bcd,
const std::initializer_list< const USB::DescriptorStrings::LanguagePack * > LANG_LIST,
const std::initializer_list< const std::initializer_list< USB::ConfigDescriptorItem * > > CONFIGS,
USB::Speed speed = USB::Speed::FULL,
USB::USBSpec spec = USB::USBSpec::USB_2_1 )
inline

构造 CH32 USB 设备核心对象 / Construct CH32 USB device core

Definition at line 19 of file ch32_usb_dev.hpp.

27 : USB::EndpointPool(max_ep_num),
28 USB::DeviceCore(*this, spec, speed, packet_size, vid, pid, bcd, LANG_LIST,
29 CONFIGS),
30 id_(id)
31 {
32 }
Speed speed
设备速度 / Device speed
Definition dev_core.hpp:200

Member Function Documentation

◆ Deinit()

void LibXR::CH32USBDevice::Deinit ( bool in_isr)
inlineoverridevirtual

反初始化 / Deinitialize

Parameters
in_isr是否在 ISR / Whether in ISR context

Reimplemented from LibXR::USB::DeviceCore.

Definition at line 35 of file ch32_usb_dev.hpp.

35{ USB::DeviceCore::Deinit(in_isr); }
virtual void Deinit(bool in_isr)
反初始化 / Deinitialize
Definition dev_core.cpp:139

◆ Init()

void LibXR::CH32USBDevice::Init ( bool in_isr)
inlineoverridevirtual

初始化 / Initialize

Parameters
in_isr是否在 ISR / Whether in ISR context

Reimplemented from LibXR::USB::DeviceCore.

Definition at line 34 of file ch32_usb_dev.hpp.

34{ USB::DeviceCore::Init(in_isr); }
virtual void Init(bool in_isr)
初始化 / Initialize
Definition dev_core.cpp:122

Field Documentation

◆ id_

uint8_t LibXR::CH32USBDevice::id_

Definition at line 37 of file ch32_usb_dev.hpp.


The documentation for this class was generated from the following file: