comparison src/aci2/aci/ati_bas.c @ 228:d2cbdbffc528

aci2: FreeCalypso +CGSN logic implemented
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 16 Nov 2016 05:28:00 +0000
parents dce31be2b474
children 550cfa9e1ca7
comparison
equal deleted inserted replaced
227:763120534e54 228:d2cbdbffc528
70 #include "bat.h" 70 #include "bat.h"
71 71
72 #include "ati_bat.h" 72 #include "ati_bat.h"
73 73
74 #endif /*FF_ATI_BAT*/ 74 #endif /*FF_ATI_BAT*/
75
76 #include "cl_imei.h"
77 #include "cmh_ss.h"
75 78
76 #include "fc-target.cfg" 79 #include "fc-target.cfg"
77 80
78 LOCAL T_ATI_RSLT aciPrcsPlusCG (UBYTE srcId, CHAR* cl, CHAR* ef); 81 LOCAL T_ATI_RSLT aciPrcsPlusCG (UBYTE srcId, CHAR* cl, CHAR* ef);
79 LOCAL T_ATI_RSLT setaciPrcsVolLevel ( CHAR* cl, UBYTE device ); 82 LOCAL T_ATI_RSLT setaciPrcsVolLevel ( CHAR* cl, UBYTE device );
2105 2108
2106 PURPOSE : +CGSN, show serial number 2109 PURPOSE : +CGSN, show serial number
2107 */ 2110 */
2108 GLOBAL T_ATI_RSLT atPlusCGSN ( char *cl, UBYTE srcId ) 2111 GLOBAL T_ATI_RSLT atPlusCGSN ( char *cl, UBYTE srcId )
2109 { 2112 {
2113 int i;
2114 UBYTE IMEIBuf[CL_IMEI_SIZE]; /* IMEI buffer */
2115 T_ACI_IMEI imei;
2116
2110 TRACE_FUNCTION("atPlusCGSN()"); 2117 TRACE_FUNCTION("atPlusCGSN()");
2111 2118
2112 return aciPrcsPlusCG (srcId, cl, EF_CGSN_ID); 2119 /*
2120 * New FreeCalypso logic:
2121 *
2122 * look for /pcm/CGSN first, using direct FFS API rather than PCM;
2123 * if /pcm/CGSN is present, return the string stored in there;
2124 * if no /pcm/CGSN, return 15-digit IMEI with computed check digit.
2125 */
2126
2127 i = ffs_file_read("/pcm/CGSN", (UBYTE *)g_sa, SIZE_EF_CGSN);
2128 if (i > 0)
2129 g_sa[i] = '\0';
2130 else {
2131 cl_get_imeisv(CL_IMEI_SIZE, IMEIBuf, CL_IMEI_GET_STORED_IMEI);
2132 imei.tac1 = IMEIBuf[0];
2133 imei.tac2 = IMEIBuf[1];
2134 imei.tac3 = IMEIBuf[2];
2135 imei.fac = IMEIBuf[3];
2136 imei.snr1 = IMEIBuf[4];
2137 imei.snr2 = IMEIBuf[5];
2138 imei.snr3 = IMEIBuf[6];
2139 imei.svn = IMEIBuf[7];
2140 imei.cd = cmhSS_getCdFromImei ( &imei );
2141 sprintf(g_sa, "%02x%02x%02x%02x%02x%02x%02x%d",
2142 imei.tac1, imei.tac2, imei.tac3, imei.fac,
2143 imei.snr1, imei.snr2, imei.snr3, imei.cd);
2144 }
2145
2146 io_sendMessage (srcId, g_sa, ATI_NORMAL_OUTPUT);
2147
2148 return ATI_CMPL;
2113 } 2149 }
2114 2150
2115 /* 2151 /*
2116 +--------------------------------------------------------------------+ 2152 +--------------------------------------------------------------------+
2117 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD | 2153 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD |