Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Citanje podataka sa serijskog porta

[es] :: Oracle :: Citanje podataka sa serijskog porta

[ Pregleda: 2970 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sinke
Sinisa Ivkovic
Subotica

Član broj: 6156
Poruke: 6
*.nordnet.ws.



Profil

icon Citanje podataka sa serijskog porta21.07.2008. u 14:27 - pre 190 meseci
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.
 
Odgovor na temu

Raspucin

Moderator
Član broj: 20699
Poruke: 216
*.sonydadc.com.

ICQ: 244452581


+3 Profil

icon Re: Citanje podataka sa serijskog porta22.07.2008. u 08:05 - pre 190 meseci
Može da se uradi, ali ne direktno iz PL/SQL-a (koliko je meni poznato). Moraće nešto koda da se napiše u C-u ili Javi a taj kod posle lako možeš da pozivaš dalje.

Prost primer za Javu imaš ovde:

http://java.sun.com/developer/releases/javacomm/SimpleRead.java

a dokumentaciju za to ovde:

http://java.sun.com/products/javacomm/


Pozdrav.
 
Odgovor na temu

sinke
Sinisa Ivkovic
Subotica

Član broj: 6156
Poruke: 6
*.nordnet.ws.



Profil

icon Re: Citanje podataka sa serijskog porta24.07.2008. u 07:38 - pre 190 meseci
Hvala na odgovoru.
Nije me bas utesilo ali sta da se radi. Mada nisam napomenuo ali kod koji sam poslao radi sa modemom. Meni je modem na com3 i kad posaljem komandu AT dobijem odgovor OK. Ali kad je u pitanju com1 i slanje podataka iz drugog programa nije mi radilo.
 
Odgovor na temu

[es] :: Oracle :: Citanje podataka sa serijskog porta

[ Pregleda: 2970 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.