📄 mmm.c
字号:
* *
* Description: *
****************************************************************************/
void cmd_execution(void)
{ unsigned char len ; //Status ;//, adr ;
//unsigned int e;
//unsigned char idata size , tt[2];
//WatchDog();
len = SerBuffer[2] ;
SerBuffer[2] = 0 ;
switch ( SerBuffer[1] )
{
case 0x80: //Write time
SerBuffer[1] = 0;
SerBuffer[2] = 0;
break;
case 0x81: //green LED
if ( SerBuffer[3] == 1) {LED_GREEN = 1;}
else if( SerBuffer[3] == 0) { LED_GREEN = 0;};
SerBuffer[1] = 0;
SerBuffer[2] = 0;
break;
case 0x82: //red RED
if ( SerBuffer[3] == 1) {LED_RED = 1;}
else if( SerBuffer[3] == 0) { LED_RED = 0;};
SerBuffer[1] = 0;
SerBuffer[2] = 0;
break;
case 0x83: //Transfer Record
// Status = TransferRecord(SerBuffer[3],SerBuffer[4]);
// SerBuffer[1] = Status;
recordint.chrX[1]=SerBuffer[4];
recordint.chrX[0]=SerBuffer[5];
TransferRecord(SerBuffer[3],recordint.intX);
SerBuffer[1] =0;
SerBuffer[2] =16;
break;
case 0x85: //Config FeeRate
SerBuffer[1] = 0;
SerBuffer[2] = 0;
break;
case 0x86: //return ocuppy or vacance
SerBuffer[2] = 0;
break;
case 0x87: //Set Meter Number
//MeterNum.chrX[3] = SerBuffer[3];
// MeterNum.chrX[2] = SerBuffer[4];
// MeterNum.chrX[1] = SerBuffer[5];
// MeterNum.chrX[0] = SerBuffer[6];
SetPosNum(&SerBuffer[3]); //add
SerBuffer[1] = 0;
SerBuffer[2] = 0;
break;
case 0x90:
SerBuffer[1] = 0;
SerBuffer[2] = 0;
break;
case 0x91:
SerBuffer[1] = 0;
SerBuffer[2] = 0;
break;
case 0x92:
SerBuffer[1] = 0;
SerBuffer[2] = 0;
break;
case 0x93:
SerBuffer[1] = 0;
SerBuffer[2] = 0;
break;
default:
SerBuffer[1] = 250; //command error
SerBuffer[2] = 0;
break;
};
}
//**************************************************************************
void main(void)
{
unsigned int xx=0;
unsigned char idata i=0,j;
unsigned long idata yyy=0;
TX_EN=0;
Test_led=0;
Delay100ms(1);
Test_led=1;
TX_EN=1;
init_com();
InitREG();
UartInit();
Delay100ms(1);
Comm_Off();
PWR_UP=1;
Watch_dog();
EA=1;
Init_X25045(0x00);
ByteWrite_Check (22,0X34);
if( ByteRead_Check (22)==0x34)//测试25045
{ Test_led=!Test_led;
Delay100ms(10);
Test_led=!Test_led;
}
if((ByteRead_Check(20)==0x00)||(ByteRead_Check(20)==0xff))ADDR=0XD2;
else
ADDR=ByteRead_Check(20);
// ADDR=0xd2;
if(ADDR%2)
{
CS=0;
}
else
{
CS=1;
}
for(i=0;i<4;i++)//clear
{
for(j=0;j<16;j++)
RemainRec[i][j]=0;
}
En485=0;
while(1)
{
Watch_dog();
if (Cmdok) //通讯
{
Cmdok = FALSE;
En485=1;
TI = 1;
}
/* for(i=1;i<150;i++)
{
Watch_dog();
if (Cmdok) //通讯
{
Cmdok = FALSE;
RecvReady = FALSE;
SendReady = FALSE;
cmd_execution();
SendReady = TRUE ; //发起始字
TI = 1;
Test_led=!Test_led;
Watch_dog();
}
Watch_dog();
ttt=Find(i);
Watch_dog();
if(ttt==0)
{
ttt=Find(i);
if(ttt)
{
Watch_dog();
Card_id[i]=4;//循环监测的次数
if((i%4)==0)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x01;
uuu=uuu&0xfd;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x02;
uuu=uuu&0xfe;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
if((i%4)==1)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x04;
uuu=uuu&0xf7;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x08;
uuu=uuu&0xfb;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
if((i%4)==2)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x10;
uuu=uuu&0xdf;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x20;
uuu=uuu&0xef;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
if((i%4)==3)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x40;
uuu=uuu&0x7f;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x80;
uuu=uuu&0xbf;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
Test_led=!Test_led;//在区域
}
else //不再区域
{
Watch_dog();
if((i%4)==0)
{
uuu=RemainRec[i/64][(i%64)/4];
if(uuu&0x03) //如果原来就存在
{
ttt=Find(i); //再次查找
if(ttt==0)
{
Card_id[i]--;
if( Card_id[i]==0)
{
uuu=uuu&0xfc;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
else //原来就不在
{
if(!Waring) //没有报警信息
{
uuu=uuu&0xfc; //清零
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
if((i%4)==1)
{
uuu=RemainRec[i/64][(i%64)/4];
if(uuu&0x0c)
{
ttt=Find(i); //再次查找
if(ttt==0)
{ Card_id[i]--;
if( Card_id[i]==0)
{
uuu=uuu&0xf3;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
else
{
if(!Waring) //没有报警信息
{
uuu=uuu&0xf3;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
if((i%4)==2)
{
Watch_dog();
uuu=RemainRec[i/64][(i%64)/4];
if(uuu&0x30)
{
ttt=Find(i); //再次查找
if(ttt==0)
{ Card_id[i]--;
if( Card_id[i]==0)
{
uuu=uuu&0xcf;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
else
{
if(!Waring) //没有报警信息
{
uuu=uuu&0xcf;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
if((i%4)==3)
{
Watch_dog();
uuu=RemainRec[i/64][(i%64)/4];
if(uuu&0xc0)
{
ttt=Find(i); //再次查找
if(ttt==0)
{ Card_id[i]--;
if( Card_id[i]==0)
{
uuu=uuu&0x3f;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
else
{
if(!Waring) //没有报警信息
{
uuu=uuu&0x3f;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
}
}
}
else
{
Watch_dog();
Card_id[i]=4;//循环监测的次数
if((i%4)==0)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x01;
uuu=uuu&0xfd;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x02;
uuu=uuu&0xfe;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
if((i%4)==1)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x04;
uuu=uuu&0xf7;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x08;
uuu=uuu&0xfb;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
if((i%4)==2)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x10;
uuu=uuu&0xdf;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x20;
uuu=uuu&0xef;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
if((i%4)==3)
{
if(ttt==0x01)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x40;
uuu=uuu&0x7f;
RemainRec[i/64][(i%64)/4]=uuu;
}
if(ttt==0x02)
{
uuu=RemainRec[i/64][(i%64)/4];
uuu=uuu|0x80;
uuu=uuu&0xbf;
RemainRec[i/64][(i%64)/4]=uuu;
}
}
Test_led=!Test_led;
Watch_dog();
}
}*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -