# 1.5.0 ## Release 1.5.0 - 2025/4/7 1. 重构较多代码, 为2.0做准备. 现在可以通过包含文件来自定义配置了 2. 修复bug ## Release 1.4.3 - 2025/4/3 1. 加入了更多可选配置项, 如 AP 配网地址等 2. 为ESP32S3优先选择调用 SDIO_1Bit 来驱动SD卡 4. 修复bug ## Release 1.4.2 - 2025/3/11 1. 现在程序可以在Arduino-ESP32的版本高于3.0.0的Arduino集成环境和ESP-IDF (仍需依赖Arduino component, 但不依赖PlatformIO) 中编译成功 2. 示例程序中添加了更多的说明文本 ## Release 1.4.1 - 2024/12/2 1. 紧急修复了在禁用 `DYNAMIC_PIN_SETTINGS` 之后点不亮屏幕的bug ## Release 1.4.0 - 2024/12/1 ### 新增内容 1. 新增用户引脚配置数据字段的读取和写入接口 2. 附加了时间管理库, 位于 `extra/ctg_timelib` 文件夹内. 本库可用于替代 [Arduino TimeLib](https://github.com/PaulStoffregen/Time), 使ESPxxxx系列主控可以与GNU C time库使用同一个时间访问接口, 并显著减小代码体积. 3. 新增 `getDepth` 函数, 用于获得当前墨水屏的显示颜色深度 4. 新增 `setAutoFullRefresh` 函数, 可用于设置自动慢刷, 防止连续快刷导致屏幕对比度降低甚至刷坏屏幕 5. 新增 `screenshot` 函数, 可截屏并保存在SD卡中. 6. 新增 `SDdeinit` 函数, 调用后SD卡将会不可用, 用于安全卸载SD卡或者重新检测SD卡的可用性. 7. 新增 `recoverI2C` 函数, 在I2C引脚被复用的情形下, 使用I2C功能会影响其他引脚的复用功能. 该函数可以在I2C用完之后还原这些复用引脚的功能设置 8. 新增 `setSDbusy` 函数, 在SD卡的CS引脚被复用作按键时, 调用 `setSDbusy(1)` 标记此时SD卡正在被占用, `setSDbusy(0)` 来释放. **该函数仅建议在需要兼容SD卡被复用作按键的硬件上使用. 其他情况用处不大. 前往** `guy_driver_config.h` **文件并禁用宏** `READGUY_ALLOW_SDCS_AS_BUTTON` **是最佳选择** 9. 新增实验性功能 `READGUY_ALLOW_DC_AS_BUTTON`, `READGUY_ALLOW_EPDCS_AS_BUTTON`, `READGUY_ALLOW_SDCS_AS_BUTTON`, 详见文件 `guy_driver_config.h` . 10. 内置服务器功能现在支持设置请求类型为 UPLOAD, HEAD, POST, PUT, PATCH, DELETE 和 OPTIONS 的服务函数, 以及请求返回 404 Not Found 的响应. ### 优化 1. 优化了大部分代码结构 (给一些函数加上const和inline标志, 提高效率) , 并修复了部分变量未初始化就调用的bug 2. 优化了配置网页的结构, 现在配置引脚的按钮在网页最下方了 3. 优化部分示例程序, 增加并更新部分注释, 更易读 更易用 4. 完全移除了内部对 RTC 的支持. 5. 为 1.54 寸 LilyGo 屏幕, 2.9 寸前置光屏幕和 2.7 寸屏幕提供了睡眠模式下快速唤醒的支持. 6. 为 LCD 墨水屏模拟器提供了快速但不支持同屏灰度的模拟模式. ### Bug 修复 1. 修复在禁用 dynamic_pin_settings 时, 数组访问越界的bug 2. 修复了禁用 WiFi 功能但未配置引脚时, 程序会异常继续运行的bug 3. 按键任务函数结构重构, 解决了按键被复用时, 无法设置按键为高电平触发的情况 ## Release 1.3.7 - 2024/3/11 1. 配网页面, 增加了用户引脚数据 (可以配置其他功能的引脚. 此功能似乎是为了准备给esp32s3用sdmmc库驱动sd卡用的) 2. 增加 `guy_button` 按键库功能的接口函数 3. 修复部分bug ## Release 1.3.6 - 2024/3/11 1. 按键功能: 正式更新特殊操作按法, 此按法可用于切换输入法或菜单定位等功能. 同时更新ex03演示, 演示更清晰. 2. 修复其他bug, 比如示例wifi-text-show中, 中文网页无法在windows系统上呈现等... ## Release 1.3.5 - 2024/3/4 1. 2024/2/25更新: 修复了按键bug, 双按键有时候识别不灵, 三按键不支持移植到拨轮硬件操作, 现在全修好了 2. 2024/2/26更新: 增加了新环境 : 针对无串口芯片的 ESP32C3 新增的选项 3. 2024/2/28更新: 增加了新的示例: WiFi传文本 4. 优化ESP32C3的配置体验 ## Release 1.3.4 - 2023/11/24 1. 添加5.83寸屏幕驱动. 默认开启, 嫌flash占用大的可以手动关 2. 修复别的一些bug ## Release 1.3.3 - 2023/11/12 1. 添加了2.66寸三色和黑白的不同驱动程序. 2. guy_epaper 文件夹内添加了一些文件. 为添加新版本驱动做准备. 3. 现在SD卡功能是可移除的. 可以自定义文件系统来初始化并使用. 但是对应的, SD卡引脚设定保留. 4. 优化按键手势的按动手感. 5. 重构了"固定引脚"(DYNAMIC_PIN_SETTINGS被注释)的宏定义逻辑代码. 现在如果在运行过"固定引脚"的程序之后, 再运行常规固件不需要二次配置. 6. 增大了S3的按钮任务栈空间, 避免因为stack overflow导致的任务终止. 7. 修复若干其他方面的bug, 比如配置引脚时, 屏幕没转向. ## Release 1.3.2 - 2023/11/8 1. 按键驱动 (guy_button) 获得新操作更新: (New button gesture) - 单按键操作更新: 现在双击效果为选择/确定, 三击效果为返回, 长按效果为向上翻页; - 单按键新增点按后长按操作; - 双按键新增按住按键1点按按键2操作; - 三按键新增按住按键1点按按键3操作. 2. 新增获取系统内存的API函数 getFreeMem(). 3. 修复若干驱动层bug. ## Release 1.3.1 - 2023/11/7 1. 增加了分步绘制的支持. 可以使用 READGUY_FAST_START 等绘制选项来控制绘制过程: - READGUY_SLOW 慢刷, 完整的进行一次慢刷, 等于连续执行慢刷开始和慢刷结束. - READGUY_FAST 快刷, 完整的进行一次快刷, 需要等待刷完才能继续执行代码. - READGUY_SLOW_START 慢刷开始, 此过程不会进行等待, 发送完要刷新的缓存之后立刻返回 - READGUY_FAST_START 快刷开始. - READGUY_SLOW_END 慢刷结束, 调用慢刷开始之后才能执行. 会等待到屏幕刷完再执行后续操作. - READGUY_FAST_END 快刷结束, 如果两次调用间隔时间屏幕已经刷完, 那么该函数会完成刷屏后续操作之后立刻返回. 2. 修复了首次配置驱动时, 墨水屏显示页面错位的bug (现在对于新设备, 配置起来会像以前一样丝滑) 3. 修复若干其他bug ## Release 1.3.0 - 2023/11/6 1. 增加了真.保姆级的教程 (详细到注释比代码多很多倍) 2. 目前所有支持的屏幕设备都可以在主控复位之后, 不需要调用init函数即可直接快刷(也不会变成慢刷). 为此, 调用init函数之后, 会让屏幕的下一次刷新变为慢刷. 3. 优化了所有的驱动程序. 包括灰度效果, 内存占用等. 4. 增加了更多的图片显示示例程序. 现在支持多种图片显示方式: 4.1. 在内存中开辟新画布(sprite). 支持颜色格式有1,2,4,8bit灰度(greyscale), 1,2,4,8bit调色板(palette), 8bit-RGB332, 16bit-RGB565, 24bit-RGB888. 4.2. 画布可以用抖动算法在屏幕上显示为二值图. 4.3. 画布可以在屏幕上显示为16级灰度图. 4.4. 画布可以显示在屏幕缓存中, 此过程不刷新屏幕. 下次刷新屏幕时, 画布内容将呈现在屏幕缓存中. 4.5. 将画布缩放到指定的宽度和高度后显示. 4.6. 显示BMP, JPG, PNG(仅限ESP32系列)图片文件到画布上. 4.7. 直接将图片文件刷新到屏幕上, 无需画布(sprite). 4.8. 将图片文件显示到屏幕缓存内, (不显示). 4.9. 将图片文件以16级灰度显示到屏幕上, 无需画布(sprite). 4.10. 缩放显示图片文件, 需要指定缩放比例. >1.0为放大, <1.0为缩小. (float scale_x, float scale_y). 5. 修复若干bug. ## Release 1.2.0 - 2023/11/3 1. 添加了图片demo, 和 可选关闭的WiFi 的示例程序。其中图片相关功能相当节省内存, 还请大胆使用。 2. 新增了接口函数 getReadguy...(), guyMemoryWidth(), guyMemoryHeight(), guyDriverWidth(), guyDriverHeight() 等函数, 可以在程序内获取到一些硬件相关信息。 3. 增加了保姆级教程, 比现有教程更加简单易用。 4. 修复了一些bug。现在4.2寸HINK屏幕的16灰度刷新不会导致内存溢出了. ## Release 1.1.1 - 2023/10/20 1. 引脚配置页更新,内置预设开发板的引脚预定义。此选项的内置定义可以被用户更改成自己的板子预定义。 2. 可以配置wifi并对时。 3. 支持在库内设置i2c总线。实际i2c功能需要自己编写程序,本库只提供了i2c引脚的定义接口。此次更新之后,设备需要重新配网。 4. 支持16级灰度的抖动算法,并可在编译时切换显示算法。 5. 添加了更多例程,例程注释更简洁易用。比如 WiFi获取时间demo, 按键demo, 文本和字体demo, 使用静态引脚定义的demo. 6. 修复了一些bug. ## Release 1.1.0 - 2023/09/25 1. 可以配网了 也可以在线更新固件了. 注意在2MB flash的硬件上是无法通过在线更新固件的. 现在还需要你通过示例来进行配网! 2. 增加了更多示例程序. 3. 修复了一些bug 4. 适配了16级灰度的floyd steinberg抖动算法, 提升了灰度的画质 (显示灰度渐变色, 则不会产生色块, 而是自然的像素抖动) ### Release 1.0.2 - 2023/09/24 1. 进行了ESP32C3, ESP32S3和ESP32S2的功能测试. 2. 修复了一些bug, 包括可能会让一部分内存被两个任务连续释放导致ESP32触发assert的问题. 3. 更新了一些示例. ### Release 1.0.1 - 2023/09/23 1. 更改文件结构 (Git:我谢谢你). 现在可以像arduino库一样使用readguy了. 2. 优化platformio.ini的描述, 现在对新人开发者来说结构更清晰了. 3. 合并了 2.66英寸(Vusion价签屏) 和2.13英寸B型(红黑白三色屏和部分价签屏) 的驱动程序. 4. 现在支持使用arduino IDE进行项目开发. 5. 修复了若干bug # Release 1.0.0 - 2023/09/18 可以通过WiFi进行配置显示屏和SD卡设置. 目前支持 1.54, 2.13, 2.66, 2.9, 3.7, 4.2 英寸的10种屏幕 开发只能使用 lovyanGFX 库的函数来绘制到EPD屏幕上. 目前有按键的驱动和背光的驱动, 但是因为此项目只有驱动程序, 还不能阅读, 只有墨水屏的demo. 关于都支持哪些屏幕可以看readme # Pre-alpha 0.0.1 - 2022/11/23 可以通过WiFi进行配置显示屏和SD卡设置. 目前只支持4种屏幕 开发可以使用adafruit_GFX的函数来绘制到EPD屏幕上. 目前没有按键的驱动, 还不能阅读, 只有墨水屏的demo.