代码改变世界

[视频监控]用状态机图展示Layout切换关系

2013-08-26 15:31  鉴于  阅读(377)  评论(0编辑  收藏  举报

监控系统通常会提供多种Layout给用户,用于满足不同需求,如:高清显示单路视频或者同时观察多路监控情况。

文中系统只提供了单路、2x2(2行2列共4路)、8路(4行4列布局,从左上角算起,有个核心显示占用了9个通路位置来显示一路)。

    通常分析,有限个状态之间切换的时候,常使用状态机图。只需考虑当前状态,不需要该状态是从哪个状态转入的。

状态机图有以下几个要素:

1.促发因素

2.从当前状态转出行为

3.转入新状态行为

 

分析视频监控客户端,有以下几个状态:

Layout 1x1:只显示一路视频,显示区域外侧有设备树和控制面板

Layout 1x1全屏:全屏显示该路视频,无控制面板和设备树

Layout NxN:同时显示NxN路视频,显示区域外侧有设备树和控制面板

Layout NxN全屏:全屏显示NxN路视频,无控制面板和设备树

LayoutNxN单屏显示:LayoutNxN全屏隐藏,只全屏显示单路视频,无控制面板和设备树

 

列出触发条件如下:

点击【全屏】按钮、点击【ESC】按钮、双击视频窗体、点击【Layout 1x1】按钮、点击【Layout NxN】按钮。

并不是每个状态都会响应所有的触发事件。

最后绘出的状态机图如下:

 

image

 

状态机图的绘制比较直观的展示各状态之间变换关系,由此再coding会减少编码的难度。