add new menu code and son menu

This commit is contained in:
JasonYANG170 2024-04-20 00:50:51 +08:00
parent 51a9993723
commit 2c44a98068

View File

@ -674,7 +674,7 @@ void pid_ui_show()//PID界面
{ {
move_bar(&pid_line_y, &pid_line_y_trg); move_bar(&pid_line_y, &pid_line_y_trg);
move(&pid_box_y, &pid_box_y_trg); move(&pid_box_y, &pid_box_y_trg);
move_width(&pid_box_width, &pid_box_width_trg, pid_select, key_msg.id); move_width(&pid_box_width, &pid_box_width_trg, pid_select+1, key_msg.id);//修改pid_select加1修复指针问题
u8g2.drawVLine(126, 0, 61); u8g2.drawVLine(126, 0, 61);
u8g2.drawPixel(125, 0); u8g2.drawPixel(125, 0);
u8g2.drawPixel(127, 0); u8g2.drawPixel(127, 0);
@ -910,12 +910,15 @@ void pid_edit_proc(void)//pid编辑界面处理函数
void pid_proc()//pid界面处理函数 void pid_proc()//pid界面处理函数
{ {
pid_ui_show(); pid_ui_show();
if (key_msg.pressed) if (key_msg.pressed)
{ {
key_msg.pressed = false; key_msg.pressed = false;
switch (key_msg.id) switch (key_msg.id)
{ {
case 0: case 0:
if (pid_select != 0) if (pid_select != 0)
{ {
@ -952,7 +955,8 @@ void pid_proc()//pid界面处理函数
} }
else else
{ {
ui_index = M_PID_EDIT;
ui_index = M_ABOUT;
} }
break; break;
default: default:
@ -961,7 +965,8 @@ void pid_proc()//pid界面处理函数
pid_box_width_trg = u8g2.getStrWidth(pid[pid_select].select) + x * 2; pid_box_width_trg = u8g2.getStrWidth(pid[pid_select].select) + x * 2;
} }
} }
// 函数原型声明
void addUser(char* mainnowdisplay);
void select_proc(void)//选择界面处理重要的 void select_proc(void)//选择界面处理重要的
{ {
if (key_msg.pressed) if (key_msg.pressed)
@ -1004,42 +1009,48 @@ void select_proc(void)//选择界面处理重要的
ui_state = S_DISAPPEAR; //S_DISAPPEAR; ui_state = S_DISAPPEAR; //S_DISAPPEAR;
ui_index = M_LOGO;//M_LOGO; ui_index = M_LOGO;//M_LOGO;
break; break;
case 1: //pid // case 1: //pid
// addUser(list[ui_select].select);
// ui_state = S_DISAPPEAR;
// ui_index = M_PID;
// break;
// case 2: //icon
// ui_state = S_DISAPPEAR;
// ui_index = M_ICON;
// break;
// case 3: //chart
// ui_state = S_DISAPPEAR;
// ui_index = M_CHART;
// break;
// case 4: //textedit
// ui_state = S_DISAPPEAR;
// ui_index = M_TEXT_EDIT;
// break;
// case 6: //about
// ui_state = S_DISAPPEAR;
// ui_index = M_ABOUT;
// break;
// case 7: //about
// ui_state = S_DISAPPEAR;
// ui_index = M_ABOUT;
// break;
// case 8: //about
// ui_state = S_DISAPPEAR;
// ui_index = M_ABOUT;
// break;
default:
addUser(list[ui_select].select);
ui_state = S_DISAPPEAR; ui_state = S_DISAPPEAR;
ui_index = M_PID; ui_index = M_PID;
break; break;
case 2: //icon
ui_state = S_DISAPPEAR;
ui_index = M_ICON;
break;
case 3: //chart
ui_state = S_DISAPPEAR;
ui_index = M_CHART;
break;
case 4: //textedit
ui_state = S_DISAPPEAR;
ui_index = M_TEXT_EDIT;
break;
case 6: //about
ui_state = S_DISAPPEAR;
ui_index = M_ABOUT;
break;
case 7: //about
ui_state = S_DISAPPEAR;
ui_index = M_ABOUT;
break;
case 8: //about
ui_state = S_DISAPPEAR;
ui_index = M_ABOUT;
break;
default:
break;
} }
//Serial.println("Btn2"); //Serial.println("Btn2");
default: default:
break; break;
} }
//Serial.println(ui_select); Serial.println("ui_select------------------test");
Serial.println(ui_select);
Serial.println(list[ui_select].select);
box_width_trg = u8g2.getStrWidth(list[ui_select].select) + x * 2; box_width_trg = u8g2.getStrWidth(list[ui_select].select) + x * 2;
} }
select_ui_show(); select_ui_show();
@ -1290,7 +1301,8 @@ int db_exec(sqlite3 *db, const char *sql) {
return rc; return rc;
} }
void addUser(){
void addUser(char* mainnowdisplay){
sqlite3 *db1; sqlite3 *db1;
char *zErrMsg = 0; char *zErrMsg = 0;
@ -1305,7 +1317,11 @@ void addUser(){
if (openDb("/sd/key.db", &db1)) if (openDb("/sd/key.db", &db1))
return; return;
rc = db_exec(db1, "SELECT user FROM key WHERE site = 'example.com';"); char query[100]; // 假设足够大以容纳您的查询语句
// 构建查询语句
std::sprintf(query, "SELECT user FROM key WHERE site = '%s';", mainnowdisplay);
rc = db_exec(db1, query);
if (rc != SQLITE_OK) { if (rc != SQLITE_OK) {
sqlite3_close(db1); sqlite3_close(db1);
@ -1360,7 +1376,11 @@ void addUser(){
for (int i = 0; i < pidSize; i++) { for (int i = 0; i < pidSize; i++) {
pid[i].select = strdup(Site[i]); // 使用strdup创建分配的字符串副本 pid[i].select = strdup(Site[i]); // 使用strdup创建分配的字符串副本
} }
Serial.println("--------testpidarr-----------");
for (int i = 0; i < OutPutTimes; i++) {
Serial.println(pid[i].select);
}
Serial.println("--------overpidarr-----------");
} }
@ -1464,9 +1484,9 @@ void addSiteDataToArr() {//此函数提供方法使其全部网站保存在数
// 添加值到结构体数组 // 添加值到结构体数组
// 打印数组中的值 // 打印数组中的值
list[0].select = "MAIN";
for (int i = 0; i < listSize; i++) { for (int i = 0; i < listSize; i++) {
list[i].select = strdup(Site[i]); // 使用strdup创建分配的字符串副本 list[i+1].select = strdup(Site[i]); // 使用strdup创建分配的字符串副本
} }
@ -1501,7 +1521,8 @@ void addSiteDataToArr() {//此函数提供方法使其全部网站保存在数
void setup() { void setup() {
Serial.begin(115200); Serial.begin(115200);
addSiteDataToArr(); addSiteDataToArr();
addUser(); pid = (SELECT_LIST*)malloc(pidSize * sizeof(SELECT_LIST));
pid[0].select = strdup("main");
// 动态分配内存以存储结构体数组 // 动态分配内存以存储结构体数组