找回密码
 立即注册
首页 业界区 业界 中控IFace302考勤机二开内存问题解决方案 ...

中控IFace302考勤机二开内存问题解决方案

沦嘻亟 昨天 19:35
文章背景:收到几好位博友、微信公众号读者在询问中控iface302开发的问题,如“尝试读取或写入受保护的内存”。
一、前言

周日刚好在家,把以前的移动硬盘找了个遍,也找到以前开发中控Iface302的一些案例,由于年份比较较,不能保证一定可以解决问题,但这可能也是一种思路,具体需要根据问题去调度搜索。
二、为什么会有中控考勤机开发

大致的开发背景为:

  • 各工厂考勤没有联网,处理数据孤岛状态
  • 出差到各工厂时,只能手工重复性的采集生物信息,体验、效率都不好,考勤专员每月得处理1~2天
  • 考勤、指纹等生物信息缺乏集中管理,存在同一编号不同机器不同人员的情况
  • 更新考勤机器,或新增考勤机器时无法同步现有的人员、指纹,如果公司有几百、几千人那会是一个少的工作量且非常浪费大家的时间;
  • 与中控售后了解,考勤机不具备对换设备、信息整合的同步
  • 以上问题及要求,最终只能自己根据中控SDK做二次开发,开干~
三、开发效果

零星几张中控考勤机二开效果图:

  • 监控或收集各中控考勤机的打开情况,相当中控提供的客户端,解决数据孤岛问题,包括自动自动指纹、面纹:
1.webp
2.webp


  • 整合各厂人员信息,对指纹进行合并并同步到新考勤中;
3.webp
四、关键代码

通过ReleaseComOjbect释放对象可能会导致对象占用的内存问题导致出错,这里做了优化,即设置对象为空,并执行垃圾回收。
  1. /// <summary>
  2.         /// 连接设备
  3.         /// </summary>
  4.         public void ConnectAsyn()
  5.         {
  6.             if (isConnectting == true)
  7.             {
  8.                 OnShowMessage("正在连接...请稍后...");
  9.                 return;
  10.             }
  11.             try
  12.             {
  13.                 ThreadJob = new Thread(new ThreadStart(Connect));
  14.                 ThreadJob.IsBackground = true;
  15.                 ThreadJob.Start();
  16.             }
  17.             catch (Exception ex)
  18.             {
  19.                 Utils.WriteLog(ex.ToString(), "ConnectAsyn");

  20.                 try
  21.                 {
  22.                     //Marshal.ReleaseComObject(zkDevice);        //否则多次调用时会出现  示尝试读取或写入受保护的内存 这通常指示其它内存已损坏     
  23.                     GC.Collect();
  24.                     zkDevice = null;
  25.                     GC.Collect();
  26.                 }
  27.                 catch (Exception ex2)
  28.                 {
  29.                     Utils.WriteLog(ex2.ToString(), "zkDevice=null");
  30.                 }
  31.             }

  32.         }
复制代码
五、总结


  • 通过中控提供的SDK做二次开发,可以有效的解决中控产品本来不具备的功能,如做人员、指纹的整合、同步;
  • 通过SDK二开,可以做更多个性化的开发,如员工打开时的语音或文字提示;
更多信息可以浏览微信公众号:https://mp.weixin.qq.com/s/DJg9WOSkafFIiz7Fy74jjw

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

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