📄 fertsub.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 + -