未来索引
开启左侧

RFID刷卡拍照

[复制链接]
邢远 发表于 2013-5-2 08:08:27 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

RFID刷卡拍照,如果是传统意义上的开发,我们一般需要先知道是什么型号的RFID刷卡器,自己动手编写一套读写RFID的代码,用来读取RFID标签。摄像头驱动开发也是这样的,先要知道摄像头驱动的协议,然后自己编写读取图像并显示的代码。

如果是windows平台,一般厂家还会提供dll等调用库,这样只需调用相关接口函数就能实现相关的功能,不过如果是嵌入式平台,就相对比较麻烦一些了,一般都需要根据通信协议自行开发相关驱动程序。

无论采用何种办法,我们实现了该功能。但是过了一段时间,RFID设备换了,摄像头设备也换了,那么我们的大部分代码一般都要作废了,需要重新进行相关驱动的开发,如果这是已经安装到现场的项目,临时更换相关传感器设备,那对开发厂家来说,真是一场梦魇。

而基于物联网中间件平台进行这类程序开发,就会很好的规避这类问题。

(1)、平台自带相关驱动(也可以自己开发,后续复用)。

(2)、远程配置,远程部署,随时更换驱动。

(3)、驱动和业务逻辑完全解耦合。

下面就以RFID刷卡拍照为例,介绍基于YFIOs物联网中间件平台,如何进行相关程序的开发。

RFID和摄像头的驱动如何开发,我们本篇文章就不作介绍了,我们直接使用已经开发好的驱动。

RFID驱动配置

我们选用的易火眼的串口RFID驱动,只需如下配置即可。

(1)、新建用户设备,选择YHY632的RFID读卡器的驱动。

1364131817_7198.JPG


(2)、配置设备参数,选择设备所接的串口,及配置串口参数。

1364131821_7523.JPG


(3)、其它参数都是默认,勾选变量自动添加,这样用户变量就不需要手动创建了。


1364131824_2229.JPG



1364131827_8606.JPG

变量自动添加(设备名字:关键字)

摄像头驱动配置

1364131829_7035.JPG


选择对应型号的驱动,设定串口号和串口参数,勾选变量自动添加选项。

    该驱动的扫描周期需要设置为0,表示该驱动不会自动运行。

业务逻辑编程(策略开发)

业务逻辑相对简单:先判断是否刷了RFID卡,如果刷了,则进行拍照。

根据这种业务逻辑,为了降低资源的使用,我们采用事件方式触发该策略的执行。也就是驱动执行一次完毕后,调用一次该策略,并向该策略传递驱动程序运行的结果。

public int OnRun(IOperate op, StrategyModemode, object arg)

    {

        int val = (int)arg;

        if (val == 0)

        {

           Bitmap bmp = null;

           //调用摄像头驱动,设备名称需要和配置的一致

           int ret = op.DriverRun("CameraDriver", null);           

           if (ret == 0)

           {

               int hander = op.IOBC_Create(op.IORead("CameraDriver:BlockName"), 0);

               if (hander >= 0)

               {

                    intCount = op.IOBC_GetLength(hander);

                    byte[]dataSrc = new byte[Count];

                    op.IOBC_Read(hander,dataSrc, 0, Count);

                    op.IOBC_Close(hander);

                    bmp = new Bitmap(dataSrc,Bitmap.BitmapImageType.Jpeg);

bmp.Flush();

               }

            }

           return 0;

      }

以上代码相对简单,有几个地方需要说明一下:

(1)、object arg参数跟调用的机制相关,和驱动绑定的事件中,会传递驱动执行的结果,如果是策略调用策略,相关的值根据实际需要进行传递。在本应用中,arg是一个整型数,为0表示驱动执行成功。

(2)、根据设备驱动的名称调用驱动。

(3)、大块数据的交互,通过YFIOBC数据块完成。

策略编写完毕后,需要进行加载:


1364131850_4189.JPG



执行模式为事件模式,和RFID驱动绑定。在驱动的OnRun函数执行完毕后调用该策略,并把执行结果以参数的方式传递给策略。

部署运行

1364131854_2634.JPG


1364131858_1010.JPG


设备更换

物联网中间平台的最大优势体现在设备更换上,如果我们需要更换摄像头,则不需要更改任何代码,直接更换摄像头驱动即可。


1364131861_4920.JPG

1364131865_9650.JPG


1364131868_7276.JPG

1364131871_8269.JPG


该会员没有填写今日想说内容.

精彩评论3

lwm178 发表于 2013-5-2 08:56:27 | 显示全部楼层
{:soso_e108:}
智能技术共享平台 - 未来论 http://www.mywll.com/
回复

使用道具 举报

kkssong 发表于 2013-5-2 14:02:49 | 显示全部楼层
智能技术共享平台 - 未来论 http://www.mywll.com/
回复

使用道具 举报

武汉智能-行 发表于 2013-7-13 23:00:44 | 显示全部楼层
顶顶,顶顶,这个好
智能技术共享平台 - 未来论 http://www.mywll.com/
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注2973

粉丝3237

帖子9937

发布主题
推荐阅读 更多
阅读排行 更多
广告位
!jz_fbzt! !jz_sgzt! !jz_xgzt! 快速回复 !jz_sctz! !jz_fhlb! 搜索

智能技术共享平台 - 未来论

关注服务号

进入小程序

全国服务中心:

运维中心:天津

未来之家:天津 青岛 济南 郑州 石家庄

                商务邮箱:xy@mywll.com

Copyright © 2012-2021 未来派 未来论 (津ICP备16000236号-5)