merhaba ben bir tıbbi cihaz kontrolü yapmak istiyorum..tıbbi cihazı bir kaç tane yazılım kontrol edebvilmiş..onların programları mevcut.bende neden delphi ile buda olmasın diye düşündüm..delphi ile seri port ile laklaı çok fazlaca kod yazdım kontr4ol edebilmek için gerekli komponentleride kullandım. ama bir türlü bu cihazdan gelen verileri okuyamadım.. ilk olarka şubu düşündüm i şekilde bu cihazdan veri,ler gelsin ben ne de olsa..
ona benzer bişi gönderrim diye düşündüm ama sonuç hüsran. hiç birşekilde cihazla iletişim kurmadım ne veri alabildim ne okuyabildim ne yazabildim.. cihazın teknik manuelini okuduğumda cihazın veri trafiğini syn syn stx ...soh bcc gibi ifadelerle yaptığını söylüyor.. bunlar ne acaba veri okumak için illaki bişiler göndermek m, gerekiyor cihaza cihaz ne göndermeyliyim hex mi bytmı ne ?? şimdiden teşekkürler
delphi tıbbi cihaz kontrolü..
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: delphi tıbbi cihaz kontrolü..
cihazdan veri okumak için neyi okuyacağınızı bildirmeniz gerekir öncelikle. bazı cihazlarda ise kendiliğinden barkod okuyucu bulunur, içine konulan tüplerin barkod bilgilerini cihaza iletmiş olmanız gerekir.
cihaza string olarak bu komutları gönderebilirsiniz. ancak çoğu cihaz öyle salt string kabul etmez, bir protokol ile çalışır, protokolleri kullanmalısınız.
cihaza string olarak bu komutları gönderebilirsiniz. ancak çoğu cihaz öyle salt string kabul etmez, bir protokol ile çalışır, protokolleri kullanmalısınız.
Re: delphi tıbbi cihaz kontrolü..
Cihazın programlama kılavuzunu edinin. Zaten cihazın servisinden istediğiniz zaman hemen veriyorlar. Bu kılavuz olmadan işiniz çok zor.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Re: delphi tıbbi cihaz kontrolü..
Hangi cihaz olduğunu söylersen daha kolay yardım alırsın.
Re: delphi tıbbi cihaz kontrolü..
şöyle söyleyeyim...cihaz hakkında..kullanma kılavuzundaki veriler şu şekilde..işimize yarayacak bölümü yazıyorum..
Telegram
The telegram consist of 3 , syn' characters followed by a,stx', a ser of data , a,etx' and at last a checksum vbyte, bcc'. Tha data includes tha telegram information. The checksum byte ,bcc' is generated via , xor' logic started ,stx' and inclusive ,etx'
transmitter: 'syn syn syn stx data etx bcc'
receiver: answers with 'syn syn syn stx ack etx bcc' if checksum was ok
or with 'syn syn syn stx nak etx bcc' if checksum was wrong
characters:
control: 02 hex stx-start of text
03 hex etx-end of text
06 hex ack- acknowledge
15 hex nak-not acknowledge
16 hex syn-synchronisation
data: 20-ff hex data-max 60 characters
checksum: 00-ff hex bcc - xor control checksum
example command data 70 value to control desk:
16h | 16h | 16h | 02h | 43h | 44h | 41h | 37h | 30h | 3h | 42h
bu bilgiler ışığında nasıl bir kod yazmak gerekir??
Telegram
The telegram consist of 3 , syn' characters followed by a,stx', a ser of data , a,etx' and at last a checksum vbyte, bcc'. Tha data includes tha telegram information. The checksum byte ,bcc' is generated via , xor' logic started ,stx' and inclusive ,etx'
transmitter: 'syn syn syn stx data etx bcc'
receiver: answers with 'syn syn syn stx ack etx bcc' if checksum was ok
or with 'syn syn syn stx nak etx bcc' if checksum was wrong
characters:
control: 02 hex stx-start of text
03 hex etx-end of text
06 hex ack- acknowledge
15 hex nak-not acknowledge
16 hex syn-synchronisation
data: 20-ff hex data-max 60 characters
checksum: 00-ff hex bcc - xor control checksum
example command data 70 value to control desk:
16h | 16h | 16h | 02h | 43h | 44h | 41h | 37h | 30h | 3h | 42h
bu bilgiler ışığında nasıl bir kod yazmak gerekir??
Re: delphi tıbbi cihaz kontrolü..
control: 02 hex stx-start of text////iletişim chr($02) ile başlıyor
03 hex etx-end of text//chr($03) ile bitiyor
06 hex ack- acknowledge///bir bilgi gelir/giderse hemen ardından (tahmini 50ms sonra) chr(06) bilgisi bilginin işlendiğini göstermek maksadıyla bilgiyi işleyen taraftan gönderiliyor
15 hex nak-not acknowledge///böyle bir kullanımı ilk defa görüum ama sanırım bilginin işlenemediğini belirtmek için yukarıdaki gibi işleyen taraf gönderir.
16 hex syn-synchronisation///
data: 20-ff hex data-max 60 characters
checksum: 00-ff hex bcc - xor control checksum///gonderilen bilginin en sonuna kendisinden once gonderilen bilgilerin toplam değeri yazılır. buna checksum deniliyor. Bu konuda bilgi almak için checksum diye arayabilirsin. yada verilen orneğe bakarsan daha iyi olur. burada checksum bilginin en sonunda bulunan chr($42) karakteri.
example command data 70 value to control desk:///70 karakterlik örnek data. bu data işlendikten sonra geriye chr($06) gönderilir.
16h | 16h | 16h | 02h | 43h | 44h | 41h | 37h | 30h | 3h | 42h
3 adet chr($16): bunlar senkronizasyonu başlatmak için kullanılıyor. neden 3 tane verilmiş anlamadım ama zaten bilgilerimizi chr($02) den sonra almaya başlayacağız.
chr($02): bilgi alma işlemi başlıyor...
43h | 44h | 41h | 37h | 30h:bunlar datalarımız.
3h:bunu gorduğumuzda data almayı bırakıyoruz( bunu data olarak kabul etmiyoruz.)
chr($42): bu bizim checksum değerimiz. bu bilgi aldığımız bilgilerin matematiksel olarak toplamına denk geliyorsa (mod 255) geriye chr($06) göndeririz, tutmuyorsa chr($15) gönderilir.
03 hex etx-end of text//chr($03) ile bitiyor
06 hex ack- acknowledge///bir bilgi gelir/giderse hemen ardından (tahmini 50ms sonra) chr(06) bilgisi bilginin işlendiğini göstermek maksadıyla bilgiyi işleyen taraftan gönderiliyor
15 hex nak-not acknowledge///böyle bir kullanımı ilk defa görüum ama sanırım bilginin işlenemediğini belirtmek için yukarıdaki gibi işleyen taraf gönderir.
16 hex syn-synchronisation///
data: 20-ff hex data-max 60 characters
checksum: 00-ff hex bcc - xor control checksum///gonderilen bilginin en sonuna kendisinden once gonderilen bilgilerin toplam değeri yazılır. buna checksum deniliyor. Bu konuda bilgi almak için checksum diye arayabilirsin. yada verilen orneğe bakarsan daha iyi olur. burada checksum bilginin en sonunda bulunan chr($42) karakteri.
example command data 70 value to control desk:///70 karakterlik örnek data. bu data işlendikten sonra geriye chr($06) gönderilir.
16h | 16h | 16h | 02h | 43h | 44h | 41h | 37h | 30h | 3h | 42h
3 adet chr($16): bunlar senkronizasyonu başlatmak için kullanılıyor. neden 3 tane verilmiş anlamadım ama zaten bilgilerimizi chr($02) den sonra almaya başlayacağız.
chr($02): bilgi alma işlemi başlıyor...
43h | 44h | 41h | 37h | 30h:bunlar datalarımız.
3h:bunu gorduğumuzda data almayı bırakıyoruz( bunu data olarak kabul etmiyoruz.)
chr($42): bu bizim checksum değerimiz. bu bilgi aldığımız bilgilerin matematiksel olarak toplamına denk geliyorsa (mod 255) geriye chr($06) göndeririz, tutmuyorsa chr($15) gönderilir.
Re: delphi tıbbi cihaz kontrolü..
yukarıda verdiğim örnekte checksum işlemini yanlış anlattım. Daha doğrusu checksum işlemi farklı şekillerde hesaplanabiliyor. google'da yaptığım arama sonucunda sizin için gerekli hesaplama yöntemi şunun gibi olabilir:
yalnız bu örnekte C dilie ile yapılmış. Siz delphiye göre çevirirsiniz.
Kod: Tümünü seç
#include <iostream.h>
#include <string.h>
void main()
{
int i;
unsigned char XOR;
char *Buff =
"GPGGA,204502.00,5106.9813,N,11402.2921,W,1,09,0.9,1065.02,M,-
16.27,M,,";
unsigned long iLen = strlen(Buff);
for (XOR = 0, i = 0; i < iLen; i++)
XOR ^= (unsigned char)Buff[i];
cout << hex << (int) XOR <<endl;
}
Re: delphi tıbbi cihaz kontrolü..
açıkcası delphiye nasıl çevireceğiz onu bilmiyorum ama benim size erdiğim konutu 16h ile başlayıp 42h ile biten datayı delphide nasıl gönderirirz..bununla ilgili örnek kod verebilecek bir arkadaş var mı?