diff src/g23m-fad/app/app_util.h @ 1:d393cd9bb723

src/g23m-*: initial import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 15 Jul 2018 04:40:46 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/g23m-fad/app/app_util.h	Sun Jul 15 04:40:46 2018 +0000
@@ -0,0 +1,101 @@
+/*
++------------------------------------------------------------------------------
+|  File:       app.h
++------------------------------------------------------------------------------
+|  Copyright 2003 Texas Instruments Berlin, AG
+|                 All rights reserved.
+|
+|                 This file is confidential and a trade secret of Texas
+|                 Instruments Berlin, AG
+|                 The receipt of or possession of this file does not convey
+|                 any rights to reproduce or disclose its contents or to
+|                 manufacture, use, or sell anything it may describe, in
+|                 whole, or in part, without the specific written consent of
+|                 Texas Instruments Berlin, AG.
++-----------------------------------------------------------------------------
+|  Purpose :  Definitions for the Protocol Stack Entity app.
++-----------------------------------------------------------------------------
+*/
+
+#ifndef APP_UTIL_H
+#define APP_UTIL_H
+
+
+#define __STR2__(x) #x
+#define __STR1__(x) __STR2__(x)
+#define __TODO__ __FILE__ "("__STR1__(__LINE__)") : T O D O: "
+
+/*==== INCLUDES =============================================================*/
+
+#include "typedefs.h"           /* Condat data types. */
+
+/*==== CONSTS ===============================================================*/
+/*==== DEFINES =========================================================*/
+
+#define BAT_MAX_TEST_CLNT_NUM 4
+#define BAT_MAX_TEST_INST_NUM 2
+
+/* Result of test case */
+#define BAT_TEST_PASS         0
+#define BAT_TEST_FAIL         1
+
+/* Indicate no additional values for test result */
+#define NO_ADD_VAL 0xFFFFFFFF
+
+/* Macros for easier coding */
+#define BAT_TEST_PASSED() app_bat_send_result_prim(BAT_TEST_PASS, NO_ADD_VAL)
+#define BAT_TEST_FAILED() app_bat_send_result_prim(BAT_TEST_FAIL, NO_ADD_VAL)
+
+/*==== TYPES ================================================================*/
+
+/* Type of command table entry. */
+typedef struct APP_CMD_ENTRY app_cmd_entry_t ;
+
+/* Type of some application core functions. */
+typedef void (*core_func_t)(int , char* , char*) ;
+
+/* Type of command handler functions. */
+typedef char *(*cmd_handler_t)(app_cmd_entry_t *cmd_entry_ptr,
+                               char *param1,
+                               char *param2,
+                               char *param3,
+                               core_func_t core_func) ;
+
+/* Struct for command table entry. */
+struct APP_CMD_ENTRY {
+  char *cmd_name ;              /* Command string. */
+  cmd_handler_t cmd_func ;      /* Command handler function. */
+  core_func_t core_func ;       /* Related core function (if applicable). */
+  char *cmd_usage ;             /* Command usage string (informative only). */
+} ;
+
+
+/*==== FUNCTIONS ============================================================*/
+
+/** Parse a command and execute it if it is valid. Return appropriate error
+ * message if the command is invalid or fails.
+ * 
+ * @param command    command line to execute
+ * @return an error message or NULL on success
+ */
+char *app_handle_command(char *command, app_cmd_entry_t * cmd_table);
+
+/**
+ * Convert a string into an integer.
+ * If not possibly, assume the default value.
+ */
+int get_item(char *param, int default_item, BOOL can_null);
+
+/**
+ * Convert a string to lower case
+ */
+char *string_to_lower(char *s) ;
+
+/**
+ * Send a T_APP_BAT_TEST_RSLT result primitive.
+ * Result can be either BAT_TEST_PASS or BAT_TEST_FAIL.
+ */
+void app_bat_send_result_prim (U8 result, U32 add_info);
+
+
+#endif /* !APP_UTIL_H */