Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> PHP blokuje RS232
PrisonHunter
post 12.12.2012, 21:44:55
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 12.12.2012

Ostrzeżenie: (0%)
-----


Witam.

Posiadam urządzenie które co sekunde wysyła na port liczby z przedziału 0-255 i oczekuje polecen 1-8.

Po podłączeniu musze w cmd wpisać "mode COM6: BAUD=2400 PARITY=N data=8 stop=1 xon=off".
No i wszystko powinno być ładnie, ale niestety mój skrypt się zawiesza i blokuje port, nie wiem czemu, oto kod:

  1. function port($tryb,$p) {
  2. $port='COM6:';
  3.  
  4. if ($tryb=='r'){
  5. $fp = fopen ($port, "rb+");
  6. if (!$fp)
  7. {
  8. echo "Port zamknięty(IN). ";
  9. file_put_contents('debug1.log',date(r).' '.$port.': nie mozna otworzyc do odczytu'."\r\n",FILE_APPEND);
  10. }
  11. else { $buffer = fgets($fp, 4); fclose ($fp); }
  12. return $buffer;
  13. }
  14. if ($tryb=='w'){
  15. $fp = fopen ($port, "w");
  16. if (!$fp) {
  17. echo "Port zamknięty(OUT). ";
  18. file_put_contents('debug1.log',date(r).' '.$port.': nie mozna otworzyc do zapisu'."\r\n",FILE_APPEND);
  19. } else {
  20. fwrite ($fp, $p );
  21. fclose ($fp);
  22. }
  23. }
  24. }


Za każdym razem po wpisaniu polecenia cmd musze jeszcze uruchamiać putty, dopiero wtedy skrypt działa. Niestety to mija się z celem, ponieważ urządzenie musi być dostępne cały czas tylko z przeglądarki. Przez ten skrypt komunikacja się zawiesza, gdzie robie błąd?
Pozdrawiam
Go to the top of the page
+Quote Post
mieszkos
post 12.12.2012, 23:52:01
Post #2





Grupa: Zarejestrowani
Postów: 78
Pomógł: 11
Dołączył: 1.04.2009

Ostrzeżenie: (0%)
-----


yy, może za bardzo nie znam się na komunikacji z urządzeniami ale co to jest ?

  1. $fp = fopen ($port, "rb+");


Otwierasz port funkcją do otwarcia pliku?

w sensie fopen("COM6:", tryb) ? Być może się nie znam aż tak ale z tego co wiem to chyba nie zadziała w ten sposób?

ja bym spróbował raczej tak

http://www.phpclasses.org/browse/file/17926.html

edit: rzeczywiście można, a co do problemu nie wiem, spróbuj może tą klasą

Ten post edytował mieszkos 13.12.2012, 00:30:26
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.06.2025 - 03:08