1.0.1 • Published 11 months ago
@embedded-js/wifi-connection-manager v1.0.1
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.disconnectmessages. - Convenient readiness check: Use the
readygetter 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-managerimport Net from "net"; // From moddable SDK
import { WiFiConnectionManager } from "@embedded-js/wifi-connection-manager";
const manager = new WiFiConnectionManager(
[
// First access point to attempt
{
ssid: "Freebox-ScreamZ",
password: "invalid!", // Invalid password for testing in a simulator
},
// Second access point to attempt
{
ssid: "Freebox-ScreamZ",
password: "good_password",
},
],
(message) => {
switch (msg) {
case WiFiConnectionManager.connected:
break; // still waiting for IP address
case WiFiConnectionManager.gotIP:
trace(`IP address ${Net.get("IP")}\n`);
break;
case WiFiConnectionManager.disconnected:
break; // connection lost
}
}
);
// Example: Checking if connected (procedural way)
if (manager.ready) {
console.log("Wi-Fi is connected!");
}
// Close connection when needed
manager.close();