User Manual

www.veear.eu
36 EasyVR 3 User Manual (1.0.14)
Communication Examples
These are some examples of actual command and status characters exchanged with the EasyVR module by
host programs and the expected program flow with pseudo-code sequences.
The pseudo-instruction SEND transmits the specified character to the module, while RECEIVE waits for a
reply character (a timeout is not explicitly handled for simple commands, but should be always
implemented if possible).
Also, the OK and ERROR routines are not explicitly defined, since they are host and programming language
dependent, but appropriate code should be written to handle both conditions.
Lines beginning with a # (sharp) character are comments.
Please note that in a real programming language it would be best to define some constants for the
command and status characters, as well as for mapping numeric arguments, that would be used
throughout the program, to minimize the chance of repetition errors and clarify the meaning of the code.
See the Protocol header file for sample definitions that can be used in a C language environment.
Here below all the characters sent and received are written explicitly in order to clarify the
communication protocol detailed in the previous sections.
Recommended wake up procedure
# wake up or interrupt recognition or do nothing
# (uses a timeout or max repetition count)
DO
SEND 'b'
LOOP UNTIL RECEIVE = 'o'
Recommended setup procedure
# ask firmware id
SEND 'x'
IF NOT RECEIVE = 'x' THEN ERROR
# send ack and read status (expecting id=0)
SEND ' '
id = RECEIVE
IF id = 'A' THEN
# it’s a VRbot
ELSE IF id = 'B' THEN
# it’s an EasyVR
ELSE
# next generation?
END IF
# set language for SI recognition (Japanese)
SEND 'l'
SEND 'C'
IF RECEIVE = 'o' THEN OK ELSE ERROR
# set timeout (5 seconds)
SEND 'o'
SEND 'F'
IF RECEIVE = 'o' THEN OK ELSE ERROR