SensortWare編程模型
發(fā)布時間:2012/4/6 18:49:08 訪問次數(shù):1028
根據(jù)主動分布式模型,腳本看起來像是 CS8416-CZZ/CSZ受外部事件影響的狀態(tài)機(jī),這樣的外部事件包括網(wǎng)絡(luò)消息、傳感數(shù)據(jù)和定時器到期。采用的編程模型是:事件被描述,并和一個事件處理器的定義綁定;根據(jù)當(dāng)前狀態(tài),事件處理器將會做出處理并可能創(chuàng)造出一些新的事件和(或)改變當(dāng)前狀態(tài)。圖7-22就展示了SensorWare的編程模型的一個例子。
圖7-22描述了通過等待命令實現(xiàn)事件。通過命令,程序員能夠定義腳本在一個給定的時間中等待時的所有的事件,這些時間包括:受理一個給定格式的消息,或是用給定采樣率的傳感信息來填充緩存,也可以是等待若干個定時器的時間到期。當(dāng)任何一個事件在等待命令發(fā)生中進(jìn)行聲明時,命令就會終止,返回引起終止的事件。在等待命令下面的代碼會處理返回的變量信息并喚醒已掛起的適合此事件的部分代碼。在執(zhí)行掛起事件之后,腳本移動到一個新的等待命令或是等待前命令的循環(huán)執(zhí)行。
和編程模型同等重要的是支持腳本的運行環(huán)境。圖7-23描述了環(huán)境執(zhí)行的基本任務(wù)。SensorWare將任務(wù)劃分為固定的和平臺相關(guān)的,固定任務(wù)通常包含在SensorWare的實現(xiàn)中,而平臺相關(guān)任務(wù)依賴于節(jié)點平臺的具體模塊和服務(wù)。另外,有可能出現(xiàn)可擴(kuò)展性和可移植性問題。腳本管理器的任務(wù)是接受新的腳本盧生請求,它將請求傳遞給接入控制任務(wù)并接收回復(fù),并啟動一個新的線程/任務(wù),為新的腳本運行一個腳本解釋器。腳本管理器也在腳本活動期間,保存任意腳本相關(guān)的狀態(tài),例如腳本數(shù)據(jù)等。
接入控制和資源使用策略任務(wù)負(fù)責(zé)所有的腳本接入決策,確保腳本在它們的資源限制之內(nèi),并且更重要的是檢查總的能量消耗。如果整體呈現(xiàn)出巨大的消耗,則按照Sensorware的一定策略選擇性的終止一些腳本。
運行環(huán)境還包括資源抽象和資源計量任務(wù),每個任務(wù)支持相關(guān)的API命令并管理具體的資源,這其中有兩個固定的任務(wù),因為每個平臺都假設(shè)有至少一個“RADIO”任務(wù)和一個定時器服務(wù)!癛ADIO”任務(wù)從腳本中接受所要求的網(wǎng)絡(luò)消息格式的請求,根據(jù)需要的腳本接受網(wǎng)絡(luò)中的信息,并為每個腳本測量無線電利用率。定時器服務(wù)通過所有的腳本為定時器接受各種請求,并且為系統(tǒng)提供的嵌入式真實事件計時器服務(wù)。從根本上說任務(wù)依靠系統(tǒng)提供的單個定時器來提供多個虛擬的定時器。
即使兩個平臺具有相同的能力(即同樣的模塊/服務(wù)),它們也依賴于不同的硬件和(或)操作系統(tǒng),因此SensorWare的代碼分為不會改變的(平臺獨立的代碼)和隨平臺能力變化的(設(shè)備定義代碼),如圖7-24所示。
根據(jù)主動分布式模型,腳本看起來像是 CS8416-CZZ/CSZ受外部事件影響的狀態(tài)機(jī),這樣的外部事件包括網(wǎng)絡(luò)消息、傳感數(shù)據(jù)和定時器到期。采用的編程模型是:事件被描述,并和一個事件處理器的定義綁定;根據(jù)當(dāng)前狀態(tài),事件處理器將會做出處理并可能創(chuàng)造出一些新的事件和(或)改變當(dāng)前狀態(tài)。圖7-22就展示了SensorWare的編程模型的一個例子。
圖7-22描述了通過等待命令實現(xiàn)事件。通過命令,程序員能夠定義腳本在一個給定的時間中等待時的所有的事件,這些時間包括:受理一個給定格式的消息,或是用給定采樣率的傳感信息來填充緩存,也可以是等待若干個定時器的時間到期。當(dāng)任何一個事件在等待命令發(fā)生中進(jìn)行聲明時,命令就會終止,返回引起終止的事件。在等待命令下面的代碼會處理返回的變量信息并喚醒已掛起的適合此事件的部分代碼。在執(zhí)行掛起事件之后,腳本移動到一個新的等待命令或是等待前命令的循環(huán)執(zhí)行。
和編程模型同等重要的是支持腳本的運行環(huán)境。圖7-23描述了環(huán)境執(zhí)行的基本任務(wù)。SensorWare將任務(wù)劃分為固定的和平臺相關(guān)的,固定任務(wù)通常包含在SensorWare的實現(xiàn)中,而平臺相關(guān)任務(wù)依賴于節(jié)點平臺的具體模塊和服務(wù)。另外,有可能出現(xiàn)可擴(kuò)展性和可移植性問題。腳本管理器的任務(wù)是接受新的腳本盧生請求,它將請求傳遞給接入控制任務(wù)并接收回復(fù),并啟動一個新的線程/任務(wù),為新的腳本運行一個腳本解釋器。腳本管理器也在腳本活動期間,保存任意腳本相關(guān)的狀態(tài),例如腳本數(shù)據(jù)等。
接入控制和資源使用策略任務(wù)負(fù)責(zé)所有的腳本接入決策,確保腳本在它們的資源限制之內(nèi),并且更重要的是檢查總的能量消耗。如果整體呈現(xiàn)出巨大的消耗,則按照Sensorware的一定策略選擇性的終止一些腳本。
運行環(huán)境還包括資源抽象和資源計量任務(wù),每個任務(wù)支持相關(guān)的API命令并管理具體的資源,這其中有兩個固定的任務(wù),因為每個平臺都假設(shè)有至少一個“RADIO”任務(wù)和一個定時器服務(wù)!癛ADIO”任務(wù)從腳本中接受所要求的網(wǎng)絡(luò)消息格式的請求,根據(jù)需要的腳本接受網(wǎng)絡(luò)中的信息,并為每個腳本測量無線電利用率。定時器服務(wù)通過所有的腳本為定時器接受各種請求,并且為系統(tǒng)提供的嵌入式真實事件計時器服務(wù)。從根本上說任務(wù)依靠系統(tǒng)提供的單個定時器來提供多個虛擬的定時器。
即使兩個平臺具有相同的能力(即同樣的模塊/服務(wù)),它們也依賴于不同的硬件和(或)操作系統(tǒng),因此SensorWare的代碼分為不會改變的(平臺獨立的代碼)和隨平臺能力變化的(設(shè)備定義代碼),如圖7-24所示。
上一篇:SensorWare
上一篇:Agilla
熱門點擊
- 三角波發(fā)生器基本電路
- 干簧管主要的參數(shù)
- 拓?fù)淇刂频囊饬x
- 無線傳感器網(wǎng)絡(luò)的體系結(jié)構(gòu)
- Butterworth濾波器各級的Q要求和極
- 電容量的測試
- 引起電子元器件失效的主要原因
- 多變定位算法
- TinyOS/SOS、MantisOS三種節(jié)
- 鉭電解電容器的結(jié)構(gòu)與特點
推薦技術(shù)資料
- 全集成直接飛行時間(dToF)傳感器
- 2025年半導(dǎo)體市場發(fā)展趨勢未
- GW2A系列FPGA芯片應(yīng)用參數(shù)
- DDR類儲存器接口解決方案
- 2.5G bps MIPI D
- 新一代 Arora-V系列FPGA產(chǎn)品詳情
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究