Konuyu Oyla:
  • Derecelendirme: 4/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Problem - ZKTeco Cihazlardan Anlık Veri Alma
#1
Merhaba,

Başta söyleyeyim. https://www.delphican.com/showthread.php?tid=3790 konusu ile ilgisi yok (Burada dbden okunarak alınmış).

Benim takıldığım taraf .net örnekleri olmasına rağmen bunu delphide uygulayamamam. Cihaz ağ üzerinden TCP protokolü ile çalışıyor.  Cihazda anlık okuma zkemkeeper.dll' den oluşturduğum zkemkeeper_TLB.pas sınıfı üzerinde tüm metodlar mevcut. Çoğu komutu (Bağlan, Bağlantıyı Kes, Yeniden Başlat, Kapat, Tüm Kayıtları Oku, Röle Tetikle, vs)  yerine getirebiliyorum. Takıldığım taraf onverify ile (kişi doğrulandığında) anlık olarak veriyi okuyabileceğim sınıfı register edemiyorum. http://desarrollo.zktecolatinoamerica.com/sdk/on_verify sitesinde c# ve VB örnekleri mevcut.

Yardımlarınızı bekliyorum.
Teşekkürler...

Not: zkemkeeper_TLB.pas ektedir.
.zip   zkemkeeper_TLB.zip (Dosya Boyutu: 25,55 KB / İndirme Sayısı: 11)
Cevapla
#2
Paylaştığın zkemkeeper_TLB.pas dosyasına baktığımda
procedure OnVerify(ASender: TObject; UserID: Integer);
şeklinde bir prosedür tanımlayıp bunu TCZKEM nesnesinin OnVerify eventine bağlayabileceğin görünüyor. 
Yaşadığın sorun nedir?

Tabi öncesinde
CZKEM1.RegEvent(1, 65535);
yapmak gerekiyormuş.
There's no place like 127.0.0.1
WWW
Cevapla
#3
Merhaba,

Söylediğinizi uygulamamış olmama rağmen çalışmadı.

if zkem.RegEvent(1, 65535) then
   begin
     ShowMessage('a');
     zkem.OnVerify := dkmOnVerify;
     zkem.OnGeneralEvent := dkmOnGeneralEvent;
   end;

procedure TForm1.dkmOnVerify(ASender: TObject; UserID: Integer);
begin
 Memo1.Lines.Add(IntToStr(UserID)+' idli personel doğrulandı...');
end;

procedure TForm1.dkmOnGeneralEvent(ASender: TObject; const DataStr: WideString);
begin
 Memo1.Lines.Add(DataStr);
end;

Teşekkürler bilgi için...
Cevapla
#4
Cihaza bağlantı biçiminizden kaynaklandığını düşünebiliriz.
Cihaza bağlantı satırlarınızı inceleyelim bence.
Cevapla
#5
(08-07-2020, Saat: 22:42)ysfckr Adlı Kullanıcıdan Alıntı: Cihaza bağlantı biçiminizden kaynaklandığını düşünebiliriz.
Cihaza bağlantı satırlarınızı inceleyelim bence.

Merhaba,

Bağlanmakta sorun yok. Bağlanmak için cihazın sdksından oluşan sınıf kullanılıyor.
Sorun canlı veri alabilmekte.

İyi çalışmalar.
Cevapla
#6
(08-07-2020, Saat: 23:48)mad85 Adlı Kullanıcıdan Alıntı:
(08-07-2020, Saat: 22:42)ysfckr Adlı Kullanıcıdan Alıntı: Cihaza bağlantı biçiminizden kaynaklandığını düşünebiliriz.
Cihaza bağlantı satırlarınızı inceleyelim bence.

Merhaba,

Bağlanmakta sorun yok. Bağlanmak için cihazın sdksından oluşan sınıf kullanılıyor.
Sorun canlı veri alabilmekte.

İyi çalışmalar.

Selamlar,
Parmak izi okuyucu tarafındaki sorununuzu tam olarak öğrenebilir miyim.
Cevapla
#7
Merhaba ,
ZK Teko sdk da
GetGeneralLogData
SSR_GetGeneralLogData
fonksiyonları mevcut bunları kontrol eder misiniz birde sdk demoları arasında delphi demosu olması gerekiyor
Cevapla
#8
(04-07-2020, Saat: 14:06)SimaWB Adlı Kullanıcıdan Alıntı: Paylaştığın zkemkeeper_TLB.pas dosyasına baktığımda
procedure OnVerify(ASender: TObject; UserID: Integer);
şeklinde bir prosedür tanımlayıp bunu TCZKEM nesnesinin OnVerify eventine bağlayabileceğin görünüyor. 
Yaşadığın sorun nedir?

Tabi öncesinde
CZKEM1.RegEvent(1, 65535);
yapmak gerekiyormuş.

Teşekkürler arkadaşlar. Hata benden kaynaklı. Yoğunluktan ötürü sender eklemeden procedure oluşturmuşum. 2.hata da onverify metodunda dinlemeye çalışıyordum. OnAttTransactionEx olması gerekiyormuş...
Cevapla
#9
(04-07-2020, Saat: 14:06)SimaWB Adlı Kullanıcıdan Alıntı: Paylaştığın zkemkeeper_TLB.pas dosyasına baktığımda
procedure OnVerify(ASender: TObject; UserID: Integer);
şeklinde bir prosedür tanımlayıp bunu TCZKEM nesnesinin OnVerify eventine bağlayabileceğin görünüyor. 
Yaşadığın sorun nedir?

Tabi öncesinde
CZKEM1.RegEvent(1, 65535);
yapmak gerekiyormuş.

Merhaba.
Aynı şekilde birkaç parmak izi okuyucuya sırası ile bağlanıp,bağlı olan parmak izlerinden seçtiğimin içindeki datalara nasıl ulaşabilirim?
Örneğin,
Listbox ımda kayıtlı cihazlar var
192.168.1.1  4370
192.168.1.2  4370
192.168.1.3  4370
.
.
192.168.1.10  4370 gibi

CZKEM1.Connect_net(ipadres, portno); şeklinde döngü içinde bu 10 cihaza da sırası ile bir kerede bağlanıp, sonrasında atıyorum 192.168.1.5 olan cihazı aktif edip (yalnız zaten connect durumunda, tekrar connect olma değil veri çekmek için bu cihazı aktif etmekten bahsediyorum) içindeki personellere nasıl erişebilirim.?
Cevapla
#10
(18-12-2020, Saat: 10:00)buzmavisi Adlı Kullanıcıdan Alıntı:
(04-07-2020, Saat: 14:06)SimaWB Adlı Kullanıcıdan Alıntı: Paylaştığın zkemkeeper_TLB.pas dosyasına baktığımda
procedure OnVerify(ASender: TObject; UserID: Integer);
şeklinde bir prosedür tanımlayıp bunu TCZKEM nesnesinin OnVerify eventine bağlayabileceğin görünüyor. 
Yaşadığın sorun nedir?

Tabi öncesinde
CZKEM1.RegEvent(1, 65535);
yapmak gerekiyormuş.

Merhaba.
Aynı şekilde birkaç parmak izi okuyucuya sırası ile bağlanıp,bağlı olan parmak izlerinden seçtiğimin içindeki datalara nasıl ulaşabilirim?
Örneğin,
Listbox ımda kayıtlı cihazlar var
192.168.1.1  4370
192.168.1.2  4370
192.168.1.3  4370
.
.
192.168.1.10  4370 gibi

CZKEM1.Connect_net(ipadres, portno); şeklinde döngü içinde bu 10 cihaza da sırası ile bir kerede bağlanıp, sonrasında atıyorum 192.168.1.5 olan cihazı aktif edip (yalnız zaten connect durumunda, tekrar connect olma değil veri çekmek için bu cihazı aktif etmekten bahsediyorum) içindeki personellere nasıl erişebilirim.?





içindeki personellere ayrı ayrı erişemezsin, cihazdan bütün logları alıp bundan sonraki kontrollerini DB üzerinden yapman lazım.

//Baglanti: Boolean; 
Baglanti := CZKEM1.Connect_net('192.168.1.1', 4370);            
           if Baglanti then
              begin 
                 CZKEM1.ReadAllGLogData(1);
                 while CZKEM1.SSR_GetGeneralLogData(1, PerNoSTR, OnayTipi, GirisCikisDurum, Yil, Ay, Gun, Saat, Dakika, Saniye, WorkCode) do
                    begin
                       // veritabanına kaydet                    
                    end;
              end;
           CZKEM1.ClearGLog(1); //cihaz içindeki verileri temizlemezsen her seferinde eski kayıtlarıda alacağından db'de mükerrer kayıtlar oluşacaktır.
           CZKEM1.Disconnect;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Editteki ilk kelimeyi alma barissagir 8 437 20-01-2021, Saat: 17:03
Son Yorum: barissagir
  Veri Tabanına Kayıt Yaparken Yazdırma bünyamin68 9 304 19-01-2021, Saat: 13:12
Son Yorum: bünyamin68
  Gmail OAuth Mail Alma resatarikan 5 373 10-01-2021, Saat: 22:21
Son Yorum: resatarikan
  Aynı anda 10.000 farklı cihazdan veri alışverişi yapma. pro_imaj 23 1.445 27-12-2020, Saat: 11:22
Son Yorum: pro_imaj
  Kredi Kartı İle Ödeme Alma hi_selamlar 53 13.996 18-12-2020, Saat: 00:12
Son Yorum: nguzeller



Konuyu Okuyanlar: 1 Ziyaretçi