📄 remotemonitorview.cpp
字号:
*/ if(nAlarmtype==8)
strNodeName=strCableName;
else
strNodeName=strFenjiName;
//插入列表
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);
}
}while(strRevInfo.Left(1)!="*");
}
}
else if(strRevInfo.Left(2)==_T("CA"))
{
strRevInfo.Delete(0,3);
nIndex=strRevInfo.Find('*');
if(nIndex==-1) return;
strNodeNum=strRevInfo.Left(nIndex);
if(atoi(strNodeNum)<1||atoi(strNodeNum)>999)
return;
//该信息是请求对时,需向下发本机当前时间
//根据分机号找出电话号码
CString Telephone;
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()))//不为空
{
strSendInfo="CA#";
strSendInfo+=m_fenjitable.m_telephone;
strSendInfo+="#";
nMonth=time.GetMonth();
strTemp.Format("%2.2d",nMonth);
strSendInfo+=strTemp;
strSendInfo+="#";
nDay=time.GetDay();
strTemp.Format("%2.2d",nDay);
strSendInfo+=strTemp;
strSendInfo+="#";
nHour=time.GetHour();
strTemp.Format("%2.2d",nHour);
strSendInfo+=strTemp;
strSendInfo+="#";
nMinite=time.GetMinute();
strTemp.Format("%2.2d",nMinite);
strSendInfo+=strTemp;
strSendInfo+="#";
nSecond=time.GetSecond();
strTemp.Format("%2.2d",nSecond);
strSendInfo+=strTemp;
strSendInfo+="*";
m_strArray.Add(strSendInfo);
}
}
else if(strRevInfo.Left(2)==_T("CB"))//本机分机号
{
strRevInfo.Delete(0,3);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);
if(strTemp.GetLength()<1||strTemp.GetLength()>13)
return;
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('*');
if(nIndex==-1) return;
strNodeNum=strRevInfo.Left(nIndex);
if(atoi(strNodeNum)<1||atoi(strNodeNum)>999)
return;
//根据分机电话号码修改对应的分机号
m_fenjitable.m_strSort=_T("[Id]");
m_fenjitable.m_strFilter=_T("[telephone] = '"+strTemp+"'");
m_fenjitable.Requery();
if(!(m_fenjitable.IsEOF()&&m_fenjitable.IsBOF()))//不为空
{
m_fenjitable.Edit();
m_fenjitable.m_Id=atoi(strNodeNum);
m_fenjitable.Update();
}
}
else if(strRevInfo.Left(2)==_T("CC"))
{
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)>2)
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_mode=atoi(strTemp);
m_fenjitable.Update();
}
}
/* else if(strRevInfo.Left(2)==_T("CD"))
{
//分机机房报警
strRevInfo.Delete(0,3);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strNodeNum=strRevInfo.Left(nIndex);// 分机号
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
nAlarmtype=atoi(strRevInfo.Left(nIndex));//报警号
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//月
strRevInfo.Delete(0,nIndex+1);
nMonth=atoi(strTemp);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//日
strRevInfo.Delete(0,nIndex+1);
nDay=atoi(strTemp);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//时
strRevInfo.Delete(0,nIndex+1);
nHour=atoi(strTemp);
nIndex=strRevInfo.Find('*');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//分
strRevInfo.Delete(0,nIndex+1);
nMinite=atoi(strTemp);
nSecond=0;
nYear=time.GetYear();
CTime alarmtime(nYear,nMonth,nDay,nHour,nMinite,nSecond);
strAlarmTime=alarmtime.Format("%Y-%m-%d %H:%M:%S");
if(!fenjialarmTable.IsOpen())
fenjialarmTable.Open();
fenjialarmTable.AddNew();
fenjialarmTable.m_fenjinumber=atoi(strNodeNum);
fenjialarmTable.m_type=nAlarmtype;
fenjialarmTable.m_alarmtime=alarmtime;
fenjialarmTable.Update();
if(fenjialarmTable.IsOpen())
fenjialarmTable.Close();
//根据分机号找出维修人员及电话号码填入strMaintenance和strTelephone数组中
if(!fenjitable.IsOpen())
fenjitable.Open();
nNode=atoi(strNodeNum);
strTemp.Format("%d",nNode);
fenjitable.m_strSort=_T("[Id]");
fenjitable.m_strFilter=_T("[Id] = "+strTemp);
fenjitable.Requery();
if(!(fenjitable.IsEOF()&&fenjitable.IsBOF()))//不为空
{
strFenjiName=fenjitable.m_Name;
for(i=0;i<6;i++)
{
strMaintenance[i]=fenjitable.m_maintenance[i];
strTelephone[i]=fenjitable.m_maintenancetel[i];
}
}
else
{
strFenjiName="";
for(i=0;i<6;i++)
{
strMaintenance[i]="";
strTelephone[i]="";
}
}
if(fenjitable.IsOpen())
fenjitable.Close();
//向中心机发送GBK码
strSendInfo="BD#";
strSendInfo+=strFenjiName;
strSendInfo+=strNodeNum;
strSendInfo+="号分机出现";
strSendInfo+=strAlarmType[nAlarmtype-1];
strSendInfo+="告警*";
m_strArray.Add(strSendInfo);
//插入列表
strCableNum="00";//分机时,电缆号为0
strDistance="";
InsertListItem(strNodeNum,
strCableNum,
strFenjiName,
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);
}
SetAlarmFlag(strNodeNum);
}
*/
else if(strRevInfo.Left(2)==_T("DA"))//用户电话号码上传
{
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);
for(i=0;i<6;i++) strTelephone[i]="";
i=0;
do
{
strRevInfo.Delete(0,1);
nIndex=strRevInfo.Find('#');
if(nIndex==-1)
nIndex=strRevInfo.Find('*');
if(nIndex==-1)
return;
if(i>5) return;
strTelephone[i]=strRevInfo.Left(nIndex);
if(strTelephone[i].GetLength()<1||strTelephone[i].GetLength()>13)
return;
i++;
strRevInfo.Delete(0,nIndex);
}while(strRevInfo.Left(1)!="*");
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()))//不为空
{
m_fenjitable.Edit();
for(i=0;i<6;i++)
m_fenjitable.m_usertel[i]=strTelephone[i];
m_fenjitable.Update();
}
}
else if(strRevInfo.Left(2)==_T("DB"))
{
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)<10||atoi(strTemp)>99)
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_zejuxisu=atoi(strTemp);
m_fenjitable.Update();
}
}
else if(strRevInfo.Left(2)==_T("DC"))//分机电话号码上传
{
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;
strTelephone[0]=strRevInfo.Left(nIndex);
if(strTelephone[0].GetLength()<1||strTelephone[0].GetLength()>13)
return;
strRevInfo.Delete(0,nIndex+1);
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()))//不为空
{
m_fenjitable.Edit();
m_fenjitable.m_telephone=strTelephone[0];
m_fenjitable.Update();
}
}
/* else if(strRevInfo.Left(2)==_T("DD"))
{
//分机机房报警
strRevInfo.Delete(0,3);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strNodeNum=strRevInfo.Left(nIndex);// 分机号
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
nAlarmtype=atoi(strRevInfo.Left(nIndex))+8;//报警号
strRevInfo.Delete(0,nIndex+1);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//月
strRevInfo.Delete(0,nIndex+1);
nMonth=atoi(strTemp);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//日
strRevInfo.Delete(0,nIndex+1);
nDay=atoi(strTemp);
nIndex=strRevInfo.Find('#');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//时
strRevInfo.Delete(0,nIndex+1);
nHour=atoi(strTemp);
nIndex=strRevInfo.Find('*');
if(nIndex==-1) return;
strTemp=strRevInfo.Left(nIndex);//分
strRevInfo.Delete(0,nIndex+1);
nMinite=atoi(strTemp);
nSecond=0;
nYear=time.GetYear();
CTime alarmtime(nYear,nMonth,nDay,nHour,nMinite,nSecond);
strAlarmTime=alarmtime.Format("%Y-%m-%d %H:%M:%S");
m_fenjialarmTable.AddNew();
m_fenjialarmTable.m_fenjinumber=atoi(strNodeNum);
m_fenjialarmTable.m_type=nAlarmtype-8;
m_fenjialarmTable.m_alarmtime=alarmtime;
m_fenjialarmTable.Update();
//根据分机号找出维修人员及电话号码填入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]="";
}
}
//向中心机发送GBK码
strSendInfo="BD#";
strSendInfo+=strFenjiName;
strSendInfo+=strNodeNum;
strSendInfo+="号分机出现";
strSendInfo+=strAlarmType[nAlarmtype-1];
strSendInfo+="告警*";
m_strArray.Add(strSendInfo);
//插入列表
strCableNum="00";//分机时,电缆号为0
strDistance="";
InsertListItem(strNodeNum,
strCableNum,
strFenjiName,
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);
}
SetAlarmFlag(strNodeNum);
}
*/
}
void CRemotemonitorView::maptoASC(unsigned char* pbuff,int len)
{
while(len--)
{
*pbuff=dtmftoasc[*pbuff];
pbuff++;
}
}
void CRemotemonitorView::Process()
{
int nIndex0,nIndex1;
int i;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -