Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 4 cze 2025, o 03:48


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 
Autor Wiadomość
PostNapisane: 8 sty 2014, o 00:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2011
Posty: 266
Lokalizacja: Szczecin
Pomógł: 9

Witam, tak jak w temacie, mam problem z wysterowaniem portu RS232 z serwera www.

Sprawa wygląda następująco:
Pogrzebałem trochę po internecie i znalazłem bibliotekę która umożliwia wysyłanie komend na port RS232.
http://www.phpclasses.org/browse/file/17926.html Jest to dość popularna biblioteka i chyba jedyna ogólnie dostępna do konfiguracji portu RS232.
Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
język php
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Do testowania stworzyłem plik index.php
Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
język php
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Do laptopa na którym postawiłem serwer mam podłączoną przejściówkę USB->RS232. Piny RX,TX,GND. Od strony elektrycznej jest wszystko OK, ponieważ jak wysyłam z terminala to wszystko działa. Zmiania się stan diody na przeciwny, oraz jest odpowiedz "OK".

Jak próbuję wysłać komendę poprzez stronę index.php Widzę, że coś z tego portu wylatuje diody na przejściówce mi mrugają, czyli leci jakaś komenda do uP. Tylko jest brak reakcji uP ??

Parametry transmisji: COM1,8,0,1

Skrypt PHP wykonuje się bez błędów hmmm coś jest wysyłane na port COM ale nie wiem co?

Musze coś zmieniać w ustawieniach serwera? Mam postawiony serwer XAMPP na swoim laptopie Windows 7.

Biblioteka najprawdopodobniej działa, ponieważ jest dosyć popularna w necie, ja coś muszę źle robić :/

_________________
www.gryfsmart.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2014, o 00:59 
Offline
Nowy

Dołączył(a): 14 sie 2012
Posty: 11
Pomógł: 2

Otwórz terminal na kompie z tymi samymi parametrami co masz na uC, na przejściówce zewrzyj/połącz Rx i Tx i patrz co się wyświetla... Teoretycznie uC powinien dostawać to samo.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2014, o 01:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2011
Posty: 266
Lokalizacja: Szczecin
Pomógł: 9

Jak przeglądarka otwiera port, to nie mogę otworzyć tego portu za pomocą terminala.

Zastanawiałem się aby wykorzystać ATMega644p, na UART1 wchodzą informacje z serwera www, uP przesyła ją dalej na UART2, UART2 wysyłą dalej na PC. Ale na razie nie mam 2 przejściówki RS232->USB. W sumie mam Mirkowy moduł BTM który bym mógł wykorzystać.

Nie mam łatwiejszego pomysłu jak bym mógł podsłuchać co się pojawia na tym UART.

------------------------ [ Dodano po: 3 minutach ]

Hmmm... Na samym serwerze też można za pomocą tej biblioteki odbierać łańcuchy. Jutro to wypróbuje...

_________________
www.gryfsmart.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2014, o 02:03 
Offline
Nowy

Dołączył(a): 14 sie 2012
Posty: 11
Pomógł: 2

Racja, zapomniałem, że blokuje port... A z tym odbieraniem przez serwer tak bym się nie spieszył:
Składnia: [ Pobierz ] [ Ukryj ]
język php
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Twój kod uruchomiłem u siebie... Rzeczywiście przesyła... Ale praktycznie na każdym znaku jest przekłamanie...
Tzn. część znaków przesyła poprawnie (c, e, f, l, o, w, x, A, B, D, G, H, ...) a inne zamienia na jakieś dialektyczne (np. 'd' na 'ä' czy 'h' na 'ç') - i zawsze tak przesyła, więc wykluczam błędy z doborem prędkości (a przetestowałem to na kilku różnych, efekt ten sam).

Kodowanie pliku też kilkukrotnie zmieniałem, bez efektów...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2014, o 02:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2011
Posty: 266
Lokalizacja: Szczecin
Pomógł: 9

O dzięki!!! tak myślałem, że następuje jakieś przekłamanie. Tylko nie wiem dlaczego:( To nie jest moja biblioteka, znalazłem ją w sieci (@author Rémy Sanchez <thenux@gmail.com>). Może gdzieś w ustawianiach, serwera należy zmienić kodowanie z ANSI na UTF8 itd ? Nad tym się w sumie nie zastanowiłem. Ale dziwnie zamiania te znaki. Przy kodowaniu są raczej ogonki poucinane, brak polskich liter itp a tu jakoś dziwnie to zamienia ...

_________________
www.gryfsmart.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2014, o 02:23 
Offline
Nowy

Dołączył(a): 14 sie 2012
Posty: 11
Pomógł: 2

O. Już wiem gdzie błąd - skrypt wysyła znaki w wersji najprostszej ASCII - siedmiobitowe. (:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2014, o 02:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2011
Posty: 266
Lokalizacja: Szczecin
Pomógł: 9

AHA!!! i jakoś to trzeba na 8 bitów zamienic????

------------------------ [ Dodano po: 6 minutach ]

Przy inicjalizacji portu nie dodałem:
$serial->confCharacterLength(8);
Ale i tak to nic nie zmiania :(

_________________
www.gryfsmart.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2014, o 02:35 
Offline
Nowy

Dołączył(a): 14 sie 2012
Posty: 11
Pomógł: 2

W tej blibliotece jest metoda "confCharacterLength" do wywołania z parametrem 8 - uwaga! działa (u mnie) tylko po wywołaniu na samym końcu konfiguracji!
Składnia: [ Pobierz ] [ Ukryj ]
język php
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Ewentualnie w uC to różnica jednego bitu w konfiguracji UARTu.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2014, o 02:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2011
Posty: 266
Lokalizacja: Szczecin
Pomógł: 9

Mi nie działa:( Komp zaczął mi się wieszać :(

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Wszystkie z tych komend? Chce wysłać komendę AT do uP i ma być zakończona znakami CR i LF.

Kodowanie pliku UTF8, ASCII itd to ma tu znaczenie???

Ale super, że CI działa!!! Teraz wiem, że kod jest dobry tylko u mnie coś nie tak.

A jak Ty dokładnie to testujesz? Odbierasz w przeglądarce znaki? i masz zwarte RX i TX?

------------------------ [ Dodano po: 4 minutach ]

Villentre WIELKIE DZIĘKI PO RAZ 2 W DZISIEJSZYM DNI :D Diodka mi zamrugała!!! :D Zaczeło dziłać!!!

------------------------ [ Dodano po: 6 minutach ]

:D :D :D

------------------------ [ Dodano po: 10 minutach ]

Trochę wolno mi to chodzi, ale działa super!!! Ale chyba wolno chodzi sama inicjalizacja otwarcia portu RS232. Jak otworzy się port RS232 to chyba będzie to szybciej smigało, samo wysyłanie komend :)

Jutro jak wrócę z pracy będę miał się czym bawić :D Jeszcze raz wielkie dzięki Villentre za pomoc :) Spadam spać, bo trochę późno ;) Dobranoc :D

_________________
www.gryfsmart.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2014, o 02:59 
Offline
Nowy

Dołączył(a): 14 sie 2012
Posty: 11
Pomógł: 2

Mam spięty laptop (z uruchomionym PuTTy) i stacjonarny (XAMPP i Twój kod z pierwszego postu, z dopisanym jedynie tym "$serial->confCharacterLength(8);"; po zmianie kodowania różnicy w działaniu nie zauważyłem) najzwyklejszym RS232 (właściwie to nawet tylko rx<-tx i gnd<->gnd).

W odpowiedzi otrzymuję (to co powinienem):
Składnia: [ Pobierz ] [ Ukryj ]
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


PHP stringów pomiędzy ' ' w żaden sposób nie interpretuje, więc oczywiście, w ostatnim przypadku wyświetla "\r\n" zamiast entera.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 8 sty 2014, o 03:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 lis 2011
Posty: 266
Lokalizacja: Szczecin
Pomógł: 9

Dokładnie jest tak jak mówisz, już to przetestowałem.
Ja steruje swój sterownik i wszystko hula :D
Kody które działają przy wysyłaniu stringów to:
Składnia: [ Pobierz ] [ Ukryj ]
język php
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


------------------------ [ Dodano po: 3 minutach ]

Jeżeli się wpisuje stringa w PHP i jest w " " to znaki specjalne są interpretowane, zminne itd. Natomiast jak się wpisuje w ' ' to znaki specjalne nie są interpretowane. Kiedyś więcej wiedziałem o PHP ale z biegiem lat wszystko mi uciekło :D Będę musiał odświeżyć wiedzę:D

_________________
www.gryfsmart.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 11 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO