by fraxzi » Tue Nov 25, 2014 12:49 am
Adolfo,
I don't have the leisure of time to re-create a small sample but this is part of my code:
runtime files I'm using are:
1. commpro.dll
2. comms.dll
3. msvcr71.dll
4. zkemkeeper.dll
5. zkemsdk.dll
6. zkemkeeper.oca
to check if object was registered:
- Code: Select all Expand view
IF !IsActiveX('zkemkeeper.ZKEM.1')
RegisterServer( 'zkemkeeper.DLL' )
ENDIF
to connect:
- Code: Select all Expand view
...
oBiometric := TActiveX():New( oWnd,'zkemkeeper.ZKEM.1')
...
oBiometric:SetCommPassword( 'password' ) //this is important if you set communication password to your biometric device
...
IF ( lGo := oBiometric:Connect_Net( 'ip address', 'port' ) )
IF !oBiometric:IsTFTMachine( 'device_id' ) //you set this nID in your device, important if you have many devices. this is numeric
MsgAlert('non-TFT Device..', 'COMPATIBILITY ISSUE')
ENDIF
...
oBiometric:RefreshData( 'device_id' ) //some commands you may want to use
...
IF oBiometric:ReadGeneralLogData( 'device_id' )
j := 0
WHILE oBiometric:SSR_GetGeneralLogData( 'device_id',,,,,,,,,,) //this is the only way I know how to get number of records from the device.
j++ //if you know a better way please share.
END
oBiometric:ReadGeneralLogData( 'device_id' ) //get ready and position 1st record pointer
//this is how I get every record
WHILE oBiometric:SSR_GetGeneralLogData('device_id', @cEnrollID, @nVerifyMO, @nInOutMO, @nYearOUT, @nMoOUT, @nDayOUT, @nHrOUT,
@nMinOUT, @nSecOUT, @nWorkOUT )
...
//work your way here how to process those data
END
ENDIF
ELSE
nError := 0
oBiometric:GetLastError(@nError)
msginfo( nError )
ENDIF
Please share if you have better ways or faster ways to get all those data.
I hope this helps.
Kind Regards,
Frances
Fivewin for xHarbour v18.07
xHarbour v1.2.3.x
BCC 7.3 + PellesC8 ( Resource Compiler only)
ADS 10.1 / MariaDB
Crystal Reports 8.5/9.23 DE
xMate v1.15