diff src/g23m-fad/app/app_bat_atcmds.c @ 174:90eb61ecd093

src/g23m-fad: initial import from TCS3.2/LoCosto
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 12 Oct 2016 05: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_bat_atcmds.c	Wed Oct 12 05:40:46 2016 +0000
@@ -0,0 +1,532 @@
+/*
++------------------------------------------------------------------------------
+|  File:       app_bat_atcmds.c
++------------------------------------------------------------------------------
+|  Copyright 2004 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 :  Example application for BAT -- at command command parser.
++-----------------------------------------------------------------------------
+*/
+
+#include <string.h>             /* String functions, e. g. strncpy(). */
+
+#include "app_util.h"
+#include "p_bat.h"
+#include "typedefs.h"
+#include "vsi.h"
+#include "gdd.h"
+#include "bat.h"
+#include "bat_ctrl.h"
+#include "bat_intern.h"
+
+#ifdef FF_GPF_TCPIP
+#include "socket_api.h"
+#endif
+
+#include "app.h"
+
+
+/*
+ *  #define CO_FST_BAT_DEBUG
+ *  #ifdef CO_FST_BAT_DEBUG
+ *  LOCAL T_BAT_return bat_send (T_BAT_client clnt_hndl, T_BAT_cmd_send *cmd)
+ *  { TRACE_EVENT("bat_send()"); return BAT_OK; }
+ *  #else
+ *  EXTERN T_BAT_return bat_send (T_BAT_client clnt_hndl, T_BAT_cmd_send *cmd);
+ *  #endif
+ */
+
+
+EXTERN T_BAT_client clnt_table[][BAT_MAX_TEST_CLNT_NUM+1];
+
+static char *handle_atcmd(app_cmd_entry_t *, char *,char *, char *, core_func_t );
+static char *atcmd_help(app_cmd_entry_t *, char *,char *, char *, core_func_t );
+static void exec_at_cmd(int at_cmd, char* param1, char* param2);
+
+static app_cmd_entry_t app_bat_atcmds_table[] = {
+  { "at_bat_cmd",  handle_atcmd,  exec_at_cmd,  "at_cmd [param]" },
+  { "at_bat_help", atcmd_help,    0,            "" },
+  {0,0,0,0}
+};
+
+  /*
+  ** Add all the BAT parameters into a union ... if each is defined in there own case statement the compiler
+  ** adds them ALL individually onto the stack and takes up a LOT of space ... Oooops!
+  */
+static union
+{
+  T_BAT_cmd_set_percent_als percent_als;     /*<  0:  4> pointer to The set command structure of the %ALS command. */
+  T_BAT_cmd_set_percent_band percent_band;   /*<  0:  4> pointer to The set command structure of the %BAND command. */
+  T_BAT_cmd_andc            andc;                /*<  0:  4> pointer to The set command structure of the &C command. */
+  T_BAT_cmd_set_plus_cacm   plus_cacm;       /*<  0:  4> pointer to The set command structure of the +CACM command. */
+  T_BAT_cmd_set_plus_camm   plus_camm;       /*<  0:  4> pointer to The set command structure of the +CAMM command. */
+  T_BAT_cmd_set_plus_caoc   plus_caoc;       /*<  0:  4> pointer to The set command structure of the +CAOC command. */
+  T_BAT_cmd_set_percent_cbhz percent_cbhz;   /*<  0:  4> pointer to The set command structure of the %CBHZ command. */
+  T_BAT_cmd_set_plus_cbst   plus_cbst;       /*<  0:  4> pointer to The set command structure of the +CBST command. */
+  T_BAT_cmd_set_percent_ccbs percent_ccbs;   /*<  0:  4> pointer to The set command structure of the %CCBS command. */
+  T_BAT_cmd_set_plus_ccfc   plus_ccfc;       /*<  0:  4> pointer to The set command structure of the +CCFC command. */
+  T_BAT_cmd_set_plus_cclk   plus_cclk;       /*<  0:  4> pointer to The set command structure of the +CCLK command. */
+  T_BAT_cmd_set_plus_ccug   plus_ccug;       /*<  0:  4> pointer to The set command structure of the +CCUG command. */
+  T_BAT_cmd_set_plus_ccwa   plus_ccwa;       /*<  0:  4> pointer to The set command structure of the +CCWA command. */
+  T_BAT_cmd_set_plus_ccwa_w plus_ccwa_w;     /*<  0:  4> pointer to The set command structure of the +CCWA_W command. */
+  T_BAT_cmd_set_plus_cfun   plus_cfun;       /*<  0:  4> pointer to The set command structure of the +CFUN command. */
+  T_BAT_cmd_set_percent_cgaatt percent_cgaatt; /*<  0:  4> pointer to The set command structure of the %CGAATT command. */
+  T_BAT_cmd_set_plus_cgact  plus_cgact;      /*<  0:  4> pointer to The set command structure of the +CGACT command. */
+  T_BAT_cmd_set_plus_cgans  plus_cgans;      /*<  0:  4> pointer to The set command structure of the +CGANS command. */
+  T_BAT_cmd_set_plus_cgatt  plus_cgatt;      /*<  0:  4> pointer to The set command structure of the +CGATT command. */
+  T_BAT_cmd_set_percent_cgclass percent_cgclass; /*<  0:  4> pointer to The set command structure of the %CGCLASS command. */
+  T_BAT_cmd_set_plus_cgclass plus_cgclass;   /*<  0:  4> pointer to The set command structure of the +CGCLASS command. */
+  T_BAT_cmd_set_plus_cgdata plus_cgdata;     /*<  0:  4> pointer to The set command structure of the +CGDATA command. */
+  T_BAT_cmd_set_plus_cgdcont plus_cgdcont;   /*<  0:  4> pointer to The set command structure of the +CGDCONT command. */
+  T_BAT_cmd_set_percent_cgmm percent_cgmm;   /*<  0:  4> pointer to The set command structure of the %CGMM command. */
+  T_BAT_cmd_set_plus_cgpaddr plus_cgpaddr;   /*<  0:  4> pointer to The set command structure of the +CGPADDR command. */
+  T_BAT_cmd_set_percent_cgpco percent_cgpco; /*<  0:  4> pointer to The set command structure of the %CGPCO command. */
+  T_BAT_cmd_set_percent_cgppp percent_cgppp; /*<  0:  4> pointer to The set command structure of the %CGPPP command. */
+  T_BAT_cmd_set_plus_cgqmin plus_cgqmin;     /*<  0:  4> pointer to The set command structure of the +CGQMIN command. */
+  T_BAT_cmd_set_plus_cgqreq plus_cgqreq;     /*<  0:  4> pointer to The set command structure of the +CGQREQ command. */
+  T_BAT_cmd_set_plus_cgsms  plus_cgsms;      /*<  0:  4> pointer to The set command structure of the +CGSMS command. */
+  T_BAT_cmd_set_percent_chld percent_chld;   /*<  0:  4> pointer to The set command structure of the %CHLD command. */
+  T_BAT_cmd_set_percent_chpl percent_chpl;   /*<  0:  4> pointer to The set command structure of the %CHPL command. */
+  T_BAT_cmd_set_percent_chpl_w percent_chpl_w; /*<  0:  4> pointer to The set command structure of the %CHPL_W command. */
+  T_BAT_cmd_set_plus_cind   plus_cind;       /*<  0:  4> pointer to The set command structure of the +CIND command. */
+  T_BAT_cmd_set_plus_clan   plus_clan;       /*<  0:  4> pointer to The set command structure of the +CLAN command. */
+  T_BAT_cmd_set_plus_clck   plus_clck;       /*<  0:  4> pointer to The set command structure of the +CLCK command. */
+  T_BAT_cmd_set_plus_clir   plus_clir;       /*<  0:  4> pointer to The set command structure of the +CLIR command. */
+  T_BAT_cmd_set_plus_clvl   plus_clvl;       /*<  0:  4> pointer to The set command structure of the +CLVL command. */
+  T_BAT_cmd_set_plus_cmer   plus_cmer;       /*<  0:  4> pointer to The set command structure of the +CMER command. */
+  T_BAT_cmd_set_plus_cmgc   plus_cmgc;       /*<  0:  4> pointer to The set command structure of the +CMGC command. */
+  T_BAT_cmd_set_plus_cmgd   plus_cmgd;       /*<  0:  4> pointer to The set command structure of the +CMGD command. */
+  T_BAT_cmd_set_plus_cmgl   plus_cmgl;       /*<  0:  4> pointer to The set command structure of the +CMGL command. */
+  T_BAT_cmd_set_plus_cmgl_w plus_cmgl_w;     /*<  0:  4> pointer to The set command structure of the +CMGL_W command. */
+  T_BAT_cmd_set_plus_cmgr   plus_cmgr;       /*<  0:  4> pointer to The set command structure of the +CMGR command. */
+  T_BAT_cmd_set_plus_cmgr_w plus_cmgr_w;     /*<  0:  4> pointer to The set command structure of the +CMGR_W command. */
+  T_BAT_cmd_set_plus_cmgs   plus_cmgs;       /*<  0:  4> pointer to The set command structure of the +CMGS command. */
+  T_BAT_cmd_set_plus_cmgw   plus_cmgw;       /*<  0:  4> pointer to The set command structure of the +CMGW command. */
+  T_BAT_cmd_set_plus_cmod   plus_cmod;       /*<  0:  4> pointer to The set command structure of the +CMOD command. */
+  T_BAT_cmd_set_plus_cmss   plus_cmss;       /*<  0:  4> pointer to The set command structure of the +CMSS command. */
+  T_BAT_cmd_set_plus_cmut   plus_cmut;       /*<  0:  4> pointer to The set command structure of the +CMUT command. */
+  T_BAT_cmd_set_plus_cmux   plus_cmux;       /*<  0:  4> pointer to The set command structure of the +CMUX command. */
+  T_BAT_cmd_set_plus_cnma   plus_cnma;       /*<  0:  4> pointer to The set command structure of the +CNMA command. */
+  T_BAT_cmd_set_plus_cnmi   plus_cnmi;       /*<  0:  4> pointer to The set command structure of the +CNMI command. */
+  T_BAT_cmd_set_percent_cops percent_cops;   /*<  0:  4> pointer to The set command structure of the %COPS command. */
+  T_BAT_cmd_set_plus_cops   plus_cops;       /*<  0:  4> pointer to The set command structure of the +COPS command. */
+  T_BAT_cmd_set_percent_cops_w percent_cops_w; /*<  0:  4> pointer to The set command structure of the %COPS_W command. */
+  T_BAT_cmd_set_percent_cpals percent_cpals; /*<  0:  4> pointer to The set command structure of the %CPALS command. */
+  T_BAT_cmd_set_percent_cpals_w percent_cpals_w; /*<  0:  4> pointer to The set command structure of the %CPALS_W command. */
+  T_BAT_cmd_set_plus_cpbf   plus_cpbf;       /*<  0:  4> pointer to The set command structure of the +CPBF command. */
+  T_BAT_cmd_set_plus_cpbf_w plus_cpbf_w;     /*<  0:  4> pointer to The set command structure of the +CPBF_W command. */
+  T_BAT_cmd_set_plus_cpbr   plus_cpbr;       /*<  0:  4> pointer to The set command structure of the +CPBR command. */
+  T_BAT_cmd_set_plus_cpbr_w plus_cpbr_w;     /*<  0:  4> pointer to The set command structure of the +CPBR_W command. */
+  T_BAT_cmd_set_plus_cpbs   plus_cpbs;       /*<  0:  4> pointer to The set command structure of the +CPBS command. */
+  T_BAT_cmd_set_plus_cpbw   plus_cpbw;       /*<  0:  4> pointer to The set command structure of the +CPBW command. */
+  T_BAT_cmd_set_plus_cpbw_w plus_cpbw_w;     /*<  0:  4> pointer to The set command structure of the +CPBW_W command. */
+  T_BAT_cmd_set_percent_cpcfu percent_cpcfu; /*<  0:  4> pointer to The set command structure of the %CPCFU command. */
+  T_BAT_cmd_set_percent_cphs percent_cphs;   /*<  0:  4> pointer to The set command structure of the %CPHS command. */
+  T_BAT_cmd_set_plus_cpin   plus_cpin;       /*<  0:  4> pointer to The set command structure of the +CPIN command. */
+  T_BAT_cmd_set_percent_cpmb percent_cpmb;   /*<  0:  4> pointer to The set command structure of the %CPMB command. */
+  T_BAT_cmd_set_percent_cpmbw percent_cpmbw; /*<  0:  4> pointer to The set command structure of the %CPMBW command. */
+  T_BAT_cmd_set_percent_cpmbw_w percent_cpmbw_w; /*<  0:  4> pointer to The set command structure of the %CPMBW_W command. */
+  T_BAT_cmd_set_percent_cpmb_w percent_cpmb_w; /*<  0:  4> pointer to The set command structure of the %CPMB_W command. */
+  T_BAT_cmd_set_plus_cpms   plus_cpms;       /*<  0:  4> pointer to The set command structure of the +CPMS command. */
+  T_BAT_cmd_set_percent_cpnums percent_cpnums; /*<  0:  4> pointer to The set command structure of the %CPNUMS command. */
+  T_BAT_cmd_set_percent_cpnums_w percent_cpnums_w; /*<  0:  4> pointer to The set command structure of the %CPNUMS_W command. */
+  T_BAT_cmd_set_plus_cpol   plus_cpol;       /*<  0:  4> pointer to The set command structure of the +CPOL command. */
+  T_BAT_cmd_set_plus_cpol_w plus_cpol_w;     /*<  0:  4> pointer to The set command structure of the +CPOL_W command. */
+  T_BAT_cmd_set_percent_cprsm percent_cprsm; /*<  0:  4> pointer to The set command structure of the %CPRSM command. */
+  T_BAT_cmd_set_plus_cpuc   plus_cpuc;       /*<  0:  4> pointer to The set command structure of the +CPUC command. */
+  T_BAT_cmd_set_plus_cpuc_w plus_cpuc_w;     /*<  0:  4> pointer to The set command structure of the +CPUC_W command. */
+  T_BAT_cmd_set_percent_cpvwi percent_cpvwi; /*<  0:  4> pointer to The set command structure of the %CPVWI command. */
+  T_BAT_cmd_set_plus_cpwd   plus_cpwd;       /*<  0:  4> pointer to The set command structure of the +CPWD command. */
+  T_BAT_cmd_set_plus_cres   plus_cres;       /*<  0:  4> pointer to The set command structure of the +CRES command. */
+  T_BAT_cmd_set_plus_crlp   plus_crlp;       /*<  0:  4> pointer to The set command structure of the +CRLP command. */
+  T_BAT_cmd_set_plus_crsm   plus_crsm;       /*<  0:  4> pointer to The set command structure of the +CRSM command. */
+  T_BAT_cmd_set_plus_csas   plus_csas;       /*<  0:  4> pointer to The set command structure of the +CSAS command. */
+  T_BAT_cmd_set_plus_csca   plus_csca;       /*<  0:  4> pointer to The set command structure of the +CSCA command. */
+  T_BAT_cmd_set_plus_cscb   plus_cscb;       /*<  0:  4> pointer to The set command structure of the +CSCB command. */
+  T_BAT_cmd_set_plus_cscs   plus_cscs;       /*<  0:  4> pointer to The set command structure of the +CSCS command. */
+  T_BAT_cmd_set_plus_csim   plus_csim;       /*<  0:  4> pointer to The set command structure of the +CSIM command. */
+  T_BAT_cmd_set_plus_csms   plus_csms;       /*<  0:  4> pointer to The set command structure of the +CSMS command. */
+  T_BAT_cmd_set_plus_csns   plus_csns;       /*<  0:  4> pointer to The set command structure of the +CSNS command. */
+  T_BAT_cmd_set_plus_csta   plus_csta;       /*<  0:  4> pointer to The set command structure of the +CSTA command. */
+  T_BAT_cmd_set_plus_csvm   plus_csvm;       /*<  0:  4> pointer to The set command structure of the +CSVM command. */
+  T_BAT_cmd_set_plus_ctfr   plus_ctfr;       /*<  0:  4> pointer to The set command structure of the +CTFR command. */
+  T_BAT_cmd_set_percent_ctty percent_ctty;   /*<  0:  4> pointer to The set command structure of the %CTTY command. */
+  T_BAT_cmd_set_plus_ctzu   plus_ctzu;       /*<  0:  4> pointer to The set command structure of the +CTZU command. */
+  T_BAT_cmd_set_plus_cusd   plus_cusd;       /*<  0:  4> pointer to The set command structure of the +CUSD command. */
+  T_BAT_cmd_set_plus_cusd_w plus_cusd_w;     /*<  0:  4> pointer to The set command structure of the +CUSD_W command. */
+  T_BAT_cmd_set_percent_cust percent_cust;   /*<  0:  4> pointer to The set command structure of the %CUST command. */
+  T_BAT_cmd_set_percent_cwup percent_cwup;   /*<  0:  4> pointer to The set command structure of the %CWUP command. */
+  T_BAT_cmd_at_d            at_d;                /*<  0:  4> pointer to The set command structure of the D command. */
+  T_BAT_cmd_set_percent_data percent_data;   /*<  0:  4> pointer to The set command structure of the %DATA command. */
+  T_BAT_cmd_set_percent_dinf percent_dinf;   /*<  0:  4> pointer to The set command structure of the %DINF command. */
+  T_BAT_cmd_set_plus_ds     plus_ds;         /*<  0:  4> pointer to The set command structure of the +DS command. */
+  T_BAT_cmd_at_d_w          at_d_w;              /*<  0:  4> pointer to The set command structure of the D_W command. */
+  T_BAT_cmd_set_percent_em  percent_em;      /*<  0:  4> pointer to The set command structure of the %EM command. */
+  T_BAT_cmd_set_plus_fap    plus_fap;        /*<  0:  4> pointer to The set command structure of the +FAP command. */
+  T_BAT_cmd_set_plus_fbo    plus_fbo;        /*<  0:  4> pointer to The set command structure of the +FBO command. */
+  T_BAT_cmd_set_plus_fbu    plus_fbu;        /*<  0:  4> pointer to The set command structure of the +FBU command. */
+  T_BAT_cmd_set_plus_fcc    plus_fcc;        /*<  0:  4> pointer to The set command structure of the +FCC command. */
+  T_BAT_cmd_set_plus_fclass plus_fclass;     /*<  0:  4> pointer to The set command structure of the +FCLASS command. */
+  T_BAT_cmd_set_plus_fcq    plus_fcq;        /*<  0:  4> pointer to The set command structure of the +FCQ command. */
+  T_BAT_cmd_set_plus_fcr    plus_fcr;        /*<  0:  4> pointer to The set command structure of the +FCR command. */
+  T_BAT_cmd_set_plus_fct    plus_fct;        /*<  0:  4> pointer to The set command structure of the +FCT command. */
+  T_BAT_cmd_set_plus_fea    plus_fea;        /*<  0:  4> pointer to The set command structure of the +FEA command. */
+  T_BAT_cmd_set_plus_ffc    plus_ffc;        /*<  0:  4> pointer to The set command structure of the +FFC command. */
+  T_BAT_cmd_set_plus_fie    plus_fie;        /*<  0:  4> pointer to The set command structure of the +FIE command. */
+  T_BAT_cmd_set_plus_fis    plus_fis;        /*<  0:  4> pointer to The set command structure of the +FIS command. */
+  T_BAT_cmd_set_plus_fit    plus_fit;        /*<  0:  4> pointer to The set command structure of the +FIT command. */
+  T_BAT_cmd_set_plus_fli    plus_fli;        /*<  0:  4> pointer to The set command structure of the +FLI command. */
+  T_BAT_cmd_set_plus_flo    plus_flo;        /*<  0:  4> pointer to The set command structure of the +FLO command. */
+  T_BAT_cmd_set_plus_flp    plus_flp;        /*<  0:  4> pointer to The set command structure of the +FLP command. */
+  T_BAT_cmd_set_plus_fms    plus_fms;        /*<  0:  4> pointer to The set command structure of the +FMS command. */
+  T_BAT_cmd_set_plus_fns    plus_fns;        /*<  0:  4> pointer to The set command structure of the +FNS command. */
+  T_BAT_cmd_set_plus_fpa    plus_fpa;        /*<  0:  4> pointer to The set command structure of the +FPA command. */
+  T_BAT_cmd_set_plus_fpi    plus_fpi;        /*<  0:  4> pointer to The set command structure of the +FPI command. */
+  T_BAT_cmd_set_plus_fps    plus_fps;        /*<  0:  4> pointer to The set command structure of the +FPS command. */
+  T_BAT_cmd_set_plus_fpw    plus_fpw;        /*<  0:  4> pointer to The set command structure of the +FPW command. */
+  T_BAT_cmd_set_plus_frq    plus_frq;        /*<  0:  4> pointer to The set command structure of the +FRQ command. */
+  T_BAT_cmd_set_plus_fsa    plus_fsa;        /*<  0:  4> pointer to The set command structure of the +FSA command. */
+  T_BAT_cmd_set_plus_fsp    plus_fsp;        /*<  0:  4> pointer to The set command structure of the +FSP command. */
+  T_BAT_cmd_set_plus_icf    plus_icf;        /*<  0:  4> pointer to The set command structure of the +ICF command. */
+  T_BAT_cmd_set_plus_ifc    plus_ifc;        /*<  0:  4> pointer to The set command structure of the +IFC command. */
+  T_BAT_cmd_set_plus_ipr    plus_ipr;        /*<  0:  4> pointer to The set command structure of the +IPR command. */
+  T_BAT_cmd_set_percent_ppp percent_ppp;     /*<  0:  4> pointer to The set command structure of the %PPP command. */
+  T_BAT_cmd_set_percent_pvrf percent_pvrf;   /*<  0:  4> pointer to The set command structure of the %PVRF command. */
+  T_BAT_cmd_set_percent_rdl percent_rdl;     /*<  0:  4> pointer to The set command structure of the %RDL command. */
+  T_BAT_cmd_set_percent_rdlb percent_rdlb;   /*<  0:  4> pointer to The set command structure of the %RDLB command. */
+  T_BAT_cmd_set_percent_satc percent_satc;   /*<  0:  4> pointer to The set command structure of the %SATC command. */
+  T_BAT_cmd_set_percent_sate percent_sate;   /*<  0:  4> pointer to The set command structure of the %SATE command. */
+  T_BAT_cmd_set_percent_satr percent_satr;   /*<  0:  4> pointer to The set command structure of the %SATR command. */
+  T_BAT_cmd_set_percent_satt percent_satt;   /*<  0:  4> pointer to The set command structure of the %SATT command. */
+  T_BAT_cmd_set_percent_sncnt percent_sncnt; /*<  0:  4> pointer to The set command structure of the %SNCNT command. */
+  T_BAT_cmd_set_percent_vts percent_vts;     /*<  0:  4> pointer to The set command structure of the %VTS command. */
+  T_BAT_cmd_set_plus_vts    plus_vts;        /*<  0:  4> pointer to The set command structure of the +VTS command. */
+  T_BAT_cmd_set_plus_ws46   plus_ws46;       /*<  0:  4> pointer to The set command structure of the +WS46 command. */
+  T_BAT_cmd_set_percent_cniv percent_cniv;  /*<  0:  4> pointer to The set command structure of the %CNIV command. */
+  T_BAT_no_parameter        no_param;       /*<  0:  4> pointer to Dummy structure                         */
+} bat_params;
+
+
+static char *atcmd_help(app_cmd_entry_t *cmd_entry_ptr,
+                        char *param1, char *param2, char *param3, core_func_t core_func)
+{
+  TRACE_EVENT("Available commands:");
+  TRACE_EVENT("at_bat_cmd atd [dialstring]");
+  TRACE_EVENT("at_bat_cmd ata");
+  TRACE_EVENT("at_bat_cmd at+clir");
+//  TRACE_EVENT("at_bat_cmd at+colp");
+  TRACE_EVENT("at_bat_cmd at+ceer");
+//  TRACE_EVENT("at_bat_cmd at+crc");
+  TRACE_EVENT("at_bat_cmd at+cmgs");
+  TRACE_EVENT("at_bat_cmd at+cpbs");
+  TRACE_EVENT("at_bat_cmd at+cpbr");
+  TRACE_EVENT("at_bat_cmd at+cfun");
+  TRACE_EVENT("at_bat_cmd at+cpbw");
+  TRACE_EVENT("at_bat_cmd at+cscs");
+  TRACE_EVENT("at_bat_cmd at+cusd");
+  TRACE_EVENT("at_bat_cmd at+ccfc");
+  TRACE_EVENT("at_bat_cmd at+cbst");
+  TRACE_EVENT("at_bat_help");
+  TRACE_EVENT("--------------------------------------");
+
+  return 0 ;
+}
+
+
+static char *handle_atcmd(app_cmd_entry_t *cmd_entry_ptr, char *param1,
+                          char *param2, char *param3, core_func_t core_func)
+{
+  T_BAT_ctrl_params at_cmd;
+
+  TRACE_FUNCTION("handle_atcmd()");
+
+  TRACE_ASSERT(param1 NEQ NULL);
+  param1 = string_to_lower(param1);
+
+  if (strcmp(param1, "atd") EQ 0 )          at_cmd = BAT_CMD_AT_D;
+  else if (strcmp(param1, "ata") EQ 0 )     at_cmd = BAT_CMD_AT_A;
+  else if (strcmp(param1, "ath") EQ 0 )     at_cmd = BAT_CMD_AT_H;
+  else if (strcmp(param1, "at+clir") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_CLIR;
+//  else if (strcmp(param1, "at+colp") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_COLP;
+  else if (strcmp(param1, "at+ceer") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_CEER;
+//  else if (strcmp(param1, "at+crc") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_CRC;
+  else if (strcmp(param1, "at+cmgs") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_CMGS;
+  else if (strcmp(param1, "at+cpbs") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_CPBS;
+  else if (strcmp(param1, "at+cpbr") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_CPBR;
+  else if (strcmp(param1, "at+cfun") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_CFUN;
+  else if (strcmp(param1, "at+cpbw") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_CPBW;
+  else if (strcmp(param1, "at+cscs") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_CSCS;
+  else if (strcmp(param1, "at+cusd") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_CUSD;
+  else if (strcmp(param1, "at+ccfc") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_CCFC;
+  else if (strcmp(param1, "at+cbst") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_CBST;
+  else if (strcmp(param1, "at+cops") EQ 0 ) at_cmd = BAT_CMD_SET_PLUS_COPS;
+  else if (strcmp(param1, "at%cniv") EQ 0 ) at_cmd = BAT_CMD_SET_PERCENT_CNIV;
+  else
+  {
+    return("Not supported AT cmd");
+  }
+  core_func(at_cmd, param2, param3);
+  return 0;
+}
+
+
+GLOBAL void exec_at_cmd(int at_cmd, char* param1, char* param2)
+{
+  T_BAT_cmd_send send_cmd;
+  T_BAT_return ret = BAT_ERROR;
+  T_BAT_client client = BAT_CONTROL_CHANNEL;
+  U8 clnt_hndl_upper = 0;
+  U8 clnt_hndl_lower = 0;
+
+  bat_params.no_param.bat_dummy = 0;
+
+  TRACE_FUNCTION("exec_at_cmd()");
+
+  client = get_item(param1, 0, FALSE);
+
+  clnt_hndl_upper = (U8)((0xff00&client)>>8);
+  clnt_hndl_lower = (U8)(0x00ff&client);
+
+  if((clnt_hndl_lower >= BAT_MAX_TEST_CLNT_NUM) OR (clnt_hndl_upper >= BAT_MAX_TEST_INST_NUM))
+  {
+      TRACE_ERROR("Input client out of bounds");
+      return;
+  }
+
+  if(clnt_table[clnt_hndl_upper][clnt_hndl_lower] EQ 0)
+  {
+      TRACE_ERROR("client handle not valid - no client handle");
+      return;
+  }
+
+#if 0
+  client = clnt_table[0][0];
+#ifndef CO_FST_BAT_DEBUG
+  assert(client != 0);
+#endif
+
+#endif
+
+  send_cmd.ctrl_params = (T_BAT_ctrl_params)at_cmd;
+
+  switch(at_cmd)
+  {
+    case BAT_CMD_AT_D:
+    {
+      char number[] = "+493039831178;";
+      if (param1[0] == 0)
+      {
+        strcpy((char *)&(bat_params.at_d.dial_string), (const char *)param1);
+        bat_params.at_d.c_dial_string = strlen(param1);
+      }
+      else
+      {
+        strcpy((char *)&(bat_params.at_d.dial_string), (const char *)number);
+        bat_params.at_d.c_dial_string = strlen(number);
+      }
+      send_cmd.params.ptr_at_d = &bat_params.at_d;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+
+    case BAT_CMD_AT_A:
+    {
+      send_cmd.params.ptr_at_a = &bat_params.no_param;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+
+    case BAT_CMD_AT_H:
+    {
+      send_cmd.params.ptr_at_h = &bat_params.no_param;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+
+    case BAT_CMD_SET_PLUS_CLIR:
+    {
+      if (param1[0] == '0') bat_params.plus_clir.n = BAT_CLIR_N_SUBSCRIPTION;
+      else if (param1[0] == '1') bat_params.plus_clir.n = BAT_CLIR_N_INVOCATION;
+      else if (param1[0] == '2') bat_params.plus_clir.n = BAT_CLIR_N_SUPPRESSION;
+      else bat_params.plus_clir.n = BAT_CLIR_N_SUPPRESSION; /* No, or an Invalid, Parameter was passed in */
+
+      send_cmd.params.ptr_set_plus_clir = &bat_params.plus_clir;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+#ifdef _SIMULATION_
+#pragma message( __TODO__"BAT_CMD_SET_PLUS_COLP not defined !" )
+#endif
+/*
+    case BAT_CMD_SET_PLUS_COLP:
+    {
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+*/
+    case BAT_CMD_SET_PLUS_CEER:
+    {
+/*      T_BAT_cmd_set_plus_ceer ceer;  */
+#ifdef _SIMULATION_
+#pragma message( __TODO__"T_BAT_cmd_set_plus_ceer not defined !" )
+#endif
+/*   ceer.
+     send_cmd.params.ptr_set_plus_ceer = &ceer;  */
+      TRACE_ASSERT(0);
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+#ifdef _SIMULATION_
+#pragma message( __TODO__"BAT_CMD_SET_PLUS_CRC not defined !" )
+#endif
+/*
+    case BAT_CMD_SET_PLUS_CRC:
+    {
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+*/
+    case BAT_CMD_SET_PLUS_CMGS:
+    {
+      U8 pdu[] = "0891941067000044F301000D91941097614246F8000011C8329BFD06098354103B2D9687E579";
+      strcpy((char *)&(bat_params.plus_cmgs.pdu), (const char *)pdu);
+      bat_params.plus_cmgs.length = strlen((const char *)pdu);        /* total length */
+      bat_params.plus_cmgs.c_pdu = bat_params.plus_cmgs.length - 9;                   /* length without SCA */
+      send_cmd.params.ptr_set_plus_cmgs = &bat_params.plus_cmgs;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+
+    case BAT_CMD_SET_PLUS_CPBS:
+    {
+      bat_params.plus_cpbs.storage = BAT_STORAGE_AD;
+      send_cmd.params.ptr_set_plus_cpbs = &bat_params.plus_cpbs;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+
+    case BAT_CMD_SET_PLUS_CPBR:
+    {
+      bat_params.plus_cpbr.index1 = 1;
+      bat_params.plus_cpbr.index2 = 2;
+      send_cmd.params.ptr_set_plus_cpbr = &bat_params.plus_cpbr;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+
+    case BAT_CMD_SET_PLUS_CFUN:
+    {
+      bat_params.plus_cfun.fun = BAT_CFUN_FUN_FULL;
+      bat_params.plus_cfun.rst = BAT_CFUN_RST_NOT_PRESENT;
+      send_cmd.params.ptr_set_plus_cfun = &bat_params.plus_cfun;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+
+    case BAT_CMD_SET_PLUS_CPBW:
+    {
+      U8 number[] ="03076903367";
+      U8   text[] = "Hello World";
+      bat_params.plus_cpbw.index = 2;
+      bat_params.plus_cpbw.v_number = TRUE;
+      strcpy((char *)&(bat_params.plus_cpbw.number), (const char *)number);
+      bat_params.plus_cpbw.c_number = strlen((const char *)number);
+      bat_params.plus_cpbw.v_text = TRUE;
+      strcpy((char *)&(bat_params.plus_cpbw.text), (const char *)text);
+      bat_params.plus_cpbw.c_text = strlen((const char *)text);
+      bat_params.plus_cpbw.type = 129;
+      send_cmd.params.ptr_set_plus_cpbw = &bat_params.plus_cpbw;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+    case BAT_CMD_SET_PLUS_CSCS:
+    {
+      bat_params.plus_cscs.cs = BAT_CSCS_CS_UCS2;
+      send_cmd.params.ptr_set_plus_cscs = &bat_params.plus_cscs;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+    case BAT_CMD_SET_PLUS_CUSD:
+    {
+      U8 string[] = "00230031003100310023";
+      bat_params.plus_cusd.n = (T_BAT_plus_cusd_n)1;
+#ifdef _SIMULATION_
+#pragma message( __TODO__"T_BAT_VAL_plus_cusd_n: two values are missing in (0,1)" )
+#endif
+      bat_params.plus_cusd.v_str = (U8)TRUE;
+      strcpy((char *)&(bat_params.plus_cusd.str), (const char *)string);
+      bat_params.plus_cusd.c_str = strlen((const char *)string);
+      bat_params.plus_cusd.dcs = 15;
+      send_cmd.params.ptr_set_plus_cusd = &bat_params.plus_cusd;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+    case BAT_CMD_SET_PLUS_CCFC:
+    {
+      bat_params.plus_ccfc.reason = BAT_CCFC_REASON_CFU;
+      bat_params.plus_ccfc.mode = BAT_CCFC_MODE_ERASURE;
+      bat_params.plus_ccfc.v_number = (U8)FALSE;
+      bat_params.plus_ccfc.type = (S16)BAT_PARAMETER_NOT_PRESENT;
+      bat_params.plus_ccfc.bearer_class = BAT_CCFC_CLASS_VCEDATFAX; /* default  */
+      bat_params.plus_ccfc.v_subaddr = (U8)FALSE;
+      bat_params.plus_ccfc.satype = (S16)BAT_PARAMETER_NOT_PRESENT;
+      bat_params.plus_ccfc.time = (T_BAT_plus_ccfc_time)BAT_CCFC_TIME_NOT_PRESENT;
+      send_cmd.params.ptr_set_plus_ccfc = &bat_params.plus_ccfc;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+    case BAT_CMD_SET_PLUS_CBST:
+    {
+      bat_params.plus_cbst.speed = BAT_CBST_SPD_9600_V110;
+      bat_params.plus_cbst.name = BAT_CBST_NAM_CBST_NAM_ASYNCH;
+      bat_params.plus_cbst.ce = BAT_CBST_CE_CBST_CE_NONTRANSPARENT;
+      send_cmd.params.ptr_set_plus_cbst= &bat_params.plus_cbst;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+
+    case BAT_CMD_SET_PLUS_COPS:
+    {
+      bat_params.plus_cops.mode = BAT_COPS_MODE_AUTO;
+      bat_params.plus_cops.format = BAT_COPS_FORMAT_NOT_PRESENT;
+      bat_params.plus_cops.v_oper = FALSE; 
+      bat_params.plus_cops.c_oper = 0; 
+      send_cmd.params.ptr_set_plus_cops = &bat_params.plus_cops;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+
+    case BAT_CMD_SET_PERCENT_CNIV:
+    {
+      bat_params.percent_cniv.mode = BAT_CNIV_MODE_ON;
+      send_cmd.params.ptr_set_percent_cniv= &bat_params.percent_cniv;
+      ret = bat_send(client, &send_cmd);
+      break;
+    }
+
+    default:
+      TRACE_ASSERT(0);
+      return;
+  }
+
+  TRACE_ASSERT(ret == BAT_OK);
+
+}
+
+
+char *app_handle_at_command(char *command)
+{
+  return app_handle_command(command, app_bat_atcmds_table);
+}
+
+
+/* EOF */