Pozdrav,
Kako mogu da citam podatke sa serijskog porta u neko txt-polje ? Zapravo potrebna mi je mogucnost slusanja porta. Uredjaj koji se kaci na pomenuti port je vaga koja samo salje podatak o trenutnoj tezini.
Na netu sam gledao ali nigde nisam pronasao nista konkretno, pa ako je neko radio bilo bi lepo da pomogne.
Da li mogu da slusam port a da ga ne otvorim ? Ovo pitam zato sto sam skinuo neki program koji se zove Serial Port Monitor koji moze da slusa i salje podatke na serijski port. Kad ja iz moje aplikacije posaljem nesto na port taj program prepozna to i ispise rec koja je poslata ali kad zelim nesto sa tog programa da posaljem na port on mi javlja da neki program (moja aplikacija) koristi vec taj port i da ne moze da ga otvori. Znaci meni treba sad obrnuto, da ja iz tog programa (koji koristim u zamenu za vagu) posaljem nesto na port a da moja aplikacija samo to procita.
Uradio sam to na sledeci nacin:
Putem dugmeta kreiram ole objekat i setujem na commport 1 i otvaram port
BEGIN
:global.CommHandle := OLE2.Create_Obj('MSCOMMLib.MSComm');
OLE2.SET_PROPERTY(to_number(:global.commhandle), 'CommPort', 1);
OLE2.SET_PROPERTY(to_number(:global.commhandle), 'Settings', '9600,N,8,1');
OLE2.SET_PROPERTY(to_number(:global.commhandle), 'PortOpen', -1);
end;
Drugim dugmetom kreiram tajmer gde na svakih 100 milisekundi proveravam da li port salje nesto odnosno
na triger when_timer_expired radi sledece:
:block1.ulaz:=:block1.ulaz|| ole2.get_char_property(to_number(:global.commhandle),'Input');
synchronize;
Slanje na port radim dugmetom gde pre toga ispisem text koji saljem i stiskom na dugme radi sledece:
OLE2.SET_PROPERTY(to_number(:global.commhandle), 'Output', :block1.IZLAZ || chr(13));
Znaci slanje na port radi ali meni treba slusanje porta tj. da li mogu nekako da slusam port i da ucitavam ono sto salje taj drugi program.