Форум: "Начинающим";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];
ВнизОбращение к модему с помошью AT команд. Перекодировка рус. SMS. Найти похожие ветки
← →
vegarulez © (2007-05-05 14:50) [0]Привет всем мастреам!
У меня пара вопросов:
1. Я сечас обращаюсь к модему через HyperTerminal посылаю AT команды... получаю ответы... вообщем управляю модемом. У меня вопрос с помощью какой компоненты это можно осушествлять с помощью Delphi? (Доступ к ком порту, посылка AT команд и получение ответов от модема). И ещё под вопрос я допустим когда в интернете через него сижу - через гипертеминал не могу к нему подключится, т.к. ком порт модема занят звонилкой... вопрос можно ли как то к нему обратится не вырубая инет??? Или нужно обязательно освободить ком порт, чтобы допустим тот же гипертерминал или Дэлф к нему могли обратится.
2. Перекодировка русских SMS в читабельный вид.
Также в тему - хотел спросить как можно привести к нормальному читабельному виду смс-ку в русскорй кодировке на сим карте модема?
Я допустим через гипертерм англицкие смс-ки читаю нормально а русские они в какой-то кодировке закодированы. Подскажите в каком направлении читать... может ссыль есть хорошая.
Заранее благодарен.
← →
DVM © (2007-05-05 15:19) [1]
> У меня вопрос с помощью какой компоненты это можно осушествлять
> с помощью Delphi?
Работа с ком-портом, например, с помощью:
(******************************************************
* ComPort Library ver. 3.0 *
* for Delphi 3, 4, 5, 6, 7 and *
* C++ Builder 3, 4, 5, 6 *
* written by Dejan Crnila, 1998 - 2002 *
* maintained by Lars B. Dybdahl, 2003 *
* Homepage: http://comport.sf.net/ *
*****************************************************)
> через гипертеминал не могу к нему подключится, т.к. ком
> порт модема занят звонилкой... вопрос можно ли как то к
> нему обратится не вырубая инет???
Нет чаще всего.
> 2. Перекодировка русских SMS в читабельный вид.
И русские и английские смс надо кодировать по спец. алгоритму. Описание есть в описании стандарта GSM.
← →
DVM © (2007-05-05 15:29) [2]А вообще поищи такую программу с открытыми исходными текстами на делфи - FMA. Там есть модуль uSMS - то что тебе надо.
← →
vegarulez © (2007-05-05 15:54) [3]
> Нет чаще всего.
А поподробнее?
> И русские и английские смс надо кодировать по спец. алгоритму.
> Описание есть в описании стандарта GSM.
В том то и дело что при чтении с модема с помощью AT команды через гипертерминал... английские сообщения отображаются нормально - хотя и кодируются согласно стандарту (и естественоо и храняться в памяти симкарты в шифрованном виде). а русский текст выдаётся в том виде в каком хранится (набор символов 16-ти ричной кодировке), т.к. не может перекодировать самостоятельно...
← →
DVM © (2007-05-05 15:58) [4]
> А поподробнее?
Это ограничение большинства телефонов - либо интернет либо SMS и звонить голосом. Одновременно нельзя.
> В том то и дело что при чтении с модема с помощью AT команды
> через гипертерминал... английские сообщения отображаются
> нормально
Я в курсе. Гипертерминал ничего и не раскодирует тебе. А модуль uSMS все же погляди. Там есть прямо функции закодировать/раскодировать текст.
← →
DVM © (2007-05-05 15:59) [5]вот его заголовок:
interface
{ SMS Packet Format (PDU format) info:
http://www.gsmfavorites.com/sms/packet-format/ }
type
TGSMCodingScheme = (gcsDefault7Bit, gcs8BitOctets, gcs16bitUcs2, gcsUnknown);
function GSMCodingScheme(const Value: WideString): TGSMCodingScheme;
function Length7Bit(const Value: WideString): integer;
function GSMDecode7Bit(Value: string): WideString;
function GSMEncode7Bit(const Value: WideString): string;
function GSMDecode8Bit(Value: string): WideString;
function GSMEncode8Bit(const Value: WideString): string;
function GSMDecodeUcs2(Value: string): WideString;
function GSMEncodeUcs2(const Value: WideString): string;
← →
vegarulez © (2007-05-05 16:30) [6]
> Это ограничение большинства телефонов - либо интернет либо
> SMS и звонить голосом. Одновременно нельзя.
Это я знаю... т.к. стандарт такой на передачу...
меня другое интересует... я имел ввиду то, что при попытке подцепиться гипертерминалом, когда включен инет нельзя... т.к. ком порт занят другим приложением (в данном случае звонилкой - которая занимает порт, поднимает соединение с инетом, и т.д.)... и я спрашиваю можно ли получить доступ к модему гипертерминалом, или же допустим тем же делфом с компонентой...
Я так полагаю, что - нет, без обрыва соединения и закрытия звонилки, чтобы ком порт освободить, для обращения других программ. Я прав?
← →
DVM © (2007-05-05 16:56) [7]
> Я прав?
да
← →
vegarulez © (2007-05-05 21:29) [8]Поставил компоненту - которую ты посоветовал.
Подключился к модему. Посылаю AT команды на чтение смс-ок с симки они приходят в ответ все закодированные... раньше тока русские гипретерминал не мог преобразовать... так как не знал как их преобразовывать...
А эта компонента все их передаёт в кодированном виде. И русские и англицкие.
У меня вопрос такого характера - в какой кодировке текст смс-ок содержится на симке?
(Сам текст смс, без концевиков и служебных символов...)
← →
Зюзя (2007-05-05 21:33) [9]в какой кодировке текст смс-ок содержится на симке?
Скорее всего Юникод.
← →
DVM © (2007-05-05 21:48) [10]
> в какой кодировке текст смс-ок содержится на симке?
Ucs2
← →
DVM © (2007-05-05 21:50) [11]SMS-центры крупнейших российских GSM-операторов работают с кодировкой UCS2 (или, как ее еще называют, Unicode) и позволяют передавать русскоязычные сообщения.
В UCS2 для кодирования одного символа используются два байта. Поэтому SMS, переданное по-русски, должно содержать не более 70 символов (текст сообщения в стандартной кодировке 140 байтов делим пополам). Русскоязычные SMS длиной свыше 70 знаков будут автоматически разбиты на части. Перечисленные возможности стали доступны стандарте GSM фаза 2+ . Первоначально в SMS ( стандарт GSM фаза 2) использовался только набор латинских букв, однако в стандарте GSM фаза 2+ были введены символы UNICODE, которые включают кириллицу. Операторы использующие данную кодировку могут отправлять мобильным телефонам, поддерживающим кодировку UNICODE, сообщения, написанные на русском языке.
Структура SMS в стандартной кодировке приведена в таблице. Суммарный размер сообщения может достигать 163 байта.
Структура Длина
тип сообщения 1 байт
временная отметка SMS-центра 7 байт
адрес источника сообщения 12 байт
идентификатор протокола 1 байт
схема кодирования данных 1 байт
длина пользовательской области данных 1 байт
текст сообщения 140 байт
итого 163 байт
Благодаря стандарту GSM фаза 2+ стало возможным разбиение нескольких коротких сообщений для того, чтобы формировать единственное длинное сообщение. Таким образом, стало возможным писать сообщения вплоть до 38760 символов в 7-битовой кодировке или 34170 в 8-битовой кодировке максимум может быть соединено 255 сообщений).
← →
DVM © (2007-05-05 21:52) [12]
function GSMDecodeUcs2(Value: string): WideString;
var
i,Octet: integer;
begin
Result := "";
while (Length(Value) mod 4) <> 0 do
Value := Value + "0";
for i := 0 to (Length(Value) div 4) - 1 do begin
Octet := StrToInt("$" + copy(Value, (i*4)+1, 4));
Result := Result + WideChar(Octet);
end;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.27;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.04 c