From 2af1a59480f45bcd66403acafdd05d3f59943ab1 Mon Sep 17 00:00:00 2001 From: Samuel Date: Wed, 19 Nov 2025 21:26:27 +0100 Subject: [PATCH] =?UTF-8?q?Nettoyage=20de=20la=20tentative=20de=20lecture?= =?UTF-8?q?=20du=20descripteur=20HID=20-=20pour=20une=20prochaine=20fois?= =?UTF-8?q?=20peut-=C3=AAtre=20=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 1 - gamepad.c | 153 ------------------------------------------------- gamepad.h | 17 ------ hid_app.c | 3 +- 4 files changed, 1 insertion(+), 173 deletions(-) delete mode 100644 gamepad.c delete mode 100644 gamepad.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d10478..0d3a2fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,6 @@ target_sources(host_cdc_msc_hid PUBLIC cdc_app.c diskio_USB.c diskio_SDIO.c - gamepad.c lib/FatFs/source/ff.c lib/FatFs/source/ffsystem.c lib/FatFs/source/diskio.c diff --git a/gamepad.c b/gamepad.c deleted file mode 100644 index 5d28414..0000000 --- a/gamepad.c +++ /dev/null @@ -1,153 +0,0 @@ -#include "gamepad.h" -#include "tusb.h" -#include "class/hid/hid.h" - -#define INPUT_ELEMENT_NAME_LENGTH 30 - - -struct input_element_t create_input_element( uint16_t first_bit_position, uint16_t mask, char name[]){ - struct input_element_t input_element; - input_element.first_bit_position = first_bit_position; - input_element.mask = mask; - if(strlen(name) > INPUT_ELEMENT_NAME_LENGTH - 1){ - strcpy(input_element.name, name); - }else{ - strcpy(input_element.name, "Too long"); - } - return input_element; -} - -struct gamepad_configuration_t create_8bitpro_configuration(uint8_t dev_addr, uint8_t instance){ - struct gamepad_configuration_t gamepad_configuration; - gamepad_configuration.dev_addr = dev_addr; - gamepad_configuration.instance = instance; - gamepad_configuration.report_id = 0x01; - - -} - -uint8_t create_gamepad_configuration(uint8_t dev_addr, uint8_t instance, - uint8_t const* desc_report, uint16_t desc_len) { - // Report Item 6.2.2.2 USB HID 1.11 - union TU_ATTR_PACKED { - uint8_t byte; - struct TU_ATTR_PACKED { - uint8_t size : 2; - uint8_t type : 2; - uint8_t tag : 4; - }; - } header; - - // current parsed report count & size from descriptor -// uint8_t ri_report_count = 0; -// uint8_t ri_report_size = 0; - - uint8_t ri_collection_depth = 0; - while (desc_len) { - header.byte = *desc_report++; - desc_len--; - - uint8_t const tag = header.tag; - uint8_t const type = header.type; - uint8_t const size = header.size; - - uint8_t const data8 = desc_report[0]; - - TU_LOG(2, "tag = %d, type = %d, size = %d, data = ", tag, type, size); - for (uint32_t i = 0; i < size; i++) { - TU_LOG(2, "%02X ", desc_report[i]); - } - TU_LOG(2, "\r\n"); - - switch (type) { - case RI_TYPE_MAIN: - switch (tag) { - case RI_MAIN_INPUT: break; - case RI_MAIN_OUTPUT: break; - case RI_MAIN_FEATURE: break; - case RI_MAIN_COLLECTION: - ri_collection_depth++; - break; - - case RI_MAIN_COLLECTION_END: - ri_collection_depth--; - if (ri_collection_depth == 0) { - // Fin de collection - } - break; - - default:break; - } - break; - - case RI_TYPE_GLOBAL: - switch (tag) { - case RI_GLOBAL_USAGE_PAGE: - // only take in account the "usage page" before REPORT ID - if (ri_collection_depth == 0) { - - } - break; - - case RI_GLOBAL_LOGICAL_MIN: break; - case RI_GLOBAL_LOGICAL_MAX: break; - case RI_GLOBAL_PHYSICAL_MIN: break; - case RI_GLOBAL_PHYSICAL_MAX: break; - - case RI_GLOBAL_REPORT_ID: - //info->report_id = data8; - break; - - case RI_GLOBAL_REPORT_SIZE: -// ri_report_size = data8; - break; - - case RI_GLOBAL_REPORT_COUNT: -// ri_report_count = data8; - break; - - case RI_GLOBAL_UNIT_EXPONENT: break; - case RI_GLOBAL_UNIT: break; - case RI_GLOBAL_PUSH: break; - case RI_GLOBAL_POP: break; - - default: break; - } - break; - - case RI_TYPE_LOCAL: - switch (tag) { - case RI_LOCAL_USAGE: - // only take in account the "usage" before starting REPORT ID - //if (ri_collection_depth == 0) info->usage = data8; - break; - - case RI_LOCAL_USAGE_MIN: break; - case RI_LOCAL_USAGE_MAX: break; - case RI_LOCAL_DESIGNATOR_INDEX: break; - case RI_LOCAL_DESIGNATOR_MIN: break; - case RI_LOCAL_DESIGNATOR_MAX: break; - case RI_LOCAL_STRING_INDEX: break; - case RI_LOCAL_STRING_MIN: break; - case RI_LOCAL_STRING_MAX: break; - case RI_LOCAL_DELIMITER: break; - default: break; - } - break; - - // error - default: break; - } - - desc_report += size; - desc_len -= size; - } - - /*for (uint8_t i = 0; i < report_num; i++) { - info = report_info_arr + i; - TU_LOG_DRV("%u: id = %u, usage_page = %u, usage = %u\r\n", i, info->report_id, info->usage_page, info->usage); - }*/ - - //return report_num; - return 0; -} \ No newline at end of file diff --git a/gamepad.h b/gamepad.h deleted file mode 100644 index f0d4278..0000000 --- a/gamepad.h +++ /dev/null @@ -1,17 +0,0 @@ -#include - -struct input_element_t{ - uint16_t first_bit_position; - uint16_t mask; - char name[30]; -}; - -struct gamepad_configuration_t{ - uint8_t dev_addr; - uint8_t instance; - uint8_t report_id; - struct input_element_t input_elements[30]; -}; - -uint8_t create_gamepad_configuration(uint8_t dev_addr, uint8_t instance, - uint8_t const* desc_report, uint16_t desc_len); \ No newline at end of file diff --git a/hid_app.c b/hid_app.c index 295dfb3..a7b4576 100644 --- a/hid_app.c +++ b/hid_app.c @@ -24,7 +24,6 @@ */ #include "bsp/board_api.h" -#include "gamepad.h" #include "hid_app.h" #include "tusb.h" @@ -190,7 +189,7 @@ void tuh_hid_mount_cb(uint8_t dev_addr, uint8_t instance, uint8_t const* desc_re if(hid_info[instance].report_info->usage == 5 && hid_info[instance].report_info->usage_page == 1){ printf("Found Gamepad descriptor\n"); - create_gamepad_configuration(dev_addr, instance, desc_report, desc_len); + //create_gamepad_configuration(dev_addr, instance, desc_report, desc_len); }