隨著簡訊平台的發展,基於簡訊平台實現警報的被越來越多的使用著.
本文描述一種簡訊控制結合警報處理的組態部分的實作;
正文由於短信功能的日益增強,短信用於電力行業報警被越來越多的監控系統運用著,基於這種原因,公司領導決定將這個模組集中到我們的監控系統中間來.以前的報警採用的是語音警報和電話警報,如果加上這個將會更加的完善.由於電力行業系統都講究一個組態功能,所以本文採用的是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];
}
展開