"7A005B0FF8D6"
};
//
Empty
array
to
hold
a
freshly
scanned
tag
char newTag[idLen];
void setup()
{
//
Starts
the
hardware
and
software
serial
ports
Serial.begin(9600);
rSerial.begin(9600);
//
Attaches
the
servo
to
the
pin
lockServo.attach(servoPin);
//
Put
servo
in
locked
position
lockServo.write(0);
}
void loop()
{
//
Counter
for
the
newTag
array
int i
= 0;
//
Variable
to
hold
each
byte
read
from
the
serial
buffer
int readByte;
//
Flag
so
we
know
when
a
tag
is
over
boolean tag
= false;
//
This
makes
sure
the
whole
tag
is
in
the
serial
buffer
bef
ore
//
reading,
the
Arduino
can
read
faster
than
the
ID
module
c
an
deliver!
if (rSerial.available()
== tagLen)
{
tag
= true;
}
if (tag
== true)
{
while (rSerial.available())
{
//
Take
each
byte
out
of
the
serial
buffer,
one
at
a
tim
e
readByte
= rSerial.read();
/*
This
will
skip
the
first
byte
(2,
STX,
start
of
tex
t)
and
the
last
three,
ASCII
13,
CR/carriage
return,
ASCII
10,
LF/linefeed,
an
d
ASCII
3,
ETX/end
of
text,
leaving
only
the
unique
part
of
the
tag
string.
I
t
puts
the
byte
into
the
first
space
in
the
array,
then
steps
ahead
one
spot
*/
if (readByte
!= 2 && readByte!= 13 && readByte
!= 10 &&
readByte
!= 3)
{
newTag[i]
= readByte;
i++;
}
//
If
we
see
ASCII
3,
ETX,
the
tag
is
over
if (readByte
== 3)
{
tag
= false;
}
}
}
//
don't
do
anything
if
the
newTag
array
is
full
of
zeroes
if (strlen(newTag)== 0)
{
Page 8 of 10