User manual
72 4 | TCP-Server
4
Die Auswertun
g
im Pro
g
ramm funktioniert nun fol
g
endermaßen: An
g
e-
n
ommen, im Formular wurden die Boxen 3, 5 und 7 aus
g
ewählt. Dann
än
d
ert sic
h
d
ie URL zu:
[IP]/?ld3=on&ld5=on&ld7=on
Das bedeutet, nur aus
g
ewählte Boxen werden übermittelt und lassen
s
ich anhand des Index identifi zieren. In de
r
loo
p
-Routine
g
eschieht dann
g
enau das. Zunächst wird der
g
anze Port D, an dem die di
g
italen Aus
g
än-
g
e lie
g
en, low
g
eschaltet. Dann sucht eine whil
e
-
Sc
hl
e
if
e
n
ac
h
a
ll
e
n »l
d
«
s
i
m Ressourcen-Link. Anhand des Index der
g
efundenen
ld
,
bei l
d3
w
ä
r
e
es
z
.
B
.
d
i
e
3
, lässt sich, durch die Verschiebun
g
einer 1 in einem Byte
u
m den besa
g
ten Index 3, das Byte 0b0001000 erzeu
g
en. Dieses wird
d
ann mit
d
em a
k
tue
ll
en Wert
d
es Bytes O
d
er-ver
k
nüpft. Dies
g
esc
h
ie
h
t
m
it allen übermittelten Indizes, bis das Aus
g
abere
g
ister von D den rich
-
ti
g
en Wert hat. Diese Form der Aus
g
abe anstelle von di
g
italWrite()
i
st
f
ür
A
rduino-Nutzer vermutlich etwas un
g
ewohnt, in diesem Fall aber deut-
l
ich praktischer.
001
i
f (es
p
8266.find("+IPD,")
)
002
{
003 debug("Incomming Request")
;
004 int connectionId = esp8266.parseInt()
;
00
5 if (esp8266.find("
/
?")) PORTD = B00000000
;
006 while (es
p
8266.findUntil("ld", "
\
n")
)
007
{
008 int ld = esp8266.parseInt()
;
00
9
PORTD |= (1 << ld)
;
0
1
0
}
0
11
}
Um
g
ekehrt funktioniert die Aus
g
abe der Checkboxen fol
g
endermaßen: In
de
r
createWebsite
()
-Funktion werden die Platzhalter aus dem HTML-Do-
k
ument aus
g
etauscht. Eine
f
or-Schleife
g
eht alle verwendeten Ports der
Reihe nach durch. Ist der Pin hi
g
h (auch hier fest
g
estellt durch den Ver
-
g
leich mit einem Byte, das durch Verschiebun
g
des Hi
g
h-Bits um die
Stellen des Index erzeu
g
t wurde), wird der Platzhalter mit dem Index
du
r
c
h
de
n T
e
xt
c
h
ec
k
ed
ersetzt. Wenn der Pin low ist
,
wird der Platzhalter
einfach nur
g
elöscht. Dadurch ist die richti
g
e Anzei
g
e der aktiven Ports
g
ewährleistet.
10215-5 Lernpaket Internet of Things_02.indd 7210215-5 Lernpaket Internet of Things_02.indd 72 19.04.2016 12:17:2619.04.2016 12:17:26