User manual

zaznaczono pola wyboru 3, 5 i 7. Wtedy URL zmienia się na:
[IP]/?ld3=on&ld5=on&ld7=on
Oznacza to, że przekazane zostają tylko zaznaczone pola wyboru i można je
zidentyfikować na podstawie indeksu. W procedurze loop odbywa się to w taki
sam sposób. Najpierw cały port D, do którego podłączone są wyjścia cyfrowe, jest
ustawiany na low. Następnie pętla while wyszukuje wszystkie »ld« w linku do
zasobów. Na podstawie znalezionych ld, w ld3 byłoby to np. 3, można przez
przesunięcie 1 w bajcie o wspomniany indeks 3 utworzyć bajt 0b0001000. On jest
następnie łączony z aktualną wartością bajtu funkcją LUB. To dzieje się ze
wszystkimi przekazanymi indeksami, aż rejestr D będzie miał właściwą wartość.
Ta forma podawania informacji zamiast digitalWrite() jest przypuszczalnie dla
użytkowników Arduino nieco obca, ale w tym przypadku znacznie praktyczniejsza.
001
002
003
004
005
006
007
008
009
010
011
W odwrotną stronę podawanie pól wyboru działa w następujący sposób: W funkcji
createWebsite() wymieniane są znaki wieloznaczne z dokumentu HTML. Pętla for
przeszukuje po kolei wszystkie używane porty. Gdy pin jest high (sprawdzony
także tutaj przez porównanie z bajtem, który został utworzony przez przesunięcie
bitu high o miejsca indeksu), znak wieloznaczny z indeksem jest zastępowany
przez tekstchecked. Gdy pin jest low, znak wieloznaczny zostaje po protu
usunięty. Dzięki temu zapewniona jest poprawna prezentacja aktywnych portów.
001
String createWebsite()
002
{
003
String xBuffer;