Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-08-2015
Panasys Panasys is offline
Miembro
 
Registrado: ago 2007
Posts: 88
Poder: 17
Panasys Va por buen camino
Placas ZK de control de Acceso con Delphi

Buen día, he avanzado mucho con la comunicación de estas placas y solucionado varios problemas, toda la ayuda que viene en estas placas es en C# y lo he pasado a Delphi.

El problema es que me tope con el ingreso de usuarios a la placa, tengo un programa que viene con la plaza y desarrollado por ZK el fabricante.

Como no cumple con lo que necesito es que estoy desarrollando una aplicación en Delphi.

El ejemplo de la placa dice lo siguiente:

SetDeviceData

[Function]
int SetDeviceData(HANDLE handle,const char *TableName, const char *Data, const char *Options)

[Objective]
The function is used to set the device data (for example, the time segment, user information, and holiday information). The device data can be one or multiple records.

[Parameter description]
handle
[in]: The handle that is returned when the connection is successful.

TableName
[in]: Data table name. Attached table 4 lists the available data tables.

Data
[in]: Data record; the data is expressed in a text format; the multiple records are separated by \r\n, and the “Field=Value” pairs are separated by \t.

Options
[in]: The default value is null; it is used for extension.

[Returned value]
When the returned value is 0, it indicates that the operation is successful. When the returned value is a negative value, it indicates that the operation fails. Attached table 5 lists the information about the error codes.

[Example]

Python:
table = "user" # User information table
data = "Pin=19999\tCardNo=13375401\tPassword=1\r\nPin=2\tCardNo=14128058\tPassword=1"
p_table = create_string_buffer(table)
str_buf = create_string_buffer(data)
ret = self.commpro.SetDeviceData(self.hcommpro, p_table, str_buf, ‘’) # Upload the str_buf data to the user information table

c#:
int ret = 0;
string devtablename = "user";
string data = "Pin=19999\tCardNo=13375401\tPassword=1\r\nPin=2\tCardNo=14128058\tPassword=1";
string options = "";
ret = SetDeviceData(h, devtablename, data, options);



Bueno hasta aca parece sencillo, para la placa el valor principal es el Pin que es el nro de empleado, los otros campos son CardNo, Password, Group, si no se cargan por defecto llevan 0.


Asi llamo a la funcion:

Código Delphi [-]
//Llamada a la DLL
function Connect             (Paramchar):Integer;
function SetDeviceData    (handle: THandle; TableName: string; DeviceData: string; Options: string): Integer;

//Llamada a la fucion:
procedure TForm1.Button6Click(Sender: TObject);
var 
param       : pchar;
Conn         : Integer;
userdata    : string;
begin
param := 'protocol=TCP,ipaddress=192.168.1.251,port=4370,timeout=2000,passwd=';
Conn := Connect(Param);

userdata  := 'Pin=123\tCardNo=456789\tPassword=1\tGroup=1';
Ret       := SetDeviceData(Conn, 'user', userdata, '');

If Ret < 0 Then showmessage('Fallo Carga : ' + IntToStr(Ret)) else showmessage('Datos Cargados : ' + IntToStr(Ret));

end;

Que hace? solo me carga Pin, los demas valores en 0, como si el separador \t no le gustara, ya probe con pchar y tambien string.

Que hice anoche? decompile la otra aplicacion en C# y busque como llama a las funciones y lo hace con string. Y esa aplicacion funciona perfecto.

Mi pregunta es pchar y string funcionan igual? Hay algo que no estoy viendo o se me paso?

Llevo varios dias con lo mismo y sin documentacion por eso recurro a ustedes, de mas esta decir que para el que necesite algo con ZK nomas lo pida y lo comparto.

Por ejemplo si llamo a la funcion que me muestra la tabla:

Código:
Datos cargados con la aplicacion original:
CardNo,Pin,Password,Group
456789,123,,1
Código:
Datos Cargados por mi ap:
0,123,,0
Mucho lio?

Cualquier ayuda sera una gran ayuda

Gracias

Javier
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Control de Acceso KingOfDragons Varios 9 02-09-2018 03:22:09
Acceso al Panel de Control de Windows dec Trucos 0 30-06-2006 23:04:23
Control de Acceso Multiusuario a BD FranSyS Firebird e Interbase 7 30-04-2004 18:16:06
Aplicacion de Control de Acceso a la PC Iceman API de Windows 3 18-11-2003 19:21:03
control de acceso a paradox Javier PLatas Tablas planas 0 20-05-2003 16:17:19


La franja horaria es GMT +2. Ahora son las 17:26:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi