Цитата(blox @ Jul 26 2010, 14:06)

Да я так и думаю сделать, но пока ума не приложу как обрабатывать входные смс которые будут введены кирилицей.
Огромное спасибо за пример
Samodelkin буду пробовать, пока ещё не всё понял, но в процессе думаю разберусь

А это обратное преобразование. Т.е. из каждых 4-х байт одного символа из GSM модуля в формате ASCII формирование одного 16-разрядного символа в Юникоде. Например, из 4-х байт 0х30, 0х34, 0х31, 0х30 формируеься один байт 0х0410 что соответствует букве "А" русского алфавита. На изящность програмного решения не претендую. Но работает без проблем.
unsigned int dig1 = перый символ из 4-х
unsigned int dig2 = второй символ из 4-х
unsigned int dig3 = третий символ из 4-х
unsigned int dig4 = четвертый символ из 4-х
if((dig1 >= 0x30) && (dig1 <= 0x39)) {dig1 = 0x000F&dig1;}
else if((dig1 >= 0x41) && (dig1 <= 0x46)) {dig1 -= 0x37;}
if((dig2 >= 0x30) && (dig2 <= 0x39)) {dig2 = 0x000F&dig2;}
else if((dig2 >= 0x41) && (dig2 <= 0x46)) {dig2 -= 0x37;}
if((dig3 >= 0x30) && (dig3 <= 0x39)) {dig3 = 0x000F&dig3;}
else if((dig3 >= 0x41) && (dig3 <= 0x46)) {dig3 -= 0x37;}
if((dig4 >= 0x30) && (dig4 <= 0x39)) {dig4 = 0x000F&dig4;}
else if((dig4 >= 0x41) && (dig4 <= 0x46)) {dig4 -= 0x37;}
dig1 = (dig1<<12) + (dig2<<8) + (dig3<<4) + dig4;
В результате в переменной dig1 будет содержаться тот самый 16-разрядный символ в Юникоде
Собственно говоря такую процедуру надо провести для всех блоков по 4 байта в принятом SMS. Это чтоб потом можно было сравнивать с образцовой строкой из памяти программ или EEPROM, например.