Skip to main content

imp.net.getwifihints()

Retrieve the imp’s preferred wireless router or access point BSSID, and WiFi channel

Availability

Device (from impOS™ 38)

Returns

Table — the imp’s WiFi hints

Description

This method returns the WiFi ‘hints’ that the imp records to accelerate future re-connections to wireless networks.

When an imp connects to a wireless router or access point for the first time, it records both the network station’s BSSID and the WiFi channel on which the network is operating (1-13 for 2.4GHz, 36-165 for 5GHz). This saves the imp from having to scan for this data at every subsequent re-connect. If the router later changes channel, or the stored BSSID is not available on the imp’s target network when the imp attempts to re-connect, the imp will re-scan, and record the new BSSID and channel for future use.

Only one pair of hints is stored at any one time — or there will be no hints if the imp has not yet connected to a wireless network. Hints are preserved across device starts and impOS™ updates, but not BlinkUps.

The imp’s currently stored hints can be retrieved at any time using imp.net.getwifihints(). The hints are returned as a table with the keys bssid (the router or access point’s BSSID as a string of 12 hexadecimal characters) and channel (the network’s WiFi channel as an integer). If there are no stored hints, imp.net.getwifihints() returns a table containing these keys, but value of bssid will be an empty string ("") and the value of channel will be -1.

If you wish to specify an imp’s hints, call imp.net.setwifihints().

Module-specific Information

impC001

The impC001 does not currently implement imp.net.getwifihints().

Example Code

The following example checks the host imp’s hints using imp.net.getwifihits() to test whether it previously connected to a network in the 5GHz band. For this application, the 2.4GHz band (with its greater range) is preferred, so we set this manually and re-connect. The connection callback function, reconnect(), checks for a successful connection and schedules a further re-connection attempt if the server could not be reached.

Note A fuller implementation might do more to check that the stored BSSID is valid for 2.4GHz operation, or use imp.setwificonfiguration() to specify a specific 2.4GHz network, if known.