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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> связь нескольких модемов с компьютером
dimonbest
сообщение Aug 29 2008, 07:38
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137



Недавно организовал связь точка-точка через tcp сокет.
Теперь возникла следующая задача:
Есть 5 модемов (количество будет меняться) и компьютер с выходом в интернет.
И этот самый компьютер должен опрашивать эти модемы и передавать им команды.

Есть вариант такой: модемы будут скидывать файлы на ftp, а комп считывать их. Но тогда надежность системы будет зависеть от оператора и от сервера. А хочется чтоб только от оператора.
Тоже самое можно сделать через почту.

Можна сделать как то только через оператора, без участия почты и ftp сервера?
Go to the top of the page
 
+Quote Post
skaarj
сообщение Aug 29 2008, 08:21
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 64
Регистрация: 2-08-08
Из: Киев
Пользователь №: 39 380



Цитата(dimonbest @ Aug 29 2008, 10:38) *
Есть вариант такой: модемы будут скидывать файлы на ftp, а комп считывать их. Но тогда надежность системы будет зависеть от оператора и от сервера. А хочется чтоб только от оператора.
Тоже самое можно сделать через почту.

Можна сделать как то только через оператора, без участия почты и ftp сервера?


решаю сейчас подобную задачу, пошел по пути разработки собственного протокола


--------------------
Электроника- наука о контактах: или он есть там,где не должен быть, или его нет там где он нужен
Go to the top of the page
 
+Quote Post
Baser
сообщение Aug 29 2008, 10:13
Сообщение #3


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

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



Цитата(dimonbest @ Aug 29 2008, 10:38) *
...
Можна сделать как то только через оператора, без участия почты и ftp сервера?

А как вы собираетесь вообще обходится без сервера? Какой-либо сервер все равно должен быть.
Или на вашем компьютере, постоянно включенном и с реальным IP, или где-нибудь арендованный.
Модемы являются клиентами, они должны инициализировать связь.
Если вы попробуете сделать наоборот (модемы - серверы, а ваш компьютер - клиент), тогда для всех модемов придется арендовать реальные IP, а это платная услуга.
Go to the top of the page
 
+Quote Post
dimonbest
сообщение Aug 29 2008, 12:15
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137



Цитата(skaarj @ Aug 29 2008, 12:21) *
решаю сейчас подобную задачу, пошел по пути разработки собственного протокола

Можете примерно идейку сказать?

Цитата(Baser @ Aug 29 2008, 14:13) *
А как вы собираетесь вообще обходится без сервера? Какой-либо сервер все равно должен быть.
Или на вашем компьютере, постоянно включенном и с реальным IP, или где-нибудь арендованный.
Модемы являются клиентами, они должны инициализировать связь.
Если вы попробуете сделать наоборот (модемы - серверы, а ваш компьютер - клиент), тогда для всех модемов придется арендовать реальные IP, а это платная услуга.

На всех карточках у нас статические адреса (заказали услугу у оператора).
Это упростит задачу?
Go to the top of the page
 
+Quote Post
skaarj
сообщение Aug 29 2008, 12:37
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 64
Регистрация: 2-08-08
Из: Киев
Пользователь №: 39 380



допустил неточность. вобщем я соединяюсь с удаленным сервером,посредством ат команд устанавливаю адрес и порт,модем відает коннект и все гут( модем настраивать в тн "transparent mode"). после того как модем соединился, шлю уже свои данные на комп порт. фактически используется PPP соединение, просто что я свои даные не пытаюсь в виде фтп или хтмл формата передавать а использую свой собственный,заранее обговоренный с программистом ,написавшим по на сервер, формат(заголовок,длина данные и тп) тут уже можно любой протокол использовать для модема и сети без разницы что передавать. что касается защиты сервера- не могу ничего порекомендовать.

статические айпишники-это хорошо,тогда можно модемы какк серверы конфигурироавать и опрашивать одним клиентомsmile.gif

Сообщение отредактировал skaarj - Aug 29 2008, 12:45


--------------------
Электроника- наука о контактах: или он есть там,где не должен быть, или его нет там где он нужен
Go to the top of the page
 
+Quote Post
Baser
сообщение Aug 29 2008, 12:50
Сообщение #6


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

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



Цитата(dimonbest @ Aug 29 2008, 15:15) *
На всех карточках у нас статические адреса (заказали услугу у оператора).
Это упростит задачу?

Упростит задачу или нет - зависит от ваших модемов (что они поддерживают) и от вашей задачи (какие данные и куда нужно посылать).

Если модем поддерживает режим TCP сервера (напр. SIM300 это умеет) или ваше ПО в железяке может это поддержать и если эти модемы должны работать только по опросу - тогда без проблем.
Модемы в режиме сервера слушают заданный порт.
Клиентская программа на компе (даже с локальным IP) - коннектится по известному IP модуля на известный порт, общается с ним и отключается. Вот и все.

Другое дело, если нужно инициировать соединение с модема, тогда такая схема в чистом виде не подойдет..
Go to the top of the page
 
+Quote Post
dimonbest
сообщение Aug 29 2008, 12:50
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137



Цитата(skaarj @ Aug 29 2008, 16:37) *
...написавшим по на сервер...

статические айпишники-это хорошо,тогда можно модемы какк серверы конфигурироавать и опрашивать одним клиентомsmile.gif

А что примерно представляет собой ПО на сервер? На каком языке пишется? Не знаете?

Опрашивать одним клиентом - это снова будет сеанс типа точка-точка?
С какими модемами вы сейчас кстати работаете? я с Telit
Go to the top of the page
 
+Quote Post
skaarj
сообщение Aug 29 2008, 16:37
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 64
Регистрация: 2-08-08
Из: Киев
Пользователь №: 39 380



Цитата(dimonbest @ Aug 29 2008, 15:50) *
А что примерно представляет собой ПО на сервер? На каком языке пишется? Не знаете?

Опрашивать одним клиентом - это снова будет сеанс типа точка-точка?
С какими модемами вы сейчас кстати работаете? я с Telit


я работаю с сим300дз. по на сервер писалось на си++, в тонкостях сетевого программирования на большом брате я не разбираюсь, мне мой программист дал уже наброски протокола,какие данные он хотел бы получать на сервер, в соответствии с ним я и формировал данные в микроконтроллере. для меня вся лабуда "модем-сеть жпрс-интернет-сервер" была, вобщемто прозрачная- я подавал на ком порт модема некоторые данные и точно такие же данные получал программа-сервер. все классно,только мне не удпалось больше 1 кб\сек получить. примитивный подход,но для начала этого достаточно было.

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


--------------------
Электроника- наука о контактах: или он есть там,где не должен быть, или его нет там где он нужен
Go to the top of the page
 
+Quote Post
dimonbest
сообщение Sep 2 2008, 07:12
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137



Блин, в голове уже полная каша.
Давайте более подробно опишу ТЗ.
Есть центральный компьютер с выходом в интернет - здесь будет находиться диспетчер.
Есть клиенты, 5 модемов.
Необходимо:
1. Ра в 3 секунды опрашивать клиентов и получать от них данные (обьем одного ответа небольшой, примерно 20байт).
2. При необходимости передавать команды определенному клиенту.

Используемые модемы - telit gt863 со встроеным TCP/IP стеком, IP адреса статические.

Как писал в предыдущем посте, есть решение реализовать это через ftp сервер и почту. Как по мне это будет не совсем надежно. Хочется все это делать только через интернет.


Из языков программирования под компьютер знаю только DELPHI, и то не настолько чтоб очень.

Подскажите пожалуйста куда рыть чтоб сделать проще и надежней... Запутался совсем...

P.S. Вариант устраивать соединение по очереди с каждым модемом типа точка-точка (TCP-сервер и TCP клиент) не подходит, т.к. на это все будет тратиться много времени...

Сообщение отредактировал dimonbest - Sep 2 2008, 07:15
Go to the top of the page
 
+Quote Post
million68
сообщение Sep 2 2008, 12:25
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 9-03-07
Из: USSR
Пользователь №: 26 007



На мой взгляд можно организовать так:
Клиенты передают свою технологическую инфу на сервер с периодом 3 сек.
Сервер принимает пакеты, кладет в базу данных, потом по данным из базы делаются анализы,
графики, отчеты и т.п.
Никакого ftp, е-почты.
Только ТСР.
Статический адрес дать только серверу. (У нас статические адреса всем клиентам - дороговато все-таки).
У клиентов - симки любых опсосов, зависимость от опсосов следует сделать минимальной.
Хорошо бы серверу дать второй (резервный IP) другого оператора, можно даже и не сотового.
Если нужно передавать команды клиентам, то пожалуйста...
Для программы состороны РС дельфийский язык тоже подойдет, используйте компонент TServerSocket.
Для отладки протокола создайте тестовую прогу с TClientSocket.
Если хотите программно подключаться (отключаться, проверять подключение) к интернету пробуйте RAS библиотеку.
Ноу проблем...
Go to the top of the page
 
+Quote Post
dimonbest
сообщение Sep 2 2008, 12:36
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137



Спасибо за подробное разъяснение!
Есть вопросы.
Клиенты смогут подсоединяться к серверу поочереди, я правильно понял, одновременно не смогут?
Грубо говоря будет соединение точка-точка. Одна точка будет постоянная - сервер (диспетчер) и к нему по ТCP поочереди будут стучаться модемы (клиенты), после обмена данными - разрыв связи и подключение следующего модема.
Я правильно все понял?
Go to the top of the page
 
+Quote Post
Baser
сообщение Sep 2 2008, 13:16
Сообщение #12


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

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



Цитата(dimonbest @ Sep 2 2008, 15:36) *
Клиенты смогут подсоединяться к серверу поочереди, я правильно понял, одновременно не смогут?
Грубо говоря будет соединение точка-точка. Одна точка будет постоянная - сервер (диспетчер) и к нему по ТCP поочереди будут стучаться модемы (клиенты), после обмена данными - разрыв связи и подключение следующего модема.
Я правильно все понял?

Все клиенты могут подключаться одновременно. Поскольку вы хотите период опроса 3 сек, то связь должна быть через GPRS. При этом ваши мобильные клиенты будут каждый независимо подключаться через провайдера к интернету. А поддержать на сервере 5 (50, 100) одновременных соединений не проблема.

На установление TCP соединения через GPRS может уйти около минуты (в плохом случае), так что только постоянный коннект...
Go to the top of the page
 
+Quote Post
dimonbest
сообщение Sep 4 2008, 07:18
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137



Цитата(million68 @ Sep 2 2008, 16:25) *
Для программы состороны РС дельфийский язык тоже подойдет, используйте компонент TServerSocket.
Для отладки протокола создайте тестовую прогу с TClientSocket.

Можно пару вопросов по самому делфи?
И в сервере, и в клиенте, есть такое свойство, как service. Не понятно что оно означает...
Может у вас есть простенький примерчик, как отправить например текст от клиента к серверу?
Не совсем понятно...
Go to the top of the page
 
+Quote Post
million68
сообщение Sep 5 2008, 05:42
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 59
Регистрация: 9-03-07
Из: USSR
Пользователь №: 26 007



Цитата(dimonbest @ Sep 4 2008, 11:18) *
Может у вас есть простенький примерчик, как отправить например текст от клиента к серверу?
Не совсем понятно...

Есть пара статеек на
http://www.delphimaster.ru/articles/socksrv/index.html
http://devoid.com.ua/c-builder/cppbuilder-...rogramming.html
Свойство Service можно пока не трогать. smile.gif
Go to the top of the page
 
+Quote Post
dimonbest
сообщение Oct 23 2008, 14:05
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 15-07-07
Пользователь №: 29 137



Появилась следующая проблема.
На делфи делаю TCPserver.
А клиент - модем telit.
Так вот, при коннекте клиента к серверу происходит ошибка (событие OnClientError).
Хотя модемы между собой конектятся нормально!
Чем же эта ошибка может быть вызвана?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 9th July 2025 - 20:54
Рейтинг@Mail.ru


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