view src/aci2/aci/line_edit_intern.h @ 635:baa0a02bc676

niq32.c DTR handling restored for targets that have it TI's original TCS211 fw treated GPIO 3 as the DTR input (wired so on C-Sample and D-Sample boards, also compatible with Leonardo and FCDEV3B which have a fixed pull-down resistor on this GPIO line), and the code in niq32.c called UAF_DTRInterruptHandler() (implemented in uartfax.c) from the IQ_KeypadGPIOHandler() function. But on Openmoko's GTA02 with their official fw this GPIO is a floating input, all of the DTR handling code in uartfax.c including the interrupt logic is still there, but the hobbled TCS211-20070608 semi-src delivery which OM got from TI contained a change in niq32.c (which had been kept in FC until now) that removed the call to UAF_DTRInterruptHandler() as part of those not-quite-understood "CC test" hacks. The present change fixes this bug at a long last: if we are building fw for a target that has TI's "classic" DTR & DCD GPIO arrangement (dsample, fcmodem and gtm900), we bring back all of TI's original code in both uartfax.c and niq32.c, whereas if we are building fw for a target that does not use this classic GPIO arrangement, the code in niq32.c goes back to what we got from OM and all DTR & DCD code in uartfax.c is conditioned out. This change also removes the very last remaining bit of "CC test" bogosity from our FreeCalypso code base.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 19 Jan 2020 01:41:35 +0000
parents 93999a60b835
children
line wrap: on
line source

/*
+-----------------------------------------------------------------------------
|  Project :  
|  Modul   :  line edit
+-----------------------------------------------------------------------------
|  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 modul ...
+-----------------------------------------------------------------------------
*/

#ifndef LINE_EDIT_INTERN_H
#define LINE_EDIT_INTERN_H

#define WS 0x20
#define SLASH '/'

typedef struct S_LEDIT_ATCMD_M
{
         T_LEDIT_ATCMD   *cmd;
  struct S_LEDIT_ATCMD_M *next;
} T_LEDIT_ATCMD_M;



typedef struct S_LEDIT_INTERN
{
  UBYTE   src_id;
  USHORT  len;
  BOOL    isStr;                                         /* flag for start and end of "....."       */
  USHORT  copyIter;                                      /* copy iterator from src to cmd buffer    */
  USHORT  srcBufIter;                                    /* iterator over the srcBuffer             */
  USHORT  srcBufIterE;                                   /* from here all chars to echo             */
  const
  UBYTE  *srcBuffer;
                                                         
  char   *lineBuffer;                                    /* cmds without "AT" and removed WS,BS,... */
  USHORT lineBufIter;

  char   *origBuffer;                                    /* cmds without "AT", removed WS,BS,...
                                                          - NOT converted to upper case */
  USHORT origBufIter;
                                                         
  char   *execBuffer;                                    /* the current command(s) as well as       */
  USHORT execBufIter;                                    /* for AT/ the copy of the last cmd line   */

  char   *smsBuffer;                                     /* text of a SMS                           */
  BOOL    txtChunk;                                      /* received a chunk of text only           */
  T_LEDIT_ATCMD_M *cmdm;                                 /*                                         */
  UBYTE   cmdIndex;                                      /*                                         */
  UBYTE   cmdGetIter;                                    /* needed in ledit_get_next()              */
  T_LEDIT_RSLT (*state) (struct S_LEDIT_INTERN *atiInt); /* state machine function pointer          */
  T_LEDIT lineHabit;                                     /* the behaviour of the line               */
  T_LEDIT_ERR  err;
} T_LEDIT_INTERN;


typedef struct S_LEDIT_SRC_MAINTAIN
{
         T_LEDIT_INTERN       *leditInt;
  struct S_LEDIT_SRC_MAINTAIN *next;
} T_LEDIT_SRC_MAINTAIN;


/* moved from line_edit.h to avoid multiple memory allocation in different modules */
static const T_LEDIT_ERR ledit_err[] =
{
  {"out of memory",             LEDIT_ERR_NoMemory},
  {"no maintenance for src_id", LEDIT_ERR_NoMaintenance}, 
  {"no valid command",          LEDIT_ERR_NoValidCommand},
  {"last cmd line is pending",  LEDIT_ERR_LastCmdPending},
  {"unkown error",              LEDIT_ERR_Unknown} 
};


#endif