Projektując urządzenie oparte o mikrokontroler, często zachodzi potrzeba przesłania informacji pomiędzy komputerem, a budowanym układem. Wynika to z funkcji jaką ma pełnić aplikacja, lub zaimplementowanych w niej procedur debugujących.
Do takich zastosowań przydatne są programy zwane terminalami. W Windowsie dostępny jest standardowo program o nazwieHyperTerminal, który może pełnić podstawowe funkcje nadawczo-odbiorcze. Niestety program ten jest strasznie niepraktyczny.
W sieci dostępnych jest sporo programów realizujących funkcję terminala, ale mi osobiście najlepiej pracuje się na Bray Terminal. Niestety program nie jest już dostępny na macierzystej stronie projektu. Od dłuższego czasu pracowałem na wersji z 2004 roku znalezionej gdzieś w sieci.
Ostatnio coś mnie tknęło, żeby zobaczyć, czy nie pojawiła się nowa wersja (choć wątpiłem) i rzeczywiście znalazłem taką. Pojawił się Bray Terminal w wersji 20080315. Program troszeczkę się rozbudował, choć wersja, którą posiadam pisząc te słowa, jest wersją beta i działa trochę niestabilnie.
Program jest dość prosty w obsłudze, chciałbym jednak przedstawić kilka ważnych rzeczy.
Dla mnie jedną z najistotniejszych cech programu jest możliwość przesyłania danych w postaci ACSII, HEX (bajt zapisany w postaci szesnastkowej), czy też DEC (bajt zapisany w postaci dziesiętnej) wpisując je bezpośrednio z klawiatury. Mało tego możemy zapisy dowolnie mieszać, a jak to zrobić przedstawię poniżej.
W polu, gdzie wpisujemy dane do wysłania oraz w makrach
możemy stosować wszystkie znaki z klawiatury, a także dowolny znak ASCII
używając zapisu $xx
(HEX) lub #xxx
(DEC). Gdy chcemy wysłać znak # lub $
musimy napisać go dwa razy ($$=$ i ##=#).
Program umożliwia także obliczenie wartości XOR
przesyłanych bajtów (komenda %XOR
)
oraz sumy (komenda %SUM
).
Bardzo ciekawą cechą programu jest możliwość wstawiania
opóźnień w makrach. Robi się to stosując zapis %DLYxxxx
,
gdzie xxxx jest wartością z zakresu 0000 – 9999 w ms.
Aby wszystko było zrozumiałe przedstawię proste przykłady.
abcdefgh123456
– wysłane zostanie:
‘abcdefgh123456′AT#013#010
– wysłane zostanie ‘AT’ oraz znacznik
CR + LF (powrót karetki + nowa linia)X1##Y2##Z3##$0D$0A
– wysłane zostanie ‘X1#Y2#Z3#’ oraz
CR + LF$$value=123$0D
– wysłane zostanie ‘$value=123′ oraz
CR$01$02$03$04$05%XOR
– wysłane zostaną liczby (HEX) $01
$02 $03 $04 $05 oraz obliczona wartość XOR tych bajtów, czyli $01ABC%DLY0123DEF
– wysłane zostanie ‘ABC’ i po 123ms
‘DEF’$01$02$03%SUM
– wysłane zostaną liczby (HEX)
$01$02$03$06Na koniec mała uwaga. Najnowsza wersja programu zaraz po jej uruchomieniu skanuje dostępne porty COM.
Okazuje się, że gdy na komputerze zainstalowane są porty Bluetooth (może ich być nawet ponad 10) program startuje bardzo długo i działa niestabilnie. Rozwiązaniem jest wyłączenie nieużywanych portów (Menadżer Urządzeń->Porty (COM i LPT)) analogicznie jak na przedstawionym zrzucie ekranu