Strona 1 z 1

wifi232 - wyjście z trybu transparentnego

: sobota 07 lip 2018, 12:59
autor: Marcin
Witam

Mam na stole moduł wifi232. Napisałem do jego testowania skromną aplikację pod windows.

Moduł po uruchomieniu jest w trybie transparentnym, aby wejść do trybu at zgodnie z instrukcja wysyłam +++ i w odpowiedzi na 'a' wysyłam 'a'. I to działa, po przejściu do trybu at mogę wysyłać dowolne polecenia AT. Przejście do trybu transparentnego następuje po wysłaniu komendy AT+ENTM.

Poniżej przykład komunikacji i wysyłania danych do serwera

Przechwytywanie.PNG


Problem napotykam na pkt 9, ta sekwencja +++ jest traktowana jak poprzednia paczka danych (z pkt 7) i wysyłana do sieci.
Samo wysyłanie danych działa, po stronie serwera sprawdzałem i ciąg bajtów jest taki jak oczekiwano, czyli zgodny z tym co wyszło z wifi232.
Ale gdy pominę pkt 7 i 8 to ciąg znaków +++ powoduje przełączenie modułu to trybu at.

Dlaczego po rozpoczęciu transmisji do sieci moduł każdy nadesłany siąg znaków (w tym przypadku +++) traktuje jako paczkę przeznaczoną do wysłania danych ?

Re: wifi232 - wyjście z trybu transparentnego

: sobota 07 lip 2018, 14:08
autor: xor
"To switch from data mode to command mode, sessions sent an escape sequence string of three plus signs ("+++") followed by a pause of about a second. The pause at the end of the escape sequence was required to reduce the problem caused by in-band signaling: if any other data was received within one second of the three plus signs, it was not the escape sequence and would be sent as data."

https://en.wikipedia.org/wiki/Hayes_command_set#+++

Re: wifi232 - wyjście z trybu transparentnego

: sobota 07 lip 2018, 15:06
autor: Marcin
Dodałem przed wysłaniem +++ instrukcję Thread.Sleep(1000) powodującą wstrzymanie wątku na 1000ms.
Jeszcze przed wysłaniem +++ należy odczytać zawartość bufora.

I teraz wygląda na to że działa poprawnie.

Dzięki za info, przejrzałem manual wifi232 ale nie ma tam takiej informacji.

Re: wifi232 - wyjście z trybu transparentnego

: niedziela 08 lip 2018, 09:27
autor: GrumpyRez
Coś słabo szukałeś......

In order to exit from Data mode to AT command mode, you have to write +++(0x2B 0x2B 0x2B)
without any followed char during more than 2 seconds.