码迷,mamicode.com
首页 > 其他好文 > 详细

采集器Server

时间:2015-06-08 18:48:02      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

    公司搞工业的,面对不同的工业通讯数据协议,需要一个采集器(like ge.Collector)收集不同协议的数据,并将之数据使用指定格式上传到数据接收服务器,且本地做http发布服务。

设计

    不同的工业采集2次开发模块可能会不同,有的是事件通知,有的是需要自己去要;因此需要一种通用的模式 —— 时序扫描模式。为了快速查找,因此我们从Dictionary派生一个CollectService,定义如下:

     技术分享

类似游戏中tick一样,通过容器式的自顶向下的扫描,嗯可以看到sender在这里,所有的数据都一样嘛一个管线发送就行了,好,现在看看定义的通用采集器:

技术分享

为什么用hashtable了?数据源类型不一,要类型格式化的话哪的去配置类型了。还有一个好处就是快,更何况经常需要就是用名字查找呢。

好了,将他扔进ServiceHost派生出来的HttpServer吧。

创建个项目,引用该项目写个OPC实现,once more 在来个modbus;

好了,搞定!

其余的就见代码吧:http://yunpan.cn/cwUbz8BggI4aD  访问密码 8d70

蛋疼的一些事

开始时,没有巨合适的http server;大概找到一个什么嵌入式http server,看似ok,一用起来就惨不忍睹,先是长度问题,然后tcp连接中微软本身的一个bug,到底都很迅速搞定;那边接口非要他娘的rest,mvc router倒是巨容易,rest的参数在中间,没得办法慢就慢点吧,没法hash了,动态算找。后来出来了一些不错的微型http server,再然后wcf有这么个东西,巨爽快—— 用同事的话说,分分钟搞定!

OPC性能问题,搞了个叫什么Auto OPC的dll,开始用的其事件驱动模式 —— 竟然数据不能OK;还好可以用读取的方式,试了好一阵参数还好搞定。

 

采集服务器:

采集器Server

标签:

原文地址:http://www.cnblogs.com/huapiaoshuiliuxi/p/4561263.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!