view src/cs/layer1/gtt_include/l1gtt_baudot_functions.h @ 685:3fb7384e820d

tpudrv12.h: FCDEV3B goes back to being itself A while back we had the idea of a FreeCalypso modem family whereby our current fcdev3b target would some day morph into fcmodem, with multiple FC modem family products, potentially either triband or quadband, being firmware-compatible with each other and with our original FCDEV3B. But in light of the discovery of Tango modules that earlier idea is now being withdrawn: instead the already existing Tango hw is being adopted into our FreeCalypso family. Tango cannot be firmware-compatible with triband OM/FCDEV3B targets because the original quadband RFFE on Tango modules is wired in TI's original Leonardo arrangement. Because this Leonardo/Tango way is now becoming the official FreeCalypso way of driving quadband RFFEs thanks to the adoption of Tango into our FC family, our earlier idea of extending FIC's triband RFFE control signals with TSPACT5 no longer makes much sense - we will probably never produce any new hardware with that once-proposed arrangement. Therefore, that triband-or-quadband FCFAM provision is being removed from the code base, and FCDEV3B goes back to being treated the same way as CONFIG_TARGET_GTAMODEM for RFFE control purposes.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 24 Sep 2020 21:03:08 +0000
parents 945cf7f506b2
children
line wrap: on
line source

/*****************************************************************************/
/*                                                                           */
/* ========================================================================= */
/*                                                                           */
/* Copyright (c) 2002                                                        */
/* Matsushita Communication Industrial, MMCD USA                             */
/*                                                                           */
/* ========================================================================= */
/*                                                                           */
/* File Name:                                                                */
/*     l1gtt_baudot_functions.h                                              */
/*                                                                           */
/* Purpose:                                                                  */
/*     This is the header file for "l1gtt_baudot_functions.c".               */
/*                                                                           */
/*                                                                           */
/* Warnings:                                                                 */
/*                                                                           */
/*                                                                           */
/*****************************************************************************/

/*** Maintenance *********************************************************/
/*                                                                       */
/*                                                                       */
/*                 02/11/2002   initial version created       Laura Ning */
/*                                                                       */
/*************************************************************************/
#ifndef _BAUDOT_DECODE_H_
#define BAUDOT_DECODE_H

#include "ctm_typedefs.h"

/*
*******************************************************************************
*                         DEFINITIONS
*******************************************************************************
*/

/* definitions (might be of global interest) */
#define BAUDOT_NUM_INFO_BITS    5 /* number of info bits per TTY character  */
#define BAUDOT_SHIFT_FIGURES   27 /* code of shift to figures symbol        */
#define BAUDOT_SHIFT_LETTERS   31 /* code of shift to letters symbol        */

#define BAUDOT_LOGICAL_1  1
#define BAUDOT_LOGICAL_0  -1
#define BAUDOT_NON_TTY   0
#define BAUDOT_START_BIT  -1
#define BAUDOT_STOP_BIT   1

#define BAUDOT_STOP_OUTPUT  2 /* STOP bit as the output of baudot_encode() to DSP */

/* definations (be only of local interest)   */

#define START_OF_STOP_BIT  26

#define DETECT_WINDOW_WIDTH  4   /* A sliding window is used to detect start,stop and data bits */
#define BAUDOT_SAMPLE_DURATION 3   /* The duration to meet to determine a valid baudot bit        */

/* A temporary assumption of the input buffer size, to be    */
/* replaced later when TI has the actual buffer size defined */
#define MAX_WORDS_OF_BUFFER1      40  /* Number of the 5ms-bits it can contain  */
#define TIME_INTERVAL_OF_BUFFER1  200 /* in the unit of ms                      */
#define MAX_WORDS_ONE_TTYCODE   36  /* Number of 5ms-bits a TTY character has */

#define NUM_STOP_BITS_TX        2    /* number of stop bits per character    */

/* ******************************************************************/
/* Type definitions for variables that contain all states of the    */
/* Baudot decoder                                                   */
/* ******************************************************************/


typedef struct 
{
  WORD16    remainedSampleVec[MAX_WORDS_ONE_TTYCODE]; /* hold the samples for last unfinished detection */
  UWORD16   remainedSampleLen;  /* length of the remaining samples for last unfinished detection */
  WORD16    ttyCode;
  UWORD16   cntBitsActualChar;
  UWORD16   samplesRemained;  /* number of samples left from last detection      */
  BOOL        startBitDetected;
  BOOL        inFigureMode;

} baudot_decode_state_t;

/* ******************************************************************/
/* Type definitions for variables that contain all states of the    */
/* Baudot encoder                                                   */
/* ******************************************************************/
typedef struct 
{
  WORD16       cntCharsSinceLastShift;
  BOOL           inFigureMode;
  BOOL           tailBitsGenerated;
//  fifo_state_t   fifo_state;
} baudot_encode_state_t;

/****************************************************************************/
/* convertChar2ttyCode()                                                    */
/* *********************                                                    */
/* Conversion from character into tty code                                  */
/*                                                                          */
/* input variables:                                                         */
/* - inChar       charcater that shall be converted                         */
/*                                                                          */
/* return value:  baudot code of the input character                        */
/*                or -1 in case that inChar is not valid (e.g. inChar=='\0')*/
/*                                                                          */
/* Matthias Doerbecker, Ericsson Eurolab Deutschland (EED/N/RV), 2000/02/17 */
/****************************************************************************/

WORD16 convertChar2ttyCode(char inChar);



/****************************************************************************/
/* convertTTYcode2char()                                                    */
/* *********************                                                    */
/* Conversion from tty code into character                                  */
/*                                                                          */
/* input variables:                                                         */
/* - ttyCode      Baudot code (must be within the range 0...63)             */
/*                or -1 if there is nothing to convert                      */
/*                                                                          */
/* return value:  character (or '\0' if ttyCode is not valid)               */
/*                                                                          */
/* Matthias Doerbecker, Ericsson Eurolab Deutschland (EED/N/RV), 2000/02/17 */
/****************************************************************************/

char convertTTYcode2char(WORD16 ttyCode);

/* prototype declarations */
void init_baudot_decode(baudot_decode_state_t* state);

void init_baudot_encode(baudot_encode_state_t* state);

void reset_baudot_decode(baudot_decode_state_t* state);

void baudot_decode(WORD16* sampleVec, WORD16 numSamples,
                      fifo_state_t* ptrOutFifoState,
                      baudot_decode_state_t* state);
void baudot_encode(WORD16 inputTTYcode,
       fifo_state_t* ptrOutFifoState,
       baudot_encode_state_t* state);
  
#endif