Konuyu Oyla:
  • Derecelendirme: 4/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Problem - ZKTeco Cihazlardan Anlık Veri Alma
#11
(18-12-2020, Saat: 10:27)MosCom Adlı Kullanıcıdan Alıntı:
(18-12-2020, Saat: 10:00)buzmavisi Adlı Kullanıcıdan Alıntı: 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(MakineNo); //cihaz içindeki verileri temizlemezsen her seferinde eski kayıtlarıda alacağından db'de mükerrer kayıtlar oluşacaktır.
           CZKEM1.Disconnect;


Verdiğiniz cevap için teşekkür ederim.
Ama elimde bu cihazlara personel kaydı gönderme,silme, yönetme vs tarzı terminal programı var.ZKTime isminde.ZKTECO
Burada cihazları ekliyorsunuz.atıyorum 5-6 tane seçip bağlan diyorsunuz.İlgili cihazların hepsi sorun yoksa connect oluyor. (bağlanma süresi biraz uzun olabiliryor makina modeline göre)
Sonra bağlı cihazı seçip "cihazdaki kullanıcılara bak" diyorsunuz anında seçtiğiniz cihazın içindeki personel kayıtlarını gösteriyor.(okutulmuş datalardan bahsemiyorum-cihazdaki kayıtlı kullanıcı personel listesi - kodu-adı-kartno vs bilgileri)
Yani seçtiğim cihaza tekrar connect olmakla uğraşmıyor.O cihaz zaten bağlı.siz seçip içindeki kullanıcılara erişebiliyorsunuz.seçtiğiniz kullanıcıları silebiliyorsunuz.
CZKEM1.Connect_net('192.168.1.1', 4370); bu komut tamam.connect olmak için.ben döngüde bunu birden fazla makinada yapıyorum ya da yaptığımı düşünüyorum.ya da bunu bir dizi mantığı ile mi yapmak gerekiyor?.aynı anda birden fazla makinaya bağlısınız ama hangisinin içindeki kullanıcılara erişmek istiyorsanız ilgili bağlandığınız cihazı nasıl seçeceksiniz.? 
Bunu yapan programlar var.Hepsine her seferinde connect olmak mantıklı değil.çünkü zaman alan bir durum.
Cevapla
#12
Kendi sistemimi anlatayım,
elimde 13 tane bu cihazdan var. Bu cihazlar veritabanına kayıtlı ve listbox ile bunları kullanıcıya gösteriyorum. İnsan kaynakları hangi cihazdan parmak izi kaydı alacaksa listeden onu seçiyor ve connect oluyor. Önce personel bilgilerini gönderiyorum cihaza, sonrasında o personele ait parmak izi kaydını alıyorum. kaydı cihaza aldıktan sonra tekrar cihazdan aldığım izleri tmp tabloya kayıt edip o kayıtları sırası ile tüm cihazlara gönderiyorum ve tmp tablomu boşaltıyorum.

sonrasında 2 saatte bir döngü içerisinde log kayıtlarını cihazlardan alıyorum.

aynı anda birden fazla makineye bağlanmana gerek yok. listeden ilgili cihaza bağlanır işlemlerini halleder sonrasında bağlantını kesersin.
Cevapla
#13
(18-12-2020, Saat: 10:54)MosCom Adlı Kullanıcıdan Alıntı: Kendi sistemimi anlatayım,
elimde 13 tane bu cihazdan var. Bu cihazlar veritabanına kayıtlı ve listbox ile bunları kullanıcıya gösteriyorum. İnsan kaynakları hangi cihazdan parmak izi kaydı alacaksa listeden onu seçiyor ve connect oluyor. Önce personel bilgilerini gönderiyorum cihaza, sonrasında o personele ait parmak izi kaydını alıyorum. kaydı cihaza aldıktan sonra tekrar cihazdan aldığım izleri tmp tabloya kayıt edip o kayıtları sırası ile tüm cihazlara gönderiyorum ve tmp tablomu boşaltıyorum.

sonrasında 2 saatte bir döngü içerisinde log kayıtlarını cihazlardan alıyorum.

aynı anda birden fazla makineye bağlanmana gerek yok. listeden ilgili cihaza bağlanır işlemlerini halleder sonrasında bağlantını kesersin.

aynı anda birden fazla cihaza bağlanıp,işten ayrılan bir personelin kaydını tüm cihazlardan silmek istiyorum.Ya da birden fazla personelin.programda her cihaza tek tek bağlanıp silmek yerine,tüm cihazlara önce bağlanıp sonra bu cihazları tek tek aktif edip içindeki personel kaydını silmek istemiştim.
Kullanıcıyı cihazlara bağlanmak için ilk etapta bir sefer bekletmek maksadım.sonrasında tek tek bağlan sil,bağlan sil daha çok bekletmiş olacağım.
Bunun yine de bir yolunun olabileceğini düşünüyorum.
İlginiz ve yardımınız için teşekkür ederim.
Belki benim istediğim hakkında bilgisi olan varsa,cevap verirse sevinirim.
Cevapla
#14
   
queryCIHAZ.First;
  for i := 0 queryCihaz.RecordCount - 1 do
     begin
        Baglanti := CZKEM1.Connect_net(queryCihazIPADRESI.AsString, 4370);
        if Baglanti then
           begin

              // 1-Tabloda kayıtlı olarak cihazlara bu döngü yardımı ile bağlandın
              // 2-Personele ait işlemleri yaptın ya da bağlandığın cihazdan kayıtları çektin

              CZKEM1.Disconnect; // 3-bağlandığın cihazdan bağlantını kestin
              queryCihaz.Next; // 4-bir sonraki cihaza bağlanmak için sıradaki kayda geçtin ve 1 nolu işleme döndün başka kayıt yoksa döngünden çıktın ve işin bitti

           end;
     end;

umarım yardımı olur ya da ben seni tam olarak anlayamadım. İyi çalışmalar dilerim.
Cevapla
#15
(18-12-2020, Saat: 11:13)buzmavisi Adlı Kullanıcıdan Alıntı:
(18-12-2020, Saat: 10:54)MosCom Adlı Kullanıcıdan Alıntı: Kendi sistemimi anlatayım,
elimde 13 tane bu cihazdan var. Bu cihazlar veritabanına kayıtlı ve listbox ile bunları kullanıcıya gösteriyorum. İnsan kaynakları hangi cihazdan parmak izi kaydı alacaksa listeden onu seçiyor ve connect oluyor. Önce personel bilgilerini gönderiyorum cihaza, sonrasında o personele ait parmak izi kaydını alıyorum. kaydı cihaza aldıktan sonra tekrar cihazdan aldığım izleri tmp tabloya kayıt edip o kayıtları sırası ile tüm cihazlara gönderiyorum ve tmp tablomu boşaltıyorum.

sonrasında 2 saatte bir döngü içerisinde log kayıtlarını cihazlardan alıyorum.

aynı anda birden fazla makineye bağlanmana gerek yok. listeden ilgili cihaza bağlanır işlemlerini halleder sonrasında bağlantını kesersin.

aynı anda birden fazla cihaza bağlanıp,işten ayrılan bir personelin kaydını tüm cihazlardan silmek istiyorum.Ya da birden fazla personelin.programda her cihaza tek tek bağlanıp silmek yerine,tüm cihazlara önce bağlanıp sonra bu cihazları tek tek aktif edip içindeki personel kaydını silmek istemiştim.
Kullanıcıyı cihazlara bağlanmak için ilk etapta bir sefer bekletmek maksadım.sonrasında tek tek bağlan sil,bağlan sil daha çok bekletmiş olacağım.
Bunun yine de bir yolunun olabileceğini düşünüyorum.
İlginiz ve yardımınız için teşekkür ederim.
Belki benim istediğim hakkında bilgisi olan varsa,cevap verirse sevinirim.

Merhaba,
Cihazdan ayrılan kişi bilgilerini silmek sonradan sıkıntı yaratır mı? Aynı zamanda PC uygulmsından da sileceksiniz. Boş is ye yeni kişiler atanacak. İleride eski kayıtlar bakmak istendiğinde nasıl bir yol var?
Ağlarsa kablosuz ağlar, gerisi yerel ağlar...
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Cas Terazi Veri gönderimi Delphi sürüm sorunu KUNTAY 4 509 25-09-2021, Saat: 01:32
Son Yorum: oarikmert@hotmail.com
  Veri Tabanı Dosya Önizleme gonulali 3 152 24-09-2021, Saat: 09:26
Son Yorum: COMMANDX
  PDF' den veri okuma Gürcan 5 123 20-09-2021, Saat: 11:11
Son Yorum: Gürcan
  WEB servis veri çekerken geçen süre enigma 1 198 07-08-2021, Saat: 10:23
Son Yorum: Abdullah ILGAZ
  CMD ile Linux'a Komut Gönderip Cevap Alma Hk. pro_imaj 14 727 04-08-2021, Saat: 12:17
Son Yorum: Tan Ay



Konuyu Okuyanlar: 1 Ziyaretçi