📄 main.c
字号:
}
clrscr();
}
UINT onMifareMenu_Ok_2(void * arg)
{
Menu * pMenu = (Menu *)arg;
if (pMenu) onSelectMifareMenu_2(pMenu->Current);
return 0;
}
UINT onMifareMenu_Cancel_2(void * arg)
{
Menu * pMenu = (Menu *)arg;
if (pMenu) {
CloseMenu(pMenu);
}
return 0;
}
UINT onMifareMenu_OtherKey_2(void * arg)
{
Menu * pMenu = (Menu *)arg;
char key;
if (pMenu) {
key = pMenu->EventArg;
onSelectMifareMenu_2(key - '1');
DrawMenu(pMenu);
}
return 0;
}
// COM1 SLP test
void testRs232()
{
char ch, bufr[100];
HDEV dev;
int handle;
clrscr();
#if 1
if (ShowMessage("串口测试", "请运行PC超级终端波特率9600", MB_CANCEL | MB_OK, true) == MR_CANCEL)
return;
clrscr();
dev = open(COM1, BAUD_9600);
while ((ch = inkey()) != vk_ESC) {
if (ch) {
putch(ch);
write(dev, 0, &ch, 1);
}
if (read(dev, 0, &ch, 1)) {
putch(ch);
}
}
close(dev);
#else
handle = link_open(COM1, BAUD_9600, 0, 1);
if (handle < 0) {
ShowMessage("SLP测试", "Link open failed!", MB_OK, true);
return;
}
while ((ch = inkey()) != vk_ESC) {
if (ch) {
putch(ch);
link_write(handle, &ch, 1);
}
memset(bufr, 0, 100);
if (link_read(handle, bufr, 100)) {
printf("%s", bufr);
}
proc_link();
}
link_close(handle);
#endif
}
// GPRS terminal (test with Windows 超级终端)
void testGprs()
{
}
void testInput()
{
char buf[100];
int len;
clrscr();
printf("输入:");
getstr(buf, 90, &len);
clrscr();
printf("您输入了:\n%s", buf);
get_key();
}
void testInput2()
{
char buf[100];
int len;
clrscr();
printf("输入:");
getabc(buf, 100, &len);
printf("您输入了:\n%s", buf);
get_key();
}
// Keyboard test, show every key pushed
void testKeyboard()
{
char ch;
const char * keys[] = {
"0 1 2 3 C \x1e",
"4 5 6 7 F \x1f",
"8 9 * # \x1b OK",
};
int left = 2, x = 0, y = 0;
bool first = true;
unsigned int flag = 0x00000000;
clrscr();
mid_textout(left, 0 * 2 + 1, keys[0]);
mid_textout(left, 1 * 2 + 1, keys[1]);
mid_textout(left, 2 * 2 + 1, keys[2]);
Rectangle(2, 4, 125, 60);
while (true) {
if ((flag & 0x0003ffff) == 0x0003ffff) break;
ch = get_key();
switch (ch) {
case '0':
x = left;
y = 0;
flag |= 0x00000001;
break;
case '1':
x = left + 2;
y = 0;
flag |= 0x00000002;
break;
case '2':
x = left + 4;
y = 0;
flag |= 0x00000004;
break;
case '3':
x = left + 6;
y = 0;
flag |= 0x00000008;
break;
case '4':
x = left;
y = 1;
flag |= 0x00000010;
break;
case '5':
x = left + 2;
y = 1;
flag |= 0x00000020;
break;
case '6':
x = left + 4;
y = 1;
flag |= 0x00000040;
break;
case '7':
x = left + 6;
y = 1;
flag |= 0x00000080;
break;
case '8':
x = left;
y = 2;
flag |= 0x00000100;
break;
case '9':
x = left + 2;
y = 2;
flag |= 0x00000200;
break;
case '*':
x = left + 4;
y = 2;
flag |= 0x00000400;
break;
case '#':
x = left + 6;
y = 2;
flag |= 0x00000800;
break;
case vk_ESC:
if (!first)
return;
first = false;
x = left + 8;
y = 0;
flag |= 0x00001000;
break;
case vk_FUNC:
x = left + 8;
y = 1;
flag |= 0x00002000;
break;
case vk_BACK:
x = left + 8;
y = 2;
flag |= 0x00004000;
break;
case vk_UP:
x = left + 10;
y = 0;
flag |= 0x00008000;
break;
case vk_DOWN:
x = left + 10;
y = 1;
flag |= 0x00010000;
break;
case vk_ENTER:
x = left + 10;
y = 2;
flag |= 0x00020000;
break;
}
mid_textout(x, y * 2 + 1, " ");
}
}
void testChinese(void)
{
char buff[100],ret;
int len;
if (ShowMessage("输入法测试", "", MB_CANCEL | MB_OK, true) == MR_CANCEL)
return;
pinyin_cursor_x=8;
pinyin_cursor_y=2;
memset(buff,0,100);
ret = get_chinese(100, buff,&len);
if ((ret==true)&&(len>0)) {
LcdClearScreen();
LcdDisplayString(0,0,"您输入了:");
LcdDisplayString(0,1,buff);
get_key();
}
}
// Graphics test
void testGraphics()
{
TPoint pt = {0, 0};
TSize size = {128, 64};
static BYTE screen[1024];
if (ShowMessage("显示测试", "继续?", MB_CANCEL | MB_OK, true) == MR_CANCEL)
return;
clrscr();
DrawBitmap(pt, size, g_DemoBitmap, true);
delay(1000);
if (inkey() == vk_ESC) return;
clrscr();
DrawBitmap(pt, size, g_DemoBitmap, false);
get_screen(screen);
delay(1000);
if (inkey() == vk_ESC) return;
clrscr();
Line(0, 0, 127, 63);
delay(1000);
if (inkey() == vk_ESC) return;
clrscr();
Line(127, 0, 0, 63);
delay(1000);
if (inkey() == vk_ESC) return;
clrscr();
Rectangle(10, 10, 116, 53);
delay(1000);
if (inkey() == vk_ESC) return;
clrscr();
FillRectangle(10, 10, 116, 53);
delay(1000);
if (inkey() == vk_ESC) return;
clrscr();
Ellipse(64, 32, 50, 20);
delay(1000);
if (inkey() == vk_ESC) return;
clrscr();
FillEllipse(64, 32, 30, 30);
delay(1000);
put_screen(screen);
delay(1000);
}
void testAt24c16()
{
char buff[10];
int len;
int i, addr = 0;
HDEV dev;
clrscr();
while (!ic_exist()) {
ShowMessage("AT24C16", "请插入IC卡...", MB_OK | MB_CANCEL, false);
if (inkey() == vk_ESC) return;
delay(500);
}
clrscr();
while (!(dev = open(AT24C16, 0))) {
ShowMessage("AT24C16", "请插入正确卡片", MB_OK | MB_CANCEL, false);
if (inkey() == vk_ESC) return;
delay(500);
}
clrscr();
DisplayLine(0, "读取结果", ALIGN_CENTER, false);
DisplayLine(3, "【取消】【写卡】", ALIGN_RIGHT, false);
memset(buff, 0, sizeof(buff));
read(dev, addr, buff, 6);
DisplayLine(1, buff, ALIGN_RIGHT, false);
if (get_key() == vk_ESC) {
close(dev);
return;
}
clrscr();
gotoxy(0, 1);
DisplayLine(0, "输入新内容", ALIGN_CENTER, false);
DisplayOkCancel(MB_OK | MB_CANCEL);
if (getstr(buff, 6, &len)) {
write(dev, addr, buff, 6);
}
else {
close(dev);
return;
}
clrscr();
DisplayMidLine(1, "写入完毕", ALIGN_CENTER, false);
DisplayMidLine(5, "按任意键继续", ALIGN_CENTER, false);
get_key();
close(dev);
}
void testAt24c64()
{
char buff[10];
int len;
int i, addr = 200;
HDEV dev;
clrscr();
while (!ic_exist()) {
ShowMessage("AT24C64", "请插入IC卡...", MB_OK | MB_CANCEL, false);
if (inkey() == vk_ESC) return;
delay(500);
}
clrscr();
while (!(dev = open(AT24C64, 0))) {
ShowMessage("AT24C64", "请插入正确卡片", MB_OK | MB_CANCEL, false);
if (inkey() == vk_ESC) return;
delay(500);
}
clrscr();
DisplayLine(0, "读取结果", ALIGN_CENTER, false);
DisplayLine(3, "【取消】【写卡】", ALIGN_RIGHT, false);
memset(buff, 0, sizeof(buff));
read(dev, addr, buff, 6);
DisplayLine(1, buff, ALIGN_RIGHT, false);
if (get_key() == vk_ESC) {
close(dev);
return;
}
clrscr();
gotoxy(0, 1);
DisplayLine(0, "输入新内容", ALIGN_CENTER, false);
DisplayOkCancel(MB_OK | MB_CANCEL);
if (getstr(buff, 6, &len)) {
write(dev, addr, buff, 6);
}
else {
close(dev);
return;
}
clrscr();
DisplayMidLine(1, "写入完毕", ALIGN_CENTER, false);
DisplayMidLine(5, "按任意键继续", ALIGN_CENTER, false);
get_key();
close(dev);
}
void testSle4428()
{
//char buff[10], pwd[] = {0xFF, 0xFF};
char buff[10], pwd[] = {0x67, 0xc6};
int len;
int i, addr = 260;
HDEV dev;
___wait_card_sle4428:
clrscr();
while (!ic_exist()) {
ShowMessage("SLE4428", "请插入IC卡...", MB_OK | MB_CANCEL, false);
if (inkey() == vk_ESC) return;
delay(500);
}
clrscr();
while (!(dev = open(SLE4428, 0))) {
ShowMessage("SLE4428", "请插入正确卡片", MB_OK | MB_CANCEL, false);
if (inkey() == vk_ESC) return;
if (!ic_exist()) goto ___wait_card_sle4428;
delay(500);
}
if (!ic_verify(dev, 0, pwd)) {
clrscr();
DisplayLine(0, "验密错误", ALIGN_CENTER, false);
DisplayMidLine(3, "默认密码67C6", ALIGN_CENTER, false);
DisplayOkCancel(MB_OK | MB_CANCEL);
if (get_key()) {
close(dev);
return;
}
}
clrscr();
DisplayLine(0, "读取结果", ALIGN_CENTER, false);
DisplayLine(3, "【取消】【写卡】", ALIGN_RIGHT, false);
memset(buff, 0, sizeof(buff));
read(dev, addr, buff, 6);
DisplayLine(1, buff, ALIGN_RIGHT, false);
if (get_key() == vk_ESC) {
close(dev);
return;
}
clrscr();
gotoxy(0, 1);
DisplayLine(0, "输入新内容", ALIGN_CENTER, false);
DisplayOkCancel(MB_OK | MB_CANCEL);
if (getstr(buff, 6, &len)) {
write(dev, addr, buff, 6);
}
else {
close(dev);
return;
}
clrscr();
DisplayMidLine(1, "写入完毕", ALIGN_CENTER, false);
DisplayMidLine(5, "按任意键继续", ALIGN_CENTER, false);
get_key();
close(dev);
}
void testSle4442()
{
char buff[10], pwd[] = {0xFF, 0xFF, 0xFF};
int len;
int i, addr = 130;
HDEV dev;
___wait_card_sle4442:
clrscr();
while (!ic_exist()) {
ShowMessage("SLE4442", "请插入IC卡...", MB_OK | MB_CANCEL, false);
if (inkey() == vk_ESC) return;
delay(500);
}
clrscr();
while (!(dev = open(SLE4442, 0))) {
ShowMessage("SLE4442", "请插入正确卡片", MB_OK | MB_CANCEL, false);
if (inkey() == vk_ESC) return;
if (!ic_exist()) goto ___wait_card_sle4442;
delay(500);
}
if (!ic_verify(dev, 0, pwd)) {
DisplayLine(0, "验密错误", ALIGN_CENTER, false);
DisplayMidLine(3, "默认密码FFFFFF", ALIGN_CENTER, false);
DisplayOkCancel(MB_CANCEL);
if (get_key()) {
close(dev);
return;
}
}
clrscr();
DisplayLine(0, "读取结果", ALIGN_CENTER, false);
DisplayLine(3, "【取消】【写卡】", ALIGN_RIGHT, false);
memset(buff, 0, sizeof(buff));
read(dev, addr, buff, 6);
DisplayLine(1, buff, ALIGN_RIGHT, false);
if (get_key() == vk_ESC) {
close(dev);
return;
}
clrscr();
gotoxy(0, 1);
DisplayLine(0, "输入新内容", ALIGN_CENTER, false);
DisplayOkCancel(MB_OK | MB_CANCEL);
if (getstr(buff, 6, &len)) {
write(dev, addr, buff, 6);
}
else {
close(dev);
return;
}
clrscr();
DisplayMidLine(1, "写入完毕", ALIGN_CENTER, false);
DisplayMidLine(5, "按任意键继续", ALIGN_CENTER, false);
get_key();
close(dev);
}
void testAt45d()
{
char buff[10];
int len;
int i, addr = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -