Jump to content
    

пока не понятные баги OpenCPU в M10

Можно подробнее? Передача DTMF работает, а как распознать полученные с мобильника сигналы? Куда конкретно, в какой буфер а может переменную сваливаются полученные сигналы DTMF, вот чего я пока не найду. Ведь они же выводятся на динамик, а значит где то прячатся.

 

В виртуальный UART, который предназначен для отсылки AT команд, модуль выдает стандартный +QTONEDET: <DTMF>, если данный функционал предварительно включен через АТ команду. Функцию для отсылки написали, а вот для приёма пока нет.

Share this post


Link to post
Share on other sites

Значит ф-цию приема DTMF надобно писать самому. kovz Вам была необходимость писать самому или я один несчастный шагаю по садово-огородному инвентарю?

Edited by V125

Share this post


Link to post
Share on other sites

kovz Вам была необходимость писать самому или я один несчастный шагаю по садово-огородному инвентарю?

 

Не совсем понял вопрос... Крутится задача, в неё падает событие от модема, а дальше парсим что именно пришло. Если это DTMF, то делаем то, что нам нужно - хоть функцию вызываем, хоть что угодно. Если вы имеете ввиду, что по приходу DTMF, модем должен сам вызывать какую-то функцию, то штатно такой возможности нет.

Share this post


Link to post
Share on other sites

Звоню с мобильного на модуль М12, он поднимает трубку. На мобильном нажимаю

кн.1 - устанавливаем GPIO0 ==1;

кн.2 - устанавливаем GPIO0 ==0;

кн.3 - устанавливаем GPIO1 ==1;

кн.4 - устанавливаем GPIO1 ==0;

этакое дистанционное управление посредством DTMF сигналов. SMS управление ненадежно во времени, может запоздать.

Edited by V125

Share this post


Link to post
Share on other sites

Пытался запустить GPRS. С интернетом вроде соединяется, получаю IP. При попытке зайти на сервер получаю

CallBack_getipbyname(contexid=0, result=0,error=110,num_entry=0) или

CallBack_getipbyname(contexid=0, result=0,error=108,num_entry=0) Что за error=108,110 такие?

Edited by V125

Share this post


Link to post
Share on other sites

Как правильно (под O_CPU) прочитать СМС?

что так

Ql_SMSInitialize(); Ql_SetSMSFormat(QL_SMS_FMT_TXT); Ql_ReadSMS(sms_idx, &read_sms);

что эдак

AT+CMGF=1 AT+CMGR=1,0 или даже AT+CMGL="ALL"

в результате нет текстового режима +CMGR: "REC READ","94C6475627C6564735B435","","2011/10/31 13:44:59+16",208,64,0,8,"+79043490003",145,77 0053004D00530020043E0442043F044004300432043B0435043D043E0020

Тогда сам себе отвечаю

Полдня вчера просидел ломая голову. Подвела жадность. СМС посылал бесплатно с сайта ТЕЛЕ2 вот модуль и принимал всякую охинею ( хотя на трубку приходят как положено текстом ). С трубки на модуль все отсылается- получается отлично, в текстовом режиме.

Edited by V125

Share this post


Link to post
Share on other sites

Как правильно (под O_CPU) прочитать СМС?

что так

Ql_SMSInitialize(); Ql_SetSMSFormat(QL_SMS_FMT_TXT); Ql_ReadSMS(sms_idx, &read_sms);

что эдак

AT+CMGF=1 AT+CMGR=1,0 или даже AT+CMGL="ALL"

в результате нет текстового режима +CMGR: "REC READ","94C6475627C6564735B435","","2011/10/31 13:44:59+16",208,64,0,8,"+79043490003",145,77 0053004D00530020043E0442043F044004300432043B0435043D043E0020

Тогда сам себе отвечаю

Полдня вчера просидел ломая голову. Подвела жадность. СМС посылал бесплатно с сайта ТЕЛЕ2 вот модуль и принимал всякую охинею ( хотя на трубку приходят как положено текстом ). С трубки на модуль все отсылается- получается отлично, в текстовом режиме.

Верно ли я Вас понял: Вы не можете прочитать СМС отправленную с сайта на модуль М10 в текстовом режиме?

Читая СМС что через ОЦПУ, что АТ командами результат одинаков.

 

1. Какая версия используемой прошивки? Попробую на ней, поскольку у меня на последней все нормально работает.

2. Вы шлете СМС кирилицей или англ. буквами?

 

На М12 тоже читает СМС:

+CMGR: "REC READ","777","","2011/06/06 16:05:39+08"
Hello!
***
Besplatnye D-JINGLy! Zvonite 465!

 

Edited by CupuyC

Share this post


Link to post
Share on other sites

Шлю текст английскими буквами, русскими и пытаться не стал. Если слать СМС с трубки (сразу не проверил) все отлично. Если с бесплатного сервиса ТЕЛЕ2 - приходит на модуль вереница циферок. Тоесть только PDU режим без вариантов. Попозжа проверю Мегафонов сервис. Модуль М12. Версия M12BR01A01N32_OCPU + моя писанина. Если подарите новую версию прошивки OCPU, буду признателен и неслыханно счастлив.

Видимо сервис передает в PDU режиме. Обычная трубка его преобразовывает в текст, а модуль не может.

Edited by V125

Share this post


Link to post
Share on other sites

Шлю текст английскими буквами, русскими и пытаться не стал. Если слать СМС с трубки (сразу не проверил) все отлично. Если с бесплатного сервиса ТЕЛЕ2 - приходит на модуль вереница циферок. Тоесть только PDU режим без вариантов.

Скорее это юникод. Хотяб глазами в терминале попробуйте разобрать. Я сейчас ковыряюсь с квектелом с русскоязычными смс как раз с теле2 все нормально.

Edited by pau62

Share this post


Link to post
Share on other sites

Даже если это Юникод (Bin,Hex,Dec,Oct) что я буду с ним делать? Так ведь хрен редьки не слаще. Там выше пример абракадабры, но я столько не выпью. Возможно другой оператор внесет ясность, но я полдня безуспешно бился с ТЕЛЕ2 и ничего не вышло.

Edited by V125

Share this post


Link to post
Share on other sites

Даже если это Юникод (Bin,Hex,Dec,Oct) что я буду с ним делать? Так ведь хрен редьки не слаще. Там выше пример абракадабры, но я столько не выпью. Возможно другой оператор внесет ясность, но я полдня безуспешно бился с ТЕЛЕ2 и ничего не вышло.

О как. Ну если за полдня не вышло, значит не судьба.

 

Share this post


Link to post
Share on other sites

Скорее это юникод. Хотяб глазами в терминале попробуйте разобрать. Я сейчас ковыряюсь с квектелом с русскоязычными смс как раз с теле2 все нормально.

Юникод, конечно. Первые 3 буквы не русские :) а латинские: SMS

Дальше не стал разбирать. Наверное, сайт рекламу рус. дописывает, а если в смс есть хоть один русский символ, то, естественно, все в юникоде.

По поводу перекодировщика - это вообще не проблема, на этом форуме вопросы вроде обсуждались.

Каждый символ кодируется двумя байтами. Если первый байт 00, то это латиница, и второй байт определяет ascii-код символа.

Например 0053 - символ 0x53 - "S"

Таким образом, если Вы будете использовать СМС для управления и только в латинице, то самый примитивный алго видится таковым: если первые символы в скобках "00", то обрабатываем как юникод.

В этом случае сначала переводим в HEX по два символа (длина уменьшается в два раза.

Затем смотри по парам: если первый байт пары 0, то второй пишем в выходную строку.

Завершает строку нулем.

Т.о. останутся только латинские символы в виде c-строки.

Edited by GeGeL

Share this post


Link to post
Share on other sites

Разобрались всем миром. Я даже и не подумал, что это может быть Юникодом. Вроде и перекодировать не сложно но пока не хоца, пока другие задачи.

Существует ли в ОЦПУ функция задержки наподобие delay_ms(); ?

Edited by V125

Share this post


Link to post
Share on other sites

Разобрались всем миром. Я даже и не подумал, что это может быть Юникодом. Вроде и перекодировать не сложно но пока не хоца, пока другие задачи. Существует ли в ОЦПУ функция задержки наподобие delay_ms(); ?
Нет такой функции. Для этих целей можно написать свою функцию используя из time.h функцию, которая считает время. Вставить ее в цикл и получим delay().

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...