Files
ADB-pour-Framework-Arduino/examples/auto_platform_detect.cpp
T
Clément SAILLANT fb5f2b5a20 first commit
2025-03-26 15:49:24 +01:00

74 lines
2.0 KiB
C++

/**
* @file auto_platform_detect.cpp
* @brief Exemple avec détection automatique de la plateforme matérielle
*
* Ce fichier démontre comment la bibliothèque ADB peut être utilisée avec
* une détection automatique de la plateforme matérielle sous-jacente.
*
* @author Clément SAILLANT - L'électron rare
* @copyright Copyright (C) 2025 Clément SAILLANT
* @license GNU GPL v3
*/
#include <Arduino.h>
#include "adb.h"
// Détection automatique de plateforme et configuration de la broche
#if defined(ARDUINO_ARCH_AVR)
#define PLATFORM_NAME "Arduino AVR"
#define ADB_PIN 2
#elif defined(ARDUINO_ARCH_SAM)
#define PLATFORM_NAME "Arduino SAM"
#define ADB_PIN 2
#elif defined(ARDUINO_ARCH_SAMD)
#define PLATFORM_NAME "Arduino SAMD"
#define ADB_PIN 2
#elif defined(ARDUINO_ARCH_STM32)
#define PLATFORM_NAME "STM32"
#define ADB_PIN PB4
#elif defined(ARDUINO_ARCH_ESP32)
#define PLATFORM_NAME "ESP32"
#define ADB_PIN 21
#elif defined(TEENSYDUINO)
#define PLATFORM_NAME "Teensy"
#define ADB_PIN 3
#else
#define PLATFORM_NAME "Unknown Platform"
#define ADB_PIN 2
#warning "Plateforme non reconnue, utilisation de la pin 2 par défaut"
#endif
// Paramètres communs
constexpr uint32_t SERIAL_BAUD = 115200;
constexpr uint16_t POLL_INTERVAL = 250; // ms
// Initialisation des objets
ADB adb(ADB_PIN);
ADBDevices devices(adb);
ADBUtils utils(devices);
void setup() {
// Configuration de la communication série
Serial.begin(SERIAL_BAUD);
while (!Serial && millis() < 3000); // Attente avec timeout
// Initialisation du bus ADB
adb.init();
Serial.println(F("=== ADB Multiplateforme ==="));
Serial.print(F("Plateforme détectée: "));
Serial.println(F(PLATFORM_NAME));
Serial.print(F("Utilisation de la broche: "));
Serial.println(ADB_PIN);
Serial.println(F("========================"));
}
void loop() {
// Affichage des informations périphériques ADB
utils.printKeyboardStatus();
utils.printMouseStatus();
Serial.println(F("------------------------"));
delay(POLL_INTERVAL);
}