# A Batch Tool **Repository Path**: youxinweizhi/a-batch-tool ## Basic Information - **Project Name**: A Batch Tool - **Description**: Adafruit-AMPY 批处理工具 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: https://pypi.org/project/ampy-batch-tool/ - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2021-09-07 - **Last Updated**: 2021-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

AMPY Batch Tool

### 项目介绍 [AMPY Batch Tool](https://pypi.org/project/ampy-batch-tool/) 简称`ab`,可以批量将项目中指定的文件夹或文件上传到`MicroPython`开发板 ### 如何安装 #### 在线安装(推荐) ```bash # 安装 $ pip install ampy-batch-tool # 更新 $ pip install --upgrade ampy-batch-tool ``` #### 离线安装 首先克隆或下载项目源文件压缩包并解压缩,然后进入项目文件夹运行命令 ```bash $ python setup.py install ``` ```bash # for local develop $ pip install -e . ``` ### 如何上传文件 * 在你的项目文件夹下新建`abconfig`文件(`ab`工具默认查找该配置文件,也可以手动指定其它文件) * 配置文件中填写需要上传的文件夹或文件,每行一个,以`#`号开头的行表示需要排除的文件夹或文件,例如: ```doc drivers/ services/ main.py not_exists/ # services/websocket.py # .git/ ``` * 在需要上传项目文件的时候执行如下命令即可 ```bash $ ab ``` * 如果找不到或者未手动指定配置文件,则显示使用说明 * 完整输出内容 ```docs Port List: [1] COM8 - Silicon Labs CP210x USB to UART Bridge (COM8) [2] COM1 - 通信端口 (COM1) Choose a port: 1 File List (3): - drivers/button.py - services/mqtt.py - main.py Dir List (3) - drivers - drivers/others - services Not Found List (1) - not_exists Making dirs on board... - drivers exist - drivers/others exist - services exist Upload files to board... - uploading drivers/button.py (1/3) - uploading services/mqtt.py (2/3) - uploading main.py (3/3) Upload Finished ``` ### 如何进入`repl`模式 ```bash $ ab --repl Port List: [1] COM3 - Silicon Labs CP210x USB to UART Bridge (COM3) [2] COM1 - 通信端口 (COM1) Choose a port: 1 Miniterm for MicroPython REPL Ctrl-Z - Quit Ctrl-N - Help Ctrl-X - Kill main.py Ctrl-Y - Serial Info Ctrl-L - Run last file Ctrl-R - Run local file Ctrl-T - Run board file Ctrl-G - Run clipboard code >>> help() Welcome to MicroPython on the ESP32! For generic online docs please visit http://docs.micropython.org/ >>> ``` #### `repl`模式快捷键 * Ctrl + Z:退出`repl` * Ctrl + X:一键删除`main.py`文件 * Ctrl + G:将剪贴板中的代码粘贴到`repl`中 * Ctrl + Y:显示串口相关设置 * Ctrl + O:显示快捷键说明 * Ctrl + R:运行本地文件 * Ctrl + T:运行远程文件 * Ctrl + L:再次运行上次的本地文件 #### 一键删除`main.py`文件 有些时候由于在代码中写入死循环,导致无法删除或者重新上传文件的情况,可以尝试使用快捷键Ctrl + X对`main.py`文件进行删除 #### 运行本地`.py`文件 快捷键为:Ctrl + R ```docs >>> Run local file [1] upload_to_pypi.py [2] setup.py [3] local.py [4] ab\__main__.py [5] ab\__init__.py [6] ab\pyboard.py [7] ab\miniterm.py Choose a file: 3 boot.py - FILE client - PATH drivers - PATH onboard.py - FILE this is a local py file >>> ``` #### 运行远程`py`文件 也就是运行开发板上的文件,快捷键为:Ctrl + T ```docs >>> Run onboard file [1] /boot.py [2] /drivers/ssd1306.py [3] /onboard.py Choose a file: 3 this is a onboard py file >>> ``` #### 运行剪贴板中的代码段 快捷键为:Ctrl + G > 需要注意复制的代码段的缩进 ```docs >>> Run clipboard code HZK Info: //client/combined.bin file size : 303520 font height : 16 data size : 32 scan mode : Horizontal byte order : LSB characters : 8932 slave id: 60 >>> ``` #### 重新运行之前的文件 快捷键为:Ctrl + L > 注意:只能重新运行上一次的**本地文件** > > 因为开发板上文件的运行方式不同,所以暂不支持一键重新运行 ### 参数说明 * `-h`:显示使用说明 * ~~`-m`:使用`minify`工具压缩代码(功能未实现)~~ * `-q`:屏蔽操作过程中的相关提示 * `-s`:模拟操作过程,不实际上传文件 * `--repl`:进入`repl`模式 * `--readme`:在网页中显示使用说明 ### 已知问题 1. ~~调用`ampy`工具新建文件夹的时候如果文件夹已存在,则会抛出异常且无法捕捉~~ 2. 偶尔出现无法进入`raw_repl`模式的问题,重新运行一次即可解决 ### 更新记录 * `v0.5`: * 调整了`repl`模式下的快捷键 * `repl`模式增加运行本地文件功能 * `repl`模式增加运行远程文件功能 * 美化`repl`模式提示内容 * `v0.4.2`:`repl`模式增加一键删除`main.py`文件功能 * `v0.4.1`:`repl`模式增加粘贴代码功能 * `v0.4`:增加进入`repl`模式菜单和相关功能 * `v0.3.2`:修复由于`v0.3.1`导致的分隔路径错误问题 * `v0.3.1`:修复上传文件时字符转义的问题 * `v0.3`: * 重构了获取所有文件和文件夹列表功能 * 增加了显示网页版使用说明的参数 * `enter_raw_repl()`中增加延时,尝试解决`已知问题2` * `v0.2.2`:修复某些开发板不能读取串口数据的问题(如`安信可 ESP32C3 系列开发板`) * `v0.2.1`:修复导入模块路径问题 * `v0.2`: * 使用 [pyboard.py](https://github.com/micropython/micropython/blob/master/tools/pyboard.py) 替代`ampy`以提升文件上传效率,并解决`已知问题 1` * 禁用了代码压缩功能,使用 [pyminifier](http://liftoff.github.io/pyminifier/index.html) 压缩代码会出现问题 * 删除指定临时目录参数 * `v0.1.1`:尝试上传到 [PyPI](https://pypi.org/) * `v0.1`:完成基本功能 ### 附录:`repl`快捷键汇总 排除掉`MicroPython`已经使用的,以及与各种编辑器和终端发生冲突的,而且只能使用字母键,所以实际可用的按键其实并不多,凑合选择了一组,就是现在使用的这些 ```bash # 不可用的 Ctrl +: A - raw repl mode B - soft reset / exit raw repl C - interrupt run / cancel paste mode D - soft reset / finish paste mode E - paste mode I - list imported modules J, M - enter key P - up key V - mostly paste # 之前使用的 Ctrl +: L - show serial port info O - show help R - run local pyfile T - run onboard pyfile U - run code in clipboard ] - quit [ - delete onboard file main.py # 现在使用的 Ctrl +: Z - quit X - delete onboard file main.py N - show help Y - show serial port info L - run last pyfile (local / onboard) R - run local pyfile T - run onboard pyfile G - run code in clipboard # 可用的 (闲置的) Ctrl +: F - vsc 冲突 G H - bs 冲突 K N Q S W X Y Z ``` ### 合作交流 * 联系邮箱: * QQ 交流群: * 走线物联:163271910 * 扇贝物联:31324057

走线物联扇贝物联