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

📄 gui.c

📁 S3C2410上RS485驱动源码,用ADS1.2编译工程,已测试通过.内附文档.
💻 C
📖 第 1 页 / 共 2 页
字号:
	buttonnumber = 2;
	phone_index = 0;		//清空phone buffer	
	drawtext(155,200,"演示窗口",1,3,rgb(255,255,0));
	mbuttonlist[0].id = CALL_BUTTON;
	mbuttonlist[0].x0 = 60;
	mbuttonlist[0].y0 = 95;
	mbuttonlist[0].wide =80;
	mbuttonlist[0].high = 30;
	mbuttonlist[0].text_x = 25;
	mbuttonlist[0].text_y = 20;
	mbuttonlist[0].textcolor = rgb(255,255,0);
	mbuttonlist[0].bgcolor = rgb(255,0,255);
	strcopy(mbuttonlist[0].text,"call");
	drawbutton(&mbuttonlist[0]);
	
	mbuttonlist[1].id = MESSAGE_BUTTON;
	mbuttonlist[1].x0 = 180;
	mbuttonlist[1].y0 = 95;
	mbuttonlist[1].wide =80;
	mbuttonlist[1].high = 30;
	mbuttonlist[1].text_x = 8;
	mbuttonlist[1].text_y = 20;
	mbuttonlist[1].textcolor = rgb(255,255,0);
	mbuttonlist[1].bgcolor = rgb(255,0,255);
	strcopy(mbuttonlist[1].text,"message");
	drawbutton(&mbuttonlist[1]);
	
	//打开键盘
    keyinit();     
    KB_Enable(TRUE);                      //中断使能函数


}

void CALL_win(void)
{

	int i;
	
	GUI_cls();

	drawexitbutton();
	drawascii168(120,200,"CALL",rgb(255,255,0));

	drawtext(155,200,"演示窗口",1,3,rgb(255,255,0));
	
	drawtext(40,150,"按键盘输入电话号码:",1,0,rgb(255,255,0));
	
	mbuttonlist[0].id = CALL_BUTTON;
	mbuttonlist[0].x0 = 60;
	mbuttonlist[0].y0 = 65;
	mbuttonlist[0].wide =80;
	mbuttonlist[0].high = 30;
	mbuttonlist[0].text_x = 25;
	mbuttonlist[0].text_y = 20;
	mbuttonlist[0].textcolor = rgb(255,255,0);
	mbuttonlist[0].bgcolor = rgb(255,0,255);
	strcopy(mbuttonlist[0].text,"Call");
	drawbutton(&mbuttonlist[0]);
	
	mbuttonlist[1].id = ESC_BUTTON;
	mbuttonlist[1].x0 = 180;
	mbuttonlist[1].y0 = 65;
	mbuttonlist[1].wide =80;
	mbuttonlist[1].high = 30;
	mbuttonlist[1].text_x = 30;
	mbuttonlist[1].text_y = 20;
	mbuttonlist[1].textcolor = rgb(255,255,0);
	mbuttonlist[1].bgcolor = rgb(255,0,255);
	strcopy(mbuttonlist[1].text,"Esc");
	drawbutton(&mbuttonlist[1]);

	buttonnumber = 2;
	

}


void Message_win(void)
{
	GUI_cls();
	
	drawexitbutton();
	drawascii168(100,197,"MESSAGE",rgb(255,255,0));
	buttonnumber = 1;	
	drawtext(155,200,"演示窗口",1,3,rgb(255,255,0));
	
	drawtext(40,150,"按键盘输入电话号码:",1,0,rgb(255,255,0));
	drawtext(40,130,"短消息内容为",1,0,rgb(255,255,0));	
	drawascii168(137,127,"HELLO",rgb(255,255,0));
	
	mbuttonlist[0].id = SEND_BUTTON;
	mbuttonlist[0].x0 = 120;
	mbuttonlist[0].y0 = 60;
	mbuttonlist[0].wide =80;
	mbuttonlist[0].high = 30;
	mbuttonlist[0].text_x = 25;
	mbuttonlist[0].text_y = 20;
	mbuttonlist[0].textcolor = rgb(255,255,0);
	mbuttonlist[0].bgcolor = rgb(255,0,255);
	strcopy(mbuttonlist[0].text,"Send");
	drawbutton(&mbuttonlist[0]);
	

}

void drawexitbutton(void)
{
	fillrectangle (300,220,317,237,	rgb(255,0,255));
	line(300,220,317,237,rgb(255,255,0));
	line(300,220,300,237,rgb(255,255,0));
	line(300,220,317,220,rgb(255,255,0));
	line(317,220,317,237,rgb(255,255,0));
	line(300,237,317,220,rgb(255,255,0));
	line(300,237,317,237,rgb(255,255,0));
}

void Config_time_win(void)
{

	char timestr[20];
	GUI_cls();
	drawexitbutton();
	KB_Enable(TRUE);
	buttonnumber = 0;
	gTimeIndex = 0;	
	drawtext(100,200,"时间设置窗口",1,3,rgb(255,255,0));
	drawtext(70,140,"时间:",1,0,rgb(255,255,0));
	sprintf(timestr,"%d%d:%d%d",0,0,0,0);
	drawascii168(120,138,timestr,rgb(255,255,0));	
	line(120,122,128,122,rgb(255,0,0));
	
	strcpy(timestr,"星期日");
	drawtext(180,138,timestr,1,0,rgb(255,255,0));
	drawtext(70,70,"按数字键盘输入数据!",1,3,rgb(255,255,0));
}
	
void changewindows(int x,int y)
{
	int i;
	switch(win_ID)
	{
	case MAIN_WIN:				//屏保
		win_ID = MAIN_MENU;
		flushenable = 1; 
		mainmenu();;   //需要刷新窗口
		break;
	case MAIN_MENU:
		 switch(findbuttonid(x,y))
		 {
		 case GPRS_BUTTON:
			win_ID = GPRS_WIN;
//			flushenable = 1;   //需要刷新窗口
			GPRS_win();
			break;
		case BLUETOOTH_BUTTON:
//			win_ID = BLUETOOTH_WIN;
//			flushenable = 1;   //需要刷新窗口
			break;
		case UART_BUTTON:
			win_ID = UART_WIN;
			uart_win();
			for(i=0;i<20000;i++);
			flushenable = 0;
			break;
		case USB_BUTTON:
			win_ID = USB_WIN;
			usb_win();
			for(i=0;i<20000;i++);
			flushenable = 0;
			break;
			
		case KBD_BUTTON:
			win_ID = KBD_WIN;
			KBD_win();
			for(i=0;i<20000;i++);
			flushenable = 0;
			break;
			
		case IIS_BUTTON:

			playwav();
			break;
		case CONFIG_BUTTON:
			win_ID = CONFIG_WIN;
			Config_win();
			for(i=0;i<20000;i++);
			flushenable = 0;
			break;
			
		case STEP_MOTOR_BUTTON:
			win_ID = STEPMOTOR_WIN;
			Step_Motor_win();
			for(i=0;i<20000;i++);
			flushenable = 0;
			break;
		case GPS_BUTTON:
			win_ID = GPS_WIN;
			GPS_win();
			for(i=0;i<20000;i++);
			flushenable = 0;
			break;
			
		case EXIT_BUTTON:
			win_ID = MAIN_WIN;
			flushenable = 0;
			buttonnumber =0;            //在封面上没有按钮
			LCD_Entry();
			break;

		}
		break;
	case GPRS_WIN:
		if(findbuttonid(x,y) == EXIT_BUTTON) 
		{
		win_ID = MAIN_MENU;
		mainmenu();
		}
		if(findbuttonid(x,y) == CALL_BUTTON) 
		{
		win_ID = CALL_WIN;
		clearbuttonlist();
//		for(i=0;i<1000000;i++);	
		CALL_win();
		}
		if(findbuttonid(x,y) == MESSAGE_BUTTON) 
		{
		win_ID = MESSAGE_WIN;	
		Message_win();
		}
		break;
	case UART_WIN:
		if(findbuttonid(x,y) == EXIT_BUTTON)
		{
			win_ID = MAIN_MENU;
			mainmenu();
		}
		if(findbuttonid(x,y) == START_BUTTON)
		{

                        CONSOL_Select(0);
                        CONSOL_Init(115200);
		   	CONSOL_Printf("\n\r***************************************************************");
			CONSOL_Printf("\n\r*        Copyright Shenzhen Watertek S.&T. Co.,Ltd  2005      *");  
			CONSOL_Printf("\n\r*                    All Rights Reserved.        	      *");
		   	CONSOL_Printf("\n\r***************************************************************");
	
		}
		break;
	case USB_WIN:
		if(findbuttonid(x,y) == EXIT_BUTTON)
		{
			win_ID = MAIN_MENU;
			mainmenu();
		}
		break;
	case KBD_WIN:
		if(findbuttonid(x,y) == EXIT_BUTTON)
		{
			win_ID = MAIN_MENU;
			mainmenu();
		}
		break;
	case CALL_WIN:
		if(findbuttonid(x,y) == EXIT_BUTTON)
		{
			win_ID = GPRS_WIN;
			phone_index =0;    //清空电话号码buffer
			GPRS_win();
		}
		
		if(findbuttonid(x,y) == CALL_BUTTON) 
		{

		call_demo(phone_num);
		}
		if(findbuttonid(x,y) == ESC_BUTTON) 
		{

		disconnect_phone();
		}
		break;
		
	case MESSAGE_WIN:
		if(findbuttonid(x,y) == EXIT_BUTTON)
		{
			win_ID = GPRS_WIN;
			phone_index =0;    //清空电话号码buffer
			GPRS_win();
		}
		
		if(findbuttonid(x,y) == SEND_BUTTON) 
		{
//		win_ID = CALL_WIN;
		sendmessage_demo(phone_num);
		}
//		if(findbuttonid(x,y) == ESC_BUTTON) 
//		{
//		win_ID = CALL_WIN;
//		disconnect_phone();
//		}
		break;
		
	case CONFIG_WIN:
		switch(findbuttonid(x,y))
		{
			case EXIT_BUTTON:
			{		
				win_ID = MAIN_MENU;
				
				mainmenu();
				phone_index =0;    //清空电话号码buffer
				break;
			}
			
			case ADJUST_BUTTON: 
			{
				int k;
				for(k=0;k<25;k++)
				{
					IIC_write(k,0);
				} 
				drawtext(110,50,"请重新启动!",1,0,rgb(255,255,0));			
				break;
			}
			case TIME_BUTTON: 
			{
				win_ID = TIME_CONFIG_WIN;
				Config_time_win();
				break;
			}
		}		
		break;
	

	case STEPMOTOR_WIN:
		motorctrl(findbuttonid(x,y));
		break;
	case TIME_CONFIG_WIN:
		switch(findbuttonid(x,y))
		{
			case EXIT_BUTTON:
			{		
			win_ID = CONFIG_WIN;
			time.hour = (gTimestr[0] - '0')*10 + (gTimestr[1] - '0');
			time.min  = (gTimestr[2] - '0')*10 + (gTimestr[3] - '0');
			time.weekday = gTimestr[4] - '0';
			if((time.weekday))writeRTC(&time);	
			Config_win();
//			phone_index =0;    //清空电话号码buffer
			break;
			}
		
		}
		break;
	case GPS_WIN:
		switch(findbuttonid(x,y))
		{
		case EXIT_BUTTON:
		{		
			win_ID = MAIN_MENU;
			mainmenu();
			break;

		}
               }
	      break;


	}
				
	
}

int findbuttonid(int x,int y)
{
	int i;
	for(i=0;i<buttonnumber;i++)
	{
		if(x>=mbuttonlist[i].x0&&x<=(mbuttonlist[i].x0+mbuttonlist[i].wide)&&y>=mbuttonlist[i].y0&&y<=(mbuttonlist[i].y0+mbuttonlist[i].high))
			{
				fillreverserectangle (mbuttonlist[i].x0,mbuttonlist[i].y0,mbuttonlist[i].x0+mbuttonlist[i].wide,mbuttonlist[i].y0+mbuttonlist[i].high);
				waitforstylusup();		
				drawbutton(&mbuttonlist[i]);
				return mbuttonlist[i].id ;
			}
	}
	if(x>=290&&y>210)  return EXIT_BUTTON;
	return 0;
}

void motorctrl(int id)
{
    switch(id)
    {
	case EXIT_BUTTON:
	{		
		win_ID = MAIN_MENU;
		MotorOff(TIMER2);	//关闭电机
		mainmenu();
		phone_index =0;    //清空电话号码buffer
		break;
	}
	case MOTOR_SPEED_UP_BUTTON: 
	{
		char buf[30];
		gfreq++;
		if(gfreq >=4) gfreq =4;
		SetClkFreq(gfreq*50,TIMER2);
		sprintf(buf,"%d",gfreq);
		fillrectangle(120,124,130,140,rgb(0,0,255));	
		
		drawascii168(120,138,buf,rgb(255,255,0));
		break;
	}
	case MOTOR_SPEED_DOWN_BUTTON: 
	{
		char buf[30];
		gfreq--;
		if(gfreq <=1) gfreq =1;
		SetClkFreq(gfreq*50,TIMER2);
	
		sprintf(buf,"%d",gfreq);
		fillrectangle(120,124,130,140,rgb(0,0,255));	
		
		drawascii168(120,138,buf,rgb(255,255,0));
		break;	
	}
	case MOTOR_ANGLE_UP_BUTTON: 
	{
		char buf[30];
		gAngle++;
		if(gAngle >=4) gAngle =4;
		AngleCtrl(gAngle);
		sprintf(buf,"%d",5-gAngle);
		fillrectangle(120,84,130,100,rgb(0,0,255));	
		drawascii168(120,98,buf,rgb(255,255,0)); 
		break;	
	}
	case MOTOR_ANGLE_DOWN_BUTTON: 
	{
		char buf[30];
		gAngle--;
		if(gAngle <=1) gAngle =1;
		AngleCtrl(gAngle);
		sprintf(buf,"%d",5-gAngle);
		fillrectangle(120,84,130,100,rgb(0,0,255));	
		drawascii168(120,98,buf,rgb(255,255,0)); 
		break;	
	}
	case START_BUTTON: 
	{
		MotorOn(TIMER2);
		DirectoryCtrl(gDirectoryCtrl);		//改变方向
//		drawascii168(120,40,"START_BUTTON",rgb(255,255,0));
		break;	
	}
	case STOP_BUTTON: 
	{
		MotorOff(TIMER2);
		DirectoryCtrl(gDirectoryCtrl);		//改变方向		
//		drawascii168(120,40,"STOP_BUTTON",rgb(255,255,0));
		break;	
	}
	case SWITCH_BUTTON: 
	{
		if(gDirectoryCtrl == 0)
		{
			gDirectoryCtrl =1;
			strcopy(mbuttonlist[6].text,"===>>>");		//修改显示的按钮界面
		}			
		else 
		{
			gDirectoryCtrl =0;
			strcopy(mbuttonlist[6].text,"<<<===");		//修改显示的按钮界面
		}

		DirectoryCtrl(gDirectoryCtrl);

		drawbutton(&mbuttonlist[6]);

//		drawascii168(120,40,"STOP_BUTTON",rgb(255,255,0));
		break;	
	}

  }
}

⌨️ 快捷键说明

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