FreeCalypso > hg > fc-magnetite
comparison src/g23m-aci/aci/ati_bas.c @ 246:a33da2d26a31
aci3: FreeCalypso +CGSN logic ported over
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Mon, 24 Jul 2017 06:18:10 +0000 |
| parents | 557041e392a9 |
| children | 0da72ce64c86 |
comparison
equal
deleted
inserted
replaced
| 245:3b8d291ed45a | 246:a33da2d26a31 |
|---|---|
| 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 "ksd.h" | |
| 78 #include "cmh_ss.h" | |
| 75 | 79 |
| 76 #include "fc-target.cfg" | 80 #include "fc-target.cfg" |
| 77 | 81 |
| 78 LOCAL T_ATI_RSLT aciPrcsPlusCG (UBYTE srcId, CHAR* cl, CHAR* ef); | 82 LOCAL T_ATI_RSLT aciPrcsPlusCG (UBYTE srcId, CHAR* cl, CHAR* ef); |
| 79 LOCAL T_ATI_RSLT setaciPrcsVolLevel ( CHAR* cl, UBYTE device ); | 83 LOCAL T_ATI_RSLT setaciPrcsVolLevel ( CHAR* cl, UBYTE device ); |
| 2134 | 2138 |
| 2135 PURPOSE : +CGSN, show serial number | 2139 PURPOSE : +CGSN, show serial number |
| 2136 */ | 2140 */ |
| 2137 GLOBAL T_ATI_RSLT atPlusCGSN ( char *cl, UBYTE srcId ) | 2141 GLOBAL T_ATI_RSLT atPlusCGSN ( char *cl, UBYTE srcId ) |
| 2138 { | 2142 { |
| 2143 int i; | |
| 2144 UBYTE IMEIBuf[CL_IMEI_SIZE]; /* IMEI buffer */ | |
| 2145 T_ACI_IMEI imei; | |
| 2146 | |
| 2139 TRACE_FUNCTION("atPlusCGSN()"); | 2147 TRACE_FUNCTION("atPlusCGSN()"); |
| 2140 | 2148 |
| 2141 return aciPrcsPlusCG (srcId, cl, EF_CGSN_ID); | 2149 /* |
| 2150 * New FreeCalypso logic: | |
| 2151 * | |
| 2152 * look for /pcm/CGSN first, using direct FFS API rather than PCM; | |
| 2153 * if /pcm/CGSN is present, return the string stored in there; | |
| 2154 * if no /pcm/CGSN, return 15-digit IMEI with computed check digit. | |
| 2155 */ | |
| 2156 | |
| 2157 i = ffs_file_read("/pcm/CGSN", (UBYTE *)g_sa, SIZE_EF_CGSN); | |
| 2158 if (i > 0) | |
| 2159 g_sa[i] = '\0'; | |
| 2160 else { | |
| 2161 cl_get_imeisv(CL_IMEI_SIZE, IMEIBuf, CL_IMEI_GET_STORED_IMEI); | |
| 2162 imei.tac1 = IMEIBuf[0]; | |
| 2163 imei.tac2 = IMEIBuf[1]; | |
| 2164 imei.tac3 = IMEIBuf[2]; | |
| 2165 imei.fac = IMEIBuf[3]; | |
| 2166 imei.snr1 = IMEIBuf[4]; | |
| 2167 imei.snr2 = IMEIBuf[5]; | |
| 2168 imei.snr3 = IMEIBuf[6]; | |
| 2169 imei.svn = IMEIBuf[7]; | |
| 2170 imei.cd = cmhSS_getCdFromImei ( &imei ); | |
| 2171 sprintf(g_sa, "%02x%02x%02x%02x%02x%02x%02x%d", | |
| 2172 imei.tac1, imei.tac2, imei.tac3, imei.fac, | |
| 2173 imei.snr1, imei.snr2, imei.snr3, imei.cd); | |
| 2174 } | |
| 2175 | |
| 2176 io_sendMessage (srcId, g_sa, ATI_NORMAL_OUTPUT); | |
| 2177 | |
| 2178 return ATI_CMPL; | |
| 2142 } | 2179 } |
| 2143 | 2180 |
| 2144 /* | 2181 /* |
| 2145 +--------------------------------------------------------------------+ | 2182 +--------------------------------------------------------------------+ |
| 2146 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD | | 2183 | PROJECT : GSM-F&D (8411) MODULE : ACI_CMD | |
