ArmorLinkOptions
ArmorLinkOptions steuert, wie die ArmorLink Runtime initialisiert wird.
Die Optionen werden an ArmorLink.begin(...) übergeben und definieren, welche Funktionen für ein Module aktiviert werden.
Beispiel:
ArmorLinkOptions options;
options.enableEspNow = true;
options.enableGateway = true;
options.enableBle = true;
options.enableSerialMenu = true;
ArmorLink.begin(module, options);
Weitere Informationen findest du unter Modules.
Standardoptionen
Die Standardwerte werden durch die Struktur ArmorLinkOptions definiert.
struct ArmorLinkOptions {
String bleName = "ArmorLink";
uint8_t espNowChannel = 1;
bool enableBle = false;
bool enableEspNow = true;
bool enableGateway = false;
bool enableSerialLogging = true;
bool syncLoggingStateOnModuleOnline = false;
bool requestStateSyncAfterBoot = true;
uint32_t startupStateSyncDelayMs = 5000;
uint32_t startupStateSyncRetryMs = 10000;
String nvsNamespace = "armorlink";
uint32_t moduleHeartbeatIntervalMs = 30000;
bool forceRemoteLogging = false;
uint32_t remoteLogMinIntervalMs = 100;
String defaultLogTarget = "";
bool enableSerialMenu = false;
uint32_t modulePresenceCheckIntervalMs = 300000;
uint32_t moduleTimeoutMs = 900000;
};
Kernoptionen
| Option | Standard | Beschreibung |
|---|---|---|
bleName | "ArmorLink" | BLE-Gerätename bei aktiviertem BLE |
espNowChannel | 1 | WLAN-Kanal für ESP-NOW |
enableBle | false | Aktiviert BLE-Kommunikation für die ArmorLink App |
enableEspNow | true | Aktiviert ESP-NOW-Kommunikation |
enableGateway | false | Aktiviert den Gateway-Modus |
enableSerialLogging | true | Aktiviert lokale Serial-Logs |
enableSerialMenu | false | Aktiviert das Gateway-Serial-Menü |
Gateway-Optionen
enableGateway
Aktiviert den Gateway-Modus.
options.enableGateway = true;
Jedes ArmorLink-Netzwerk besitzt genau ein Gateway.
Das Gateway ist verantwortlich für Command-Routing, Pairing und die Verbindung der ArmorLink App mit dem Netzwerk.
Weitere Informationen findest du unter Gateway.
enableSerialMenu
Aktiviert das serielle Gateway-Menü.
options.enableSerialMenu = true;
Das Menü kann verwendet werden, um Pairing zu starten und gekoppelte Modules ohne ArmorLink App zu verwalten.
Diese Option ist nur sinnvoll, wenn gleichzeitig enableGateway aktiviert ist.
Weitere Informationen findest du unter Pairing.
Kommunikationsoptionen
enableEspNow
Aktiviert ESP-NOW-Kommunikation.
options.enableEspNow = true;
ESP-NOW wird für die Kommunikation zwischen Gateway und Modules verwendet.
Die meisten ArmorLink Modules sollten diese Option aktiviert lassen.
espNowChannel
Legt den WLAN-Kanal für ESP-NOW fest.
options.espNowChannel = 1;
Alle Modules innerhalb desselben ArmorLink-Netzwerks sollten denselben ESP-NOW-Kanal verwenden.
enableBle
Aktiviert BLE-Kommunikation für die ArmorLink App.
options.enableBle = true;
BLE wird normalerweise auf dem Gateway aktiviert, damit sich die ArmorLink App mit dem Netzwerk verbinden kann.
Die App kommuniziert ausschließlich mit dem Gateway und nicht direkt mit einzelnen Modules.
bleName
Legt den BLE-Gerätenamen fest.
options.bleName = "JARVIS";
Dieser Name wird in der ArmorLink App während der Gerätesuche angezeigt.
Speicheroptionen
nvsNamespace
Legt den von ArmorLink verwendeten NVS-Namespace fest.
options.nvsNamespace = "armorlink";
ArmorLink verwendet NVS für persistente Daten wie Configuration und Pairing-Informationen.
Für die meisten Projekte kann der Standardwert beibehalten werden.
Logging-Optionen
enableSerialLogging
Aktiviert lokale Serial-Logs.
options.enableSerialLogging = true;
Dies ist besonders während der Entwicklung hilfreich.
forceRemoteLogging
Aktiviert Remote Logging dauerhaft, auch wenn es nicht von der ArmorLink App angefordert wurde.
options.forceRemoteLogging = true;
Dies kann für Debugging hilfreich sein, erhöht jedoch den ESP-NOW-Datenverkehr.
Für den normalen Betrieb sollte diese Option deaktiviert bleiben.
remoteLogMinIntervalMs
Legt das minimale Intervall zwischen Remote-Log-Nachrichten fest.
options.remoteLogMinIntervalMs = 100;
Dadurch kann übermäßiger Log-Verkehr reduziert werden.
Weitere Informationen findest du unter Remote Logging.
defaultLogTarget
Definiert ein Standardziel für Remote Logs.
options.defaultLogTarget = "Chest";
Dies wird hauptsächlich für erweiterte Setups und Debugging verwendet.
Zustandssynchronisation
syncLoggingStateOnModuleOnline
Legt fest, ob das Gateway den aktuellen Logging-Zustand synchronisiert, wenn ein Module online kommt.
options.syncLoggingStateOnModuleOnline = false;
requestStateSyncAfterBoot
Legt fest, ob ein Module nach dem Start eine Zustandssynchronisation anfordert.
options.requestStateSyncAfterBoot = true;
Dadurch erhalten Modules nach dem Booten aktuelle Telemetry- und Logging-Einstellungen.
startupStateSyncDelayMs
Verzögerung vor der ersten Synchronisationsanfrage nach dem Start.
options.startupStateSyncDelayMs = 5000;
startupStateSyncRetryMs
Wiederholungsintervall für die Zustandssynchronisation.
options.startupStateSyncRetryMs = 10000;
Module-Presence-Optionen
moduleHeartbeatIntervalMs
Legt fest, wie häufig Modules Heartbeat-Informationen senden.
options.moduleHeartbeatIntervalMs = 30000;
Standard: 30 Sekunden.
modulePresenceCheckIntervalMs
Legt fest, wie häufig das Gateway die Module-Presence überprüft.
options.modulePresenceCheckIntervalMs = 300000;
Standard: 5 Minuten.
moduleTimeoutMs
Legt fest, wie lange ein Module ohne Kommunikation verbleiben darf, bevor es als offline betrachtet wird.
options.moduleTimeoutMs = 900000;
Standard: 15 Minuten.
Häufige Setups
Gateway mit App-Unterstützung
ArmorLinkOptions options;
options.enableGateway = true;
options.enableEspNow = true;
options.enableBle = true;
options.enableSerialMenu = true;
ArmorLink.begin(module, options);
Verwende dieses Setup für ein zentrales Gateway mit ArmorLink-App-Unterstützung.
Gateway ohne App-Unterstützung
ArmorLinkOptions options;
options.enableGateway = true;
options.enableEspNow = true;
options.enableBle = false;
options.enableSerialMenu = true;
ArmorLink.begin(module, options);
Verwende dieses Setup für ein Gateway ohne BLE-App-Anbindung.
Normales Module
ArmorLinkOptions options;
options.enableGateway = false;
options.enableEspNow = true;
options.enableBle = false;
ArmorLink.begin(module, options);
Verwende dieses Setup für normale Modules, die über das Gateway kommunizieren.
Einzelnes Module
ArmorLinkOptions options;
options.enableGateway = true;
options.enableEspNow = false;
options.enableBle = true;
ArmorLink.begin(module, options);
In einem Einzel-Module-Projekt übernimmt das Module selbst die Gateway-Rolle.
ESP-NOW wird nicht benötigt, da keine weiteren Modules vorhanden sind.
Weitere Informationen findest du unter Gateway.
Zusammenfassung
ArmorLinkOptions definiert, welche ArmorLink-Funktionen für ein Module aktiviert werden.
Die meisten Projekte müssen lediglich folgende Optionen konfigurieren:
enableGatewayenableEspNowenableBleenableSerialMenubleName
Zusätzliche Optionen stehen für Logging, Zustandssynchronisation und Module-Presence zur Verfügung.