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

📄 carditfa.cpp.bak

📁 一个vxworks开发的snmp的程序
💻 BAK
📖 第 1 页 / 共 3 页
字号:
		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 + -