📄 gprsproc.cpp
字号:
DCportnum[1]=0;
if( ReadIni.GetField( FileName, "[Info]", "DCportnum2", 0, DCportnum[2]) )
DCportnum[2]=0;
if( ReadIni.GetField( FileName, "[Info]", "DCportnum3", 0, DCportnum[3]) )
DCportnum[3]=0;
if( ReadIni.GetField( FileName, "[Info]", "TalkTime", 0, TalkTime) )
TalkTime=11000; //10 minute
if( ReadIni.GetField( FileName, "[Info]", "PassWord", 0, PasswordBuff ) )
strcpy( PasswordBuff, "123456" );
/////////////////////////////////////////
if( ReadIni.GetField( FileName, "[DTUAddr]", "DTUAddress0", 0, DTUAddress[0] ) )
DTUAddress[0]=0x01;
if( ReadIni.GetField( FileName, "[DTUAddr]", "DTUAddress1", 0, DTUAddress[1] ) )
DTUAddress[1]=0x00;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfDWU", 0, DataWakeUp[0] ) )
DataWakeUp[0]= 0;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfTWU", 0, TimingWakeUp[0] ) )
TimingWakeUp[0]= 8;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfIvTWU", 0, IvtimeWakeUp[0] ) )
IvtimeWakeUp[0] = 15;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfNumofThr", 0, Num_of_thr[0] ) )
Num_of_thr[0] = 2;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfIvtime", 0, Ivtime[0] ) )
Ivtime[0] = 5;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU0thr_unit", 0, ThrWakeUp[0][0].thr_unit ) )
ThrWakeUp[0][0].thr_unit = 5;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU0thr_value", 0, ThrWakeUp[0][0].thr_value ) )
ThrWakeUp[0][0].thr_value = 50;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU1thr_unit", 0, ThrWakeUp[0][1].thr_unit ) )
ThrWakeUp[0][1].thr_unit = 10;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU1thr_value", 0, ThrWakeUp[0][1].thr_value ) )
ThrWakeUp[0][1].thr_value = 100;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU2thr_unit", 0, ThrWakeUp[0][2].thr_unit ) )
ThrWakeUp[0][2].thr_unit = 15;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU2thr_value", 0, ThrWakeUp[0][2].thr_value ) )
ThrWakeUp[0][2].thr_value = 150;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU3thr_unit", 0, ThrWakeUp[0][3].thr_unit ) )
ThrWakeUp[0][3].thr_unit = 30;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU3thr_value", 0, ThrWakeUp[0][3].thr_value ) )
ThrWakeUp[0][3].thr_value = 300;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU4thr_unit", 0, ThrWakeUp[0][4].thr_unit ) )
ThrWakeUp[0][4].thr_unit = 60;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU4thr_value", 0, ThrWakeUp[0][4].thr_value ) )
ThrWakeUp[0][4].thr_value = 600;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU5thr_unit", 0, ThrWakeUp[0][5].thr_unit ) )
ThrWakeUp[0][5].thr_unit = 120;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU5thr_value", 0, ThrWakeUp[0][5].thr_value ) )
ThrWakeUp[0][5].thr_value = 1200;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU6thr_unit", 0, ThrWakeUp[0][6].thr_unit ) )
ThrWakeUp[0][6].thr_unit = 180;
if( ReadIni.GetField( FileName, "[Rainfall]", "RfThrWU6thr_value", 0, ThrWakeUp[0][6].thr_value ) )
ThrWakeUp[0][6].thr_value = 1800;
if( ReadIni.GetField( FileName, "[WaterLevel]", "InitWaterLevel", 0, InitWaterLevel ) )
strcpy( InitWaterLevel, "1000" );
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLDWU", 0, DataWakeUp[1] ) )
DataWakeUp[1]= 0; if( ReadIni.GetField( FileName, "[WaterLevel]", "WLTWU", 0, TimingWakeUp[1] ) )
TimingWakeUp[1]= 8;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLIvTWU", 0, IvtimeWakeUp[1] ) )
IvtimeWakeUp[1] = 15;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLNumofThr", 0, Num_of_thr[1] ) )
Num_of_thr[1] = 2;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLIvtime", 0, Ivtime[1] ) )
Ivtime[1] = 5;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU0thr_unit", 0, ThrWakeUp[1][0].thr_unit ) )
ThrWakeUp[1][0].thr_unit = 0;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU0thr_value", 0, ThrWakeUp[1][0].thr_value ) )
ThrWakeUp[1][0].thr_value = 100;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU1thr_unit", 0, ThrWakeUp[1][1].thr_unit ) )
ThrWakeUp[1][1].thr_unit = 0;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU1thr_value", 0, ThrWakeUp[1][1].thr_value ) )
ThrWakeUp[1][1].thr_value = 150;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU2thr_unit", 0, ThrWakeUp[1][2].thr_unit ) )
ThrWakeUp[1][2].thr_unit = 0;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU2thr_value", 0, ThrWakeUp[1][2].thr_value ) )
ThrWakeUp[1][2].thr_value = 200;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU3thr_unit", 0, ThrWakeUp[1][3].thr_unit ) )
ThrWakeUp[1][3].thr_unit = 0;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU3thr_value", 0, ThrWakeUp[1][3].thr_value ) )
ThrWakeUp[1][3].thr_value = 250;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU4thr_unit", 0, ThrWakeUp[1][4].thr_unit ) )
ThrWakeUp[1][4].thr_unit = 0;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU4thr_value", 0, ThrWakeUp[1][4].thr_value ) )
ThrWakeUp[1][4].thr_value = 300;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU5thr_unit", 0, ThrWakeUp[1][5].thr_unit ) )
ThrWakeUp[1][5].thr_unit = 0;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU5thr_value", 0, ThrWakeUp[1][5].thr_value ) )
ThrWakeUp[1][5].thr_value = 350;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU6thr_unit", 0, ThrWakeUp[1][6].thr_unit ) )
ThrWakeUp[1][6].thr_unit = 40;
if( ReadIni.GetField( FileName, "[WaterLevel]", "WLThrWU6thr_value", 0, ThrWakeUp[1][6].thr_value ) )
ThrWakeUp[1][6].thr_value = 400;
return 0;
}
///////////////////////////////////add by wuhuan 2006.03.03
/*int WriteIniPara( char *FileName, char *Group, char *IPStr, int PortNum )
{
ReadIni.WriteField( FileName, Group, "RemoteIP", IPStr );
ReadIni.WriteField( FileName, Group, "RemotePort", PortNum );
return 0;
}*/
// return = 0: data is unavailable
// > 0: data is available, and in pDat
/*int GetDataFromCOM( int PortNum, char* pDat, int len )
{
int i, i1;
for( i=0; i<len; )
{
NB_Delay(1);
i1 = GetInputData( PortNum );
if( i1!=-1 )
{
pDat[i] = (char)i1;
if(GetKPState==LOCK) printf("%x", pDat[i]);
i++;
if(i>8)
{
if(pDat[pDat[6]+8]==0x16) return i;
}
}
else break;
}
return i;
}
int GetDataFromCOM( int PortNum, unsigned char* pDat, int maxlen )
{
static int i;
int j, i1;
int datalen;
unsigned long StartTick, CurrentTick;
//StartTick = clock( );
for( i=0; i<maxlen; )
{
i1 = GetInputData( PortNum );
if( i1!=-1 )
{
StartTick = clock( );
pDat[i] = (unsigned char)i1;
i++;
if((i=1)&&(pDat[0]!=0x68))
{
//pDat[0]='\0';
i=0;
return 0;
}
if(GetKPState==LOCK) printf("%x", pDat[i]);
if((i>4)&&(pDat[4]!=0x68))
{
//for(j=0; j<5; j++)
//pDat[j]='\0';
i=0;
return 0;
}
if(i==7)
{
datalen = (int)pDat[6];
if(datalen>(maxlen-8))
{
i=0;
return 0;
}
return 0;
}
if(i>8)
{
if(i>datalen+8)
{
if(pDat[pDat[6]+8]==0x16) return i;
else
{
//for(j=0; j<pDat[6]+9; j++)
//pDat[j]='\0';
return 0;
}
}
}
}
else
{
if(i>0)
{
CurrentTick = clock( );
if( CurrentTick >= (StartTick+1)) return 0;
}
else break;
}
}
return i;
}*/
int GetDataFromCOM( int PortNum, unsigned char* pDat, int maxlen )
{
static int i=0;
static unsigned long StartTick;
int j, i1;
int datalen;
unsigned long CurrentTick;
i1 = GetInputData( PortNum );
if(i1==-1 )
{
if (i>0)
{
CurrentTick = clock( );
if( CurrentTick > (StartTick+1)) ///////55ms越限
i=0;
}
return 0;
}
StartTick = clock( );
i++;
pDat[i-1] = (unsigned char)i1;
if((i==1)&&(pDat[0]!=0x68)) i=0;
if((i==5)&&(pDat[4]!=0x68)) i=0;
if(i==7)
{
datalen = (int)pDat[6];
if(datalen>(maxlen-8))
i=0;
}
if(i>8)
{
datalen = (int)pDat[6];
if(i==(datalen+9))
{
if(pDat[i-1]!=0x16) i=0;
else
{
/*if(GetKPState==LOCK)
{
for (j=0;j<i;j++)
printf("%x", pDat[j]);
}*/
j=i;
i=0;
return j;
}
}
}
return 0;
}
int SendDataToCOM( int PortNum, char* pDat, int len )
{
int i;
for( i=0; i<len; i++ )
{
PutOutputData( PortNum, pDat[i] );
}
StartSend( PortNum );// 无此句则需调用相应的函数取端口上的数据;
return 0;
}
void GPRSPowerOnCheck( )
{
if( !GPRSPowerIsOn( ) ) //检查GPRS是否启动
{
DisableIGT( );
NB_Delay( 100 );
EnableIGT( );
NB_Delay( 200 );
DisableIGT( );
NB_Delay( 2000 );
}
}
int ReInitUART(int ComNum,int BaudNum,int Parity )
{
if( TCPManager[0]->IsTimeout( )||TCPManager[1]->IsTimeout( )) //超时以后才重新初始化串口
{
InitUART( ComNum, BaudNum ,Parity );
InstallISR( ComNum );
return 1;
}
return 0;
}
void SaveSvrAddr( )
{
SERVER_ID *CurrentServer_ID;
CurrentServer_ID=TCPManager[0]->GetServer_ID( );
ReadIni.WriteField( "Config.ini", "[CONFIG1]", "RemoteIP", CurrentServer_ID->IPStr );
ReadIni.WriteField( "Config.ini", "[CONFIG1]", "RemotePort", CurrentServer_ID->Port );
//clrscr( );
printf("RemoteIP1:%s\n", CurrentServer_ID->IPStr);
printf("RemotePort1:%d\n", CurrentServer_ID->Port);
// NB_Delay(2000);
CurrentServer_ID=TCPManager[1]->GetServer_ID( );
ReadIni.WriteField( "Config.ini", "[CONFIG2]", "RemoteIP", CurrentServer_ID->IPStr );
ReadIni.WriteField( "Config.ini", "[CONFIG2]", "RemotePort", CurrentServer_ID->Port );
printf("RemoteIP2:%s\n", CurrentServer_ID->IPStr);
printf("RemotePort2:%d\n", CurrentServer_ID->Port);
// NB_Delay(2000);
}
void SaveNewPassword( )
{
ReadIni.WriteField( "Config.ini", "[Info]", "PassWord", PasswordBuff );
printf("PassWord:%s\n", PasswordBuff );
}
void SaveNetPara( )
{
ReadIni.WriteField( "Config.ini", "[CONFIG1]", "HeartBeat", HeartBeat );
ReadIni.WriteField( "Config.ini", "[CONFIG2]", "HeartBeat", HeartBeat );
ReadIni.WriteField( "Config.ini", "[Info]", "TalkTime", TalkTime );
printf("HeartBeat:%d\n", HeartBeat );
printf("TalkTime:%d\n", TalkTime );
// NB_Delay(2000);
}
void SaveInitWaterLevel( )
{
ReadIni.WriteField( "Config.ini", "[WaterLevel]", "InitWaterLevel", InitWaterLevel );
printf("InitWaterLevel:%s\n", InitWaterLevel );
// NB_Delay(2000);
}
void SaveAllNewConfigInfo( )
{
SaveSvrAddr( );
SaveNewPassword( );
SaveNetPara( );
SaveInitWaterLevel( );
}
void CloseAllTCPConn( )
{
Send_TermTCPConnInfo_to_Center( );
TCPManager[0]->Close( );
TCPManager[1]->Close( );
ForcePPPLinkDown( );
TermPPPNet( );
TCPManager[0]->SetTimeoutCnt( 300 ); //设置多长时间后再次初始化串口
TCPManager[1]->SetTimeoutCnt( 300 );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -