李國柱,馬 波,張君華
(昆明市測繪研究院,云南 昆明 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.