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



Teraz jest 20 kwi 2024, o 00:44


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 17 maja 2021, o 06:44 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 06 kwi 2021
Posty: 15
Pomógł: 0

Dzień dobry.
Zainspirowany jednym z poradników chciałbym zaimplementować sobie opcję MENU w oknie terminala poprzez RS232. Korzystam z PuTTY i wszystko jest świetnie, kody VT100 robią robotę, ale....
zastanawiam się, czy jest możliwość, aby np. PuTTy w momencie uruchomienia, automatycznie wysyłał jakiś znak ASCII po to, aby po odpaleniu putty włączał się jakiś domyślny widok, np. menu. Chodzi mi tu o możliwość udostępnienia np. klientowi opcji konfiguracyjnych, ale na tej zasadzie, żeby po włączeniu putty nie zastanawiał się, co to za krzaczki są na ekranie (po ostatniej zamkniętej sesji) i co to ja miałem wcisnąć, żeby odświeżyć ekran, tylko z automatu startuje menu. Przetrzepałem opcje Putty ale niczego tam nie znalazłem...

ktoś coś..?

Dziękuję.
Bartek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2021, o 09:17 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2019
Posty: 147
Pomógł: 37

Sesje PuTTY są otwierane z czystym ekranem więc nie ma mowy o krzaczkach z poprzedniej sesji.
No ale poranne fusy podpowiadają mi że Tobie chodzi o sesje na urządzeniu, tj. interakcje z menu powodują zmianę stanu aplikacji w urzadzeniu i ponowne wejscie wyświetli jakieś podmenu. Nie zawsze jest to nieporzadane. Jeżeli user zamknie terminal przez przypadek i od razu ponownie wejdzie na pewno będzie zadowolony, że nie trzeba się przeklikiwać od nowa przez wszystkie poziomy. Gorzej gdy czas między wyjściem a wejściem będzie na tyle długi, że user zapomni kontekst. To można załatwić albo timeoutem w urzadzeniu po którym nastąpi reset stanu menusa albo jakimś klawiszem/opcją szybkiego powrotu do korzenia menusa.
Wejscie do "czystego" menusa przy każddym wejściu w PuTTY można zrobić oskryptowując go jakimś wrapperem. IMHO to i tak jest lepsze od uruchamiania "czystego" PuTTY bo pozwala od razu odpalić konkretną sesję. Skrypt przed odpaleniem programu sprawdza czy urządzenie jest na porcie i wysyła komendę resetującą menu, potem uruchamia teminal.
Inną opcją jest skonstrowanie menu bezkontekstowego.

_________________
Think for yourself and question authority.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2021, o 11:09 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 06 kwi 2021
Posty: 15
Pomógł: 0

Dzięki za odpowiedź, ale nic z tego nie zrozumiałem...
Cytuj:
Jeżeli user zamknie terminal przez przypadek i od razu ponownie wejdzie na pewno będzie zadowolony, że nie trzeba się przeklikiwać od nowa przez wszystkie poziomy.

otóż nie, ponieważ mam skonfigurowaną na ten moment jedną opcję, która po naciśnięciu przycisku "t" na klawiaturze wyświetla aktualny czas (pobrany z Atmega32 współpracującym z RTC) i ten czas odświeża się co sekundę. Żeby nie mrugał obraz cały czas, oraz żeby nie wysyłać bez sensu całej linijki: "Aktualny czas to: 11:55:45", funkcja poprzez komendę VT ustawia kursor przed sekundnikiem, po czym wysyła przez UART tylko sekundy, a co 60 sekund pobiera całą godzinę. No i załóżmy teraz, że zamknąłem okno putty i otwarłem je ponownie. Czarny ekran, a na nim odliczają się sekundy. Po osiągnięciu "00" zostaje pobrana też godzina, ale bez napisu "Aktualny czas to: ", no bo to jest wysyłane na terminal tylko raz, przy wywołaniu funkcji. Tak samo chciałem zrobić z MENU, czyli żeby nie wysyłało się co jakiś czas, tylko żeby zmiana następowała wtedy, kiedy bufor odbierze znak ASCII.
Kiedy odpalam putty mam czarny ekran i dopiero jaj wcisnę przycisk np. "l" to wyświetla mi się logo, kiedy wcisnę "t" to wyświetla mi się czas, "f" coś tam jeszcze... Chodzi generalnie o to, żeby podczas włączania pytty (lub jakiegoś innego monitora portu) i otwierania sesji z tym mikrokontrolerem za każdym razem startować w tym samym miejscu, czyli putty podczas odpalania wysyła zaprogramowaną komendę (znak ASCII) żeby wywołać na ekran np. wspomniane MENU.

Przypuszczam, że to co tutaj napisałeś...
Cytuj:
Wejscie do "czystego" menusa przy każddym wejściu w PuTTY można zrobić oskryptowując go jakimś wrapperem. IMHO to i tak jest lepsze od uruchamiania "czystego" PuTTY bo pozwala od razu odpalić konkretną sesję. Skrypt przed odpaleniem programu sprawdza czy urządzenie jest na porcie i wysyła komendę resetującą menu, potem uruchamia teminal.

...jest odpowiedzią na moje pytanie, ale zanim dojdę do "oskryptowywania wrappem" to jeszcze trochę czasu minie, bo na razie nie wiem nawet co to zdanie znaczy...

...ale dzięki!



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2021, o 13:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 lis 2019
Posty: 147
Pomógł: 37

Zadanie się sprowadza do tego by wysłać komendę która odświeży cały ekran, to rozumiesz. Rozumiesz też że PuTTY nie ma takiego ficzera. Bez nadmiernego nadwerężania szarych komórek nasuwają się trzy możliwości:
1. Uruchamiać PuTTY ze skryptu, który uprzednio prześle odpowiednią komendę do urządzenia np. jakiś taki
Składnia: [ Pobierz ] [ Ukryj ]
język bash
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

2. Znaleźć program który ma skrypty albo inaczej mówiąc makra i który pozwala uruchomić makro (czy skrypt) automatycznie w momencie uruchomienia
3. Odświeżać zawsze cały ekran

_________________
Think for yourself and question authority.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2021, o 15:47 
Offline
Użytkownik

Dołączył(a): 19 lip 2013
Posty: 759
Pomógł: 37

Albo troszkę się pobawić i napisać sobie takie menu w B4j :). Napiszesz taki programik szybciej ,niż znajdziesz rozwiązanie z putty.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 17 maja 2021, o 16:41 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 06 kwi 2021
Posty: 15
Pomógł: 0

No ja bym bardzo chętnie się pobawił i napisał sobie taki programik, tylko na razie się bawię i piszę sobie programik w C, a właściwie zaczynam, bo to co robię to są początki i próba zrozumienia jak to wszystko działa. Jako, że robię to wszystko "tak przy okazji", to trudno jest mi uczyć się wszystkiego na raz. Z tym skryptem, który dodał fofex nawet nie wiem co zrobić... :-) ja naprawdę dopiero zaczynam, mam trochę doświadczenia z automatyką bo w tym "siedzę", jakieś przekaźniki programowalne, teraz mi się spodobały mikrokontrolery, ale do pisania własnych programów jeszcze się nie czuję...
Myślałem, że da się to załatwić jakąś prostą opcją w monitorze portu... wiem, że to o czym piszecie na pewno nie jest strasznie skomplikowane, ale widząc coś takiego:
Składnia: [ Pobierz ] [ Ukryj ]
język bash
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

nawet nie wiem co z tym zrobić... jak tego użyć...

ale dzięki za poświęcony czas...



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: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 7 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