FreeCalypso > hg > fc-magnetite
view src/g23m-aci/aci/cmh_uartf.c @ 600:8f50b202e81f
board preprocessor conditionals: prep for more FC hw in the future
This change eliminates the CONFIG_TARGET_FCDEV3B preprocessor symbol and
all preprocessor conditionals throughout the code base that tested for it,
replacing them with CONFIG_TARGET_FCFAM or CONFIG_TARGET_FCMODEM. These
new symbols are specified as follows:
CONFIG_TARGET_FCFAM is intended to cover all hardware designs created by
Mother Mychaela under the FreeCalypso trademark. This family will include
modem products (repackagings of the FCDEV3B, possibly with RFFE or even
RF transceiver changes), and also my desired FreeCalypso handset product.
CONFIG_TARGET_FCMODEM is intended to cover all FreeCalypso modem products
(which will be firmware-compatible with the FCDEV3B if they use TI Rita
transceiver, or will require a different fw build if we switch to one of
Silabs Aero transceivers), but not the handset product. Right now this
CONFIG_TARGET_FCMODEM preprocessor symbol is used to conditionalize
everything dealing with MCSI.
At the present moment the future of FC hardware evolution is still unknown:
it is not known whether we will ever have any beyond-FCDEV3B hardware at all
(contingent on uncertain funding), and if we do produce further FC hardware
designs, it is not known whether they will retain the same FIC modem core
(triband), if we are going to have a quadband design that still retains the
classic Rita transceiver, or if we are going to switch to Silabs Aero II
or some other transceiver. If we produce a quadband modem that still uses
Rita, it will run exactly the same fw as the FCDEV3B thanks to the way we
define TSPACT signals for the RF_FAM=12 && CONFIG_TARGET_FCFAM combination,
and the current fcdev3b build target will be renamed to fcmodem. OTOH, if
that putative quadband modem will be Aero-based, then it will require a
different fw build target, the fcdev3b target will stay as it is, and the
two targets will both define CONFIG_TARGET_FCFAM and CONFIG_TARGET_FCMODEM,
but will have different RF_FAM numbers. But no matter which way we are
going to evolve, it is not right to have conditionals on CONFIG_TARGET_FCDEV3B
in places like ACI, and the present change clears the way for future
evolution.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 01 Apr 2019 01:05:24 +0000 |
parents | 53929b40109c |
children |
line wrap: on
line source
/* +----------------------------------------------------------------------------- | Project : GSM-PS (6147) | Modul : CMH_UARTF +----------------------------------------------------------------------------- | 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 defines the functions used by the command | handler for the UART module. +----------------------------------------------------------------------------- */ #ifdef UART #ifndef CMH_UARTF_C #define CMH_UARTF_C #endif #include "aci_all.h" /*==== INCLUDES ===================================================*/ #include "aci_cmh.h" #include "ati_cmd.h" #include "aci_cmd.h" #include "dti.h" /* functionality of the dti library */ #include "aci_lst.h" #include "dti_conn_mng.h" #include "psa_uart.h" #include "cmh_uart.h" #include "aci_mem.h" /* +--------------------------------------------------------------------+ | PROJECT : GSM-F&D (8411) MODULE : ACI_LST | | STATE : code ROUTINE : cmhUARTtest_srcId | +--------------------------------------------------------------------+ PURPOSE : search function for source Id in the structure T_ACI_DTI_PRC. */ GLOBAL BOOL cmhUARTtest_srcId( UBYTE srcId, void *elem) { T_ACI_DTI_PRC *compared = (T_ACI_DTI_PRC *)elem; if (compared -> srcId EQ srcId ) return TRUE; else return FALSE; } /* +--------------------------------------------------------------------+ | PROJECT : GSM-F&D (8411) MODULE : ACI_LST | | STATE : code ROUTINE : cmhUARTtest_device | +--------------------------------------------------------------------+ PURPOSE : search function for device number in the structure T_ACI_DTI_PRC. */ GLOBAL BOOL cmhUARTtest_device (UBYTE device, void *elem) { T_ACI_DTI_PRC *compared = (T_ACI_DTI_PRC *)elem; if (compared -> device EQ device ) return TRUE; else return FALSE; } /* +--------------------------------------------------------------------+ | PROJECT : GSM-F&D (8411) MODULE : ACI_LST | | STATE : code ROUTINE : cmhUART_find_dlci | +--------------------------------------------------------------------+ PURPOSE : returns element with corresponding dlci and device. If called dlci=UART_DLCI_NOT_MULTIPLEXED (UART entity value for device not multiplexed) then function returns element with corresponding device... */ GLOBAL T_ACI_DTI_PRC *cmhUART_find_dlci (T_ACI_LIST *search_list, UBYTE device, UBYTE dlci) { T_ACI_DTI_PRC *content = NULL; if (search_list EQ NULL) return NULL; do { content = find_next_element (search_list, content, device, cmhUARTtest_device); if (content EQ NULL) return NULL; if( dlci EQ UART_DLCI_NOT_MULTIPLEXED OR content->dlci EQ UART_DLCI_NOT_MULTIPLEXED OR content->dlci EQ dlci) return content; } while (content NEQ NULL); return NULL; } /* +--------------------------------------------------------------------+ | PROJECT : GSM-F&D (8411) MODULE : ACI_LST | | STATE : code ROUTINE : cmhUART_erase_elem_received_cmd | +--------------------------------------------------------------------+ PURPOSE : erase an entry element from the uart_src_params list. */ GLOBAL void cmhUART_erase_elem_received_cmd (UBYTE srcId) { T_ACI_DTI_PRC *content; /* find element to be erased */ content = remove_element (uart_src_params, (UBYTE)srcId, cmhUARTtest_srcId); ACI_MFREE (content); } /********************************************************* ////////////////////////////////////////////////////////// TEMP: rests from aci_urt.c ready for remove? */ GLOBAL BOOL atiViaTif = FALSE; /******************************************************** ///////////////////////////////////////////////////////// */ /* +--------------------------------------------------------------------+ | PROJECT : GSM-F&D (8411) MODULE : ACI_URT | | STATE : code ROUTINE : urt_init | +--------------------------------------------------------------------+ PURPOSE : initialize the module and the UART */ GLOBAL void urt_init (void) { TRACE_FUNCTION ("urt_init()"); } /* +--------------------------------------------------------------------------------------------+ | PROJECT : GSM-F&D (8411) MODULE : ACI_URT | | STATE : code ROUTINE : cmhUART_translateBD_RATE_to_UART_IO_SPEED | +--------------------------------------------------------------------------------------------+ PURPOSE: */ LOCAL UBYTE cmhUART_translateBD_RATE_to_UART_IO_SPEED ( T_ACI_BD_RATE rate ) { switch ( rate ) { case BD_RATE_AUTO: return UART_IO_SPEED_AUTO; case BD_RATE_75: return UART_IO_SPEED_75; case BD_RATE_150: return UART_IO_SPEED_150; case BD_RATE_300: return UART_IO_SPEED_300; case BD_RATE_600: return UART_IO_SPEED_600; case BD_RATE_1200: return UART_IO_SPEED_1200; case BD_RATE_2400: return UART_IO_SPEED_2400; case BD_RATE_4800: return UART_IO_SPEED_4800; case BD_RATE_7200: return UART_IO_SPEED_7200; case BD_RATE_9600: return UART_IO_SPEED_9600; case BD_RATE_14400: return UART_IO_SPEED_14400; case BD_RATE_19200: return UART_IO_SPEED_19200; case BD_RATE_28800: return UART_IO_SPEED_28800; case BD_RATE_33900: return UART_IO_SPEED_33900; case BD_RATE_38400: return UART_IO_SPEED_38400; case BD_RATE_57600: return UART_IO_SPEED_57600; case BD_RATE_115200: return UART_IO_SPEED_115200; case BD_RATE_203125: return UART_IO_SPEED_203125; case BD_RATE_406250: return UART_IO_SPEED_406250; case BD_RATE_812500: return UART_IO_SPEED_812500; default: return UART_IO_SPEED_UNDEF; } } /* +-----------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_comParFindDevice | +-----------------------------------------------------------------------------+ PURPOSE: Finding the device entry in the 'uart_com_par' table */ LOCAL BOOL cmhUART_comParFindDevice (UBYTE criterium, void *elem) { if ( criterium EQ ((T_ACI_DEVICE_ENTRY*)elem)->device ) return TRUE; return FALSE; } /* +-----------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_FindAll | +-----------------------------------------------------------------------------+ PURPOSE: Find every entry */ LOCAL BOOL cmhUART_FindAll (UBYTE criterium, void *elem) { return TRUE; } LOCAL T_ACI_UART_COM_PAR cmhUART_getDefaultUARTParameter(void) { T_ACI_UART_COM_PAR comPar = { UART_IO_SPEED_115200, UART_IO_BPC_8, UART_IO_SB_1, UART_IO_PA_NONE, UART_IO_FC_RX_RTS, UART_IO_FC_TX_RTS, UART_IO_XON_VALID, UART_IO_XON_DEFAULT, UART_IO_XOFF_VALID, UART_IO_XOFF_DEFAULT, }; return comPar; } /* +----------------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_AddDeviceToComParameter | +----------------------------------------------------------------------------------+ PURPOSE: add COM parameter for a new device */ GLOBAL void cmhUART_AddDeviceToComParameter( UBYTE device ) { T_ACI_DEVICE_ENTRY *device_entry; TRACE_FUNCTION("cmhUART_AddDeviceToComParameter"); /* * try to find the device */ device_entry = find_element(uart_com_par, device, cmhUART_comParFindDevice); /* * if the device is new add it to the list */ if ( device_entry EQ NULL ) { ACI_MALLOC (device_entry, sizeof (T_ACI_DEVICE_ENTRY)); device_entry->device = device; /* * Default values by adding a new device */ device_entry->comPar = cmhUART_getDefaultUARTParameter(); insert_list (uart_com_par, device_entry); } } /* +---------------------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_RemoveDeviceFromComParameter | +---------------------------------------------------------------------------------------+ PURPOSE: remove COM parameter for a device from 'uart_com_par' table */ GLOBAL void cmhUART_RemoveDeviceFromComParameter( UBYTE device ) { T_ACI_DEVICE_ENTRY *device_entry; TRACE_FUNCTION("cmhUART_RemoveDeviceFromComParameter"); /* * Find the device and remove it. */ device_entry = remove_element(uart_com_par, device, cmhUART_comParFindDevice); if ( device_entry NEQ NULL ) { ACI_MFREE ( device_entry ); } } /* +---------------------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_RemoveDeviceFromComParameter | +---------------------------------------------------------------------------------------+ PURPOSE: clean the 'uart_com_par' table */ GLOBAL void cmhUART_CleanComParameterList( void ) { T_ACI_DEVICE_ENTRY *device_entry; TRACE_FUNCTION("cmhUART_CleanComParameterList"); /* * Find the device and remove it. */ while ( NULL NEQ (device_entry = remove_element(uart_com_par, 0, cmhUART_FindAll)) ) { ACI_MFREE ( device_entry ); } } /* +---------------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_GetDeviceParOverDevice | +---------------------------------------------------------------------------------+ PURPOSE: returns the COM parameter for this device */ GLOBAL T_ACI_DEVICE_ENTRY* cmhUART_GetDeviceParOverDevice( UBYTE device ) { T_ACI_DEVICE_ENTRY *device_entry; TRACE_FUNCTION("cmhUART_GetDeviceParOverDevice"); /* * return COM parameter for device */ device_entry = find_element(uart_com_par, device, cmhUART_comParFindDevice); if ( device_entry EQ NULL ) { TRACE_EVENT_P1("[ERR] cmhUART_GetDeviceParOverDevice: device=%d not found", device) ; return NULL; } return device_entry; } /* +---------------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_GetDeviceParOverDevice | +---------------------------------------------------------------------------------+ PURPOSE: */ GLOBAL T_ACI_DEVICE_TYPE cmhUART_GetDeviceType( UBYTE srcId ) { T_ACI_DTI_PRC *src_infos; TRACE_FUNCTION("cmhUART_GetDeviceType"); src_infos = find_element (uart_src_params, (UBYTE)srcId, cmhUARTtest_srcId); if (src_infos NEQ NULL) { return src_infos->device_type; } else { return DEVICE_TYPE_UNKNOWN; } } /* +---------------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_ChangeDeviceParOverDevice | +---------------------------------------------------------------------------------+ PURPOSE: */ GLOBAL BOOL cmhUART_ChangeDeviceType( UBYTE srcId, T_ACI_DEVICE_TYPE device_type ) { T_ACI_DTI_PRC *src_infos; TRACE_FUNCTION("cmhUART_ChangeDeviceType"); src_infos = find_element (uart_src_params, (UBYTE)srcId, cmhUARTtest_srcId); if (src_infos NEQ NULL) { src_infos->device_type = device_type; switch (device_type) { case DEVICE_TYPE_UNKNOWN: TRACE_EVENT_P1("Device type of src %u is DEVICE_TYPE_UNKNOWN", srcId); break; case DEVICE_TYPE_URT: TRACE_EVENT_P1("Device type of src %u is DEVICE_TYPE_URT", srcId); break; case DEVICE_TYPE_MUX: TRACE_EVENT_P1("Device type of src %u is DEVICE_TYPE_MUX", srcId); break; default: TRACE_EVENT_P1("Device type of src %u has invalid value", srcId); break; } return TRUE; } else { return FALSE; } } /* +---------------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_GetDeviceParOverSrcID | +---------------------------------------------------------------------------------+ PURPOSE: returns the COM parameter for this source ID */ GLOBAL T_ACI_DEVICE_ENTRY* cmhUART_GetDeviceParOverSrcID( UBYTE srcId ) { T_ACI_DEVICE_ENTRY *device_entry; T_ACI_DTI_PRC *cmd_struct; TRACE_FUNCTION("cmhUART_GetDeviceParOverSrcID()"); if( !ati_is_src_type(srcId, ATI_SRC_TYPE_UART) ) { /* not a UART source */ return(NULL); } /* * find the device connected to this source ID */ cmd_struct = find_element (uart_src_params, srcId, cmhUARTtest_srcId); if (cmd_struct EQ NULL) { TRACE_EVENT_P1("[ERR] cmhUART_GetDeviceParOverSrcID: srcId=%d not found", srcId) ; return NULL; } /* * return COM parameter for device */ device_entry = find_element(uart_com_par, cmd_struct->device, cmhUART_comParFindDevice); if ( device_entry EQ NULL ) { TRACE_EVENT_P1("[ERR] cmhUART_GetDeviceParOverSrcID: device=%d not found", cmd_struct->device) ; return NULL; } return device_entry; } GLOBAL UBYTE cmhUART_GetParityOverSrcID( UBYTE srcId ) { T_ACI_DEVICE_ENTRY *device_entry = cmhUART_GetDeviceParOverSrcID( (UBYTE) srcId ); if ( device_entry EQ NULL ) { return cmhUART_getDefaultUARTParameter().parity; } return device_entry->comPar.parity; } GLOBAL UBYTE cmhUART_GetDataBitOverSrcID( UBYTE srcId ) { T_ACI_DEVICE_ENTRY *device_entry = cmhUART_GetDeviceParOverSrcID( (UBYTE) srcId ); if ( device_entry EQ NULL ) { return cmhUART_getDefaultUARTParameter().bpc; } return device_entry->comPar.bpc; } GLOBAL UBYTE cmhUART_GetStopBitOverSrcID( UBYTE srcId ) { T_ACI_DEVICE_ENTRY *device_entry = cmhUART_GetDeviceParOverSrcID( (UBYTE) srcId ); if ( device_entry EQ NULL ) { return cmhUART_getDefaultUARTParameter().nsb; } return device_entry->comPar.nsb; } /* +------------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_SetComParToUnchanged | +------------------------------------------------------------------------------+ PURPOSE: set the UART COM parameter to unchanged */ GLOBAL void cmhUART_SetComParToUnchanged( T_comPar *comPar ) { comPar->speed = UART_IO_SPEED_UNDEF; /* baud rate */ comPar->bpc = UART_IO_BPC_UNDEF; /* bits per character */ comPar->nsb = UART_IO_SB_UNDEF; /* stop bits */ comPar->parity = UART_IO_PA_UNDEF; /* parity of serial link */ comPar->flow_rx = UART_IO_FC_RX_UNDEF; /* flow control mode RX */ comPar->flow_tx = UART_IO_FC_TX_UNDEF; /* flow control mode TX */ comPar->xon_valid = UART_IO_XON_UNDEF; /* indicator whether xon is valid */ comPar->xoff_valid = UART_IO_XOFF_UNDEF; /* indicator whether xoff is valid */ comPar->xon = UART_IO_XON_DEFAULT; comPar->xoff = UART_IO_XOFF_DEFAULT; /* * Set escape parameters */ comPar->esc_valid = UART_IO_ESC_VALID; comPar->esc_char = UART_IO_ESC_CHAR_DEFAULT; comPar->esc_gp = UART_IO_ESC_GP_DEFAULT; } /* +------------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_SetDataRate | +------------------------------------------------------------------------------+ PURPOSE: set the UART data rate */ GLOBAL T_ACI_RETURN cmhUART_SetDataRate ( UBYTE srcId, T_ACI_BD_RATE rate) { T_ACI_DEVICE_ENTRY *device_entry = cmhUART_GetDeviceParOverSrcID( srcId ); T_comPar newComPar; if ( device_entry EQ NULL ) { TRACE_EVENT_P1("[ERR] cmhUART_SetDataRate: device for source ID = %d not found", srcId); return AT_FAIL; } cmhUART_SetComParToUnchanged( &newComPar ); device_entry->comPar.speed = newComPar.speed = cmhUART_translateBD_RATE_to_UART_IO_SPEED( rate ); psaUART_SetParameters(device_entry->device, &newComPar); return AT_EXCT; } /* +------------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_SetCharacterFraming | +------------------------------------------------------------------------------+ PURPOSE: set the UART character framing */ GLOBAL T_ACI_RETURN cmhUART_SetCharacterFraming ( UBYTE srcId, T_ACI_BS_FRM format, T_ACI_BS_PAR parity ) { T_ACI_DEVICE_ENTRY *device_entry = cmhUART_GetDeviceParOverSrcID( srcId ); T_comPar comPar; if ( device_entry EQ NULL ) { TRACE_EVENT_P1("[ERR] cmhUART_SetCharacterFraming: device for source ID = %d not found", srcId); return AT_FAIL; } cmhUART_SetComParToUnchanged( &comPar ); /* * translate AT command parameter to UART parameter */ if ( format NEQ BS_FRM_NotPresent ) { if ( format & 4 ) { device_entry->comPar.bpc = comPar.bpc = UART_IO_BPC_7; format++; } else { device_entry->comPar.bpc = comPar.bpc = UART_IO_BPC_8; } device_entry->comPar.nsb = comPar.nsb = format & 2 ? UART_IO_SB_1 : UART_IO_SB_2; if ( format & 1 ) { device_entry->comPar.parity = comPar.parity = UART_IO_PA_NONE; parity = BS_PAR_NotPresent; } else { if ( parity EQ BS_PAR_NotPresent ) { if ( device_entry->comPar.parity NEQ UART_IO_PA_NONE ) { if ( device_entry->comPar.parity EQ NOT_SUPPORTED_UART_IO_PA_MARK ) { comPar.parity = UART_IO_PA_NONE; comPar.nsb = UART_IO_SB_2; } else { comPar.parity = device_entry->comPar.parity; } } else { /* the type of parity is not defined */ return AT_FAIL; } } } } switch (parity) { case BS_PAR_NotPresent: /* this case is handled by format translation */ break; case BS_PAR_Odd: device_entry->comPar.parity = comPar.parity = UART_IO_PA_ODD; break; case BS_PAR_Even: device_entry->comPar.parity = comPar.parity = UART_IO_PA_EVEN; break; case BS_PAR_Mark: /* * parity mark is not supported by the UART SAP, * but it is the same as no parity and 2 stop bit */ device_entry->comPar.parity = NOT_SUPPORTED_UART_IO_PA_MARK; comPar.parity = UART_IO_PA_NONE; comPar.nsb = UART_IO_SB_2; break; case BS_PAR_Space: device_entry->comPar.parity = comPar.parity = UART_IO_PA_SPACE; break; } psaUART_SetParameters(device_entry->device, &comPar); return AT_EXCT; } /* +------------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_SetFlowControl | +------------------------------------------------------------------------------+ PURPOSE: set the UART flow control */ GLOBAL T_ACI_RETURN cmhUART_SetFlowControl(UBYTE srcId, T_ACI_RX_FLOW_CTRL DCE_by_DTE) { T_ACI_DEVICE_ENTRY *device_entry = cmhUART_GetDeviceParOverSrcID( srcId ); T_comPar comPar; if ( device_entry EQ NULL ) { TRACE_EVENT_P1("[ERR] cmhUART_SetFlowControl: device for source ID = %d not found", srcId); return AT_FAIL; } cmhUART_SetComParToUnchanged( &comPar ); /* * translate AT command parameter to UART parameter */ switch ( DCE_by_DTE ) { case RX_FLOW_NONE: comPar.flow_rx = UART_IO_FC_RX_NONE; comPar.flow_tx = UART_IO_FC_TX_NONE; break; case RX_FLOW_SOFTWARE: comPar.flow_rx = UART_IO_FC_RX_XOFF; comPar.flow_tx = UART_IO_FC_TX_XOFF; break; case RX_FLOW_HARDWARE: comPar.flow_rx = UART_IO_FC_RX_RTS; comPar.flow_tx = UART_IO_FC_TX_RTS; break; case RX_FLOW_NotPresent: return AT_CMPL; } device_entry->comPar.flow_rx = comPar.flow_rx; device_entry->comPar.flow_tx = comPar.flow_tx; psaUART_SetParameters(device_entry->device, &comPar); return AT_EXCT; } /* +--------------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_GetFktInterfaceFormat | +--------------------------------------------------------------------------------+ PURPOSE: translate the UART COM parameter to the AT command format parameter ATTENTION: internal function, COM paramter is is not checking of validity */ GLOBAL T_ACI_BS_FRM cmhUART_GetFktInterfaceFormat( T_ACI_UART_COM_PAR *comPar ) { UBYTE format = 1; /* 8 Data 2 Stop */ if ( comPar->bpc EQ UART_IO_BPC_7 ) format += 3; if ( comPar->nsb NEQ UART_IO_SB_2 ) format += 2; if ( comPar->parity NEQ UART_IO_PA_NONE ) format -= 1; return (T_ACI_BS_FRM) format; } /* +--------------------------------------------------------------------------------+ | PROJECT : GSM-PS (6147) MODULE : CMH_UART | | STATE : code ROUTINE : cmhUART_GetFktInterfaceParity | +--------------------------------------------------------------------------------+ PURPOSE: translate the UART COM parameter to the AT command parity parameter ATTENTION: internal function, COM paramter is is not checking of validity */ GLOBAL T_ACI_BS_PAR cmhUART_GetFktInterfaceParity( T_ACI_UART_COM_PAR *comPar ) { switch ( comPar->parity ) { case UART_IO_PA_ODD: return (T_ACI_BS_PAR) BS_PAR_Odd; case UART_IO_PA_EVEN: return (T_ACI_BS_PAR) BS_PAR_Even; case NOT_SUPPORTED_UART_IO_PA_MARK: return (T_ACI_BS_PAR) BS_PAR_Mark; case UART_IO_PA_SPACE: return (T_ACI_BS_PAR) BS_PAR_Space; } return BS_PAR_NotPresent; } #endif /* UART */