+ * This module supply a simple ascii protocol to send commands to
+ * the device like pc "terminal". To use it we need to define all command
+ * that we want supply, and then we should register they using a user defined
+ * function. All commands can take arguments or/and return a value.
+ *
+ * \code
+ * #include "verstag.h"
+ * #include <mware/parser.h>
+ *
+ * //Define a function ver, that return 3 int.
+ * //This macro will expand into a fuction named "ver" that not take
+ * //an input and return 3 int (ddd).
+ * MAKE_CMD(ver, "", "ddd",
+ * ({
+ * args[1].l = VERS_MAJOR;
+ * args[2].l = VERS_MINOR;
+ * args[3].l = VERS_REV;
+ * 0;
+ * }), 0);
+ *
+ *
+ * //Define the function to pass at protocol_init, to register
+ * //all defined protocol function.
+ * static void protocol_registerCmds(void)
+ * {
+ * REGISTER_CMD(ver);
+ * }
+ *
+ *
+ * //Init the protocol module whit comunication channel and
+ * //the callback to register the defined protocol functions.
+ * protocol_init(&socket.fd, protocol_registerCmds);
+ * \endcode