.. currentmodule:: network .. _network.WINC: class WINC -- wifi shield driver ================================ ``WINC`` 类用于控制wifi扩展板。 示例使用:: import network wlan = network.WINC() wlan.connect("SSID", "KEY") wlan.ifconfig() 构造函数 ------------ .. class:: WINC([mode=MODE_STATION]) 创建一个 winc 驱动程序对象并连接到使用 I/O 引脚 P0、P1、P2、P3、P6、P7 和 P8 的 wifi 扩展板。 ``mode`` 控制WINC模块工作的模式: * network.WINC.MODE_STATION 模块作为客户端连接到访问点。这是默认模式。 * network.WINC.MODE_AP 模块将创建AP(访问点)并接受来自客户端的连接。 .. note:: 设置AP模式后,必须调用start_ap()方法来配置AP。 此外,WINC1500在其AP实现中有一些限制: * 一次只能连接一个客户端。 * 安全性只支持开放或WEP。 * WiFi 模块固件中有一个错误,当客户端断开连接时,任何绑定的套接字都会丢失(它们只是停止工作)。作为解决方法,为服务器套接字设置超时以强制它引发异常,然后重新打开它(请参阅示例代码)。 * network.WINC.MODE_FIRMWARE: 此模式启用WiFi模块固件更新。 方法 ------- .. method:: WINC.connect(ssid, [key=None, [security=WPA_PSK]]) 使用wifi网络名称 ``ssid`` 密码 ``key`` 安全性 ``security`` 连接到wifi网络。 连接到网络后,使用 :mod:`usocket` 模块打开TCP/UDP 端口来发送和接收数据。 .. note:: 此方法需要一段时间才能返回。 .. method:: WINC.start_ap(ssid, [key=None, [security=OPEN, [channel=1]]]) 在 AP 模式下运行时,必须在创建 WINC 对象以配置和启动 AP 后调用此方法。 * ssid: AP SSID 无线网络名称(必须设置)。 * key: AP加密密钥。只有当安全性是WEP时,才需要密钥。 * security: AP安全模式(仅支持OPEN开放性或WEP)。 * channel: WiFi频道,如果你有另一个AP在同一频道运行,请更改频道。 .. method:: WINC.disconnect() 断开wifi网络。 .. method:: WINC.isconnected() 如果连接到接入点并且已获得 IP 地址,则返回 True。 .. method:: WINC.connected_sta() 此方法返回一个包含已连接客户端的IP地址的列表。 .. method:: WINC.wait_for_sta(timeout) 此方法阻塞并等待客户端连接。如果超时为 0,这将永远阻塞。 此方法返回一个包含连接客户端 IP 地址的列表。 .. method:: WINC.ifconfig([ip_addr, subnet_addr, gateway_addr, dns_addr]) 返回一个元组,包含: * [0]: IP Address String IP 地址字符串 (XXX.XXX.XXX.XXX) * [1]: Subnet Address String 子网地址字符串 (XXX.XXX.XXX.XXX) * [2]: Gateway String 网关字符串 (XXX.XXX.XXX.XXX) * [3]: DNS Address String DNS 地址字符串(XXX.XXX.XXX.XXX) 当连接到网络时。 您可以选择以 ipv4 (XXX.XXX.XXX.XXX) 格式传递 ip_addr、subnet_addr、gateway_addr 和 dns_addr 字符串的元组/列表, 以设置静态 IP 地址与通过 DHCP 获取的地址(默认情况下发生)。 用法示例: wlan = network.WINC() wlan.ifconfig(('192.168.1.100', '255.255.255.0', '192.168.1.1', '192.168.1.1')) wlan.connect(SSID, key=KEY, security=wlan.WPA_PSK) .. method: WINC.netinfo() 返回一个元组,包含: * [0]: RSSI - 接收信号强度指示器 (int) * [1]: 授权类型(见常量) * [2]: 设置网络名称字符串 (SSID) * [3]: MAC 地址字符串 (XX:XX:XX:XX:XX:XX) (BSSID) * [4]: IP 地址字符串 (XXX.XXX.XXX.XXX) 当连接到网络时。 .. method:: WINC.scan() 返回一个包含: * [0]: 频道号 (int) * [1]: RSSI - 接收信号强度指示器 (int) * [2]: 授权类型(见常量) * [3]: MAC 地址字符串 (XX:XX:XX:XX:XX:XX) (BSSID) * [4]: 设置网络名称字符串 (SSID) 你不需要连接来调用它。 .. method:: WINC.rssi() 返回当前连接网络的接收信号强度指示符 (int)。 .. method:: WINC.fw_version() 返回包含wifi扩展板固件版本号的元组。 * [0]: 固件主版本号 (int) * [1]: 固件次版本号 (int) * [2]: 固件补丁版本号 (int) * [3]: 驱动程序主版本号 (int) * [4]: 驱动程序次版本号 (int) * [5]: 驱动程序补丁版本号 (int) * [6]: 硬件修订号 - 芯片 ID (int) .. method:: WINC.fw_dump(path) 将 wifi 扩展板固件转储到 ``path`` 处的二进制文件。您必须将模块置于固件模式才能使用它。 .. method:: WINC.fw_update(path) 使用在 ``path`` 中找到的二进制图像对 wifi 扩展板进行编程。您必须将模块置于固件模式才能使用它。 常量 --------- .. data:: WINC.OPEN 用于连接开放的wifi网络。 .. data:: WINC.WEP 用于连接到基于WEP的密码保护网络。 .. data:: WINC.WPA_PSK 用于连接到基于WPA/PSK的密码保护网络。 .. data:: WINC.MODE_STA 以station站模式开始(即连接到网络)。 .. data:: WINC.MODE_AP 以接入点模式开始(即成为网络)。 .. data:: WINC.MODE_FIRMWARE 在固件更新模式下设置。