FreeCalypso > hg > fc-tourmaline
view src/ui/bmi/Icons/IcnDefs.c @ 303:f76436d19a7a default tip
!GPRS config: fix long-standing AT+COPS chance hanging bug
There has been a long-standing bug in FreeCalypso going back years:
sometimes in the AT command bring-up sequence of an ACI-only MS,
the AT+COPS command would produce only a power scan followed by
cessation of protocol stack activity (only L1 ADC traces), instead
of the expected network search sequence. This behaviour was seen
in different FC firmware versions going back to Citrine, and seemed
to follow some law of chance, not reliably repeatable.
This bug has been tracked down and found to be specific to !GPRS
configuration, stemming from our TCS2/TCS3 hybrid and reconstruction
of !GPRS support that was bitrotten in TCS3.2/LoCosto version.
ACI module psa_mms.c, needed only for !GPRS, was missing in the TCS3
version and had to be pulled from TCS2 - but as it turns out,
there is a new field in the MMR_REG_REQ primitive that needs to be
set correctly, and that psa_mms.c module is the place where this
initialization needed to be added.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 08 Jun 2023 08:23:37 +0000 |
parents | 67bfe9f274f6 |
children |
line wrap: on
line source
#include "IcnDefs.h" #if 0 char NO_PALETTE[] = {0x00,0x00,0x00}; char NO_BMP_DATA[] = {0x00,0x00,0x00}; //Function to get icon information int icn_getIconData( int iconId, int * op_sx, int * op_sy, char* *op_bmpData, int *op_format) { char**palette; *op_sx = 0; *op_sy = 0; *op_bmpData = NO_BMP_DATA; *palette = NO_PALETTE; #ifdef COLOURDISPLAY switch (iconId) { case ICON_IDLE_Background: case ICON_IDLE_Battery4: icnBattery_dataformat(iconId,op_bmpData, op_sx, op_sy, op_format, palette); break; case ICON_IDLE_Battery14: icnBattery_dataformat(iconId,op_bmpData, op_sx, op_sy, op_format, palette); break; case ICON_IDLE_Battery24: icnBattery_dataformat(iconId,op_bmpData, op_sx, op_sy, op_format, palette); break; case ICON_IDLE_Battery49: icnBattery_dataformat(iconId,op_bmpData, op_sx, op_sy, op_format, palette); break; case ICON_IDLE_Battery100: icnBattery_dataformat(iconId,op_bmpData, op_sx, op_sy, op_format, palette); break; case ICON_IDLE_forwarding: case ICON_IDLE_keylock: case ICON_IDLE_message: case ICON_IDLE_signalStr49: icnSignalStr_dataformat(iconId,op_bmpData, op_sx, op_sy, op_format, palette); break; case ICON_IDLE_signalStr99: icnSignalStr_dataformat(iconId,op_bmpData, op_sx, op_sy, op_format, palette); break; case ICON_IDLE_signalStr149: icnSignalStr_dataformat(iconId,op_bmpData, op_sx, op_sy, op_format, palette); break; case ICON_IDLE_signalStr199: icnSignalStr_dataformat(iconId,op_bmpData, op_sx, op_sy, op_format, palette); break; case ICON_IDLE_signalStr255: icnSignalStr_dataformat(iconId,op_bmpData, op_sx, op_sy, op_format, palette); break; case ICON_IDLE_homeZone: case ICON_IDLE_gprs: icnGPRS_dataformat(op_bmpData, op_sx, op_sy, op_format, palette); break; case ICON_IDLE_voicemail: //'main' icons case ICON_MAIN_Application: case ICON_MAIN_Divert: case ICON_MAIN_Messages: case ICON_MAIN_Phonebook: case ICON_MAIN_RecentCalls: case ICON_MAIN_Security: case ICON_MAIN_Settings: case ICON_MAIN_SIM_Toolkit: case ICON_MAIN_WAP: //popup case ICON_POPUP_CLOUDS: //network case ICON_Bouygues: case ICON_Vodafone: case ICON_SFR: case ICON_VodafoneD2: case ICON_Chinamobile: case ICON_Fareast: case ICON_orange: case ICON_sonofon: case ICON_Tmobile: case ICON_BgdSquares: icnBgdSquares_dataformat(op_bmpData, op_sx, op_sy, op_format, palette); break; default: return(-1); break; } #endif return (0); } #endif