FreeCalypso > hg > fc-magnetite
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 | |