diff gsm-fw/ccd/csn1_sh_opt.c @ 648:970d6199f2c5

gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Thu, 04 Sep 2014 05:48:57 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gsm-fw/ccd/csn1_sh_opt.c	Thu Sep 04 05:48:57 2014 +0000
@@ -0,0 +1,122 @@
+/* 
++----------------------------------------------------------------------------- 
+|  Project :  
+|  Modul   : csn1_sh_opt.c
++----------------------------------------------------------------------------- 
+|  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 :  Definition of encoding and decoding functions for CSN1_SH_OPT
+|             elements 
++----------------------------------------------------------------------------- 
+*/ 
+
+
+/*
+ * standard definitions like GLOBAL, UCHAR, ERROR etc.
+ */
+#include "typedefs.h"
+#include "header.h"
+
+/*
+ * Prototypes of ccd (USE_DRIVER EQ undef) for prototypes only
+ * look at ccdapi.h
+ */
+#undef USE_DRIVER
+#include "ccdapi.h"
+
+/*
+ * Types and functions for bit access and manipulation
+ */
+#include "ccd_globs.h"
+#include "bitfun.h"
+
+/*
+ * Prototypes of ccd internal functions
+ */
+#include "ccd.h"
+
+/*
+ * Declaration of coder/decoder tables
+ */
+#include "ccdtable.h"
+#include "ccddata.h"
+
+
+extern SHORT cdc_csn1_sx_decode (int flag, const ULONG e_ref, T_CCD_Globs *globs);
+extern SHORT cdc_csn1_sx_encode (int flag, const ULONG e_ref, T_CCD_Globs *globs);
+
+#ifndef RUN_FLASH
+/*
++------------------------------------------------------------------------+
+| PROJECT : CCD (6144)               MODULE  : CDC_GSM                   |
+| STATE   : code                     ROUTINE : cdc_csn1_shl_opt_decode   |
++------------------------------------------------------------------------+
+
+  PURPOSE : Decoding of the GSM Type CSN1 SHL OPT element. 
+            This coding type enhances the GSM Type CSN1 SHL. It supports 
+            previous behaviour of CSN1_SHL and the lack of the whole 
+            element.
+            The coding type CSN1_SHL_OPT is suitable for elements which 
+            structures match to the following common definition:
+            { null | L | H { 0 | 1 < value part > }
+            
+            The element value can be present, then it is preceded by the 
+            flag value H. If the element is represented by the flag L only 
+            the value is absent! Besides the absence of the whole element 
+            is allowed.
+*/
+
+SHORT cdc_csn1_shl_opt_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs)
+{
+
+#ifdef DEBUG_CCD
+  #ifndef CCD_SYMBOLS
+  TRACE_CCD (globs, "cdc_csn1_shl_opt_decode()");
+	#else
+	TRACE_CCD (globs, "cdc_csn1_shl_opt_decode() %s", ccddata_get_alias((USHORT) e_ref, 1));  
+	#endif
+#endif
+
+  return cdc_csn1_sx_decode (0xFF, e_ref, globs);
+}
+#endif /* !RUN_FLASH */
+
+#ifndef RUN_FLASH
+/*
++------------------------------------------------------------------------+
+| PROJECT : CCD (6144)              MODULE  : CDC_GSM                    |
+| STATE   : code                    ROUTINE : cdc_csn1_shl_opt_encode    |
++------------------------------------------------------------------------+
+
+  PURPOSE : Encoding of the GSM Type CSN1 SHL OPT element doesn't differ
+            from encoding of the GSM Type CSN1 SHL. 
+            This element consists of a 1 bit valid flag and a value part. 
+            If the element is valid (the v_xxx components is TRUE in the
+            decoded message) a H bit will be coded followed by the
+            coding of the value part. Otherwise a L bit will be
+            coded.
+
+*/
+
+SHORT cdc_csn1_shl_opt_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs)
+{
+#ifdef DEBUG_CCD
+  #ifndef CCD_SYMBOLS
+  TRACE_CCD (globs, "cdc_csn1_shl_opt_encode()");
+	#else
+	TRACE_CCD (globs, "cdc_csn1_shl_opt_encode() %s", ccddata_get_alias((USHORT) e_ref, 1));  
+	#endif
+#endif
+
+  return cdc_csn1_sx_encode (0xFF, e_ref, globs);
+}
+#endif /* !RUN_FLASH */