有限状态机在一键式测量系统中的应用
2016-04-11李国柱张君华
李国柱,马 波,张君华
(昆明市测绘研究院,云南 昆明 650091)
有限状态机在一键式测量系统中的应用
李国柱,马波,张君华
(昆明市测绘研究院,云南 昆明 650091)
Design and Implementation of One-Click Surveying System Based on Finite State Machine
LI Guozhu,MA Bo,ZHANG Junhua
摘要:在测量软件的设计和开发中,研究重点多集中在数据处理环节。软件的交互式操作也是一项重点的研究领域,虽然所面对问题的复杂程度存在较大的差异,但是在操作软件解决问题时,需要使用的工具与上下文有着密切的关系,而并不涉及软件的全部。本文以有限状态机(FSM)为模型基础,研究和实现了一种基于该模型的“一键式”交互测量方式。在该方式的后台,对复杂的测量逻辑进行了梳理并作了相应的划分,划分为若干的有限状态机。最终通过一个按钮,实现了测量过程中的多项控制参数的设置和具体的测量工作,这种操作模式降低了软件的使用难度,提高了工作的效率。
关键词:有限状态机;测量软件;一键式测量;交互操作
有限状态机(finite state machine,FSM),是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型[1-6]。状态表示对象特定时刻的一个瞬间,有限状态机则反映了系统从开始到结束的变化。就构成来讲,其中包含了描述对象的状态及各状态之间转换的过程。
FSM通过状态变量来标识当前系统所处的状态,并通过状态变量实现在不同状态之间的切换。FSM的运行是基于一系列事件的,每个事件都具有一定的控制范围,当该事件结束时,则通过状态变迁的方式,进入下一个状态,如此直至达到终态,FSM届时停止。
有限状态机不仅是一种模型,也是一种思想,在不同的领域中都有着具体的应用。如电气工程、计算机科学、生物、数学和逻辑等。使用这种模型能够很好地描述我们工作和生活中的多种问题。
状态机可以归纳成为4个要素:现态、条件、动作和次态。这样的归纳主要是出于对状态机的内在因果关系的考虑。“现态”和“条件”是因,“动作”和“次态”是果。“现态”指当前所处的状态;“条件”又称为“事件”,当一个条件被满足时,将会触发一个动作,或者执行一次状态的迁移;“动作”是在条件满足后所执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不一定是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新的状态;“次态”是在条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成行的“现态”。
在常规的工程测量软件或系统中,用户交互界面的设计都是很传统和常规的,大部分情况下都集成了一系列复杂的操作方式。本文以FSM的思想为基础,开发了一套交互式测量系统,尤其特别的是实现了一键式测量系统,以期望能够给作业人员一种“友好便捷”的操作体验。
一、“一键式”测量系统的操作
本文所开发的软件是用于针对空间目标物进行变形监测的。特别的,具体测量时主要采集的数据包括水平角、天顶距和斜距。在固定了测站之后,随着测站可观测方向数的不同,可以使用的观测方法可分为测回法和全圆方向观测法。为了保证精度和减少不必要的误差,也需要进行多测回测量。对于测量机器人而言,允许工作人员使用盘左盘右观测,也可以仅用盘左观测。在距离测量上,设备提供了精密测距和标准测距的模式。
对于上述提到的控制项,如果分别做成相应的参数,供使用人员在具体操作时进行勾选,则在某种程度上增加了操作的复杂度。
图1为本文所设计的一键式测量交互界面。在具体测量中,当仪器在测站上架设好后,可以通过手工测量开启一键测量模式。在该界面中,可供点击的按钮只有3个,一个是主要的测量按钮,一个是在测站测量完成后,将数据入库的按钮和放弃测量数据的按钮。全部的测量任务均隐藏在“启动测量”按钮的背后。其中测站点和目标点是通过下拉的方式进行选择,这两项的输入均在测量前进行录入,可以通过手工单独录入,也可以通过文件导入。图2和图3为测站点和目标点的录入界面。
图1 一键式测量界面
图2 控制点坐标手工录入界面
图3 监测点手工录入界面
具体的操作流程是:在架设好仪器之后,用户通过下拉列表选择测站点,量测并输入仪器高,选择相应的测法(测回法或全圆方向观测法),设定测回数,进行度盘和距离测量模式的选择。在这些选项选择完毕之后,点击“启动测量”按钮,基本设置区域中的控件将会变灰,进入“禁用”状态。这些步骤属于“测前”状态。点击完“启动测量”按钮后便进入“测量中”状态。在测量进行时,只需要下拉选择目标点,点击“启动测量”按钮,仪器便开始工作,执行相应的测量指令。需要特别说明的是,如果测回数多于1次,在前半测回执行完毕之后,在后续的半测回或测回中进行测量时,在下拉目标点进行选择时,程序会控制仪器帮助工作人员进行定位,而不需要工作人员手工照准目标。程序内部会自动判断测回是否结束。在结束后会提示测站测量结束,是否入库的提示。其中,比较人性化设计的地方在于图1手工测量控制框中,下部的类别/进度信息表格控件和右侧的图形控件,一个以文字的方式提示用户当前测量的进展,另一个则以图形的方式呈现当前测量成果。
二、FSM模型
综合FSM的特性和实际的需求,由于测法可以分为测回法和全圆方向观测法,因此可以视为一个状态;使用盘左还是使用盘左盘右,也被划分为一个状态;在内部定义了更细粒度的变量,用户控制状态内部的子状态。用于控制状态切换的变量还包括盘左盘右测回控制标志、当前测量方向索引、当前测回索引(标记当前进行到第几测回)和总测回数等。图4为一键式测量系统的FSM模型。
图4 有限状态机模型
关于测回法,如果只使用盘左进行测量时,第一个方向即为起始观测方向,第二个方向测量完毕之后,一个测回便测量完毕;如果使用盘左盘右观测时,第一个方向和第二个方向为上半测回,第三和第四方向为下半测回。通过跟踪当前测量方向数变量来识别测回中的子状态。
1) 使用测回法仅用盘左进行测量的FSM状态及切换代码如下:
switch(current_measure_direction_index % 2)
{
case 0:
∥盘左起始方向并配置度盘
current_measure_direction_index++;
break;
case 1:
∥盘左终止方向
∥保存数据
current_measure_direction_index++;
current_measure_back_index++;
break;
}
2) 使用测回法盘左盘右进行测量的FSM状态及切换代码如下:
switch(current_measure_direction_index % 4)
{
case 0:
∥盘左起始方向并配置度盘
current_measure_direction_index++;
break;
case 1:
∥盘左终止方向
∥切换当前所使用盘面的状态
current_measure_back_face
MEASURE_BACK_RIGHT;
current_measure_direction_index++;
break;
case 2:
∥切换盘面,从终止方向开始
current_measure_direction_index++;
break;
case 3:
∥回到起始方向并递增测回索引
current_measure_back_face
MEASURE_BACK_LEFT;
current_measure_direction_index++;
current_measure_back_index++;
break;
}
使用方向法的子FSM状态及切换代码同测回法的代码逻辑是类似的,不同之处在于判断结束的条件。
三、 一键式测量的控制代码
在系统中定义了MEASURE_CONTROL类来实现前述具体功能,其中用到的控制变量及函数功能见表1。
表1 实现一键式测量控制逻辑中使用的内部控制变量及主要功能函数
四、结束语
测量软件的设计和开发中不仅应重点关注数据处理算法,软件的使用也是另一项值得重点关注的地方,便捷和友好的操作模式将有助于提高生产效率。本文主要研究了如何将FSM应用于测量软件交互式界面的设计和开发中。以测量机器人为基本的硬件平台,以开发一套内外业一体化变形监测系统为目标,其中使用基于FSM的思想实现了“一键式”测量的交互界面。在具体使用上,通过有限的按钮将“测量方法”“盘面使用”“测回数”等隐藏在界面的背后,大大方便了用户的使用,降低了使用者的专业门槛,同时界面上也有即时的输出供使用者进行参考。
参考文献:
[1]谢华燕,崔远.有限状态机的方法描述与应用研究[J].自动化与仪器仪表,2013(6):12-14.
[2]熊书敏,王李管,陈忠强.基于全路径网络与有限状态机的井巷漫游[J].中南大学学报(自然科学版),2013,44(8):3267-3272.
[3]李健俊,蒋一翔,钱杰,等.基于有限状态机的用户权限隔离模型[J].计算机应用,2013,33(1):149-152.
[4]李小勇,冯胜前,张亚辉.应用事件驱动和有限状态机实现多路数据采集[J].计算机与数字工程, 2012,40(11):151-154.
[5]李明峰,蒋辉.基坑支护结构变形监测数据的联合处理[J].测绘通报, 2003(9):48-49.
[6]张君华,马波,张鸣宇.拟稳平差在基坑自动检测系统中的实现[J].测绘通报,2014(S2): 75-76.
[7]STORER J A.An Introduction to Data Structures and Algorithms[M].Boston: Birkhäuser Basel,2001.
中图分类号:P208
文献标识码:B
文章编号:0494-0911(2016)02-0120-03
作者简介:李国柱(1973—),男,正高级工程师,主要从事城市测绘的生产管理工作。
基金项目:住房和城乡建设部2014年科学技术项目计划(2014-K8-015)
收稿日期:2014-11-29; 修回日期: 2015-11-16
引文格式: 李国柱,马波,张君华. 有限状态机在一键式测量系统中的应用[J].测绘通报,2016(2):120-122.DOI:10.13474/j.cnki.11-2246.2016.0066.