`
lovnet
  • 浏览: 6694313 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

ASP.NET与硬件打交道的项目(BS控制Led显示屏)解决方案

阅读更多

前些日子作了这么一个项目,用户提出的需求是远程控制Led显示屏的功能,所谓Led显示屏,就是大家经常在银行,火车站看到的超大的那种显示屏。由于以前没弄过和硬件打交道的项目,并且是BS的,项目也比较突然,所以没想出什么太好的解决方案,下面我说说我最终用的解决方案,希望园里的大虾老虾们能给出更好的解决方案。大家一起探讨。

用户需求

先来说说用户的需求:这个项目是给银行做的,所以只是在局域网内使用,具体的网络架构是银行的事了。既然是局域网,所以在网络带宽上没有问题。这家公司已经做好了一个CS的软件,可以很好的对Led进行控制(人家是专业做Led的),但是银行方面非要个BS的,没办法!所以找到的我们。

用户主要的需求就是对Led的控制,可以编辑在Led上显示的内容,编辑完后用任务审核,审核成功后发下给Led进行显示,对Led的控制(开启,关闭,显示的亮度.......),远程的对Led进行监控,看到Led上当前显示的内容。

软件功能的划分和解决方案:

对硬件操纵的DLL公司给提供,毕竟他们有现成的(C++写的),所以这方面不用我们考虑。我们直接拿来掉就可以了。

整个软件分为两个部分:服务器端,客户端

这样有点类似于Socket,服务器端做了一个专门的监听程序,通过客户端的请求进行相应的操作,如:任务的下发,对led的控制等。

主要说说客户端,分了四块(用户有权限控制):

系统管理(Led管理,用户管理,日志管理,执行命令),编辑任务,审核下发,监控任务。由于公司提供的DLL在下发任务的时候是以.BMP图的形式进行处理的,也就是说我需要在客户端编辑完成后截出编辑区域的内容,生成一张.BMP的图上传到服务器。这个截图的动作不是用户来完成的,上传图片的动作也不是用户做的,都是代码自定完成的。所以像js截图什么的就不行了。

我们最终用的方案是制作ActiveX控件(因为如果以IE为坐标截屏很难控制),客户端如果第一次使用需要安装个ActiveX。索性我们将任务的下发,Led监控都做成了ActiveX。与服务器的通信采用的Socket,而没用Web服务之类的。

但是我感觉做成ActiveX的解决方案不是很好,不太符合BS的结构,由于项目比较急,所以只好先用着了。现在项目结了,拿出来探讨下,想知道大家在做何硬件打交道的项目中是如何处理的,希望高手多多指教,不胜感激。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics