Jump to content

    
Sign in to follow this  
dimonbest

связь нескольких модемов с компьютером

Recommended Posts

Недавно организовал связь точка-точка через tcp сокет.

Теперь возникла следующая задача:

Есть 5 модемов (количество будет меняться) и компьютер с выходом в интернет.

И этот самый компьютер должен опрашивать эти модемы и передавать им команды.

 

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

Тоже самое можно сделать через почту.

 

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

Share this post


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

Тоже самое можно сделать через почту.

 

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

 

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

Share this post


Link to post
Share on other sites
...

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

А как вы собираетесь вообще обходится без сервера? Какой-либо сервер все равно должен быть.

Или на вашем компьютере, постоянно включенном и с реальным IP, или где-нибудь арендованный.

Модемы являются клиентами, они должны инициализировать связь.

Если вы попробуете сделать наоборот (модемы - серверы, а ваш компьютер - клиент), тогда для всех модемов придется арендовать реальные IP, а это платная услуга.

Share this post


Link to post
Share on other sites
решаю сейчас подобную задачу, пошел по пути разработки собственного протокола

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

 

А как вы собираетесь вообще обходится без сервера? Какой-либо сервер все равно должен быть.

Или на вашем компьютере, постоянно включенном и с реальным IP, или где-нибудь арендованный.

Модемы являются клиентами, они должны инициализировать связь.

Если вы попробуете сделать наоборот (модемы - серверы, а ваш компьютер - клиент), тогда для всех модемов придется арендовать реальные IP, а это платная услуга.

На всех карточках у нас статические адреса (заказали услугу у оператора).

Это упростит задачу?

Share this post


Link to post
Share on other sites

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

 

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

Edited by skaarj

Share this post


Link to post
Share on other sites
На всех карточках у нас статические адреса (заказали услугу у оператора).

Это упростит задачу?

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

 

Если модем поддерживает режим TCP сервера (напр. SIM300 это умеет) или ваше ПО в железяке может это поддержать и если эти модемы должны работать только по опросу - тогда без проблем.

Модемы в режиме сервера слушают заданный порт.

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

 

Другое дело, если нужно инициировать соединение с модема, тогда такая схема в чистом виде не подойдет..

Share this post


Link to post
Share on other sites
...написавшим по на сервер...

 

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

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

 

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

С какими модемами вы сейчас кстати работаете? я с Telit

Share this post


Link to post
Share on other sites
А что примерно представляет собой ПО на сервер? На каком языке пишется? Не знаете?

 

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

С какими модемами вы сейчас кстати работаете? я с Telit

 

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

 

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

Share this post


Link to post
Share on other sites

Блин, в голове уже полная каша.

Давайте более подробно опишу ТЗ.

Есть центральный компьютер с выходом в интернет - здесь будет находиться диспетчер.

Есть клиенты, 5 модемов.

Необходимо:

1. Ра в 3 секунды опрашивать клиентов и получать от них данные (обьем одного ответа небольшой, примерно 20байт).

2. При необходимости передавать команды определенному клиенту.

 

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

 

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

 

 

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

 

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

 

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

Edited by dimonbest

Share this post


Link to post
Share on other sites

На мой взгляд можно организовать так:

Клиенты передают свою технологическую инфу на сервер с периодом 3 сек.

Сервер принимает пакеты, кладет в базу данных, потом по данным из базы делаются анализы,

графики, отчеты и т.п.

Никакого ftp, е-почты.

Только ТСР.

Статический адрес дать только серверу. (У нас статические адреса всем клиентам - дороговато все-таки).

У клиентов - симки любых опсосов, зависимость от опсосов следует сделать минимальной.

Хорошо бы серверу дать второй (резервный IP) другого оператора, можно даже и не сотового.

Если нужно передавать команды клиентам, то пожалуйста...

Для программы состороны РС дельфийский язык тоже подойдет, используйте компонент TServerSocket.

Для отладки протокола создайте тестовую прогу с TClientSocket.

Если хотите программно подключаться (отключаться, проверять подключение) к интернету пробуйте RAS библиотеку.

Ноу проблем...

Share this post


Link to post
Share on other sites

Спасибо за подробное разъяснение!

Есть вопросы.

Клиенты смогут подсоединяться к серверу поочереди, я правильно понял, одновременно не смогут?

Грубо говоря будет соединение точка-точка. Одна точка будет постоянная - сервер (диспетчер) и к нему по ТCP поочереди будут стучаться модемы (клиенты), после обмена данными - разрыв связи и подключение следующего модема.

Я правильно все понял?

Share this post


Link to post
Share on other sites
Клиенты смогут подсоединяться к серверу поочереди, я правильно понял, одновременно не смогут?

Грубо говоря будет соединение точка-точка. Одна точка будет постоянная - сервер (диспетчер) и к нему по ТCP поочереди будут стучаться модемы (клиенты), после обмена данными - разрыв связи и подключение следующего модема.

Я правильно все понял?

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

 

На установление TCP соединения через GPRS может уйти около минуты (в плохом случае), так что только постоянный коннект...

Share this post


Link to post
Share on other sites
Для программы состороны РС дельфийский язык тоже подойдет, используйте компонент TServerSocket.

Для отладки протокола создайте тестовую прогу с TClientSocket.

Можно пару вопросов по самому делфи?

И в сервере, и в клиенте, есть такое свойство, как service. Не понятно что оно означает...

Может у вас есть простенький примерчик, как отправить например текст от клиента к серверу?

Не совсем понятно...

Share this post


Link to post
Share on other sites
Может у вас есть простенький примерчик, как отправить например текст от клиента к серверу?

Не совсем понятно...

Есть пара статеек на

http://www.delphimaster.ru/articles/socksrv/index.html

http://devoid.com.ua/c-builder/cppbuilder-...rogramming.html

Свойство Service можно пока не трогать. :)

Share this post


Link to post
Share on other sites

Появилась следующая проблема.

На делфи делаю TCPserver.

А клиент - модем telit.

Так вот, при коннекте клиента к серверу происходит ошибка (событие OnClientError).

Хотя модемы между собой конектятся нормально!

Чем же эта ошибка может быть вызвана?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this