5 A Linux/Unix toolset and driver for Nokia mobile phones.
7 Released under the terms of the GNU GPL, see file COPYING for more details.
9 Header file for the various functions, definitions etc. used to implement
10 the handset interface. See fbus-6110.c for more details.
19 /* Nokia 6110 supports phonebook entries of max. 16 characters and numbers of
21 #define N6110_MAX_PHONEBOOK_NAME_LENGTH (16)
22 #define N6110_MAX_PHONEBOOK_NUMBER_LENGTH (30)
24 /* Alternate defines for memory types. Two letter codes follow GSM 07.07
25 release 6.2.0, AT+CPBS "Select Phonebook Memory Storage" */
26 #define N6110_MEMORY_MT 0x01 /* combined ME and SIM phonebook */
27 #define N6110_MEMORY_ME 0x02 /* ME (Mobile Equipment) phonebook */
28 #define N6110_MEMORY_SM 0x03 /* SIM phonebook */
29 #define N6110_MEMORY_FD 0x04 /* SIM fixdialling-phonebook */
30 #define N6110_MEMORY_ON 0x05 /* SIM (or ME) own numbers list */
31 #define N6110_MEMORY_EN 0x06 /* SIM (or ME) emergency number */
32 #define N6110_MEMORY_DC 0x07 /* ME dialled calls list */
33 #define N6110_MEMORY_RC 0x08 /* ME received calls list */
34 #define N6110_MEMORY_MC 0x09 /* ME missed (unanswered received) calls list */
35 #define N6110_MEMORY_VOICE 0x0b /* Voice Mailbox */
36 #define N6110_MEMORY_XX 0xff /* This is used when the memory type is unknown. */
38 /* This byte is used to synchronize FBUS channel over cable or IR. */
39 #define N6110_SYNC_BYTE 0x55
41 /* This byte is send after all N6110_SYNC_BYTE bytes when init infrared. */
42 #define N6110_IR_END_SYNC_BYTE 0xc1
44 /* Every (well, almost every) frame from the computer starts with this
46 #define N6110_FRAME_HEADER 0x00, 0x01, 0x00
48 /* Global variables */
49 extern bool N6110_LinkOK;
50 extern GSM_Functions N6110_Functions;
51 extern GSM_Information N6110_Information;
53 /* Prototypes for the functions designed to be used externally. */
54 GSM_Error N6110_Initialise(char *port_device, char *initlength,
55 GSM_ConnectionType connection,
56 void (*rlp_callback)(RLP_F96Frame *frame));
58 void N6110_DispatchMessage(u16 MessageLength, u8 *MessageBuffer,
61 GSM_Error N6110_SendStatusRequest(void);
63 int N6110_GetMemoryType(GSM_MemoryType memory_type);
65 GSM_Error N6110_GetVoiceMailbox ( GSM_PhonebookEntry *entry);
67 GSM_Error N6110_GetOperatorName ( GSM_Network *operator);
68 GSM_Error N6110_SetOperatorName ( GSM_Network *operator);
70 GSM_Error N6110_GetMemoryLocation(GSM_PhonebookEntry *entry);
71 GSM_Error N6110_WritePhonebookLocation(GSM_PhonebookEntry *entry);
73 GSM_Error N6110_GetSpeedDial(GSM_SpeedDial *entry);
74 GSM_Error N6110_SetSpeedDial(GSM_SpeedDial *entry);
76 GSM_Error N6110_GetMemoryStatus(GSM_MemoryStatus *Status);
77 GSM_Error N6110_GetSMSStatus(GSM_SMSStatus *Status);
78 GSM_Error N6110_GetSMSCenter(GSM_MessageCenter *MessageCenter);
80 GSM_Error N6110_GetSMSMessage(GSM_SMSMessage *Message);
81 GSM_Error N6110_DeleteSMSMessage(GSM_SMSMessage *Message);
82 GSM_Error N6110_SendSMSMessage(GSM_SMSMessage *Message);
83 GSM_Error N6110_SaveSMSMessage(GSM_SMSMessage *Message);
85 GSM_Error N6110_GetRFLevel(GSM_RFUnits *units, float *level);
86 GSM_Error N6110_GetBatteryLevel(GSM_BatteryUnits *units, float *level);
87 GSM_Error N6110_GetPowerSource(GSM_PowerSource *source);
88 GSM_Error N6110_GetDisplayStatus(int *Status);
90 GSM_Error N6110_EnterSecurityCode(GSM_SecurityCode SecurityCode);
91 GSM_Error N6110_GetSecurityCodeStatus(int *Status);
92 GSM_Error N6110_GetSecurityCode(GSM_SecurityCode *SecurityCode);
94 GSM_Error N6110_GetSMSCenter(GSM_MessageCenter *MessageCenter);
95 GSM_Error N6110_SetSMSCenter(GSM_MessageCenter *MessageCenter);
97 GSM_Error N6110_GetIMEI(char *imei);
98 GSM_Error N6110_GetRevision(char *revision);
99 GSM_Error N6110_GetModel(char *model);
100 GSM_Error N6110_GetManufacturer(char *manufacturer);
102 GSM_Error N6110_GetDateTime(GSM_DateTime *date_time);
103 GSM_Error N6110_SetDateTime(GSM_DateTime *date_time);
105 GSM_Error N6110_PrivGetDateTime(GSM_DateTime *date_time, int msgtype);
106 GSM_Error N6110_PrivSetDateTime(GSM_DateTime *date_time, int msgtype);
108 GSM_Error N6110_GetAlarm(int alarm_number, GSM_DateTime *date_time);
109 GSM_Error N6110_SetAlarm(int alarm_number, GSM_DateTime *date_time);
111 GSM_Error N6110_PrivGetAlarm(int alarm_number, GSM_DateTime *date_time, int msgtype);
112 GSM_Error N6110_PrivSetAlarm(int alarm_number, GSM_DateTime *date_time, int msgtype);
114 GSM_Error N6110_DialVoice(char *Number);
115 GSM_Error N6110_DialData(char *Number, char type, void (* callpassup)(char c));
116 GSM_Error N6110_AnswerCall(char s);
118 GSM_Error N6110_GetIncomingCallNr(char *Number);
120 GSM_Error N6110_SendBitmap(char *NetworkCode, int width, int height,
121 unsigned char *bitmap);
122 GSM_Error N6110_GetNetworkInfo(GSM_NetworkInfo *NetworkInfo);
124 GSM_Error N6110_GetCalendarNote(GSM_CalendarNote *CalendarNote);
125 GSM_Error N6110_WriteCalendarNote(GSM_CalendarNote *CalendarNote);
126 GSM_Error N6110_DeleteCalendarNote(GSM_CalendarNote *CalendarNote);
128 GSM_Error N6110_NetMonitor(unsigned char mode, char *Screen);
130 GSM_Error N6110_PlayTone(int Herz, u8 Volume);
132 GSM_Error N6110_SetBitmap( GSM_Bitmap *Bitmap );
133 GSM_Error N6110_GetBitmap( GSM_Bitmap *Bitmap );
135 GSM_Error N6110_SetRingTone(GSM_Ringtone *ringtone, int *maxlength);
136 GSM_Error N6110_SetBinRingTone(GSM_BinRingtone *ringtone);
137 GSM_Error N6110_GetBinRingTone(GSM_BinRingtone *ringtone);
139 GSM_Error N6110_EnableDisplayOutput();
140 GSM_Error N6110_DisableDisplayOutput();
142 GSM_Error N6110_EnableCellBroadcast ();
143 GSM_Error N6110_DisableCellBroadcast(void);
144 GSM_Error N6110_ReadCellBroadcast (GSM_CBMessage *Message);
146 GSM_Error N6110_SendDTMF(char *String);
148 GSM_Error N6110_Reset(unsigned char type);
150 GSM_Error N6110_GetProfile(GSM_Profile *Profile);
151 GSM_Error N6110_SetProfile(GSM_Profile *Profile);
152 bool N6110_SendRLPFrame(RLP_F96Frame *frame, bool out_dtx);
154 GSM_Error N6110_CancelCall(void);
156 GSM_Error N6110_PressKey(int key, int event);
158 GSM_Error N6110_GetProductProfileSetting (GSM_PPS *PPS);
159 GSM_Error N6110_SetProductProfileSetting (GSM_PPS *PPS);
161 GSM_Error N6110_CallDivert(GSM_CallDivert *cd);
163 void N6110_RX_HandleRLPMessage(u8 *MessageBuffer);
165 GSM_Error N6110_SendIMEIFrame();
166 GSM_Error N6110_SendIDFrame();
167 GSM_Error N6110_SendHWFrame();
169 GSM_Error N6110_EnableExtendedCommands (unsigned char status);
171 GSM_Error N6110_Tests();
173 void N6110_DisplayTestsInfo(u8 *MessageBuffer);
175 GSM_Error N6110_SimlockInfo(GSM_AllSimlocks *siml);
\r
176 GSM_Error N6110_GetSMSFolders ( GSM_SMSFolders *folders);
178 GSM_Error N6110_ResetPhoneSettings();
180 void N6110_Dispatch0x01Message(u16 MessageLength, u8 *MessageBuffer, u8 MessageType);
182 void N6110_ReplySendSMSMessage(u16 MessageLength, u8 *MessageBuffer, u8 MessageType);
183 void N6110_ReplySetSMSCenter (u16 MessageLength, u8 *MessageBuffer, u8 MessageType);
184 void N6110_ReplyGetSMSCenter (u16 MessageLength, u8 *MessageBuffer, u8 MessageType);
185 void N6110_Dispatch0x02Message(u16 MessageLength, u8 *MessageBuffer, u8 MessageType);
186 void N6110_ReplySetCellBroadcast (u16 MessageLength, u8 *MessageBuffer, u8 MessageType);
187 void N6110_ReplyReadCellBroadcast(u16 MessageLength, u8 *MessageBuffer, u8 MessageType);
189 void N6110_ReplyCallDivert (u16 MessageLength, u8 *MessageBuffer, u8 MessageType);
190 void N6110_Dispatch0x06Message(u16 MessageLength, u8 *MessageBuffer, u8 MessageType);
192 void N6110_ReplySetDateTime(u16 MessageLength,u8 *MessageBuffer, u8 MessageType);
193 void N6110_ReplyGetDateTime(u16 MessageLength,u8 *MessageBuffer, u8 MessageType);
194 void N6110_ReplySetAlarm (u16 MessageLength,u8 *MessageBuffer, u8 MessageType);
195 void N6110_ReplyGetAlarm (u16 MessageLength,u8 *MessageBuffer, u8 MessageType);
197 void N6110_ReplyEnableExtendedCommands (u16 MessageLength,u8 *MessageBuffer,u8 MessageType);
198 void N6110_ReplyResetPhoneSettings (u16 MessageLength,u8 *MessageBuffer,u8 MessageType);
199 void N6110_ReplyIMEI (u16 MessageLength,u8 *MessageBuffer,u8 MessageType);
200 void N6110_ReplyGetProductProfileSetting(u16 MessageLength,u8 *MessageBuffer,u8 MessageType);
201 void N6110_ReplySetProductProfileSetting(u16 MessageLength,u8 *MessageBuffer,u8 MessageType);
202 void N6110_ReplyNetmonitor (u16 MessageLength,u8 *MessageBuffer,u8 MessageType);
203 void N6110_ReplySimlockInfo (u16 MessageLength,u8 *MessageBuffer,u8 MessageType);
204 void N6110_ReplyPlayTone (u16 MessageLength,u8 *MessageBuffer,u8 MessageType);
205 void N6110_ReplyHW (u16 MessageLength,u8 *MessageBuffer,u8 MessageType);
206 void N6110_Dispatch0x40Message (u16 MessageLength,u8 *MessageBuffer,u8 MessageType);
208 void N6110_DispatchACKMessage (u16 MessageLength, u8 *MessageBuffer, u8 MessageType);
209 void N6110_ReplyID(u16 MessageLength, u8 *MessageBuffer, u8 MessageType);
211 GSM_Error GSM_EncodeNokiaSMSFrame(GSM_SMSMessage *SMS, unsigned char *req, int *length, SMS_MessageType PDU);
212 GSM_Error GSM_DecodeNokiaSMSFrame(GSM_SMSMessage *SMS, unsigned char *req, int length);
214 int N6110_MakeCallerGroupFrame (unsigned char *req,GSM_Bitmap Bitmap);
215 int N6110_MakeOperatorLogoFrame(unsigned char *req,GSM_Bitmap Bitmap);
216 int N6110_MakeStartupLogoFrame (unsigned char *req,GSM_Bitmap Bitmap);
218 #endif /* __n_6110_h */