[ smijesni @ 24.10.2006. 08:21 ] @
| Dakle problem je sljedeći :)
Na raspolaganju mi je klijent aplikacija (vjerovatno urađena u C++) koja pristupa određenim senzorima (sondama) sa kojih kupi podatke mjerenja. Da li je moguce, bez debagovanja aplikacije, doci do aplikacionog protokola koji je "proprietary" kojim je ostvarena klijent-server komunikacija između sondi (server) i aplikacije ??? Da li je, npr., moguce napraviti Java aplikaciju kojom ce se nadzirati (iscitati) poruke koje neka druga aplikacija pise u/iz Socket-a.
Potrebno mi je iscitati mjerenja sondi kako bih napravio novu aplikaciju, sa starim sondama, daljinskog (telemetrijskog) mjerenja.
Bilo kakva pomoc, ideja su veoma dobro dosli :).
Pozdrav svima!
p.s. Mala napomena, sonda se na laptop spaja putem USB-a.
[Ovu poruku je menjao smijesni dana 24.10.2006. u 12:41 GMT+1] |
[ smijesni @ 26.10.2006. 09:49 ] @
Pa hoce li neko dati ikakav komentar :).
[ Java Beograd @ 26.10.2006. 14:48 ] @
Evo mog ad-hoc komentara.
Najverovatnije je da sonda šalje podatke na serijski port. USB je jako korisan, zato što obezbeđuje i 5V napajanje eksternih uređaja, pa tako ne treba posebno napajanje. Tako, se uz drajvere koji omogućavaju aplikacijama da USB vide kao COM2, COM3 ...može pisati program koji čita / piše na serijski port i tako ostvari vezu sa externim uređajima preko USB-a. Duboko sam uveren da se komunikacija ne ostvaruje preko socketa, tj. kroz mrežne konekcije, mada, ništa nije nemoguće.
Moja malenkost je napisala puno aplikacija koje čitaju / pišu na COM, doduše u C#, a ne u Javi, pa stoga, poznavajući hadrveraše, mogu pretpostaviti da je u pitanju COM port.
Java je bila jako slabašna kad je u pitanju komunikacija sa serijskim portovima. Znam da ima nekih pomaka, a možda je već sve na svom mestu, nisam pratio tu granu Java razvoja.
U svakom slučaju, preporučujem da se ne oslanjaš na Java programiranje, već da potražiš profi alate koji služe za nadgledanje komunikacije preko COM portova. Ima ih dosta, manje ili više user-friendly. Ne očekuj čuda, trebaće ti puno energije i strpljenja, a uspeh nije garantovan. Bez poznavanja internog protokola komunikacije računara i sonde, ili bez poznavanja kakvo značenje ima koji bit, sve je jako teško.
[ smijesni @ 26.10.2006. 19:41 ] @
Hvala na odgovoru, korisne informacije, premda malo obeshrabrujuce :)
[ Java Beograd @ 27.10.2006. 13:17 ] @
Na žalost, tako je.
Evo, otprilike, protokola u jednom mom programu.
U programu na 500 ms čitam COM port i proveravam da li se eksterni uređaj oglasio
1. Eksterni uređaj šalje bajt podataka
bit 0 vrednost 0 što znači ZAHTEV ZA POMERANJE VRATA
bit 1 vrednost 0 zahtev za otvaranje ili 1 zahtev za zatvaranje
bit 2-5 sifra zahteva
bit 6 uvek je 1
bit 7 kontrolni
2. Racunar procesira zahtev i vraca odgovor. Ispisuje jedan bajt na COM
bit 0 vrednost 0 znači otvaranje nije odobreno ili 1 što znači otvaranje odobreno
Za neodobren zahtev, svi ostali bitovu su setovani na 1, i bit 7 je kontrolni
Za odobren zahtev
bit 1 vrednost 0 znači otvaraj vrata ka unutra, vrednost 1 znači otvaraj vrata ka spolja
bit 2 vrednost ....
.....
I tako redom, da ne smaram. Ceo protokol, sve poruke, sve je to lepo razrađeno u dokumentaciji, i ja to isprogramirao. Ako bi neko osluškivao COM, bez znanja o vrednostima i značenjima bitova u svakom bajtu, ništa ili skoro ništa ne bi razumeo.
[ priki @ 04.11.2006. 12:01 ] @
Tako je
Svaki uredjaj mora imati tačno dokumentovano
šta šalje na serijski port i šta prima,
šta koji bit ili bajt znači !
Ako bi sam pokušao da tumačiš
dočekao bi sve sede
Pozdrav
Srdjan
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.