making arduino communicate with a fingerprint time attendance system

hello guys,

Usually all Fingerprint time attendance systems (FTA) uses an sdk in windows platform to download and manage attendance data of employees and students. I am planning to write the same software on the arduino platform .

The SDK in windows uses a zkemkeeper.dll to send the commands to the FTA .

All i need to do is to connect to the FTA and download the attendance logs to an SD card using the ethernet shield on the Arduino uno.

As i have checked the FTA Device uses UDP protocol (using smsniff).

so is there a chance i can write a simple udp protocol to send a command and recieve these attendance logs ?
or should i write a code for arduino to access the dll and use that to communicate with the device ?

I have attached a C# code used for the sdk in windows . i just need a code in arduino with the same functionality .

Please Help me.

THANKS eagerly waiting for the replys.
Avin

AttLogsMain.cs (20 KB)

so is there a chance i can write a simple udp protocol to send a command and recieve these attendance logs ?

There probably is. If you have any idea what to send and what the format of the response will be.

I have attached a C# code used for the sdk in windows . i just need a code in arduino with the same functionality .

The Arduino is not going to be able to communicate with a dll. A dll is a dynamically linked (and loaded) library. There needs to be an executable that causes the loading to take place. If there is going to be an executable running, the executable might as well talk to the Arduino in a controlled fashion.

Yes I do know what to send, there are syntaxes of commands that needs to be sent for it to reply back with what I need .
But having said that I donno how to interpret those commands in arduino language . I mean to say there is a command which runs on C# or Vb , I donno what subtle changes I need to make to make it work on the arduino.
Could you please help me with that ?

Do you have a link to the device you want to talk to? The C# code implies that it is a serial device, so the Arduino might be able to communicate directly with it.

I mean to say there is a command which runs on C# or Vb , I donno what subtle changes I need to make to make it work on the arduino.

Show us one of those commands. If the command is a text string, sending the same text string from the Arduino us trivial. If the command involves binary data, it is not too difficult to make that happen from the Arduino.

Connect_Net
[Definition]
VARIANT_BOOL Connect_Net( [in] BSTR IPAdd, [in] long Portl)
[Usage]
Connect to the device via the IP address and set up a network connection with the device.
[Parameter]
IPAdd:
IP address of the device
Port:
Port number used for connecting to the device. The default value is 4370.
[Return Value]
Return True if it is successful, or return False.

this is the command to connect to the device. There is another command to download the attendance log which is this.

5.2.1 Attendance Record Data
5.2.1.1 ReadGeneralLogData
[Definition]
VARIANT_BOOL ReadGeneralLogData( [in] long dwMachineNumber)
[Usage]
Read attendance records and write them into the internal buffer of the PC. This function is
the same as ReadAllGLogData.
[Parameter]
dwMachineNumber:
Device number
[Return Value]
Return True if it is successful, or return False.

Thank you

this is the command to connect to the device.

No, it isn't. It's the function to call to make the dll send a command to the device. Big difference.

Ok. so what should I do to make it communicate ? Or is it not possible ?

Ok. so what should I do to make it communicate ?

You'll need to figure out how Connect_Net() does whatever it is it does.

You might want to read reply #3 again.

Ya so I need to know how the DLL works right ? Cos I guess these functions are called from the DLL .... But I'm not getting the source code for that in order to read and understand