[ sinke @ 21.07.2008. 14:27 ] @
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. |