Konu: Elektronik Kantardan Veri Alma
Mevcut bir elektronik kantarın ekranındaki bilgiyi (kg, litre vs.) program kodlarıyla bir textboxa nasıl alabilirim? Kantar com1 veya com2 den bilgisayara bağlı.
Giriş yapmadınız. Lütfen giriş yapın yada kayıt olun.
fox4um » Kodlama ve Komutlar » Elektronik Kantardan Veri Alma
Mevcut bir elektronik kantarın ekranındaki bilgiyi (kg, litre vs.) program kodlarıyla bir textboxa nasıl alabilirim? Kantar com1 veya com2 den bilgisayara bağlı.
Serafettin,
Hatirladigim kadariyla serial communcation ornegi olan cok eski bir kod tam da bu isle ornek veriyordu, galiba MArc Grajover yazmisti (yillar gecti emin degilim). UT'nin downloads kisminda serial.zip ara.
Eger bulamzsan gene de basit, MSComm control kullanarak seri porta okuyup yazarsin.
Çetin hocam size göre basit.
Bir de bize sor.
mscomm dan bilgileri alan bir örnek kod yazabilir misiniz?
Teşekkürler
Bu ornek GPS baglantisini test eden bir kod, full versiyonu GPS datayi kaydediyor ama bu daha iyi, kisa ve dogrudan COM' okumaya odakli:
* load mscomm
oComm = CREATEOBJ('MSCOMMLib.MSComm')
* Open and Initialize COM port #1 for use
With oComm
.CommPort = 1
.Settings = "4800,N,8,1"
.InputLen = 1
.PortOpen = .T.
lcDATA=''
lnStart = seconds()
llDataReady = .F.
Do while seconds()-lnStart < 5
.InputLen = 1
lcDATA = lcDATA+.input
lnGGA = at('$GPGGA',lcData)
lnGSA = at('$GPGSA',lcData)
If lnGGA > 0 and lnGSA > lnGGA && Read enough
llDataReady = .T.
Exit
Endif
Enddo
* Close the port
.PortOpen = .F.
Endwith
Release oComm
if llDataReady
? lcDATA, len(lcDATA)
else
wait window timeout 2 'GPS timedout!'
endif
Bu arada COM port ayarlari onemli. Yoksa yanlis data alirsin. Ikinci de kantar veriyi text olarak degil binary olarak gonderiyordur. Yani dogrudan ? ile filan kontrol etme, dokumentasyonuna bak. Integer gonderdigi datayi (4 byte okuyup) ctobin(m.lcInteger, "4RS") gibi cevirebilirsin. Floatlarin cevirimi daha karisik, RtlMoveMem filan API gerekecek.
Ya da 3 kagit yapar lowlevel integer, double vs fieldleri olan tabloya yazarsin, VFP senin icin cevirmis olur.
fox4um » Kodlama ve Komutlar » Elektronik Kantardan Veri Alma