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

📄 mwd.c

📁 ARM7下用图形用户界面实现LED,KEY,MOTOR,AD功能
💻 C
📖 第 1 页 / 共 2 页
字号:
    {
	    w=KBW;
	    h=KBH;
	    twin(gc,bevent->wid,w,h);
		getnum(5);
    }
    if(bevent->wid==kb[1][2])
    {
	    w=KBW;
	    h=KBH;
	    twin(gc,bevent->wid,w,h);
		getnum(6);
    }
    if(bevent->wid==kb[2][0])
    {
	    w=KBW;
	    h=KBH;
	    twin(gc,bevent->wid,w,h);
		getnum(1);
    }
    if(bevent->wid==kb[2][1])
    {
	    w=KBW;
	    h=KBH;
	    twin(gc,bevent->wid,w,h);
	getnum(2);
    }
    if(bevent->wid==kb[2][2])
    {
	    w=KBW;
	    h=KBH;
	    twin(gc,bevent->wid,w,h);
		getnum(3);
    }
    if(bevent->wid==kb[3][0])
    {
	    w=KBW;
	    h=KBH;
	    twin(gc,bevent->wid,w,h);
	    getnum(0);
    }
    if(bevent->wid==kb[3][1])
    {
	    w=KBW;
	    h=KBH;
	    twin(gc,bevent->wid,w,h);
    }
    if(bevent->wid==kb[3][2])
    {
	    w=KBW;
	    h=KBH;
	    twin(gc,bevent->wid,w,h);
        msg.type=LED_SDATE;
        msg.num=sum;
        sendmessage(&mbuffer, &msg);                
        sum=0;
        shownum(sum,gc);
    }
    if(bevent->wid==ledb[0])
    {
        w=LEDBW;
	    h=LEDBH;
        twin(gc,bevent->wid,w,h);
        msg.type=LED_LSHIFT;
        msg.num=0;
        sendmessage(&mbuffer, &msg);                         
    }
    if(bevent->wid==ledb[1])
    {
        w=LEDBW;
	    h=LEDBH;
        twin(gc,bevent->wid,w,h);
        msg.type=LED_RSHIFT;
        msg.num=0;
        sendmessage(&mbuffer, &msg);                          
    }
    if(bevent->wid==ledb[2])
    {
        w=LEDBW;
	    h=LEDBH;
        twin(gc,bevent->wid,w,h);
        msg.type=LED_CLSHIFT;
        msg.num=0;
        sendmessage(&mbuffer, &msg);                          
    }
    if(bevent->wid==ledb[3])
    {
        w=LEDBW;
	    h=LEDBH;
        twin(gc,bevent->wid,w,h);
        msg.type=LED_CRSHIFT;
        msg.num=0;
        sendmessage(&mbuffer, &msg);                          
    }
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
void doEventButtonUp(GR_EVENT_BUTTON *bevent)
{
    int w,h;
    if(bevent->wid==bt[0])
    {
	    w=BTW;
	    h=BTH;
        swin(gc,bevent->wid,w,h);
    }
    if(bevent->wid==bt[1])
    {
	    w=BTW;
        h=BTH;
        swin(gc,bevent->wid,w,h);
    }
    if(bevent->wid==bt[2])
    {
	    w=BTW;
        h=BTH;
        swin(gc,bevent->wid,w,h);
    }
    if(bevent->wid==bt[3])
    {
	    w=BTW;
        h=BTH;
        swin(gc,bevent->wid,w,h);
    }
   	if(bevent->wid==kb[0][0])
	{
        w=KBW;
	    h=KBH;
	    swin(gc,bevent->wid,w,h);
	}
	if(bevent->wid==kb[0][1])
	{
	    w=KBW;
	    h=KBH;
	    swin(gc,bevent->wid,w,h);
	}
    if(bevent->wid==kb[0][2])
    {
	    w=KBW;
	    h=KBH;
	    swin(gc,bevent->wid,w,h);

    }
    if(bevent->wid==kb[1][0])
    {
	    w=KBW;
	    h=KBH;
	    swin(gc,bevent->wid,w,h);
 
    }
    if(bevent->wid==kb[1][1])
    {
	    w=KBW;
	    h=KBH;
	    swin(gc,bevent->wid,w,h);

    }
    if(bevent->wid==kb[1][2])
    {
	    w=KBW;
	    h=KBH;
	    swin(gc,bevent->wid,w,h);

    }
    if(bevent->wid==kb[2][0])
    {
	    w=KBW;
	    h=KBH;
	    swin(gc,bevent->wid,w,h);

    }
    if(bevent->wid==kb[2][1])
    {
	    w=KBW;
	    h=KBH;
	    swin(gc,bevent->wid,w,h);

    }
    if(bevent->wid==kb[2][2])
    {
	    w=KBW;
	    h=KBH;
	    swin(gc,bevent->wid,w,h);

    }
    if(bevent->wid==kb[3][0])
    {
	    w=KBW;
	    h=KBH;
	    swin(gc,bevent->wid,w,h);

    }
    if(bevent->wid==kb[3][1])
    {
	    w=KBW;
	    h=KBH;
	    swin(gc,bevent->wid,w,h);
    }
    if(bevent->wid==kb[3][2])
    {
	    w=KBW;
	    h=KBH;
	    swin(gc,bevent->wid,w,h);

     }
     if(bevent->wid==ledb[0])
    {
        w=LEDBW;
	    h=LEDBH;
        swin(gc,bevent->wid,w,h);                          
    }
    if(bevent->wid==ledb[1])
    {
        w=LEDBW;
	    h=LEDBH;
        swin(gc,bevent->wid,w,h);                          
    }
    if(bevent->wid==ledb[2])
    {
        w=LEDBW;
	    h=LEDBH;
        swin(gc,bevent->wid,w,h);                          
    }
    if(bevent->wid==ledb[3])
    {
        w=LEDBW;
	    h=LEDBH;
        swin(gc,bevent->wid,w,h);                          
    }  
}

/////////////////////////////////////////////////////////////////////////////
void umapStartMenu()
{
    GrUnmapWindow(smb[0]);
    GrUnmapWindow(smb[1]);
    GrUnmapWindow(smb[2]);
    GrUnmapWindow(smb[3]);
    GrUnmapWindow(smb[4]);
}

/////////////////////////////////////////////////////////////////////////////
void doadw(GR_GC_ID gc)
{
    GrSetGCForeground(gc, 255);
    GrSetGCUseBackground(gc, GR_FALSE);
    GrSetGCFont(gc, fontid);
    GrUnmapWindow(ledw);
    GrMapWindow(adw);
    bwin(gc,adw,ADWW,ADWH); 
}

void doledw(GR_GC_ID gc)
{
    int i;
    GrSetGCForeground(gc, 255);
    GrSetGCUseBackground(gc, GR_FALSE);
    GrSetGCFont(gc, fontid);
    GrUnmapWindow(adw);
    GrMapWindow(ledw);
    bwin(gc,ledw,LEDWW,LEDWH);  
    
    for(i=0;i<4;i++)
    {
        GrMapWindow(ledb[i]);
        swin(gc,ledb[i],LEDBW,LEDBH);
        GrText(ledb[i],gc,15,18,ledbname[i],-1,GR_FALSE);               
    }
}

void umapledw()
{
    GrUnmapWindow(ledw);
    GrDrawImageToFit(window, gc,18,115, picIF.width, picIF.height, picID);
}
void umapadw()
{
    GrUnmapWindow(adw);
    GrDrawImageToFit(window, gc,18,115, picIF.width, picIF.height, picID);
}

//////////////////////////////////////////////////////////////////////////
void showkeyw(GR_GC_ID gc)
{
	int i,j;
    GrSetGCFont(gc, fontid);
    GrSetGCForeground(gc, BLUE);
    for(i=0;i<4;i++)
    {
     	GrUnmapWindow(bt[i]);
    }
    GrMapWindow(keyw);
    bwin(gc,keyw,KEYWW,KEYWH);
    for(i=0;i<4;i++)
        for(j=0;j<3;j++)
        {
     		GrMapWindow(kb[i][j]);
     		swin(gc,kb[i][j],KBW,KBH);
		    GrText(kb[i][j],gc,FX,FY,keyname[i][j],-1,GR_FALSE);
	    }
}
void umapkeyw()
{
    int i;
    GrUnmapWindow(keyw);
    for(i=0;i<4;i++)
    {
        GrMapWindow(bt[i]);
        bwin(gc,bt[i],BTW,BTH);
    }
}

///////////////////////////////////////////////////////////////////////////

void bwin(GR_GC_ID gc,GR_WINDOW_ID win,int w,int h)
{
    GrSetGCForeground(gc,B2);
    GrLine(win,gc,0,0,w-2,0);
    GrLine(win,gc,0,1,0,h-2);
    GrSetGCForeground(gc,B1);
    GrLine(win,gc,1,1,w-3,1);
    GrLine(win,gc,1,2,1,h-3);
    GrSetGCForeground(gc,B3);
    GrLine(win,gc,1,h-2,w-2,h-2);
    GrLine(win,gc,h-2,1,h-2,w-3);
    GrSetGCForeground(gc,B4);
    GrLine(win,gc,0,h-1,w-1,h-1);
    GrLine(win,gc,w-1,0,w-1,h-2);
}

void swin(GR_GC_ID gc,GR_WINDOW_ID win,int w,int h)
{
    GrSetGCForeground(gc,B1);
    GrLine(win,gc,0,0,w-2,0);
    GrLine(win,gc,0,1,0,h-2);
    GrSetGCForeground(gc,B2);
    GrLine(win,gc,1,1,w-3,1);
    GrLine(win,gc,1,2,1,h-3);
    GrSetGCForeground(gc,B3);
    GrLine(win,gc,1,h-2,w-2,h-2);
    GrLine(win,gc,h-2,1,h-2,w-3);
    GrSetGCForeground(gc,B4);
    GrLine(win,gc,0,h-1,w-1,h-1);
    GrLine(win,gc,w-1,0,w-1,h-2);
}

void twin(GR_GC_ID gc,GR_WINDOW_ID win,int w,int h)
{
    GrSetGCForeground(gc,B3);
    GrLine(win,gc,0,0,w-2,0);
    GrLine(win,gc,0,1,0,h-2);
    GrSetGCForeground(gc,B4);
    GrLine(win,gc,1,1,w-3,1);
    GrLine(win,gc,1,2,1,h-3);
    GrSetGCForeground(gc,B2);
    GrLine(win,gc,1,h-2,w-2,h-2);
    GrLine(win,gc,h-2,1,h-2,w-3);
    GrSetGCForeground(gc,B1);
    GrLine(win,gc,0,h-1,w-1,h-1);
    GrLine(win,gc,w-1,0,w-1,h-2);
}
void wwin(GR_GC_ID gc,GR_WINDOW_ID win,int w,int h)
{
    GrSetGCForeground(gc,B2);
    GrLine(win,gc,0,0,w-2,0);
    GrLine(win,gc,0,1,0,h-2);
    GrLine(win,gc,1,1,w-3,1);
    GrLine(win,gc,1,2,1,h-3);
    GrLine(win,gc,1,h-2,w-2,h-2);
    GrLine(win,gc,h-2,1,h-2,w-3);
    GrLine(win,gc,0,h-1,w-1,h-1);
    GrLine(win,gc,w-1,0,w-1,h-2);
}

///////////////////////////////////////////////////////////////////////////////

void shownum(int a,GR_GC_ID gc)
{
    char num[9];
    
    GrClearWindow(text,1);
    if(a>0)
    {
        GrSetGCFont(gc, fontid);
        GrSetGCForeground(gc, BLUE);
        sprintf(num,"%d",a);
        GrMapWindow(text);	
        GrText(text,gc,FX+10,FY,num,-1,GR_FALSE);
    }
}
void doad(float *a,GR_GC_ID gc)
{
    int i;
    char adnum[4][8];
    GrSetGCFont(gc, fontid);
    GrSetGCForeground(gc, BLUE);
    GrClearWindow(adw,0);
    for(i=0;i<4;i++)
    {
        sprintf(adnum[i],"%6.5f",a[i]);
        GrText(adw,gc,FX+22,(FY+6+i*ADBH),adnum[i],-1,GR_FALSE);
    }
}
void dotemp(float dtemp,GR_GC_ID gc)
{
	char stemp[8];
    if(dtemp>26)
    {
	    GrSetGCFont(gc, fontid);
	    GrSetGCForeground(gc, RED);
    }
    else
    {
	    GrSetGCFont(gc, fontid);
	    GrSetGCForeground(gc, BLUE);

	}
	sprintf(stemp,"%6.3f",dtemp);
	GrClearWindow(temp,0);
	GrText(temp, gc, 0, FY+10, stemp, -1, GR_TFASCII);

}

void getnum(int keynum)
{
	sum*=10;
    sum+=keynum;
	if(sum>=99999999)
		sum=0;
    shownum(sum,gc);

}
void showkeynum(char key1)
{
	MSGE msg;
	if(key1<=9)
	getnum(key1);
	if(key1==15)
	{
		msg.type=LED_SDATE;
		msg.num=sum;
		sendmessage(&mbuffer,&msg);
		sum=0;
		shownum(sum,gc);
    }

}

⌨️ 快捷键说明

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