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

📄 fertsub.cpp

📁 cdma无线通信转发程序 用于电力调度数据的转发
💻 CPP
字号:
#include "stdafx.h"   
#include <sys/stat.h>
#include <io.h>

#include "mydata.h"
//-----------------------------------------------------------------------------
void LenRecQ (RXBUF *r, short *len)
{
	*len =  ((r->tailP - r->headP) & (RECLength-1));
}

//---------------------------------------------------------------------------
void GetRecVal (RXBUF *r ,uchar *val)
{
	*val = r->buf[r->headP];
	r->headP =( r->headP+1) % RECLength;
}

//----------------------------------------------------------------------------
void  LenTrnQ (TXBUF *tx, short *len)
{
	//*len = ((tx->tailP  - tx->headP  ) % (TRNLength-1));
	*len = (((tx->tailP - tx->headP)) & (TRNLength-1));
}

//----------------------------------------------------------------------------
uchar EnterTrnQ (TXBUF *tx, uchar val)
{   
	
    tx->buf[tx->tailP] = val;
    tx->tailP = (tx->tailP + 1) % TRNLength;
    return val;
}

//----------------------------------------------------------------------------
void ResetRecQ(RXBUF *r)
{
	r->headP = r->tailP;
}

//-----------------------------------------------------------------------------
void getdevpara(char * devName,DEVPARA * dev)
{
    if( devName == NULL || dev == NULL ) return;
    char * str;
	int k;
	if(dev->Type == 0)
	{
		str = strstr(devName,",");
		if(str == NULL) return;
		k = str - devName;
		strncpy(dev->devName,devName,k);
		
		str+=1;
		dev->Baud = atoi(str);
		
		str = strstr(str,",");
		if(str == NULL) return;
		str+=1;
		
		if(str[0] =='N' || str[0] =='n') dev->CheckBit = 0;
		else if(str[0] =='O' || str[0] =='o') dev->CheckBit = 1;
		else if(str[0] =='E' || str[0] =='e') dev->CheckBit = 2;
		
		str = strstr(str,",");
		if(str == NULL) return;
		str +=1;
		
		dev->DataBit = atoi(str);
		
		str = strstr(str,",");
		if(str == NULL) return;
		str+=1;
		
		dev->StopBit  = atoi(str);
	}
	else
	{
		strcpy(dev->devName,devName);
	}
}

//-----------------------------------------------------------------------------
uchar ReadChanPara()
{
	char	ParaFile[MAX_PATH],g_ParaFilePath[MAX_PATH],szBuf[LENNAME]; 

	if(!GetCurrentDirectory(MAX_PATH,g_ParaFilePath))
		strcpy(g_ParaFilePath,PATH);
	
	sprintf(ParaFile,"%s\\Para.ini",g_ParaFilePath);
	G_Channel.systype=GetPrivateProfileInt("系统参数", "系统类型",  0,ParaFile);
	G_Channel.chan_num  = GetPrivateProfileInt("系统参数", "通道个数",  0,ParaFile);
	if(G_Channel.chan_num> MAXCHANNUM) G_Channel.chan_num = MAXCHANNUM;

	G_Channel.DynamicIpFlag = GetPrivateProfileInt("系统参数","终端动态IP",0,ParaFile);

    G_Channel.recTrig   = GetPrivateProfileInt("系统参数", "数据阀值",  30,ParaFile);
	G_Channel.timeTrig  = GetPrivateProfileInt("系统参数", "时间阀值",  500,ParaFile);

	for(int i=0; i<G_Channel.chan_num; i++)
	{
		CString str;
		str.Format("通道%02d",i);
        GetPrivateProfileString(str, "通道名称", "",G_Channel.chan_data[i].chanName,LENNAME,ParaFile);
		G_Channel.chan_data[i].rchanpara.Type  = GetPrivateProfileInt(str, "接收通道类型",  -1,ParaFile);
		if(G_Channel.chan_data[i].rchanpara.Type <0 ) break; //通道不启用
		
		GetPrivateProfileString(str, "接收通道参数", "",szBuf,LENNAME,ParaFile);
		
		getdevpara(szBuf,&G_Channel.chan_data[i].rchanpara);
			
		G_Channel.chan_data[i].tchanpara.Type  = GetPrivateProfileInt(str, "发送通道类型",  -1,ParaFile);
		if(G_Channel.chan_data[i].tchanpara.Type <0 ) break; //通道不启用
		
		GetPrivateProfileString(str, "发送通道参数", "",szBuf,LENNAME,ParaFile);
		getdevpara(szBuf,&G_Channel.chan_data[i].tchanpara);
			
		

		G_Channel.chan_data[i].PrefixByteFlag  = GetPrivateProfileInt(str, "前缀字节",  0, ParaFile);
	}

	//拨号参数
	G_Channel.autoDial = GetPrivateProfileInt("拨号参数","自动拨号",1,ParaFile);
	GetPrivateProfileString("拨号参数","拨号名","",G_Channel.dialPara.DialName,LENNAME,ParaFile);
	GetPrivateProfileString("拨号参数","用户名","",G_Channel.dialPara.UserName,LENNAME,ParaFile);
	GetPrivateProfileString("拨号参数","密码", "", G_Channel.dialPara.Password,LENNAME,ParaFile);
	strcpy(G_Channel.dialData.RasEntry.szEntryName,G_Channel.dialPara.DialName);
	return 1;
}

//-----------------------------------------------------------------------------
uchar initData ()
{
	DEVPARA *dev;
	memset (&G_Channel, 0, sizeof(CHANMEM));//初始化数据结构*****************************
    for(int i=0; i<MAXCHANNUM; i++)
	{
		dev = &G_Channel.chan_data[i].rchanpara; 
	    dev->devId= (int)INVALID_HANDLE_VALUE;
		dev = &G_Channel.chan_data[i].tchanpara; 
	    dev->devId= (int)INVALID_HANDLE_VALUE;
		
		G_Channel.chan_data[i].rchanpara.SendCnt=0;
		G_Channel.chan_data[i].rchanpara.RecCnt=0;
		
		G_Channel.chan_data[i].tchanpara.SendCnt=0;
		G_Channel.chan_data[i].tchanpara.RecCnt=0;
	}
	
	return ReadChanPara();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -