typehints/esp8266/network.pyi (53 lines of code) (raw):

"""network configuration This module provides network drivers and routing configuration. To use this module, a MicroPython variant/build with network capabilities must be installed. Network drivers for specific hardware are available within this module and are used to configure hardware network interface(s). Network services provided by configured interfaces are then available for use via the :mod:`usocket` module. For example:: # connect/ show IP config a specific network interface # see below for examples of specific drivers import network import utime nic = network.Driver(...) if not nic.isconnected(): nic.connect() print("Waiting for connection...") while not nic.isconnected(): utime.sleep(1) print(nic.ifconfig()) # now use usocket as usual import usocket as socket addr = socket.getaddrinfo('micropython.org', 80)[0][-1] s = socket.socket() s.connect(addr) s.send(b'GET / HTTP/1.1\r\nHost: micropython.org\r\n\r\n') data = s.recv(1000) s.close() """ from typing import overload, Optional, List, Tuple, Union, Any, Final STA_IF: Final[int] = ... AP_IF: Final[int] = ... @overload def phy_mode() -> int: """Get the PHY mode.""" ... @overload def phy_mode(mode: int) -> None: """Set the PHY mode. The possible modes are defined as constants: * ``MODE_11B`` -- IEEE 802.11b, * ``MODE_11G`` -- IEEE 802.11g, * ``MODE_11N`` -- IEEE 802.11n. """ ... class WLAN: def __init__(self, interface_id: int) -> None: """Create a WLAN network interface object. Supported interfaces are ``network.STA_IF`` (station aka client, connects to upstream WiFi access points) and ``network.AP_IF`` (access point, allows other WiFi clients to connect). Availability of the methods below depends on interface type. For example, only STA interface may `connect()` to an access point. """ ... @overload def active(self) -> bool: """Query current state of the interface.""" ... @overload def active(self, is_active: bool) -> None: """Activate ("up") or deactivate ("down") network interface.""" ... def connect(self, ssid: Optional[Union[bytes, str]] = None, password: Optional[Union[bytes, str]] = None, *, bssid: Optional[Union[bytes, str]] = None) -> None: """Connect to the specified wireless network, using the specified password. If *bssid* is given then the connection will be restricted to the access-point with that MAC address (the *ssid* must also be specified in this case). """ ... def disconnect(self) -> None: """Disconnect from the currently connected wireless network.""" ... def scan(self) -> List[Tuple[bytes, bytes, int, int, int, int]]: """Scan for the available wireless networks. Scanning is only possible on STA interface. Returns list of tuples with the information about WiFi access points: (ssid, bssid, channel, RSSI, authmode, hidden) *bssid* is hardware address of an access point, in binary form, returned as bytes object. You can use `ubinascii.hexlify()` to convert it to ASCII form. There are five values for authmode: * 0 -- open * 1 -- WEP * 2 -- WPA-PSK * 3 -- WPA2-PSK * 4 -- WPA/WPA2-PSK and two for hidden: * 0 -- visible * 1 -- hidden """ ... def status(self) -> int: """Return the current status of the wireless connection. The possible statuses are defined as constants: * ``STAT_IDLE`` -- no connection and no activity, * ``STAT_CONNECTING`` -- connecting in progress, * ``STAT_WRONG_PASSWORD`` -- failed due to incorrect password, * ``STAT_NO_AP_FOUND`` -- failed because no access point replied, * ``STAT_CONNECT_FAIL`` -- failed due to other problems, * ``STAT_GOT_IP`` -- connection successful. """ ... def isconnected(self) -> bool: """In case of STA mode, returns ``True`` if connected to a WiFi access point and has a valid IP address. In AP mode returns ``True`` when a station is connected. Returns ``False`` otherwise. """ ... @overload def ifconfig(self) -> Tuple[str, str, str, str]: """Get IP-level network interface parameters: IP address, subnet mask, gateway and DNS server. """ ... @overload def ifconfig(self, ip: str, subnet: str, gateway: str, dns: str) -> None: """Get/set IP-level network interface parameters: IP address, subnet mask, gateway and DNS server. """ ... @overload def config(self, param: str) -> Any: """Get general network interface parameters.""" ... @overload def config(self, **kwargs: Any) -> None: """Get or set general network interface parameters. These methods allow to work with additional parameters beyond standard IP configuration (as dealt with by `wlan.ifconfig()`). These include network-specific and hardware-specific parameters. For setting parameters, keyword argument syntax should be used, multiple parameters can be set at once. For querying, parameters name should be quoted as a string, and only one parameter can be queries at time:: # Set WiFi access point name (formally known as ESSID) and WiFi channel ap.config(essid='My AP', channel=11) # Query params one by one print(ap.config('essid')) print(ap.config('channel')) Following are commonly supported parameters (availability of a specific parameter depends on network technology type, driver, and `MicroPython port`). ============= =========== Parameter Description ============= =========== mac MAC address (bytes) essid WiFi access point name (string) channel WiFi channel (integer) hidden Whether ESSID is hidden (boolean) authmode Authentication mode supported (enumeration, see module constants) password Access password (string) dhcp_hostname The DHCP hostname to use ============= =========== """ ... STA_IF: int AP_IF: int STAT_IDLE: int STAT_CONNECTING: int STAT_WRONG_PASSWORD: int STAT_NO_AP_FOUND: int STAT_CONNECT_FAIL: int STAT_GOT_IP: int MODE_11B: int MODE_11G: int MODE_11N: int