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

📄 main.c

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

	}
	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 + -