ver 1.3.6: fix post-release bugs

This commit is contained in:
fsender
2024-03-12 00:58:08 +08:00
parent 558b847a3d
commit 86de2fb12a
4 changed files with 32 additions and 11 deletions

View File

@@ -41,21 +41,21 @@
class readguyImage{ class readguyImage{
public: public:
readguyImage(ReadguyDriver &_guy):guy(&_guy){} readguyImage(ReadguyDriver &_guy):guy(&_guy){
w=guy->width(); h=guy->height();
}
/** @brief 显示图像. use16grey: 为true则使用16灰度,false则不用 /** @brief 显示图像. use16grey: 为true则使用16灰度,false则不用
* @note 需要提前设置绘制参数, 直接在类的外部 设置此类的成员函数即可. * @note 需要提前设置绘制参数, 直接在类的外部 设置此类的成员函数即可. 对于不会C++的朋友们, 可以看示例.
* 对于不会C++的朋友们, 可以看示例. * 注意该函数会调用 guy.display 来刷屏, 因此
* @param baseFs, filename 文件系统和文件名. 必须指定. * @param baseFs, filename 文件系统和文件名. 必须指定.
* @param x, y 显示在屏幕的什么地方 * @param x, y 显示在屏幕的什么地方
* * @param use16grey 0: 使用单色抖动 1:使用16灰度 (如果要开关抖动则需要用setGreyQuality设置)
* @param use16grey 0: 使用单色抖动 1:使用16灰度 2:使用16灰度但不抖动
* */ * */
void drawImageFile(bool use16grey = 0); void drawImageFile(bool use16grey = 0);
/** @brief 将图像绘制到系统缓存内. 必须预分配内存, 并且需要知道分配的大小. /** @brief 将图像绘制到系统缓存内. 必须预分配内存, 并且需要知道分配的大小.
* @note 需要提前设置绘制参数, 直接在类的外部 设置此类的成员函数即可. * @note 需要提前设置绘制参数, 直接在类的外部 设置此类的成员函数即可. 对于不会C++的朋友们, 可以看示例.
* 对于不会C++的朋友们, 可以看示例. * 注意该函数会调用 guy.display 来刷屏
* @param baseFs, filename 文件系统和文件名. 必须指定. * @param baseFs, filename 文件系统和文件名. 必须指定.
* @param x, y 显示在屏幕缓存的什么地方 * @param x, y 显示在屏幕缓存的什么地方
* @param w, h 开辟的缓存宽度和高度. 最好是和图片的大小相匹配. * @param w, h 开辟的缓存宽度和高度. 最好是和图片的大小相匹配.

View File

@@ -81,7 +81,9 @@ void drv::drv_dispWriter(std::function<uint8_t(int)> f,uint8_t m){ //单色刷
} }
} }
} }
yield();
} }
delay(50);
} }
void drv::drv_sleep() {} void drv::drv_sleep() {}
} }

View File

@@ -177,14 +177,17 @@ const char *ReadguyDriver::epd_drivers_list[EPD_DRIVERS_NUM_MAX]={
//x==62 -> _ //x==62 -> _
//#define R2CHAR(x) (((x)==63)?42:(((x)==62)?95:(((x)>=36)?((x)+61):(((x)>=10)?((x)+55):((x)+48))))) //#define R2CHAR(x) (((x)==63)?42:(((x)==62)?95:(((x)>=36)?((x)+61):(((x)>=10)?((x)+55):((x)+48)))))
void ReadguyDriver::ap_setup(){ void ReadguyDriver::ap_setup(){
return ap_setup("readguy","12345678");
}
void ReadguyDriver::ap_setup(const char *ssid, const char *pass, int m){
//初始化WiFi AP模式, 用于将来的连接WiFi 处于已连接状态下会断开原本的连接 //初始化WiFi AP模式, 用于将来的连接WiFi 处于已连接状态下会断开原本的连接
WiFi.mode(WIFI_AP); if(m>=0 && m<=3) WiFi.mode((WiFiMode_t)m); //有时候还需要STA+AP或者是一开始就确定好了wifi模式
IPAddress local_IP(192,168,4,1); IPAddress local_IP(192,168,4,1);
IPAddress gateway(192,168,4,1); IPAddress gateway(192,168,4,1);
IPAddress subnet(255,255,255,0); IPAddress subnet(255,255,255,0);
WiFi.softAPConfig(local_IP, gateway, subnet); WiFi.softAPConfig(local_IP, gateway, subnet);
WiFi.softAP("readguy","12345678"); WiFi.softAP(ssid,pass);
Serial.println(F("[Guy AP] ap_setup SSID: readguy, Pass: 12345678")); Serial.printf_P(PSTR("[Guy AP] ap_setup SSID: %s, Pass: %s\n"),ssid,pass);
} }
void ReadguyDriver::server_setup(const String &notify, const serveFunc *serveFuncs, int funcs){ void ReadguyDriver::server_setup(const String &notify, const serveFunc *serveFuncs, int funcs){
//启动WiFi服务器端, 这样就可以进行配网工作 //启动WiFi服务器端, 这样就可以进行配网工作

View File

@@ -163,6 +163,16 @@
#define READGUY_SLOW_END 4 #define READGUY_SLOW_END 4
#define READGUY_FAST_END 5 #define READGUY_FAST_END 5
//按键行为 下一个 上一个 确定 返回/退出 特殊操作(如切换输入法)
//1个按键 返回 1=点按 2=双击 4=长按 8=三击 3=点按后接长按
//2个按键 返回 1=左键点按 2=左键长按 4=右键点按 8=右键长按 3=按住左键点按右键
//3个按键 返回 1=右键点按 2=左键点按 4=中键点按 8=中键长按 3=中间按键双击(需手动开启)
#define GUY_BTN_PREV 1 //上一个
#define GUY_BTN_NEXT 2 //下一个
#define GUY_BTN_SPECIAL 3 //确定 选择
#define GUY_BTN_OK 4 //返回/退出
#define GUY_BTN_BACK 8 //特殊操作(如切换输入法)
class ReadguyDriver: public LGFX_Sprite{ // readguy 基础类 class ReadguyDriver: public LGFX_Sprite{ // readguy 基础类
public: public:
#ifdef READGUY_ESP_ENABLE_WIFI #ifdef READGUY_ESP_ENABLE_WIFI
@@ -247,6 +257,11 @@ class ReadguyDriver: public LGFX_Sprite{ // readguy 基础类
} serveFunc; } serveFunc;
/// @brief 初始化WiFi AP模式, 用于将来的连接WiFi 处于已连接状态下会断开原本的连接 /// @brief 初始化WiFi AP模式, 用于将来的连接WiFi 处于已连接状态下会断开原本的连接
void ap_setup(); void ap_setup();
/*** @brief 初始化WiFi AP模式, 用于将来的连接WiFi 可以自定义模式切换的函数
* @param ssid 设置ap的名称
* @param pass 设置ap的密码
* @param m WiFi模式 */
void ap_setup(const char *ssid, const char *pass, int m=(int)WIFI_AP);
/// @brief 初始化WiFi AP模式, 用于将来的连接WiFi 处于已连接状态下会断开原本的连接 /// @brief 初始化WiFi AP模式, 用于将来的连接WiFi 处于已连接状态下会断开原本的连接
void server_setup(const String &notify=emptyString, const serveFunc *serveFuncs = nullptr, int funcs = 0); void server_setup(const String &notify=emptyString, const serveFunc *serveFuncs = nullptr, int funcs = 0);
bool server_loop(); bool server_loop();
@@ -260,6 +275,7 @@ class ReadguyDriver: public LGFX_Sprite{ // readguy 基础类
} serveFunc; } serveFunc;
/// @brief 初始化WiFi AP模式, 用于将来的连接WiFi 处于已连接状态下会断开原本的连接 /// @brief 初始化WiFi AP模式, 用于将来的连接WiFi 处于已连接状态下会断开原本的连接
void ap_setup(){} void ap_setup(){}
void ap_setup(const char *ssid, const char *pass, int m=2){}
/// @brief 初始化服务器模式, 用于将来的连接WiFi 处于已连接状态下会断开原本的连接 /// @brief 初始化服务器模式, 用于将来的连接WiFi 处于已连接状态下会断开原本的连接
void server_setup(const String &notify=emptyString, const serveFunc *serveFuncs = nullptr, int funcs = 0){} void server_setup(const String &notify=emptyString, const serveFunc *serveFuncs = nullptr, int funcs = 0){}
bool server_loop(){ return true; } bool server_loop(){ return true; }