Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1177835989
SkySpeed
2007-04-29 12:39
2007.05.27
Проблема с IDE-SATA


15-1177701326
koha
2007-04-27 23:15
2007.05.27
"Редактор диска своими руками" вопрос для kerk


15-1177595223
SkySpeed
2007-04-26 17:47
2007.05.27
Подскажите как разрешить проблему с публичным IP


15-1177426273
GeLLeR
2007-04-24 18:51
2007.05.27
Нужно сжать музыку...


6-1163756442
MOtoroller
2006-11-17 12:40
2007.05.27
изменить Webbrowser или как выводить баннеры ?!?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский