【物聯網中間件平臺-04】YFIOs驅動開發指南

 

1 YFIOs簡介

YFIOs就是YFSoft I/O Server的簡稱,在物聯網、雲計算時代,一切以數據爲中心,不一樣的傳感器經過不一樣的方式接入網絡,經過雲計算的方式爲不一樣的終端用戶提供服務。ios

爲了適應這種新形勢的發展,加速和下降各類傳感器、智能模塊的入網代價,以微軟成熟的.NET Micro Framework系統爲基礎,打造出物聯網時代的輕量級嵌入式組態系統 —— YFIOs網絡

詳情請參見《YFIOs技術白皮書》。app

2 驅動開發

2.1 YFIOs SDK安裝

請參見文檔《YFIOs安裝指南》。ide

2.2新建驅動項目

 

選擇YFIOs Driver模板進行驅動開發。函數

2.3代碼模板

  

 

複製代碼
   public DriverInfo GetDriverInfo()      {          DriverInfo info = new DriverInfo();          //驅動名稱
         info.Name = this.Name;          //版本號
         info.Ver = "V1.0.0";          //說明
         info.Explain = "虛擬串口設備";          //開發者
         info.Developer = "yefan";          //開發日期
         info.Date = "2011-10-18";          //自動化標誌          //0 bit 0 - 系統爲你初始化通訊接口  1 - 由驅動程序自己完成通訊接口初始化          //1 bit 0 - 無操做                  1 - 由驅動程序自己完成IO變量添加          //2~31 bit 備用   
         info.AutoFlag = 0;          //ConnMode-Manufacturer-DeviceType 是驅動的惟一標識          //通訊方式
         info.ConnMode = DeviceConnMode.SerialPort;          //製造商
         info.Manufacturer = "YFSoft";          //設備的類型
         info.DeviceType = "VirtualDevice";          //端口配置
         info.PortAddrExplain = "串 口 號:";          info.PortAddrValue = "COM1|COM2|COM3|COM4|COM5|COM6|COM7|COM8";          info.PortConfigExplain = "串口參數:";          info.PortConfigValue = "9600,n,8,1";          //設備配置
         info.DeviceAddrExplain = "";          info.DeviceAddrValue = "";          info.DeviceConfigExplain = "";          info.DeviceConfigValue = "";          info.ItemExplain = new string[1];          info.ItemValue = new string[1];          info.ItemExplain[0] = "數據類型:";          info.ItemValue[0] = "V|CommState";          return info;      }
複製代碼

 

代碼模板會自動生成如上代碼。學習

這是一個虛擬串口設備的模板,能夠根據實際傳感器的特色和接口進行相關參數配置。測試

2.4 Hello world

咱們在OnRun函數裏,添加以下代碼:this

 public int OnRun(Device dv, IOperate op, object arg)雲計算

 {spa

        if (dv.DebugMode != 0) op.Print(MessageType.SysDebug, "OnRun", this.Name);

        op.Print(MessageType.Information, "Hello World!!!", this.Name);

        return 0;

 }

2.5 驅動測試

2.5.1 驅動編譯加載

編譯上述代碼,把YFIOsDriver1\bin\Debug\le目錄下的YFIOsDriver1.dll和YFIOsDriver1.pe文件拷貝到C:\Program Files (x86)\YFIOs\YFIOsManager\Driver目錄。

而後運行YFIOsManager.exe軟件。

 

在驅動列表中,能夠看到剛編寫的驅動信息(如上圖所示)。

2.5.2 添加用戶設備

 

單擊樹形控件 中的【用戶設備】項,雙擊列表控件中的【新建…】選項,則彈出用戶設備窗體。

咱們選擇串口驅動下的VirtualDevice驅動,也就是咱們剛編寫的那個驅動。

咱們命名爲「HelloDevice」,串口號咱們選擇COM3,而後保存。

2.5.3 配置項目屬性

單擊樹形控件中的【項目屬性】選項,雙擊列表控件中配置數據,則彈出以下界面,默認狀況下,用戶調試、普通訊息、系統調試信息選項是沒有勾選的。

 

咱們勾選全部的選項。

2.5.4 項目部署調試

保存項目後,單擊【調試】->【部署】菜單(或單擊部署圖標)進行項目部署。

 

2.5.5 項目運行

單擊【調試】->【啓動】菜單(或單擊啓動圖標)讓項目開始運行。

 

 從信息輸出窗口中,能夠看到,驅動已經正確加載,也輸出了 Hello World!!!

3 驅動調試

雖然編寫的驅動能夠在YFIOsManager經過信息輸出的方式進行調試,可是若是驅動比較複雜,這種調試方法仍是不太理想。

所以咱們構建一個TinyIOsEmulator,在Visual Studio 2010環境裏進行驅動調試。

因爲YFSoft.DriverTest是一個標準的.NET Micro Framework程序,因此調試的時候,須要把系統設置爲.NET Micro Framework系統模式。

 

確保PF9和GND鏈接。

3.1 構建TinyIOsEmulator

 

TinyIOsEmulator項目裏須要引用咱們剛剛建立的驅動。

測試的主要代碼以下:

複製代碼
    public class YFIOsEmulator      {          YFIOS ios = new YFIOS();          Device device = new Device();          public void Run()          {              IDriver md = TestVirtualDevice();              md.OnLoad(device, ios.operate, null);              while (true)              {                  md.OnRun(device, ios.operate, null);                  Thread.Sleep(3000);              }          }             public IDriver TestVirtualDevice()          {              device.PortAddr = 1;              device.PortConfig = "9600,n,8,1";              device.DebugMode = 0;              device.DeviceAddr = 0;              device.DeviceConfig = "";              device.IOItems = new ArrayList();              OpenPort(device, ios.operate);              return new YFIOsDriver1();          }   }
複製代碼

 

3.2 單步調試

 

從上圖能夠看出,在Visual Studio開發環境裏,咱們已經能夠進行調試了,而且調試窗口也輸出了Hello world!!!信息。

4額外說明

本篇文章僅僅是一篇驅動開發入門的文章,要編寫一個比較複雜的驅動,還須要深刻學習各類開發知識。

高階驅動開發相關的內容以下:

(1)       驅動設備變量設計;

(2)       驅動設備讀寫;

(3)       驅動擴展配置面板開發;

(4)       驅動代碼引用第三庫;

(5)       驅動YFIOBC操做;

(6)       策略直接調用驅動;

5相關資源

一、.NET Micro Framework 官方網址

http://www.microsoft.com/netmf/default.mspx

二、.NET Micro Framework官方博客

http://blogs.msdn.com/netmfteam/

三、中文博客

http://blog.csdn.net/yefanqiu

http://www.cnblogs.com/yefanqiu

四、葉帆科技

http://www.sky-walker.com.cn/

五、物聯網中間件技術開發論壇

http://www.yfios.net

 

YFIOs/YFHMI免費試用

從2012-12-21起YFIOs和YFHMI將開展爲期半年的免費試用活動,符合申請條件的用戶,將依次獲取YFIOs和YFHMI的試用機會。

申請表下載:http://sky-walker.com.cn/MFRelease/document/yfios_yfhmi_application.doc

相關文章
相關標籤/搜索