X-Git-Url: https://git.jankratochvil.net/?p=gnokii.git;a=blobdiff_plain;f=common%2Fphones%2Fnk7110.c;h=4dd584d6b7ca40be8a5429624af4092fa7249265;hp=af77996187cc190b15a5f8f0c57ce35222671262;hb=1379b6d01c3c3bd082a8ab32433450d8a2f3419c;hpb=2c2798de53319dcec0435cd651e3e1922bdd6e86 diff --git a/common/phones/nk7110.c b/common/phones/nk7110.c index af77996..4dd584d 100644 --- a/common/phones/nk7110.c +++ b/common/phones/nk7110.c @@ -7,8 +7,7 @@ A Linux/Unix toolset and driver for Nokia mobile phones. Copyright (C) 2000 Hugh Blemings & Pavel Janík ml. - Copyright (C) 2000 Chris Kemp - Copyright (C) 2001 Markus Plail, Pawe³ Kot + Copytight (C) 2000 Chris Kemp Released under the terms of the GNU GPL, see file COPYING for more details. @@ -17,6 +16,94 @@ The various routines are called P7110_(whatever). + $Log$ + Revision 1.1.1.5 2002/04/03 00:08:10 short + Found in "gnokii-working" directory, some November-patches version + + Revision 1.15 2001/11/08 16:47:48 pkot + Start fiddling with 7110 and SMS + + Revision 1.14 2001/09/09 21:45:49 machek + Cleanups from Ladislav Michl : + + *) do *not* internationalize debug messages + + *) some whitespace fixes, do not use // + + *) break is unneccessary after return + + Revision 1.13 2001/08/16 23:59:32 pkot + Fixed (hopefully) timezone mismash (Sheldon Hearn) + + Revision 1.12 2001/08/09 12:34:34 pkot + 3330 and 6250 support - I have no idea if it does work (mygnokii) + + Revision 1.11 2001/07/05 10:54:53 pkot + Solaris 2.7 fixes - should be harmless for other OSes (Michael Wiedmann) + + Revision 1.10 2001/06/27 23:52:49 pkot + 7110/6210 updates (Marian Jancar) + + Revision 1.9 2001/06/10 23:49:49 pkot + Small fixes to hide compilation warnings and allow gnokii.c to compile + + Revision 1.8 2001/05/24 20:47:30 chris + More updating of 7110 code and some of xgnokii_lowlevel changed over. + + Revision 1.7 2001/05/07 16:24:04 pkot + DLR-3P temporary fix. How should I do it better? + + Revision 1.6 2001/03/23 13:40:24 chris + Pavel's patch and a few fixes. + + Revision 1.5 2001/03/22 16:17:06 chris + Tidy-ups and fixed gnokii/Makefile and gnokii/ChangeLog which I somehow corrupted. + + Revision 1.4 2001/03/21 23:36:06 chris + Added the statemachine + This will break gnokii --identify and --monitor except for 6210/7110 + + Revision 1.3 2001/03/13 01:24:03 pkot + Code cleanup - no warnings during compilation + + Revision 1.2 2001/03/13 01:23:18 pkot + Windows updates (Manfred Jonsson) + + Revision 1.1 2001/02/21 19:57:07 chris + More fiddling with the directory layout + + Revision 1.1 2001/02/16 14:29:53 chris + Restructure of common/. Fixed a problem in fbus-phonet.c + Lots of dprintfs for Marcin + Any size xpm can now be loaded (eg for 7110 startup logos) + nk7110 code detects 7110/6210 and alters startup logo size to suit + Moved Marcin's extended phonebook code into gnokii.c + + Revision 1.7 2001/02/06 21:15:35 chris + Preliminary irda support for 7110 etc. Not well tested! + + Revision 1.6 2001/02/03 23:56:15 chris + Start of work on irda support (now we just need fbus-irda.c!) + Proper unicode support in 7110 code (from pkot) + + Revision 1.5 2001/02/01 15:17:31 pkot + Fixed --identify and added Manfred's manufacturer patch + + Revision 1.4 2001/01/29 17:14:42 chris + dprintf now in misc.h (and fiddling with 7110 code) + + Revision 1.3 2001/01/23 15:32:41 chris + Pavel's 'break' and 'static' corrections. + Work on logos for 7110. + + Revision 1.2 2001/01/17 02:54:54 chris + More 7110 work. Use with care! (eg it is not possible to delete phonebook entries) + I can now edit my phonebook in xgnokii but it is 'work in progress'. + + Revision 1.1 2001/01/14 22:46:59 chris + Preliminary 7110 support (dlr9 only) and the beginnings of a new structure + + */ #include @@ -39,40 +126,6 @@ /* Some globals */ -static const SMSMessage_Layout nk7110_deliver = { - true, - 0, 21, 0, 0, 7, 0, 0, -1, 24, 23, 0, 21, - 9, true, 25, true, 37, -1, - 5, 4, - 44, true -}; - -static const SMSMessage_Layout nk7110_submit = { - true, - -1, 18, 18, 18, -1, 19, 20, -1, 22, 21, 18, 18, - 6, true, 23, true, -1, -1, - -1, -1, - 42, true -}; - -static const SMSMessage_Layout nk7110_delivery_report = { - true, - 0, 0, 0, 0, 7, 0, 0, 0, 23, 22, -1, 21, - 9, true, 24, true, 36, 43, - 5, 4, - 23, true -}; - -static const SMSMessage_Layout nk7110_picture = { - true, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 9, true, 22, true, 34, -1, - 0, 0, - 47, true -}; - -static SMSMessage_PhoneLayout nk7110_layout; - static GSM_IncomingFunctionType P7110_IncomingFunctions[] = { { P7110_MSG_FOLDER, P7110_IncomingFolder }, { P7110_MSG_SMS, P7110_IncomingSMS }, @@ -91,7 +144,7 @@ GSM_Phone phone_nokia_7110 = { PGEN_IncomingDefault, /* Mobile phone information */ { - "7110|6210|6250", /* Supported models */ + "7110|6210|6250", /* Supported models */ 7, /* Max RF Level */ 0, /* Min RF Level */ GRF_Percentage, /* RF level units */ @@ -99,9 +152,9 @@ GSM_Phone phone_nokia_7110 = { 0, /* Min Battery Level */ GBU_Percentage, /* Battery level units */ GDT_DateTime, /* Have date/time support */ - GDT_TimeOnly, /* Alarm supports time only */ + GDT_TimeOnly, /* Alarm supports time only */ 1, /* Alarms available - FIXME */ - 60, 96, /* Startup logo size - 7110 is fixed at init */ + 60, 96, /* Startup logo size - 7110 is fixed at init*/ 21, 78, /* Op logo size */ 14, 72 /* Caller logo size */ }, @@ -151,9 +204,7 @@ static GSM_Error P7110_Functions(GSM_Operation op, GSM_Data *data, GSM_Statemach return P7110_GetCalendarNote(data, state); case GOP_GetSMS: return P7110_GetSMS(data, state); - case GOP_SendSMS: - return P7110_SendSMS(data, state); -/* I'm not sure yet if folder functions will be shared or local +/* I'm not suer yet if folder functions will be shared or local case GOP_GetSMSFolders: return P7110_GetSMSFolders(data, state); case GOP_GetSMSFolderStatus: @@ -177,22 +228,11 @@ static GSM_Error P7110_Initialise(GSM_Statemachine *state) /* Copy in the phone info */ memcpy(&(state->Phone), &phone_nokia_7110, sizeof(GSM_Phone)); - /* SMS Layout */ - nk7110_layout.Type = 8; /* Locate the Type of the mesage field */ - nk7110_layout.Deliver = nk7110_deliver; - nk7110_layout.Submit = nk7110_submit; - nk7110_layout.DeliveryReport = nk7110_delivery_report; - nk7110_layout.Picture = nk7110_picture; - layout = nk7110_layout; - - dprintf("Connecting\n"); while (!connected) { switch (state->Link.ConnectionType) { - case GCT_DAU9P: - if (try == 0) try = 1; case GCT_Serial: if (try > 1) return GE_NOTSUPPORTED; - err = FBUS_Initialise(&(state->Link), state, 1 - try); + err = FBUS_Initialise(&(state->Link), state); break; case GCT_Infrared: case GCT_Irda: @@ -205,7 +245,7 @@ static GSM_Error P7110_Initialise(GSM_Statemachine *state) } if (err != GE_NONE) { - dprintf("Error in link initialisation: %d\n", err); + dprintf("Error in link initialisation\n"); try++; continue; } @@ -271,12 +311,13 @@ static GSM_Error P7110_IncomingBattLevel(int messagetype, unsigned char *message *(data->BatteryLevel) = message[5]; dprintf("Battery level %f\n",*(data->BatteryLevel)); } + return GE_NONE; break; default: dprintf("Unknown subtype of type 0x17 (%d)\n", message[3]); return GE_UNKNOWN; + break; } - return GE_NONE; } static GSM_Error P7110_GetRFLevel(GSM_Data *data, GSM_Statemachine *state) @@ -351,6 +392,7 @@ static GSM_Error P7110_IncomingNetwork(int messagetype, unsigned char *message, } blockstart += blockstart[1]; } + return GE_NONE; break; case 0x82: if (data->RFLevel) { @@ -358,15 +400,16 @@ static GSM_Error P7110_IncomingNetwork(int messagetype, unsigned char *message, *(data->RFLevel) = message[4]; dprintf("RF level %f\n",*(data->RFLevel)); } + return GE_NONE; break; case 0xa4: dprintf("Op Logo Set OK\n"); - break; + return GE_NONE; default: dprintf("Unknown subtype of type 0x0a (%d)\n", message[3]); return GE_UNKNOWN; + break; } - return GE_NONE; } static GSM_Error P7110_GetMemoryStatus(GSM_Data *data, GSM_Statemachine *state) @@ -397,11 +440,14 @@ static GSM_Error P7110_IncomingPhonebook(int messagetype, unsigned char *message data->MemoryStatus->Used = (message[16] << 8) + message[17]; data->MemoryStatus->Free = ((message[14] << 8) + message[15]) - data->MemoryStatus->Used; dprintf("Memory status - location = %d\n", (message[8] << 8) + message[9]); + return GE_NONE; } else { dprintf("Unknown error getting mem status\n"); return GE_NOTIMPLEMENTED; + } } + return GE_NONE; break; case 0x08: /* Read Memory response */ if (data->PhonebookEntry) { @@ -550,19 +596,20 @@ static GSM_Error P7110_IncomingPhonebook(int messagetype, unsigned char *message } blockstart += blockstart[3]; } + return GE_NONE; break; case 0x0c: switch (message[6]) { - case 0x3d: return GE_PHBOOKWRITEFAILED; - case 0x3e: return GE_PHBOOKWRITEFAILED; - default: return GE_NONE; + case 0x3d: return GE_PHBOOKWRITEFAILED; break; + case 0x3e: return GE_PHBOOKWRITEFAILED; break; + default: return GE_NONE; break; } break; default: dprintf("Unknown subtype of type 0x03 (%d)\n", message[3]); return GE_UNKNOWN; + break; } - return GE_NONE; } /* Just as an example.... */ @@ -573,7 +620,6 @@ static GSM_Error P7110_Identify(GSM_Data *data, GSM_Statemachine *state) unsigned char req2[] = {FBUS_FRAME_HEADER, 0x03, 0x01, 0x32}; dprintf("Identifying...\n"); - PNOK_GetManufacturer(data->Manufacturer); if (SM_SendMessage(state, 4, 0x1b, req) != GE_NONE) return GE_NOTREADY; if (SM_SendMessage(state, 6, 0x1b, req2) != GE_NONE) return GE_NOTREADY; SM_WaitFor(state, data, 0x1b); @@ -593,6 +639,7 @@ static GSM_Error P7110_Incoming0x1b(int messagetype, unsigned char *message, int snprintf(data->Imei, GSM_MAX_IMEI_LENGTH, "%s", message + 4); dprintf("Received imei %s\n",data->Imei); } + return GE_NONE; break; case 04: if (data->Model) { @@ -603,201 +650,132 @@ static GSM_Error P7110_Incoming0x1b(int messagetype, unsigned char *message, int snprintf(data->Revision, GSM_MAX_REVISION_LENGTH, "%s", message + 7); dprintf("Received revision %s\n",data->Revision); } + return GE_NONE; break; default: dprintf("Unknown subtype of type 0x1b (%d)\n", message[3]); return GE_UNKNOWN; + break; } - return GE_NONE; } /* handle messages of type 0x14 (SMS Handling, Folders, Logos.. */ static GSM_Error P7110_IncomingFolder(int messagetype, unsigned char *message, int length, GSM_Data *data) { - int i, j; - int nextfolder = 0x10; - bool found; - +#if 0 + int off, offset; + int wc,i,j,tmp=0; switch (message[3]) { /* getfolders */ case 0x7B: i = 5; - memset(data->SMSFolderList, 0, sizeof(SMS_FolderList)); - dprintf("Message: %d SMS Folders received:\n", message[4]); - - strcpy(data->SMSFolderList->Folder[1].Name, " "); - data->SMSFolderList->number = message[4]; + data->SMSFolders->number = message[4]; + dprintf("Message: %d SMS Folders received:\n", data->SMSFolders->number); for (j = 0; j < message[4]; j++) { - int len; - strcpy(data->SMSFolderList->Folder[j].Name, " "); - data->SMSFolderList->FolderID[j] = message[i]; - dprintf("Folder Index: %d", data->SMSFolderList->FolderID[j]); - i += 2; + strcpy(data->SMSFolders->Folder[j].Name, " "); + data->SMSFolders->FoldersID[j] = message[i]; + dprintf("Folder Index: %d", data->SMSFolders->FoldersID[j]); + i = i + 2; dprintf(" Folder name: "); - len = 0; - /* search for next folder's index number, i.e. length of folder name */ - while (message[i+1] != nextfolder && i < length) { - i += 2; - len++; - } - /* see nk7110.txt */ - nextfolder += 0x08; - if (nextfolder == 0x28) nextfolder++; - i -= 2 * len +1; - DecodeUnicode(data->SMSFolderList->Folder[j].Name, message + i, len); - dprintf("%s\n", data->SMSFolderList->Folder[j].Name); - i += 2 * len + 2; + tmp = 0; + while ((message[i] != 0x00) & (message[i+1] == 0x00)) { + wc = message[i] | (message[i+1] << 8); + data->SMSFolders->Folder[j].Name[tmp] = DecodeWithUnicodeAlphabet(wc); + dprintf("%c", data->SMSFolders->Folder[j].Name[tmp]); + tmp++; + i = i + 2; + } + dprintf("\n"); + tmp = 0; + i = i + 1; } break; /* getfolderstatus */ case 0x6C: - memset(data->SMSFolder, 0, sizeof(SMS_Folder)); dprintf("Message: SMS Folder status received: \n" ); - data->SMSFolder->FolderID = data->SMSMessage->MemoryType; - data->SMSFolder->number = (message[5] * 256) + message[5]; - dprintf("Message: Number of Entries: %i\n" , data->SMSFolder->number); + data->OneSMSFolder->number = (message[5] * 256) + message[5]; + dprintf("Message: Number of Entries: %i\n" , data->OneSMSFolder->number); dprintf("Message: IDs of Entries : "); - for (i = 0; i < message[4] * 256 + message[5]; i++) { - data->SMSFolder->locations[i] = message[6+(i*2)] * 256 + message[(i*2)+7]; - dprintf("%d, ", data->SMSFolder->locations[i]); + for (i=0;iOneSMSFolder->locations[i]=message[6+(i*2)]*256+message[(i*2)+7]; + dprintf("%d, ", data->OneSMSFolder->locations[i]); } dprintf("\n"); break; /* getsms */ case 0x08: - for (i = 0; i < length; i ++) + for (i = 0; i < length-2; i ++) if (isprint(message[i])) dprintf("[%02x%c]", message[i], message[i]); else dprintf("[%02x ]", message[i]); dprintf("\n"); - memset(data->SMSMessage, 0, sizeof(GSM_SMSMessage)); - - /* Number of SMS in folder */ - data->SMSMessage->Number = message[7]; - - /* MessageType/FolderID */ - data->SMSMessage->MemoryType = message[5]; + dprintf("Message: Getting SMS %i " , data->SMSMessage->Location); + dprintf("in Folder %i\n", data->SMSMessage->Destination); + if (message[5] != data->SMSMessage->Destination) { + dprintf("Invalid SMS location (Folder)\n"); + return GE_INVALIDSMSLOCATION; + } + if ((message[6] * 256 + message[7]) != data->SMSMessage->Location) { + dprintf("Invalid SMS location (ID)\n"); + return GE_INVALIDSMSLOCATION; + } - /* Short Message status */ - data->SMSMessage->Status = message[4]; - dprintf("\tStatus: "); - switch (data->SMSMessage->Status) { - case SMS_Read: - dprintf("READ\n"); - break; - case SMS_Unread: - dprintf("UNREAD\n"); - break; - case SMS_Sent: - dprintf("SENT\n"); - break; - case SMS_Unsent: - dprintf("UNSENT\n"); - break; - default: - dprintf("UNKNOWN\n"); - break; - } - /* See if message# is given back by phone. If not and status is unread */ - /* we want it, if status is not unread it's a "random" message given back */ - /* by the phone because we want a message of which the # doesn't exist */ - found = false; - for (i = 0; i < data->SMSFolder->number; i++) { - if (data->SMSMessage->Number == data->SMSFolder->locations[i]) - found = true; - } - if (found==false && data->SMSMessage->Status != SMS_Unread) return GE_INVALIDSMSLOCATION; + /* Status see nk7110.txt */ + data->SMSMessage->Status = message[4]; - DecodePDUSMS(message, data->SMSMessage, length); + if (message[8]==0x01) data->SMSMessage->Type = SMS_Deliver_Report; + offset=4; + if (data->SMSMessage->Status == SMS_MO_SENT) offset=5; + off = 0; + if (message[9+12] & 0x40) { /* UDH header available */ + off = (message[9+31+offset] + 1); /* Length of UDH header */ + + dprintf(" UDH header available (length %i)\n",off); + } + + DecodeSMSHeader(message, length, data->SMSMessage, 9, offset); + DecodeTextSMS(message, length, data->SMSMessage, 9, offset, off); + break; - - /* get list of SMS pictures */ - case 0x97: - dprintf("Getting list of SMS pictures...\n"); - for (i = 0; i < length; i ++) - if (isprint(message[i])) - dprintf("[%02x%c]", message[i], message[i]); - else - dprintf("[%02x ]", message[i]); - dprintf("\n"); - break; + default: - for (i = 0; i < length; i ++) + for (i = 0; i < length-2; i ++) if (isprint(message[i])) dprintf("[%02x%c]", message[i], message[i]); else dprintf("[%02x ]", message[i]); dprintf("\n"); dprintf("Message: Unknown message of type 14 : %d length: %d\n", message[3], length); - return GE_UNKNOWN; + break; } +#endif return GE_NONE; } static GSM_Error P7110_GetSMS(GSM_Data *data, GSM_Statemachine *state) { - unsigned char req_folders[] = {FBUS_FRAME_HEADER, 0x7a, 0x00, 0x00}; - unsigned char req_status[] = {FBUS_FRAME_HEADER, 0x6b, - 0x08, // Folder ID - 0x0f, 0x01}; - unsigned char req_sms[] = {FBUS_FRAME_HEADER, 0x07, + unsigned char req[] = {FBUS_FRAME_HEADER, 0x07, 0x08, // FolderID 0x00, 0x01, // Location 0x01, 0x65, 0x01}; - unsigned char req_list[] = {FBUS_FRAME_HEADER, 0x96, - 0x09, /* location */ - 0x0f, 0x07}; - GSM_Error error; - - /* just testiung picture listing */ - req_list[4] = data->SMSMessage->MemoryType; - if (SM_SendMessage(state, 7, 0x14, req_list) != GE_NONE) return GE_NOTREADY; - error = SM_Block(state, data, 0x14); - - /* see if the message we want is from the last read folder, i.e. */ - /* we don't have to get folder status again */ - if (data->SMSMessage->MemoryType != data->SMSFolder->FolderID) { - - dprintf("Getting list of SMS folders...\n"); - if (SM_SendMessage(state, 6, 0x14, req_folders) != GE_NONE) return GE_NOTREADY; - error = SM_Block(state, data, 0x14); - - if (data->SMSMessage->MemoryType > data->SMSFolderList->FolderID[data->SMSFolderList->number-1]) - return GE_INVALIDMEMORYTYPE; - data->SMSFolder->FolderID = data->SMSMessage->MemoryType; - req_status[4] = data->SMSMessage->MemoryType; - - dprintf("Getting entries for SMS folder %i...\n", data->SMSMessage->MemoryType); - if (SM_SendMessage(state, 7, 0x14, req_status) != GE_NONE) return GE_NOTREADY; - error = SM_Block(state, data, 0x14); - } - + dprintf("Getting SMS...\n"); - req_sms[4] = data->SMSMessage->MemoryType; - req_sms[6] = data->SMSMessage->Number; - if (SM_SendMessage(state, 10, 0x14, req_sms) != GE_NONE) return GE_NOTREADY; + req[4] = data->SMSMessage->MemoryType; + req[6] = data->SMSMessage->Location; + if (SM_SendMessage(state, 10, 0x14, req) != GE_NONE) return GE_NOTREADY; return SM_Block(state, data, 0x14); } -static GSM_Error P7110_GetPicture(GSM_Data *data, GSM_Statemachine *state) -{ - unsigned char req_list[] = {FBUS_FRAME_HEADER, 0x96, - 0x09, /* location */ - 0x0f, 0x07}; - if (SM_SendMessage(state, 7, 0x14, req_list) != GE_NONE) return GE_NOTREADY; - return SM_Block(state, data, 0x14); -} -#if 0 static GSM_Error P7110_GetSMSFolders(GSM_Data *data, GSM_Statemachine *state) { unsigned char req[] = {FBUS_FRAME_HEADER, 0x7A, 0x00, 0x00}; @@ -809,67 +787,39 @@ static GSM_Error P7110_GetSMSFolders(GSM_Data *data, GSM_Statemachine *state) static GSM_Error P7110_GetSMSFolderStatus(GSM_Data *data, GSM_Statemachine *state) { +#if 0 unsigned char req[] = {FBUS_FRAME_HEADER, 0x6B, 0x08, // Folder ID 0x0F, 0x01}; - req[4] = data->SMSFolder->FolderID; + req[4] = data->OneSMSFolder->FolderID; dprintf("Getting SMS Folder Status...\n"); if (SM_SendMessage(state, 7, 0x14, req) != GE_NONE) return GE_NOTREADY; return SM_Block(state, data, 0x14); -} #endif - -static GSM_Error P7110_SendSMS(GSM_Data *data, GSM_Statemachine *state) -{ - GSM_Error e; - unsigned char req[256] = {FBUS_FRAME_HEADER, 0x01, 0x02, 0x00}; - int length, i; - - if (data->SMSMessage->MessageCenter.No) { - data->MessageCenter = &data->SMSMessage->MessageCenter; - P7110_GetSMSCenter(data, state); - } - - length = EncodePDUSMS(data->SMSMessage, req); - if (!length) return GE_SMSWRONGFORMAT; - dprintf("Sending SMS...(%d)\n", length); - for (i = 0; i < length; i++) { - dprintf("%02x ", req[i]); - } - dprintf("\n"); - if (SM_SendMessage(state, length, 0x02, req) != GE_NONE) return GE_NOTREADY; - while (1) { - e = SM_Block(state, data, 0x02); - if (e == GE_SMSSENDOK || e == GE_SMSSENDFAILED) break; - } - return e; + return GE_NONE; } static GSM_Error P7110_IncomingSMS(int messagetype, unsigned char *message, int length, GSM_Data *data) { GSM_Error e = GE_NONE; int digits, bytes; - - if (!data) return GE_INTERNALERROR; + + if (!data || !data->MessageCenter) return GE_INTERNALERROR; switch (message[3]) { case P7110_SUBSMS_SMSC_RCVD: - dprintf("SMSC Received\n"); /* FIXME: Implement all these in gsm-sms.c */ data->MessageCenter->No = message[4]; data->MessageCenter->Format = message[6]; data->MessageCenter->Validity = message[8]; /* due to changes in format */ + digits = message[9]; bytes = message[21] - 1; sprintf(data->MessageCenter->Name, "%s", message + 33); - strcpy(data->MessageCenter->Recipient, GetBCDNumber(message+9)); - strcpy(data->MessageCenter->Number, GetBCDNumber(message+21)); - data->MessageCenter->Type = message[22]; - if (strlen(data->MessageCenter->Recipient) == 0) { sprintf(data->MessageCenter->Recipient, "(none)"); } @@ -881,17 +831,8 @@ static GSM_Error P7110_IncomingSMS(int messagetype, unsigned char *message, int } break; - case P7110_SUBSMS_SMS_SENT: - dprintf("SMS sent\n"); - e = GE_SMSSENDOK; - break; - case P7110_SUBSMS_SEND_FAIL: - dprintf("SMS sending failed\n"); - e = GE_SMSSENDFAILED; - break; - case P7110_SUBSMS_SMS_RCVD: case P7110_SUBSMS_CELLBRD_OK: case P7110_SUBSMS_CELLBRD_FAIL: @@ -902,7 +843,6 @@ static GSM_Error P7110_IncomingSMS(int messagetype, unsigned char *message, int dprintf("Subtype 0x%02x of type 0x%02x (SMS handling) not implemented\n", message[3], P7110_MSG_SMS); e = GE_NOTIMPLEMENTED; break; - default: dprintf("Unknown subtype of type 0x%02x (SMS handling): 0x%02x\n", P7110_MSG_SMS, message[3]); e = GE_UNKNOWN; @@ -1514,7 +1454,7 @@ static GSM_Error P7110_GetSpeedDial(GSM_Data *data, GSM_Statemachine *state) static GSM_Error P7110_GetSMSCenter(GSM_Data *data, GSM_Statemachine *state) { GSM_Error error; - unsigned char req[] = {FBUS_FRAME_HEADER, P7110_SUBSMS_GET_SMSC, 0x64, 0x00}; + unsigned char req[2000] = {FBUS_FRAME_HEADER, P7110_SUBSMS_GET_SMSC, 0x64, 0x00}; req[5] = data->MessageCenter->No; @@ -1527,7 +1467,7 @@ static GSM_Error P7110_GetSMSCenter(GSM_Data *data, GSM_Statemachine *state) static GSM_Error P7110_GetClock(char req_type, GSM_Data *data, GSM_Statemachine *state) { GSM_Error error; - unsigned char req[] = {FBUS_FRAME_HEADER, req_type}; + unsigned char req[2000] = {FBUS_FRAME_HEADER, req_type}; if (SM_SendMessage(state, 4, P7110_MSG_CLOCK, req) != GE_NONE) return GE_NOTREADY; error = SM_Block(state, data, P7110_MSG_CLOCK); @@ -1538,8 +1478,8 @@ static GSM_Error P7110_GetClock(char req_type, GSM_Data *data, GSM_Statemachine static GSM_Error P7110_GetCalendarNote(GSM_Data *data, GSM_Statemachine *state) { GSM_Error error = GE_NOTREADY; - unsigned char req[] = {FBUS_FRAME_HEADER, P7110_SUBCAL_GET_NOTE, 0x00, 0x00}; - unsigned char date[] = {FBUS_FRAME_HEADER, P7110_SUBCLO_GET_DATE}; + unsigned char req[2000] = {FBUS_FRAME_HEADER, P7110_SUBCAL_GET_NOTE, 0x00, 0x00}; + unsigned char date[2000] = {FBUS_FRAME_HEADER, P7110_SUBCLO_GET_DATE}; GSM_Data tmpdata; GSM_DateTime tmptime;