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

 
 
> TCP соединение через SIM900, производительность передачи данных
Hoodwin
сообщение Sep 5 2012, 10:26
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Имеем типовую задачку для телеметрии и удаленного обмена данных прибор-сервер. Ранее у нас реализован был вполне развитый протокол управляющих сообщений, бегающих по RS-485. Теперь вот хотим вставить новый кирпичик - GSM-концентратор. Уперлись в следующий вопрос.

Можно ли средствами SIM900 установить TCP соединение с помощью AT команд, после чего перевести все это в прозрачный режим, выбрав конкретное (оно у нас единственное) TCP соединение в качестве терминала? Просто наш собственный протокол и так не очень сложен, и вписывается в подмножество ASCII 32-127. Нам и этого (небольшого впрочем) оверхеда хватит sm.gif

Несколько напрягает алгоритм приема IP-пакетов через AT-команды. Получается, что прием утяжелен оверхедом в виде +CIPRXGET в различных комбинациях, и кушает до 80% трафика. То есть на скорости UART 115200 останется не более 1-2КБ/с, маловато, как мне кажется.

В режиме терминала теоретически можно было бы все 100% трафика по UART использовать, ну или хотя бы близко приблизится к потолку трафика по GPRS (вроде 85.6Кб). Но нас вообще больше закачка на сервер интересует, а там вроде только 42.8Кбит/с обещано. Но это все равно больше, чем получится при возне с АТ командами...

Сообщение отредактировал Hoodwin - Sep 5 2012, 10:31
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GeGeL
сообщение Dec 4 2012, 17:14
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682



Запустите снифер и посмотрите, что происходит при открытии страницы.
Connect (тройное рукопожатие для установки тсп-соединения) не в счет, он в даной ситуации производится сокетом по вашей команде. Затем клиент (браузер) посылает порцию данных, где указывает, что бы он хотел получить в ответ (это и есть GET-запрос). Сервер (модуль) получает эти данные, парсит их (находит GET и выделяет следующие за ним параметры) и посылает в ответ также пакет с данными, содержащими HTML-код. После чего клиент (или сервер) могут закрывать тсп соединение, а могут оставить.

Для реализации простейшего веб-сервера напишите html-страницу (можно с жава-скриптами), поубирайте лишние пробелы и переносы строк, запустите веб-сервер (например, Денвер) и отсниферите запрос браузера и ответ сервера.
Затем со снифера скопируйте данные ответа сервера, оформите в виде static char массива в программе MC (или модуля).
Откройте слушающий tcp-сокет, в получаемых данных ищите строку GET, если нашли, обрабатывайте следующие за ней параметры и отвечайте пакетом данных из массива. Если хотите в нем что-то менять (выдавать результаты), перед ответом сделайте патч по определенным смещениям в буфере.

ПС: у меня таким образом функционирует веб-сервис для мобильных клиентов в жпс-сервере (правда, не на модуле, а на VDS с Linux, но принцип тот же). Сделано все на уровне сокетов, на С, весит 22К, не требует ничего, кроме Linux (также есть версия под Win32), При получении данных ищется GET и парсятся следующие за ним параметры: номер трекера, масштаб, тип карты. Затем выдается заранее сделанная веб-страница, предварительно по фиксированным адресам в массиве меняются данные о номере трекера, времени, координатах, скорости и т.д.
Страница содержит ссылку на рисунок из GoogleStaticMap (предварительно пропатченную сервером в нужных местах), а также маленькие жава-скрипты для элементов управления, позволяющие менять масштаб и тип карты клиентом.
Получив ответ, браузер запрашивает рисунок с GoogleMap и отображает вместе с нужной информацией. Если клиент хочет изменить масштам или тип карты, он использует элементы управления, жаваскрипт сам патчит требуемые места в ссылке и рисунок перезагружается. Повторного обращения к серверу при этом не производится, только к GoogleMap.
Если кого заинтересует, скачать можно на http://www.gegelsoft.ru/files.php?dir=files
Go to the top of the page
 
+Quote Post
vintick
сообщение Dec 5 2012, 07:06
Сообщение #3


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

Группа: Участник
Сообщений: 186
Регистрация: 4-05-09
Пользователь №: 48 624



Цитата(GeGeL @ Dec 4 2012, 20:14) *
Запустите снифер и посмотрите, что происходит при открытии страницы.
Connect (тройное рукопожатие для установки тсп-соединения) не в счет, он в даной ситуации производится сокетом по вашей команде. Затем клиент (браузер) посылает порцию данных, где указывает, что бы он хотел получить в ответ (это и есть GET-запрос). Сервер (модуль) получает эти данные, парсит их (находит GET и выделяет следующие за ним параметры) и посылает в ответ также пакет с данными, содержащими HTML-код. После чего клиент (или сервер) могут закрывать тсп соединение, а могут оставить.

Для реализации простейшего веб-сервера напишите html-страницу (можно с жава-скриптами), поубирайте лишние пробелы и переносы строк, запустите веб-сервер (например, Денвер) и отсниферите запрос браузера и ответ сервера.
Затем со снифера скопируйте данные ответа сервера, оформите в виде static char массива в программе MC (или модуля).
Откройте слушающий tcp-сокет, в получаемых данных ищите строку GET, если нашли, обрабатывайте следующие за ней параметры и отвечайте пакетом данных из массива. Если хотите в нем что-то менять (выдавать результаты), перед ответом сделайте патч по определенным смещениям в буфере.

ПС: у меня таким образом функционирует веб-сервис для мобильных клиентов в жпс-сервере (правда, не на модуле, а на VDS с Linux, но принцип тот же). Сделано все на уровне сокетов, на С, весит 22К, не требует ничего, кроме Linux (также есть версия под Win32), При получении данных ищется GET и парсятся следующие за ним параметры: номер трекера, масштаб, тип карты. Затем выдается заранее сделанная веб-страница, предварительно по фиксированным адресам в массиве меняются данные о номере трекера, времени, координатах, скорости и т.д.
Страница содержит ссылку на рисунок из GoogleStaticMap (предварительно пропатченную сервером в нужных местах), а также маленькие жава-скрипты для элементов управления, позволяющие менять масштаб и тип карты клиентом.
Получив ответ, браузер запрашивает рисунок с GoogleMap и отображает вместе с нужной информацией. Если клиент хочет изменить масштам или тип карты, он использует элементы управления, жаваскрипт сам патчит требуемые места в ссылке и рисунок перезагружается. Повторного обращения к серверу при этом не производится, только к GoogleMap.
Если кого заинтересует, скачать можно на http://www.gegelsoft.ru/files.php?dir=files



В устройстве у меня уже есть и web-server и html страницы и c java и c ajax,
используется для web-конфигурирования, но через RJ-45 конечно. Хочу получать
полный обмен с встроенным сервером. Проключение http-сервера открывает много возможностей.

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Hoodwin   TCP соединение через SIM900   Sep 5 2012, 10:26
- - _Артём_   Цитата(Hoodwin @ Sep 5 2012, 13:26) там в...   Sep 5 2012, 10:50
- - Aner   Да, это проблема и она не одна, из-за которой, нап...   Sep 5 2012, 11:12
|- - _Артём_   Цитата(Aner @ Sep 5 2012, 14:12) Да, это ...   Sep 5 2012, 11:15
- - MKdemiurg   А что прозрачный режим не катит?   Sep 5 2012, 11:17
- - Hoodwin   Да я и спрашиваю про прозрачный режим, как его вкл...   Sep 5 2012, 11:29
|- - _Артём_   Цитата(Hoodwin @ Sep 5 2012, 14:29) Да я ...   Sep 5 2012, 11:38
- - Hoodwin   Ага, спасибо. Пну программистов, чтоб попробовали....   Sep 5 2012, 11:48
- - MKdemiurg   Цитата(Hoodwin @ Sep 5 2012, 14:48) Ага, ...   Sep 6 2012, 08:01
|- - =F8=   Цитата(MKdemiurg @ Sep 6 2012, 11:01) Чо ...   Sep 7 2012, 14:51
|- - _Артём_   Любопытно узнать, какой скорости приёма/передачи у...   Sep 10 2012, 16:02
- - CADiLO   Это да - аппаратно через DTR лучше работает чем ++...   Sep 6 2012, 08:15
- - Hoodwin   Верю, что нога DTR лучше. Но в design guide про не...   Sep 6 2012, 09:31
- - CADiLO   >>> Но в design guide про нее написано то...   Sep 6 2012, 10:03
- - Hoodwin   Да, действительно, есть такие документы Почитаем,...   Sep 6 2012, 11:03
|- - Baser   Цитата(Hoodwin @ Sep 6 2012, 14:03) Я не ...   Sep 6 2012, 13:48
- - CADiLO   Поверьте это еще хорошие доки. Если бы вы Modulest...   Sep 6 2012, 11:46
- - Hoodwin   Ну, я привык к градациям док от TI. У них доки, в ...   Sep 6 2012, 12:38
- - MKdemiurg   Пффф.... Я тут начал чехлить bluetooth модули от к...   Sep 6 2012, 16:21
|- - alx125   Цитата(MKdemiurg @ Sep 6 2012, 20:21) Пфф...   Sep 11 2012, 00:38
- - iMeter   Всем привет. Тема интересная. Возьмите МС52i и выш...   Sep 6 2012, 18:28
- - Hoodwin   Пока еще точных данных мы не получили, так как не ...   Sep 10 2012, 18:36
|- - _Артём_   Цитата(Hoodwin @ Sep 10 2012, 21:36) Пока...   Sep 11 2012, 11:59
- - CADiLO   >>>По идее, сота отдает приоритет голосов...   Sep 10 2012, 18:42
- - Hoodwin   Нет-нет, мы никакой стек не изобретали. Сначала де...   Sep 11 2012, 16:09
|- - _Артём_   Цитата(Hoodwin @ Sep 11 2012, 19:09) Нет-...   Sep 12 2012, 11:48
- - vintick   Если я хочу проключить http-server с мк, то я прав...   Dec 4 2012, 08:22
|- - GeGeL   Цитата(vintick @ Dec 4 2012, 11:22) Если ...   Dec 4 2012, 11:05
- - vintick   А вот интересно, что я получу на входе, если буду ...   Dec 4 2012, 11:51
- - andrewlekar   Зачем так сложно? В природе существуют веб-серверы...   Dec 5 2012, 05:14
|- - GeGeL   Цитата(andrewlekar @ Dec 5 2012, 08:14) З...   Dec 5 2012, 06:51
- - zebrox   Такой вопрос. Задержки жуткие в жпрс. Запрос от с...   Dec 10 2012, 19:33
- - rx3apf   И сеть вносит, и сам модем. Особенно в прозрачном ...   Dec 10 2012, 21:21
- - zebrox   +CIPCCFG: 5,2,1024,1 2*200мс будет ждать перед отп...   Dec 10 2012, 21:55


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

 


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


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