文檔名稱
版本
V1.0.0
作者
葉帆
日期
2012-12-25
曆史
文檔清單
為了适應這種新形勢的發展,加速和降低各種傳感器、智能子產品的入網代價,以微軟成熟的.NET Micro Framework系統為基礎,打造出物聯網時代的輕量級嵌入式組态系統 —— YFIOs。
選擇YFIOs Driver模闆進行驅動開發。
public DriverInfo GetDriverInfo()
{
DriverInfoinfo = 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";
returninfo;
}
代碼模闆會自動生成如上代碼。
這是一個虛拟序列槽裝置的模闆,可以根據實際傳感器的特點和接口進行相關參數配置。
我們在OnRun函數裡,添加如下代碼:
public int OnRun(Devicedv, IOperate op, objectarg)
{
if(dv.DebugMode != 0) op.Print(MessageType.SysDebug,"OnRun", this.Name);
op.Print(MessageType.Information, "HelloWorld!!!", this.Name);
return0;
}
編譯上述代碼,把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 Studio2010環境裡進行驅動調試。
由于YFSoft.DriverTest是一個标準的.NET MicroFramework程式,是以調試的時候,需要把系統設定為.NETMicro Framework系統模式。
確定PF9和GND連接配接。
TinyIOsEmulator項目裡需要引用我們剛剛建立的驅動。
測試的主要代碼如下:
public class YFIOsEmulator
YFIOSios = new YFIOS();
Devicedevice = new Device();
public void Run()
{
IDrivermd = 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);
returnnew YFIOsDriver1();
}
從上圖可以看出,在VisualStudio開發環境裡,我們已經可以進行調試了,并且調試視窗也輸出了Hello world!!!資訊。
本篇文章僅僅是一篇驅動開發入門的文章,要編寫一個比較複雜的驅動,還需要深入學習各種開發知識。
高階驅動開發相關的内容如下:
(1) 驅動裝置變量設計;
(2) 驅動裝置讀寫;
(3) 驅動擴充配置面闆開發;
(4) 驅動代碼引用第三庫;
(5) 驅動YFIOBC操作;
(6) 政策直接調用驅動;
1、.NET Micro Framework 官方網址
<a href="http://www.microsoft.com/netmf/default.mspx">http://www.microsoft.com/netmf/default.mspx</a>
2、.NET Micro Framework官方部落格
<a href="http://blogs.msdn.com/netmfteam/">http://blogs.msdn.com/netmfteam/</a>
3、中文部落格
<a href="http://blog.csdn.net/yefanqiu">http://blog.csdn.net/yefanqiu</a>
<a href="http://www.cnblogs.com/yefanqiu">http://www.cnblogs.com/yefanqiu</a>
4、葉帆科技
<a href="http://www.sky-walker.com.cn/">http://www.sky-walker.com.cn/</a>
5、物聯網中間件技術開發論壇
<a href="http://weibo.com/1804832611?s=6uyXnP" target="_blank"></a>
從2012-12-21起YFIOs和YFHMI将開展為期半年的免費試用活動,符合申請條件的使用者,将依次擷取YFIOs和YFHMI的試用機會。