《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项相关的知识,希望对你有一定的参考价值。
感谢唯笑志在分享
原博主原地址:
http://www.cnblogs.com/lsjwq/
目 录
8.单例通讯模式开发及注意事项... 2
8.1 概述... 2
8.2 通讯机制说明... 2
8.3 设备驱动开发注意事项... 2
8.4 宿主程序服务实例配置注意事项... 3
8.5 单例模式运行效果... 4
8.单例通讯模式开发及注意事项
8.1 概述
单例通讯模式只适用于网络通讯,并且只能增加一个“设备驱动”,这里“设备驱动”是逻辑概念,代表了所有设备或传感器,也就是说所有接到的数据全部分发给这个“设备驱动”。
8.2 通讯机制说明
只有网络通讯时可以使用这种控制模式。在一个服务实例内只能有一个设备驱动,相当于一个设备驱动对应着N多个硬件设备终端。更适合通讯的数据协议有固定的标准,以命令关键字处理不同的数据。适用于高并发的硬件终端设备主动上传数据,服务器端根据数据信息进行处理和返回相应的数据。
通讯结构如下图:
8.3 设备驱动开发注意事项
单例模式的设备驱动开发更简单,如果业务不复杂,那么只涉及到初始化参数、实时数据、协议,以及数据的处理逻辑,更高级的应用会涉及到协议数据过滤(IReceiveFilter接口)、数据转发(IService接口)、数据视图展示(IGraphicsShow接口)等,将在后续的文章中逐一进行介绍。
8.4 宿主程序服务实例配置注意事项
sta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
static void Main( string [] args) { //55 AA 00 61 43 7A 00 00 43 B4 15 0D DeviceSingletonDriver dev1 = new DeviceSingletonDriver(); dev1.DeviceParameter.DeviceName = "网络设备" ; dev1.DeviceParameter.DeviceAddr = 0; dev1.DeviceParameter.DeviceID = "0" ; dev1.DeviceDynamic.DeviceID = "0" ; dev1.DeviceParameter.DeviceCode = "0" ; dev1.DeviceParameter.NET.RemoteIP = "127.0.0.1" ; dev1.DeviceParameter.NET.RemotePort = 9600; dev1.CommunicateType = CommunicateType.NET; dev1.Initialize( "0" ); IServer server = new ServerManager().CreateServer( new ServerConfig() { ServerName = "单例服务" , NetReceiveBufferSize = 1024, ControlMode = ControlMode.Singleton, MaxConnects = 4000 }); server.AddDeviceCompleted += server_AddDeviceCompleted; server.DeleteDeviceCompleted += server_DeleteDeviceCompleted; server.SocketConnected+=server_SocketConnected; server.SocketClosed+=server_SocketClosed; server.Start(); server.AddDevice(dev1); while ( "exit" == Console.ReadLine()) { server.Stop(); } } |
ControlMode = ControlMode.Singleton设置成单位模式就可以了。
8.5 单例模式运行效果
在本机跑过10000万个并发连接,用的jmeter,jmeter占用了1.4G左右的内存、90%多的CPU,我也不知道为什么这么耗资源,笔记本勉强还能工作。
现在模拟的是15个客户端,100毫秒发送一次数据,效果如下:
- 图片
以上是关于《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项的主要内容,如果未能解决你的问题,请参考以下文章
《连载 | 物联网框架ServerSuperIO教程》- 7.自控通讯模式开发及注意事项
《连载 | 物联网框架ServerSuperIO教程》- 8.单例通讯模式开发及注意事项
《连载 | 物联网框架ServerSuperIO教程》- 12.服务接口的开发,以及与云端双向交互
《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求
《连载 | 物联网框架ServerSuperIO教程》- 10持续传输大块数据流的两种方式(如:文件)
《连载 | 物联网框架ServerSuperIO教程》- 18.集成OPC Client,及使用步骤。附:3.5 发布与更新说明。