1

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ı.

2

Re: Elektronik Kantardan Veri Alma

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.

3

Re: Elektronik Kantardan Veri Alma

Çetin hocam size göre basit.
Bir de bize sor.

mscomm dan bilgileri alan bir örnek kod yazabilir misiniz?
Teşekkürler

4

Re: Elektronik Kantardan Veri Alma

Bu ornek GPS baglantisini test eden bir kod, full versiyonu GPS datayi kaydediyor ama bu daha iyi, kisa ve dogrudan COM' okumaya odakli:

Visual Fox Pro
* 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

5 Son düzenleyen, cetinbasoz (12.05.2007 14:05:51)

Re: Elektronik Kantardan Veri Alma

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.