1 Star 4 Fork 3

Aaronwang/YModemForAndroid

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT
# YModemForAndroid YModem For Android is a library that easy to transmit file data with some terminal devices like BloothLE using [ymodem protocol](https://en.wikipedia.org/wiki/YMODEM). ## Notice Though suitable, this library doesn't supply a ble component for transmitting data with terminal, it's your responsibility to encapsulate your own. ## Get Started Supported URI formats: ``` "file:///storage/emulated/0/filename.bin" // from SD card "assets://image.png" // from assets ``` ### Initiation ``` java ymodem = new YModem.Builder() .with(this) .filePath("assets://demo.bin") .fileName("demo.bin") .checkMd5("lsfjlhoiiw121241l241lgljaf") .callback(new YModemListener() { @Override public void onDataReady(byte[] data) { //send this data[] to your ble component here... } @Override public void onProgress(int currentSent, int total) { //the progress of the file data has transmitted } @Override public void onSuccess() { //we are well done with md5 checked } @Override public void onFailed(String reason) { //the task has failed for several times of trying } }).build(); ``` ### Start transmission ``` java ymodem.start(); ``` ### Received data from terminal When you received response from the ble terminal, tell ymodem to handle it: ``` java ymodem.onReceiveData(data); ``` The param data should be byte array. ### Stop ``` java ymodem.stop(); ``` Just enjoy it! ## About The concrete ymodem protocol implemented in this library: ``` * MY YMODEM IMPLEMTATION * *SENDER: ANDROID APP *------------------------------------------* RECEIVER: BLE DEVICE* * HELLO BOOTLOADER ---------------------------------------------->* * <---------------------------------------------------------------* C * SOH 00 FF filename0fileSizeInByte0MD5[90] ZERO[38] CRC CRC----->* * <---------------------------------------------------------------* ACK C * STX 01 FE data[1024] CRC CRC ---------------------------------->* * <---------------------------------------------------------------* ACK * STX 02 FF data[1024] CRC CRC ---------------------------------->* * <---------------------------------------------------------------* ACK * ... * ... * <p> * STX 08 F7 data[1000] CPMEOF[24] CRC CRC ----------------------->* * <---------------------------------------------------------------* ACK * EOT ----------------------------------------------------------->* * <---------------------------------------------------------------* ACK * SOH 00 FF ZERO[128] ------------------------------------------->* * <---------------------------------------------------------------* ACK * <---------------------------------------------------------------* MD5_OK ``` ## Reference [Wikipedia YMODEM](https://en.wikipedia.org/wiki/YMODEM) [xmodem、ymodem、zmodem](http://web.cecs.pdx.edu/~rootd/catdoc/guide/TheGuide_226.html) [aesirot ymodem on github](https://github.com/aesirot/ymodem) ## License MIT

简介

A ymodem implementation that suitable for android to transmit data with BLE devices. 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/yudexi/YModemForAndroid.git
git@gitee.com:yudexi/YModemForAndroid.git
yudexi
YModemForAndroid
YModemForAndroid
master

搜索帮助