📄 taskproc.cpp
字号:
else if (Rftimingwakeupflg) TrigType=0x32;
else if (RfIvtwakeupflg) TrigType=0x33;
else if (Rfalarmflg) TrigType=0x34;
else TrigType=0x35;
if (ReadRainfallData( "Rain.dat",Center )!=0)
{
Rfdwkzbflg=0;
Rftimingwakeupflg=0;
RfIvtwakeupflg=0;
Rfalarmflg=0;
}
else
{
Rainfall = OutRainfallregdata.rainfall;
RGatherIvtime=OutRainfallregdata.type_of_Ivtime;
if (OutRainfallregdata.datatype=='M')
{
datatype=33;
}
else if (OutRainfallregdata.datatype=='Z')
{
datatype=0x01;
}
else if (OutRainfallregdata.datatype=='J')
{
TrigType=0x99;
datatype=0x01;
}
i = Up_Positive_transfer_data( Rainfall, datatype, TrigType, Center, RGatherIvtime );
if (i<0&&(i!=-999)) ModifyRainHead("Rain.dat", 1,0 ,Center);
}
///////////////////////////////////////////////////////
if(Wlzcflg==1) //正常应答召测水位
{
Wlzcflg=0;
Up_passive_transfer_data( CurrentWaterLevel, 0x02, WhoSendZcwlCMD );
return 8;
}
////////////////////////////////////上报水位
if (Wldwkzbflg) TrigType=0x31;
else if (Wltimingwakeupflg) TrigType=0x32;
else if (WlIvtwakeupflg) TrigType=0x33;
else if (Wlalarmflg) TrigType=0x34;
else TrigType=0x35;
if (ReadWaterLevelData( "water.dat",Center )!=0)
{
Wldwkzbflg=0;
Wltimingwakeupflg=0;
WlIvtwakeupflg=0;
Wlalarmflg=0;
}
else
{
WaterLevel = OutWaterLevelregdata.water_level;
if (OutWaterLevelregdata.datatype=='M')
{
datatype=34;
}
else if (OutWaterLevelregdata.datatype=='Z')
{
datatype=2;
}
else if (OutWaterLevelregdata.datatype=='J')
{
TrigType=0x99;
datatype=2;
}
i = Up_Positive_transfer_data( WaterLevel, datatype, TrigType, Center, 0 );
if (i<0&&(i!=-999)) ModifyWaterHead("water.dat", 1, 0 ,Center);
}
//////////////////////////////////////////////////////
if(Pzrfscflg==1) //降雨量发送条件配置成功
{
Pzrfscflg=0;
ConfigSendCondition( NewRfScCmdDataBuf ); //本地保存雨量发送条件
Save_SendCondition( 0x01 ); //保存雨量发送条件到配置文件中
Ack_Right_ConfigSendCondition( 0x01, WhoSendPzrfscCMD ); //正常应答配置雨量发送条件
if(WhoSendPzrfscCMD==APPSERVER1)
{
i = Ack_Right_ReadSendCondition( 0x01, APPSERVER2 ); //通知第二个中心,发送条件有变化
if(i<0) ParaFromCenter2.rfscpara = 0;
}
else
{
i = Ack_Right_ReadSendCondition( 0x01, APPSERVER1 ); //通知第一个中心,发送条件有变化
if(i<0) ParaFromCenter1.rfscpara = 0;
}
return 6;
}
//////////////////////////////////////////////////////
if(Pzrfivtflg==1) //降雨量采集间隔时间配置成功
{
Pzrfivtflg=0;
Write_interval_time_of_gatherdata( NewRfIvtCmdDataBuf ); //本地保存雨量采集间隔时间
Save_GDIvtime( 0x01 ); //保存降雨量采集间隔时间到配置文件中
Ack_Right_Write_interval_time_of_gatherdata( 0x01, WhoSendPzrfivtCMD ); //正常应答配置降雨量数据采集的间隔时间
if(WhoSendPzrfivtCMD==APPSERVER1)
{
i = Ack_Right_Read_interval_time_of_gatherdata(0x01, APPSERVER2 ); //通知第二个中心,发送条件有变化
if(i<0) ParaFromCenter2.rfivtpara = 0;
//if(GetKPState==LOCK) printf("i=%d\n",i);
}
else
{
i = Ack_Right_Read_interval_time_of_gatherdata(0x01, APPSERVER1 ); //通知第一个中心,发送条件有变化
if(i<0) ParaFromCenter1.rfivtpara = 0;
//if(GetKPState==LOCK) printf("i=%d\n",i);
}
return 7;
}
/////////////////////////////////////////////////以下是水位处理函数
if(Pzwlscflg==1) //水位发送条件配置成功
{
Pzwlscflg=0;
ConfigSendCondition( NewWlScCmdDataBuf ); //本地保存水位发送条件
Save_SendCondition( 0x02 ); //保存水位发送条件到配置文件
Ack_Right_ConfigSendCondition( 0x02, WhoSendPzwlscCMD ); //正常应答配置水位发送条件
if(WhoSendPzwlscCMD==APPSERVER1)
{
i = Ack_Right_ReadSendCondition( 0x02, APPSERVER2 ); //通知第二个中心,发送条件有变化
if(i<0) ParaFromCenter2.wlscpara = 0;
}
else
{
Ack_Right_ReadSendCondition( 0x02, APPSERVER1 ); //通知第一个中心,发送条件有变化
if(i<0) ParaFromCenter1.wlscpara = 0;
}
return 13;
}
if(Pzwlivtflg==1) //水位采集间隔时间配置成功
{
Pzwlivtflg=0;
Write_interval_time_of_gatherdata( NewWlIvtCmdDataBuf ); //本地保存水位采集间隔时间
Save_GDIvtime( 0x02 ); //保存水位采集间隔时间到配置文件中
Ack_Right_Write_interval_time_of_gatherdata( 0x02, WhoSendPzwlivtCMD ); //正常应答配置水位数据采集的间隔时间
if(WhoSendPzwlivtCMD==APPSERVER1)
{
i = Ack_Right_Read_interval_time_of_gatherdata(0x02, APPSERVER2 ); //通知第二个中心,发送条件有变化
if(i<0) ParaFromCenter2.wlivtpara = 0;
}
else
{
i = Ack_Right_Read_interval_time_of_gatherdata(0x02, APPSERVER1 ); //通知第一个中心,发送条件有变化
if(i<0) ParaFromCenter1.wlivtpara = 0;
}
return 14;
}
if((ReportRFTimeoutFlg%4)==1) //采集器上报降雨量超时报警
{
ReportRFTimeoutFlg++;
GetSystemTime( AlarmTimeBuff );
FunctionAlarm( 0x08, 0x89 );
return 16;
}
if((ReportWLTimeoutFlg%4)==1) //采集器上报水位超时报警
{
ReportWLTimeoutFlg++;
GetSystemTime( AlarmTimeBuff );
FunctionAlarm( 0x09, 0x89 );
return 17;
}
if(Wlzcflg==-1) //正常应答召测水位超时
{
Wlzcflg=0;
Ack_Wrong_passive_transfer_data( 0x02, WhoSendZcwlCMD ); //异常应答召测水位数据
FunctionAlarm( 0x0B, 0x89 );
return 19;
}
if(Pzrfscflg==-1) //正常应答配置雨量发送条件超时
{
Pzrfscflg = 0;
if(GetKPState==LOCK) printf("pzrfscflg=%d\n", Pzrfscflg );
Ack_Wrong_ConfigSendCondition( 0x01, WhoSendPzrfscCMD ); //异常应答配置雨量发送条件
FunctionAlarm( 0x0C, 0x89 );
return 20;
}
if(Pzwlscflg==-1) //正常应答配置水位发送条件超时
{
Pzwlscflg=0;
Ack_Wrong_ConfigSendCondition( 0x02, WhoSendPzwlscCMD ); //异常应答配置水位发送条件
FunctionAlarm( 0x0D, 0x89 );
return 21;
}
if(Pzrfivtflg==-1) //正常应答配置雨量采集间隔时间超时
{
Pzrfivtflg=0;
Ack_Wrong_Write_interval_time_of_gatherdata( 0x01, WhoSendPzrfivtCMD ); //异常应答配置雨量数据采集的间隔时间
FunctionAlarm( 0x0E, 0x89 );
return 22;
}
if(Pzwlivtflg==-1) //正常应答配置水位采集间隔时间超时
{
Pzwlivtflg=0;
Ack_Wrong_Write_interval_time_of_gatherdata( 0x02, WhoSendPzwlivtCMD ); //异常应答配置水位数据采集的间隔时间
FunctionAlarm( 0x0F, 0x89 );
return 23;
}
/*
int GatherIvTime;
char tmptimebuff[10];
if(strlen(ManualRFBuff)>0)
{
i = ManualReport( HDDataBuff, 0x21, 0x35, APPSERVER1 );
if(i<0)
{
Svr1MissRainfallDataFlg = 1;
ConvertCharTimeToIntTime( ManualTimeBuff, tmptimebuff );
GatherIvTime = ConvertHDFlgToIvtime( HDFlgBuff );
SaveMissRainfallData( HDDataBuff, 0x35, APPSERVER1, tmptimebuff, GatherIvTime, IvtimeWakeUp[0] );
}
i = ManualReport( HDDataBuff, 0x21, 0x35, APPSERVER2 );
if(i<0)
{
Svr2MissRainfallDataFlg = 1;
ConvertCharTimeToIntTime( ManualTimeBuff, tmptimebuff );
GatherIvTime = ConvertHDFlgToIvtime( HDFlgBuff );
SaveMissRainfallData( HDDataBuff, 0x35, APPSERVER2, tmptimebuff, GatherIvTime, IvtimeWakeUp[0] );
}
for( i=0; i<strlen(ManualRFBuff); i++ )
ManualRFBuff[i] = '\0';
return 24;
}
if(strlen(ManualWLBuff)>0)
{
i = ManualReport( HDDataBuff, 0x22, 0x35, APPSERVER1 );
if(i<0)
{
Svr1MissWaterLevelDataFlg = 1;
ConvertCharTimeToIntTime( ManualTimeBuff, tmptimebuff );
SaveMissWaterLevelData( HDDataBuff, 0x35, APPSERVER1, tmptimebuff, IvtimeWakeUp[1] );
}
i = ManualReport( HDDataBuff, 0x22, 0x35, APPSERVER2 );
if(i<0)
{
Svr2MissWaterLevelDataFlg = 1;
ConvertCharTimeToIntTime( ManualTimeBuff, tmptimebuff );
SaveMissWaterLevelData( HDDataBuff, 0x35, APPSERVER2, tmptimebuff, IvtimeWakeUp[1] );
}
for( i=0; i<strlen(ManualWLBuff); i++ )
ManualWLBuff[i] = '\0';
return 25;
}
*/
return 0;
}
int KeepSameConfigPara( )
{
int i;
//static unsigned long StartTick = 0;
//unsigned long CurrentTick;
//CurrentTick = clock( );
//if(CurrentTick < (StartTick + 3)) return 0;
if(TCPManager[0]->GetConnState()==OPEN)
{
if(ParaFromCenter1.rfscpara == 0)
{
i = Ack_Right_ReadSendCondition( 0x01, APPSERVER1 ); //通知第一个中心,发送条件有变化
if(i>0) ParaFromCenter1.rfscpara=1;
else {if(GetKPState==LOCK) printf("Svr_1_1\n");} //add by wuhuan 2006.6.5
// StartTick = CurrentTick;
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -