12.4        设备驱动的开发… 6,举办数量打包

1.1    三回开发流程图

 图片 1

目       录

1.2    引用相关组件

找到“开发包”,引用里边的连锁组件。如下图:

 图片 2

第7二章     三遍开发及应用… 2

1.3    开发设备驱动模块

12.1        项目配制… 3

1.3.1    开发发送协议驱动

 
继承SuperIO.Device.DeviceSendProtocol接口,覆盖相关的FunctionXX接口函数,进行数据打包,“XX”代表16进制的数据,例如:Function31函数通过this.SendProtocol.GetSendCmdBytes(addr,
new byte[] { 0x32 }, null, false)函数举行调用。

    接口函数能够与接受协议中的接口函数相对应。

12.2        引用相关组件… 4

1.3.2    开发接收协议驱动

  
继承SuperIO.Device.DeviceReceiveProtocol接口,覆盖相关的FunctionXX接口函数,举办数据打包,“XX”代表16进制的数额,例如:Function31函数通过this.ReceiveProtocol.GetAnalysisData(data,
null, -1)函数进行调用。

   接口函数可以与发送协议中的接口函数相呼应。

12.3        打造主程序… 5

1.3.3    参数数据、实时数据持久化

  
可以继续SuperIO.Device.DeviceParameter和SuperIO.Device.DeviceRealTimeData类,在子类中伸张新的习性,覆盖SaveSerializePath属性内定保存数据的门径,举行系列化和反种类化操作举办封存和获取数量。

    
1回开发者可以SuperIO.SerializeOperation.SerializeOperation类型自定义数据持久化类。

12.4        设备驱动的开发… 6

1.3.4    开发运作设备驱动

    
继承SuperIO.Device.RunDevice1抽象类,重写相应的函数接口已毕相应的效果。

切切实实的函数功效表达请看后续的费用实例。

12.4.1       假定通信协议… 6

1.3.5    创建ContextMenu菜单

经过设备接口的ShowContextMenu函数突显上下文菜单,当在软件平台的列表中右键单击时会突显那些菜单界面。

12.4.1.1   发送读实时数据命令协议… 6

1.4    开发图形呈现模块

    
图形展现界面要同时继续Form窗体类和SuperIO.Show.IGraphicsShow接口,用于浮现窗体和驱动数据。

可以把差其余数码消息集成到贰个界面下显得,查看更直观、方便。

12.4.1.2   解析实时数据协议… 6

1.5    开发数据异出模块

对于同样类设备,在不更改设备驱动模块的状态下,输出差距格式的数量,越多的用来与此外集成系统对接。

12.4.1.3   发送和接收数据事例… 7

1.6    开发服务模块

在那边可以支付针对设备、平台的各类服务,例如:平台收集完数据新闻后上传播服务中央等,利用此类接口接口应用相比普遍。

12.4.2       新建设施模块… 7

1.7    调试驱动、模块

可以继承MainForm窗体,调用调试接口,在有界面的景况下展开调试;也

可以,通过DebugDevice.
GetDebugInstance()拿到调试实例,在无界面的状态下举办调节。

12.4.3       营造协商驱动… 8

1.8    挂载驱动、模块

运作ConfigTool.exe配置工具,对开发好的驱动、模块举办挂载。如下图:

 图片 3

 

作者QQ:504547114

交流QQ群:54256083

12.4.4       打造参数和实时数据实例类… 8

合法网址:http://www.bmpj.net

源小说地址:http://www.bmpj.net/index.php?m=article&f=view&id=3

12.4.5       打造设备驱动… 9

12.5        图形突显的开发… 9

12.6        数据导出的开发… 9

12.7        服务组件的开发… 10

12.8        配置工具的应用… 10

12.8.1       参数配置… 10

12.8.2       驱动挂载… 11

12.9        小结… 11

第7二章      2回开发及运用

   
扶助三次开发是框架的显要特色,作为设计者或架构师能使自个儿的创作广泛被采纳是一件很荣幸的一件事。不管做过多少项目,可以有友好的代表作品是一件很不简单的一件事,可以因此三个小说广泛的交接一些有情人也是一件很庆幸的事。所以,一向不遗余力让SuperIO更稳定、更好的辅助1次开发、更快的创设三个通信平台。

   这一部分着重介绍利用SuperIO举行二回开发,开发流程如下图:

 图片 4

 

12.1     项目配制

1)目的框架选用Framework4.0

 图片 5

2)生成的靶子平台应用x86

 图片 6

    
全体事例程序的靶子平台运用x86。首要考虑到叁拾叁人操作系统与64操作系统的兼容性。

12.2     引用相关组件

     在“开发包”中引用相关组件。如下图:

 图片 7

12.3     打造主程序

  
通过两次三番SuperIO.UI.MainForm窗体类可以营造和谐的宿主程序,那只是2个着力的界面框架,可以在此基础上开展扩展。打造好的宿主程序如下图:

 图片 8

12.4     设备驱动的支出

12.4.1倘使通信协议

12.4.1.1 发送读实时数据命令协议

   
计算机发送0x61指令为读实时数据命令,共发送陆个字节,校验和为从“从机地址”初始的增加和,不包蕴“数据报头”、“校验和”和“协议截至”。

    发送指令数据帧如下:

帧结构

数码报头

从机地址

一声令下代码

校验和

协议截至

0x55

0xAA

 

0x61

 

0x0D

字节数

1

1

1

1

1

1

  

12.4.1.2 解析实时数据协议

  
下位机接收到读实时数据命令后,并校验成功,重临实时数据,校验和为从“从机地址”初阶的增加和,不包罗“数据报头”、“校验和”和“协议停止”。

   接收数据帧如下:

帧结构

数量报头

从机地址

命令代码

流量

信号

校验和

协商为止

0x55

0xAA

 

0x61

浮点型

浮点型

 

0x0D

字节数

1

1

1

1

4

4

1

1

 

12.4.1.3 发送和接收数据事例

出殡(十六进制):0x55 0xaa 0x00 0x61 0x61 0x0d

接纳(十六进制):0x55 0xaa 0x00 0x61 0x43 0x7a 0x00 0x00 0x43 0xb4 0x15
0x0d

流量数据为:250.00

信号数据为:360.00

12.4.2新建设备模块

   如下图:

 图片 9

     增加对SuperIO.dll的引用,如下图:

图片 10 

12.4.3营造协商驱动

      新建三个类:MySendProtocol
和MyReceiveProtocol,MySendProtocol继承SuperIO.Device.DeviceSendProtocol基类,MyReceiveProtocol类继承SCL.Device.DeviceReceiveProtocol。

MySendProtocol 和MyReceiveProtocol八个类都重写(override)

     
“Function61”函数,MySendProtocol类中的Function61函数达成打包发送命令操作,MyReceiveProtocol类中的Function61函数已毕解析数据操作,FunctionXX在四个类中都会成对出现,紧如若为了好记。

 在MySendProtocol实例中可以调用DriverFunction函数,传入相应的通令,例如:0x61。会自动调用“Function61”函数,作为调用相应命令函数的驱动接口。GetSendCmdBytes函数接口是在DriverFunction函数基础上包裹的,同样也得以应用,然则要把“isbox“设置成false,否则会对发送的数额做特殊的拍卖。

     
在MyReceiveProtocol实例中可以调用DriverFunction函数,传入相应的授命,例如:0x61。会自行调用“Function61”函数,作为调用相应命令函数的驱动接口。GetAnalysisData函数是在DriverFunction函数基础上包裹的,同样可以接纳,只是多调用了一层GetCommand函数接口。

      具体代码请参见:Device德姆o项目。

12.4.4营造参数和实时数据实例类

   
新建多少个类:MyDeviceParameter和MyDeviceCR-VTDataMyDeviceParameter继承SuperIO.Device.DeviceParameter类,用于保存备参数,可以在此类中追加新的设施参数。

   
MyDevice宝马X3TData继承SuperIO.Device.DeviceRealTimeData类,用于保存设备的实时数据,可以依据报纸公布协议自定义设备的实时数据。

   
那多个类继承基类后会自动一而再SaveSerialize和GetSerialize八个泛型函数,SaveSerialize函数是把当前目的体系化成XML,GetSerialize是把序列化的XML反向变化对象实例。SuperIO.Device.DeviceParameter类和SuperIO.Device.DeviceRealTimeData类是持续自SerializeOperation类,他们的接口是IserializeOperation,SerializeOperation只是三个简易的种类化XML操作类库。

即使开发者想全盘自定义3个数据持久文件,那么可以继续IserializeOperation接口,重写相应的接口函数,自定义存储数据的法子。

12.4.5创设设备驱动

   
“构建协商驱动”和“创设参数和实时数据实例类”两节都以为构建运维设备做的早先时代准备,将作为运营设备的属性。

     新建二个装置类:MyDevice,它连续自SuperIO.Device. RunDevice1。

     开发者注意到还有三个SuperIO.Device.
RunDevice类,它是比较早的运维设备类,考虑的平台的包容性,以往还在一而再使用,但是新开发的装置模型不提议使用SuperIO.Device.
RunDevice1类。它们都以继承自IRunDevice接口。

12.5     图形呈现的支出

  1. 日增对SuperIO组件的引用。
  2. 新建Form窗体,继承SuperIO.Show.IGraphicsShow接口,并且已毕接口功效。
  3. 通过UpdateDevice接口落成解析对象,并显示解析对象后的数额。

12.6     数据导出的支出

  1. 日增对SuperIO组件的引用。
  2. 新建类,继承SuperIO.Export.IExportData接口,并且达成接口功能。
  3. 经过UpdateDevice接口达成解析对象,并出口格式化后的数码。

12.7     服务组件的付出

  1. 日增对SuperIO组件的引用。
  2. 新建类,继承SuperIO.Services.AppService抽象类,并且完成接口效率。
  3. 能够经过UpdateDevice接口函数更新配备的缓存数据。

12.8     配置工具的应用

    
手动对框架平台的安插文件进行修改,对安顿音讯不简单精晓,也便于影响配置文件的格式,所以写了一个配备工具“ConfigTool.exe”,对框架平台的大局参数和驱动消息举办挂载、删除等。

12.8.1参数配置

   
参数配置主要涉嫌到:软件音讯、安装操作、互联网和串口通讯等消息。配置内容如下图

 图片 11

12.8.2驱动挂载

   
配置工具也可以挂载驱动和插件,配置好以后,运转框架平台可以对其进展操作,以挂载设备驱动为例如下图:

 图片 12

12.9     小结

   
对装备驱动的成本进展了详实的牵线,对于其他插件请依据实际的情事开展付出,详情请参见《3遍开发手册》。

 

我:唯笑志在

Email:504547114@qq.com

QQ:504547114

.NET开发技术联盟:54256083

文档下载:http://pan.baidu.com/s/1pJ7lZWf

合法网址:http://www.bmpj.net

相关文章