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

📄 main.c

📁 手持机嵌入式开发,本代码是基于c-c++.
💻 C
📖 第 1 页 / 共 5 页
字号:
	int object, level;
	char str[100] = "1234";
	
	if (index < 0 || index >= sizeof(iconMenuItems) / sizeof(char *)) return;

	clrscr();
	DisplayMidLine(1, "演示液晶图标", ALIGN_CENTER, NO_REVERSE_STYLE);
	icon_clr();
	
	switch (index) {
	case 0:
		for (object = LCD_ICON_SIGNAL; object < LCD_ICON_PRINTER; object++) {			
			for (level = 1; level <= 5; level++) {
				LcdSetIcon(object, level);
				delay(200);
			}
		}
		
		// time
		level = (int)str;
		LcdSetIcon(LCD_ICON_TIME, level);
		delay(200);
		
		for (level = 1; level <= 5; level++) {
			LcdSetIcon(LCD_ICON_BATTERY, level);
			delay(200);
		}
		
		break;

	case 1:
		for (object = LCD_ICON_CARD; object <= LCD_ICON_BATTERY; object++) {			
			if (object == LCD_ICON_TIME) {
				level = (int)str;
				LcdSetIcon(object, level);
				delay(200);
				continue;
			}
			for (level = 1; level <= 5; level++) {
				LcdSetIcon(object, level);
				delay(200);
			}
		}
		break;

	case 2:
		for (object = LCD_ICON_SIGNAL; object <= LCD_ICON_BATTERY; object++) {
			if (object == LCD_ICON_PRINTER)
				continue;
				
			if (object == LCD_ICON_TIME) {
				level = (int)str;
				LcdSetIcon(object, level);
				delay(200);
				continue;
			}
			for (level = 1; level <= 5; level++) {
				LcdSetIcon(object, level);
				delay(200);
			}
		}
		break;
	}
	
	DisplayMidLine(1, "演示完成", ALIGN_CENTER, NO_REVERSE_STYLE);
	get_key();
}

// Icon menu OK handler
UINT onIconMenu_Ok(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) onSelectIconMenu(pMenu->Current);
	return 0;
}

UINT onIconMenu_Cancel(void *arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) {
		CloseMenu(pMenu);
	}
	return 0;
}

UINT onIconMenu_OtherKey(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	char key;

	if (pMenu) {
		key = pMenu->EventArg;
		onSelectSysMenu(key - '1');
		DrawMenu(pMenu);
	}

	return 0;
}

// --------------------------------------------------------------------------
void onSelectMainMenu(int index)
{
	char buffer[100], ch;
	int len;
	int i;

	if (index < 0 || index >= sizeof(ImageList) / sizeof(GraphicsMenuItem)) return;

	clrscr();
	switch (index) {
	case 0: // 屏幕测试
		testGraphics();
//		read_Rfid();
    	break;

    case 1: // 键盘测试
		ShowMenu(&input_menu);
//		write_Rfid();
    	break;

    case 2: // 串口测试
		testRs232();
//		express_Rfid();
    	break;

    case 3: // 射频卡测试
		ShowMenu(&mifare_menu);
    	break;

    case 4: // IC卡测试
		ShowMenu(&card_menu);
    	break;

	case 5: // 文件系统测试
		ShowMenu(&fs_menu);
		break;
		
	case 6: // 机器设置
		ShowMenu(&sys_menu);
		break;

    case 7: // 关于
		DisplayLine(0, "关于", ALIGN_CENTER, false);
		ShowMemo(AboutThisProgram, sizeof(AboutThisProgram) / sizeof(char *), ALIGN_CENTER);
    	break;
    }
}

// Main menu OK handler
UINT onMainMenu_Ok(void * arg)
{
	GraphicsMenu * pMenu = (Menu *)arg;
	if (pMenu) onSelectMainMenu(pMenu->Current);
	return 0;
}

UINT onMainMenu_Cancel(void *arg)
{
	GraphicsMenu * pMenu = (GraphicsMenu *)arg;
	ShowComsysLogo("天石科技");
	DrawGraphicsMenu(pMenu);
}

UINT onMainMenu_OtherKey(void * arg)
{
	GraphicsMenu * pMenu = (Menu *)arg;
	char key;

	if (pMenu) {
		key = pMenu->EventArg;
		onSelectMainMenu(key - '1');
		DrawGraphicsMenu(pMenu);
	}

	return 0;
}

void onSelectSysMenu(int index)
{
	int len;

	if (index < 0 || index >= sizeof(sysMenuItems) / sizeof(char *)) return;

	clrscr();
	switch (index) {
	case 0:
		SetCurrentDate();
		break;
	case 1:
		SetCurrentTime();
		break;
	case 2:
		systemConfig(0);
		break;
	case 3:
		systemConfig(1);
		break;
	case 4:
		adjustLcd();
		break;
	}
	clrscr();
}

UINT onSysMenu_Ok(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) onSelectSysMenu(pMenu->Current);
	return 0;
}

UINT onSysMenu_Cancel(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) {
		CloseMenu(pMenu);
	}
	return 0;
}

UINT onSysMenu_OtherKey(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	char key;

	if (pMenu) {
		key = pMenu->EventArg;
		onSelectSysMenu(key - '1');
		DrawMenu(pMenu);
	}

	return 0;
}

// Input Menu
void onSelectInputMenu(int index)
{
	char str[100];
	int len;

	if (index < 0 || index >= sizeof(inputMenuItems) / sizeof(char *)) return;

	clrscr();
	switch (index) {
	case 0:
		testKeyboard();
		break;
	case 1:
		testChinese();
		break;
	case 2:
		testInput();
		break;
	case 3:
		testInput2();
		break;
	}
	clrscr();
}

UINT onInputMenu_Ok(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) onSelectInputMenu(pMenu->Current);
	return 0;
}

UINT onInputMenu_Cancel(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) {
		CloseMenu(pMenu);
	}
	return 0;
}

UINT onInputMenu_OtherKey(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	char key;

	if (pMenu) {
		key = pMenu->EventArg;
		onSelectInputMenu(key - '1');
		DrawMenu(pMenu);
	}

	return 0;
}

// ------------------------------------------------------------------
void onSelectFsMenu(int index)
{
	if (index < 0 || index >= sizeof(fsMenuItems) / sizeof(char *)) return;

	clrscr();
	switch (index) {
	case 0:
		testCreateFile();
		break;
	case 1:
		testWriteFile();
		break;
	case 2:
		testReadFile();
		break;
	case 3:
		testDeleteFile();
		break;
	case 4:
		testFormatFlash();
		break;
	}
	clrscr();
}

UINT onFsMenu_Ok(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) onSelectFsMenu(pMenu->Current);
	return 0;
}

UINT onFsMenu_Cancel(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) {
		CloseMenu(pMenu);
	}
	return 0;
}

UINT onFsMenu_OtherKey(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	char key;

	if (pMenu) {
		key = pMenu->EventArg;
		onSelectFsMenu(key - '1');
		DrawMenu(pMenu);
	}

	return 0;
}
// ------------------------------------------------------------------

void onSelectCardMenu(int index)
{
	if (index < 0 || index >= sizeof(cardMenuItems) / sizeof(char *)) return;

	clrscr();
	switch (index) {
	case 0:
		testAt24c64();
		break;
	case 1:
		testAt45d();
		break;
	case 2:
		testSle4428();
		break;
	case 3:
		testSle4442();
		break;
	case 4:
		testAt1604();
		break;
	case 5:
		testAt1608();
		break;
	case 6:
		testCpuSamCard(CPU1);
		break;
	case 7:
		testCpuSamCard(CPU1_38400);
		break;
	case 8:
		testCpuSamCard(SAM1);
		break;
	case 9:
		testCpuSamCard(SAM1_38400);
		break;
	case 10:
		testAt24c16();
		break;
	}
	clrscr();
}


UINT onCardMenu_Ok(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) onSelectCardMenu(pMenu->Current);
	return 0;
}

UINT onCardMenu_Cancel(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) {
		CloseMenu(pMenu);
	}
	return 0;
}

UINT onCardMenu_OtherKey(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	char key;

	if (pMenu) {
		key = pMenu->EventArg;
		onSelectCardMenu(key - '1');
		DrawMenu(pMenu);
	}

	return 0;
}

typedef struct {
	BYTE snr[8];
	long tick_count;
}match_struct;

match_struct snr_array[60];
int snr_array_ptr;

void onSelectMifareMenu(int index)
{
	int i;
	
	if (index < 0 || index >= sizeof(mifareMenuItems) / sizeof(char *)) return;

	clrscr();
	for (i=0;i<60;i++) memset(snr_array[i].snr,0,8);
	snr_array_ptr=0;
	
	switch (index) {
	case 0:
		ShowMenu(&mifare_menu_1);
		break;
	case 1:
		ShowMenu(&mifare_menu_2);
		break;
	}
	clrscr();
}

UINT onMifareMenu_Ok(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) onSelectMifareMenu(pMenu->Current);
	return 0;
}

UINT onMifareMenu_Cancel(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) {
		CloseMenu(pMenu);
	}
	return 0;
}

UINT onMifareMenu_OtherKey(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	char key;

	if (pMenu) {
		key = pMenu->EventArg;
		onSelectMifareMenu(key - '1');
		DrawMenu(pMenu);
	}

	return 0;
}

void onSelectMifareMenu_1(int index)
{
	int i;
	
	if (index < 0 || index >= sizeof(mifareMenuItems_1) / sizeof(char *)) return;

	clrscr();
	for (i=0;i<60;i++) memset(snr_array[i].snr,0,8);
	snr_array_ptr=0;
	
	switch (index) {
	case 0:
		testMifareOne();
		break;
	case 1:
		testMifarePro();
		break;
	case 2: 
		testRfid_operate();
		break;
	}
	clrscr();
}

UINT onMifareMenu_Ok_1(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) onSelectMifareMenu_1(pMenu->Current);
	return 0;
}

UINT onMifareMenu_Cancel_1(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	if (pMenu) {
		CloseMenu(pMenu);
	}
	return 0;
}

UINT onMifareMenu_OtherKey_1(void * arg)
{
	Menu * pMenu = (Menu *)arg;
	char key;

	if (pMenu) {
		key = pMenu->EventArg;
		onSelectMifareMenu_1(key - '1');
		DrawMenu(pMenu);
	}

	return 0;
}

void onSelectMifareMenu_2(int index)
{
	int i;
	
	if (index < 0 || index >= sizeof(mifareMenuItems_2) / sizeof(char *)) return;

	clrscr();
	for (i=0;i<60;i++) memset(snr_array[i].snr,0,8);
	snr_array_ptr=0;
	
	switch (index) {
	case 0:
		testMifareOne_2();
		break;
		
	case 1:
		testMifarePro_2();
		break;
		
	case 2: 
		testRfid_2();
		break;
		
//	case 3:
//		ReadMifareOne_B();
//		break;

//	case 4:
//		WriteMifareOne_B();
//		break;

⌨️ 快捷键说明

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