реклама на сайте
подробности

 
 
> Помогите отправить СМС на русском SIM900
west329_
сообщение Dec 18 2012, 19:38
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



Нашел в сети немного информации по этому, но на обычные свистки USB-GSM, и ничего для SIM900.

Делаю по аналогии. Алгоритм следующий
Все в кодировке ASCII

AT+CMGF=0 переход в PDU режим

AT+CMGS=25 длина сообщения без первого байта

жду запроса на сообщение >

Код
// Длина и номер SMS центра. 0 - означает, что будет использоваться дефолтный номер.
  sms_pdu[i++] = '0';                    
  sms_pdu[i++] = '0';
  
  // SMS-SUBMIT
  sms_pdu[i++] = '0';    //1                
  sms_pdu[i++] = '1';
  
  // Длина и номер отправителя. 0 - означает что будет использоваться дефолтный номер.
  sms_pdu[i++] = '0';                    
  sms_pdu[i++] = '0';

  // Длина номера получателя
  //sms_pdu[i++] = strlen(sms_recive)-1;
  sms_pdu[i++] = '0';
  sms_pdu[i++] = 'C';

  // 91 указывает международный формат телефонного номера, 81 - местный формат
  sms_pdu[i++] = '9';
  sms_pdu[i++] = '1';
  
  // Телефонный номер получателя в международном формате.
  sms_pdu[i++] = '8';
  sms_pdu[i++] = '3';                  
  sms_pdu[i++] = '6';                   //38-06-68-65-46-97 номер в международном формате
  sms_pdu[i++] = '0';                   //83-60-86-56-64-79  пеерворачиваю байты местами
  sms_pdu[i++] = '8';
  sms_pdu[i++] = '6';
  sms_pdu[i++] = '5';
  sms_pdu[i++] = '6';
  sms_pdu[i++] = '6';
  sms_pdu[i++] = '4';
  sms_pdu[i++] = '7';
  sms_pdu[i++] = '9';
  
  // Идентификатор протокола
  sms_pdu[i++] = '0';                    
  sms_pdu[i++] = '0';
  
   // Старший полубайт означает сохранять SMS у получателя или нет (Flash SMS),  Младший полубайт - кодировка(0-латиница 8-кирилица).
  sms_pdu[i++] = '0';                    
  sms_pdu[i++] = '8';
  
  // Срок доставки сообщения. С1 - неделя
  sms_pdu[i++] = 'С';                    
  sms_pdu[i++] = '1';
  
  // Длина текста сообщения.
  //sms_pdu[i++] = '0';                    
  //sms_pdu[i++] = 'C';
  
  // Текста сообщения.
  sms_pdu[i++] = '0'; sms_pdu[i++] = '4'; sms_pdu[i++] = '1'; sms_pdu[i++] = 'F'; //П
  sms_pdu[i++] = '0'; sms_pdu[i++] = '4'; sms_pdu[i++] = '4'; sms_pdu[i++] = '0'; //р
  sms_pdu[i++] = '0'; sms_pdu[i++] = '4'; sms_pdu[i++] = '3'; sms_pdu[i++] = '8'; //и
  sms_pdu[i++] = '0'; sms_pdu[i++] = '4'; sms_pdu[i++] = '3'; sms_pdu[i++] = '2'; //в
  sms_pdu[i++] = '0'; sms_pdu[i++] = '4'; sms_pdu[i++] = '3'; sms_pdu[i++] = '5'; //е
  sms_pdu[i++] = '0'; sms_pdu[i++] = '4'; sms_pdu[i++] = '4'; sms_pdu[i++] = '2'; //т



в ответ от модуля получаю ERROR
подскажите где может быть ошибка

После выдачи модемом >
строку посылать в ASCII или HEX ?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 15)
RadikX
сообщение Dec 19 2012, 02:20
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 125
Регистрация: 13-04-11
Из: Суровый Челябинск
Пользователь №: 64 337



У вас представлен формат ПРИНИМАЕМОГО SMS, а не передаваемого. Они похожи, но некоторые поля отличаются.
Наиболее популярное описание: http://www.ixbt.com/mobile/review/comp-sms.shtml
Go to the top of the page
 
+Quote Post
zebrox
сообщение Dec 19 2012, 08:13
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 17-04-09
Пользователь №: 47 838



зачем в пду? можно и в текстовом режиме слать смс на русском
Go to the top of the page
 
+Quote Post
west329_
сообщение Dec 19 2012, 11:28
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



В тексте на русском ?
Go to the top of the page
 
+Quote Post
zebrox
сообщение Dec 19 2012, 12:04
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 17-04-09
Пользователь №: 47 838



Да, установкить кодировку юцс2, и можно хоть на китайском слать/получать в текстовом режиме.
AT+CSCS="UCS2"
если хорошо помню
Go to the top of the page
 
+Quote Post
west329_
сообщение Dec 19 2012, 16:46
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



Заборол таки русский через PDU. Если кому интересно выложу, пишите.

Подскажите команду, чтоб модуль при входящем звонке отображал номер звонящего ?
Go to the top of the page
 
+Quote Post
Fusion
сообщение Dec 19 2012, 17:51
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 19-07-06
Пользователь №: 18 920



AT+CLIP=1

0 - Disable +CLIP notification.
1 - Enable +CLIP notification.


RING
+CLIP: "+7916XXXXXXX",145,"",,"",0


Сообщение отредактировал Fusion - Dec 19 2012, 18:11
Go to the top of the page
 
+Quote Post
ssokol
сообщение Dec 19 2012, 18:01
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 615
Регистрация: 14-02-08
Из: г. Рыбинск, Ярославская область
Пользователь №: 35 028



Цитата(west329_ @ Dec 19 2012, 20:46) *
Подскажите команду, чтоб модуль при входящем звонке отображал номер звонящего ?

CLCC
Go to the top of the page
 
+Quote Post
west329_
сообщение Dec 19 2012, 18:11
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



У меня когда звонят только RING RING RING RING

Цитата(ssokol @ Dec 19 2012, 21:01) *
CLCC

Щас проверим
Go to the top of the page
 
+Quote Post
Fusion
сообщение Dec 19 2012, 18:14
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 54
Регистрация: 19-07-06
Пользователь №: 18 920



AT+CLIP Calling Line Identification Presentation

при AT+CLIP=0 тоже только RING
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Dec 20 2012, 06:50
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988



CLIP остался от мобилок для совместимости со стандартом. Может не всегда сработать или быть запрещено оператором.
Используйте CLCC - можно запросом, а можно включить автоотображение на каждое изменение состояния.


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
west329_
сообщение Dec 20 2012, 10:41
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



AT+CLCC=1 рулит.
Получаю две строки с номером телефона звонящего, в начале звонка и в конце. С диким набором параметров.
Go to the top of the page
 
+Quote Post
west329_
сообщение Dec 21 2012, 10:15
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



Цитата(zebrox @ Dec 19 2012, 16:04) *
Да, установкить кодировку юцс2, и можно хоть на китайском слать/получать в текстовом режиме.
AT+CSCS="UCS2"
если хорошо помню


Хотите сказать, что можно смело после
Код
AT+CSCS="UCS2"
передавать unicode

подобно такому виду ?

Код
AT+CSMP=17,167,0,25<r>
AT+CSCS="UCS2"<r>
AT+CMGS="041F04400438043204350442"   //Unicode Привет


не прибегая к форматированию PDU ????

могу предположить, что модуль уже своими средствами сам сформирует PDU строку на основе введенных данных
Go to the top of the page
 
+Quote Post
zebrox
сообщение Dec 21 2012, 10:26
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 17-04-09
Пользователь №: 47 838



Да, именно так, не генеря пду самостоятельно, сим сам этим занимается.

при включении сима, один раз отослать команду AT+CSCS, включить текстовый режим

а потом слать смски, без повторного задания режимов.

AT+CMGS=номер телефона
> тут текст в формате UCS2 char(26)


Go to the top of the page
 
+Quote Post
west329_
сообщение Dec 21 2012, 10:34
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



Цитата(zebrox @ Dec 21 2012, 14:26) *
Да, именно так, не генеря пду самостоятельно, сим сам этим занимается.

при включении сима, один раз отослать команду AT+CSCS, включить текстовый режим

а потом слать смски, без повторного задания режимов.

AT+CMGS=номер телефона
> тут текст в формате UCS2 char(26)



Цитата
номер телефона
а его в каком формате как обычно ?

Код
AT+CMGS="+380661213140"<r>
, виде в ДАТАШИТЕ его китайцы как то по хитрому пишут
Go to the top of the page
 
+Quote Post
zebrox
сообщение Dec 21 2012, 11:17
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 121
Регистрация: 17-04-09
Пользователь №: 47 838



номер телефона тоже в юсц2 необходимо передавать, + тоже должен быть в юцс2
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 10:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.015 секунд с 7
ELECTRONIX ©2004-2016