文章目錄
- 2.5.1 驅動編譯載入
- 2.5.2 添加使用者裝置
- 2.5.3 設定項目屬性
- 2.5.4 項目部署調試
- 2.5.5 項目運行
文檔名稱 |
YFIOs驅動開發指南 |
版本 |
V1.0.0 |
作者 |
葉帆 |
日期 |
2012-12-25 |
曆史 |
|
文檔列表 |
http://www.sky-walker.com.cn/MFRelease/YF_document_list.pdf |
1 YFIOs簡介
YFIOs就是YFSoft I/O Server的簡稱,在物聯網、雲端運算時代,一切以資料為中心,不同的感應器通過不同的方式接入網路,通過雲端運算的方式為不同的終端使用者提供服務。
為了適應這種新形勢的發展,加速和降低各種感應器、智能模組的入網代價,以微軟成熟的.NET Micro Framework系統為基礎,打造出物聯網時代的輕量級嵌入式組態系統 —— YFIOs。
詳情請參見《YFIOs技術白皮書》。
2 驅動開發2.1 YFIOs SDK安裝
請參見文檔《YFIOs安裝指南》。
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函數裡,添加如下代碼:
public int OnRun(Device dv, IOperate op, object arg)
{
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相關資源
1、.NET Micro Framework 官方網址
http://www.microsoft.com/netmf/default.mspx
2、.NET Micro Framework官方部落格
http://blogs.msdn.com/netmfteam/
3、中文部落格
http://blog.csdn.net/yefanqiu
http://www.cnblogs.com/yefanqiu
4、葉帆科技
http://www.sky-walker.com.cn/
5、物聯網中介軟體技術開發論壇
http://www.yfios.net
YFIOs/YFHMI免費試用
從2012-12-21起YFIOs和YFHMI將開展為期半年的免費試用活動,符合申請條件的使用者,將依次擷取YFIOs和YFHMI的試用機會。
申請表下載:http://sky-walker.com.cn/MFRelease/document/yfios_yfhmi_application.doc