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

 
 
> 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
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 35)
_Артём_
сообщение Sep 5 2012, 10:50
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Hoodwin @ Sep 5 2012, 13:26) *
там вроде только 42.8Кбит/с обещано

Ну, возможно придётся "закатать обратно"....

тут про sim900&GPRS

Или вы не согласны?
Go to the top of the page
 
+Quote Post
Aner
сообщение Sep 5 2012, 11:12
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



Да, это проблема и она не одна, из-за которой, например мы во многих проектах ставим проц и пользуем стек внутри этого проца.
В SIM900 стек хоть и хорош, но из-за AT команд применение стека ограничено.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Sep 5 2012, 11:15
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Aner @ Sep 5 2012, 14:12) *
Да, это проблема и она не одна, из-за которой, например мы во многих проектах ставим проц и пользуем стек внутри этого проца.
В SIM900 стек хоть и хорош, но из-за AT команд применение стека ограничено.

И каких скоростей удаётся добится?
Какой стек используете, если не секрет?
Go to the top of the page
 
+Quote Post
MKdemiurg
сообщение Sep 5 2012, 11:17
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



А что прозрачный режим не катит?
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Sep 5 2012, 11:29
Сообщение #6


Знающий
****

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



Да я и спрашиваю про прозрачный режим, как его включить то?
Хочется как с модемом раньше было, получил CONNECT и пиши себе все что хочешь, потом +++ и обратно к AT командам. Такое можно сделать?
Ну, я понимаю, что при интерфейсе, поддерживающем потенциально несколько соединений, это не всегда возможно сделать, но может быть можно сказать, что вот хочу превратить соединение X в простой терминал, и после этого прозрачный доступ как по модему.

Сообщение отредактировал Hoodwin - Sep 5 2012, 11:30
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Sep 5 2012, 11:38
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Hoodwin @ Sep 5 2012, 14:29) *
Да я и спрашиваю про прозрачный режим, как его включить то?


Из SIM900_TCPIP_Application Note_V1.02.pdf:
Цитата
AT+CIPMODE=1 //Enable transparent mode

OK
AT+CGATT?
+CGATT: 1
OK
AT+CSTT=”CMNET”

OK

AT+CIICR


AN_SIM900_TCPIP_V1.02 1 1 2011.04.01
Smart Machine Smart Decision
OK

AT+CIFSR

10.76.157.180

AT+CIPSTART=”TCP”,”116.228.221.51”,”8500”

OK

CONNECT
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Sep 5 2012, 11:48
Сообщение #8


Знающий
****

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



Ага, спасибо. Пну программистов, чтоб попробовали...
Go to the top of the page
 
+Quote Post
MKdemiurg
сообщение Sep 6 2012, 08:01
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Цитата(Hoodwin @ Sep 5 2012, 14:48) *
Ага, спасибо. Пну программистов, чтоб попробовали...


Чо там пробывать - всё прекрасно работает. Только +++ советую заменить на ногу DTR
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Sep 6 2012, 08:15
Сообщение #10


Гуру
******

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



Это да - аппаратно через DTR лучше работает чем +++


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Sep 6 2012, 09:31
Сообщение #11


Знающий
****

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



Верю, что нога DTR лучше. Но в design guide про нее написано только в отношении sleep, про режим терминала ничего не сказано. Вообще странно, что там все как-то половинчато расписано. DTR можно использовать для перевода модуля в спящий режим, но для этого надо сначала включить эту фичу (AT+CSCLK=1), а можно ее не включать и переводить в спячку с помощью AT+CFUN. Аналогично, расписаны фичи сигнала RING, а потом выясняется, что статусы звонков и СМС прекрасно валятся по UART. Спрашивается, зачем тогда пин анализировать. Почитав этот документ я сделал вывод, что больше пользы будет от RING, и сейчас подключены три сигнала RING, TXD, RXD. Вопрос сводится к тому, действительно ли DTR имеет функцию входа выхода из режима команд AT и простого терминала, и можно ли его тогда подключить к МК вместо RING. Дело в том, что выводов свободных у МК уже нет, и нужно искать компромис.

Go to the top of the page
 
+Quote Post
CADiLO
сообщение Sep 6 2012, 10:03
Сообщение #12


Гуру
******

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



>>> Но в design guide про нее написано только в отношении sleep, про режим терминала ничего не сказано. Вообще странно, что там все как-то половинчато расписано.

А кроме design guide что-то пользовали??? Например апнотесы? Там поболее написано.....

По первому вопросу
SIM900_TCPIP_Application Note_V1.02.pdf

По DTR
SIM900_Serial Port_Application Note_V1.03.pdf

http://microchip.ua/simcom/?link=/SIM900x/AppNotes


Я обычно исхожу из того что разработчик просмотрел всю доступную документацию и не нашел ответ или не допонял его.
Ваши вопросы просто не возникли бы после прочтения апнотесов. Тем более что все доки в свободном доступе.


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Sep 6 2012, 11:03
Сообщение #13


Знающий
****

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



Да, действительно, есть такие документы sm.gif Почитаем, спасибо. Я не против чтения док, просто культурные фирмы ссылаются обычно из главного документа на дополнительные. Читать вообще все доки, чтобы воспользоваться 10% - это неправильно. Ну, видимо, у SIMCOM такая нетривиальная организация док, не совсем привычно, мягко говоря.

Например, глянул бегло в Serial port AN. Оказывается, там приведены схемы подключения к МК со сдвигом уровней. Зато в design guide их нет, и даже нет ссылки, что есть подробный мануал на Serial port, в котором повторено все, что есть в design guide.
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Sep 6 2012, 11:46
Сообщение #14


Гуру
******

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



Поверьте это еще хорошие доки. Если бы вы Modulestek посмотрели, то вообще ахнули.
Китайцы.... И самое интересное что есть у фирм даже красиво оформленые документы, а информативности еще меньше....

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


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Sep 6 2012, 12:38
Сообщение #15


Знающий
****

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



Ну, я привык к градациям док от TI. У них доки, в которых расписана столбовая дорога, называются user guide, иногда reference guide. Но никогда (!) не application notes. В Application notes они публикуют труды своих инженеров (с указанием авторства), которые могут быть полезны кому-то, например, практическая реализация какого-то алгоритма, справка по использованным для него ресурсам, и т.п. То есть это весьма такие второстепенные документы, которых может быть много, и которые могут никогда не пригодиться. При этом документ, в котором описаны absolute maximum ratings, electrical characteristics, AC timing characteristics, назначение выводов и чертеж, коды для заказа, обычно называется datasheet, а не hardware design.

Конечно это все не фатально, научимся, будет работать, никуда не денется sm.gif.

Go to the top of the page
 
+Quote Post
Baser
сообщение Sep 6 2012, 13:48
Сообщение #16


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Hoodwin @ Sep 6 2012, 14:03) *
Я не против чтения док, просто культурные фирмы ссылаются обычно из главного документа на дополнительные. Читать вообще все доки, чтобы воспользоваться 10% - это неправильно. Ну, видимо, у SIMCOM такая нетривиальная организация док, не совсем привычно, мягко говоря.

Ну, можете считать, что Simcom пока что фирма некультурная biggrin.gif издержки роста...
Сколько лет Texas-у и сколько Simcom-у
Сейчас документация уже вполне приличная, хотя и разбросана по многим документам не слишком системно.
Радуйтесь и этому, я когда начинал несколько лет назад, было всего два документа: хардварный дизайн и АТ-команды, где информации было раза в три меньше чем сейчас. И куча глюков в железе и софте. Только форум и помогал... beer.gif
Go to the top of the page
 
+Quote Post
MKdemiurg
сообщение Sep 6 2012, 16:21
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939



Пффф.... Я тут начал чехлить bluetooth модули от китайцев. Там кроме IDE с его хелпом документации НЕТ ВООБЩЕ lol.gif А сим-ком по сравнению - хааарошая европейская фирма rolleyes.gif
Go to the top of the page
 
+Quote Post
iMeter
сообщение Sep 6 2012, 18:28
Сообщение #18





Группа: Новичок
Сообщений: 7
Регистрация: 3-09-12
Из: Харьков
Пользователь №: 73 369



Всем привет.
Тема интересная. Возьмите МС52i и выше, все получится.
Одно но. Вы уверены, что интернет сервис (tcp/ip stack) работает по GPRS-у? Я не уверен.
Удачи Вам.
Go to the top of the page
 
+Quote Post
=F8=
сообщение Sep 7 2012, 14:51
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 7-07-07
Из: Донецк
Пользователь №: 28 954



Цитата(MKdemiurg @ Sep 6 2012, 11:01) *
Чо там пробывать - всё прекрасно работает. Только +++ советую заменить на ногу DTR

А еще лучше мульнимлексный режим юзать - по одному каналу передаете, по другому командуете.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Sep 10 2012, 16:02
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Любопытно узнать, какой скорости приёма/передачи удалось добится.
Или ещё тестируется?
Спасибо.
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Sep 10 2012, 18:36
Сообщение #21


Знающий
****

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



Пока еще точных данных мы не получили, так как не прикрутили передачу больших объемов данных. Пока что видно, что сетка дает довольно большую задержку: одиночный запрос-ответ затягивается на 5-7 секунд. Но вот у нас протокол поддерживает конвейерную обработку запросов, поэтому мы пробовали посылать 5 запросов подряд, ну где-то через 100 мс каждый. Запрос и ответ занимают около 20 байт. По логам видно, что тормозят первые, потом начинается некоторое оживление, можно наблюдать интервал прихода ответов около 16 мс. Из чего мы получили грубую оценку 19 байт / 16 мс ~= 1.2 Кб/с. Пока не готов ничего сказать про то, насколько это близко к истине, и что будет при передаче больших объемов данных. По идее, сота отдает приоритет голосовым данным, и поэтому скорости и задержки могут быть нестабильны.

В связи с этими соображениями возник вопрос, можно ли синхронизировать RTC (время) внутри модуля по сети? И с какой точностью это можно сделать? Нам вот хочется с погрешностью не более 0.5с, а лучше 100 мс.
Но при таком routd trip'е что-то не совсем ясно как. Нет никаких гарантий, что время пролета пакета туда равно времени пролета обратно.
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Sep 10 2012, 18:42
Сообщение #22


Гуру
******

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



>>>По идее, сота отдает приоритет голосовым данным

100% Да
При пиковой нагрузке слотов под данные не будет вообще.


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
alx125
сообщение Sep 11 2012, 00:38
Сообщение #23


Местный
***

Группа: Свой
Сообщений: 202
Регистрация: 18-05-09
Из: Novosibirsk
Пользователь №: 49 204



Цитата(MKdemiurg @ Sep 6 2012, 20:21) *
Пффф.... Я тут начал чехлить bluetooth модули от китайцев. Там кроме IDE с его хелпом документации НЕТ ВООБЩЕ lol.gif А сим-ком по сравнению - хааарошая европейская фирма rolleyes.gif


Если не секрет, то что за модуль используете? Какой интерфейс - UART, USB? Какая цена?
Ссылочку дайте пожалуйста
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Sep 11 2012, 11:59
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Hoodwin @ Sep 10 2012, 21:36) *
Пока еще точных данных мы не получили, так как не прикрутили передачу больших объемов данных. Пока что видно, что сетка дает довольно большую задержку: одиночный запрос-ответ затягивается на 5-7 секунд. Но вот у нас протокол поддерживает конвейерную обработку запросов, поэтому мы пробовали посылать 5 запросов подряд, ну где-то через 100 мс каждый. Запрос и ответ занимают около 20 байт. По логам видно, что тормозят первые, потом начинается некоторое оживление, можно наблюдать интервал прихода ответов около 16 мс. Из чего мы получили грубую оценку 19 байт / 16 мс ~= 1.2 Кб/с.

Спасибо.
То есть никаких чудес от использования своего стека TCP (а что за стек кстати?) не получилось - всё те же единицы килобайт в секунду.

Цитата(Hoodwin @ Sep 10 2012, 21:36) *
По логам видно, что тормозят первые, потом начинается некоторое оживление, можно наблюдать интервал прихода ответов около 16 мс. Из чего мы получили грубую оценку 19 байт / 16 мс ~= 1.2 Кб/с.

Тоже недавно пробовал закачивать данные на модуль (использовал стек sim900) с ПК (передавал пакетами ~530 байт): получилось 2-3 пакета в секунду, что соответствует 1-2 кБ/сек.
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Sep 11 2012, 16:09
Сообщение #25


Знающий
****

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



Нет-нет, мы никакой стек не изобретали. Сначала делали на TCP API от SimCom, потом переделали на transparrent mode. Наш собственный протокол (не стек) построен на подмножестве символов ASCII 32-ASCII 127, так что он на transparrent mode хорошо ложится. Приведенные выше данные по скорости относятся именно к transparrent mode. Скорость мы еще погоняем.

на самом деле у нас там всюду стоят довольно большие чипы NAND в связке с FRAM, сначала все пишется в FRAM, потом, по достижении 2Кб, в фоновом режиме переписывается в NAND. Объем NAND такой, что хватит на всю жизнь прибора. Поэтому скорость канала GPRS не так критична, она представляет интерес только для оценки, на сколько приборов хватит одного GSM-модуля, в среднем. То есть, это больше экономическое требование, чем техническое.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Sep 12 2012, 11:48
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Hoodwin @ Sep 11 2012, 19:09) *
Нет-нет, мы никакой стек не изобретали.

Понял, спасибо.
Go to the top of the page
 
+Quote Post
vintick
сообщение Dec 4 2012, 08:22
Сообщение #27


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

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



Если я хочу проключить http-server с мк, то я правильно понял:

-я открываю сервер и становлюсь в ожидание.
-получаю конект от клиента.
-получаю запрос (GET например, вся расшифровка в мк).
-перехожу в Transp.mode отдаю данные (т.е. html).
-возвращаюсь в com.mode.
-жду следующего запроса.

Но http требует дисконекта каждый раз
после отработки запроса и нового конекта пои след. запросе.
Как это будет выглядеть на что повлияет, если так
дергать конект? (IP статический, конечно). Или надо другой
протокол использовать?
Go to the top of the page
 
+Quote Post
GeGeL
сообщение Dec 4 2012, 11:05
Сообщение #28


Местный
***

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



Цитата(vintick @ Dec 4 2012, 11:22) *
Если я хочу проключить http-server с мк, то я правильно понял:

-я открываю сервер и становлюсь в ожидание.
-получаю конект от клиента.
-получаю запрос (GET например, вся расшифровка в мк).
-перехожу в Transp.mode отдаю данные (т.е. html).
-возвращаюсь в com.mode.
-жду следующего запроса.

Но http требует дисконекта каждый раз
после отработки запроса и нового конекта пои след. запросе.
Как это будет выглядеть на что повлияет, если так
дергать конект? (IP статический, конечно). Или надо другой
протокол использовать?


Речь идет о TCP-конекте или о GPRS-конекте?
Если о TCP, то клиент (браузер) по идее сам закрывает соединение после получения HTML, после чего слущающий сокет модуля готов принять новое соединение (даже если он на одного клиента рассчитан).
Go to the top of the page
 
+Quote Post
vintick
сообщение Dec 4 2012, 11:51
Сообщение #29


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

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



А вот интересно, что я получу на входе, если буду выходить
из IExplorer на свой stat.IP ?
Я получу конект с сервером (например REMOTE IP 192.168.1.5,
клиент же подразумевает конект)?
И куда денется идущий следом GET запрос? Он получиться в виде
данных или нет?

Go to the top of the page
 
+Quote Post
GeGeL
сообщение Dec 4 2012, 17:14
Сообщение #30


Местный
***

Группа: Свой
Сообщений: 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
andrewlekar
сообщение Dec 5 2012, 05:14
Сообщение #31


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Зачем так сложно? В природе существуют веб-серверы: апач или иис. Если уж сильно хочется написать самому, то можно взять питон или перл и реализовать веб-сервер в десяток строчек.
Go to the top of the page
 
+Quote Post
GeGeL
сообщение Dec 5 2012, 06:51
Сообщение #32


Местный
***

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



Цитата(andrewlekar @ Dec 5 2012, 08:14) *
Зачем так сложно? В природе существуют веб-серверы: апач или иис. Если уж сильно хочется написать самому, то можно взять питон или перл и реализовать веб-сервер в десяток строчек.


Так в том то и дело, что на самом деле это, наоборот, очень просто sm.gif
На С практически тоже в несколько строчек получается. А прикручивать и настраивать тот же апач + SQL на порядок сложнее этих нескольких строчек. Да и на рнр я не особо мастер sad.gif
Кроме того, изначально речь шла об реализации http-сервера на базе GSM-модуля (на микроконтроллере): тут уж все вручную придется все делать.
А по поводу моей реализации GPS-сервера: на VDS за 5 уе/мес (500 MHz, 256RAM) запускаю полсотни таких демонов, каждый на 254 машины, загрузка мизерная. А какие ресурсы потребует классический подход для 10000 трекеров?

Сообщение отредактировал GeGeL - Dec 5 2012, 06:53
Go to the top of the page
 
+Quote Post
vintick
сообщение Dec 5 2012, 07:06
Сообщение #33


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

Группа: Участник
Сообщений: 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
zebrox
сообщение Dec 10 2012, 19:33
Сообщение #34


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

Группа: Участник
Сообщений: 121
Регистрация: 17-04-09
Пользователь №: 47 838



Такой вопрос.
Задержки жуткие в жпрс.

Запрос от сима(20байт), ответ от сервера(150байт) занимает 1.3-1.5 сек, это у всех так или только у меня?
Так посчитал, то у меня скорость обмена в райое 1200бит/сек, это нормальная скорость, или что-то не так?

Работаю в прозрачном режиме, переход в командый по ноге дтр.

Спасибо

Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 10 2012, 21:21
Сообщение #35


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



И сеть вносит, и сам модем. Особенно в прозрачном режиме - пока не выйдет таймаут, пакет не будет отправлен, так что еще почти полсекунды на это...
Go to the top of the page
 
+Quote Post
zebrox
сообщение Dec 10 2012, 21:55
Сообщение #36


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

Группа: Участник
Сообщений: 121
Регистрация: 17-04-09
Пользователь №: 47 838



+CIPCCFG: 5,2,1024,1
2*200мс будет ждать перед отправкой данных.

А в текстовом режиме, только ожидание ">" длится 500мс.


как-же его ускорить то...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 07:11
Рейтинг@Mail.ru


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