Страница 3 из 4

Добавлено: Сб июл 04, 2009 13:19:51
Man
Наработает :( :( :o Пробал сначала подключать через мах232 его питал от 3.7в контролер от 5в подключал к терминалке сначало принимает кактойто мусор , потом как должно все команды. Сейчас пробал без мах232 все питал от 3.7 запускается мега навсегда так как без L. В программе пробал делать задержки по 100мс между командами , PDU текст отправлять через какое-то время повторно так как в терминалке навсегда с первого раза отправлялось.
Еше замечена странность если в терминалке када вставляешь PDU текст с символом делаеш между ним пробел смс отправляется , если так наделать смс никаким образом неотправляется. Если из SiMoCo отправлять PDU текст в месте с символом все нормально отправляется и отвечает +CMGS: 45 а если из терминалке даже если смс отправляется отвечает ERROR.

Добавлено: Вс июл 05, 2009 10:40:31
urry
?
Неплохо было бы мне дать код. который не отправляется из терминалки.
Относительно микроконтроллера - у меня нет шнурка к моей нокии, чтобы мегу прошить и проверить. Относительно 100 мс, то Вы большой оптимист - в зависимости от загрузки смс - цетра, ответ может придти и через 10 секунд.

Добавлено: Вс июл 05, 2009 16:50:05
Krik99
Есть вопрос, кто как читает через МК ответ от телефона, или через МК читать не обезательно? Если кто-то делал функцию для чтения ответа от телефона на Си прошу поделиться.
PS. Что-то подсказует что без прерываний по приёму не обойтись. :)

Добавлено: Вс июл 05, 2009 18:46:24
Man
Использую терминал “ Terminal v1.2 by Brajer” в нем есть 3 макроса в них вбил 3 нужные АТ команды для отправки , вот када вставляю макросом PDU текст с юрал сивмовлом и просто жму ввод смс неотправляется , а если вставить макросом и между PDU текстом и символом сделать пробел смс отправляется хатя телефон отвечает ERROR.
МК нечитаю ответ от телефона хатя кажется надо ,впринцепе мона сделать сборки типа if (){}else{} так как телефон на команды по отправке смс отвечает токо OK или ERROR.Сравнивать полученные данные с OK сошлись переходим к другой команде несошлись повторно if проходим и так пока доконца недойдет.

Добавлено: Вс июл 05, 2009 20:20:35
urry
Man писал(а):Использую терминал “ Terminal v1.2 by Brajer” в нем есть 3 макроса в них вбил 3 нужные АТ команды для отправки , вот када вставляю макросом PDU текст с юрал сивмовлом и просто жму ввод смс неотправляется , а если вставить макросом и между PDU текстом и символом сделать пробел смс отправляется хатя телефон отвечает ERROR.
символ x1a для данного терминала является "горячей" клавишей, добавить пробел - меняете длину и код, отсюда - ошибка.
Ошибка стандартного терминала - вот что меня интересует. :)
пока не видел.
Чтение приема - обязательно.

Добавлено: Вс июл 05, 2009 20:42:17
Man
С терминалом все понятно скачаю каконить другой . Нашет того что надо обязательно принимать ответ меня необрадывало :( ,так как этого еше наделал и незнаю как делать :cry: , завтра погуглю разберусь думаю. Также попробую разобратся с более простыми командами например дозвона :
ATD<тел. номер>; - вызов.
ATH - отмена вызова.

Re: Передача SMS как работать в PDU формате

Добавлено: Пн апр 19, 2010 23:38:28
boobonick
Только что передал смс-ку со словом Привет с телефона siemens C60

Код: Выделить всё

putsf("AT+CMEC=2,0,0\r\n");  
delay_ms(100);
putsf("AT+CMGF=0\r\n"); 
delay_ms(100);
putsf("AT+CSCS=\"UCS2\"\r\n"); 
delay_ms(100);
putsf("AT+CMGS=26\r\n");
delay_ms(100); 
putsf("Здесь строка из программы со второй страницы :)) ");


Urry, спасибо Вам!

Re: Передача SMS как работать в PDU формате

Добавлено: Вт апр 20, 2010 02:50:52
boobonick
А как Вы думаете, возможно ли на короткие номера отсылать сообщения? Тогда надо недостающие цифры номера F- ми заполнять?

Re: Передача SMS как работать в PDU формате

Добавлено: Вт апр 20, 2010 10:09:42
Секретный кот
А что, есть какие-то ограничения на длину номера? :shock:

Re: Передача SMS как работать в PDU формате

Добавлено: Вт апр 20, 2010 19:05:22
boobonick
не могу понять, допустим, я посылаю смс на короткий номер МТС: 111 (проверка баланса), я же так просто не могу его записать? Получается, что на самом-то деле не 111, а - 7 -код оператора - какие-то цифры- 111, в этом номере, по-настоящему, 11 цифр должно содержаться, или как?

Re: Передача SMS как работать в PDU формате

Добавлено: Вт апр 20, 2010 19:39:55
urry
по умолчанию подставляется номер в международном формате - т.е. у меня Украина - код страны 380 - у Вас Россия - код страны - 7, причем у нас "8" закрыли, у Вас нет... Только поиграться, попробовать, я не знаю...
как бы для Вас 807(код оператора- 2 цифры )111FFFF.
Благодаря Астериску я звоню на мобильные бесплатно, не задумывался...

Re: Передача SMS как работать в PDU формате

Добавлено: Вт апр 20, 2010 20:00:13
Секретный кот
urry писал(а):как бы для Вас 807(код оператора- 2 цифры )111FFFF.
Извините, конечно, но это полная ерунда.
Во-первых, в России для внутренних звонков набирается или 8, или +7 (8-10-7).
Во-вторых, короткие номера на то и короткие, что набираются без всяких кодов. Если номер 111 работает в сети МТС, то и набирать его надо с телефона МТС. Из других сетей он недоступен.
Ну и в-третьих, для проверки баланса используется не SMS, а USSD-запрос, а это несколько другая штука. Не факт, что его можно послать через модем. :wink:

Re: Передача SMS как работать в PDU формате

Добавлено: Вт апр 20, 2010 20:12:57
boobonick
Секретный кот писал(а):
urry писал(а):как бы для Вас 807(код оператора- 2 цифры )111FFFF.
Ну и в-третьих, для проверки баланса используется не SMS, а USSD-запрос, а это несколько другая штука. Не факт, что его можно послать через модем. :wink:
USSD должен же начинаться с "*" и заканчиваться "#"? А вот 111 - это услуга смс-помощника, т.е.
этот запрос отправляется в виде смс. :)

Re: Передача SMS как работать в PDU формате

Добавлено: Вт апр 20, 2010 21:45:30
boobonick
Отправил все же))), уже отчаялся, на последней попытке, и она пришла :music:. В общем
пришлось все в ручную делать: международный префикс убрал, все сообщение пересчитал.

Re: Передача SMS как работать в PDU формате

Добавлено: Вт апр 20, 2010 21:57:41
urry
boobonick, конкретнее, ведь кто-то же это читает...

Секретный кот, при таких заявлениях -относительно полной ерунды ... Аргументируйте своим кодом.
Со стороны смотрится очень невежливо.

Re: Передача SMS как работать в PDU формате

Добавлено: Вт апр 20, 2010 22:29:36
boobonick
Сначало что получилось: 001100038111F10008070400310031

001100 - это не менял

03 - длина цифр номера (наш номер 111, значит 3 цифры) в hex формате

81 - здесь поменял и поставил "использование неизвестного формата"

11F1 -это номер, на который мы отправляем смс, т.к. 111 нечетный, то добавляем в конце F, а потом меняем местами две соседних цифры

00 - идентификатор протокола

08 -выбираем кодировку USC2

07 -время действия смс

04 - это количество символов сообщения помноженное на 2 (в нашем случае отправляем сообщение 11)

00310031 - это наше сообщение 11 в юникоде.

Далее нужно посчитать какое значение вписывать в AT+CMGS=
для этого считаем все знаки в 001100038111F10008070400310031 без двух первых нулей, т.е.:
1100038111F10008070400310031 и делим на 2, в результате получаем AT+CMGS=14

Re: Передача SMS как работать в PDU формате

Добавлено: Вт апр 20, 2010 23:16:20
Секретный кот
urry писал(а):Секретный кот, при таких заявлениях -относительно полной ерунды ... Аргументируйте своим кодом.
Каким ещё кодом???? :shock:
Это касалось только вот этой цитаты
urry писал(а):как бы для Вас 807(код оператора- 2 цифры )111FFFF.
Вы предлагаете для звонка/отправки на короткий номер набирать ещё и код страны с кодом оператора – это как раз и есть ерунда. К тому же, даже сами коды даны с ошибками (собственно всё это я уже описывал выше). Если всё равно не верится, то достаточно "скормить" номер в таком формате любому российскому мобильнику, и посмотреть что получится :)))
urry писал(а):Со стороны смотрится очень невежливо.
Со стороны обычно смотрят не участвующие в дискуссии :wink:

Re: Передача SMS как работать в PDU формате

Добавлено: Вт апр 20, 2010 23:37:26
urry
delete

Re: Передача SMS как работать в PDU формате

Добавлено: Чт апр 22, 2010 03:44:33
boobonick
А как вы думаете посылаю я телефону разрешение на работу в режиме терминала: putsf("AT+CMEC=2,0,0\r\n");
в ответ он должен прислать OK, так вот, а какой OK должен быть-то, в конце он какими-нибудь символами дополняется? OK\r\n? Пытаюсь его вот таким кодом поймать :kill:

Код: Выделить всё


if (data!='')                     
      {            
      
      if (!strncmpf(cmd_buff,"OK\x1A\r\n\0",6)||!strncmpf(cmd_buff,"OK\0",3) ) 
      { PORTC.5=1; }   
      j=0;                                                      
      
      }   
     
         else   {   
         cmd_buff[j] = data;                                    
         j++;                                             
         if (j >= 200) {j=0;}                                    
               }   









Re: Передача SMS как работать в PDU формате

Добавлено: Чт апр 22, 2010 07:17:21
urry
да, именно этим и дополняется. По умолчанию на мобилке включен режим эхоотражения, поэтому во время вывода я читал данные побайтно из ком-порта, не анализируя, после выдачи инфы уже анализирую - ок или еррор. Режим эхоотражения можно выключить специальной командой.