欢迎来到天天文库
浏览记录
ID:38774555
大小:49.62 KB
页数:10页
时间:2019-06-19
《依时利IC卡考勤门禁机接口C#实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、依时利IC卡考勤门禁机接口C#实现1.依时利这个坑爹的货,竟然不提供C#方面的Demo支持!哎俺自己写一个,存一下怕以后忘记哈哈!!2.首先创建一个winfrom项目名称为:edaxKQ(仅供参考,俺乱命名的不准笑话小弟哈哈!)如图:由于依时利提供的接口是delphi编写的,所以嘛不能直接引用,需要借助:[DllImport("EastRiver.dll")]方式引入:将依时利提供的EastRiver.dll文件拷贝到项目的binDebug目录下(当然也可以放别的目录只要你能让dllImport找到是吧哈哈)。3.好了到这里前期准备做好了,现在我们开始编写连接卡机和端口连接
2、的接口;(其实接口可以通过依时利提供的API找到,但是实在有点坑爹)4.连接接口实现打开依时利API我们可以找到连接接口,在C#中进行重写,(名字能错哦,好吧我废话了,重写当然不能错)//////联机卡机:///其他值成功返回端口句柄////-1端口无效或真正使用////0无法联机//////COM端口号///端口波特率///卡机序号///3、rns>[DllImport("EastRiver.dll")]publicstaticexternIntPtrConnectClock(intport,intBaudRate,intclock_id);重写了接口后,我们打开Form1窗体,在里面创建对应参数的输入和测试按钮,如图:(对应参数这里就不解释了哦!做考勤机开发的应该都知道了吧哈哈!啊对了卡机序列号解释下,开启依时利卡机后,在屏幕上可以看到一个序列号便是卡机序列号了,一般都是1),双击测试联机按钮,进入代码体,调用联机接口:_port=Convert.ToInt32(this.txtCom.Text.ToStrin4、g());_BaudRate=Convert.ToInt32(this.txtBaudRate.Text.ToString());_clock_id=Convert.ToInt16(this.txtClock.Text.ToString(),16);_hPort=ICheck.ConnectClock(_port,_BaudRate,_clock_id);if(_hPort.ToInt32()!=0){MessageBox.Show("联机成功!");}else{MessageBox.Show("联机失败!");}看到这里有些童鞋可能不知道上面那些参数是干嘛的,别的不解释了都5、是定义的变量,这里介绍下_hPort变量,这个变量是在接口联通的时候,存储由接口返回的COM口句柄,在后面的使用需要联机操作的接口中,都需要使用到该变量中存储的Com口句柄;(说白了就等于是一个已经打开的SQL连接,这个貌似好理解点)到这里我们就联机成功了。1.端口端口连接当然有连接就会有端口么,当操作卡机完毕后就需要关闭端口和断开端口和卡机连接,实现API接口如下://////断开联机:///False失败/True成功//////端口句柄-通过[ConnectClock]获取///6、[DllImport("EastRiver.dll")]publicstaticexternBooleanDisConnectClock(IntPtrhPort);好吧我承认这个简单,记得上面我们说过_hPort这个变量是存储什么的吧。对就是一个连接,这里要断开这个连接,就把他传进去就行了。调用代码如下:privatevoid关闭端口_Click(objectsender,EventArgse){if(ICheck.DisConnectClock(_hPort)){MessageBox.Show("端口已关闭!");}}现在实现了联通和关7、闭卡机,我们试着去读取一下卡机信息1.读取卡机时间我们先在窗体上画一个存放时间的文本框先:然后找到API中读取时间的函数,(貌似没提供,我是打开他们delphi的接口包才找到的)实现如下://////获取卡机时间--需要联机:///False失败/True成功//////端口句柄-通过[ConnectClock]获取///时间变量存放返回时间///
3、rns>[DllImport("EastRiver.dll")]publicstaticexternIntPtrConnectClock(intport,intBaudRate,intclock_id);重写了接口后,我们打开Form1窗体,在里面创建对应参数的输入和测试按钮,如图:(对应参数这里就不解释了哦!做考勤机开发的应该都知道了吧哈哈!啊对了卡机序列号解释下,开启依时利卡机后,在屏幕上可以看到一个序列号便是卡机序列号了,一般都是1),双击测试联机按钮,进入代码体,调用联机接口:_port=Convert.ToInt32(this.txtCom.Text.ToStrin
4、g());_BaudRate=Convert.ToInt32(this.txtBaudRate.Text.ToString());_clock_id=Convert.ToInt16(this.txtClock.Text.ToString(),16);_hPort=ICheck.ConnectClock(_port,_BaudRate,_clock_id);if(_hPort.ToInt32()!=0){MessageBox.Show("联机成功!");}else{MessageBox.Show("联机失败!");}看到这里有些童鞋可能不知道上面那些参数是干嘛的,别的不解释了都
5、是定义的变量,这里介绍下_hPort变量,这个变量是在接口联通的时候,存储由接口返回的COM口句柄,在后面的使用需要联机操作的接口中,都需要使用到该变量中存储的Com口句柄;(说白了就等于是一个已经打开的SQL连接,这个貌似好理解点)到这里我们就联机成功了。1.端口端口连接当然有连接就会有端口么,当操作卡机完毕后就需要关闭端口和断开端口和卡机连接,实现API接口如下://////断开联机:///False失败/True成功//////端口句柄-通过[ConnectClock]获取///
6、[DllImport("EastRiver.dll")]publicstaticexternBooleanDisConnectClock(IntPtrhPort);好吧我承认这个简单,记得上面我们说过_hPort这个变量是存储什么的吧。对就是一个连接,这里要断开这个连接,就把他传进去就行了。调用代码如下:privatevoid关闭端口_Click(objectsender,EventArgse){if(ICheck.DisConnectClock(_hPort)){MessageBox.Show("端口已关闭!");}}现在实现了联通和关
7、闭卡机,我们试着去读取一下卡机信息1.读取卡机时间我们先在窗体上画一个存放时间的文本框先:然后找到API中读取时间的函数,(貌似没提供,我是打开他们delphi的接口包才找到的)实现如下://////获取卡机时间--需要联机:///False失败/True成功//////端口句柄-通过[ConnectClock]获取///时间变量存放返回时间///
此文档下载收益归作者所有