天天看點

【物聯網中間件平台-04】YFIOs驅動開發指南1 YFIOs簡介2 驅動開發3 驅動調試4額外說明5相關資源

文檔名稱

版本

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的試用機會。

繼續閱讀