mirror of
https://github.com/meshtastic/firmware.git
synced 2025-02-08 13:41:28 +00:00
Added fix for ESP32
This commit is contained in:
parent
dbb254ba7a
commit
ce9e63a2cb
@ -1,4 +1,6 @@
|
||||
#include "ScanI2C.h"
|
||||
#include "main.h"
|
||||
#include <Wire.h>
|
||||
|
||||
const ScanI2C::DeviceAddress ScanI2C::ADDRESS_NONE = ScanI2C::DeviceAddress();
|
||||
const ScanI2C::FoundDevice ScanI2C::DEVICE_NONE = ScanI2C::FoundDevice(ScanI2C::DeviceType::NONE, ADDRESS_NONE);
|
||||
@ -28,7 +30,33 @@ ScanI2C::FoundDevice ScanI2C::firstRTC() const
|
||||
ScanI2C::DeviceType types[] = {RTC_RV3028, RTC_PCF8563};
|
||||
return firstOfOrNONE(2, types);
|
||||
}
|
||||
bool performScanForCardKB() {
|
||||
// Example I2C scan code for CardKB (adjust as needed)
|
||||
Wire.beginTransmission(CARDKB_I2C_ADDRESS);
|
||||
if (Wire.endTransmission() == 0) {
|
||||
return true; // CardKB detected
|
||||
}
|
||||
return false; // CardKB not detected
|
||||
}
|
||||
void scanForCardKB() {
|
||||
const int maxRetries = 10; // Maximum number of retries
|
||||
const int retryDelay = 100; // Delay between retries in milliseconds
|
||||
|
||||
for (int i = 0; i < maxRetries; ++i) {
|
||||
// Perform the scan (example scan code, adjust as needed)
|
||||
cardKBDetected = performScanForCardKB();
|
||||
|
||||
if (cardKBDetected) {
|
||||
Serial.println("CardKB Keyboard detected.");
|
||||
break;
|
||||
}
|
||||
|
||||
delay(retryDelay); // Wait before the next retry
|
||||
}
|
||||
if (!cardKBDetected) {
|
||||
Serial.println("CardKB Keyboard not detected. Canned Message Module Disabled.");
|
||||
}
|
||||
}
|
||||
ScanI2C::FoundDevice ScanI2C::firstKeyboard() const
|
||||
{
|
||||
ScanI2C::DeviceType types[] = {CARDKB, TDECKKB, BBQ10KB, RAK14004};
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
bool performScanForCardKB();
|
||||
|
||||
class ScanI2C
|
||||
{
|
||||
|
@ -35,6 +35,8 @@
|
||||
#include <utility>
|
||||
// #include <driver/rtc_io.h>
|
||||
|
||||
bool cardKBDetected = false;
|
||||
void scanForCardKB();
|
||||
#ifdef ARCH_ESP32
|
||||
#if !MESHTASTIC_EXCLUDE_WEBSERVER
|
||||
#include "mesh/http/WebServer.h"
|
||||
@ -376,6 +378,7 @@ void setup()
|
||||
// otherwise keyboard and touch screen will not work
|
||||
delay(800);
|
||||
#endif
|
||||
scanForCardKB(); // Initial scan for CardKB
|
||||
|
||||
// Currently only the tbeam has a PMU
|
||||
// PMU initialization needs to be placed before i2c scanning
|
||||
|
@ -21,7 +21,7 @@ extern NimbleBluetooth *nimbleBluetooth;
|
||||
#include "NRF52Bluetooth.h"
|
||||
extern NRF52Bluetooth *nrf52Bluetooth;
|
||||
#endif
|
||||
|
||||
extern bool cardKBDetected;
|
||||
#if ARCH_PORTDUINO
|
||||
extern HardwareSPI *DisplaySPI;
|
||||
extern HardwareSPI *LoraSPI;
|
||||
@ -39,6 +39,7 @@ extern bool pmu_found;
|
||||
extern bool isCharging;
|
||||
extern bool isUSBPowered;
|
||||
|
||||
#define CARDKB_I2C_ADDRESS 0x5F // Replace 0x5F with the actual address if different
|
||||
#if !defined(ARCH_PORTDUINO) && !defined(ARCH_STM32WL)
|
||||
extern ATECCX08A atecc;
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user