- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中兴捧月 Shine Stone 张鲁宁 李丰 王翔
《基站告警模拟的设计和实现》设计文档
1. 系统模块设计
根据程序设计需求,本系统分为OMC、基站、网络通信三个模块。本系统假设基站已预先建立,OMC作为监控程序,主动发起TCP连接与各基站建立通信。
OMC负责远程管理和监控基站,通过TCP/IP协议与基站连接,向基站发送配置信息,接收基站的各种告警。基站模拟程序可根据OMC指定的配置信息自动进行配置,执行人工发起模拟告警等动作。
OMC根据IP地址主动连接基站进行监控,基站一旦有告警或解除警告便立即发送信息到OMC。OMC需要保存当前所监视的所有基站的告警信息,用颜色显示树形控件中选中基站的各单板最高级别告警,并能保存告警发生记录到文件。
图1 OMC-BS网络架构示意图
2. 系统环境和相关技术
系统环境:
Windows XP
Microsoft Visual C++ 6.0 (SP6)
注:由于基站模拟程序涉及到修改主机IP地址,在Windows Vista或Windows7下使用时,请使用管理员权限运行BS.exe程序。
相关技术:
CSocket套接字网络编程
MFC编程
MSXML,微软XML文档语法解析器
3. OMC设计与实现
3.1界面设计
设计OMC监控管理界面如图2:
图2 OMC主程序界面
左侧为基站树形列表,点击某个基站的机框时,中间显示基站状态,右侧是正在连接监视的基站。树形控件内通过右键菜单进行增加/删除基站、增加/删除机框的操作。对单板点击右键菜单,执行增加/删除单板、配置IP(MM板)、删除告警、查看历史记录等操作。(如图3)
图3 右键菜单操作
1. 树形控件的单击和右键菜单
判断所点树形节点的类型——根节点OMC/基站节点/ 节点外的空白/机框节点,程序需要根据所点击基站的ID来动态显示不同基站的告警颜色。定义变量int m_BSID,当点击机框节点时,m_BSID为当前基站的ID,否则值为0。
右键单击OMC根节点或基站节点会弹出菜单,对OMC节点只能增加基站,删除项置灰,对基站节点可增加或删除。
2. 右键单击单板插槽
单板插槽用CButton按钮模拟,默认没有右键响应,故重载对整个对话框的右键响应函数void COMCDlg::OnContextMenu(CWnd* pWnd, CPoint point)。由于只有鼠标位于按钮框内时采弹出右键菜单,需要用GetWindowRect()函数得到按钮边界来限定菜单弹出位置。
定义变量int NumSlot,表示当前弹出右键快捷菜单的插槽号。这样结合m_BSID、NumSlot便能定位到当前执行操作的是哪个基站的哪块单板。
3. 单板及树形控件显示不同颜色
利用按钮控件表示机框插槽,让按钮和树形控件显示不同颜色,需要对按钮类Cbutton和树形控件类CtreeCtrl进行派生,分别定义CBtnDisplay类和CMyTreeCtrl类,通过修改OnPaint()函数实现对颜色的改变。
4. 对话框同一区域在不同条件下显示不同内容的实现
题目要求选择树形节点根节点时,应该动态显示当前没有恢复的所有基站告警信息列表。当选择“基站节点”时,应该动态显示当前没有恢复的当前基站的告警列表。而选择机框节点,应该动态显示各个插槽的单板配置及告警颜色。这样在同一块区域需显示不同控件,通过CWindow::ShowWindow()函数实现控件的显示和隐藏。
3.2 告警信息的保存
与初赛相比,基站的告警可以自定义,不再是指定的四种告警。多出CC和DD两种单板,每种单板的告警可以不同,个数不定,而且OMC可以自定义四种告警级别的颜色。根据这些特点,需要改变初赛中使用的数据结构来存储这些信息。
(1) 基站自定义告警m_alarm
每种自定义告警指定一个唯一编号,该告警属于一个告警级别,有一个告警描述,因此定义如下结构体:
typedef struct base_depict
{
int ID;
int level;
CString warn_depict;
}W_Depict;
在基站侧,由于要指定某告警针对的单板类型,因此结构体中会多出一个表示单板类型的变量。而在OMC侧,只需接收告警,不需存在该变量。
主对话框类用容器vectorW_Depict m_alarm来存储结构体W_Depict,保存基站的所有自定义告警信息。基站发出告警只需向OMC传送告警的ID即可。
(2) OMC自定义颜色m_Color
利用五维数组COLORREF m_colorcfg[5]来存储各级别告警的颜色,COLORREF为颜色变量类型,colorcfg[0]为无告警时的颜色,colorcfg[1]~ colorcfg[4]分别为1~4级告警的
原创力文档


文档评论(0)