Embedded : WiFi connection manager
[!IMPORTANT]
This module is ESM only and only available for usage with the Moddable SDK as it uses core dependencies.
Learn how to setup an Embedded JavaScript project using xs-dev.
A robust solution to manage Wi-Fi connections in embedded systems using the Moddable SDK. WiFiConnectionManager
simplifies the process of maintaining an active connection to a Wi-Fi access point.
Features
- Auto-reconnect: Automatically retries connection if unavailable at startup or dropped during runtime.
- Connection lifecycle management: Allows clean disconnection using
close
. - Redundant message suppression: Filters out repetitive
WiFi.disconnect
messages. - Convenient readiness check: Use the
ready
getter to quickly determine if Wi-Fi is connected. - Connection timeout handling: Forces a disconnect and retries if no IP address is assigned within a configurable timeout.
- Graceful recovery: Waits a configurable duration after an unforced disconnect for a clean reconnect.
- Multiple access points: Attempts connection to access points in order from a provided list.
Installation
npm install @embedded-js/wifi-connection-manager
import Net from "net";
import { WiFiConnectionManager } from "@embedded-js/wifi-connection-manager";
const manager = new WiFiConnectionManager(
[
{
ssid: "Freebox-ScreamZ",
password: "invalid!",
},
{
ssid: "Freebox-ScreamZ",
password: "good_password",
},
],
(message) => {
switch (msg) {
case WiFiConnectionManager.connected:
break;
case WiFiConnectionManager.gotIP:
trace(`IP address ${Net.get("IP")}\n`);
break;
case WiFiConnectionManager.disconnected:
break;
}
}
);
if (manager.ready) {
console.log("Wi-Fi is connected!");
}
manager.close();