基本介紹
- 外文名: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所示)
驅動開發
一個驅動程式可對應一種設備,也可以對應一類設備,關鍵在於設備支持的協定是私有的,還是公開的,一般公開的協定,如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 IDE套用實例
相關介紹請參見擴展閱讀相關連結。