WouoUI-PageVersion/Csource/example/UITest/TestUI.c
Silent Sheep e81283f42c 版本0.1.1更新:
1. 将全局数组去掉,改为指针连接上级页面,支持理论上无限多个页面,不再受数组大小的限制。
2. UI文件中的变量整理归类,使代码体积占用更小(会在下一个大版本中给出具体的代码内存占用数据)。
3. 修复在弹窗时页面跳转的bug。
2024-08-30 16:16:15 +08:00

333 lines
19 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "TestUI.h"
#include "../WouoUIPage/oled_ui.h"
#include "string.h"
#include "math.h"
//--------定义页面对象
TitlePage main_page;
RaderPicPage logo_page;
ListPage setting_page;
WavePage curve_page;
DigitalPage lock_page,lock_page2;
ListPage about_page;
RadioPage about_wououi_page; //这两个相关页使用单选项RadioPage类型只是为了展示单选项页面而已
RadioPage about_page_version_page;
//--------定义每个页面需要的一些参数
//部分页面内选项个数
#define MAIN_PAGE_NUM 5
#define LOGO_PAGE_NUM 4
#define SETTING_PAGE_NUM 13
#define CURVE_PAGE_NUM 2
#define LOCK_PAGE_LABEL_NUM 2
#define ABOUT_PAGE_NUM 3
#define ABOUT_WOUOUI_PAGE_NUM 9
#define ABOUT_PAGEVERSION_NUM 8
//定义部分页面选项
//********main页面的选项
Option mian_option_array[MAIN_PAGE_NUM] =
{///{ order,max,min,step,int_val,text,} //option的成员顺序但对单纯title的页面来说只有text需要赋值
{.text = "- Logo"}, //前两个字符是前缀,不显示,用于标识一般选项(-),二值选项(+),数值弹窗(~),确认弹窗($)
{.text = "- Setting"},
{.text = "- Curve"},
{.text = "- DigLock"},
{.text = "- Aoubt"},
};
//main页面的图标
Icon main_icon_array[MAIN_PAGE_NUM] =
{
[0] = {0xFC,0xFE,0xFF,0x3F,0x1F,0x0F,0x07,0x03,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x01,0x01,0x03,0x07,0x07,0x0F,0x1F,0x3F,0xFF,0xFE,0xFC,0xFF,0x01,
0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,
0x00,0x00,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xF0,0xC0,0x00,
0x00,0x00,0x03,0x07,0x0F,0x1F,0x3E,0x3C,0x3C,0x3C,0x1E,0x1F,0x0F,0x03,0x00,0x00,
0x1F,0x3F,0x3F,0x1F,0x00,0x00,0x00,0xC0,0xF0,0xFF,0xCF,0xDF,0xFF,0xFF,0xFE,0xFC,
0xF8,0xF8,0xF0,0xF0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xF0,0xF0,
0xF8,0xF8,0xFC,0xFE,0xFF,0xFF,0xDF,0xCF}, //logo
[1] = {0xFC,0xFE,0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x83,0x81,0x01,0x01,0x81,0xE1,0xE1,0xE1,
0xE1,0x81,0x01,0x81,0x81,0x83,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFE,0xFC,0xFF,0x01,
0x00,0x00,0x00,0xE0,0xE0,0xF3,0xFF,0xFF,0x3F,0x0F,0x07,0x07,0x03,0x03,0x07,0x07,
0x0F,0x3F,0xFF,0xFF,0xF7,0xE0,0xE0,0x00,0x00,0x00,0x01,0xFF,0xFF,0xE0,0x80,0x00,
0x00,0x01,0x01,0x3B,0x7F,0x7F,0x7F,0x3C,0x78,0xF8,0xF0,0xF0,0xF8,0x78,0x3C,0x3F,
0x7F,0x7F,0x33,0x01,0x01,0x00,0x00,0x80,0xE0,0xFF,0xCF,0xDF,0xFF,0xFF,0xFE,0xFC,
0xF8,0xF0,0xF0,0xE0,0xE0,0xE0,0xE0,0xE1,0xE1,0xE1,0xE1,0xE0,0xE0,0xE0,0xE0,0xF0,
0xF0,0xF8,0xFC,0xFC,0xFF,0xFF,0xDF,0xCF}, // Setting
[2] = {0xFC,0xFE,0x07,0xF3,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0x03,0x03,
0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xF3,0x07,0xFE,0xFC,0xFF,0xFF,
0x00,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0xBF,0x3F,0x7F,0x20,0x08,0x8F,0x07,
0x61,0x30,0x36,0x38,0x39,0x39,0x39,0x39,0x39,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0xE7,
0xE7,0xE7,0xE7,0xE7,0xC7,0xDB,0xC3,0xE1,0xF8,0xFC,0x04,0x01,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xCF,0xDF,0xF8,0xF3,0xF7,0xF7,
0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF0,0xF0,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,
0xF7,0xF7,0xF7,0xF7,0xF3,0xF8,0xDF,0xCF}, //Curve
[3] = {0xFC,0xFE,0x1F,0x07,0x07,0xC3,0xE3,0xE3,0xE3,0xE3,0xE3,0xE3,0xE3,0x63,0x63,0x63,
0x63,0xE3,0xE3,0xE3,0xE3,0xE3,0xE3,0xE3,0xC3,0x07,0x07,0x1F,0xFE,0xFC,0xFF,0xFF,
0x00,0x00,0x00,0xFF,0xFF,0xFF,0x3F,0x3F,0x3F,0x01,0x00,0x00,0x3C,0x3C,0x00,0x00,
0x01,0x3F,0x3F,0x3F,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
0x00,0xFF,0xFF,0xFF,0xC0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
0x80,0xC0,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xCF,0xDF,0xFE,0xF8,0xF8,0xF0,
0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,
0xF1,0xF1,0xF0,0xF8,0xF8,0xFE,0xDF,0xCF}, //DigitalLock
[4] = {0xFC,0xFE,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x3F,0x1F,0x0F,0x0F,0x0F,0x07,0x07,0x07,
0x07,0x0F,0x0F,0x0F,0x1F,0x3F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFE,0xFC,0xFF,0xFF,
0xFF,0x3F,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xEE,0xE6,0x66,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x1F,0x1F,0x08,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x60,0xF0,0xFF,0xFF,0xFF,0xFF,0xCF,0xDF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFE,0xFC,0xFC,0xFC,0xFC,0xFC,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,0xF8,
0xF8,0xF8,0xF8,0xF8,0xFF,0xFF,0xDF,0xCF} //about
};
//LOGO页面的参数
const uint8_t logo_wouo_pic[] = {0x00,0x00,0xF8,0xF0,0x80,0x00,0x00,0x00,0xE0,0xFC,0xE0,0x00,0x00,0x00,0x00,0xF0,
0xFC,0x04,0x18,0x30,0x70,0xE0,0xC0,0xE0,0xF0,0xF8,0x38,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x70,0x70,0xE0,0xC0,0xE0,0xF0,0x78,0x18,0x00,
0x00,0x00,0x00,0x00,0x1F,0xFF,0xF0,0xF8,0x3F,0x03,0x01,0x1F,0x7E,0xF0,0xE0,0xFE,
0x7F,0x01,0x00,0x00,0xF8,0x8E,0x83,0x81,0xC1,0x41,0x71,0x3F,0x00,0x00,0x7F,0xC0,
0xC0,0xC0,0x60,0x30,0x7E,0xFF,0x00,0x00,0xFC,0x8E,0x83,0x81,0xC1,0x61,0x3B,0x1F,
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00}; //49*20
const uint8_t logo_ui_pic[] = {0x00,0x00,0x00,0xF0,0xFC,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFE,
0xFC,0x00,0x00,0x0C,0x0C,0xFC,0xFC,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x7F,
0xC0,0x80,0x80,0x80,0xC0,0xE0,0x70,0x38,0x1C,0xFF,0xFF,0xF8,0x00,0x00,0x80,0xC0,
0xFF,0x9F,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,
0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,
0x00}; // 27*20
const uint8_t logo_page_pic[] = {0x00,0x00,0x00,0xF0,0xFC,0x0C,0x0C,0x0C,0x98,0xF0,0x00,0x00,0x00,0x00,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x80,0x80,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xCF,0x0C,0x0E,0x06,0x03,0x03,0x00,0x18,
0x2E,0x21,0x21,0x31,0x1E,0x3C,0x20,0x0C,0x1F,0x11,0x10,0x90,0xFF,0x00,0x1C,0x3E,
0x65,0x65,0x62,0x21,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x03,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //36*20
const uint8_t logo_version_pic[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0xE0,0xE0,0xDC,0x9C,
0xD8,0xC0,0xC0,0xE8,0xFC,0xDC,0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
0x01,0x01,0x00,0x0F,0x1F,0x1F,0x0F,0x0F,0x0F,0x07,0x83,0x80,0x80,0x00,0xC0,0xC0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,
0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x83,0x83,
0xBB,0xBC,0xFC,0xFC,0xFC,0xB8,0x83,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xFF,0xFF,0xC0,0xC0,0x00,0x00,0xFE,0xFF,0xC3,0xC1,
0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0xC1,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x60,0x60,0x60,0x60,0xE0,0xC0,0x00,0x00,0x00,
0xFF,0xFF,0x0F,0x1C,0x38,0x70,0xE0,0x80,0x00,0x00,0x80,0xE0,0x7C,0x1F,0x01,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,
0xFF,0xFF,0x00,0xE0,0xFF,0x07,0x00,0x00,0x80,0xC0,0xE1,0x73,0x3F,0x1E,0x3F,0x71,
0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x00,0x00,
0x00,0x00,0x00,0x07,0x07,0x03,0x00,0x07,0x07,0x00,0x00,0x07,0x33,0x79,0x78,0x78,
0x30,0x80,0xC0,0xE0,0xC0,0x03,0x07,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,
0x02,0x03,0x03,0x03,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //36*60 版
//镭射图片对象
RaderPic logo_rpp_array[LOGO_PAGE_NUM] =
{//{pic,x,y,w,h,rd} //镭射图片的成员参数
{logo_wouo_pic, 4, 8, 49, 20, RD_RIGHT_DOWN},
{logo_ui_pic, 53, 8, 27, 20, RD_RIGHT_DOWN},
{logo_page_pic, 20, 36, 36, 20, RD_RIGHT_DOWN},
{logo_version_pic, 84, 2, 36, 60, RD_RIGHT_DOWN}
};
//设置的列表选项数组
Option setting_option_array[SETTING_PAGE_NUM] =
{///{ order,max,min,step,int_val,text,} //option的成员顺序
{.text = "- Setting"}, //第一个做说明标签,没有功能
{0, 255, 0, 1, 0, "~ Tile Ani"},
{0, 255, 0, 1, 0, "~ List Ani"}, //对于数值弹窗,需要给定最大最小值和步长
{.text = "+ T Ufd Fm Scr", .step = 1,},
{.text = "+ L Ufd Fm Scr", .step = 1,},
{.text = "+ T Loop Mode", .step = 1,},
{.text = "+ L Loop Mode", .step = 1,},
{.text = "+ ValWin Bok", .step = 1,},
{.text = "+ ConWin Bok", .step = 1,},
{.text = "$ Dig Ripple", .step = 1,},
{.text = "+ RaderPicMode", .step = 1,}, //step为1,能够使用clcik控制取反为0则失能取反(通常用于需要外部接管这个变量的情况)
{0, 10, 1, 1, 0, "~ RP_S_Rate"},
{0, 100, 0, 1, 0, "~ RP_M_Rate"}, //因为没有办法给初始化的全局变量使用变量值进行初始化所以int_val暂时先设为0
};
//curve页面的选项数组
Option curve_option_array[CURVE_PAGE_NUM] =
{//{ order,max,min,step,int_val,text,} //option的成员顺序
{.item_max = 50, .item_min = -50, .step = 0, .val = 0, .text = "sin" },
{.item_max = 50, .item_min = -50, .step = 0, .val = 0, .text = "tri" }, //wave页面的option中text不需要前缀
};
int16_t n = 0; //曲线横坐标自增变量
//Lock页面参数
Option lock_option_array[3] = //由于Digital页面有三个数字选项所以digital页面选项数组大小必须为3
{//{ order,max,min,step,int_val,text,} //option的成员顺序
{.item_max = 59 , .item_min = 0, .step = 1, .val = 0, .text = NULL},
{.item_max = 99 , .item_min = 0, .step = 1, .val = 0, .text = NULL},
{.item_max = 99 , .item_min = 0, .step = 1, .val = 0, .text = NULL}, //设置每一个数字的上限值和步长
} ;
Option lock_option_array2[3] = //由于Digital页面有三个数字选项所以digital页面选项数组大小必须为3
{//{ order,max,min,step,int_val,text,} //option的成员顺序
{.item_max = 77 , .item_min = 0, .step = 1, .val = 0, .text = NULL},
{.item_max = 99 , .item_min = 0, .step = 1, .val = 0, .text = NULL},
{.item_max = 99 , .item_min = 0, .step = 1, .val = 0, .text = NULL}, //设置每一个数字的上限值和步长
} ;
String lock_label_array[LOCK_PAGE_LABEL_NUM] = {"Confirm", "Clear All"};
// uint8_t lock_password[3] = {56,34, 12}; //3个两位数字组成的密码(注意三个数字从0-2是从右到左)(两种形式的初始化均可)
uint8_t lock_password[3] = {[Digital_Pos_IndexLeft] = 12, [Digital_Pos_IndexMid] = 34, [Digital_Pos_IndexRight] = 56}; //3个两位数字组成的密码(注意三个数字从0-2是从右到左)
uint8_t lcok_page_state = 0; //0表示正常情况1表示密码正确(Confirm后密码正确)2表示清除所有位(ClearALL)
//about页面的选项数组
Option about_option_array[ABOUT_PAGE_NUM] =
{
{.text = "- About wouo"}, //第一项只是说明
{.text = "- WouoUI origin"}, //原wououi的说明
{.text = "- Page version"}, //Page version的说明
};
//about wououi页面的数组
Option about_wououi_option_array[ABOUT_WOUOUI_PAGE_NUM] =
{ //单选项需要以“=”开头
{.text = "- From WouoUI1.2"},
{.text = "- Thanks for the "},
{.text = " original author"},
{.text = "- Bilibili UID:"},
{.text = "= 9182439"},
{.text = "- Github URL: "},
{.text = "= https://"},
{.text = " github.com/"},
{.text = " RQNG/WouoUI"}
};
Option about_pageversion_array[ABOUT_PAGEVERSION_NUM] =
{
{.text = "- Page Version"},
{.text = "- MyBilili UID:"},
{.text = "= 679703519"},
{.text = "- Github URL:"},
{.text = "= https://"},
{.text = " github.com/"},
{.text = " Sheep118/WouoUI"},
{.text = " -PageVersion"},
};
//--------定义每个页面的回调函数
void MainPage_CallBack(const Page* cur_page_addr,Option* select_item)
{
switch (select_item->order)
{
case 0: OLED_UIJumpToPage((PageAddr)cur_page_addr,&logo_page); break;
case 1: OLED_UIJumpToPage((PageAddr)cur_page_addr,&setting_page); break;
case 2: OLED_UIJumpToPage((PageAddr)cur_page_addr,&curve_page); break;
case 3: OLED_UIJumpToPage((PageAddr)cur_page_addr,&lock_page); break;
case 4: OLED_UIJumpToPage((PageAddr)cur_page_addr,&about_page); break;
default: break;
}
}
void SettingPage_CallBack(const Page* cur_page_addr,Option* select_item)
{
switch (select_item->order) //对选中项的真实参数值赋值
{ //由于第0项是说明文字“Setting”
case 1: g_default_ui_para.ani_param[TILE_ANI] = select_item->val;break;//ani_tile
case 2: g_default_ui_para.ani_param[LIST_ANI] = select_item->val;break;//ani_list
case 3: g_default_ui_para.ufd_param[TILE_UFD] = select_item->val;break;//ani_tile
case 4: g_default_ui_para.ufd_param[LIST_UFD] = select_item->val;break;//ani_list
case 5: g_default_ui_para.loop_param[TILE_UFD] = select_item->val;break;//loop_tile
case 6: g_default_ui_para.loop_param[LIST_UFD] = select_item->val;break;//loop_list
case 7: g_default_ui_para.valwin_broken = select_item->val;break;//ValWin Broken
case 8: g_default_ui_para.conwin_broken = select_item->val;break;//ConWin Broken
case 9: g_default_ui_para.digital_ripple = select_item->val;break;//Digital Ripple Enable/not
case 10: g_default_ui_para.raderpic_scan_mode = select_item->val;break;//RaderPic scan mode
case 11: g_default_ui_para.raderpic_scan_rate = select_item->val;break;//RaderPic scan rate
case 12: g_default_ui_para.raderpic_move_rate = select_item->val;break;//RaderPic move rate
default:
break;
}
}
void LockPage_CallBack(const Page* cur_page_addr,Option* select_item)
{
switch (select_item->order)
{
case Digital_Pos_IndexLabel: //选中label项并单击click的话
if(strcmp(select_item->text, lock_label_array[0]) == 0) //“confirm”
{
if(lock_option_array[0].val == lock_password[0] && lock_option_array[1].val == lock_password[1] && lock_option_array[2].val == lock_password[2])
//密码正确的话转到logopage
OLED_UIChangeCurrentPage(&logo_page);
}
else if(strcmp(select_item->text, lock_label_array[1]) == 0) //“Clear All”
OLED_DigitalPage_UpdateDigitalNumAnimation(&lock_page, 0, 0, 0, Digital_Direct_Increase);
break;
default:
break;
}
}
void About_CallBack(const Page* cur_page_addr,Option* select_item)
{
switch (select_item->order)
{//第0项是说明文字
case 0: OLED_UIChangeCurrentPage(&lock_page2);break; //两个数字页面的测试
case 1: OLED_UIJumpToPage((PageAddr)cur_page_addr,&about_wououi_page); break;
case 2: OLED_UIJumpToPage((PageAddr)cur_page_addr,&about_page_version_page); break;
default: break;
}
}
//-------------一些需要用的内部函数
//生成三角波的函数
int16_t Triangle_Func(int16_t x)
{
static int16_t ret = 0;
if(x%20 != 0) ret+= (curve_option_array[1].item_max - curve_option_array[1].item_min)/2/19;
else ret = curve_option_array[1].item_min/2 ;
return ret;
}
//--------------给主函数调用的接口函数
void TestUI_Init(void)
{
//OLED_Init(); //硬件的初始化
OLED_ClearBuff(); //清空缓存
OLED_RefreshBuff(); //刷新屏幕(清空屏幕)
OLED_SetPointColor(1); //设置绘制颜色
//补充列表页面的初值
setting_option_array[1].val = g_default_ui_para.ani_param[TILE_ANI];
setting_option_array[2].val = g_default_ui_para.ani_param[LIST_ANI];
setting_option_array[3].val = g_default_ui_para.ani_param[TILE_UFD];
setting_option_array[4].val = g_default_ui_para.ani_param[LIST_UFD];
setting_option_array[5].val = g_default_ui_para.ani_param[TILE_LOOP];
setting_option_array[6].val = g_default_ui_para.ani_param[LIST_LOOP];
setting_option_array[7].val = g_default_ui_para.valwin_broken;
setting_option_array[8].val = g_default_ui_para.conwin_broken;
setting_option_array[9].val = g_default_ui_para.digital_ripple;
setting_option_array[10].val = g_default_ui_para.raderpic_scan_mode;
setting_option_array[11].val = g_default_ui_para.raderpic_scan_rate;
setting_option_array[12].val = g_default_ui_para.raderpic_move_rate;
//设置界面选项
OLED_TitlePageInit(&main_page, MAIN_PAGE_NUM, mian_option_array, main_icon_array, MainPage_CallBack);
OLED_RaderPicPageInit(&logo_page, LOGO_PAGE_NUM, logo_rpp_array,Rader_Pic_Mode_Loop, NULL);
OLED_ListPageInit(&setting_page, SETTING_PAGE_NUM, setting_option_array, SettingPage_CallBack);
OLED_WavePageInit(&curve_page, CURVE_PAGE_NUM, curve_option_array, NULL);
OLED_DigitalPageInit(&lock_page, lock_option_array, LOCK_PAGE_LABEL_NUM, lock_label_array, '-', 0, 50, LockPage_CallBack);
OLED_ListPageInit(&about_page, ABOUT_PAGE_NUM, about_option_array, About_CallBack);
OLED_RadioPageInit(&about_wououi_page, ABOUT_WOUOUI_PAGE_NUM, about_wououi_option_array, NULL);
OLED_RadioPageInit(&about_page_version_page, ABOUT_PAGEVERSION_NUM, about_pageversion_array, NULL);
OLED_DigitalPageInit(&lock_page2, lock_option_array2, LOCK_PAGE_LABEL_NUM, lock_label_array, '-', 0, 50, LockPage_CallBack);
}
void TestUI_Proc(void)
{
static uint16_t count = 0; //延时计数变量(用于波形的延时)
OLED_UIProc();
if(count == 10)
{
OLED_UIWaveUpdateVal(&(curve_option_array[0]), sin(0.04*n)*(curve_option_array[0].item_max)*0.9);
// OLED_UIWaveUpdateVal(&(curve_option_array[1]), Triangle_Func(n));
n++;
count = 0;
}
count++;
}