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

📄 uulac.c

📁 keil c open
💻 C
字号:
#include "extern.h"
uchar	bdata	flag;
sbit	pary0=flag^0;
sbit	pary1=flag^1;
sbit	pary2=flag^2;
sbit	pary3=flag^3;
sbit	pary4=flag^4;
sbit	pary5=flag^5;
sbit	pary6=flag^6;
sbit	pary7=flag^7;

/*
8888888888888888888888888888888888888888888888888888888888888
*
*
**
*****************************************************************
*/
void video_swiitcher()
{
	p=p-1;return;

}
void smartscan_receiver()
{
	uchar	xdata	i;
	if(t[0]!=0xb0)
	{
		p=p-1;
		for(i=0;i<6;i++)
		t[i]=t[i+1];
		return;
	}
//	f_display_adot_data(t[0],t[1]);
//	f_display_adot_data1(t[2],t[3]);
	switch(t[2])
	{
		case	'C':pe[4]=0;f_reset_default_off();break;
		case	'D':pe[4]=0;f_reset_default_on();break;
		case	'O':pe[4]=37;pe[5]=t[3];break;
		case	0x50:pe[4]=0x39;pe[5]=t[3];		break;	os_anlay_data_all();return;sendtwo=0x97;sendthree=t[3]-1;break;
		case	0x5b:pe[4]=0x37;pe[5]=t[3];		break;	os_anlay_data_all();return;sendtwo=0xa0;sendthree=t[3]-1;;break;
		default:
				pe[4]=0;p=p-1;
				for(i=0;i<6;i++)
				t[i]=t[i+1];
				return;
	}
		os_anlay_data_all();
		p=t;
			f_sendbytes();
	
}


/*8888888888888888888888888888888888888888888888888888888888888
8
8
8
8
8
8
88888888888888888888888888888888888888888888888888888888888888888888888
*/
	void ultrak()
{
	bit	temp0=0,temp1=0,temp2=0;
	bit	pp0=0,pp1=0,pp2=0;

	uchar	data	i=0;
	sub_sendbyte=0;
	ultrac_tell=0;
	//goto test;
	ACC=S0BUF;
	temp2=P;
	RI=0;
	if(P!=RB8)//pary
	return;
	*p=ACC;	
	p++;		
	if(p>=t+6)
	{
	
	goto  l1;
	}

	else
	{	
		return;
	}
	/*
test: 
	for(i=0;i<6;i++)
	t[i]=t[i+1];
	t[5]=SBUF;
	RI=0;
	if(t[0]!=0)
	return;
	*/
l1:	flag=t[0];
	temp0=pary0^pary3^pary6;
	flag=t[1];
	temp0=temp0^pary1^pary4^pary7;
	flag=t[2];
	temp0=temp0^pary2^pary5;
	flag=t[3];
	temp0=temp0^pary0^pary3^pary6;
	flag=t[4];
	temp0=temp0^pary1^pary4^pary7;
	flag=t[5];
	temp0=temp0^pary2;
	pp0=pary5;
	pp1=pary6;
	pp2=pary7;
	if(temp0!=pp0)
	{	
		goto	l2;
	}
	flag=t[0];
	temp0=pary1^pary4^pary7;
	flag=t[1];
	temp0=temp0^pary2^pary5;
	flag=t[2];
	temp0=temp0^pary0^pary3^pary6;
	flag=t[3];
	temp0=temp0^pary1^pary4^pary7;
	flag=t[4];
	temp0=temp0^pary2^pary5;
	flag=t[5];
	temp0=temp0^pary0^pary3;
	if(temp0!=pp1)
	{
	goto	l2;
	}
	flag=t[0];
	temp0=pary2^pary5;
	flag=t[1];
	temp0=temp0^pary0^pary3^pary6;
	flag=t[2];
	temp0=temp0^pary1^pary4^pary7;
	flag=t[3];
	temp0=temp0^pary2^pary5;
	flag=t[4];
	temp0=temp0^pary0^pary3^pary6;
	flag=t[5];
	temp0=temp0^pary1^pary4;
	if(temp0!=pp2)
	{
		goto	l2;
	}
	if(hard_address!=1023)
	if(hard_address!=0xff)
	if((t[1]+1)!=hard_address)
	{
		goto l2;
		return;
	}
	
	i=t[0];
	i=i&0xf0;
	switch(i)
	{
		case	0:  	//new;
		case	0x10: 	 //old
		case	0x50:	f_ultrakKKK();break;
		case	0x80:
		case	0xc0:	video_swiitcher();break;
		case	0xb0:  smartscan_receiver();break;
		default:	goto l2; break;
	}

	return;
l2:
	p=p-1;
//	p=t;
	for(i=0;i<6;i++)
	t[i]=t[i+1];
	return;
}

/*
8888888888888888888888888888888888888888888888888888888888
时间:2004-5-7 11:03
创建人:colorwolf
功能:实现对ultrak协议的功能分析,其间有新老协议,


修改时间:
888888888888888888888888888888888888888888888888888888888888*/

void f_ultrakKKK()
{
    uchar  xdata	 temp=0,i=0;
		if(t[2]==0x80)
	{
            if(t[3]>0x80)   //down
            {
				pe[4]=0x03;
				 pe[5]=t[2]%0X81;
				 goto  retu;
            }
            if(t[3]<0x80)   //up
            {
		 		 pe[4]=0x04;
				 pe[5]=t[2]%0X81;
				 goto  retu;
            }
    }
    if(t[3]==0x80)
	{
            if(t[2]>0x80)   //right
            {
			 	 pe[4]=0x02;
				 pe[5]=t[2]-0x80;
				 goto  retu;
            }
            if(t[2]<0x80)   //left
            {
				 pe[4]=0x01;
				 pe[5]=t[2];
				 goto  retu;
            }
    }

	if((t[2]!=0x80)&&(t[3]!=0x80))
	{
        if((t[2]<0x80)&&(t[3]<0x80))//left_up;
        {
				 pe[4]=0x05;
				 pe[5]=t[2]%0X80;
			     pe[6]=t[3]%0X80;
				goto  retu;
        }
            if((t[2]<0x80)&&(t[3]>0x80))//left_down;
        {
				 pe[4]=0x06;
				 pe[5]=t[2]%0X80;
				pe[6]=t[3]%0X80;
				goto  retu;

        }
            if((t[2]>0x80)&&(t[3]<0x80))//righ_up;
        {
				 pe[4]=0x07;
				 pe[5]=t[2]%0X80;
				pe[6]=t[3]%0X80;
				goto  retu;

        }
            if((t[2]>0x80)&&(t[3]>0x80))//right_down;
        {
				pe[4]=0x08;
				pe[5]=t[2]%0X80;
				pe[6]=t[3]%0X80;
				goto  retu;
        }
	}
    if(t[4]!=0x80)
	{
            if(t[4]>0x80)   //tele
            {
				 pe[4]=0x0e;
				 goto  retu;
            }
            if(t[4]<0x80)   //wide
            {
				 pe[4]=0x0d;
				 goto  retu;
            }
    }
 
    temp=t[5];
    temp=temp&0x06;
    switch(temp)
    {
        case    0x02:  pe[4]=0x0c;    goto  retu; //open;
        case    0x04:  pe[4]=0x0b;      goto  retu;//close;
        default:    break;
    }
    temp=t[5];
    temp=temp&0x18;
    switch(temp)
    {
        case    0x08:    pe[4]=0x0a;   goto  retu; break; //near;
        case    0x10:     pe[4]=0x09;   goto  retu;break;//far;
        default:    break;
    }
	 if((t[2]==0x80)&&(t[3]==0x80))
	 if((t[4]==0x80))
    {
        pe[4]=0;	goto  retu;

    }
	else
	{
		p=p-1;
		for(i=0;i<6;i++)
		t[i]=t[i+1];
		return;
	}	
retu:
	pe[5]=pe[5]+30;
	pe[6]=pe[6]+25;
	os_anlay_data_all();
	p=t;
	
}

⌨️ 快捷键说明

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