send_message
outputs a message character by character in a loop. In line 3, we
turn the current character into uppercase, because lowercase characters are
not defined in Morse code (that’s why you can’t implement a chat client using
Morse code). Then we check whether the current character is a letter using
C’s
isalpha
function. If it is, we use the character to determine its Morse code
representation that is stored in the
LETTERS
array. To do that, we use an old
trick: in the ASCII table, all letters (and digits) appear in the correct order—that
is, A=65, B=66, and so on. To transform the current character into an index
for the
LETTERS
array, we have to subtract 65 (or
'A'
) from its ASCII code. When
we have determined the correct Morse code, we pass it to
output_symbol
and
delay the program for the length of a dah afterward.
The algorithm works exactly the same for outputting digits; we only have to
index the
DIGITS
array instead of the
LETTERS
array, and we have to subtract
the ASCII value of the character
'0'
.
In line 10, we check whether we received a blank character. If yes, we print
a blank character to the serial port and wait for seven dits. All other characters
are ignored: we only process letters, digits, and blanks. At the end of the
method, we send a newline character to the serial port to mark the end of the
message.
Installing and Using the Telegraph Class
Our
Telegraph
class is complete, and we should now create some example
sketches that actually use it. This is important for two reasons: we can test
our library code, and for users of our class it’s good documentation for how
to use it.
The Arduino IDE looks for libraries in two places: in its global
libraries
folder
relative to its installation directory and in the user’s local sketchbook directory.
During development, it’s best to use the local sketchbook directory. You can
find its location in the IDE’s Preferences (see Figure 14, Find the sketchbook
location in the Preferences, on page 68). Create a new directory named
libraries
in the sketchbook directory.
To make the
Telegraph
class available, create a
Telegraph
subfolder in the
libraries
folder. Then copy
telegraph.h
and
telegraph.cpp
to the new
libraries/Telegraph
folder.
(Do not copy
TelegraphLibrary.ino
.) Restart the IDE.
Let’s start with the mother of all programs: “Hello, world!” Create a new sketch
named
HelloWorld
and enter the following code:
report erratum • discuss
Installing and Using the Telegraph Class • 67
www.it-ebooks.info