YFIOs就是YFSoft I/O Server的簡稱,在物聯網、雲計算時代,一切以數據爲中心,不一樣的傳感器經過不一樣的方式接入網絡,經過雲計算的方式爲不一樣的終端用戶提供服務。ios
爲了適應這種新形勢的發展,加速和下降各類傳感器、智能模塊的入網代價,以微軟成熟的.NET Micro Framework系統爲基礎,打造出物聯網時代的輕量級嵌入式組態系統 —— YFIOs。網絡
詳情請參見《YFIOs技術白皮書》。app
請參見文檔《YFIOs安裝指南》。ide
選擇YFIOs Driver模板進行驅動開發。函數
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; }
代碼模板會自動生成如上代碼。學習
這是一個虛擬串口設備的模板,能夠根據實際傳感器的特色和接口進行相關參數配置。測試
咱們在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;
}
編譯上述代碼,把YFIOsDriver1\bin\Debug\le目錄下的YFIOsDriver1.dll和YFIOsDriver1.pe文件拷貝到C:\Program Files (x86)\YFIOs\YFIOsManager\Driver目錄。
而後運行YFIOsManager.exe軟件。
在驅動列表中,能夠看到剛編寫的驅動信息(如上圖所示)。
單擊樹形控件 中的【用戶設備】項,雙擊列表控件中的【新建…】選項,則彈出用戶設備窗體。
咱們選擇串口驅動下的VirtualDevice驅動,也就是咱們剛編寫的那個驅動。
咱們命名爲「HelloDevice」,串口號咱們選擇COM3,而後保存。
單擊樹形控件中的【項目屬性】選項,雙擊列表控件中配置數據,則彈出以下界面,默認狀況下,用戶調試、普通訊息、系統調試信息選項是沒有勾選的。
咱們勾選全部的選項。
保存項目後,單擊【調試】->【部署】菜單(或單擊部署圖標)進行項目部署。
單擊【調試】->【啓動】菜單(或單擊啓動圖標)讓項目開始運行。
從信息輸出窗口中,能夠看到,驅動已經正確加載,也輸出了 Hello World!!!
雖然編寫的驅動能夠在YFIOsManager經過信息輸出的方式進行調試,可是若是驅動比較複雜,這種調試方法仍是不太理想。
所以咱們構建一個TinyIOsEmulator,在Visual Studio 2010環境裏進行驅動調試。
因爲YFSoft.DriverTest是一個標準的.NET Micro Framework程序,因此調試的時候,須要把系統設置爲.NET Micro Framework系統模式。
確保PF9和GND鏈接。
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(); } }
從上圖能夠看出,在Visual Studio開發環境裏,咱們已經能夠進行調試了,而且調試窗口也輸出了Hello world!!!信息。
本篇文章僅僅是一篇驅動開發入門的文章,要編寫一個比較複雜的驅動,還須要深刻學習各類開發知識。
高階驅動開發相關的內容以下:
(1) 驅動設備變量設計;
(2) 驅動設備讀寫;
(3) 驅動擴展配置面板開發;
(4) 驅動代碼引用第三庫;
(5) 驅動YFIOBC操做;
(6) 策略直接調用驅動;
一、.NET Micro Framework 官方網址
http://www.microsoft.com/netmf/default.mspx
二、.NET Micro Framework官方博客
http://blogs.msdn.com/netmfteam/
三、中文博客
http://www.cnblogs.com/yefanqiu
四、葉帆科技
五、物聯網中間件技術開發論壇
從2012-12-21起YFIOs和YFHMI將開展爲期半年的免費試用活動,符合申請條件的用戶,將依次獲取YFIOs和YFHMI的試用機會。
申請表下載:http://sky-walker.com.cn/MFRelease/document/yfios_yfhmi_application.doc