Eddy71 0 11 августа, 2011 Опубликовано 11 августа, 2011 · Жалоба ??? Каким боком тут RTS к GPS?? Данные с GPS модуля с ножки ТХ после парсинга шлются через GSM модуль. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harbinger 10 11 августа, 2011 Опубликовано 11 августа, 2011 · Жалоба Можно и сырые данные гнать, без парсинга (по трафику может быть невыгодно, но дело вкуса) - в любом случае ловить одним UART МК (без контроля потока) и отправлять в другой (с контролем). Буфер, естественно, понадобится. Если у МК UART один - дело хуже, но выкрутиться можно с помощью коммутатора или программного UART со стороны GPS (как правило, там скорости низкие, сильно напрягать не будет). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V125 0 11 августа, 2011 Опубликовано 11 августа, 2011 (изменено) · Жалоба Может я коряво мыслю и выражаюсь, просто хотел сначала "смоделировать" и отработать последовательность команд через СОМ, апосля использовать OPEN CPU. Сразу вслепую ковырять исходники, дебажить модуль - очковато испортить родную прошивку. Или все же поставить копеечный внешний МК и не заморачиваться. Дело как бы не в экономии 1$, заманчиво реализовать возможности модуля. Изменено 11 августа, 2011 пользователем V125 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V125 0 9 сентября, 2011 Опубликовано 9 сентября, 2011 (изменено) · Жалоба С внешнего МК надо отправить через USART сообщение < AT+QICSGP=1,"internet.tele2.ru"\r\n > Если использовать команду printf("AT+QICSGP=1,"internet.tele2.ru"\r\n "); то получается косячок с синтаксисом, кавычки внутри кавычек "internet.tele2.ru" Я с USART особо не работал. Как мне отправить сообщение с кавычками? Или сделать putchar('A'); putchar('T'); putchar('+'); и т.д. Изменено 9 сентября, 2011 пользователем V125 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SiriuS 0 9 сентября, 2011 Опубликовано 9 сентября, 2011 (изменено) · Жалоба С внешнего МК надо отправить через USART сообщение < AT+QICSGP=1,"internet.tele2.ru"\r\n > Если использовать команду printf("AT+QICSGP=1,"internet.tele2.ru"\r\n "); то получается косячок с синтаксисом, кавычки внутри кавычек "internet.tele2.ru" Я с USART особо не работал. Как мне отправить сообщение с кавычками? Или просто писать ф-цию отправки сообщения char ch = 34; // код кавычек printf("AT+QICSGP=1,%c internet.tele2.ru%c\r\n ",ch,ch); Или может слеш экранирует кавычки: printf("AT+QICSGP=1,\"internet.tele2.ru\"\r\n "); Изменено 9 сентября, 2011 пользователем CupuyC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V125 0 9 сентября, 2011 Опубликовано 9 сентября, 2011 · Жалоба Спасибо CupuyC слеш то что надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V125 0 18 сентября, 2011 Опубликовано 18 сентября, 2011 (изменено) · Жалоба Для отладки GPRS написал на 64 Меге (чтобы апосля проблем с объемом флеша небыло) программку. Нарисована и работает из PROTEUSa через виртуальный Протеусовский COM порт. ........................... AT+QIOPEN="TCP","193.193.165.165",20332\r\n OK CONNECT OK AT+QISEND >#L#ххххххххххххххх;123\r\n 0x1A\r\n SEND OK #AL#1 Все прекрасно работает без сигналов RTS/CTS! Я так нигде и не нашел, что их надо ОБЯЗАТЕЛЬНО использовать, RTS пока болтается в воздухе. Изменено 18 сентября, 2011 пользователем V125 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V125 0 2 октября, 2011 Опубликовано 2 октября, 2011 · Жалоба В местной лавке отсутствует MEGA64L (ну не хочется использовать без L из-за необходимости согласования уровней). Поэтому пока в Протеусе. Правда флеши занято 10К, а ОЗУ почти 4К. Мечтаю перебраться на STM32. Работает нормально, гонит данные на orange gps trace. Иногда что-то виснет и данные перестают передаваться. Грешу на глюки Протеуса. Но это лирика. Вопрос посуществу. Как можно гарантированно контролировать, что сам GSM-модуль не завис. По мигалке Нетлайта кажется ненадежным. И существует ли АТ команда полного ресета модуля? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novus2004 0 3 октября, 2011 Опубликовано 3 октября, 2011 · Жалоба В местной лавке отсутствует MEGA64L (ну не хочется использовать без L из-за необходимости согласования уровней). Поэтому пока в Протеусе. Правда флеши занято 10К, а ОЗУ почти 4К. Мечтаю перебраться на STM32. Работает нормально, гонит данные на orange gps trace. Иногда что-то виснет и данные перестают передаваться. Грешу на глюки Протеуса. Но это лирика. Вопрос посуществу. Как можно гарантированно контролировать, что сам GSM-модуль не завис. По мигалке Нетлайта кажется ненадежным. И существует ли АТ команда полного ресета модуля? Что имеено Вы подразумеваете по "модуль завис" : не отвечает на команды, выпал из сети или что-то другое. Я бы порекомендовал бы Вам - первично смотреть регистрацию в сети (AT+CREG) в цикле программы через строго определённый промежуток. а перезагружать командой AT+CFUN. Пожалуйста, уточните синтаксис команд в даташите по модулю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SiriuS 0 3 октября, 2011 Опубликовано 3 октября, 2011 · Жалоба Вопрос посуществу. Как можно гарантированно контролировать, что сам GSM-модуль не завис. По мигалке Нетлайта кажется ненадежным. И существует ли АТ команда полного ресета модуля?Работу модуля можно видеть во всех деталях используя ПО Catcher подключенное к модулю через отладочный порт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Transistor 0 3 октября, 2011 Опубликовано 3 октября, 2011 · Жалоба [deleted] Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V125 0 3 октября, 2011 Опубликовано 3 октября, 2011 · Жалоба Что имеено Вы подразумеваете по "модуль завис" : не отвечает на команды, выпал из сети или что-то другое. Под "модуль завис" я имел ввиду всевозможные глюки или любое неадекватное поведение во время штатной работы. Просто чтобы застраховаться на будущее. Внеший контроллер бы это усек и перезагрузил бы модуль. Помнится кто-то где-то контролировал меандр. А что за меандр такой и откуда берется уже не помню. Вот проверять регистрацию в сети- это отличная идея (недоумился до элементарного). Я просто контролирую соединение с сервером. Если во время сна - время от времени пингую сервер и проверяю #AP#, иначе проверяю #ASD#1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gegel 0 3 октября, 2011 Опубликовано 3 октября, 2011 · Жалоба Если нужна высокая гарантия поддержания работоспособности, то сделайте так: после каждой отправки данных на ваш сервер отправляйте ДНС-запрос в UDP-порт 53 на IP 8.8.8.8 с доменом, google.com, например. Посмотреть дейтаграмму можно снифером с компа. Гугл-днс ответит, и если все ОК, вы получите ответ с порта 53. Это будет вам аналогом пинга (последний, к сожалению, не реализован ни в оцпу, ни тем более в АТ). Введите счетчик, при отсылке запроса инкрементируйте, при получении - декрементируйте. Если значение превысит заданное, можете перезапустить модуль (причем не АТ-командами и т.п., и даже не POWERKEY, а жестко по питанию - сделайте отвод от МК к управляемому стабилизатору, а МК питайте отдельно). И не забудьте watchdog в МК активировать, обнуляя в main. ПС: меандр - у меня в трекере (см. пост в этой ветке). Но он предупреждает зависание оцпу. Кроме этого, я контролирую обмен, как описал выше (допустимое к-во потерь задается пользователем). И еще запускаю таймер при поднятии жпрс и ресетю модуль при таймауте (задается пользователем). Все это дает гарантию работы трекера в различных ситуациях. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V125 0 4 октября, 2011 Опубликовано 4 октября, 2011 (изменено) · Жалоба И еще запускаю таймер при поднятии жпрс и ресетю модуль при таймауте (задается пользователем). Все это дает гарантию работы трекера в различных ситуациях. Если постоянно ресетить модуль, не очень -то экономично выходит. За GPRS соединение в ТЕЛЕ2 снимают около 40копеек. Не думаю, что другие операторы стесняются это делать. Если тока безлимит... Насчет пинга Гугла - или не врубился или Вы пропустили один мой пост. Для чего мне его пинговать, мне ведь отвечает orange gps trace. Вот если он перестал отвечать, тогда для проверки пингануть Гугл, (а заодно Рамблер с Яндексом ) и сделать вывод о необходимости ресета. Изменено 4 октября, 2011 пользователем V125 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gegel 0 5 октября, 2011 Опубликовано 5 октября, 2011 · Жалоба Немного не так вы поняли: в начале процедуры конекта к жпрс запускаю таймер скажем на 3 минуты. Далее выполняю конект: проверка регистрации (если нет, то ждем), собственно конект (ждем), получение айпи сервера по домену (если необходимо, ждем) создание сокета, пинг днс того же гугла(ждем ответа). Если удачно пинг (получен ответ), то таймер останавливаем. Т.о. если что-то не так при конекте и не самоустранилось в рабочем цикле за 3 минуты, то идем на перезагруз. Это внештатная ситуация, и, по идее. возникать вобще не должна. Но предвидеть надо. А что касается второй части, то именно так я и имел ввиду: посылаем пакет на оранж, увеличиваем счетчик. получаем ответ, сбрасываем счетчик. Если счетчик больше, скажем, 3, то пингуем гугл. При получении ответа на пинг тоже сбрасываем счетчик. Если счетчик достиг, скажем, 6, то деактивируем жпрс и запускаем ее снова, как описано выше (с таймером). Далее, если в течение 3 мин жпрс не удается поднять, тогда уже ресетим модуль (по таймеру). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться