Zum Hauptinhalt springen

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

OptionStandardBeschreibung
bleName"ArmorLink"BLE-Gerätename bei aktiviertem BLE
espNowChannel1WLAN-Kanal für ESP-NOW
enableBlefalseAktiviert BLE-Kommunikation für die ArmorLink App
enableEspNowtrueAktiviert ESP-NOW-Kommunikation
enableGatewayfalseAktiviert den Gateway-Modus
enableSerialLoggingtrueAktiviert lokale Serial-Logs
enableSerialMenufalseAktiviert 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:

  • enableGateway
  • enableEspNow
  • enableBle
  • enableSerialMenu
  • bleName

Zusätzliche Optionen stehen für Logging, Zustandssynchronisation und Module-Presence zur Verfügung.