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

📄 display_switchmode_65k320240.c

📁 可以学习
💻 C
📖 第 1 页 / 共 2 页
字号:
			Rect.w = cLCD_TOTAL_COLUMN;
			Rect.y = 0;
			Rect.x = 0;
			bmpOffset=cDISPLAY_MENU_BACKGROUND_FIG_OFFSET;
			Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);

			Rect.h = 16;
			Rect.w = 96;
			Rect.y = cSWITCHMODE_STR1_Y;
			Rect.x = cSWITCHMODE_STR1_X;
			Hyc_Background2DisplayMemory(&Rect);

			string.pstring=(U8*)tSwitchModeInfo[SwitchModeId].pPreItemString[Refresh_Item];
			string.y=cSWITCHMODE_STR1_Y;
			string.x=cSWITCHMODE_STR1_X;
			string.attribute=0;
			string.FrontColor=COLOR_WHITE;
			string.BackColor=COLOR_BLACK;
			Hyc_DisplayString(&string);
		}
		else if(SwitchModeId==SwitchMode_Id_Vidicon)
		{
			Rect.h = cLCD_TOTAL_ROW;
			Rect.w = cLCD_TOTAL_COLUMN;
			Rect.y = 0;
			Rect.x = 0;
			bmpOffset=cDISPLAY_MENU_BACKGROUND_FIG_OFFSET;
			Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);

			Rect.h = 16;
			Rect.w = 96;
			Rect.y = cSWITCHMODE_STR1_Y;
			Rect.x = cSWITCHMODE_STR1_X;
			Hyc_Background2DisplayMemory(&Rect);

			string.pstring=(U8*)tSwitchModeInfo[SwitchModeId].pPreItemString[Refresh_Item];
			string.y=cSWITCHMODE_STR1_Y;
			string.x=cSWITCHMODE_STR1_X;
			string.attribute=0;
			string.FrontColor=COLOR_WHITE;
			string.BackColor=COLOR_BLACK;
			Hyc_DisplayString(&string);
		}
		else if(SwitchModeId==SwitchMode_Id_Camera)
		{
			Rect.h = cLCD_TOTAL_ROW;
			Rect.w = cLCD_TOTAL_COLUMN;
			Rect.y = 0;
			Rect.x = 0;
			bmpOffset=cDISPLAY_MENU_BACKGROUND_FIG_OFFSET;
			Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);

			Rect.h = 16;
			Rect.w = 96;
			Rect.y = cSWITCHMODE_STR1_Y;
			Rect.x = cSWITCHMODE_STR1_X;
			Hyc_Background2DisplayMemory(&Rect);

			string.pstring=(U8*)tSwitchModeInfo[SwitchModeId].pPreItemString[Refresh_Item];
			string.y=cSWITCHMODE_STR1_Y;
			string.x=cSWITCHMODE_STR1_X;
			string.attribute=0;
			string.FrontColor=COLOR_WHITE;
			string.BackColor=COLOR_BLACK;
			Hyc_DisplayString(&string);
		}
		

		for(Refresh_Item=0; Refresh_Item<TotalNum; Refresh_Item++)
		{
			if(Hyc_CheckNotDisplay(SwitchModeId, Refresh_Item)==TRUE) continue;

			if(SwitchModeId==SwitchMode_Id_Main)
			{//处于主菜单界面
				if(Refresh_Item==FocusItemNo)
				{
					Rect.h = cBMPSIZE_SWITCHMODE_SMALL_BMP_H;
					Rect.w = cBMPSIZE_SWITCHMODE_SMALL_BMP_W;
					Rect.y = SwitchMode_Icon_Pos[Refresh_Item][0];
					Rect.x = SwitchMode_Icon_Pos[Refresh_Item][1];
					bmpOffset=cOFFSET_SWITCHMODE_BMP + (Refresh_Item*2+1)*cBMPSIZE_SWITCHMODE_SMALL_BMP;
					Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);
					
					languageIndex=Hyc_GetLanguageIndex();
					if(languageIndex>2) languageIndex=0;//如果当前语言不是英语、中文、繁体中文,则显示英文标题

					Rect.h = cSWITCHMODE_SWITCHMODE_BMPST_H;
					Rect.w = cSWITCHMODE_SWITCHMODE_BMPST_W;
					Rect.y = cSWITCHMODE_SWITCHMODE_BMPST_Y;
					Rect.x = cSWITCHMODE_SWITCHMODE_BMPST_X;
					bmpOffset=cOFFSET_SWITCHMODE_ENGLISH_BMP
					 + languageIndex*cBMPSIZE_SWITCHMODE_LANGUAGE + Refresh_Item*cBMPSIZE_SWITCHMODE_BMPSTR;
					Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);
				}
				else
				{
					Rect.h = cBMPSIZE_SWITCHMODE_SMALL_BMP_H;
					Rect.w = cBMPSIZE_SWITCHMODE_SMALL_BMP_W;
					Rect.y = SwitchMode_Icon_Pos[Refresh_Item][0];
					Rect.x = SwitchMode_Icon_Pos[Refresh_Item][1];
					bmpOffset=cOFFSET_SWITCHMODE_BMP + Refresh_Item*2*cBMPSIZE_SWITCHMODE_SMALL_BMP;
					Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);
				}
			}
			else if(SwitchModeId==SwitchMode_Id_Learn)
			{//处于学习机界面

				if(Refresh_Item==FocusItemNo)
				{	
					Rect.h = cSWITCHMODE_LEARN_BMP_H;
					Rect.w = cSWITCHMODE_LEARN_BMP_W;
					Rect.y = Learn_Extend_Icon_Pos[Refresh_Item][0];
					Rect.x = Learn_Extend_Icon_Pos[Refresh_Item][1];
					bmpOffset=cOFFSET_SWITCHMODE_LEARN_BMP + (Refresh_Item*2+1)*cBMPSIZE_SWITCHMODE_LEARN_BMP;
					Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);

					Rect.h = 16;
					Rect.w = 64;
					Rect.y = cSWITCHMODE_STR2_Y;
					Rect.x = 128;
					Hyc_Background2DisplayMemory(&Rect);

					string.pstring=(U8*)tSwitchModeInfo[SwitchModeId].pItemString[languageIndex+FocusItemNo];
					string.y=cSWITCHMODE_STR2_Y;
					string.x=Hyc_GetDisplayString_Center(FONTSIZE8X16,(U8*)string.pstring);
					string.attribute=FONTSIZE8X16;
					string.FrontColor=COLOR_WHITE;
					string.BackColor=COLOR_BLACK;
					Hyc_DisplayString(&string);
				}
				else
				{
					Rect.h = cSWITCHMODE_LEARN_BMP_H;
					Rect.w = cSWITCHMODE_LEARN_BMP_W;
					Rect.y = Learn_Extend_Icon_Pos[Refresh_Item][0];
					Rect.x = Learn_Extend_Icon_Pos[Refresh_Item][1];
					bmpOffset=cOFFSET_SWITCHMODE_LEARN_BMP + Refresh_Item*2*cBMPSIZE_SWITCHMODE_LEARN_BMP;
					Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);
				}
			}
			else if(SwitchModeId==SwitchMode_Id_Extend)
			{//处于扩展功能界面

				if(Refresh_Item==FocusItemNo)
				{
					Rect.h = cSWITCHMODE_EXTEND_BMP_H;
					Rect.w = cSWITCHMODE_EXTEND_BMP_W;
					Rect.y = Learn_Extend_Icon_Pos[Refresh_Item][0];
					Rect.x = Learn_Extend_Icon_Pos[Refresh_Item][1];
					bmpOffset=cOFFSET_SWITCHMODE_EXTEND_BMP + (Refresh_Item*2+1)*cBMPSIZE_SWITCHMODE_EXTEND_BMP;
					Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);

					Rect.h = 16;
					Rect.w = 48;
					Rect.y = cSWITCHMODE_STR2_Y;
					Rect.x = 136;
					Hyc_Background2DisplayMemory(&Rect);

					string.pstring=(U8*)tSwitchModeInfo[SwitchModeId].pItemString[languageIndex+FocusItemNo];
					string.y=cSWITCHMODE_STR2_Y;
					string.x=Hyc_GetDisplayString_Center(FONTSIZE8X16,(U8*)string.pstring);
					string.attribute=FONTSIZE8X16;
					string.FrontColor=COLOR_WHITE;
					string.BackColor=COLOR_BLACK;
					Hyc_DisplayString(&string);
				}
				else
				{
					Rect.h = cSWITCHMODE_EXTEND_BMP_H;
					Rect.w = cSWITCHMODE_EXTEND_BMP_W;
					Rect.y = Learn_Extend_Icon_Pos[Refresh_Item][0];
					Rect.x = Learn_Extend_Icon_Pos[Refresh_Item][1];
					bmpOffset=cOFFSET_SWITCHMODE_EXTEND_BMP + Refresh_Item*2*cBMPSIZE_SWITCHMODE_EXTEND_BMP;
					Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);
				}
			}
			else if(SwitchModeId==SwitchMode_Id_Vidicon)
			{
				Rect.h = cOFFSET_VIDICION_BMP_H;
				Rect.w = cOFFSET_VIDICION_BMP_W;
				Rect.y = Camera_And_Vidicon_Pos[Refresh_Item][0];
				Rect.x = Camera_And_Vidicon_Pos[Refresh_Item][1];
				
				if(Refresh_Item==FocusItemNo)
				{					
					bmpOffset= cOFFSET_VIDICION_BMP+(Refresh_Item*2+1)*cOFFSET_VIDICION_BMP_SIZE;					
					Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);
					
					Rect.h = 16;
					Rect.w = 320;
					Rect.y = cDISPLAY_MENU_TITLE2_Y;
					Rect.x = 0;
					Hyc_Background2DisplayMemory(&Rect);					

					string.pstring=(U8*)tSwitchModeInfo[SwitchModeId].pItemString[languageIndex+FocusItemNo];
					string.y=cDISPLAY_MENU_TITLE2_Y;
					string.x=Hyc_GetDisplayString_Center(FONTSIZE8X16,(U8*)string.pstring);
					string.attribute=FONTSIZE8X16;
					string.FrontColor=COLOR_WHITE;
					string.BackColor=COLOR_BLACK;
					Hyc_DisplayString(&string);						
					
				}
				else
				{
					bmpOffset= cOFFSET_VIDICION_BMP+(Refresh_Item*2)*cOFFSET_VIDICION_BMP_SIZE;	
					Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);
				}
			}
			else if(SwitchModeId==SwitchMode_Id_Camera)
			{
				
				Rect.h = cOFFSET_CAMERA_BMP_H;
				Rect.w = cOFFSET_CAMERA_BMP_W;
				Rect.y = Camera_And_Vidicon_Pos[Refresh_Item][0];
				Rect.x = Camera_And_Vidicon_Pos[Refresh_Item][1];
				
				if(Refresh_Item==FocusItemNo)
				{					
					bmpOffset= cOFFSET_CAMERA_BMP+(Refresh_Item*2+1)*cOFFSET_CAMERA_BMP_SIZE;					
					Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);
					
					Rect.h = 16;
					Rect.w = 320;
					Rect.y = cDISPLAY_MENU_TITLE2_Y;
					Rect.x = 0;
					Hyc_Background2DisplayMemory(&Rect);					

					string.pstring=(U8*)tSwitchModeInfo[SwitchModeId].pItemString[languageIndex+FocusItemNo];
					string.y=cDISPLAY_MENU_TITLE2_Y;
					string.x=Hyc_GetDisplayString_Center(FONTSIZE8X16,(U8*)string.pstring);
					string.attribute=FONTSIZE8X16;
					string.FrontColor=COLOR_WHITE;
					string.BackColor=COLOR_BLACK;
					Hyc_DisplayString(&string);	
					
				}
				else
				{
					bmpOffset= cOFFSET_CAMERA_BMP+(Refresh_Item*2)*cOFFSET_CAMERA_BMP_SIZE;				
					Hyc_WriteBMPFromNand((U32)bmpOffset, &Rect);
				}
			}
		}

		Hyc_Display_DateTime();	//显示时间
		Hyc_Refresh_Battery();	//显示电量
	}

	Hyc_RefreshScreen();	//刷新屏幕
	
	Hyc_CancelSwitchModeRefreshMode();
}



/*-----------------------------------------------------------------------------------
* 函数:	Hyc_SwitchMode_Display_DateTime()
* 功能:	模式切换模块界面(即主界面)日期时间显示,该函数会被Hyc_Display_DateTime()调用。
*		如果主界面不需要日期时间显示,将该函数注销为空函数即可
* 参数:	TopSolar	公历:年月日时分秒
* 返回:	none
*------------------------------------------------------------------------------------*/
void Hyc_SwitchMode_Display_DateTime(RtcTime_st	*TopSolar)
{
	char temp[11];
	U32 bmpOffset;
	RECT Rect;
	STRING string;
	BITMAP Bitmap;
	
	//日期
	sprintf((char*)temp, "%04d.%02d.%02d", TopSolar->year, TopSolar->month, TopSolar->day);
	Rect.h = cSWITCHMODE_DATE_H;
	Rect.w = cSWITCHMODE_DATE_W;
	Rect.y = cSWITCHMODE_DATE_Y;
	Rect.x = cSWITCHMODE_DATE_X;
	Hyc_Background2DisplayMemory(&Rect);

	string.pstring=(U8*)temp;
	string.y=cSWITCHMODE_DATE_Y;
	string.x=cSWITCHMODE_DATE_X;
	string.attribute=FONTSIZE6X9;
	string.FrontColor=cSWITCHMODE_DATE_FCOLOR;
	string.BackColor=cSWITCHMODE_DATE_BCOLOR;
	Hyc_DisplayString(&string);	

	//时间
	sprintf((char*)temp, "%02d:%02d",TopSolar->hour,TopSolar->minute);
	Rect.h = cSWITCHMODE_TIME_H;
	Rect.w = cSWITCHMODE_TIME_W;
	Rect.y = cSWITCHMODE_TIME_Y;
	Rect.x = cSWITCHMODE_TIME_X;
	Hyc_Background2DisplayMemory(&Rect);

	string.pstring=(U8*)temp;
	string.y=cSWITCHMODE_TIME_Y;
	string.x=cSWITCHMODE_TIME_X;
	string.attribute=FONTSIZE6X9;
	string.FrontColor=cSWITCHMODE_TIME_FCOLOR;
	string.BackColor=cSWITCHMODE_TIME_BCOLOR;
	Hyc_DisplayString(&string);

	//星期
	Rect.h = cSWITCHMODE_WEEK_H;
	Rect.w = cSWITCHMODE_WEEK_W;
	Rect.y = cSWITCHMODE_WEEK_Y;
	Rect.x = cSWITCHMODE_WEEK_X;
	Hyc_Background2DisplayMemory(&Rect);
	
	Bitmap.h = cSWITCHMODE_WEEK_H;
	Bitmap.w = cSWITCHMODE_WEEK_W;
	Bitmap.y = cSWITCHMODE_WEEK_Y;
	Bitmap.x = cSWITCHMODE_WEEK_X;
	Bitmap.FrontColor = cSWITCHMODE_WEEK_FCOLOR;
	Bitmap.BackColor = cSWITCHMODE_WEEK_BCOLOR;
	Bitmap.pbitmap =(U8 *)SWITCHMODE_WEEK[TopSolar->week];
	Hyc_DrawBMP(&Bitmap);
}



/*-----------------------------------------------------------------------------------
* 函数:	Hyc_SwitchMode_Display_Battery()
* 功能:	模式切换模块界面(即主界面)电量显示,该函数会被Hyc_Refresh_Battery()调用。
*		如果主界面不需要电量显示,将该函数注销为空函数即可
* 参数:	Num		电量格数
* 返回:	none
*------------------------------------------------------------------------------------*/
void Hyc_SwitchMode_Display_Battery(U8 Num)
{
	RECT Rect;
	BITMAP Bitmap;
	
    Rect.h = cSWITCHMODE_BATTERY_H;
	Rect.w = cSWITCHMODE_BATTERY_W;
	Rect.y = cSWITCHMODE_BATTERY_Y;
	Rect.x = cSWITCHMODE_BATTERY_X;
	Hyc_Background2DisplayMemory(&Rect);
	
	Bitmap.h = cSWITCHMODE_BATTERY_H;
	Bitmap.w = cSWITCHMODE_BATTERY_W;
	Bitmap.y = cSWITCHMODE_BATTERY_Y;
	Bitmap.x = cSWITCHMODE_BATTERY_X;
	Bitmap.FrontColor = cSWITCHMODE_BATTERY_FCOLOR;
	Bitmap.BackColor = cSWITCHMODE_BATTERY_BCOLOR;
	Bitmap.pbitmap =(U8 *)SWITCHMODE_BATTERY[Num];
	Hyc_DrawBMP(&Bitmap);
	
	//主界面的电池图标显示需要调用该函数
	Hyc_DisplayByBuffer(&Rect);
}


/*-----------------------------------------------------------------------------------
* 函数:	Hyc_Display_Card()
* 功能:	各模块界面外接卡图标显示,该函数会在application.a中调用。可以根据参数Mode区分
*		当前处于主界面还是其它界面,以适合显示位置不同等要求。对于没有外接卡座的机器,
*		可将该函数注销。
* 参数:	Mode	1:当前处于主界面	0:当前处于其它界面
* 返回:	none
*------------------------------------------------------------------------------------*/
void Hyc_Display_Card(U8 Mode)
{
	RECT Rect;
	BITMAP Bitmap;
		
    Rect.h = cCARD_H;
	Rect.w = cCARD_W;
	Rect.y = cCARD_Y;
	Rect.x = cCARD_X;
	Hyc_Background2DisplayMemory(&Rect);
	
	if(Hyc_GetDeviceNo()=='D')
	{
		Bitmap.h = cCARD_H;
		Bitmap.w = cCARD_W;
		Bitmap.y = cCARD_Y;
		Bitmap.x = cCARD_X;
		Bitmap.FrontColor = cCARD_FCOLOR;
		Bitmap.BackColor = cCARD_BCOLOR;
		Bitmap.pbitmap =(U8 *)CARD;
		Hyc_DrawBMP(&Bitmap);
	}
}

⌨️ 快捷键说明

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