|
пока не понятные баги OpenCPU в M10 |
|
|
|
Jan 29 2011, 19:07
|

Участник

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

|
После детального выбора модема для перспективного проектирования пытаемся использовать М10 от квиктела. Все знают плюсы и пока практически никто не знает минусов этого девайса. Стандартная прошивка последних версий ведет себе, в принципе, адекватно. Но нашей конторе захотелось попробовать китайский онбоард софт в реале. Финансово выгодный аспект пока превращается в бред. Я не прошу помощи от техподдержки, ибо ее я уже замучал своими вопросами. Если кто уже пользовал OpenCPU в реальном, не тестовом, объеме, помогите. Я не могу прошить фирмвару, софт пишет то, что во вложении. Танцы с бубном, включая смену модема, присутствовали. Документы изучены, софт последний. Обидно, т.к. реально интересная платформа для реальный приложений...
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
(1 - 99)
|
Jan 30 2011, 11:33
|

Участник

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

|
Цитата(av-master @ Jan 29 2011, 22:34)  ВАУ еще один с м10 )) щас начнется )) достал попкорн и внематочно наблюдаю )) ИМХО перспективней осваивать SIM900 ( хотябы частота встроеного АРМ поприличней да и сам арм)) если еще свободный компилятор сделают, то вообще супер будет Моя контора делала проекты и на вейвкомах, и на хило, и на сим300. Сейчас очень плотно на телите. На сегодняшний день надо сделать очень бюджетный вариант. Мое мнение, после сим300, на симкоме закончить. М10 хорош практически во всех позициях, правда пока только в даташитах. Единственный типа недостаток (это для av-master) наличие более старого процессора. Тут надо реально разобраться сколько необходимо ресурсов для конкретной задачи и нужен ли ARM9? Ведь для юзера М10 предлагается, однако, 3 МВ кода, 9 МВ юзердаты и 3 МВ ОЗУ и 32 разрядный проц. и, кстати, 32 файла даташитов с очень приличной техподдержкой. Вам мало???? Короче мне наплевать на религиозные войны. Пока свой выбор я сделал. Я потрачу еще неделю, если моя проблема не решится, к сожалению, придется от М10 отказаться. Так, в конце концов дешевле.
|
|
|
|
|
Jan 30 2011, 19:40
|
Знающий
   
Группа: Свой
Сообщений: 615
Регистрация: 14-02-08
Из: г. Рыбинск, Ярославская область
Пользователь №: 35 028

|
Цитата(allmaker @ Jan 30 2011, 14:33)  Моя контора делала проекты и на вейвкомах, и на хило, и на сим300. Сейчас очень плотно на телите. На сегодняшний день надо сделать очень бюджетный вариант. Мое мнение, после сим300, на симкоме закончить. М10 хорош практически во всех позициях, правда пока только в даташитах. Единственный типа недостаток (это для av-master) наличие более старого процессора. Тут надо реально разобраться сколько необходимо ресурсов для конкретной задачи и нужен ли ARM9? Ведь для юзера М10 предлагается, однако, 3 МВ кода, 9 МВ юзердаты и 3 МВ ОЗУ и 32 разрядный проц. и, кстати, 32 файла даташитов с очень приличной техподдержкой. Вам мало???? Короче мне наплевать на религиозные войны. Пока свой выбор я сделал. Я потрачу еще неделю, если моя проблема не решится, к сожалению, придется от М10 отказаться. Так, в конце концов дешевле. А , если не секрет , чем вы хотите "загрузить" М10 , и неужели м10 дешевле сима900 ?
|
|
|
|
|
Jan 30 2011, 19:53
|

Местный
  
Группа: Свой
Сообщений: 377
Регистрация: 12-11-10
Из: СПБ
Пользователь №: 60 836

|
Цитата(ssokol @ Jan 30 2011, 22:40)  А , если не секрет , чем вы хотите "загрузить" М10 , и неужели м10 дешевле сима900 ? думается сим900, M10 и GL868 по цене различаются совсем мало, чтобы что то серьезное там ловить. тут уже лучше пассив считать ... но "у нас" поговаривают что для M10 в скором времени закончатся чипсеты, ну как типа произошло с сим300 некоторое время назад.
|
|
|
|
|
Jan 30 2011, 21:14
|
Профессионал
    
Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364

|
Цитата Ведь для юзера М10 предлагается, однако, 3 МВ кода, 9 МВ юзердаты и 3 МВ ОЗУ и 32 разрядный проц. А на Марс он слетать не предлагает - за яблоками? Тебя не смущает, что там всего лишь 4МБ флеши?Где 9МБ юзер даты хранить собрался? Цитата и, кстати, 32 файла даташитов с очень приличной техподдержкой. Вам мало???? Судя по всему - Вам мало. Цитата думается сим900, M10 и GL868 по цене различаются совсем мало, чтобы что то серьезное там ловить. Вот когда GL868 таки появится, тогда и обсудим.
|
|
|
|
|
Jan 30 2011, 21:24
|
Местный
  
Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470

|
Цитата(ArtemKAD @ Jan 31 2011, 00:14)  Вот когда GL868 таки появится, тогда и обсудим.  Появился. Щупаем на вшивость. Пока плюс для себя увидел в цифровом звуке. Минусы все те же - необходимость поднимать cmux. В целом создает впечатление аппаратно достаточно продуманного модуля. А вопрос выбора скорее всего будет заключаться в цене
|
|
|
|
|
Jan 31 2011, 09:31
|

Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 21-04-06
Из: Украина, Киев
Пользователь №: 16 335

|
Цитата(ArtemKAD @ Jan 30 2011, 23:14)  А на Марс он слетать не предлагает - за яблоками? Тебя не смущает, что там всего лишь 4МБ флеши?Где 9МБ юзер даты хранить собрался? Надо - будут и на Марс летать и телепортировать яблоки на Землю! ) Процессор имеет внешнюю память. Цитата(ArtemKAD @ Jan 30 2011, 23:14)  Судя по всему - Вам мало. Давайте не будем бежать поперед поезда. Как будто c другими модулями не возникает вопросов. Цитата(Telit @ Jan 30 2011, 21:53)  но "у нас" поговаривают что для M10 в скором времени закончатся чипсеты, ну как типа произошло с сим300 некоторое время назад. Говорить да хаить конкурентов мы все гаразд... Я ранее выкладывал на этом форуме официальное письмо по этому поводу. Какой ни есть, но все же документ, а не пустые слова...
Сообщение отредактировал CupuyC - Jan 31 2011, 09:34
|
|
|
|
|
Jan 31 2011, 10:48
|

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

|
Это прикрепленный оригинал письма. >>>http://electronix.ru/forum/index.php?act=attach&type=post&id=50520 В переводах, которые дистрибьюторы выложили на сайтах, упущена маленькая деталь, которой QUECTEL застраховался от того что вдруг прийдется менять чипсет. QUECTEL молодцы - подумали и об будущем. Цитирую: We have the assurance from MTK to guarantee the supply of MT6223-D and its successors in the next 5 years..... "MT6223-D и его приемники ( или наследники)." Ну а почему нет - если заменят то с чистой совестью скажут - приемственность имеется, мы об этом упоминали. И задница прикрыта, и чипсет сменили
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Jan 31 2011, 10:54
|
Частый гость
 
Группа: Участник
Сообщений: 105
Регистрация: 25-07-05
Пользователь №: 7 079

|
Цитата(allmaker @ Jan 29 2011, 21:07)  Если кто уже пользовал OpenCPU в реальном, не тестовом, объеме, помогите. Я не могу прошить фирмвару, софт пишет то, что во вложении. Танцы с бубном, включая смену модема, присутствовали. Документы изучены, софт последний. Обидно, т.к. реально интересная платформа для реальный приложений... Мы пользуем. Такой проблемы не возникало ниразу. Попробуйте для теста прошивку(бинарник) и скат от неё скопировать на D:\ и оттуда залить. Мож лоадеру путь не нравится. Если не поможет, можно попробовать через FLASHTOOL.
|
|
|
|
|
Jan 31 2011, 11:20
|
Профессионал
    
Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364

|
Цитата Процессор имеет внешнюю память. Имеет - 4МБ плюс метр PSRAM. Вы там еще память нашли? ЗЫ. Микросхеме памяти вроде так-же присвоен статус EOL.
|
|
|
|
|
Jan 31 2011, 11:49
|

Участник

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

|
Цитата(ArtemKAD @ Jan 31 2011, 14:20)  Имеет - 4МБ плюс метр PSRAM. Вы там еще память нашли? ЗЫ. Микросхеме памяти вроде так-же присвоен статус EOL. 2MB ROM memory for code and constant data storage 9MB file system memory for user data 3MB RAM memory
|
|
|
|
|
Jan 31 2011, 12:10
|
Частый гость
 
Группа: Участник
Сообщений: 105
Регистрация: 25-07-05
Пользователь №: 7 079

|
Цитата(allmaker @ Jan 31 2011, 13:49)  2MB ROM memory for code and constant data storage 9MB file system memory for user data 3MB RAM memory Это для модуля с памятью 128+32
|
|
|
|
|
Jan 31 2011, 12:35
|

Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 21-04-06
Из: Украина, Киев
Пользователь №: 16 335

|
Цитата(allmaker @ Jan 29 2011, 21:07)  Я не могу прошить фирмвару, софт пишет то, что во вложении. Предварительная причина ошибки установлена: версия модуля и прошивки не совместимы. Цитата(ArtemKAD @ Jan 31 2011, 14:11)  Еще раз. Вас не смущает тот факт, что физически 9МБ в модуле нет? Модуль с расширенной памятью имеет физически 16МБ памяти. Поэтому, нас ничего не смущает. По поводу проблемы озвученой
|
|
|
|
|
Jan 31 2011, 12:53
|

Участник

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

|
Цитата(ArtemKAD @ Jan 31 2011, 15:11)  Еще раз. Вас не смущает тот факт, что физически 9МБ в модуле нет? читайте документацию тщательнее
|
|
|
|
|
Jan 31 2011, 14:40
|

Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 21-04-06
Из: Украина, Киев
Пользователь №: 16 335

|
Цитата(ArtemKAD @ Jan 31 2011, 16:26)  Причем тут чтение документации? Берешь М10, снимаешь крышку, смотришь название памяти. Больше чем там есть, независимо от того, что написано в документации, не будет. Документация при том, что в ней написано, что обычный модуль предоставляет 400КБ для пользовательских данных. А модуль с РАСШИРЕННОЙ памятью - 9МБ. Вы вскрыли свой, обычный модуль. В нем стоит память на 4МБ. Если приобретете модуль с расширенной памятью и вскроете модуль - увидите другую микросхему памяти с объемом 16МБ. Спецификацию на openCPU можно скачать здесь.
Сообщение отредактировал CupuyC - Jan 31 2011, 14:43
|
|
|
|
|
Jan 31 2011, 14:41
|

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

|
Артем, они выпустили несколько версий железа - с зарядником и без, с большой памятью и маленькой. Не со всех ты крышки снимал  Поэтому пользователю нужно сначала выбрать железо, а потом только определяться с версией прошивки.... Ну допустим мне проще было - у словацких коллег разжился свежими доками по QUECTEL. Остальным то, ответ один - Вы нам пишите, а мы решим давать доки или нет. Ведь то что в открытом доступе на Авроре валяется - далеко уже не свежее..... ATC и HD давать под NDA - до такого даже ни Telit ни Sierra не додумались - основные документы у них в свободном доступе.
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
Jan 31 2011, 15:19
|

Участник

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

|
Спасибо Игорю (аки CupuyC) за помощь. Проблема состояла в несовместимости версий железа и софта. Тему можно закрывать. Цитата(CADiLO @ Jan 31 2011, 18:41)  ...ATC и HD давать под NDA - до такого даже ни Telit ни Sierra не додумались - основные документы у них в свободном доступе. Вы не работали с Motorola, там сначала надо стать авторизированным разработчиком, что бы получить доступ к документации и софту. А это не один месяц. С Игорем я потратил 15 минут на формальности...
|
|
|
|
|
Aug 14 2011, 08:04
|
Частый гость
 
Группа: Участник
Сообщений: 105
Регистрация: 25-07-05
Пользователь №: 7 079

|
Цитата(V125 @ Aug 14 2011, 10:11)  Пытаюсь разобраться с OPEN CPU посредством ADS 1.2, компилирует без ошибок. Но получаю только файл с расширением .о Кто знает как получить .bin ??? Перекопал все опции компилятора, уже в глазах рябит, не могу разобраться. В компиляторе IAR все просто -есть конвертор выходного файла. Здесь вроде тоже нашел, проставил галки но bin не получаю. Если использовать make из коробки, то проблем нет. Если какая отсебятина, то на *.o , полученные после компилера, необходимо натравить линкер.
|
|
|
|
|
Aug 15 2011, 06:44
|
Частый гость
 
Группа: Участник
Сообщений: 105
Регистрация: 25-07-05
Пользователь №: 7 079

|
Цитата(V125 @ Aug 15 2011, 09:23)  Спасибо kovz за подсказку. Но еще беда -не открывается scat6223.txt. Fatal error: L6031U: Could not open scatter description file build\scat6223.txt. У меня их два -scat6223М32 и scat6223М128. Обзывал его просто scat6223, подсовывал каждый по одиночке, и так и сяк- не открывается. Подскажите, что я ещё не учел? В этом вопросе, я к сожалению сам плаваю. Я по началу пользовался make - проблем небыло, потом перевёл весь этот колхоз на Iar. Сейчас я с OCPU не работаю, этим занимается другой человек. Он прикрутил ADS к Eclipse, но туда я тоже не вникал.
|
|
|
|
|
Aug 15 2011, 07:11
|
Местный
  
Группа: Участник
Сообщений: 251
Регистрация: 12-05-11
Из: Украина, Киев
Пользователь №: 64 947

|
Цитата(V125 @ Aug 15 2011, 09:23)  Спасибо kovz за подсказку. Но еще беда -не открывается scat6223.txt. Fatal error: L6031U: Could not open scatter description file build\scat6223.txt. У меня их два -scat6223М32 и scat6223М128. Обзывал его просто scat6223 (хотя он по идее батником раскрывается), подсовывал каждый по одиночке, и так и сяк- не открывается. Подскажите, что я ещё не учел? Есть модули с разным типом флешы и обьемом. Если в конце версии прошивки S32, то и SDK должен быть для S флешы, а если N32 то и SDK для N флешы. Также стоить обратить внимание на обьем памяти 32 или 128 а то SDK разные. Какая у вас версия прошивка? И какой SDK (имя папки)?
|
|
|
|
|
Aug 15 2011, 07:31
|
Местный
  
Группа: Участник
Сообщений: 251
Регистрация: 12-05-11
Из: Украина, Киев
Пользователь №: 64 947

|
Цитата(V125 @ Aug 15 2011, 10:22)  Прошивка M12BR01A08N32, SDK - OpenCPU_SDK_M12BR01A01N32 вроде все кашерно. Тем более компилер, не знает какое у меня железо. Я думаю у меня scat6223М32 и scat6223М128 как то мешают друг другу. Может scat6223М128 и батник для него совсем удалить из папки Не то. Единственная пока прошивка для М12 которая позволяет работать с OCPU это M12BR01A01N32_OCPU SDK у вас правильный. Нужно перепрошить модуль. Скиньте мне запрос на прошивку.
|
|
|
|
|
Aug 15 2011, 07:59
|
Местный
  
Группа: Участник
Сообщений: 251
Регистрация: 12-05-11
Из: Украина, Киев
Пользователь №: 64 947

|
Цитата(V125 @ Aug 15 2011, 10:40)  Главное заработало! Получается в прошивку M12BR01A08N32 я не загоню свой код и надо сначало прошить на M12BR01A01N32_OCPU. После двухдневной битвы с дьявольским компилером это уже не пугает. Кстати она у меня есть. Да. Сначала смените прошивку на M12BR01A01N32_OCPU. А потом заганяйте туда свой код.
|
|
|
|
|
Aug 18 2011, 08:24
|
Местный
  
Группа: Участник
Сообщений: 251
Регистрация: 12-05-11
Из: Украина, Киев
Пользователь №: 64 947

|
Цитата(V125 @ Aug 15 2011, 16:31)  Можно ли Дебаг порт Tx Rx заставить работать с внешним МК. Одного как то маловато. В SDK есть пример для I2C, можно ли к М12 как то притулить I2C? И ваще можно ли вместо ненужных мне порта дисплея или кнопок как то использовать эти пины для других целей. Того же дополнительного Tx Rx? Если модуль находится в состоянии OFF, возможно ли его включить кромя кнопкой POWER. Команды АТ включения не нашел. Если не изменяет память старый тел. Сименс включался по команде AT+CFUN=1 1. Да можно. 2. Можете использовать 2GPIO чтобы симулировать I2C. 3. Вы можете заставить работать пин дисплея в качестве gpio и симулировать SPI. Пин клавиатуры также может работать в качестве GPIO. 4. Если модуль полностью обесточен включить его командой нельзя. По поводу команд AT+CFUN смотрите в мануале.
|
|
|
|
|
Sep 2 2011, 08:27
|

Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 21-04-06
Из: Украина, Киев
Пользователь №: 16 335

|
Цитата(V125 @ Sep 2 2011, 08:51)  Open CPU. Суть идеи: при поступлении звонка происходит автоподнятие и абоненту проговаривается некая фраза. (Как в телефонном автоответчике). Выход источника звука зависит от аудиопатча, который как я понял, имеет три состояния QL_AUDIO_PATH_HEADSET -выводит звук на выход SPK2 ---здесь все работает QL_AUDIO_PATH_LOUDSPEAKER -выводит звук на выход SPK1 ---наверное тоже работает, лень припаиваться QL_AUDIO_PATH_NORMAL -КУДА должен выводится?? ---думаю как раз абоненту, но нифига не получается. Как бы мне вывести звук на телефон абонента? В библиотеке ql_audio.h написано: Код QL_AUDIO_PATH_NORMAL = 0, /* speak1 */ QL_AUDIO_PATH_HEADSET = 1, /* earphone */ QL_AUDIO_PATH_LOUDSPEAKER = 2, /* speaker2, loudspeaker for free sound */ Чтобы воспрозвести трек надо использовать ф-цию Ql_StartPlayAudioFile, у которой последний парамерт какраз audiopath. Задайте его 1 и по идее абонент должен услышать трек...
|
|
|
|
|
Sep 2 2011, 13:41
|

Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 21-04-06
Из: Украина, Киев
Пользователь №: 16 335

|
Цитата(V125 @ Sep 2 2011, 12:05)  Спасибо. Как раз использую ф-цию Ql_StartPlayAudioFile. Естественно в хидере все ясно прописано. Сам напутал с циферками. Намедни собираюсь опробовать DTMF. В примерах вроде есть посылка DTMF, а насчет приема, распознания пока не нашел. Как там решается прием? Если не ошибаюсь, то с DTMF в openCPU работать не получится...
|
|
|
|
|
Sep 3 2011, 06:56
|
Частый гость
 
Группа: Участник
Сообщений: 105
Регистрация: 25-07-05
Пользователь №: 7 079

|
Цитата(CupuyC @ Sep 2 2011, 16:41)  Если не ошибаюсь, то с DTMF в openCPU работать не получится... Ошибаетесь  . Всё работает. Цитата(V125 @ Sep 3 2011, 06:56)  CupuyC Вы случайно не в курсе, как организовать парсер для GPS? Пока не соображу, как отрезать ненужные данные. С внешнем МК все ясно, но хочется обойтись без него. А в чём разница OCPU или внешний MK? В вашем распоряжении 3 UARTa, принимаете, парсите, обрезаете и делаете всё что угодно - проблем не вижу вообще.
|
|
|
|
|
Sep 3 2011, 10:30
|
Частый гость
 
Группа: Участник
Сообщений: 151
Регистрация: 24-06-11
Пользователь №: 65 866

|
Цитата(kovz @ Sep 3 2011, 10:56)  Ошибаетесь  . Всё работает. Можно подробнее? Передача DTMF работает, а как распознать полученные с мобильника сигналы? Куда конкретно, в какой буфер а может переменную сваливаются полученные сигналы DTMF, вот чего я пока не найду. Ведь они же выводятся на динамик, а значит где то прячатся. Насчет парсера начинает устаканиваться - получаю данные GPS ( kovz Вы меня снова направили на истинный путь), теперь останется их причесать и запустить GPRS.
Сообщение отредактировал V125 - Sep 3 2011, 19:03
|
|
|
|
|
Sep 5 2011, 06:47
|
Частый гость
 
Группа: Участник
Сообщений: 105
Регистрация: 25-07-05
Пользователь №: 7 079

|
Цитата(V125 @ Sep 3 2011, 13:30)  Можно подробнее? Передача DTMF работает, а как распознать полученные с мобильника сигналы? Куда конкретно, в какой буфер а может переменную сваливаются полученные сигналы DTMF, вот чего я пока не найду. Ведь они же выводятся на динамик, а значит где то прячатся. В виртуальный UART, который предназначен для отсылки AT команд, модуль выдает стандартный +QTONEDET: <DTMF>, если данный функционал предварительно включен через АТ команду. Функцию для отсылки написали, а вот для приёма пока нет.
|
|
|
|
|
Sep 6 2011, 07:59
|
Частый гость
 
Группа: Участник
Сообщений: 105
Регистрация: 25-07-05
Пользователь №: 7 079

|
Цитата(V125 @ Sep 5 2011, 22:51)  kovz Вам была необходимость писать самому или я один несчастный шагаю по садово-огородному инвентарю? Не совсем понял вопрос... Крутится задача, в неё падает событие от модема, а дальше парсим что именно пришло. Если это DTMF, то делаем то, что нам нужно - хоть функцию вызываем, хоть что угодно. Если вы имеете ввиду, что по приходу DTMF, модем должен сам вызывать какую-то функцию, то штатно такой возможности нет.
|
|
|
|
|
Sep 8 2011, 19:20
|
Частый гость
 
Группа: Участник
Сообщений: 151
Регистрация: 24-06-11
Пользователь №: 65 866

|
Пытался запустить 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 такие?
Сообщение отредактировал V125 - Sep 8 2011, 19:39
|
|
|
|
|
Oct 31 2011, 10:05
|
Частый гость
 
Группа: Участник
Сообщений: 151
Регистрация: 24-06-11
Пользователь №: 65 866

|
Как правильно (под 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 вот модуль и принимал всякую охинею ( хотя на трубку приходят как положено текстом ). С трубки на модуль все отсылается- получается отлично, в текстовом режиме.
Сообщение отредактировал V125 - Oct 31 2011, 11:03
|
|
|
|
|
Oct 31 2011, 15:10
|

Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 21-04-06
Из: Украина, Киев
Пользователь №: 16 335

|
Цитата(V125 @ Oct 31 2011, 13:05)  Как правильно (под 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!
Сообщение отредактировал CupuyC - Oct 31 2011, 15:52
|
|
|
|
|
Oct 31 2011, 15:50
|
Частый гость
 
Группа: Участник
Сообщений: 116
Регистрация: 22-10-11
Из: Россия
Пользователь №: 67 897

|
Цитата(V125 @ Oct 31 2011, 19:30)  Шлю текст английскими буквами, русскими и пытаться не стал. Если слать СМС с трубки (сразу не проверил) все отлично. Если с бесплатного сервиса ТЕЛЕ2 - приходит на модуль вереница циферок. Тоесть только PDU режим без вариантов. Скорее это юникод. Хотяб глазами в терминале попробуйте разобрать. Я сейчас ковыряюсь с квектелом с русскоязычными смс как раз с теле2 все нормально.
Сообщение отредактировал pau62 - Oct 31 2011, 15:53
|
|
|
|
|
Oct 31 2011, 16:38
|
Частый гость
 
Группа: Участник
Сообщений: 116
Регистрация: 22-10-11
Из: Россия
Пользователь №: 67 897

|
Цитата(V125 @ Oct 31 2011, 20:05)  Даже если это Юникод (Bin,Hex,Dec,Oct) что я буду с ним делать? Так ведь хрен редьки не слаще. Там выше пример абракадабры, но я столько не выпью. Возможно другой оператор внесет ясность, но я полдня безуспешно бился с ТЕЛЕ2 и ничего не вышло. О как. Ну если за полдня не вышло, значит не судьба.
|
|
|
|
|
Oct 31 2011, 17:47
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Цитата(pau62 @ Oct 31 2011, 19:50)  Скорее это юникод. Хотяб глазами в терминале попробуйте разобрать. Я сейчас ковыряюсь с квектелом с русскоязычными смс как раз с теле2 все нормально. Юникод, конечно. Первые 3 буквы не русские  а латинские: SMS Дальше не стал разбирать. Наверное, сайт рекламу рус. дописывает, а если в смс есть хоть один русский символ, то, естественно, все в юникоде. По поводу перекодировщика - это вообще не проблема, на этом форуме вопросы вроде обсуждались. Каждый символ кодируется двумя байтами. Если первый байт 00, то это латиница, и второй байт определяет ascii-код символа. Например 0053 - символ 0x53 - "S" Таким образом, если Вы будете использовать СМС для управления и только в латинице, то самый примитивный алго видится таковым: если первые символы в скобках "00", то обрабатываем как юникод. В этом случае сначала переводим в HEX по два символа (длина уменьшается в два раза. Затем смотри по парам: если первый байт пары 0, то второй пишем в выходную строку. Завершает строку нулем. Т.о. останутся только латинские символы в виде c-строки.
Сообщение отредактировал GeGeL - Oct 31 2011, 18:02
|
|
|
|
|
Nov 1 2011, 11:58
|

Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 21-04-06
Из: Украина, Киев
Пользователь №: 16 335

|
Цитата(V125 @ Oct 31 2011, 21:11)  Разобрались всем миром. Я даже и не подумал, что это может быть Юникодом. Вроде и перекодировать не сложно но пока не хоца, пока другие задачи. Существует ли в ОЦПУ функция задержки наподобие delay_ms(); ? Нет такой функции. Для этих целей можно написать свою функцию используя из time.h функцию, которая считает время. Вставить ее в цикл и получим delay().
|
|
|
|
|
Nov 1 2011, 13:47
|

Частый гость
 
Группа: Свой
Сообщений: 188
Регистрация: 21-04-06
Из: Украина, Киев
Пользователь №: 16 335

|
Цитата(Alechek @ Nov 1 2011, 16:36)  В цикл?  А не подвесится весь модуль, если я сделаю, скажем, delay(10000ms) ? Если у вас задача повесить модуль, то он конечно повесится. А если кодить понимая что и зачем делаешь... Если надо защититься от криворукого програмиста, который может написать delay(1000000ms), то вставте в цинк одну строку с условием выхода из цикла, например если задано время задержки больше 1сек...
|
|
|
|
|
Nov 1 2011, 13:48
|
Частый гость
 
Группа: Участник
Сообщений: 116
Регистрация: 22-10-11
Из: Россия
Пользователь №: 67 897

|
Цитата(Alechek @ Nov 1 2011, 17:36)  В цикл?  А не подвесится весь модуль, если я сделаю, скажем, delay(10000ms) ? Там вообще-то есть Ql_Sleep Модуль то не подвесится, хотя мне не приходило в голову проверять действие такой дичи. Но это плохой стиль, нельзя так писать. Кучу евентов можно прозевать при таких писаниях.
|
|
|
|
|
Nov 1 2011, 16:52
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
/***************************************************************** * Function: Ql_Sleep * * Description: * Suspends the execution of the current task * until the time-out interval elapses. * Parameters: * msec: * The time interval for which execution is to * be suspended, in milliseconds. * Return: * None *****************************************************************/ void Ql_Sleep(u32 msec);
Но pau62 прав - евенты в оцпу обрабатываются поллингом, и пока Sleep работает, естественно, будут или пропущены, или, хуже того, переполнены (тоже не пробовал). Sleep хороша для небольших задержек. Например, Stanley в своем екзампле софтовой реализации SPI использует Ql_Sleep(1) между дерганьем ног непосредсвенно записью в регистры ARM. Я также использовал на старте своей программы Ql_Sleep(10) между командами настройки портов типа смены скорости и т.п. Но если речь идет о больших интервалах, то это, естественно, абсурдно, т.к., боюсь, энергопотребление от этого не изменится. Лучший способ, как на мой взгляд: настроить будильник и затем отключить модуль полностью с включением по будильнику. А еще надежнее - внешний PIC10, который будет этим заниматься.
ПС: по поводу вешанья - я такую задачу специально перед собой ставил, и не смог - не вешается он никак, а перезагружается.
Сообщение отредактировал GeGeL - Nov 1 2011, 16:55
|
|
|
|
|
Nov 1 2011, 18:27
|
Частый гость
 
Группа: Участник
Сообщений: 116
Регистрация: 22-10-11
Из: Россия
Пользователь №: 67 897

|
Цитата(V125 @ Nov 1 2011, 21:27)  А Stanley случаем не желает и нам показать свой софтовый SPI ? Очень хоца иметь уже готовый на вооружении. И не ради инженерного интереса (как где то в соседней ветке писали), а именно для копипаста.  Уж не знаю, для чего может потребоваться софтовый SPI , в котором используются миллисекундные задержки. И вот не понятно мне, Господа вообще чтоль в доки и примеры не смотрят? У Квектела на эту тему как минимум 2 примера - про LCD и про собственно SPI, по-моему для обслуживания SD карты. Первый я пробовал, он работоспособен, если делитель 4 не ставить, но это не квектеловская проблема имхо, а чипсетовая. Во втором тоже грабель на первый взгляд не заметно. Цитата Очень хоца иметь уже готовый на вооружении Хорошее оружие - это испытанное в бою оружие)))) Пробовать и обнюхивать надо, прежде чем применять. А так этих софтовых спи в тырнете - граблями не сгрести. Да и сам принцип действия элементарен. Вовсе не обязательно заимствовать то, что написано для оцпу. Достаточно просто в любом примере заменить процедуры типа " дернуть лапу вверх" на специфичные для контроллера.
Сообщение отредактировал pau62 - Nov 1 2011, 18:32
|
|
|
|
|
Nov 1 2011, 18:31
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Кстати, не пробовали в примере SPI тестировать остальные из 16 бит управляющего регистра из примера: в смысле, за какие ноги модуля они отвечают? У меня все руки не доходят.
Добавлено: сорри, сам уже нашел в sdconfig.h (заремлено, но понятно)
Медленный он, конечно. Сейчас хочу мини-роутер сделать: прикрутить по SPI езернет-контроллер ENC28J60, а на модуле поднять ppp из оцпу без стека, чтобы получать IP-пакеты с заголовком, менять IP и порты согласно таблице маппинга и отсылать в другой конец. Для моей задачи скорости хватит, но для серьезного обмена - врядли.
Сообщение отредактировал GeGeL - Nov 1 2011, 18:50
|
|
|
|
|
Nov 3 2011, 16:21
|
Частый гость
 
Группа: Участник
Сообщений: 116
Регистрация: 22-10-11
Из: Россия
Пользователь №: 67 897

|
Если в период спячки придет событие, то оно имхо никуда не денется, а вот если два - то у меня большие подозрения что первое потеряется. Собственно, проблема не в том, а в том, что , например, буффер принятых модемом или последовательным портом данных перезапишется. Это только предположения, и, если я ошибаюсь, надеюсь, меня поправят. Это можно было и проверить, и я этим займусь, но просто сейчас другая работа навалилась. Просто применение всяких Delay_ms ведет к написанию таких неэффективных поделок, что лучше сразу забыть о таком, если речь не о микросекундах.
Сообщение отредактировал pau62 - Nov 3 2011, 16:25
|
|
|
|
|
Nov 3 2011, 17:39
|
Частый гость
 
Группа: Участник
Сообщений: 151
Регистрация: 24-06-11
Пользователь №: 65 866

|
Когда я делал на внешнем проце, то отправлял сообщения так (к синтаксису не придираться, может вырезал кривовато ) Код printf("AT+CMGS=\"%s\"\n\r", ANumb); delay_ms(200); //ждем > printf("%s%c", Mess, CtrlZ); Кстати если в ОЧПУ сделать по этому коду, то сообщение приходит почему то пустым, а на внешнем проце работает на ура. Задержка была нужна для ожидания символа приглашения > Теперь использовал встроенную ф-цию отправки и проблема отпала. Код Ql_sprintf(buf_num,"%s",ID_NUM_2); //определяем из СМС сообщения ID_NUM_2 Ql_SendTextSMS((u8*)(buf_num), (u8*)(buf_mess)); А все же как лучше укладывать модуль в спячку (под ОЦПУ) на час, на день?
Сообщение отредактировал V125 - Nov 3 2011, 17:42
|
|
|
|
|
Nov 3 2011, 18:47
|
Частый гость
 
Группа: Участник
Сообщений: 116
Регистрация: 22-10-11
Из: Россия
Пользователь №: 67 897

|
Цитата(V125 @ Nov 3 2011, 22:16)  Вот сейчас впервые подал питание через тестер (не включая кнопкой POWERKEY)- кажет 10миллиампер (как бы не мало), но в талмуде на модуль вроде бы указан 1 миллиампер. Или его нужно как то усыплять, чтоб получить 1мА. Не включая? Странно очень. 1.5 ма жрет м75 в режиме спячки с сохранением регистрации в сети. Ну в моменты передачи конечно есть кратковременное повышение тока. (это не в опенцпу) может это потребление демо-платы с ее стабилизаторами и драйверами портов?
Сообщение отредактировал pau62 - Nov 3 2011, 18:49
|
|
|
|
|
Nov 5 2011, 08:29
|
Частый гость
 
Группа: Участник
Сообщений: 116
Регистрация: 22-10-11
Из: Россия
Пользователь №: 67 897

|
если модуль боле-мене свежий, то 62pin -TXD3 63 - RXD3. Я им пользуюсь. Работать с ним так же как и с 2-ым, только 3 вместо 2 писать. В описании на М12, что у меня есть, порт 3 не упоминается, можно ДШ про М10 посмотреть. Если модуль старый, перепрошить можно попробовать.
В ДШ написано , что можно 2й порт использовать и как порт, и как дебаг порт, в зависимости от того как опции дебага установлены. В тех примерах, что я смотрел, они установлены так, что не мешают использовать его как порт. Может, и не стоит его под другие задачм использовать, мало-ли подебажить .
Можно и у первого объединить функции, просто глушить как-то передaчу с GPS по power key
Сообщение отредактировал pau62 - Nov 5 2011, 08:34
|
|
|
|
|
Nov 6 2011, 07:51
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Это не баг.
Китайцы в своем трекере используют порт 3. Я использую порт 2 (out использую для дебаг в BASIC_MODE, in - для ввода GPS-данных). BASIC_MODE дебаг - это собствеенно обычный режим порта, никакого самопроизвольного дебага там нету, данные отправляются только при использовании функции Ql_DebugTrace. Ну, и Ql_SendToUart для него тоже работает, и евент по приему данных. Выбор uart2 сделал из-за того, что в отличие от 1 и 3, в нем используется другой драйвер, и есть возможность задать Threshold по времени (в примере ниже - если аж 100 мс данных нет, то возникает евент). Это предупреждает деление входящих пакетов на части при "тормозах" в источнике. В GPS такого не наблюдал, а в сатресиверах - полно. И если нету хардверного трешхолда, то приходится писать процедуру объединения кусков с последовательных евентов, а это гимор. Т.о., задав трешхолд, я в итоге при евенте от uart2 получаю ВСЮ ПАЧКУ NMEA (благо буфера 2048 хватает), и затем ищу, что надо (обычно GPRMC). А то, что Вы описали, происходит из-за ошибок приема при старте по питанию источника (GPS-модуля). Их ОБЯЗАТЕЛЬНО надо очищать в евенте UARTFE! Таких тонкостей в разработке софта множество, и именно они определяют качество работы устройства в большей степени, чем HW.
//на старте:
Ql_SetDebugMode(BASIC_MODE); Ql_SetPortRts(ql_uart_port2, FALSE); ret=Ql_SetUartBaudRate(ql_uart_port2,9600); Ql_UartSetGenericThreshold(ql_uart_port2, TRUE, 512, 100); Ql_UartGenericClearFEFlag(ql_uart_port2); Ql_UartClrRxBuffer(ql_uart_port2); Ql_SetPortRts(ql_uart_port2, TRUE);
//в обработчике евентов
case EVENT_UARTFE: { Ql_UartGenericClearFEFlag(ql_uart_port2); } break;
Сообщение отредактировал GeGeL - Nov 6 2011, 08:16
|
|
|
|
|
Nov 6 2011, 20:09
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Для начинающих, испытывающих трудности с командной строкой: Графическая оболочка для компиляции файла 'Example_helloworld.c' с папки 'Examle' (используйте этот файл как main-файл вашего проекта, включая (include) в него другие необходимые c-файлы) Скопируйте файлы manager.exe и timer.exe в папку размещения OpenCPU_SDK Запустите manager.exe. Жмите кнопку 'Compile' для компиляции После завершения компиляции (10-20 сек) будут отображены сообщения компилятора После щелчка мышью по окну будет отображен лог компилятора (build.log), строки с сообщениями об ошибках выделяются цветом. Нацарапал вечером на скорую руку, если что - по ходу поправлю.
Сообщение отредактировал GeGeL - Nov 6 2011, 20:11
|
|
|
|
|
Nov 7 2011, 07:00
|
Частый гость
 
Группа: Участник
Сообщений: 151
Регистрация: 24-06-11
Пользователь №: 65 866

|
Цитата(GeGeL @ Nov 7 2011, 00:09)  Для начинающих, испытывающих трудности с командной строкой: Надо SDK комплектовать этим менеджером. Только мне не зачто не удальсь бы в консоли набрать "helloWorld", да ещё с переключением регистра на заглавные буквы  . Поэтому я свою писанину загнал в example_at.c Теперь "make at" я набираю уже неглядя. Поэтому неначиначинающие, а просто замонавшиеся тарабанить в консоли могут скопипастить свои файлы в example_helloWorld.c и подменить #ifdef __EXAMPLE_HELLWORLD__ (а может и подменять не надо, я просто на всякий) Низкий Вам GeGeL поклон от людей с перебинтоваными пальцами. А если еще Вы подправите, чтоб предупреждения выделялись желтым (как в анекдоте -не нравится желтая полоса зае...те зеленую).
|
|
|
|
|
Nov 7 2011, 16:13
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Подменять ничего не надо - просто дописывать в HelloWorld свои процедуры. Цитата(V125 @ Nov 7 2011, 10:00)  А если еще Вы подправите, чтоб предупреждения выделялись желтым (как в анекдоте -не нравится желтая полоса зае...те зеленую). Желтую? Да никогда! Вобщем, зае...нил синюю...
Сообщение отредактировал GeGeL - Nov 7 2011, 16:15
|
|
|
|
|
Nov 17 2011, 09:25
|
Частый гость
 
Группа: Участник
Сообщений: 116
Регистрация: 22-10-11
Из: Россия
Пользователь №: 67 897

|
Цитата /****************************************************************************** * Function: Ql_ReadADC * * Description: * Read the level value of adc pin. * * Parameters: * adc_pin: * [in] one value of 'QlADCPin' * * cb_adc: * [in] callback, which will report the results. * Return: * QL_RET_OK indicates this function successes. * Negative indicates failure. please see Error Code Definition. ******************************************************************************/ s32 Ql_ReadADC(QlADCPin adc_pin, OCPU_CB_READ_ADC cb_adc); - из ql_pin.h 2800mv опора. а я вообще не знал что ацп помимо АТ команд читается, спасибо))) есть АТ команды про ацп, там про опору и подтяжку на на ацп градусника есть
Сообщение отредактировал pau62 - Nov 17 2011, 09:26
|
|
|
|
|
Nov 17 2011, 13:50
|
Местный
  
Группа: Участник
Сообщений: 251
Регистрация: 12-05-11
Из: Украина, Киев
Пользователь №: 64 947

|
Уважаемые разработчики хочу вас поставить в известность о последних документах и прошивках OpenCPU И так OPEN_CPU_DGD_V1.2 М12 с обычной памятью M12BR02A02N32_OCPU vs OpenCPU_SDK_V3.3 M12 c расширенной памятью M12BR03A01N128_OCPU M12 c расширенной памятью + работа с SD картой M12BR02A02N128_OCPU_SD + спец SDK Прошивки и документацию можно получить у официального дистрибьютора на территории России, Белоруссии и Украины - Rainbow Technologies, http://www.rtcs.ru http://rainbow-m2m.com.ua
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|