Tanıtım ve Teknik Özellikler
Transkript
Tanıtım ve Teknik Özellikler
ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ ACD BİLGİ İŞLEM URT-V2 KABLOSUZ VERİ TOPLAMA TERMİNALİ AİLE HEKİMLİĞİ KİOSK ÇÖZÜM ORTAĞI TEKNİK BELGESİ DLL Kütüphanesi İle URT-V2 Ve URT-V3 Kontrolü URTV2.DLL İçeriği 1 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ DLL Kütüphanesi İle URT-V2 Ve URT-V3 Kontrolü DLL Kütüphaneleri Acd Veri Toplama Sisteminde 3 adet DLL bulunmaktadır. URTV2.DLL VERI.DLL MENU.DLL URTV2.DLL Terminalleri yönetmede kullanılan çekirdek fonksiyonlardan oluşmaktadır. Aynı zamanda veri toplama merkezi ile sunucu arasında köprü görevi görür. Üretimde kullanılan modeli ile tek farkı veritabanından bağımsız çalışıyor olmasıdır. 2 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ DLL Kütüphanelerinin Kurulumu .NET projemizde ilk yapılacak iş DLL leri referans olarak eklemek olacaktır. Sonrasında ise aşağıdaki şekilde kütüphaneleri projemize ekleyeceğiz. using URTV2; Kütüphanerimizi ekledikten sonra projenin ilk yüklendiği (Load) bölümüne aşağıdaki satırları ekleyelim. Load() URTV2.URTV2Control Cihaz = new URTV2Control(); URTV2 .DLL in çalışması için gerekli şifreyi girelim Load() Cihaz.DLL_Sifre = "www.acd.com.tr/cihaz"; Merkezden gelen veri yakalamak için aşağıdaki olayı oluşturalım. Load() this.Cihaz.OnURTV2VeriAktif += new URTV2.URTV2Control.URTV2VeriAktifEventHandler(this.URTV2GelenVeri); Merkeze seri port vasıtasıyla bağlanmak için aşağıdaki kodları yazalım. Load() if(!Cihaz.CihazPortAç("COM1")) { MessageBox.Show("Com1 Yok Yada Kullanımda","Bağlantı Hatası"); } else { Cihaz.CihazData.SonrakiKomutIzin=false; Cihaz.CihazData.KomutTekrarIzin=true; } 3 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ DLL Kütüphanelerinin Kurulumu Merkezden veri yakalamak için oluşturduğumuz olayın işaret ettiği fonksiyonu oluşturalım. private void URTV2GelenVeri(System.Object o, EventArgs e) { //Terminallerden gelen verinin işlememiz için geldiği yer burası Cihaz.SeriPortAlmaAktif=false;//seri port alma işlemi duraklatıldı Cihaz.CihazKontrol.LCD[0] = "TEMİNALE"; Cihaz.CihazKontrol.LCD[1] = "CEVAP GÖNDERİLDİ"; Cihaz.CihazVeriHata(Cihaz.CihazData.CihazIsim); Cihaz.CihazKonumVeriSaklama(); Cihaz.SeriPortAlmaAktif=true;//seri port alma işlemi devam ettiriliyor } Basit anlamda yazdığımız bu programda terminallerden gelen her türlü komuta programımız aşağıdaki uyarıyı verecektir. TEMİNALE CEVAP GÖNDERİLDİ 4 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ URTV2.DLL İçeriği URTV2.DLL DEGİŞKENLERİ Genel Değişkenler public Byte[] data ; //Cihazdan gelen ham data public Byte[] tampon ; //Cihaza giden ham data public short[] CihazListe; //istenilen guruba göre cihaz listesi public String Admin;//Cihaz programlama için admin şifresi public String CihazConnectionString; //Veri tabanı için bağlantı cümlesi public String DLL_Sifre; //Genel Kullanım Şifresi public bool SeriPortAlmaAktif;//Seri port alma kontrolü public bool EternetDataAktif;//Eternet alma kontrolü public bool DemoAktif;//Seri port alma kontrolü CihazData Değişkenleri public ref struct CihazData_ { public int CihazTur; public Short CihazIsim;//iki karakter cihaz ismi public int CihazGrup;//cihaz grup public int CihazID;//Cihazın veri tabanındaki kayıt no su public int CihazGelenKomutID;//gelen komutun veri tabanındaki kayıt no su public String CihazGelenKomut;//cihazdan gelen komut public String CihazGelenKomutIsmi;//Komut ismi public int CihazKomutAnaGrup;//komutun ana türü (üretim, arıza durus v.s.) public int CihazKomutAltGrup;//komutun işlevi (başlama bitiş müdehale v.s) public int CihazDegiskenHaritasi;;//32 bit değişken haritası. //Her bit bir değişkeni ifade eder. Bit true ise değişken alınmıştır. public Short CihazAnalog1;//Terminalin AN1 portundan okunan analog deger public Short CihazAnalog2; // Terminalin AN2 portundan okunan analog deger public String[] DegiskenVeri; // 32 adet değişkenin alınacağı String dizi public public int 5 bool[] GelenDegisken; //CihazDegiskenHaritasi nın bit'lere ayrılmış dizisi CihazOncekiKomutID; //Terminal için bir önceki işlenmiş KomutID Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ URTV2.DLL İçeriği public int CihazOncekiKomutAnaGrup; //Terminal için bir önceki işlenmiş KomutAnaGrup public int CihazOncekiKomutAltGrup; KomutAltGrup //Terminal için bir önceki işlenmiş public bool KomutOncekiAnaGrupGenelIzin; KomutAnaGrupGenelIzin public DateTime CihazSonVeriZamani; public bool KomutTekrarIzin; gönderilememesi //Terminal için bir önceki işlenmiş //Terminalden Son Gelen Veri Zamanı //Cihazdan alınan komuta karşılık cevabın //durumunda terar işlem yapmayı engeller son gönderilen cevabı yeniden gönderir. public bool SonrakiKomutIzin; //menü dizaynındaki senaryoyu kontrol eder. //senaryo dışına çıkılmış ise yeniden kalınan yere döndürür. public bool KomutAnaGrupGenelIzin; /*Ana Grubun Genel bir yapıya sahip olduğunu belirtir.. Ana grup işlemi tamamlanmadan aynı özelliğe sahip başka bir ana grup işlemi yapılamaz. Mesela bir üretim ve arıza diye iki ana grup tanımlayıp bu özelliği false yaparsak üretim yaptığımız bir terminalde üretimi bitirmeden arıza ana grubuna geçiş yapamayız. Eğer duruş diye bir ana grup tanımlar ve bu özelliği true yaparsak hem üretim hemde arıza içinde duruş ana grubunu kullanabiliriz. Bu tanımlama “komut ana grup” ( tblKomutAnaGrup) Ekranında yapılır. public bool KomutGrupTekrarIzin; /* Bu deger gelen komutun KomutAltGrup özellğidir. KomutAnaGrup içinde tekrar iznini verir. Mesela üretim ana grubu altında iş bitimi tekrar edemez şartı istenecektir. Çünkü iş bitimi üretimi bitirir. public bool KomutGrupIciIzin; /* Bu deger gelen komutun KomutAltGrup özellğidir. KomutAnaGrup içinde gelen komutun çalışma iznidir. Mesela başlamış olan bir üretimde yeniden üretim başlatılamaz ise “Komut ana grup” ekranında başlama özelliğinin KomutGrupIciIzin’i kapalı olmalıdır. public int KomutDurumID; //Komutun müdahale açısından durumunu belirtir // Genel,Mudahale,bildirim,Toplu bitiş vs... public int CihazCevapKomutID;//gelen komuta verilen olumlu cevap public Byte[] CihazKomutCevap;// Cihaza gönderilmek için hazırlanmış olumlu cevap public Byte[] CihazOncekiKomutCevap;// Cihaza gönderilmek için hazırlanmış son olumlu cevap } CihazData_ CihazData; 6 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ URTV2.DLL İçeriği CihazKontrol Değişkenleri public ref struct CihazKontrol_ { public String[] LCD; // LCD tampon public public public public Byte[] ByteData; // RS232 byte datası String StringData; // RS232 string data Byte shortCihazKontrol; // 16 adet Cihaz Kontrol Bitleri Byte oncekiCihazKontrol; // 16 adet bir önceki Cihaz Kontrol Bitleri } CihazKontrol_ CihazKontrol; CihazCevap Değişkenleri public ref struct CihazCevap_ { // tblKomutCevap (Menü dizayn da Cevap Komutlar Ekranı) parametrelerini getirir short CihazCevapFonksiyonID; // tblKomutCevapFonksiyon ile ilişkili //Cevap fonksiyonlarının parametreleri // Bu parametrelerCihazCevapFonksiyonID deki fonksiyon içine atılır //örneğin CihazMenuHareket secilmişse // CihazMenuHareket(short CihazIsim,int AnaMenuNo,int MenuNo) // CihazFonksiyonParametre1-> AnaMenuNo // CihazFonksiyonParametre2-> MenuNo // şeklinde tablodan alınarak fonksiyona girilir int CihazFonksiyonParametre1; int CihazFonksiyonParametre2; int CihazFonksiyonParametre3; int CihazBilgiFonksiyonID; //tblBilgiFonksiyon ile lişkili String CihazBilgiFonksiyon; //tblBilgiFonksiyon tablosundaki BF_FonksiyonIsim alani }; 7 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ URTV2.DLL İçeriği URTV2 DLL Fonksiyonları public Boolean CihazPortAc(String port) /* Com portunu açmak için kullanılır. COM 1 den COM 8 e kadar secim yapılabilir. Com port problemsiz olarak açıldığında fonksiyon true döndürür. Com port herhangi bir nedenden açılamamış ise fonksiyon false döndürecektir. Örnek CihazPortAc("COM1"); */ public Boolean CihazPortKapat() /* Kullanılan Com portu kapatmak için kullanılır. Com port problemsiz olarak kapandığında fonksiyon true döndürür. Com port herhangi bir nedenden kapanmamış ise fonksiyon false döndürecektir. */ public Boolean DurumYaz(int Tur,String DurumKonum,String Durum) /* DurumYaz Fonksiyonu DLL işleyişindeki olayları kaydetmek için kullanılmaktadır. Tur kullanıcının isteğine baglı bir degerdir. örnek verilecek olursa hata için 0 , uyarı için 1, bilgilendirme için 2 gibi...DurumKonum durumun oluştuğu fonksiyonun ismi buraya girilmelidir.Durum Oluşan durumla ilgili detayları içerir. ////////////// Örnek : ayarlanmadı."); DurumYaz(0,"CihazUretimBaslama","Nesne başvurusu bir nesnenin örneğine tblDurum tablosuna atılan veri 645 0 23.04.2009 161905 örneğine ayarlanmadı. CihazUretimBaslama Nesne başvurusu bir nesnenin */ public Boolean CihazKanalDegistir(short CihazIsim,Byte Kanal) /* CihazKanalDegistir fonsiyonu URT-V2 Terminallerinin Radyo Frekans yayın kanalını değiştirir. CihazIsim cihazın 16 bitlik ismidir. Kanal 0...127 arasında istenilen kanal tercih edilebilir. Teminal kanalı istenildiği taktirde terminalden de değiştirilebilir. */ 8 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ URTV2.DLL İçeriği public Boolean MerkezKanalDegistir(Byte Kanal) /* MerkezKanalDegistir fonksiyonu merkez cihazın Radyo Frekans yayın kanalını değiştirir. Kanal 0...127 arasında istenilen kanal tercih edilebilir. Dikkat edilmesi gereken husus merkez ve terminalerin konuşabilmesi için aynı kanalı kullanmalır gerekmektedir. */ public Boolean CihazKonumVeriSaklama() /* CihazKonumVeriSaklama Fonksiyonu tblMakineOzellik Tablosundaki MO_KomutAnaGrup,MO_KomutAltGrup,MO_OncekiAnaGrup,MO_OncekiAltGrup,MO_OncekiKomutAnaGrup GenelIzin,MO_KomutID son gelen veriyle günceller. Bu Terminal cihaz en son hangi işlemi gerçekleştirdiğini bulmamızı sağlar. Programcı veri işlenip cevap gönderildikten sonra bu fonksiyonun çalıştırmalıdır. */ public Boolean CihazSonCevapSaklama() /* CihazSonCevapSaklama fonksiyonu Veri gelen terminale gönderilen son cevabı saklamakta kullanılır. Bu fonksiyonun amacı merkezden gnderilen cevabın terminale ulaşmaması dururmunda terminal veriyi tekrar göndereceğinden aynı veriyi defalarca işlemektense kaydedilen hazır cevabın gönderilmesidir. Anlatılan işlemler dll tarından yapılmaktadır. Programcı veri işlenip cevap gönderildikten sonra bu fonksiyonun çalıştırmalıdır. */ public Boolean CihazVeriAlindi(short CihazIsim) /* CihazVeriAlindi fonsiyonu teminalin veri göndermesini durdurur. Terminal veri göndermeden önceki konumda kalır. CihazIsim cihazın 16 bitlik ismidir. */ 9 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ URTV2.DLL İçeriği public Boolean CihazOlumluCevapGonder(short CihazIsim) /* CihazOlumluCevapGonder fonksiyonu terminale senaryoda belirtilen cevabı gönderir. CihazIsim cihazın 16 bitlik ismidir. */ public Boolean CihazVeriHata(short CihazIsim) /* CihazVeriHata Fonksiyonu terminaldeki operatore uyarı görüntülemeye yarar. CihazIsim cihazın 16 bitlik ismidir. CihazKontrol.LCD[0...3] dizisine girilen 4 satır 20 şer karakter uyarı metni fonksiyon çağrılmadan önce girilmiş olmalıdır. Örnek Cihaz.CihazKontrol.LCD[0]="SİSTEM HATASI"; Cihaz.CihazVeriHata(Cihaz.CihazData.CihazIsim); */ public Boolean CihazVeriHata(short CihazIsim, unsigned char sure ) /* Boolean CihazVeriHata(short CihazIsim) fonksiyonundan farkı uyarının ne kadar zaman gösterileceğini sure değişkeniyle belirleyebilmemizdir. Örnek Cihaz.CihazKontrol.LCD[0]="DİKKAT"; Cihaz.CihazKontrol.LCD[1]="SİSTEM HATASI"; Cihaz.CihazVeriHata(Cihaz.CihazData.CihazIsim,10); Mesaj 10 saniye süreyle gösterilip kaldığı menüye geri dönecektir. */ 10 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ URTV2.DLL İçeriği public Boolean CihazBilgiGoster(short CihazIsim,int Sayfa,bool ilkGonderim) /* Bu fonksiyon ile 80 karakterden uzun metinler sayfa sayfa gösterilir. Tam metin Cihaz.CihazKontrol.LCD[0] a atılır. Sonrasında CihazBilgiGoster fonksiyonu çalıştırlır. CihazIsim cihazın 16 bitlik ismidir. Sayfa ilk gösterilecek sayfa numarası ilkGonderim bu deger true olarak kullanılacaktır. false degeri dll tarafından sayfa değiştirmede kullanılır. Örnek Cihaz.CihazKontrol.LCD[0]="Asılsız dedikodulara dayandırılarak masa başında üretilen ve yalnızca sansasyon yaratma amacını taşıdığını düşündüğümüz bu tarz haberlere itibar edilmemesi gerektiğini hatırlatır, bu çarpık habercilik anlayışından kulübümüzü yasal yollara başvurmak zorunda bırakmadan vazgeçilmesini dileriz."; Cihaz.CihazBilgiGoster(9729,1,true); Sayfa değiştirmek için alt ve üst tuşlar kullanılır. */ public Boolean CihazDegiskenHata(short CihazIsim,int Degisken) /* CihazDegiskenHata fonksiyonu ile hata tespit ettiğimiz değişkenin hata mesajını terminal kullanıcısına bildiririz. CihazIsim cihazın 16 bitlik ismidir. Degisken Değişkenin veritabanındaki ID si Örnek 0 ID'li değişkenin SİCİL NO olduğunu varsayalım. Cihaz.CihazDegiskenHata(9729,0); Ekran SİCİL NO HATALI GİRİŞ */ 11 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ URTV2.DLL İçeriği public Boolean CihazMenuHareket(short CihazIsim,int AnaMenuNo,int MenuNo) /* CihazMenuHareket fonksiyonu menüler arası hareketi sağlar. CihazIsim cihazın 16 bitlik ismidir. AnaMenuNo gidilecek Ana Menü numarasıdır. 0...15 arasında bir değerdir. MenuNo bu değer 0 ise menü aktif değildir. 1...15 arasında menu aktifdir. */ public Boolean CihazGenelMesajGoster(short CihazIsim,int MesajNo1,int MesajNo2) /* CihazGenelMesajGoster fonksiyonu cihazın bellğine yazılmış olan mesajları sadece mesaj numarasını girerek göstermemizi sağlar CihazIsim cihazın 16 bitlik ismidir. MesajNo Mesajın ID numarası Örnek Cihaz.CihazGenelMesajGoster(9729,0,1); Ekran ACD BİLGİ İŞLEM www.acd.com.tr */ 12 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ URTV2.DLL İçeriği public Boolean CihazGirisFonksiyonu(short CihazIsim,int MesajNo1,int MesajNo2) /* CihazGirisFonksiyonu ekrana mesaj yazdırdıktan sonra kullanıcının beklenir ve sonrasında giriş tuşuna basması otomatik olarak sisteme giriş yapıldı bilgisi gelir. CihazIsim cihazın 16 bitlik ismidir. MesajNo Mesajın ID numarası Örnek Cihaz.CihazGirisFonksiyonu(9729,0,1); Ekran ACD BİLGİ İŞLEM www.acd.com.tr giriş tuşuna basana kadar bu ekran açık kalır. */ public Boolean CihazOnayFonksiyonu(short CihazIsim) /* CihazOnayFonksiyonu ekrana yazılan 3 satır verinin onaylanması ya da ret edilmesi için yazılmış fonksiyondur. CihazIsim cihazın 16 bitlik ismidir. Örnek Cihaz.CihazKontrol.LCD[0]="SİCİL NO 000001"; Cihaz.CihazKontrol.LCD[1]="IŞ EMRİ 09000016"; Cihaz.CihazKontrol.LCD[2]="URETİM ADEDİ=1000"; Cihaz.CihazOnayFonksiyonu(9729); Ekran SİCİL NO 000001 IŞ EMRİ 09000016 URETİM ADEDİ=1000 F1 ONAY F2 RET */ 13 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ URTV2.DLL İçeriği public Boolean CihazSecimFonksiyonu(short CihazIsim,int SecimAdet) /* CihazSecimFonksiyonu ekrana yazılan 4 satır verinin seçilmesi için yazılmış fonksiyondur. CihazIsim cihazın 16 bitlik ismidir. Örnek Cihaz.CihazKontrol.LCD[0]="F1 ÜRETİM"; Cihaz.CihazKontrol.LCD[1]="F2 DURUŞ"; Cihaz.CihazKontrol.LCD[2]="F3 BAKIM"; Cihaz.CihazKontrol.LCD[3]="F4 ARIZA"; Cihaz.CihazOnayFonksiyonu(9729); */ public Boolean CihazListeGuncelle(int Grup) /* CihazListeGuncelle CihazListe dizisi içine gruba ait tüm terminalleri atar. Grup Grup numarası. */ public Boolean CihazGrupSayacGetir(int Grup) /* CihazGrupSayacGetir fonksiyonu girilen gruba ait olan tüm terminallerden üretim bilgisini ister. Grup Grup numarası. */ public Boolean CihazSayacIste(short CihazNo) /* CihazSayacIste fonksiyonu gruba bakılmaksızın terminalden üretim bilgisini almakta kullanılır. CihazIsim cihazın 16 bitlik ismidir. Örnek : Cihaz.CihazSayacIste(9729); */ 14 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ URTV2.DLL İçeriği public Boolean CihazDegiskenIste(short CihazIsim,int komutNo1,int komutNo2,int DegiskenHaritasi) /* CihazDegiskenIste istenilen zamanda terminalden değişkenleri istemede kullanılır. CihazIsim cihazın 16 bitlik ismidir. komutNo1 ve komutNo2 dönüş komutunun son iki hanesini belirler. DegiskenHaritasi istenecek değişkenlerin girildiği değerdir. Örnek Örnek olarak Terminalden 0 ve 2 ID li değişlkenleri istetelim DegiskenHaritasi 2^0 + 2^2 -> 5 olacaktır. Cihaz.CihazDegiskenIste(9729,1,2,5); Teminalin döndüğü cevap Cihaz.CihazData.CihazGelenKomut="D12" olacaktır Gelen değişkenler ise Cihaz.CihazData.DegiskenVeri[0] Cihaz.CihazData.DegiskenVeri[2] de bulunmaktadır. * 15 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ Belgeler 16 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ Referanslar 17 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ. ACD KABLOSUZ VERİ TOPLAMA SİSTEMLERİ İletişim www.acd.com.tr acd@acd.com.tr ACD Bilgi İşlem LTD ŞTİ Eskişehir Teknoloji Geliştirme Bölgesi Piramit 1 Organize Sanayi Bölgesi Eskişehir Tel : 0 222 236 20 10 Fax: 0 222 236 20 11 18 Sürüm 1.0 © 2009 ACD Bilgi İşlem LTD. STİ.