W dniu 2012-05-20 01:48, Grzegorz Niemirowski pisze:
> Zastanawiam się nad aplikacją webową, która pozwalałaby komunikować się
> zdalnie z jakimś sprzętem, konkretnie podłączonym przez port szeregowy
> do serwera WWW.
Coś takiego:
http://rcp.madar.com.pl ?
A dokładnie: czytnik RFID podłączony vie RS 232 . CO prawda serwer co
ARM ale komunikacja z całym urządzeniem poprzez WWW.
Wysyłanie czegoś do takiego urządzenia jest dosyć
> proste. Gdy przyjdzie żądanie z przeglądarki, np. POST lub GET, można
> coś wysłać na port szeregowy, czy to korzystając z gotowych klas
> (PHP/ASP, zależnie w czym jest strona napisana), czy też wywołując
> zewnętrzną aplikację. Gorzej jest natomiast w drugą stronę, bo chodzi o
> to, żeby to działało w czasie rzeczywistym. Aplikacja webowa raczej nie
> może otworzyć sobie portu szeregowego i czekać aż coś dostanie.
Teoretycznie może, ale odbędzie się to na komputerze klienta, a nie na
serwerze.
> Więc zostaje zewnętrzna aplikacja, która trzymałaby otwarty port i gdy
> coś dostanie np. zrzucałaby to do pliku. Przeglądarka przez AJAX mogłaby
> wtedy odpytywać aplikację na serwerze (przez polling np. co sekundę),
> która pobierałaby ten plik.
Lepiej zrobić to inaczej. Przeglądarka pyta, ale serwer nie odpowiada od
razu, tylko czeka. Jeżeli przyjdzie sygnał z zewnętrznego urządzenia do
serwer WWW natychmiast odpowiada, jeżeli nie to po upływie 60s leci
pusta odpowiedź, po czym przeglądarka ponawia pytanie.
> Generalnie chodzi mi o coś takiego, że jest sobie urządzenie z
> przyciskiem. Naciśnięcie tego przycisku powoduje wysłanie jednego bajtu
> przez RS-232 do komputera na którym stoi demon HTTPD. Jak to potem
> sensownie przesłać do przeglądarki, z możliwie małym opóźnieniem?
Opóźnienie jest rzędu kilkuset milisekund
Da się
> to jakoś lepiej rozwiązać niż komunikacja przez pliki z zewnętrzną
> aplikacją odpowiedzialną za port szeregowy?
>
to raczej nie ma znaczenia.
--
Darek