24
|
1 |
// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
|
|
2 |
// All rights reserved.
|
|
3 |
// This component and the accompanying materials are made available
|
|
4 |
// under the terms of "Eclipse Public License v1.0"
|
|
5 |
// which accompanies this distribution, and is available
|
|
6 |
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
|
7 |
//
|
|
8 |
// Initial Contributors:
|
|
9 |
// Nokia Corporation - initial contribution.
|
|
10 |
//
|
|
11 |
// Contributors:
|
|
12 |
//
|
|
13 |
// Description:
|
|
14 |
//
|
|
15 |
|
|
16 |
#ifndef TSMSSTORETSYTESTHELPER_H
|
|
17 |
#define TSMSSTORETSYTESTHELPER_H
|
|
18 |
|
|
19 |
|
|
20 |
#include "ttsytesthelperbase.h"
|
|
21 |
|
|
22 |
|
|
23 |
/* This PDU can be decoded with the utility such as PDU spy
|
|
24 |
PDU LENGTH IS 113 BYTES
|
|
25 |
NO SMSC ADDRESS PRESENT
|
|
26 |
MESSAGE HEADER FLAGS
|
|
27 |
MESSAGE TYPE : SMS DELIVER
|
|
28 |
MSGS WAITING IN SC : NO
|
|
29 |
SEND STATUS REPORT : YES
|
|
30 |
USER DATA HEADER : NO UDH
|
|
31 |
REPLY PATH : NO
|
|
32 |
|
|
33 |
ORIGINATING ADDRESS
|
|
34 |
NUMBER IS : 01632960000
|
|
35 |
TYPE OF NR. : International
|
|
36 |
NPI : ISDN/Telephone (E.164/163)
|
|
37 |
|
|
38 |
PROTOCOL IDENTIFIER (0x00)
|
|
39 |
MESSAGE ENTITIES : SME-to-SME
|
|
40 |
PROTOCOL USED : Implicit / SC-specific
|
|
41 |
|
|
42 |
DATA CODING SCHEME (0x00)
|
|
43 |
AUTO-DELETION : OFF
|
|
44 |
COMPRESSION : OFF
|
|
45 |
MESSAGE CLASS : NONE
|
|
46 |
ALPHABET USED : 7bit default
|
|
47 |
|
|
48 |
SMSC TIMESTAMP : 10/09/07 17:15 GMT+1.00
|
|
49 |
|
|
50 |
USER DATA PART OF SM
|
|
51 |
USER DATA LENGTH : 107 septets
|
|
52 |
USER DATA (TEXT) : TravelAlert 17:15: Nrthrn: Minor delays
|
|
53 |
on the H Barnet branch due to a
|
|
54 |
passenger incident at FinchleyCntl.
|
|
55 |
*/
|
|
56 |
_LIT8(KValidSmsPdu1, "\x24\x0c\x91\x44\x77\x79\x08\x80\x25\x00\x00\x70\x90\x01\x71\x51\x81\x40\x6b\x54\x79\xd8\x5e\x66\x07\xd9\x65\x39\x1d\x14\xbb\xe9\x62\x35\x1d\xc8\x29\xa7\xa3\xe5\x6e\x1d\xa8\x99\x76\xbf\xe5\x20\x72\x99\x1d\xce\xcf\x41\x6f\x37\x88\x8e\x2e\x83\x90\x20\x61\x58\xee\x2e\xd3\x41\x62\x79\xd8\x3d\x46\x83\xc8\xf5\x32\x88\xfe\x06\x85\x41\xf0\xf0\x7c\x5e\x76\x9f\xcb\x72\x50\xda\x3d\x4e\x93\xcb\x6e\x3a\x28\x4c\x07\x19\xd3\xee\x31\x9a\x5d\xce\x0f\xdd\x74\xb6\x0b");
|
|
57 |
|
|
58 |
|
|
59 |
class TSmsStoreTsyTestHelper : public TTsyTestHelperBase
|
|
60 |
{
|
|
61 |
public:
|
|
62 |
TSmsStoreTsyTestHelper(CCTSYIntegrationTestSuiteStepBase& aTestStep);
|
|
63 |
|
|
64 |
void WaitForSmsStoreNotifyStoreEvent(RMobileSmsStore& aStore,
|
|
65 |
TEtelRequestBase& aRequestStatus,
|
|
66 |
TUint32 aEvent,
|
|
67 |
TUint32 aExpectedEvent,
|
|
68 |
TInt aIndex,
|
|
69 |
TInt aExpectedStatus = KErrNone);
|
|
70 |
|
|
71 |
// Utility functions
|
|
72 |
void GsmLibCharConversion( TUint aDirection,
|
|
73 |
TDes8& aString,
|
|
74 |
TUint16 aLength );
|
|
75 |
|
|
76 |
TUint16 GsmLibSmsPackMessage( TDes8& aDest,
|
|
77 |
TDes8& aSrc,
|
|
78 |
TUint16 aByteCount );
|
|
79 |
|
|
80 |
void GsmConvUnicodeTo0340Addr( TUint8 aTon,
|
|
81 |
TUint8 aNpi,
|
|
82 |
TDes8& aDest,
|
|
83 |
TDesC16& aSource );
|
|
84 |
|
|
85 |
void GsmConvUnicodeToAddr( TUint8 aTon,
|
|
86 |
TUint8 aNpi,
|
|
87 |
TDes8& aDest,
|
|
88 |
TDesC16& aSource,
|
|
89 |
TBool a0340Address );
|
|
90 |
|
|
91 |
void GsmUnicodeAddrToAlphanumericAddr( TDesC16& aSource,
|
|
92 |
TDes8& aDestination,
|
|
93 |
TUint8& aAmountOfSemiOctets );
|
|
94 |
|
|
95 |
enum TDataCodingScheme
|
|
96 |
{
|
|
97 |
ENoDataCodingScheme = 0x00,
|
|
98 |
EClass0DataCodingScheme = 0x10,
|
|
99 |
EClass1DataCodingScheme = 0x11,
|
|
100 |
EClass2DataCodingScheme = 0x12,
|
|
101 |
EClass3DataCodingScheme = 0x13
|
|
102 |
};
|
|
103 |
|
|
104 |
void CreateValidSmsPdu(TDes8& aString, TDesC16& aPhoneNumber, TDes8& aPdu,
|
|
105 |
TDataCodingScheme aDataCodingScheme = ENoDataCodingScheme,
|
|
106 |
TBool aStatusReportRequest = EFalse);
|
|
107 |
TUint8 GsmLibPackAlphanumericAddress( TDes8& aDest, TDes8& aSource );
|
|
108 |
TBool ToText(TDes &aRet,const TDesC8 &aOrigin,TBool aIsRecv);
|
|
109 |
TBool EnsureStoreFullL(RMobileSmsStore& aSmsStore);
|
|
110 |
|
|
111 |
|
|
112 |
}; // class TSmsStoreTsyTestHelper
|
|
113 |
|
|
114 |
|
|
115 |
#define COUNT_ONE 1
|
|
116 |
#define MAX_CONTEXTS 11
|
|
117 |
|
|
118 |
|
|
119 |
const TUint TKGsmLibConvertToGsmFormat = 1;
|
|
120 |
const TUint TKGsmLibConvertToNmpFormat = 2;
|
|
121 |
/** Maximum amount of digits in address data */
|
|
122 |
const TUint8 KMaxLengthOfAddressData = 10;
|
|
123 |
|
|
124 |
const TUint8 KMaxAmountOfDigits = 20;
|
|
125 |
|
|
126 |
typedef struct
|
|
127 |
{
|
|
128 |
TUint8 iSmsChar;
|
|
129 |
TUint8 iHandsetChar;
|
|
130 |
} GsmLibConv;
|
|
131 |
|
|
132 |
typedef struct
|
|
133 |
{
|
|
134 |
TUint8 iGsmChar;
|
|
135 |
TUint16 iUnicodeChar;
|
|
136 |
} TGsmLibConv;
|
|
137 |
|
|
138 |
/**
|
|
139 |
* The number of codes that exist in
|
|
140 |
* both character sets (GSM <--> NMP),
|
|
141 |
* i.e. bidirectional conversions.
|
|
142 |
*/
|
|
143 |
const TUint8 TKGsmLibBidirTableSize = 34;
|
|
144 |
|
|
145 |
/**
|
|
146 |
* The number of all conversion pairs,
|
|
147 |
* both GSM <--> NMP and NMP --> substitute.
|
|
148 |
*/
|
|
149 |
const TUint8 TKGsmLibConvTableSize = 86;
|
|
150 |
|
|
151 |
|
|
152 |
const TUint8 TKGsmExtensionConvTableSize = 8;
|
|
153 |
static const GsmLibConv TKGsmExtensionConvTable[TKGsmExtensionConvTableSize] =
|
|
154 |
{
|
|
155 |
/*1*/ { 0x3C, 0x5B }, // [ //
|
|
156 |
/*2*/ { 0x2F, 0x5C }, // \ //
|
|
157 |
/*3*/ { 0x3E, 0x5D }, // ] //
|
|
158 |
/*4*/ { 0x14, 0x5E }, // ^ //
|
|
159 |
/*5*/ { 0x28, 0x7B }, // { //
|
|
160 |
/*6*/ { 0x40, 0x7C }, // | //
|
|
161 |
/*7*/ { 0x29, 0x7D }, // } //
|
|
162 |
/*8*/ { 0x3D, 0x7E } // ~ //
|
|
163 |
};
|
|
164 |
|
|
165 |
const TUint8 KGsmExtensionConvTableSize = 10;
|
|
166 |
const TUint8 KGsmLibConvTableSize = 92;
|
|
167 |
|
|
168 |
static const TGsmLibConv KGsmExtensionConvTable[
|
|
169 |
KGsmExtensionConvTableSize ] =
|
|
170 |
{
|
|
171 |
{ 0x0A, 0x000A }, /* Convert Page Break to Line Feed*/
|
|
172 |
{ 0x3C, 0x005B }, /* [ */
|
|
173 |
{ 0x2F, 0x005C }, /* \ */
|
|
174 |
{ 0x3E, 0x005D }, /* ] */
|
|
175 |
{ 0x14, 0x005E }, /* ^ */
|
|
176 |
{ 0x28, 0x007B }, /* { */
|
|
177 |
{ 0x40, 0x007C }, /* | */
|
|
178 |
{ 0x29, 0x007D }, /* } */
|
|
179 |
{ 0x3D, 0x007E }, /* ~ */
|
|
180 |
{ 0x65, 0x20AC } /* Euro currency symbol */
|
|
181 |
};
|
|
182 |
static const TGsmLibConv KGsmLibConvTable[ KGsmLibConvTableSize ] =
|
|
183 |
{
|
|
184 |
{ 0x20, 0x0020 },
|
|
185 |
// SPACE, this pair must be here at index #1 to avoid
|
|
186 |
// converting NMP(space) to GSM(0x11) or to GSM(0x1B)
|
|
187 |
// - see indeces 16 and 17 in the table below.
|
|
188 |
|
|
189 |
{ 0x00, 0x0040 }, /* @ */
|
|
190 |
{ 0x01, 0x00A3 }, /* */
|
|
191 |
{ 0x02, 0x0024 }, /* $ */
|
|
192 |
{ 0x03, 0x00A5 }, /* */
|
|
193 |
{ 0x04, 0x00E8 }, /* */
|
|
194 |
{ 0x05, 0x00E9 }, /* */
|
|
195 |
{ 0x06, 0x00F9 }, /* */
|
|
196 |
{ 0x07, 0x00EC }, /* */
|
|
197 |
{ 0x08, 0x00F2 }, /* */
|
|
198 |
{ 0x09, 0x00C7 }, /* */
|
|
199 |
{ 0x0A, 0x000A }, /* LF */
|
|
200 |
{ 0x0B, 0x00D8 }, /* */
|
|
201 |
{ 0x0C, 0x00F8 }, /* */
|
|
202 |
{ 0x0D, 0x000D }, /* CR */
|
|
203 |
{ 0x0E, 0x00C5 }, /* */
|
|
204 |
{ 0x0F, 0x00E5 }, /* */
|
|
205 |
{ 0x10, 0x0394 }, /* Greek: DELTA */
|
|
206 |
{ 0x11, 0x005F }, /* _ */
|
|
207 |
{ 0x12, 0x03A6 }, /* Greek: PHI */
|
|
208 |
{ 0x13, 0x0393 }, /* Greek: GAMMA */
|
|
209 |
{ 0x14, 0x039B }, /* Greek: LAMDA */
|
|
210 |
{ 0x15, 0x03A9 }, /* Greek: OMEGA */
|
|
211 |
{ 0x16, 0x03A0 }, /* Greek: PI */
|
|
212 |
{ 0x17, 0x03A8 }, /* Greek: PSI */
|
|
213 |
{ 0x18, 0x03A3 }, /* Greek: SIGMA */
|
|
214 |
{ 0x19, 0x0398 }, /* Greek: THETA */
|
|
215 |
{ 0x1A, 0x039E }, /* Greek: XI */
|
|
216 |
/*0x1B Extension code */
|
|
217 |
{ 0x1C, 0x00C6 }, /* */
|
|
218 |
{ 0x1D, 0x00E6 }, /* */
|
|
219 |
{ 0x1E, 0x00DF }, /* beta */
|
|
220 |
{ 0x1F, 0x00C9 }, /* */
|
|
221 |
/*0x20 SPACE */
|
|
222 |
{ 0x21, 0x0021 }, /* ! */
|
|
223 |
{ 0x22, 0x0022 }, /* " */
|
|
224 |
{ 0x23, 0x0023 }, /* # */
|
|
225 |
{ 0x24, 0x00A4 }, /* */
|
|
226 |
/*0x25 - 0x3F: Unicode and GSM sets are similar */
|
|
227 |
{ 0x40, 0x00A1 }, /* */
|
|
228 |
/*0x41 - 0x5A: A..Z */
|
|
229 |
{ 0x5B, 0x00C4 }, /* */
|
|
230 |
{ 0x5C, 0x00D6 }, /* */
|
|
231 |
{ 0x5D, 0x00D1 }, /* */
|
|
232 |
{ 0x5E, 0x00DC }, /* */
|
|
233 |
{ 0x5F, 0x00A7 }, /* */
|
|
234 |
{ 0x60, 0x00BF }, /* */
|
|
235 |
/*0x61 - 0x7A: a..z */
|
|
236 |
{ 0x7B, 0x00E4 }, /* */
|
|
237 |
{ 0x7C, 0x00F6 }, /* */
|
|
238 |
{ 0x7D, 0x00F1 }, /* */
|
|
239 |
{ 0x7E, 0x00FC }, /* */
|
|
240 |
{ 0x7F, 0x00E0 }, /* */
|
|
241 |
|
|
242 |
/**
|
|
243 |
* The characters in the list below can be found from 8bit Unicode set
|
|
244 |
* but not from GSM character set. Part of them are changed to spaces,
|
|
245 |
* part of them to the 'nearest' equivalent (by removing the acute/grave/
|
|
246 |
* tilde/etc. marks.
|
|
247 |
*/
|
|
248 |
{ 0x63, 0x00A2 }, /* Unicode: , GSM: c */
|
|
249 |
/* 0x5B-0x5E These chars can be found GSM extension table: [\]^*/
|
|
250 |
{ 0x20, 0x0060 }, /* Unicode: ', GSM: using SPACE */
|
|
251 |
/* 0x7B-0x7E These chars can be found GSM extension table: {|}~*/
|
|
252 |
{ 0x20, 0x007F }, /* Unicode: DEL, GSM: using SPACE */
|
|
253 |
/* 0x80...0xBF: see conversion methods */
|
|
254 |
{ 0x41, 0x00C0 }, /* Unicode: , GSM: A */
|
|
255 |
{ 0x41, 0x00C1 }, /* Unicode: , GSM: A */
|
|
256 |
{ 0x41, 0x00C2 }, /* Unicode: , GSM: A */
|
|
257 |
{ 0x41, 0x00C3 }, /* Unicode: , GSM: A */
|
|
258 |
/* 0xC4: */
|
|
259 |
/* 0xC5: */
|
|
260 |
/* 0xC6: */
|
|
261 |
/* 0xC7: */
|
|
262 |
{ 0x45, 0x00C8 }, /* Unicode: , GSM: E */
|
|
263 |
/* 0xC9: */
|
|
264 |
{ 0x45, 0x00CA }, /* Unicode: , GSM: E */
|
|
265 |
{ 0x45, 0x00CB }, /* Unicode: , GSM: E */
|
|
266 |
{ 0x49, 0x00CC }, /* Unicode: , GSM: I */
|
|
267 |
{ 0x49, 0x00CD }, /* Unicode: , GSM: I */
|
|
268 |
{ 0x49, 0x00CE }, /* Unicode: , GSM: I */
|
|
269 |
{ 0x49, 0x00CF }, /* Unicode: , GSM: I */
|
|
270 |
{ 0x44, 0x00D0 }, /* Unicode: D with line, GSM: D */
|
|
271 |
/* 0xD1: */
|
|
272 |
{ 0x4F, 0x00D2 }, /* Unicode: , GSM: O */
|
|
273 |
{ 0x4F, 0x00D3 }, /* Unicode: , GSM: O */
|
|
274 |
{ 0x4F, 0x00D4 }, /* Unicode: , GSM: O */
|
|
275 |
{ 0x4F, 0x00D5 }, /* Unicode: , GSM: O */
|
|
276 |
/* 0xD6: */
|
|
277 |
{ 0x78, 0x00D7 }, /* Unicode: , GSM: x */
|
|
278 |
/* 0xD8: */
|
|
279 |
{ 0x55, 0x00D9 }, /* Unicode: , GSM: U */
|
|
280 |
{ 0x55, 0x00DA }, /* Unicode: , GSM: U */
|
|
281 |
{ 0x55, 0x00DB }, /* Unicode: , GSM: U */
|
|
282 |
/* 0xDC: */
|
|
283 |
{ 0x59, 0x00DD }, /* Unicode: Y with ', GSM: Y */
|
|
284 |
{ 0x20, 0x00DE }, /* Unicode: Latin capital thorn, GSM: using SPACE*/
|
|
285 |
/* 0xDF: beta */
|
|
286 |
/* 0xE0: */
|
|
287 |
{ 0x61, 0x00E1 }, /* Unicode: , GSM: a */
|
|
288 |
{ 0x61, 0x00E2 }, /* Unicode: , GSM: a */
|
|
289 |
{ 0x61, 0x00E3 }, /* Unicode: , GSM: a */
|
|
290 |
/* 0xE4: */
|
|
291 |
/* 0xE5: */
|
|
292 |
/* 0xE6: */
|
|
293 |
{ 0x63, 0x00E7 }, /* Unicode: , GSM: c */
|
|
294 |
/* 0xE8: */
|
|
295 |
/* 0xE9: */
|
|
296 |
{ 0x65, 0x00EA }, /* Unicode: , GSM: e */
|
|
297 |
{ 0x65, 0x00EB }, /* Unicode: e with two dots, GSM: e */
|
|
298 |
/* 0xEC: */
|
|
299 |
{ 0x69, 0x00ED }, /* Unicode: , GSM: i */
|
|
300 |
{ 0x69, 0x00EE }, /* Unicode: , GSM: i */
|
|
301 |
{ 0x69, 0x00EF }, /* Unicode: , GSM: i */
|
|
302 |
{ 0x20, 0x00F0 }, /* Unicode: Latin small eth, GSM: using SPACE */
|
|
303 |
/* 0xF1: */
|
|
304 |
/* 0xF2: */
|
|
305 |
{ 0x6F, 0x00F3 }, /* NMP: , GSM: o */
|
|
306 |
{ 0x6F, 0x00F4 }, /* NMP: , GSM: o */
|
|
307 |
{ 0x6F, 0x00F5 }, /* NMP: , GSM: o */
|
|
308 |
/* 0xF6: */
|
|
309 |
{ 0x20, 0x00F7 }, /* Unicode: , GSM: using SPACE */
|
|
310 |
/* 0xF8: */
|
|
311 |
/* 0xF9: */
|
|
312 |
{ 0x75, 0x00FA }, /* Unicode: , GSM: u */
|
|
313 |
{ 0x75, 0x00FB }, /* Unicode: , GSM: u */
|
|
314 |
|
|
315 |
{ 0x79, 0x00FD }, /* Unicode: y with ', GSM: y */
|
|
316 |
{ 0x20, 0x00FE }, /* Unicode: Latin small thorn, GSM: using SPACE */
|
|
317 |
{ 0x79, 0x00FF } /* Unicode: y with two dots, GSM: y */
|
|
318 |
};
|
|
319 |
|
|
320 |
static const GsmLibConv TKGsmLibConvTable[ TKGsmLibConvTableSize ] =
|
|
321 |
{
|
|
322 |
/*1*/ { 0x20, 0x20 },
|
|
323 |
// SPACE, this pair must be here at index #1 to avoid
|
|
324 |
// converting NMP(space) to GSM(0x11) or to GSM(0x1B)
|
|
325 |
// - see indeces 16 and 17 in the table below.
|
|
326 |
|
|
327 |
/*2*/ { 0x00, 0x40 }, /* @ */
|
|
328 |
/*3*/ { 0x01, 0x1C }, /* */
|
|
329 |
/*4*/ { 0x02, 0x24 }, /* $ */
|
|
330 |
/*5*/ { 0x03, 0x5C }, /* */
|
|
331 |
/*6*/ { 0x04, 0xE8 }, /* */
|
|
332 |
/*7*/ { 0x05, 0xE9 }, /* */
|
|
333 |
/*8*/ { 0x06, 0xF9 }, /* */
|
|
334 |
/*9*/ { 0x07, 0xEC }, /* */
|
|
335 |
/*10*/ { 0x08, 0xF2 }, /* */
|
|
336 |
/*11*/ { 0x09, 0xC7 }, /* */
|
|
337 |
/* 0x0A: LF */
|
|
338 |
/*12*/ { 0x0B, 0xD8 }, /* */
|
|
339 |
/*13*/ { 0x0C, 0xF8 }, /* */
|
|
340 |
/* 0x0D: CR */
|
|
341 |
/*14*/ { 0x0E, 0xC5 }, /* */
|
|
342 |
/*15*/ { 0x0F, 0xE5 }, /* */
|
|
343 |
/* 0x10: NMP and GSM: delta */
|
|
344 |
/*16*/ { 0x11, 0x5F }, /* Underscore */
|
|
345 |
/*17*/ { 0x1B, 0x7B }, /* */
|
|
346 |
/* 0x12 - 0x1A: NMP and GSM: greek letters */
|
|
347 |
/*18*/ { 0x1C, 0xC6 }, /* */
|
|
348 |
/*19*/ { 0x1D, 0xE6 }, /* */
|
|
349 |
/*20*/ { 0x1E, 0xDF }, /* beta */
|
|
350 |
/*21*/ { 0x1F, 0xC9 }, /* */
|
|
351 |
/* 0x20: space */
|
|
352 |
/* 0x21: ! */
|
|
353 |
/* 0x22: " */
|
|
354 |
/* 0x23: # */
|
|
355 |
/*22*/ { 0x24, 0x1F }, /* */
|
|
356 |
/* 0x25 - 0x3F: NMP and GSM sets are similar */
|
|
357 |
/*23*/ { 0x40, 0x11 }, /* */
|
|
358 |
/* 0x41 - 0x5A: A..Z */
|
|
359 |
/*24*/ { 0x5B, 0xC4 }, /* */
|
|
360 |
/*25*/ { 0x5C, 0xD6 }, /* */
|
|
361 |
/*26*/ { 0x5D, 0xD1 }, /* */
|
|
362 |
/*27*/ { 0x5E, 0xDC }, /* */
|
|
363 |
/*28*/ { 0x5F, 0x1B }, /* */
|
|
364 |
/*29*/ { 0x60, 0x1D },
|
|
365 |
|
|
366 |
/*30*/ { 0x7B, 0xE4 }, /* */
|
|
367 |
/*31*/ { 0x7C, 0xF6 }, /* */
|
|
368 |
/*32*/ { 0x7D, 0xF1 }, /* */
|
|
369 |
/*33*/ { 0x7E, 0xFC },
|
|
370 |
/*34*/ { 0x7F, 0xE0 }, /* */
|
|
371 |
|
|
372 |
// The characters in the list below exist in NMP character set
|
|
373 |
// but not in GSM character set. Part of them are changed to spaces,
|
|
374 |
// part of them to the 'nearest' equivalent (by removing the acute/grave/
|
|
375 |
// tilde/etc. marks.
|
|
376 |
|
|
377 |
/*35*/ { 0x63, 0x1E }, /* NMP: , GSM: c */
|
|
378 |
/*36*/ { 0x20, 0x5B }, /* no equivalent in GSM char set, using SPACE */
|
|
379 |
/*37*/ { 0x20, 0x5D }, /* no equivalent in GSM char set, using SPACE */
|
|
380 |
/*38*/ { 0x10, 0x5E },
|
|
381 |
/* NMP: filled triangle, GSM: delta (unfilled triangle)*/
|
|
382 |
/*39*/ { 0x20, 0x5F }, /* NMP: _, GSM: SPACE */
|
|
383 |
/*40*/ { 0x20, 0x60 }, /* no equivalent in GSM char set, using SPACE*/
|
|
384 |
/*41*/ { 0x20, 0x7B }, /* no equivalent in GSM char set, using SPACE */
|
|
385 |
/*42*/ { 0x20, 0x7C }, /* no equivalent in GSM char set, using SPACE */
|
|
386 |
/*43*/ { 0x20, 0x7D }, /* no equivalent in GSM char set, using SPACE */
|
|
387 |
/*44*/ { 0x20, 0x7E }, /* no equivalent in GSM char set, using SPACE */
|
|
388 |
/*45*/ { 0x20, 0x7F }, /* no equivalent in GSM char set, using SPACE */
|
|
389 |
/* 0x20, 0x80...0xBF: see line *3000* in the function. */
|
|
390 |
/*46*/ { 0x41, 0xC0 }, /* NMP: , GSM: A */
|
|
391 |
/*47*/ { 0x41, 0xC1 }, /* NMP: , GSM: A */
|
|
392 |
/*48*/ { 0x41, 0xC2 }, /* NMP: , GSM: A */
|
|
393 |
/*49*/ { 0x41, 0xC3 }, /* NMP: , GSM: A */
|
|
394 |
/* 0xC4: */
|
|
395 |
/* 0xC5: */
|
|
396 |
/* 0xC6: */
|
|
397 |
/* 0xC7: */
|
|
398 |
/*50*/ { 0x45, 0xC8 }, /* NMP: , GSM: E */
|
|
399 |
/* 0xC9: */
|
|
400 |
/*51*/ { 0x45, 0xCA }, /* NMP: , GSM: E */
|
|
401 |
/*52*/ { 0x45, 0xCB }, /* NMP: , GSM: E */
|
|
402 |
/*53*/ { 0x49, 0xCC }, /* NMP: , GSM: I */
|
|
403 |
/*54*/ { 0x49, 0xCD }, /* NMP: , GSM: I */
|
|
404 |
/*55*/ { 0x49, 0xCE }, /* NMP: , GSM: I */
|
|
405 |
/*56*/ { 0x49, 0xCF }, /* NMP: , GSM: I */
|
|
406 |
/*57*/ { 0x45, 0xD0 }, /* NMP: E with tilde, GSM: E */
|
|
407 |
/* 0xD1: */
|
|
408 |
/*58*/ { 0x4F, 0xD2 }, /* NMP: , GSM: O */
|
|
409 |
/*59*/ { 0x4F, 0xD3 }, /* NMP: , GSM: O */
|
|
410 |
/*60*/ { 0x4F, 0xD4 }, /* NMP: , GSM: O */
|
|
411 |
/*61*/ { 0x4F, 0xD5 }, /* NMP: , GSM: O */
|
|
412 |
/* 0xD6: */
|
|
413 |
/*62*/ { 0x4F, 0xD7 }, /* NMP: , GSM: O */
|
|
414 |
/* 0xD8: */
|
|
415 |
/*63*/ { 0x55, 0xD9 }, /* NMP: , GSM: U */
|
|
416 |
/*64*/ { 0x55, 0xDA }, /* NMP: , GSM: U */
|
|
417 |
/*65*/ { 0x55, 0xDB }, /* NMP: , GSM: U */
|
|
418 |
/* 0xDC: */
|
|
419 |
/*66*/ { 0x20, 0xDD },
|
|
420 |
/* (dotted cursor) no equivalent in GSM, SPACE used */
|
|
421 |
/*67*/ { 0x77, 0xDE }, /* NMP: w with caret (^), GSM: w */
|
|
422 |
/* 0xDF: lower case beta */
|
|
423 |
/* 0xE0: */
|
|
424 |
/*68*/ { 0x61, 0xE1 }, /* NMP: , GSM: a */
|
|
425 |
/*69*/ { 0x61, 0xE2 }, /* NMP: , GSM: a */
|
|
426 |
/*70*/ { 0x61, 0xE3 }, /* NMP: , GSM: a */
|
|
427 |
/* 0xE4: */
|
|
428 |
/* 0xE5: */
|
|
429 |
/* 0xE6: */
|
|
430 |
/*71*/ { 0x63, 0xE7 }, /* NMP: , GSM: c */
|
|
431 |
/* 0xE8: */
|
|
432 |
/* 0xE9: */
|
|
433 |
/*72*/ { 0x65, 0xEA }, /* NMP: , GSM: e */
|
|
434 |
/*73*/ { 0x65, 0xEB }, /* NMP: e with two dots, GSM: e */
|
|
435 |
/* 0xEC: */
|
|
436 |
/*74*/ { 0x69, 0xED }, /* NMP: , GSM: i */
|
|
437 |
/*75*/ { 0x69, 0xEE }, /* NMP: , GSM: i */
|
|
438 |
/*76*/ { 0x69, 0xEF }, /* NMP: , GSM: i */
|
|
439 |
/*77*/ { 0x65, 0xF0 }, /* NMP: e with tidle (~), GSM: e */
|
|
440 |
/* 0xF1: */
|
|
441 |
/* 0xF2: */
|
|
442 |
/*78*/ { 0x6F, 0xF3 }, /* NMP: , GSM: o */
|
|
443 |
/*79*/ { 0x6F, 0xF4 }, /* NMP: , GSM: o */
|
|
444 |
/*80*/ { 0x6F, 0xF5 }, /* NMP: , GSM: o */
|
|
445 |
/* 0xF6: */
|
|
446 |
/*81*/ { 0x6F, 0xF7 }, /* NMP: , GSM: o */
|
|
447 |
/* 0xF8: */
|
|
448 |
/* 0xF9: */
|
|
449 |
/*82*/ { 0x75, 0xFA }, /* NMP: , GSM: u */
|
|
450 |
/*83*/ { 0x75, 0xFB }, /* NMP: , GSM: u */
|
|
451 |
/* 0xFC: */
|
|
452 |
/*84*/ { 0x79, 0xFD }, /* NMP: y with ', GSM: y */
|
|
453 |
/*85*/ { 0x79, 0xFE }, /* NMP: y with ^, GSM: y */
|
|
454 |
/*86*/ { 0x79, 0xFF } /* NMP: , GSM: y */
|
|
455 |
};
|
|
456 |
|
|
457 |
|
|
458 |
#endif /*TSMSSTORETSYTESTHELPER_H*/
|
|
459 |
|