Usage examples of MAKE_CMD.
authormarco <marco@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 20 Sep 2006 13:54:04 +0000 (13:54 +0000)
committermarco <marco@38d2e660-2303-0410-9eaa-f027e97ec537>
Wed, 20 Sep 2006 13:54:04 +0000 (13:54 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@701 38d2e660-2303-0410-9eaa-f027e97ec537

app/triface/protocol.c

index e659888b3d9c820c7b734cbd6dc287e4ff69e97d..981152e39a7494f5154f7208960be2e8fa9161d9 100755 (executable)
@@ -16,6 +16,9 @@
 
 /*#*
  *#* $Log$
+ *#* Revision 1.6  2006/09/20 13:54:04  marco
+ *#* Usage examples of MAKE_CMD.
+ *#*
  *#* Revision 1.5  2006/06/14 01:03:01  marco
  *#* Add response code. Add command ping.
  *#*
@@ -46,7 +49,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include <cmd_hunk.h>
+//#include <cmd_hunk.h>
 
 #include "cmd_ctor.h"  // MAKE_CMD, REGISTER_CMD
 
@@ -218,14 +221,15 @@ void protocol_run(Serial *ser)
  *
  */
 
-/* Version.  */
-MAKE_CMD(ver, "", "s",
-({
-       args[1].s = VERS_TAG;
-       0;
-}))
+/* Version. Example of declaring function and passing it to MAKE_CMD.  */
+static int ver_fn(const char **str)
+{
+       *str = VERS_TAG;
+       return 0;
+}
+MAKE_CMD(ver, "", "s", ver_fn(&args[1].s))
 
-/* Sleep.  */
+/* Sleep. Example of declaring function body directly in macro call.  */
 MAKE_CMD(sleep, "d", "",
 ({
        timer_delay((mtime_t)args[1].l);