Swap out reliable router with flood router and dump modules

This commit is contained in:
Ben Meadors 2023-01-28 08:03:32 -06:00
parent e8908784f9
commit db192481bd
2 changed files with 40 additions and 29 deletions

View File

@ -310,6 +310,10 @@ void setup()
// but we need to do this after main cpu iniot (esp32setup), because we need the random seed set // but we need to do this after main cpu iniot (esp32setup), because we need the random seed set
nodeDB.init(); nodeDB.init();
// If we're taking on the repeater role, use flood router
if (config.device.role == meshtastic_Config_DeviceConfig_Role_REPEATER)
router = new FloodingRouter();
playStartMelody(); playStartMelody();
// fixed screen override? // fixed screen override?

View File

@ -8,6 +8,7 @@
#include "modules/NodeInfoModule.h" #include "modules/NodeInfoModule.h"
#include "modules/PositionModule.h" #include "modules/PositionModule.h"
#include "modules/RemoteHardwareModule.h" #include "modules/RemoteHardwareModule.h"
#include "modules/RepeaterModule.h"
#include "modules/ReplyModule.h" #include "modules/ReplyModule.h"
#include "modules/RoutingModule.h" #include "modules/RoutingModule.h"
#include "modules/TextMessageModule.h" #include "modules/TextMessageModule.h"
@ -33,51 +34,57 @@
*/ */
void setupModules() void setupModules()
{ {
if (config.device.role != meshtastic_Config_DeviceConfig_Role_REPEATER) {
#if HAS_BUTTON #if HAS_BUTTON
inputBroker = new InputBroker(); inputBroker = new InputBroker();
#endif #endif
adminModule = new AdminModule(); adminModule = new AdminModule();
nodeInfoModule = new NodeInfoModule(); nodeInfoModule = new NodeInfoModule();
positionModule = new PositionModule(); positionModule = new PositionModule();
waypointModule = new WaypointModule(); waypointModule = new WaypointModule();
textMessageModule = new TextMessageModule(); textMessageModule = new TextMessageModule();
traceRouteModule = new TraceRouteModule(); traceRouteModule = new TraceRouteModule();
// Note: if the rest of meshtastic doesn't need to explicitly use your module, you do not need to assign the instance // Note: if the rest of meshtastic doesn't need to explicitly use your module, you do not need to assign the instance
// to a global variable. // to a global variable.
new RemoteHardwareModule(); new RemoteHardwareModule();
new ReplyModule(); new ReplyModule();
#if HAS_BUTTON #if HAS_BUTTON
rotaryEncoderInterruptImpl1 = new RotaryEncoderInterruptImpl1(); rotaryEncoderInterruptImpl1 = new RotaryEncoderInterruptImpl1();
rotaryEncoderInterruptImpl1->init(); rotaryEncoderInterruptImpl1->init();
upDownInterruptImpl1 = new UpDownInterruptImpl1(); upDownInterruptImpl1 = new UpDownInterruptImpl1();
upDownInterruptImpl1->init(); upDownInterruptImpl1->init();
cardKbI2cImpl = new CardKbI2cImpl(); cardKbI2cImpl = new CardKbI2cImpl();
cardKbI2cImpl->init(); cardKbI2cImpl->init();
#endif #endif
#if HAS_SCREEN #if HAS_SCREEN
cannedMessageModule = new CannedMessageModule(); cannedMessageModule = new CannedMessageModule();
#endif #endif
#if HAS_TELEMETRY #if HAS_TELEMETRY
new DeviceTelemetryModule(); new DeviceTelemetryModule();
new EnvironmentTelemetryModule(); new EnvironmentTelemetryModule();
#endif #endif
#if (defined(ARCH_ESP32) || defined(ARCH_NRF52)) && !defined(TTGO_T_ECHO) && !defined(CONFIG_IDF_TARGET_ESP32S2) #if (defined(ARCH_ESP32) || defined(ARCH_NRF52)) && !defined(TTGO_T_ECHO) && !defined(CONFIG_IDF_TARGET_ESP32S2)
new SerialModule(); new SerialModule();
#endif #endif
#ifdef ARCH_ESP32 #ifdef ARCH_ESP32
// Only run on an esp32 based device. // Only run on an esp32 based device.
audioModule = new AudioModule(); audioModule = new AudioModule();
externalNotificationModule = new ExternalNotificationModule(); externalNotificationModule = new ExternalNotificationModule();
storeForwardModule = new StoreForwardModule(); storeForwardModule = new StoreForwardModule();
new RangeTestModule(); new RangeTestModule();
#elif defined(ARCH_NRF52) #elif defined(ARCH_NRF52)
externalNotificationModule = new ExternalNotificationModule(); externalNotificationModule = new ExternalNotificationModule();
#endif #endif
// NOTE! This module must be added LAST because it likes to check for replies from other modules and avoid sending extra acks // NOTE! This module must be added LAST because it likes to check for replies from other modules and avoid sending extra
routingModule = new RoutingModule(); // acks
routingModule = new RoutingModule();
} else {
adminModule = new AdminModule();
repeaterModule = new RepeaterModule();
}
} }