TinyIOs

TinyIOs

TinyIOs在物聯網、雲計算時代,一切以數據為中心,不同的感測器通過不同的方式聯入網路,通過雲計算的方式為不同的終端用戶提供服務。

為了適應這種新形勢的發展,加速和降低各種感測器、智慧型模組的入網代價,以微軟成熟的.NET Micro Framework系統為基礎,打造出物聯網時代的輕量級嵌入式組態系統 —— TinyIOs

基本介紹

  • 外文名:TinyIOs
  • 全稱:Tiny I/O Server
  • 驅動開發:4
  • 策略開發:3
TinyIOs系統架構,驅動開發,2.1 驅動接口類,2.2 通信方式,2.3 驅動配置信息類,2.4 驅動的執行,策略開發,3.1 策略接口類,3.2 策略執行模式,3.3 策略另類功能,TinyIOs IDE環境,TinyIOs IDE套用實例,

TinyIOs系統架構

TinyIOs由三大部分構成,一是TinyIOs運行時,包含IODB、IOBC、驅動引擎和策略引擎四部分;二是套用模組,包含驅動、策略和IO數據三部分;三是TinyIOs IDE環境,該工具和Microsoft Visual Studio開發工具一起共同完成驅動、策略的開發、配置及部署工作。
系統架構圖(如圖1所示):
TinyIOs和.NET MF關係圖(如圖1所示)
TinyIOs
圖1

驅動開發

一個驅動程式可對應一種設備,也可以對應一類設備,關鍵在於設備支持的協定是私有的,還是公開的,一般公開的協定,如Modbus,不同廠家的智慧型設備都有不同程度的支持,凡支持該協定的設備,都可以通過共同的設備驅動進行訪問,唯一不同的就是訪問的數據類型,起始地址,數據長度等參變數的不同而已。

2.1 驅動接口類

public interface IDriver
{
DeviceInfo GetDriverInfo( );
int OnStart(Device device, IDeviceOperate operate);
int OnScan(Device device, IDeviceOperate operate);
int OnEnd(Device device, IDeviceOperate operate);
}

2.2 通信方式

public enum DeviceConnMode
{
SerialPort = 0,
Ethernet,
CAN,
USB,
SPI,
I2C,
SDIO,
Zigbee,
AD,
DA,
I,
Q,
PWM,
Other,
}

2.3 驅動配置信息類

public class DeviceInfo
{
public string Name; //32byte,驅動名稱(要保證唯一)
public string Ver; //16byte,版本信息
public string Explain; //64byte,說明
public string Developer;//16byte,開發者
public string Date; //16byte,日期
public int AutoFlag; //自動化標誌 0 - 系統為你初始化通信接口
1 - 由驅動程式本身完成通信接口初始化
public DeviceConnMode ConnMode; //通信方式
public string Manufacturer;//64byte,設備製造商
public string DeviceType;//32byte,設備類型
//設備參數
public string PortAddrExplain; //硬體連線埠名稱 空為無效項
public string PortAddrValue; //硬體連線埠默認值 項選擇(如果有的話)用"|"
分隔開,默認項為第一個
public string PortConfigExplain; //連線埠參數名稱 空為無效項
public string PortConfigValue; //連線埠參數默認值 項選擇(如果有的話)用"|"
分隔開,默認項為第一個
public string DeviceAddrExplain; //設備地址名稱 空為無效項
public string DeviceAddrValue; //設備地址默認值 項選擇(如果有的話)用"|"
分隔開,默認項為第一個
public string DeviceConfigExplain; //設備參數名稱 空為無效項
public string DeviceConfigValue; //設備參數默認值 項選擇(如果有的話)用"|"
分隔開,默認項為第一個
//項參數
public string[] ItemExplain; //8*32 byte,連線項名稱
public string[] ItemValue;//8*4 byte 默認值 項選擇(如果有的話)用
"|" 分隔開,默認項為第一個
}

2.4 驅動的執行

驅動除了按設定的掃描時間周期執行外,還可以把掃描時間設定為0,表示不會自動運行。設定為該模式的驅動,一般被策略程式直接調用而得以執行。

策略開發

可以把TinyIOs運行時想像成一個支持多任務的作業系統,這樣每個策略的OnRun接口,都可以當成一個進程的Main函式,唯一不同的是,這個Main函式被調用的機制多種多樣(參見策略執行模式)。
策略就是一段代碼,一段標準的.NET Micro Framework程式,可以根據項目的需求充分訪問.NET Micro Framework已有的開發資源(如各類庫函式),編寫實現任意功能的代碼模組。

3.1 策略接口類

public interface IStrategy
{
string GetStrategyName( );
int OnRun(IDeviceOperate operate, int parameter);
}

3.2 策略執行模式

public enum StrategyRunMode
{
None = 0, //無動作
Loop, //循環執行
System_Loop, //系統循環執行
Event_System_Start_Before,
Event_System_Start_After,
Event_System_End_Before,
Event_System_End_After,
Event_System_Error_Process,
Event_Driver_Scan_Before,
Event_Driver_Scan_After,
Event_Driver_Start_Before,
Event_Driver_Start_After,
Event_Driver_End_Before,
Event_Driver_End_After,
}

3.3 策略另類功能

策略除了按策略執行模式執行外,策略之間還可以互相調用,並且還可以直接調用指定名稱的驅動程式的執行。

TinyIOs IDE環境

配置演示視頻請參考擴展閱讀。
TinyIOs
TinyIOs IDE環境

TinyIOs IDE套用實例

相關介紹請參見擴展閱讀相關連結。
TinyIOs
TinyIOs IDE套用實例

熱門詞條

聯絡我們