Вт апр 04, 2023 13:29:08
Вт апр 04, 2023 13:39:30
Вт апр 04, 2023 13:43:15
Вт апр 04, 2023 14:20:45
struct DummyTypeBoxBase {};
template <typename T, typename Enabler = void>
constexpr bool is_complete_v = false;
template <typename T>
constexpr bool is_complete_v<T, std::void_t<decltype(sizeof(T) != 0)>> = true;
template<typename T>
struct TypeBox : public std::conditional_t<std::is_class_v<T> && is_complete_v<T>, T, DummyTypeBoxBase>
{
using type = T;
};
Вт апр 04, 2023 14:57:23
Да что там того оверхеда, пара сотен байт. У вас таблица векторов небось больше весит.Согласен, сейчас прикинул, все равно ведь все эти данные где-то во Flash итак лежали (чтобы потом в RAM быть записанными), так что даже какого-то значимого оверхеда быть не должно.
Вт апр 04, 2023 16:06:46
Вт апр 04, 2023 16:15:11
Нет, я имею в виду произвольные комбинации из реализованных в устройстве. "Сегодня я буду флешкой и CDC, а завтра микрофоном, мышкой и джойстиком". Можно, конечно, прописывать факториал комбинаций, но это тоже неудобно.Ну и пусть себе лежат все дружно во флэшь. Выбрать по обстоятельствам какой из них скормить хотсу не составляет труда.
Мэджикнамберами замучаешься размеры править, да и читать такое неприятно.Да они даже просто мэджикнамберами пишутся. А вот автоматизировать на плюсах можно лучше, чем макросами. Мы это уже разбирали на примере HID Report Descriptor, не надо на следующий круг заходить.
Чт апр 20, 2023 13:27:56
Чт апр 20, 2023 14:17:06
Запускаете анализатор трафика, например, wireshark, и смотрите какую команду ваше устройство не сумело обработать.Еще несколько вопросов: тот же девайс на винде определился в диспетчере как последовательный usb (com), но с ошибкой 10 - операция не может быть выполнена, куда копать?
Это важно скорее для переходника USB-UART, на стороне UART вам ведь надо выставлять настройки.По поводу baud rate у виртуального com порта - он вообще хоть на что-нибудь влияет? С учетом того, что хост может сколько угодно конечную точку девайся ждать, не обижаясь на нак.
хост может сколько угодно конечную точку девайся ждать, не обижаясь на нак.
Чт апр 20, 2023 14:50:06
Чт апр 20, 2023 15:21:40
Чт апр 20, 2023 15:53:16
Чт апр 20, 2023 15:58:03
Ну про нак это я так, к слову, что хост не должен обижаться на ожидание данных от конечной точки
Спасибо за наводку, попробую wireshark использовать, надеюсь поможет в этом нелегком деле
Не поможет.
Чт апр 20, 2023 21:59:23
Пт апр 21, 2023 00:31:52
Пт апр 21, 2023 07:14:49
Пт апр 21, 2023 08:29:14
Int_USBRST
Int_SUSPEND
Int_WKUP
Int_USBRST
GET_Device_Descriptor 64 bytes
Int_USBRST
SET_ADDRESS 24
GET_Device_Descriptor 18 bytes
GET_Configuration_Descriptor 255 bytes
GET_String_Descriptor 0x3 255 bytes
GET_String_Descriptor 0x0 255 bytes
GET_String_Descriptor 0x2 255 bytes
GET_Device_Qualifier_Descriptor 10 bytes
GET_Device_Descriptor 18 bytes
GET_String_Descriptor 0x0 255 bytes
GET_String_Descriptor 0x3 255 bytes
GET_String_Descriptor 0x1 255 bytes
GET_String_Descriptor 0x2 255 bytes
GET_Device_Descriptor 18 bytes
GET_Configuration_Descriptor 9 bytes
GET_Configuration_Descriptor 67 bytes
GET_Configuration_Descriptor 265 bytes
SET_CONFIGURATION 1
GET_LINE_CODING
SET_CONTROL_LINE_STATE 0
SET_LINE_CODING
SET_LINE_CODING DATA 0 0 0 0
GET_LINE_CODING
GET_String_Descriptor 0x0 255 bytes
GET_String_Descriptor 0x1 255 bytes
GET_String_Descriptor 0x2 255 bytes
SET_CONTROL_LINE_STATE 0
GET_LINE_CODING
SET_CONTROL_LINE_STATE 0
GET_LINE_CODING
SET_LINE_CODING
SET_LINE_CODING DATA 256000 0 0 8
GET_LINE_CODING
SET_CONTROL_LINE_STATE 0
SET_CONTROL_LINE_STATE 0
GET_LINE_CODING
SET_LINE_CODING
SET_LINE_CODING DATA 2000000 0 0 8
GET_LINE_CODING
SET_CONTROL_LINE_STATE 1
SET_LINE_CODING
SET_LINE_CODING DATA 2000000 0 1 8
GET_LINE_CODING
Пт апр 21, 2023 10:24:42
Пт апр 21, 2023 11:41:08
Пт апр 21, 2023 13:16:24