# micropython-wol **Repository Path**: Yogile/micropython-wol ## Basic Information - **Project Name**: micropython-wol - **Description**: micropython-wol 由基于 Python 的 WOL(Wake On Lan) 适配移植过来,适配于 ESP32。 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-07-20 - **Last Updated**: 2022-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 依赖 ### Python MicroPython 是基于 Python 的 WOL 适配移植过来的,原代码在 MicroPython 中不是直接可用的。 源代码请参见:[LouisJin / WakeOnLan-Python](https://github.com/LouisJin/WakeOnLan-Python) ## MicroPython 除了 `boot.py` 放在根路径下。其他 `.py` 文件均放在 `/lib` 文件夹下。 ### `U_WIFI.py` > `U_WIFI.py` 用于连接 WIFI 。 ```python import lib as lib from lib import U_WIFI def start(): while(True): if U_WIFI.WIFI.WLAN == None: print("WIFI Start Connect...") U_WIFI.connectWiFi() if U_WIFI.WIFI.WLAN.isconnected(): print("WIFI Connected...") else: print("WIFI Not Connect...") U_WIFI.WIFI.WLAN = None utime.sleep(5) start() ``` ### `U_STRING.py` > `U_STRING.py` 用于实现 WOL 涉及到的 Python 实现了的——但 MicroPython 未实现的,有关方法。 > > 包含 `replace()` 、 `rindex()` 、 `join()` 。 | 方法 | 参数 | 说明 | | -------------------------------- | ---------------------------------- | ------------------------------------------- | | `replace(string, inStr, chgStr)` | `string`:被操作字符串 | 支持 `"xx"`,不支持 `b'xx'` 或 `b"xx"` 格式 | | | `inStr`:要被替换的单个字符 | 支持 `"x"`,不支持 `b'x'` 或 `b"x"` 格式 | | | `chgStr`:用于替换的单个字符 | 支持 `"x"`,不支持 `b'x'` 或 `b"x"` 格式 | | `rindex(string, indexStr)` | `string`:被查找字符串 | 支持 `"xx"`,不支持 `b'xx'` 或 `b"xx"` 格式 | | | `indexStr`:用于查找的目标单个字符 | 支持 `"x"`,不支持 `b'x'` 或 `b"x"` 格式 | | `join(string, Dict)` | `string`:被操作字符串 | 支持 `"xx"`,不支持 `b'xx'` 或 `b"xx"` 格式 | | | `Dict`:包含字符串的简单的一元字典 | 仅支持 `["asd"(, "asd" * 16, ...)]` 格式 | ### `U_WOL.py` >`U_WIFI` 用于获取本地 IP 。 > >`U_STRING` 用于实现字符串操作有关方法。 ## 适配移植 ### MicroPython 已实现 根据文档 [builtins-内置函数和异常](http://www.86x.org/en/latet/library/builtins.html) :得知 `class str` 已实现。 ### MicroPython 方法缺失 根据文档 [MicroPython 内置类型](http://www.86x.org/en/latet/genrst/builtin_types.html?highlight=byte#none-as-first-argument-for-rsplit-such-as-str-rsplit-none-n-not-implemented) :没有实现类似 `replace()` 的功能。 根据 [`usocket`](https://mpython.readthedocs.io/zh/v2.2.1/library/pythonStd/usocket.html#module-usocket) -- [socket 模块](https://mpython.readthedocs.io/zh/v2.2.1/library/pythonStd/usocket.html#id7) :得知未定义常量 `usocket.SO_BROADCAST` ,其值 `usocket.SO_BROADCAST = 32`。 ## 其他语言 ### C 语言 参见:[GramThanos](https://github.com/GramThanos) / [WakeOnLAN](https://github.com/GramThanos/WakeOnLAN) 更多:[Github 搜索结果](https://github.com/search?o=desc&q=c+Wake-on-LAN&s=stars&type=Repositories)