随着短信平台的发展,基于短信平台实现报警的被越来越多的使用着.
本文描述一种短信控件结合报警处理的组态部分的实现;
正文
由于短信功能的日益增强,短信用于电力行业报警被越来越多的监控系统运用着,基于这种原因,公司领导决定将这个模块集中到我们的监控系统中间来.以前的报警采用的是语音报警和电话报警,如果加上这个将会更加的完善.由于电力行业系统都讲究一个组态功能,所以本文采用的是INI格式文件实现报警信息的配置和保存工作,同时界面采用SKINMAGIC,其中对话框采用HEADCTRL进行处理,希望这些能对VC初学者掌握界面编程和控件使用,文件读写有抛卷引玉的作用.
所谓组态其实就是利用应用程序提供的一个参数接口对应用程序执行参数进行配置,用户可以通过配置达到不同的效果而不用重新编译整个工程.本文采用ini文件实现各种信息的保存工作.在本系统配置中,短信报警内容分为固定信息报警和计量信息传递两个部分.固定信息这个将要罗列到所有的有可能出现的固定报警数目,而计量信息的传递则是为了让用户能更了解各个电力设备的运行情况.在本系统中,大部分的是对LISTCTRL控件的操作,其中设计到ADO的编程方法.配置信息这里采用一条信息表示一个报警点信息,这个点有5条分点组成,中间我用了字符串分解的方法进行分解和合成,相关代码可以见下:
void CMsgDemoView::DataProcessIniVal(CString strVal,int nLen)//进行处理,中间将;号内容分割开。
{
CString szTemp;
szTemp=strVal;
CString str[10];
int nSize=1;
while(1)
{
int nCount=szTemp.Find( ; );
if(nCount==-1)
break;
str[nSize]=szTemp.Left(nCount);
szTemp=szTemp.Right(szTemp.GetLength()-nCount-1);
nSize++;
}
str[nSize]=szTemp;
//Insert ListCtrl Content
int nPos=m_List.GetItemCount();
if(!str[1].IsEmpty())
{
this->m_List.InsertItem(nPos,str[1]);
this->m_List.SetItemText(nPos,1,str[2]);
this->m_List.SetItemText(nPos,2,str[3]);
this->m_List.SetItemText(nPos,3,str[4]);
this->m_List.SetItemText(nPos,4,str[5]);
}
//Reset the temp value
m_strId[nLen]=str[1];
m_strContent[nLen]=str[2];
m_strNum[nLen]=str[3];
m_strbSend[nLen]=str[4];
m_strDes[nLen]=str[5];
}
展开