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ı: 81)
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.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
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
  IEC 61850 Potokolünden veri alma shooterman 1 211 14-03-2024, Saat: 11:38
Son Yorum: shooterman
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 15 583 08-03-2024, Saat: 00:06
Son Yorum: TuncayDelphi
  [ÇÖZÜLDÜ]Firebase Bearer Token Alma shooterman 8 599 05-12-2023, Saat: 12:17
Son Yorum: shooterman
  Cas Terazi Veri gönderimi Delphi sürüm sorunu KUNTAY 12 4.232 08-11-2023, Saat: 00:06
Son Yorum: berkan
  Delphi Sürekli Adı Değişen Excel Dosyasından Veri Çekme bünyamin68 2 546 05-10-2023, Saat: 12:50
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi