📄 abcctv.c
字号:
#include "extern.h"
void os_abcctv_recieve()
{
uchar xdata i;
for(i=1;i<10;i++)
{
t[i-1]=t[i];
}
t[9]=S0BUF;
RI=0;
if((t[9]==0x55)&&(t[0]==0xa0))
{
OS_Abcctv_Anlays();
}
else
{
return;
}
}
void OS_Abcctv_Anlays()
{
uchar xdata i=0;
i=OS_Address_Analys();
if(i==0)
{
sendtwo=0;
return;
}
if(t[1]==0)
{
return;
}
if((t[1]&0xf0)==0xf0)
{
return;
}
i=t[2];
i=t[2]&0x04;
if(i==0x04)
{
OS_AB_Left_Right_Analays();
}
else
{
if((t[3]==0)&&(t[4]==0))
{
switch(t[1]&0xfe)
{
case 0x82:pe[4]=0x0c;break;//open
case 0x88:pe[4]=0x0b;break;//close
case 0x8a:pe[4]=0x0a;break;//near
case 0x84:pe[4]=0x09;break;//far
case 0x8c:pe[4]=0x0e;break;//wide
case 0x86:pe[4]=0x0d;break;//tele
case 0x92:pe[4]=0x02;pe[5]=0X80;break; //right
case 0x8e:pe[4]=0x01;pe[5]=0X80;break; //left
case 0x80:pe[4]=0x03;pe[5]=0x60;break;
case 0x90:pe[4]=0x04;pe[5]=0x60;break;//up
case 0x9a: pe[4]=0x37;pe[5]=99;break; //2+on goto menu
case 0x9e: pe[4]=0x37;pe[5]=98;break;// 3+on end menu;
default:
switch(t[1]&0xf0)
{
// case 0x80: pe[4]=0x03;pe[5]=(t[1]&0x07)*8+10;break; //down
// case 0x90: pe[4]=0x04;pe[5]=(t[1]&0x07)*8+10;break; //up
case 0xb0: pe[4]=0x37;pe[5]=t[1]&0x0f;pe[5]=pe[5]/2+1;break; //set on
case 0xa0: pe[4]=0x39;pe[5]=t[1]&0x0f;pe[5]=pe[5]/2+1;break; //set ent
default :break;
}
}
}
else
{
OS_A_Need_ack();//
//用来做大于10的设置预制点。调用预置点
//2003-12-5 13:53 其实需要再次确认.
}
}
os_anlay_data_all();
}
uchar OS_Address_Analys()
{
uint xdata x=0;
uchar xdata a=0,b=0,c=0;
a=t[1];
b=t[2];
a=a&0x01;
b=b/8;
b=b+1;
c=a*32+b;
x=(uint)c;
if(hard_address!=1023)
if(x!=hard_address)
if(x!=64)
{
sendtwo=0;
pe[4]=0;
return 0;
}
else
return 1;
}
void OS_AB_Left_Right_Analays()
{
uchar xdata temp;
temp=t[1];
temp=temp&0x0f;
temp=temp*7+1;
pe[5]=temp;
switch(t[1]&0xf0)
{
case 0xa0:pe[4]=0x01;break;
case 0xb0:pe[4]=0x02;break;
case 0x8e: if(t[5]==0x4f) {pe[4]=0x39,pe[5]=t[6]/4+9;}break;
case 0x00:pe[4]=0x00;break;
default:break;
}
if(t[1]==0x8e)
if(t[5]==0x4f)
{
switch(t[6])
{
case 0xe2:pe[4]=0x37,pe[5]=80;break;//65+shot
case 0xe6:pe[4]=0x37,pe[5]=79;break;//66+shot
case 0xea:pe[4]=0x37,pe[5]=78;break;//67+shot
case 0xee:pe[4]=0x37,pe[5]=77;break;//68+shot
case 0xf2:pe[4]=0x37,pe[5]=65;break;//69+shot
case 0xf6:pe[4]=0x37,pe[5]=66;break;//70+shot
case 0xfa:pe[4]=0x37,pe[5]=67;break;//71+shot
case 0xfe:pe[4]=0x37,pe[5]=68;break;//72+shot
default: pe[4]=0x39,pe[5]=t[6]/4+9;break;
}
}
}
void OS_A_Need_ack()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -