我正在尝试使用Java程序连接生物识别指纹考勤设备。我使用的设备是 Pegasus T5 指纹扫描仪。不幸的是,他们用于此设备的SDK(which can be downloaded here)仅涵盖了我没有专业知识的C#,。Net和VB。当我向制造商提出要求时,他们回复说该设备没有 Java SDK 。虽然我对这些语言都不了解,但我尝试了解SDK中的代码以了解设备是如何连接的,我看到它只是使用网络ip和端口与设备建立连接。号。
如果您参考设备的C#SDK,您可以看到我在此处看到的示例
frmEvent.cs 在cmdStartMoniter_Click
方法中,建立连接如下。
bRet = bpc.StartEventCapture(0, util.pubIPAddrToLong(txtSourceIP.Text), Convert.ToInt32(txtPortNumber.Text));
这就是将StartEventCapture
方法称为public virtual bool StartEventCapture(int dwCommType, int dwParam1, int dwParam2);
,它出现在 .dll 文件中,而且由于我对如何弄清楚代码。
然而,保留我在脑海中看到的那个例子,作为我的下一步,我开始研究如何使用指纹设备连接,发送和检索数据的全球标准,我再也没有幸运地发现解。但是有些人试图处理相同的例子和我自己看到的例子,我尝试通过创建Socket
对象来连接设备,但是当我执行它时,它只会导致java.net.ConnectException: Connection timed out: connect
有四个问题
Socket
连接到设备是一个解决方案,是否有任何特定的标准请求我应该发送到设备以便从中接收响应?< / LI>
这是我用来连接设备的代码。
String host = "192.168.168.100";
int port = Integer.parseInt("5005");
try {
Socket socket = new Socket(host, port);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while (true){
line = in.readLine();
if (line != null){
System.out.println(line);
}
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:3)
每个生物制剂设备通常都有lAN端口或Web界面。 Biomatric设备在特定端口上发送数据。例如
192.168.1.23:8080
你可以使用java套接字与它建立连接,并且可以读取数据..
Socket socket = new Socket("192.168.1.23","8080");
坚持下去
享受
答案 1 :(得分:0)
刚刚浏览了从问题中分享的链接下载的示例代码。让我分享我的几美分,如果这有助于你。
根据代码,我们无法通过简单的套接字编程直接连接机器。只有当您知道没有任何制造商共享的低级通信协议时,这是可能的。因此,您必须仅遵循他们的SDK。
来到SDK
AxSBXPC :: StartEventCapture有三个参数,第一个参数表示TCP / IP或串行通信。 0表示TCP / IP,1表示串行通信。
对于TCP / IP,第二和第三个参数是IP和PORT。
首先通过TCP / IP连接机器来实现一个简单的程序。一旦成功,您可以移动实现事件和处理数据。在运行程序之前,必须通过配置的IP检查生物识别计算机是否可以在计算机中ping通。
您需要查找出勤,用户更新等事件,并根据需要实施。事件由XML参数触发,该参数保存所有数据数据,因此您必须找到您想要阅读的每个项目的键。
Pegasus不提供直接云通信,如果您需要直接云通信,Victor指出,您将不得不使用支持web api的生物识别机。
答案 2 :(得分:-1)
如果您尝试访问生物识别计算机以与Web应用程序关联,请查找CAMSUnit计算机。 CAMS为其生物识别机器提供WEB APIs。它支持注册每次注册新考勤时调用的回调URL。