2024-06-26 07:54:30 +00:00
|
|
|
#include <stdio.h>
|
2024-06-23 05:03:24 +00:00
|
|
|
#include "page.h"
|
|
|
|
#include "list.h"
|
2024-06-26 07:54:30 +00:00
|
|
|
#include "bmp.h"
|
2024-06-23 05:03:24 +00:00
|
|
|
|
2024-06-26 07:54:30 +00:00
|
|
|
uint8_t pageid = 0, cur = 1, cnt = 0, item_h = 16, item_w = 0;
|
|
|
|
uint8_t cnt_f=1;
|
2024-06-23 05:03:24 +00:00
|
|
|
static List_t list;
|
2024-06-26 07:54:30 +00:00
|
|
|
Page_L_t mainp = {0, 0, 0, 0, 1, 16, 16, mainpage};
|
|
|
|
Page_L_t ap = {1, 2, 1, 0, 1, 12, 36, pageA};
|
|
|
|
Page_L_t bp = {2, 2, 1, 0, 2, 12, 36, pageB};
|
|
|
|
Page_L_t cp = {3, 2, 1, 0, 3, 12, 36, pageC};
|
|
|
|
Page_L_t ip = {4, 0, 0, 0, 4, 0, 0, pageImg};
|
|
|
|
|
2024-06-23 05:03:24 +00:00
|
|
|
|
|
|
|
void pageinit() {
|
|
|
|
list_init(&list);
|
|
|
|
list_insert(&list, &mainp);
|
|
|
|
list_insert(&list, &ap);
|
|
|
|
list_insert(&list, &bp);
|
|
|
|
list_insert(&list, &cp);
|
2024-06-26 07:54:30 +00:00
|
|
|
list_insert(&list, &ip);
|
2024-06-23 05:03:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
int compare_page(const void *s1, const void *s2) {
|
|
|
|
Page_L_t *data1 = (Page_L_t *) s1;
|
|
|
|
uint8_t *data2 = (uint8_t *) s2;
|
|
|
|
|
|
|
|
return (data1->id - *data2);
|
|
|
|
}
|
|
|
|
|
|
|
|
Page_L_t pagesearch(uint8_t id) {
|
|
|
|
Page_L_t *ret;
|
|
|
|
ret = list_search(&list, &id, compare_page);
|
|
|
|
return *ret;
|
|
|
|
}
|
|
|
|
|
|
|
|
void pagecur(OLED_T *dev) {
|
|
|
|
if (cnt % 2) {
|
2024-06-26 07:54:30 +00:00
|
|
|
if (pagesearch(pageid).curmin != pagesearch(pageid).curmax&&pagesearch(pageid).item_h != 0) {
|
|
|
|
OLED_ShowString(dev, item_w - item_h, cur * item_h, ">", item_h);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(cnt_f){
|
|
|
|
cnt++;
|
2024-06-23 05:03:24 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-06-26 07:54:30 +00:00
|
|
|
|
|
|
|
|
2024-06-23 05:03:24 +00:00
|
|
|
void mainpage(OLED_T *dev) {
|
|
|
|
OLED_CLS(dev);
|
2024-06-26 07:54:30 +00:00
|
|
|
uint8_t fsbuf[16] = {0};
|
|
|
|
sprintf(fsbuf,"%c%c%c%c%c%c%c%c",0x4F, 0xE1 ,0x60, 0x6F,0x66, 0x3E,0x79, 0x3A);
|
|
|
|
OLED_ShowCHString(dev, 32, 0 * item_h, fsbuf);
|
|
|
|
sprintf(fsbuf,"%c%c%c%c%c%c%c%c%c",0x59, 0xD3 ,0x54, 0x0D,':',0x6B, 0x66,0x65, 0xED);
|
|
|
|
OLED_ShowCHString(dev, 12, 1 * item_h, fsbuf);
|
|
|
|
sprintf(fsbuf,"%c%c%c%c:ZB211",0x73, 0xED ,0x7E, 0xA7);
|
|
|
|
OLED_ShowCHString(dev, 12, 2 * item_h, fsbuf);
|
|
|
|
sprintf(fsbuf,"%c%c%c%c:%c%c%c%c%c%c%c%c",0x4E, 0x13 ,0x4E, 0x1A ,0x75, 0x35,0x5B, 0x50,0x4F, 0xE1 ,0x60, 0x6F);
|
|
|
|
OLED_ShowCHString(dev, 12, 3 * item_h, fsbuf);
|
2024-06-23 05:03:24 +00:00
|
|
|
pagecur(dev);
|
|
|
|
}
|
|
|
|
|
|
|
|
void pageA(OLED_T *dev) {
|
|
|
|
OLED_CLS(dev);
|
|
|
|
OLED_ShowString(dev, 32, 0, " A Page", 12);
|
|
|
|
OLED_ShowString(dev, 36, 12, "1.contx", 12);
|
|
|
|
OLED_ShowString(dev, 36, 24, " back", 12);
|
|
|
|
pagecur(dev);
|
|
|
|
}
|
|
|
|
|
|
|
|
void pageB(OLED_T *dev) {
|
|
|
|
OLED_CLS(dev);
|
|
|
|
OLED_ShowString(dev, 32, 0, " B Page", 12);
|
|
|
|
OLED_ShowString(dev, 36, 12, "1.contx", 12);
|
|
|
|
OLED_ShowString(dev, 36, 24, " back", 12);
|
|
|
|
pagecur(dev);
|
|
|
|
}
|
|
|
|
|
|
|
|
void pageC(OLED_T *dev) {
|
|
|
|
OLED_CLS(dev);
|
|
|
|
OLED_ShowString(dev, 32, 0, " C Page", 12);
|
|
|
|
OLED_ShowString(dev, 36, 12, "1.contx", 12);
|
|
|
|
OLED_ShowString(dev, 36, 24, " back", 12);
|
|
|
|
pagecur(dev);
|
2024-06-26 07:54:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void pageImg(OLED_T *dev) {
|
|
|
|
OLED_CLS(dev);
|
|
|
|
switch (cnt % 6) {
|
|
|
|
case 0:
|
|
|
|
OLED_ShowPic(dev, 0, 0, 64, 64, BMP1);
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
OLED_ShowPic(dev, 0, 0, 64, 64, BMP2);
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
OLED_ShowPic(dev, 0, 0, 64, 64, BMP3);
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
OLED_ShowPic(dev, 0, 0, 64, 64, BMP4);
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
OLED_ShowPic(dev, 0, 0, 64, 64, BMP5);
|
|
|
|
break;
|
|
|
|
case 5:
|
|
|
|
OLED_ShowPic(dev, 0, 0, 64, 64, BMP6);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
pagecur(dev);
|
2024-06-23 05:03:24 +00:00
|
|
|
}
|