簡體   English   中英

來自 HID 項目的鍵碼使用什么 C++ 類型?

[英]What C++ type do keycodes from HID Project Use?

最近,我發現自己對使用 arduino pro micro 制作的最近構建的 9 鍵宏鍵盤進行編程感到非常沮喪。 鍵盤是功能齊全的硬件,但我對 C++ 很陌生,無法讓它完全按照我的意願去做。 本質上,我希望使用與鍵值關聯的數組(0 到 8)將 9 個鍵綁定到 F13-F21 鍵。為此,我希望使用數組,但因為我不知道鍵值的類型從 HID 項目中,我無法讓數組將任何有意義的數據傳遞給 Keyboard.press function。

static const uint8_t KEYBINDS[] = {KEY_F13, KEY_F14, KEY_F15, KEY_F16, KEY_F17, KEY_F18, KEY_F19, KEY_F20, KEY_F21};

類似於我正在嘗試做的場景如下,我使用 Values 數組將數據傳遞給 Keyboard.press() function,僅使用數字。

static const uint8_t Values[] = {1, 4, 3, 6, 8};

Keyboard.press(Values[2]);

但是,Keyboard.press() function 需要如下所示的數據,

KEY_F13
KEY_TAB
KEY_SPACEBAR

我不知道這是什么類型的數據。 它不能用作字符串、uint8_t 或 uint16_t,或者我嘗試過的任何其他東西。 我不能使用 no type,並且 void 不適用於 arrays,所以我不知道還能嘗試什么。 源代碼中沒有指定類型,至少不是我能看到的,但我真的不知道怎么看。

一些信息; 使用鍵盤.press(KEY_F13); 完全符合我的要求。 我只是不知道如何通過數組將它傳遞給 function。 從技術上講,我可以使用帶有一堆 Keyboard.press() 命令的可怕 if 語句嵌套來讓它工作,但我更願意以正確的方式解決這個問題。

如果需要任何其他信息來幫助回答這個問題,請告訴我。

HID-項目文檔

https://github.com/NicoHood/HID/wiki

這些是來自 ImprovementKeylayouts.h 的枚舉類型 KeyboardKeycode 的值。 雖然枚舉的命名值可以隱式轉換為整數類型,但相反需要顯式轉換。

不確定您必須診斷什么問題,編譯器診斷應該指向不匹配。 畢竟,您還可以使用 C++11 使用與類型無關的聲明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM