diff src/cs/services/cst/cst_csf.c @ 0:4e78acac3d88

src/{condat,cs,gpf,nucleus}: import from Selenite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:23:26 +0000
parents
children fa22012c4a39
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/cs/services/cst/cst_csf.c	Fri Oct 16 06:23:26 2020 +0000
@@ -0,0 +1,218 @@
+/*
++-------------------------------------------------------------------+
+| PROJECT: GSM-F&D (8411)               $Workfile:: cst_csf.c       $|
+| $Author:: Be $ CONDAT GmbH            $Revision:: 7               $|
+| CREATED: 01.02.99                     $Modtime:: 1.12.99 13:16    $|
+| STATE  : code                                                      |
++--------------------------------------------------------------------+
+
+
+   MODULE  : CST_CSF
+
+   PURPOSE : This Modul defines the custom specific functionalitys
+             for the entity CST.
+*/
+
+#ifndef CST_CSF_C
+#define CST_CSF_C
+#endif
+
+
+#include "config/swconfig.cfg"
+#include "config/board.cfg"
+
+
+#define ENTITY_CST
+
+/*==== INCLUDES ===================================================*/
+
+#include <string.h>
+#include "typedefs.h"
+#include "vsi.h"
+#include "gsm.h"
+#include "p_cst.h"
+#include "cst/cst.h"
+
+/*==== CONSTANTS ==================================================*/
+
+/*==== TYPES ======================================================*/
+
+/*==== EXPORT =====================================================*/
+
+/*==== VARIABLES ==================================================*/
+
+LOCAL USHORT ADC_CONVERSIONS[9];
+
+/*==== FUNCTIONS ==================================================*/
+
+#ifdef ALR
+extern void madc_hex_2_physical (USHORT *adc_hex, USHORT *adc_phy);
+#endif
+
+#if (BOARD==34)
+extern inline unsigned char GC_GetAdcInfo(void);
+#endif
+
+/*
++--------------------------------------------------------------------+
+| PROJECT : XXX                         MODULE  : CST_CSF            |
+| STATE   : code                        ROUTINE : csf_adc_start      |
++--------------------------------------------------------------------+
+
+  PURPOSE : This function sends a primitive to L1A to activate the ADC */
+
+
+GLOBAL void csf_adc_start (UBYTE tx_flag, UBYTE traffic_period, UBYTE idle_period)
+{
+
+  // This structure and the #define have to be implemented in the MMI.
+  // This is a temporary location for test !!!!!!!
+  // TO BE REMOVED BY USER
+  typedef struct
+  {
+    UBYTE  tx_flag;
+    UBYTE  traffic_period;
+    UBYTE  idle_period;
+  }
+  T_MMI_ADC_REQ;
+
+  #define MMI_ADC_REQ  (111)
+
+
+  PALLOC(adc_req, MMI_ADC_REQ);
+
+  adc_req->tx_flag  = tx_flag;
+  adc_req->traffic_period  = traffic_period;
+  adc_req->idle_period  = idle_period;
+
+  PSENDX (L1, adc_req);
+
+}
+
+
+/*
++--------------------------------------------------------------------+
+| PROJECT : XXX                         MODULE  : CST_CSF            |
+| STATE   : code                        ROUTINE : csf_adc_process    |
++--------------------------------------------------------------------+
+
+  PURPOSE : This function processes ADC results. It stores 10 consecutive
+  results in an array.
+*/
+
+
+GLOBAL void csf_adc_process (T_CST_ADC_IND *adc_results)
+{
+#ifdef ALR
+ volatile USHORT adc_converted[9];
+#endif
+
+#ifdef ALR
+/* convert adc value into physical values */
+   madc_hex_2_physical (adc_results->adc_values, (USHORT*) adc_converted);
+
+ ADC_CONVERSIONS[0] = adc_converted[0];        /* Battery Voltage */
+ ADC_CONVERSIONS[1] = adc_converted[1];        /* Charger Voltage */
+ ADC_CONVERSIONS[2] = adc_converted[2];        /* I Charger */
+ ADC_CONVERSIONS[3] = adc_converted[3];        /* I Charger */
+ ADC_CONVERSIONS[4] = adc_converted[4];        /* Battery Type */
+ ADC_CONVERSIONS[5] = adc_converted[5];        /* Battery Temperature */
+ ADC_CONVERSIONS[6] = adc_converted[6];        /* RF temperature */
+ ADC_CONVERSIONS[7] = adc_converted[7];        /* Touch Screen X */
+ ADC_CONVERSIONS[8] = adc_converted[8];        /* Touch Screen Y */
+#else
+ ADC_CONVERSIONS[0] = adc_results->adc_values[0];
+ ADC_CONVERSIONS[1] = adc_results->adc_values[1];
+ ADC_CONVERSIONS[2] = adc_results->adc_values[2];
+ ADC_CONVERSIONS[3] = adc_results->adc_values[3];
+ ADC_CONVERSIONS[4] = adc_results->adc_values[4];
+#endif
+
+// WCS Patch :Avenger 2 uses adc index 5 to store battery informations bit field
+#if (BOARD == 34)
+ ADC_CONVERSIONS[5] = GC_GetAdcInfo();
+#endif
+
+PFREE (adc_results);
+}
+
+
+/*
++--------------------------------------------------------------------+
+| PROJECT : XXX                         MODULE  : CST_CSF            |
+| STATE   : code                        ROUTINE : csf_aec_enable     |
++--------------------------------------------------------------------+
+
+  PURPOSE : This function sends a primitive to L1A to activate the AEC */
+
+
+GLOBAL void csf_aec_enable (USHORT aec_ctrl_reg)
+{
+
+  // This structure and the #define have to be implemented in the MMI.
+  // This is a temporary location for test !!!!!!!
+  // TO BE REMOVED BY USER
+  typedef struct
+  {
+    USHORT aec_control;
+  }
+  T_MMI_AEC_REQ;
+
+  #define MMI_AEC_REQ  ( ( ( 0x18 ) << 8 ) |  40 )
+
+  PALLOC(aec_req, MMI_AEC_REQ);
+
+  aec_req->aec_control  = aec_ctrl_reg;
+
+  PSENDX (L1, aec_req);
+}
+
+
+/*
+    Returns the ADC conversions results array
+*/
+
+GLOBAL USHORT * csf_return_adc (void)
+{
+ return &(ADC_CONVERSIONS[0]);
+}
+
+
+
+#ifdef ALR
+/*
++--------------------------------------------------------------------+
+| PROJECT : GSM-PS (8403)       MODULE  : CST_CSF                    |
+| STATE   : code                ROUTINE : csf_vm_record              |
++--------------------------------------------------------------------+
+
+  PURPOSE : activate the Voice Memo recording process for a ten seconds duration
+
+*/
+
+GLOBAL void csf_vm_record (CHAR *output, UBYTE vm_flash_index)
+{
+  // Dummy function
+}
+
+
+
+
+/*
++--------------------------------------------------------------------+
+| PROJECT : GSM-PS (8403)       MODULE  : CST_CSF                    |
+| STATE   : code                ROUTINE : csf_vm_play                |
++--------------------------------------------------------------------+
+
+  PURPOSE : activate the Voice Memo playing process
+
+*/
+
+GLOBAL void csf_vm_play (CHAR *output, UBYTE vm_flash_index)
+{
+  // Dummy function
+}
+#endif
+
+
+