diff src/aci2/aci/cmh_exts.c @ 3:93999a60b835

src/aci2, src/condat2: import of g23m/condat source pieces from TCS211
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 26 Sep 2016 00:29:36 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/aci2/aci/cmh_exts.c	Mon Sep 26 00:29:36 2016 +0000
@@ -0,0 +1,121 @@
+/* 
++----------------------------------------------------------------------------- 
+|  Project :  GSM-PS (6147)
+|  Modul   :  CMH_EXTS
++----------------------------------------------------------------------------- 
+|  Copyright 2002 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 :  This module provides the set functions related to the 
+|             protocol stack adapter for AT command extensions.
++----------------------------------------------------------------------------- 
+*/ 
+
+#ifndef CMH_EXTS_C
+#define CMH_EXTS_C
+#endif
+
+#include "aci_all.h"
+/*==== INCLUDES ===================================================*/
+
+/*==== CONSTANTS ==================================================*/
+
+typedef enum              /* ACI functional return codes */
+{
+  AT_FAIL = -1,           /* execution of command failed */
+  AT_CMPL                 /* execution of command completed */
+} T_ACI_RETURN;
+
+EXTERN T_ACI_RETURN rCI_URC ( CHAR * result );
+
+/*==== EXPORT =====================================================*/
+
+/*==== VARIABLES ==================================================*/
+
+/*==== FUNCTIONS ==================================================*/
+
+/*
++--------------------------------------------------------------------+
+| PROJECT : GSM-PS (6147)         MODULE  : CMH_EXTS                 |
+| STATE   : code                  ROUTINE : sAT_EXT                  |
++--------------------------------------------------------------------+
+
+  PURPOSE : This function is called by the interpreter part of the
+            ACI in case of the detection of an unknown command.
+
+            <command> : remaining unparsed command string.
+            <len>     : length of command string. This value must be
+                        incremented by the amount of parsed characters 
+                        by this function.
+            <output>  : this parameter can be used to display some
+                        strings at the AT command interface.
+                        The first char of one string must contain
+                        the length of the following string. The
+                        special length 0xff must be used to define
+                        the end of the string list.
+
+*/
+
+GLOBAL T_ACI_RETURN sAT_EXT ( 
+                              CHAR   *command,
+									            USHORT *len,
+                              CHAR   *output
+                            )
+{
+  /*
+   * example how to send an unsolicited result code via the AT interface
+   */
+  rCI_URC ("<unsolicited result code>");  
+
+  /*
+   * example how to process the command AT%H
+   */
+  if (*command++ == '%' && *command == 'H')
+  {
+    *len -= 2;
+
+    /*
+     * here you can perform some actions with drivers etc.
+     */
+
+    /* 
+     * and create some additional output at the AT interface
+     * The strings:
+     *"Hello"
+     *""
+     *"World"
+     * will be displayed at the terminal.
+     *
+     * first string Hello
+     */
+    output[0] = strlen ("Hello");
+    memcpy (&output[1], "Hello", 5);
+    /*
+     * add a spare line with an empty string
+     */
+    output [6] = 0;
+    /*
+     * second string World
+     */
+    output [7] = strlen ("World");
+    memcpy (&output[8], "World", 5);
+
+    /*
+     * end of string list
+     */
+    output [13] = (CHAR) 0xff;
+  
+    return( AT_CMPL );
+  }
+  else
+    return( AT_FAIL );
+}
+