Fonctions:
pressKeypad( char c) // un char représentant un nombre de '0' à '9' ainsi que '+' '-' '/' '*' '\r'
pressKeypad( valeur numérique ) // valeur de 0 à 9 et 13 (return)
releaseKeypad( char c ) // un char représentant un nombre de 0 à 9 ainsi que '+' '-' '/' '*' '\r'
releaseKeypad( valeur numérique ) // valeur de 0 à 9 et 13 (return)
Description:
pressKeypad permet de presser la touche correspond à l'argument
releaseKeypad permet de relâcher la touche correspond à l'argument
Arguments:
Un char '0' à '9' '*' '/' '+' '-' '\r' ou une valeur numérique de 0 à 9 et 13 (retour à la ligne)
Infos supplémentaires:
La valeur numérique correspond à la valeur ascii du caractère pour ces correspondances:
(char)13 ou '\r' (char)48 ou '0' (char)54 ou '6'
(char)42 ou '*' (char)49 ou '1' (char)55 ou '7'
(char)43 ou '+' (char)50 ou '2' (char)56 ou '8'
(char)45 ou '-' (char)51 ou '3' (char)57 ou '9'
(char)46 ou '.' (char)52 ou '4'
(char)47 ou '/' (char)53 ou '5'
Valeur de retour:
Retourne 1 si la fonction réussie sinon renvoie 0.
Exemple:
KeyboardEx.pressKeypad('A');
delay(1000);
KeyboardEx.releaseKeypad('A');
KeyboardEx.pressKeypad(9);
delay(1000);
KeyboardEx.releaseKeypad(9);
Code:
#include "Adafruit_TinyUSB.h" #include "KeyboardEx.h" // Report ID enum { RID_KEYBOARD = 1, // RID_MOUSE, RID_CONSUMER_CONTROL, // Media, volume etc .. }; // HID report descriptor using TinyUSB's template uint8_t const desc_hid_report[] = { //TUD_HID_REPORT_DESC_KEYBOARD(), TUD_HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(RID_KEYBOARD) ), //TUD_HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(RID_MOUSE) ), TUD_HID_REPORT_DESC_CONSUMER( HID_REPORT_ID(RID_CONSUMER_CONTROL) ) }; Adafruit_USBD_HID usb_hid; // -------------------------------------------------------------------------- void setup() { usb_hid.setPollInterval(2); usb_hid.setReportDescriptor(desc_hid_report, sizeof(desc_hid_report)); usb_hid.setReportCallback(get_report_callback , hid_report_callback); usb_hid.begin(); KeyboardEx.begin(usb_hid, RID_KEYBOARD); // KeyboardEx.setOS(Windows); // Si vous êtes sur Windows, permet l'utilisation des Alt Codes. // KeyboardEx.setDelay(5); // valeur par défaut, si problème augmenter la valeur à 10. // Commenter ces lignes si vous n'utilisez oas le port série Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for native USB } delay(6000); } void loop() { static int oneloop = 0; // n'aime pas le while(1) if (!oneloop) { oneloop = 1; // **************************************************************************************************** // Test des fonctions -> KeyboardEx.pressKeypad(...) et KeyboardEx.releaseKeypad(...) // **************************************************************************************************** KeyboardEx.println(F("*** Test des fonctions -> KeyboardEx.pressKeypad(...) et KeyboardEx.releaseKeypad(...) ***")); const char tableau1[] = "01234*/"; for (unsigned int i = 0; i < strlen(tableau1); i++) { KeyboardEx.pressKeypad(tableau1[i]); delay(1500); KeyboardEx.releaseKeypad(tableau1[i]); KeyboardEx.printKeypadln(); delay(1500); } char tableau2[] = "-+.56789"; for (unsigned int i = 0; i < strlen(tableau2); i++) { KeyboardEx.pressKeypad(tableau2[i]); delay(1500); KeyboardEx.releaseKeypad(tableau2[i]); KeyboardEx.printKeypadln(); delay(1500); } KeyboardEx.printKeypadln(); String valeur = "01234*/-+.56789"; for (unsigned int i = 0; i < valeur.length(); i++) { KeyboardEx.pressKeypad(valeur.charAt(i)); delay(1500); KeyboardEx.releaseKeypad(valeur.charAt(i)); KeyboardEx.printKeypadln(); delay(1500); } KeyboardEx.printKeypadln(); for (byte i = 0; i < 10; ++i) { KeyboardEx.pressKeypad(i); delay(1500); KeyboardEx.releaseKeypad(i); KeyboardEx.printKeypadln(); delay(1500); } KeyboardEx.end(); } } uint16_t get_report_callback (uint8_t report_id, hid_report_type_t report_type, uint8_t* buffer, uint16_t reqlen) { // Mettre Null à la place de get_report_callback dans cette fonction ci- dessous déclarée plus haut // si vous souhaitez supprmer cette procédure // usb_hid.setReportCallback(get_report_callback , hid_report_callback) -> usb_hid.setReportCallback(Null , hid_report_callback); // not used in this example return 0; } // Output report callback for LED indicator such as Caplocks void hid_report_callback(uint8_t report_id, hid_report_type_t report_type, uint8_t const* buffer, uint16_t bufsize) { uint8_t ledIndicator; // LED indicator is output report with only 1 byte length if ( report_type != HID_REPORT_TYPE_OUTPUT ) return; // KEYBOARD_LED_KANA (8) | KEYBOARD_LED_COMPOSE (3) | KEYBOARD_LED_SCROLLLOCK (4) | KEYBOARD_LED_CAPSLOCK (2) | KEYBOARD_LED_NUMLOCK (1) // buffer[0] si clavier seul // ou buffer[1] si plusieurs reports if (bufsize == 2) { ledIndicator = buffer[1]; } else { ledIndicator = buffer[0]; } // Allumer la led de la carte si CAPSLOCK (verrouillage des majuscule) est activé // La led ne s'allumera pas sur Adafruit QT py car c'est une Neopixel // mais sur un Seeeduino XIAO ok digitalWrite(LED_BUILTIN, !(ledIndicator & KEYBOARD_LED_CAPSLOCK)); } |