⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 手持机嵌入式开发,本代码是基于c-c++.
💻 C
📖 第 1 页 / 共 5 页
字号:

/*-----------------------------------------------------------------------------
 *                             COMSYS P115 DEMO                               *
 *                               Copyright (c)                                *
 *                         2003-03-06 by Justin Zhang                         *
 *                               Beijing.China                                *
 *                             sun_wizard@163.net                             *
 -----------------------------------------------------------------------------*/

#include "Highbios.h"
#include "Menu.h"
#include "Link.h"
#include "GraphicsMenu.h"
#include "Rfcard.h"
#include "uc531.h"


char * title_SysMenu = "系统设置";
char * title_FsMenu = "文件系统";
char * title_CardMenu = "IC卡测试";
char * title_MifareMenu = "射频卡测试";
char * title_MifareMenu_1 = "射频卡连续测试";
char * title_MifareMenu_2 = "射频卡模拟应用";
char * title_InputMenu = "输入测试";
char * title_BatteryMenu = "电量记录";
char * title_IconMenu = "点亮图标";

const char * AboutThisProgram[] = {
	"----------------",
	"该版本不支持",
	"GPRS",
};

const char * sysMenuItems[] = {
	"1.设置日期",
	"2.设置时间",
	"3.设置背光",
	"4.设置按键铃声",
	"5.调节对比度",
};

const char * iconMenuItems[] = {
	"1.GPRS",
	"2.Mifare",
	"3.All",
};

const char * inputMenuItems[] = {
	"1.键盘测试",
	"2.输入法测试",
	"3.getstr",
};

const char * fsMenuItems[] = {
	"1.新建文件",
	"2.写文件",
	"3.读文件",
	"4.删除文件",
	"5.格式化",
};

const char * cardMenuItems[] = {
	"1.AT24C64",
	"2.AT45D041",
	"3.SLE4428",
	"4.SLE4442",
	"5.AT1604",
	"6.AT1608",
	"7.CPU_9600",
	"8.CPU_38400",
	"9.SAM_9600",
	"10.SAM_38400",
	"11.AT24C16",
//	"10.Mifare1",
//	"11.MifPro",
};

const char * mifareMenuItems[] = {
	"1.连续刷卡",
	"2.模拟应用",
};

const char * mifareMenuItems_1[] = {
	"1.Mifare1",
	"2.MifPro",
	"3.RFID",
};

const char * mifareMenuItems_2[] = {
	"1.Mifare1",
	"2.MifPro",
	"3.RFID",
//	"4.读Mifare1-B",
//	"5.写Mifare1-B",
};

const char * batteryMenuItems[] = {
	"1.开始统计",
	"2.上传数据",
};

// Bitmap binary in graph test
const unsigned char g_DemoBitmap[] = { // height = 64, width = 128
	 0xff, 0xe1, 0x00, 0x00, 0x00, 0xbf, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xff, 0x4f, 0xff, 0xe1, 0xff,
	 0xff, 0xf0, 0x00, 0x00, 0x00, 0x3f, 0xc0, 0x00, 0x00, 0xff, 0xff, 0xff, 0x5f, 0xff, 0xc7, 0xff,
	 0xff, 0xf0, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x1f, 0xff, 0x9f, 0xff,
	 0xff, 0xf8, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0x00, 0x00, 0x3f, 0xff, 0xfe, 0xbf, 0xff, 0x3f, 0xff,
	 0xff, 0xfc, 0x00, 0x01, 0x00, 0x0f, 0xe0, 0x00, 0x00, 0x0f, 0xff, 0xfa, 0xbf, 0xfe, 0xff, 0xff,
	 0xff, 0xfe, 0x00, 0x21, 0x80, 0x07, 0xe0, 0x00, 0x00, 0x07, 0xff, 0xda, 0xbf, 0xfe, 0xff, 0xff,
	 0xff, 0xfe, 0x00, 0x10, 0x80, 0x07, 0xe0, 0x00, 0x00, 0x03, 0xff, 0xd2, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0x00, 0x18, 0xc0, 0x05, 0xe0, 0x00, 0x00, 0x01, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0x00, 0x9c, 0x41, 0x05, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff,
	 0xfd, 0xff, 0x00, 0x0e, 0x61, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x7f, 0xe3, 0xff, 0xff, 0xff, 0xff,
	 0xf8, 0xff, 0x80, 0x4f, 0x21, 0x01, 0xe0, 0x00, 0x00, 0x00, 0x1f, 0xe3, 0xff, 0xff, 0xff, 0xff,
	 0xf0, 0xff, 0x00, 0x4f, 0x31, 0x81, 0xe0, 0x00, 0x00, 0x00, 0x0f, 0xe3, 0xff, 0xff, 0xff, 0xff,
	 0xf0, 0xff, 0x00, 0x27, 0xb1, 0xc1, 0xe0, 0x00, 0x04, 0x20, 0x0f, 0xe3, 0xff, 0xff, 0xff, 0xff,
	 0xfb, 0xff, 0xe0, 0x67, 0x93, 0xc1, 0xe0, 0x00, 0x00, 0x00, 0x07, 0xf7, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xf0, 0x67, 0xdb, 0xc1, 0xc0, 0x00, 0x00, 0x00, 0x07, 0xf7, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xf0, 0x73, 0xeb, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x03, 0xf7, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xf3, 0x33, 0xef, 0xc0, 0x00, 0x00, 0x00, 0x20, 0x03, 0xf7, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xfb, 0x3b, 0xf5, 0xc0, 0x00, 0x00, 0x00, 0x10, 0x01, 0xf7, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xf9, 0x9b, 0xf5, 0xe0, 0x00, 0x00, 0x00, 0x08, 0x09, 0xff, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xfd, 0x9b, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x18, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xfd, 0xdb, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x10, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xfd, 0xdf, 0xfb, 0xf1, 0x20, 0x00, 0x00, 0x30, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xf8, 0xef, 0xff, 0xf9, 0x40, 0x00, 0x00, 0x20, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xf8, 0xff, 0xff, 0xf9, 0xc0, 0x00, 0x00, 0x20, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xfc, 0xff, 0xfd, 0xf9, 0x80, 0xfc, 0x00, 0x01, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xfc, 0x7f, 0xfd, 0xfb, 0x81, 0xc4, 0x00, 0x03, 0x30, 0xff, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xfc, 0x7f, 0xfd, 0xfb, 0x80, 0x62, 0x00, 0x00, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xfc, 0x7f, 0xfd, 0xfb, 0x90, 0x76, 0x00, 0x00, 0x50, 0xff, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xfc, 0x7f, 0xfe, 0xfb, 0x12, 0x3e, 0x00, 0x02, 0x78, 0x7f, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xfc, 0x7f, 0xfe, 0xff, 0x3b, 0xc2, 0x00, 0x07, 0x8b, 0x6f, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xfc, 0x3f, 0xfe, 0xff, 0x3f, 0xc0, 0x20, 0x03, 0x03, 0x6f, 0xff, 0xff, 0xff, 0xff,
	 0xff, 0xff, 0xfc, 0x3f, 0xfe, 0xff, 0x0f, 0xc2, 0x60, 0x03, 0x8f, 0x6d, 0xe7, 0xff, 0xff, 0xff,
	 0x01, 0xff, 0xfc, 0x3f, 0xfe, 0xff, 0x03, 0xe7, 0xc0, 0x00, 0xfe, 0x61, 0xe7, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x08, 0x3f, 0xfe, 0xff, 0x80, 0xff, 0x80, 0x00, 0x78, 0x61, 0xe0, 0x3f, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x1f, 0xff, 0x7f, 0x80, 0x0c, 0x00, 0x00, 0x00, 0x21, 0xc3, 0xe0, 0xc1, 0xff,
	 0x00, 0x00, 0x00, 0x1f, 0xfd, 0xfd, 0x80, 0x00, 0x10, 0x03, 0x00, 0x01, 0x83, 0xff, 0xff, 0x00,
	 0x00, 0x00, 0x00, 0x1e, 0xfc, 0xb9, 0x80, 0x00, 0xc0, 0x00, 0xc0, 0x01, 0x83, 0xff, 0xff, 0xff,
	 0xf4, 0x00, 0x00, 0x1e, 0xfc, 0x39, 0x0f, 0x38, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff,
	 0x3f, 0xfc, 0x00, 0x0e, 0xf8, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff,
	 0x00, 0x3f, 0xf8, 0x0e, 0x70, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x38, 0x0e, 0x70, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x03, 0xe6, 0x70, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x03, 0xe6, 0x30, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x07, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x03, 0xe2, 0x30, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x07, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x03, 0xf3, 0x30, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x07, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x03, 0xf3, 0x30, 0x00, 0x00, 0x00, 0x80, 0x00, 0x20, 0x00, 0x07, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x03, 0xf3, 0x10, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x01, 0xf9, 0x10, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x09, 0x10, 0x00, 0x00, 0x01, 0x00, 0x00, 0x06, 0x00, 0x0f, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x01, 0x98, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0e, 0x00, 0x1f, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x04, 0x88, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0e, 0x00, 0x1f, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x3b, 0x01, 0x00, 0x0f, 0x9c, 0x00, 0x1f, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x1d, 0xff, 0x7f, 0xff, 0x9d, 0x00, 0x3f, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x1f, 0xff, 0x7f, 0xff, 0x9b, 0x10, 0x7f, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xff, 0x7f, 0xff, 0x3a, 0x30, 0x7f, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x11, 0xff, 0x3f, 0xff, 0x3c, 0x20, 0xff, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x16, 0xff, 0xbf, 0xfe, 0x7e, 0x61, 0xff, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x4b, 0xff, 0x9f, 0xfe, 0xfe, 0xc3, 0xff, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x00, 0x1e, 0x81, 0xdb, 0xbf, 0xff, 0xfd, 0xfc, 0xc3, 0xff, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x00, 0x1e, 0x01, 0xe1, 0xff, 0xff, 0xff, 0xf9, 0x84, 0x0f, 0xff, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x65, 0xff, 0xff, 0xff, 0xfb, 0xc0, 0x00, 0x0f, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x76, 0x7f, 0xff, 0xff, 0xf7, 0xd0, 0x00, 0x03, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x00, 0x07, 0xe0, 0x7a, 0x3f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x01, 0xff, 0xff,
	 0x00, 0x00, 0x00, 0x00, 0x07, 0xe4, 0xbf, 0x9f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x7f, 0xff,
};


// System config menu
Menu sys_menu;

// File system menu
Menu fs_menu;

// Card menu demo
Menu card_menu;

// Mifare menu demo
Menu mifare_menu;

// Mifare menu demo 连续测试
Menu mifare_menu_1;

// Mifare menu demo   模拟应用
Menu mifare_menu_2;

// Input menu
Menu input_menu;

// Icon Menu
Menu icon_menu;

// Graphics menu demo
GraphicsMenu gmenu;

// Images binary
const unsigned char g_Bitmap1[] = { // height = 24, width = 32
	 0x80, 0x00, 0x00, 0x01,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x70, 0x00, 0x00, 0x0e,
	 0x60, 0x00, 0x00, 0x06,
	 0x67, 0xff, 0xff, 0xe6,
	 0x67, 0xfe, 0x7f, 0xe6,
	 0x67, 0xe6, 0x67, 0xe6,
	 0x67, 0xe7, 0xe7, 0xe6,
	 0x67, 0x3f, 0xfc, 0xe6,
	 0x67, 0x3f, 0xfc, 0xe6,
	 0x61, 0xff, 0xff, 0x86,
	 0x61, 0xff, 0xff, 0x86,
	 0x67, 0x3f, 0xfc, 0xe6,
	 0x67, 0x3f, 0xfc, 0xe6,
	 0x67, 0xe7, 0xe7, 0xe6,
	 0x67, 0xe6, 0x67, 0xe6,
	 0x67, 0xfe, 0x7f, 0xe6,
	 0x67, 0xff, 0xff, 0xe6,
	 0x60, 0x00, 0x00, 0x06,
	 0x70, 0x00, 0x00, 0x0e,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x80, 0x00, 0x00, 0x01,
};
const unsigned char g_Bitmap2[] = { // height = 24, width = 32
	 0x80, 0x00, 0x00, 0x01,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x64, 0x92, 0x49, 0x26,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x64, 0x92, 0x49, 0x26,
	 0x64, 0x92, 0x49, 0x26,
	 0x7f, 0xc7, 0xff, 0xfe,
	 0x7f, 0xe0, 0xff, 0xfe,
	 0x7f, 0xe0, 0x7f, 0xfe,
	 0x7f, 0xe6, 0x3f, 0xfe,
	 0x7f, 0xe3, 0x1f, 0xfe,
	 0x7f, 0xf1, 0x8f, 0xfe,
	 0x7f, 0xf8, 0xc7, 0xfe,
	 0x7f, 0xfc, 0x63, 0xfe,
	 0x7f, 0xfe, 0x31, 0xfe,
	 0x7f, 0xff, 0x18, 0xfe,
	 0x7f, 0xff, 0x8c, 0x7e,
	 0x7f, 0xff, 0xc4, 0x7e,
	 0x7f, 0xff, 0xe0, 0xfe,
	 0x7f, 0xff, 0xf1, 0xfe,
	 0x7f, 0xff, 0xfb, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x80, 0x00, 0x00, 0x01,
};
const unsigned char g_Bitmap3[] = { // height = 24, width = 32
	 0x80, 0x00, 0x00, 0x01,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x79, 0xff, 0xff, 0x9e,
	 0x70, 0xff, 0xff, 0x0e,
	 0x66, 0x7f, 0xfe, 0x66,
	 0x66, 0x7f, 0xfe, 0x66,
	 0x66, 0x66, 0x66, 0x66,
	 0x66, 0x66, 0x66, 0x66,
	 0x66, 0x7f, 0xfe, 0x66,
	 0x66, 0x7f, 0xfe, 0x66,
	 0x66, 0x7f, 0xfe, 0x66,
	 0x66, 0x7f, 0xfe, 0x66,
	 0x66, 0x7f, 0xfe, 0x66,
	 0x66, 0x7f, 0xfe, 0x66,
	 0x66, 0x66, 0x66, 0x66,
	 0x66, 0x66, 0x66, 0x66,
	 0x66, 0x7f, 0xfe, 0x66,
	 0x66, 0x7f, 0xfe, 0x66,
	 0x70, 0xff, 0xff, 0x0e,
	 0x79, 0xff, 0xff, 0x9e,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x80, 0x00, 0x00, 0x01,
};
const unsigned char g_Bitmap4[] = { // height = 24, width = 32
	 0x80, 0x00, 0x00, 0x01,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7c, 0x00, 0x00, 0x3e,
	 0x78, 0x00, 0x00, 0x1e,
	 0x73, 0xff, 0xff, 0xce,
	 0x73, 0xff, 0xff, 0xce,
	 0x78, 0x00, 0x00, 0x1e,
	 0x7c, 0x00, 0x00, 0x3e,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xe6, 0x67, 0xfe,
	 0x7f, 0xce, 0x73, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0x9e, 0x79, 0xfe,
	 0x7f, 0x3e, 0x7c, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7e, 0x7e, 0x7e, 0x7e,
	 0x7c, 0xfe, 0x7f, 0x3e,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x79, 0xfe, 0x7f, 0x9e,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x80, 0x00, 0x00, 0x01,
};
const unsigned char g_Bitmap5[] = { // height = 24, width = 32
	 0x80, 0x00, 0x00, 0x01,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xc0, 0x03, 0xfe,
	 0x7f, 0x80, 0x01, 0xfe,
	 0x7f, 0x9f, 0xf9, 0xfe,
	 0x7f, 0x9f, 0xe9, 0xfe,
	 0x7f, 0x9f, 0xc1, 0xfe,
	 0x7f, 0x9e, 0x89, 0xfe,
	 0x7f, 0x9e, 0x19, 0xfe,
	 0x7f, 0x9e, 0x39, 0xfe,
	 0x7f, 0x9e, 0x19, 0xfe,
	 0x7f, 0x9f, 0xf9, 0xfe,
	 0x7f, 0x9f, 0xf9, 0xfe,
	 0x7f, 0x9f, 0xf9, 0xfe,
	 0x7f, 0x9c, 0x39, 0xfe,
	 0x7f, 0x98, 0x19, 0xfe,
	 0x7f, 0x9b, 0xd9, 0xfe,
	 0x7f, 0x98, 0x19, 0xfe,
	 0x7f, 0x9c, 0x39, 0xfe,
	 0x7f, 0x9f, 0xf9, 0xfe,
	 0x7f, 0x80, 0x01, 0xfe,
	 0x7f, 0xc0, 0x03, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x80, 0x00, 0x00, 0x01,
};
const unsigned char g_Bitmap6[] = { // height = 24, width = 32
	 0x80, 0x00, 0x00, 0x01,
	 0x7f, 0xf8, 0xff, 0xfe,
	 0x7f, 0xe0, 0x7f, 0xfe,
	 0x7f, 0xc1, 0x3f, 0xfe,
	 0x7f, 0x19, 0x9f, 0xfe,
	 0x7e, 0x78, 0xc0, 0xfe,
	 0x7c, 0xf8, 0x60, 0xfe,
	 0x79, 0xf9, 0x3f, 0xfe,
	 0x79, 0xf9, 0x9f, 0xfe,
	 0x79, 0xf9, 0xc0, 0xfe,
	 0x79, 0xf8, 0xe0, 0xfe,
	 0x79, 0xf8, 0x7f, 0xfe,
	 0x79, 0xf9, 0x3f, 0xfe,
	 0x79, 0xf9, 0x9f, 0xfe,
	 0x79, 0xf9, 0xc0, 0xfe,
	 0x79, 0xe0, 0x60, 0xfe,
	 0x79, 0x86, 0x3f, 0xfe,
	 0x79, 0x1f, 0x9f, 0xfe,
	 0x78, 0x7f, 0xc0, 0xfe,
	 0x79, 0xff, 0xe0, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x80, 0x00, 0x00, 0x01,
};

const unsigned char g_Bitmap7[] = { // height = 24, width = 32
	 0x80, 0x00, 0x00, 0x01,
	 0x3f, 0xbf, 0xff, 0xfe,
	 0x5f, 0xdf, 0xff, 0xfe,
	 0x6f, 0xef, 0xff, 0xfe,
	 0x77, 0xf7, 0xff, 0xfe,
	 0x7b, 0xfb, 0xff, 0xfe,
	 0x7d, 0xfc, 0x00, 0x7e,
	 0x7e, 0xff, 0xff, 0xbe,
	 0x7f, 0x7f, 0xff, 0xde,
	 0x7f, 0xbf, 0xff, 0xee,
	 0x7f, 0xdf, 0xff, 0xf6,
	 0x7f, 0xef, 0xff, 0xfa,
	 0x7f, 0xf7, 0xf0, 0x7a,
	 0x7f, 0xf7, 0xef, 0x7a,
	 0x7f, 0xf7, 0xef, 0x7a,
	 0x7f, 0xf7, 0xef, 0xba,
	 0x7f, 0xf7, 0xef, 0xda,
	 0x7f, 0xf7, 0xe1, 0xea,
	 0x7f, 0xfb, 0xfe, 0xf2,
	 0x7f, 0xfd, 0xff, 0x7e,
	 0x7f, 0xfe, 0xff, 0xbe,
	 0x7f, 0xff, 0x00, 0x3e,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x80, 0x00, 0x00, 0x01,
};
/*
const unsigned char g_Bitmap8[] = { // height = 24, width = 32
	 0x80, 0x00, 0x00, 0x01,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7d, 0xfb, 0x73, 0xfe,
	 0x7d, 0xfb, 0x6d, 0xfe,
	 0x7d, 0xfb, 0x7d, 0xfe,
	 0x7d, 0xfb, 0x7d, 0xfe,
	 0x7c, 0x7b, 0x63, 0xfe,
	 0x7d, 0xbb, 0x6f, 0xfe,
	 0x7d, 0xbb, 0x6f, 0xfe,
	 0x7d, 0xbb, 0x61, 0xfe,
	 0x7c, 0x7f, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xfc, 0x7f, 0xfe,
	 0x7f, 0xfc, 0x7f, 0xfe,
	 0x7f, 0xfc, 0x7f, 0xfe,
	 0x7f, 0xfc, 0x7f, 0xfe,
	 0x7f, 0xfc, 0x7f, 0xfe,
	 0x7f, 0xfc, 0x7f, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xfc, 0x7f, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x80, 0x00, 0x00, 0x01,
};
*/
const unsigned char g_Bitmap8[] = { // height = 24, width = 32
	 0x00, 0x00, 0x00, 0x00,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x61, 0xdf, 0xb9, 0x86,
	 0x5e, 0xdf, 0xbb, 0x7a,
	 0x5e, 0xdf, 0xb7, 0x7a,
	 0x5e, 0xdf, 0xb7, 0xfa,
	 0x5c, 0x5f, 0xaf, 0xfa,
	 0x5f, 0xdf, 0xaf, 0xf6,
	 0x5f, 0xc3, 0x9f, 0xee,
	 0x5f, 0xdd, 0x87, 0xde,
	 0x5f, 0xde, 0xbb, 0xbe,
	 0x5f, 0xde, 0xbd, 0x7e,
	 0x5f, 0xde, 0xbd, 0x7e,
	 0x5e, 0xde, 0xbd, 0x7a,
	 0x5e, 0xdd, 0xbb, 0x7a,
	 0x61, 0xc3, 0x87, 0x86,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x7f, 0xff, 0xff, 0xfe,
	 0x00, 0x00, 0x00, 0x00,
};

const GraphicsMenuItem ImageList[] = {
	{ "显示测试",	g_Bitmap1 },
	{ "输入测试",	g_Bitmap2 },
	{ "串口测试",	g_Bitmap3 },
	{ "射频卡测试",	g_Bitmap4 },
	{ "IC卡测试",	g_Bitmap5 },
	{ "文件系统",	g_Bitmap6 },
	{ "系统设置",	g_Bitmap7 },
	{ "GPRS测试",	g_Bitmap8 },
};

void systemConfig(int option)
{
	bool done = false;
	bool on;

	clrscr();
	DisplayOkCancel(MB_OK | MB_CANCEL);
	switch (option) {
	case 0: // back light
		DisplayLine(0, "设置背光", ALIGN_CENTER, false);
		DisplayMidLine(3, get_blight()?"* 开   关":"  开 * 关", ALIGN_CENTER, false);

		while (!done) {
			switch (get_key()) {
			case vk_ESC:
				done = true;
				/*
				clrscr();
				DisplayLine(1, "设置取消", ALIGN_CENTER, true);
				*/
				return;
			case vk_ENTER:
				set_blight(on);
				done = true;
				clrscr();
				DisplayLine(1, "设置完成", ALIGN_CENTER, true);
				break;
			case vk_UP:
				on = !on;
				DisplayMidLine(3, on?"* 开   关":"  开 * 关", ALIGN_CENTER, false);
				break;
			case vk_DOWN:
				on = !on;
				DisplayMidLine(3, on?"* 开   关":"  开 * 关", ALIGN_CENTER, false);
				break;
			}
		}
		break;

	case 1: // keyboard beep
		DisplayLine(0, "按键伴音", ALIGN_CENTER, false);
		DisplayMidLine(3, get_beep()?"* 开   关":"  开 * 关", ALIGN_CENTER, false);

		while (!done) {
			switch (get_key()) {
			case vk_ESC:
				done = true;
				/*
				clrscr();
				DisplayLine(1, "设置取消", ALIGN_CENTER, true);
				*/
				return;
			case vk_ENTER:
				set_beep(on);
				done = true;
				clrscr();
				DisplayLine(1, "设置完成", ALIGN_CENTER, true);
				break;
			case vk_UP:
				on = !on;
				DisplayMidLine(3, on?"* 开   关":"  开 * 关", ALIGN_CENTER, false);
				break;
			case vk_DOWN:
				on = !on;
				DisplayMidLine(3, on?"* 开   关":"  开 * 关", ALIGN_CENTER, false);
				break;
			}
		}
		break;
	}

	get_key();
}

void adjustLcd()
{
	BYTE origin = LcdGetVolume(), value = origin, percent;
	
	clrscr();
	DisplayMidTitle("对比度", NO_REVERSE_STYLE);
	percent = (double)(LcdGetVolume() - MIN_LCD_VOLUME) / (double)(MAX_LCD_VOLUME - MIN_LCD_VOLUME) * 100;
	ShowProgress(2, percent);

	while (true) {
		switch (get_key()) {
		case vk_DOWN:
			if (value > MIN_LCD_VOLUME) {
				value--;
				LcdSetVolume(value);
				percent = (double)(LcdGetVolume() - MIN_LCD_VOLUME) / (double)(MAX_LCD_VOLUME - MIN_LCD_VOLUME) * 100;
				clrline(2);
				ShowProgress(2, percent);
			}
			break;

		case vk_UP:
			if (value < MAX_LCD_VOLUME) {
				value++;
				LcdSetVolume(value);
				percent = (double)(LcdGetVolume() - MIN_LCD_VOLUME) / (double)(MAX_LCD_VOLUME - MIN_LCD_VOLUME) * 100;
				ShowProgress(2, percent);
			}
			break;

		case vk_ESC:
			LcdSetVolume(origin);
			return;

		case vk_ENTER:
			return;
		}
	}
}

// --------------------------------------------------------------------------
void onSelectIconMenu(int index)
{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -