network.py 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. """
  2. 此模块提供网络驱动程序和路由配置。特定硬件的网络驱动程序在此模块中可用,用于配置硬件网络接口。然后,配置接口提供的网络服务可以通过 usocket 模块使用。
  3. """
  4. STA_IF = ... # type: int
  5. AP_IF = ... # type: int
  6. class WLAN(object):
  7. """
  8. 创建一个 WLAN 网络接口对象。
  9. 支持的接口是 network.STA_IF(STA 模式,可以连接到上游的 WiFi 热点上) 和 network.AP_IF(AP 模式,允许其他 WiFi 客户端连接到自身的热点)。
  10. 下面方法的可用性取决于接口的类型。
  11. 例如,只有STA 接口可以使用 WLAN.connect() 方法连接到 AP 热点上。
  12. """
  13. STAT_IDLE = ... # type: int
  14. STAT_CONNECTING = ... # type: int
  15. STAT_WRONG_PASSWORD = ... # type: int
  16. STAT_NO_AP_FOUND = ... # type: int
  17. STAT_CONNECT_FAIL = ... # type: int
  18. STAT_GOT_IP = ... # type: int
  19. def __init__(self, interface_id : int) -> None:
  20. """初始化一个 wlan 对象"""
  21. ...
  22. def active(self, is_active : int) -> None:
  23. """
  24. - active([is_active])
  25. 如果向该方法传入布尔数值,传入 True 则使能卡,传入 False 则禁止网卡。否则,如果不传入参数,则查询当前网卡的状态。
  26. """
  27. ...
  28. def connect(self, ssid: str, password : str) -> None:
  29. """使用指定的账号和密码链接指定的无线热点。"""
  30. ...
  31. def disconnect(self) -> None:
  32. """从当前链接的无线网络中断开。"""
  33. ...
  34. def scan(self) -> None:
  35. """
  36. 扫描当前可以连接的无线网络。
  37. 只能在 STA 模式下进行扫描,使用元组列表的形式返回 WiFi 接入点的相关信息。
  38. (ssid, bssid, channel, rssi, authmode, hidden)
  39. """
  40. ...
  41. def status(self, param : str) -> None:
  42. """
  43. - status([param])
  44. 返回当前无线连接的状态。
  45. 当调用该方法时没有附带参数,就会返回值描述当前网络连接的状态。
  46. 如果还没有从热点连接中获得 IP 地址,此时的状态为 STATION_IDLE。
  47. 如果已经从连接的无线网络中获得 IP 地址,此时的状态为 STAT_GOT_IP。
  48. 当调用该函数使用的参数为 rssi 时,则返回 rssi 的值,该函数目前只支持这一个参数。
  49. """
  50. ...
  51. def isconnected(self) -> None:
  52. """
  53. 在 STA 模式时,如果已经连接到 WiFi 网络,并且获得了 IP 地址,则返回 True。
  54. 如果处在 AP 模式,此时已经与客户端建立连接,则返回 True。其他情况下都返回 False。"""
  55. ...
  56. def ifconfig(self, config: tuple) -> None:
  57. """
  58. ifconfig([(ip, subnet, gateway, dns)])
  59. 获取或者设置网络接口的参数,IP 地址,子网掩码,网关,DNS 服务器。
  60. 当调用该方法不附带参数时,该方法会返回一个包含四个元素的元组来描述上面的信息。
  61. 想要设置上面的值,传入一个包含上述四个元素的元组,例如:
  62. - nic.ifconfig(('192.168.0.4', '255.255.255.0', '192.168.0.1', '8.8.8.8'))
  63. """
  64. ...
  65. def config(self, mac : str = None, essid : str = None, password : str = None, hidden : int = 0, channel : int = 0) -> None:
  66. """
  67. - config(param=value, ...)
  68. 获取或者设置一般网络接口参数,这些方法允许处理标准的 ip 配置之外的其他参数,如 WLAN.ifconfig() 函数处理的参数。
  69. 这些参数包括特定网络和特定硬件的参数。
  70. 对于参数的设置,应该使用关键字的语法,可以一次性设置多个参数。"""
  71. ...