📄 remotemonitorview.cpp
字号:
m_fenjitable.Edit();
m_fenjitable.m_sensitive=atoi(strTemp);
m_fenjitable.Update();
}
}
else if(strRevInfo.Left(2)==_T("BA"))
{
strRevInfo.Delete(0,3);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strNodeNum=strRevInfo.Left(nIndex);
if(atoi(strNodeNum)<1||atoi(strNodeNum)>999)
return;
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('*');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//循环拨打电话次数
if(atoi(strTemp)<1||atoi(strTemp)>9)
return;
m_fenjitable.m_strSort=_T("[Id]");
m_fenjitable.m_strFilter=_T("[Id] = "+strNodeNum);
m_fenjitable.Requery();
if(!(m_fenjitable.IsEOF()&&m_fenjitable.IsBOF()))//不为空
{
m_fenjitable.Edit();
m_fenjitable.m_callnumber=atoi(strTemp);
m_fenjitable.Update();
}
}
else if(strRevInfo.Left(2)==_T("BB"))
{
strRevInfo.Delete(0,3);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strNodeNum=strRevInfo.Left(nIndex);
if(atoi(strNodeNum)<1||atoi(strNodeNum)>999)
return;
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('*');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//布防待时间
if(atoi(strTemp)<20||atoi(strTemp)>255)
return;
m_fenjitable.m_strSort=_T("[Id]");
m_fenjitable.m_strFilter=_T("[Id] = "+strNodeNum);
m_fenjitable.Requery();
if(!(m_fenjitable.IsEOF()&&m_fenjitable.IsBOF()))//不为空
{
m_fenjitable.Edit();
m_fenjitable.m_waittime=atoi(strTemp);
m_fenjitable.Update();
}
}
else if(strRevInfo.Left(2)==_T("BC"))
{
strRevInfo.Delete(0,3);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strNodeNum=strRevInfo.Left(nIndex);
if(atoi(strNodeNum)<1||atoi(strNodeNum)>999)
return;
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('*');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//蓄电池电压转折点
if(atof(strTemp)<1.1||atof(strTemp)>9.9)
return;
m_fenjitable.m_strSort=_T("[Id]");
m_fenjitable.m_strFilter=_T("[Id] = "+strNodeNum);
m_fenjitable.Requery();
if(!(m_fenjitable.IsEOF()&&m_fenjitable.IsBOF()))//不为空
{
m_fenjitable.Edit();
m_fenjitable.m_xudianchi=(float)(atof(strTemp)/10.0);
m_fenjitable.Update();
}
}
else if(strRevInfo.Left(2)==_T("BD"))
{
//
Sleep(2000);
if(m_uSendTimer)
{
KillTimer(m_uSendTimer);
m_uSendTimer=SetTimer(SNDTIMER,m_SendT,NULL);
}
CMainFrame* pWnd;
pWnd=(CMainFrame*)AfxGetMainWnd();
pWnd->ShowWindowMax();
strRevInfo.Delete(0,3);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strNodeNum=strRevInfo.Left(nIndex);
if(atoi(strNodeNum)<1||atoi(strNodeNum)>999)
return;
strRevInfo.Delete(0,nIndex+1);
//根据分机号找出维修人员及电话号码填入strMaintenance和strTelephone数组中
nNode=atoi(strNodeNum);
strTemp.Format("%d",nNode);
m_fenjitable.m_strSort=_T("[Id]");
m_fenjitable.m_strFilter=_T("[Id] = "+strTemp);
m_fenjitable.Requery();
if(!(m_fenjitable.IsEOF()&&m_fenjitable.IsBOF()))//不为空
{
strFenjiName=m_fenjitable.m_Name;
for(i=0;i<6;i++)
{
strMaintenance[i]=m_fenjitable.m_maintenance[i];
strTelephone[i]=m_fenjitable.m_maintenancetel[i];
}
}
else
{
strFenjiName="";
for(i=0;i<6;i++)
{
strMaintenance[i]="";
strTelephone[i]="";
}
}
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strCableNum=strRevInfo.Left(nIndex);//端口号
if(atoi(strCableNum)<1||atoi(strCableNum)>16)
return;
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
nAlarmtype=atoi(strRevInfo.Left(nIndex));//报警类别
if(nAlarmtype<0||nAlarmtype>9)
return;
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strDistance=strRevInfo.Left(nIndex);//距离
if(atoi(strDistance)<0||atoi(strDistance)>99999)
return;
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//月
strRevInfo.Delete(0,nIndex+1);
nMonth=atoi(strTemp);
if(nMonth<1||nMonth>12)
return;
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//日
strRevInfo.Delete(0,nIndex+1);
nDay=atoi(strTemp);
if(nDay<1||nDay>31)
return;
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//时
strRevInfo.Delete(0,nIndex+1);
nHour=atoi(strTemp);
if(nHour<0||nHour>24)
return;
nIndex=strRevInfo.Find('#');
if(nIndex==-1)//没有#号,则一定有*号
nIndex=strRevInfo.Find('*');
if(nIndex==-1) return;//如果还为-1,则返回
strTemp=strRevInfo.Left(nIndex);//分
strRevInfo.Delete(0,nIndex);//没有删除最后的#号
nMinite=atoi(strTemp);
if(nMinite<0||nMinite>60)
return;
nSecond=0;
nYear=time.GetYear();
CTime alarmtime(nYear,nMonth,nDay,nHour,nMinite,nSecond);
// strAlarmTime=alarmtime.Format("%Y-%m-%d %H:%M:%S");
strAlarmTime=alarmtime.Format("%Y-%m-%d %H:%M");
if(nAlarmtype==9)//把报警恢复时间写入数据库
{
m_cablealarmtable.m_strSort=_T("[alarmtime]");
nNode=atoi(strNodeNum)*100+atoi(strCableNum);
strTemp.Format("%d",nNode);
m_cablealarmtable.m_strFilter=_T("[cablenumber]="+strTemp);
if(!(m_cablealarmtable.IsBOF()&&m_cablealarmtable.IsEOF()))
{
while(!m_cablealarmtable.IsEOF())
m_cablealarmtable.MoveNext();
m_cablealarmtable.MovePrev();
m_cablealarmtable.Edit();
m_cablealarmtable.m_recovertime=alarmtime;
m_cablealarmtable.Update();
}
}
else//strState=0-8
{
if(nAlarmtype==0)
{
nAlarmtype=9+atoi(strCableNum);
strCableNum="00";
}
m_cablealarmtable.AddNew();
m_cablealarmtable.m_cablenumber=atoi(strNodeNum)*100+atoi(strCableNum);
m_cablealarmtable.m_alarmtype=nAlarmtype;
m_cablealarmtable.m_distant=atoi(strDistance);
m_cablealarmtable.m_alarmtime=alarmtime;
m_cablealarmtable.m_fenjiname=strFenjiName;
m_cablealarmtable.Update();
//从电缆表中找到该电缆的名称
if(nAlarmtype==8)
{
nNode=atoi(strNodeNum)*100+atoi(strCableNum);
strTemp.Format("%d",nNode);
m_cabletable.m_strSort=_T("[Id]");
m_cabletable.m_strFilter=_T("[Id] = "+strTemp);
m_cabletable.Requery();
if(!(m_cabletable.IsEOF()&&m_cabletable.IsBOF()))//不为空
{
if((m_cabletable.m_startname!="")&&(m_cabletable.m_startname!=""))
strCableName=m_cabletable.m_startname+"至"+m_cabletable.m_endname;
else
strCableName="";
}
else
strCableName="";
}
/* //根据分机号找出维修人员及电话号码填入strMaintenance和strTelephone数组中
nNode=atoi(strNodeNum);
strTemp.Format("%d",nNode);
m_fenjitable.m_strSort=_T("[Id]");
m_fenjitable.m_strFilter=_T("[Id] = "+strTemp);
m_fenjitable.Requery();
if(!(m_fenjitable.IsEOF()&&m_fenjitable.IsBOF()))//不为空
{
strFenjiName=m_fenjitable.m_Name;
for(i=0;i<6;i++)
{
strMaintenance[i]=m_fenjitable.m_maintenance[i];
strTelephone[i]=m_fenjitable.m_maintenancetel[i];
}
}
else
{
strFenjiName="";
for(i=0;i<6;i++)
{
strMaintenance[i]="";
strTelephone[i]="";
}
}
*/ if(nAlarmtype==8)
strNodeName=strCableName;
else
strNodeName=strFenjiName;
//向中心机发送GBK码
strSendInfo="BD#";
strSendInfo+=strFenjiName;
strSendInfo+=",";
strSendInfo+=strNodeNum;
strSendInfo+="号分机,";
if(nAlarmtype==8)
{
strSendInfo+=strCableName;
strSendInfo+=strCableNum;
strSendInfo+="号电缆,在";
CString strTemp;
strTemp.Format("%d",atoi(strDistance));
strSendInfo+=strTemp;
strSendInfo+="米处断线*";
}
else if(nAlarmtype>=1&&nAlarmtype<=7)
{
strSendInfo+=strCableNum;
strSendInfo+="号端口";
strSendInfo+=strAlarmType[nAlarmtype-1];
strSendInfo+="*";
}
else
{
strSendInfo+=strAlarmType[nAlarmtype-1];
strSendInfo+="*";
}
// Sleep(2000);
m_strArray.Add(strSendInfo);
//插入列表
InsertListItem(strNodeNum,
strFenjiName,
strCableNum,
strNodeName,
strAlarmType[nAlarmtype-1],
strDistance,
strAlarmTime,
strMaintenance,
strTelephone);
if(!m_bAlarm)
{
m_bAlarm=TRUE;
PlaySound("Alarm.wav",NULL,SND_FILENAME | SND_ASYNC | SND_LOOP | SND_NODEFAULT);
}
if(nAlarmtype==8)
SetAlarmFlag(strNodeNum,strCableNum);
else
SetAlarmFlag(strNodeNum);
}
if(strRevInfo.Left(1)!="*")
{
do
{
strRevInfo.Delete(0,1);//把开始的#删除
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strCableNum=strRevInfo.Left(nIndex);//端口号
if(atoi(strCableNum)<1||atoi(strCableNum)>16)
return;
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
nAlarmtype=atoi(strRevInfo.Left(nIndex));//报警类别
if(nAlarmtype<0||nAlarmtype>9)
return;
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strDistance=strRevInfo.Left(nIndex);//距离
if(atoi(strDistance)<0||atoi(strDistance)>99999)
return;
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//月
strRevInfo.Delete(0,nIndex+1);
nMonth=atoi(strTemp);
if(nMonth<1||nMonth>12)
return;
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//日
strRevInfo.Delete(0,nIndex+1);
nDay=atoi(strTemp);
if(nDay<1||nDay>31)
return;
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//时
strRevInfo.Delete(0,nIndex+1);
nHour=atoi(strTemp);
if(nHour<0||nHour>24)
return;
nIndex=strRevInfo.Find('#');
if(nIndex==-1)//没有#号,则一定有*号
nIndex=strRevInfo.Find('*');
if(nIndex==-1) return;//如果还为-1,则返回
strTemp=strRevInfo.Left(nIndex);//分
strRevInfo.Delete(0,nIndex);//没有删除最后的#号
nMinite=atoi(strTemp);
if(nMinite<0||nMinite>60)
return;
nSecond=0;
nYear=time.GetYear();
CTime alarmtime(nYear,nMonth,nDay,nHour,nMinite,nSecond);
// strAlarmTime=alarmtime.Format("%Y-%m-%d %H:%M:%S");
strAlarmTime=alarmtime.Format("%Y-%m-%d %H:%M");
if(nAlarmtype==9)//把报警恢复时间写入数据库
{
m_cablealarmtable.m_strSort=_T("[alarmtime]");
nNode=atoi(strNodeNum)*100+atoi(strCableNum);
strTemp.Format("%d",nNode);
m_cablealarmtable.m_strFilter=_T("[cablenumber]="+strTemp);
if(!(m_cablealarmtable.IsBOF()&&m_cablealarmtable.IsEOF()))
{
while(!m_cablealarmtable.IsEOF())
m_cablealarmtable.MoveNext();
m_cablealarmtable.MovePrev();
m_cablealarmtable.Edit();
m_cablealarmtable.m_recovertime=alarmtime;
m_cablealarmtable.Update();
}
}
else//strState=1-8
{
if(nAlarmtype==0)
{
nAlarmtype=9+atoi(strCableNum);
strCableNum="00";
}
CString strNodeName;
m_cablealarmtable.AddNew();
m_cablealarmtable.m_cablenumber=atoi(strNodeNum)*100+atoi(strCableNum);
m_cablealarmtable.m_alarmtype=nAlarmtype;
m_cablealarmtable.m_distant=atoi(strDistance);
m_cablealarmtable.m_alarmtime=alarmtime;
m_cablealarmtable.m_fenjiname=strFenjiName;
m_cablealarmtable.Update();
//从电缆表中找到该电缆的名称
if(nAlarmtype==8)
{
nNode=atoi(strNodeNum)*100+atoi(strCableNum);
strTemp.Format("%d",nNode);
m_cabletable.m_strSort=_T("[Id]");
m_cabletable.m_strFilter=_T("[Id] = "+strTemp);
m_cabletable.Requery();
if(!(m_cabletable.IsEOF()&&m_cabletable.IsBOF()))//不为空
{
strCableName=m_cabletable.m_startname+"至"+m_cabletable.m_endname;
}
else
strCableName="";
}
/* //根据分机号找出维修人员及电话号码填入strMaintenance和strTelephone数组中
nNode=atoi(strNodeNum);
strTemp.Format("%d",nNode);
m_fenjitable.m_strSort=_T("[Id]");
m_fenjitable.m_strFilter=_T("[Id] = "+strTemp);
m_fenjitable.Requery();
if(!(m_fenjitable.IsEOF()&&m_fenjitable.IsBOF()))//不为空
{
strFenjiName=m_fenjitable.m_Name;
for(i=0;i<6;i++)
{
strMaintenance[i]=m_fenjitable.m_maintenance[i];
strTelephone[i]=m_fenjitable.m_maintenancetel[i];
}
}
else
{
strFenjiName="";
for(i=0;i<6;i++)
{
strMaintenance[i]="";
strTelephone[i]="";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -