#include "scan_presets.h" #include #include "meshcore_packet.h" #include "meshtastic_presets.h" namespace roro::lora { size_t scanPresetCount() { return meshtastic::kEu868PresetCount + 1; } ScanPreset scanPreset(size_t i) { if (i < meshtastic::kEu868PresetCount) { const meshtastic::Preset& p = meshtastic::kEu868Presets[i]; return {p.name, meshtastic::eu868FrequencyHz(p), p.bwKHz, p.sf, p.cr, meshtastic::kSyncWord, meshtastic::kPreambleLength, Protocol::Meshtastic}; } return {meshcore::kPresetName, meshcore::kEuNarrowHz, meshcore::kEuNarrowBwKHz, meshcore::kEuNarrowSf, meshcore::kEuNarrowCr, meshcore::kSyncWord, meshcore::kPreambleLength, Protocol::MeshCore}; } bool findScanPreset(const char* name, ScanPreset& out) { for (size_t i = 0; i < scanPresetCount(); ++i) { ScanPreset p = scanPreset(i); const char *a = p.name, *b = name; while (*a && *b && std::tolower(static_cast(*a)) == std::tolower(static_cast(*b))) ++a, ++b; if (!*a && !*b) { out = p; return true; } } return false; } } // namespace roro::lora