jacob调用中控考勤机事件监听实现

其他接口都可以正常调用,就事件监听一直没能成功,今天试了下成功监听到打卡机的事件消息,可以实现实时打卡,以下是几个关键的代码

事件类SensorEvents .java

public class SensorEvents {

	public void OnConnected(Variant[] arge){
		System.out.println("当成功连接机器时触发该事件,无返回值====");
	}

	public void OnDisConnected(Variant[] arge){
		System.out.println("当断开机器时触发该事件,无返回值====");
	}

	public void OnAlarm(Variant[] arge){
		System.out.println("当机器报警时触发该事件===="+arge);
	}

	public void OnAttTransactionEx(Variant[] arge){
		System.out.println("id:"+arge[0]);
		System.out.println("是否有效:0有效 1无效"+arge[1]);
		System.out.println("考勤状态:0 上班 1下班 2外出 3外出返回 4 加班签到 5 加班签退...."+arge[2]);
		System.out.println("验证方式 0:密码  1;指纹 15:刷脸认证"+arge[3]);
		System.out.println("验证时间"+arge[4]+"-"+arge[5]+"-"+arge[6]+"-"+arge[7]+":"+arge[8]+":"+arge[9]+" "+arge[10]);
		/*for (int i = 0; i < arge.length; i++) {
			System.out.println(arge[i]);

		}*/
		//System.out.println(arge.toString());
		System.out.println("当验证通过时触发该事件====**"+arge);
	}

	public void OnEnrollFingerEx(Variant[] arge){
		System.out.println("登记指纹时触发该事件===="+arge.clone());
	}

	public void OnFinger(Variant[] arge){
		System.out.println("当机器上指纹头上检测到有指纹时触发该消息,无返回值");
	}

	public void OnFingerFeature(Variant[] arge){
		System.out.println("登记用户指纹时,当有指纹按下时触发该消息===="+arge);
	}

	public void OnHIDNum(Variant[] arge){
		System.out.println("当刷卡时触发该消息===="+arge);
	}

	public void OnNewUser(Variant[] arge){
		System.out.println("当成功登记新用户时触发该消息===="+arge);
	}

	public void OnVerify(Variant[] arge){
		System.out.println("当用户验证时触发该消息===="+arge);
	}

	public void OnWriteCard(Variant[] arge){
		System.out.println("当机器进行写卡操作时触发该事件===="+arge);
	}

	public void OnEmptyCard(Variant[] arge){
		System.out.println("当清空 MIFARE 卡操作时触发该事件===="+arge);
	}

	public void OnEMData(Variant[] arge){
		System.out.println("当机器向 SDK 发送未知事件时,触发该事件===="+arge);
	}

} 

监听的接口方法,跟其他方法一样,关键在于DispatchEvents

    /**
     * 启动事件监听
     */
    public void  regEvent(){
    	zkem.invoke("RegEvent", new Variant(1), new Variant(65535));
    	zkem.invoke("ReadRTLog", new Variant(1));
    	zkem.invoke("GetRTLog", new Variant(1));

        new DispatchEvents(zkem.getObject(), new SensorEvents());
//        new STA().doMessagePump();
        logger.info(machine.getMachinealias()+"->开始事件监听");
//        new STA().doMessagePump();
    }

这里放一下其他部分关键代码,这里是从项目摘录,需要你们自己整理一下,纯原创
打卡机操作关键代码下载

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huihttp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值