mirror of
https://github.com/meshtastic/firmware.git
synced 2025-04-25 17:42:48 +00:00
77 lines
2.2 KiB
C++
77 lines
2.2 KiB
C++
#include "ScanI2C.h"
|
|
|
|
const ScanI2C::DeviceAddress ScanI2C::ADDRESS_NONE = ScanI2C::DeviceAddress();
|
|
const ScanI2C::FoundDevice ScanI2C::DEVICE_NONE = ScanI2C::FoundDevice(ScanI2C::DeviceType::NONE, ADDRESS_NONE);
|
|
|
|
ScanI2C::ScanI2C() = default;
|
|
|
|
void ScanI2C::scanPort(ScanI2C::I2CPort port) {}
|
|
void ScanI2C::scanPort(ScanI2C::I2CPort port, uint8_t *address, uint8_t asize) {}
|
|
|
|
void ScanI2C::setSuppressScreen()
|
|
{
|
|
shouldSuppressScreen = true;
|
|
}
|
|
|
|
ScanI2C::FoundDevice ScanI2C::firstScreen() const
|
|
{
|
|
// Allow to override the scanner results for screen
|
|
if (shouldSuppressScreen)
|
|
return DEVICE_NONE;
|
|
|
|
ScanI2C::DeviceType types[] = {SCREEN_SSD1306, SCREEN_SH1106, SCREEN_ST7567, SCREEN_UNKNOWN};
|
|
return firstOfOrNONE(4, types);
|
|
}
|
|
|
|
ScanI2C::FoundDevice ScanI2C::firstRTC() const
|
|
{
|
|
ScanI2C::DeviceType types[] = {RTC_RV3028, RTC_PCF8563};
|
|
return firstOfOrNONE(2, types);
|
|
}
|
|
|
|
ScanI2C::FoundDevice ScanI2C::firstKeyboard() const
|
|
{
|
|
ScanI2C::DeviceType types[] = {CARDKB, TDECKKB, BBQ10KB, RAK14004};
|
|
return firstOfOrNONE(4, types);
|
|
}
|
|
|
|
ScanI2C::FoundDevice ScanI2C::firstAccelerometer() const
|
|
{
|
|
ScanI2C::DeviceType types[] = {MPU6050, LIS3DH, BMA423, LSM6DS3, BMX160};
|
|
return firstOfOrNONE(5, types);
|
|
}
|
|
|
|
ScanI2C::FoundDevice ScanI2C::find(ScanI2C::DeviceType) const
|
|
{
|
|
return DEVICE_NONE;
|
|
}
|
|
|
|
bool ScanI2C::exists(ScanI2C::DeviceType) const
|
|
{
|
|
return false;
|
|
}
|
|
|
|
ScanI2C::FoundDevice ScanI2C::firstOfOrNONE(size_t count, ScanI2C::DeviceType *types) const
|
|
{
|
|
return DEVICE_NONE;
|
|
}
|
|
|
|
size_t ScanI2C::countDevices() const
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
ScanI2C::DeviceAddress::DeviceAddress(ScanI2C::I2CPort port, uint8_t address) : port(port), address(address) {}
|
|
|
|
ScanI2C::DeviceAddress::DeviceAddress() : DeviceAddress(I2CPort::NO_I2C, 0) {}
|
|
|
|
bool ScanI2C::DeviceAddress::operator<(const ScanI2C::DeviceAddress &other) const
|
|
{
|
|
return
|
|
// If this one has no port and other has a port
|
|
(port == NO_I2C && other.port != NO_I2C)
|
|
// if both have a port and this one's address is lower
|
|
|| (port != NO_I2C && other.port != NO_I2C && (address < other.address));
|
|
}
|
|
|
|
ScanI2C::FoundDevice::FoundDevice(ScanI2C::DeviceType type, ScanI2C::DeviceAddress address) : type(type), address(address) {} |