📄 carditfa.cpp.bak
字号:
SetIns_Byte=SetIns_Byte | 0x01;
if(ISignal.CD==2)
ClrIns_Byte=ClrIns_Byte | 0x02;
if(ISignal.CD==1)
SetIns_Byte=SetIns_Byte | 0x02;
if(ISignal.ID==2)
ClrIns_Byte=ClrIns_Byte | 0x04;
if(ISignal.ID==1)
SetIns_Byte=SetIns_Byte | 0x04;
if(ISignal.RTS==2)
ClrIns_Byte=ClrIns_Byte | 0x80;
if(ISignal.RTS==1)
SetIns_Byte=SetIns_Byte | 0x80;
if(ISignal.DSR==2)
ClrIns_Byte=ClrIns_Byte | 0x08;
if(ISignal.DSR==1)
SetIns_Byte=SetIns_Byte | 0x08;
if(ISignal.DTR==2)
ClrIns_Byte=ClrIns_Byte | 0x10;
if(ISignal.DTR==1)
SetIns_Byte=SetIns_Byte | 0x10;
if(SetIns_Byte!=0)
{
// InTwoBytesIns(DOWN_TWOINS_ADD+2*TwoBytesIns_nums,0x84,SetIns_Byte2);
Ins_nums++;
}
if(ClrIns_Byte!=0)
{
// InTwoBytesIns(DOWN_TWOINS_ADD+2*TwoBytesIns_nums,0x85,ClrIns_Byte2);
Ins_nums++;
}
if(Ins_nums!=0)
{// InTwoBytesIns(DOWN_INS_NUMS_ADD,0,TwoBytesIns_nums);
memset(buff,SYNC_CODE,4);
// buff[0]=SYNC_CODE;
// buff[1]=SYNC_CODE;
// buff[2]=SYNC_CODE;
// buff[3]=SYNC_CODE;
buff[4]=INS_FLAG;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=Ins_nums;
memset(&buff[8],0,64);
// for(i=0;i<64;i++)
// buff[i+8]=0;
if(Ins_nums==2)
{
buff[73]=SetIns_Byte;
buff[72]=0x84;
buff[74]=0x85;
buff[75]=ClrIns_Byte;
buff_len=76;
}
else
{
if(SetIns_Byte!=0)
{
buff[72]=0x84;
buff[73]=SetIns_Byte;
}
else
{
buff[72]=0x85;
buff[73]=ClrIns_Byte;
}
buff_len=74;
}
Flag=writedata(buff,buff_len);
}
return Flag;
}
/************SetDTE()--设置模拟DTE方式******************
*******************************************************/
BOOL WINAPI SetDTE()
{
unsigned char buff[100];
int i = 0;
int buff_len=0;
BOOL Flag;
memset(buff,SYNC_CODE,4);
// buff[0]=SYNC_CODE;
// buff[1]=SYNC_CODE;
// buff[2]=SYNC_CODE;
// buff[3]=SYNC_CODE;
buff[4]=INS_FLAG;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x01;
memset(&buff[8],0,64);
// for(i=0;i<64;i++)
// buff[i+8]=0;
buff[72]=0x86;
buff[73]=0x01;
buff_len=74;
Flag=writedata(buff,buff_len);
return Flag;
}
/************SetInterface()--设置模拟DCE方式***************
***********************************************************/
BOOL WINAPI SetDCE()
{
unsigned char buff[100];
int i = 0;
int buff_len=0;
BOOL Flag;
memset(buff,SYNC_CODE,4);
// buff[0]=SYNC_CODE;
// buff[1]=SYNC_CODE;
// buff[2]=SYNC_CODE;
// buff[3]=SYNC_CODE;
buff[4]=INS_FLAG;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x01;
memset(&buff[8],0,64);
// for(i=0;i<64;i++)
// buff[i+8]=0;
buff[72]=0x87;
buff[73]=0x01;
buff_len=74;
Flag=writedata(buff,buff_len);
return Flag;
}
/************SetClock()--设置时钟类型******************
clock:时钟方式
***********************************************************/
BOOL WINAPI SetClock(int clock)
{
unsigned char buff[100];
int i = 0;
int buff_len=0;
BOOL Flag;
memset(buff,SYNC_CODE,4);
// buff[0]=SYNC_CODE;
// buff[1]=SYNC_CODE;
// buff[2]=SYNC_CODE;
// buff[3]=SYNC_CODE;
buff[4]=INS_FLAG;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x01;
memset(&buff[8],0,64);
// for(i=0;i<64;i++)
// buff[i+8]=0;
buff[72]=0x88;
buff[73]=clock;
buff_len=74;
Flag=writedata(buff,buff_len);
return Flag;
}
/*********************** 与HDLC协议相关 *********************/
/************SetFLAGShare(BOOL flag)--设置帧标志共享******
flag: TRUE: 共享使能,FALSE: 共享废除
***********************************************************/
BOOL WINAPI SetFLAGShare(BOOL flag)
{
unsigned char buff[100];
int i = 0;
int buff_len=0;
BOOL Flag;
memset(buff,SYNC_CODE,4);
// buff[0]=SYNC_CODE;
// buff[1]=SYNC_CODE;
// buff[2]=SYNC_CODE;
// buff[3]=SYNC_CODE;
buff[4]=INS_FLAG;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x01;
memset(&buff[8],0,64);
// for(i=0;i<64;i++)
// buff[i+8]=0;
buff[72]=0x89;
if(flag)
buff[73]=1;
else
buff[73]=0;
buff_len=74;
Flag=writedata(buff,buff_len);
return Flag;
}
/************SetIntSignal(int signal)--设置帧标志共享******
signal: 0:帧间隔传送全‘1’,1:传送帧标志FLAG
***********************************************************/
BOOL WINAPI SetIntSignal(int signal)
{
unsigned char buff[100];
int i = 0;
int buff_len=0;
BOOL Flag;
memset(buff,SYNC_CODE,4);
// buff[0]=SYNC_CODE;
// buff[1]=SYNC_CODE;
// buff[2]=SYNC_CODE;
// buff[3]=SYNC_CODE;
buff[4]=INS_FLAG;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x01;
memset(&buff[8],0,64);
// for(i=0;i<64;i++)
// buff[i+8]=0;
buff[72]=0x8A;
buff[73]=signal;
buff_len=74;
Flag=writedata(buff,buff_len);
return Flag;
}
/************SetEncodeFormat(int format)--设置码格式******
format: 0:正常,1:NRZI
***********************************************************/
BOOL WINAPI SetEncodeFormat(int format)
{
unsigned char buff[100];
int i = 0;
int buff_len=0;
BOOL Flag;
memset(buff,SYNC_CODE,4);
// buff[0]=SYNC_CODE;
// buff[1]=SYNC_CODE;
// buff[2]=SYNC_CODE;
// buff[3]=SYNC_CODE;
buff[4]=INS_FLAG;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x01;
memset(&buff[8],0,64);
// for(i=0;i<64;i++)
// buff[i+8]=0;
buff[72]=0x8B;
buff[73]=format;
buff_len=74;
Flag=writedata(buff,buff_len);
return Flag;
}
/************************************************************/
/*********************** 与UART、SYNC协议相关 *********************/
/************SetBitsLen(int bitslen)--设置数据位长******
bitslen:数据位长 6-8
***********************************************************/
BOOL WINAPI SetBitsLen(int bitslen)
{
unsigned char buff[100];
int i = 0;
int buff_len=0;
BOOL Flag;
memset(buff,SYNC_CODE,4);
// buff[0]=SYNC_CODE;
// buff[1]=SYNC_CODE;
// buff[2]=SYNC_CODE;
//buff[3]=SYNC_CODE;
buff[4]=INS_FLAG;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x01;
memset(&buff[8],0,64);
// for(i=0;i<64;i++)
// buff[i+8]=0;
buff[72]=0x8C;
buff[73]=bitslen;
buff_len=74;
Flag=writedata(buff,buff_len);
return Flag;
}
/************SetStopBits(int len)--设置停止位长******
len:停在位长 1,2
***********************************************************/
BOOL WINAPI SetStopBits(int len)
{
unsigned char buff[100];
int i = 0;
int buff_len=0;
BOOL Flag;
memset(buff,SYNC_CODE,4);
// buff[0]=SYNC_CODE;
// buff[1]=SYNC_CODE;
// buff[2]=SYNC_CODE;
// buff[3]=SYNC_CODE;
buff[4]=INS_FLAG;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x01;
memset(&buff[8],0,64);
// for(i=0;i<64;i++)
// buff[i+8]=0;
buff[72]=0x8d;
buff[73]=len;
buff_len=74;
Flag=writedata(buff,buff_len);
return Flag;
}
/************SetParity(int type)--设置校验位长******
type: 0-None,1-ODD,2-EVEN
***********************************************************/
BOOL WINAPI SetParity(int type)
{
unsigned char buff[100];
int i = 0;
int buff_len=0;
BOOL Flag;
memset(buff,SYNC_CODE,4);
// buff[0]=SYNC_CODE;
// buff[1]=SYNC_CODE;
// buff[2]=SYNC_CODE;
// buff[3]=SYNC_CODE;
buff[4]=INS_FLAG;
buff[5]=0x00;
buff[6]=0x00;
buff[7]=0x01;
memset(&buff[8],0,64);
// for(i=0;i<64;i++)
// buff[i+8]=0;
buff[72]=0x8E;
buff[73]=type;
buff_len=74;
Flag=writedata(buff,buff_len);
return Flag;
}
/************SetSpeed()--设置波特率******************
protocol: 协议类型,speed:速率 0:同步, 1:异步
***********************************************************/
BOOL WINAPI SetSpeed(int protocol,int speed)
{
int conv_val;
unsigned char buff[100];
int i = 0;
int buff_len=0;
BOOL Flag;
bool syncflag=TRUE;//同步标志 TRUE:同步 FALSE:异步
WORD Data;
if(speed==0) speed=1;
if(protocol==0||protocol==2)
syncflag=TRUE;
else
syncflag=FALSE;
if(syncflag)//sync
{
if(speed<=1952 || speed>2048000)
return -1;
if(speed>1952 && speed<10000)
{
conv_val=(int)((5*1000000)/speed-1)*2+1;
}
else
{
conv_val=(int)((20*1000000)/speed-1)*2;
}
}
else //asyn
{
if(speed<123 || speed>=333000)
return -1;
if(speed>=123 && speed<620)
{
conv_val=(int)((5*1000000)/(16*speed)-1)*2+1;
}
else
{
conv_val=(int)((20*1000000)/(16*speed)-1)*2;
}
if(speed>71428)conv_val+=2;//分频公式修正
}
Data=(WORD)(conv_val & 0x00FFFF);
memset(buff,SYNC_CODE,4);
// buff[0]=SYNC_CODE;
// buff[1]=SYNC_CODE;
// buff[2]=SYNC_CODE;
// buff[3]=SYNC_CODE;
buff[4]=INS_FLAG;
buff[5]=0x00;
buff[6]=0x01;
buff[7]=0x00;
buff[8]=0xB0;
buff[9]=0x02;
buff[11]=(Data & 0x00FF);
buff[10]=(Data>>8) & 0x00FF;
memset(&buff[12],0,60);
// for(i=12;i<72;i++)
// buff[i]=0;
buff_len=72;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -