libxr  1.0
Want to be the best embedded framework
Loading...
Searching...
No Matches
desc_dev.cpp
1#include "desc_dev.hpp"
2
3using namespace LibXR::USB;
4
5DeviceDescriptor::DeviceDescriptor(USBSpec spec, PacketSize0 packet_size, uint16_t vid,
6 uint16_t pid, uint16_t bcd, uint8_t num_configs)
7 : data_{DEVICE_DESC_LENGTH,
8 DescriptorType::DEVICE,
9 spec,
10 ClassID::MISCELLANEOUS,
11 0x02,
12 0x01,
13 packet_size,
14 vid,
15 pid,
16 bcd,
17 static_cast<uint8_t>(DescriptorStrings::Index::MANUFACTURER_STRING),
18 static_cast<uint8_t>(DescriptorStrings::Index::PRODUCT_STRING),
19 static_cast<uint8_t>(DescriptorStrings::Index::SERIAL_NUMBER_STRING),
20 num_configs}
21{
22}
23
25{
26 return RawData{reinterpret_cast<uint8_t*>(&data_), sizeof(data_)};
27}
28
29USBSpec DeviceDescriptor::GetUSBSpec() const { return data_.bcdUSB; }
原始数据封装类。 A class for encapsulating raw data.
字符串描述符管理器 / USB string descriptor manager
Definition desc_str.hpp:19
Data data_
设备描述符数据实例 / Internal data instance
Definition desc_dev.hpp:106
DeviceDescriptor(USBSpec spec, PacketSize0 packet_size, uint16_t vid, uint16_t pid, uint16_t bcd, uint8_t num_configs)
构造函数,初始化设备描述符 Constructor, initialize device descriptor fields
Definition desc_dev.cpp:5
USBSpec GetUSBSpec() const
获取USB协议版本 Get USB specification
Definition desc_dev.cpp:29
PacketSize0
控制端点0最大包长度枚举 Packet size for endpoint 0 (bMaxPacketSize0)
Definition desc_dev.hpp:72
RawData GetData()
获取设备描述符的原始数据指针及长度 Get the raw device descriptor data pointer and length
Definition desc_dev.cpp:24
USBSpec bcdUSB
USB协议版本 / USB specification release (e.g. 0x0200 for USB2.0)
Definition desc_dev.hpp:89