Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.27;
Скачать: CL | DM;

Вниз

Обращение к модему с помошью 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.068 c
15-1177667659
DeadMeat
2007-04-27 13:54
2007.05.27
Turbo Explorer 2006 под Windows Vista


15-1177676806
I-New
2007-04-27 16:26
2007.05.27
Есть GDI+ в Висте?


11-1160141707
Zoom Evstrahiev
2006-10-06 17:35
2007.05.27
Зеркало для KOLCoolBar


15-1177485845
Steep
2007-04-25 11:24
2007.05.27
Java


10-1123905651
kblc
2005-08-13 08:00
2007.05.27
Как создать SingletonComServer?