📄 mfypps.c
字号:
#include <intrins.h>
#include <string.h>
#include "Hardware.h"
#include "newcard.h"
#include "cardhead.h"
extern void W_DOG(void);
extern void SendResponse(uchar status,uchar len,uchar *datapr);
extern uchar xdata ComBuffer[MAXLEN];
extern uint F;
extern uchar idata D;
extern uchar idata Baudrate;
extern uchar xdata slot1_baud;
/**************************************************************************************/
void ModifyBaudrate12(void ) //2004.7.7 pps comand /
{
uchar LEN1,LEN2,Status,i,j;
uchar xdata buf[10],buf2[10];
W_DOG();
if(ComBuffer[3]==1) //slot no.
{
switch (slot1_baud)
{
case 0x00: //for slot NO.1 9600pbs
LEN1=ComBuffer[1]-2;
LEN2=LEN1+1;
memset(buf,0xff,16);
memcpy(buf,ComBuffer+4,LEN1);
buf[LEN1]=Calc_xor_pps(LEN1,buf);
memset(buf2,0x00,16);
for(i=0;i<LEN1+1;i++)
Status=I_send4(buf[i]);
for(i=0;i<LEN2;i++)
{
Status=I_receive4(buf2+i);
if(Status) break;
}
break;
case 0x01: //for slot NO.1 38400pbs
LEN1=ComBuffer[1]-2;
LEN2=LEN1+1;
memset(buf,0xff,16);
memcpy(buf,ComBuffer+4,LEN1);
buf[LEN1]=Calc_xor_pps(LEN1,buf);
memset(buf2,0x00,16);
for(i=0;i<LEN1+1;i++)
Status=I_send1(buf[i]);
for(i=0;i<LEN2;i++)
{
Status=I_receive1(buf2+i);
if(Status) break;
}
break;
case 0x02: //for slot NO.1 56000pbs
LEN1=ComBuffer[1]-2;
LEN2=LEN1+1;
memset(buf,0xff,16);
memcpy(buf,ComBuffer+4,LEN1);
buf[LEN1]=Calc_xor_pps(LEN1,buf);
memset(buf2,0x00,16);
for(i=0;i<LEN1+1;i++)
Status=I_1send56k(buf[i]);
for(i=0;i<LEN2;i++)
{
Status=I_1Rda56k(buf2+i);
if(Status) break;
}
break;
default:
memset(buf2,0xff,10);
}
if(memcmp(buf,buf2,3)==0x00)
{
if(i<3) // for the FFOOFF default 9600pbs
{
slot1_baud=0x01;
j=slot1_baud;
SendResponse(j,1+i,buf2);
} //
else
{
F=Calculate_F(buf2[2]);
D=Calculate_D(buf2[2]);
slot1_baud=Calculate_Baud(F,D);
j=slot1_baud+1;
SendResponse(j,1+i,buf2);
}
}
else SendResponse(0x00,1+i,buf2);
}
else SendMsError();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -