Полная версия этой страницы:
организация охранного пульта
Ув. программисты, прошу вашего мнения. В общем, требуется создать дешевый прибор GPRS сигналлизации, и , соответственно, пульт для него. Подскажите простые и надежные методы передачи данных от прибора на пульт по GPRS каналу? Может быть, Это через почтовый сервер должно быть, либо ftp сервер, или напрямую подключать устройства друг к другу. Но, соттветственно, нельзя терять передающиеся данные. Должен ли быть отдельный прибор на пульте, либо это будет простая программа на компьютере, работающая с интернет...
Цитата(Варяг @ Jul 4 2011, 07:30)

требуется создать дешевый прибор GPRS сигналлизации, и , соответственно, пульт для него. Подскажите простые и надежные методы передачи данных от прибора на пульт по GPRS каналу?
Основная проблема при обмене данными с помощью GPRS - это "серый" IP-адрес. Наличие "белого" IP упрощает обмен, но удорожает эксплуатацию. Можно это обойти используя почтовики или фтп, но оперативности это, мягко говоря, не прибавит, а в сигнализации этот параметр важен... Конечно, лучше всего - свой сервер с постоянным IP, но это - расходы... Можно ещё посмотреть в сторону серверов для бесплатной IP-телефонии: они решают проблему определения IP-адресов устройств, находящихся за NAT, но такая реализация - не тревиальна...
В общем - нужно много думать, определять приоритеты и чем-то жертвовать...
AlexandrY
Jul 4 2011, 06:14
Цитата(Варяг @ Jul 4 2011, 06:30)

Ув. программисты, прошу вашего мнения. В общем, требуется создать дешевый прибор GPRS сигналлизации, и , соответственно, пульт для него. Подскажите простые и надежные методы передачи данных от прибора на пульт по GPRS каналу? Может быть, Это через почтовый сервер должно быть, либо ftp сервер, или напрямую подключать устройства друг к другу. Но, соттветственно, нельзя терять передающиеся данные. Должен ли быть отдельный прибор на пульте, либо это будет простая программа на компьютере, работающая с интернет...
Вот
пример таблицы облачного сервиса Google собирающей данные с реального устройства.
Расходы на приобретение и поддержку такого сервиса нулевые. Доступен сервис с любого устройства имеющего выход в интернет.
Данные с устройства пересылаются по GPRS.
andrewlekar
Jul 4 2011, 06:14
Да, вопрос интересный. Традиционно это делается TCP сервером с белым IP. Я бы, при наличии хороших программистов, попробовал бы HTTP сервер поднять и веб сервис на нем. Устройства скидывали бы на него данные, а пульт периодически сливал бы себе данные. Дело в том, что традиционная схема неудобна для развертывания, а тут HTTP сервер можно разместить на хостинге или в облаке.
Цитата(AlexandrY @ Jul 4 2011, 09:14)

Вот
пример таблицы облачного сервиса Google собирающей данные с реального устройства.
Расходы на приобретение и поддержку такого сервиса нулевые. Доступен сервис с любого устройства имеющего выход в интернет.
Данные с устройства пересылаются по GPRS.
упс, мой уровень еще недостаточно высок для этого
avor_il
Jul 5 2011, 07:29
У нас это уже разработано и работает (и устройства сигнализации и пульт). Пульт - обычный компьютер с установленным TCP сервером. Устройства с сервером держат связь постоянно, т.к. каждое подключение/отключение генерит примерно 1к траффика (провайдер так калькулирует). А так устройство генерит примерно 1-2 мега траффика при отсылке alive на сервер каждые 7 минут и 5-10 сообщений в сутки. У сервера должен быть постоянный IP. Если договорится с провайдером то можно сделать приватную сетку для своих устройств, тогда на компьютер с сервером ставится GPRS модем. Или работать через инет.
Цитата(avor_il @ Jul 5 2011, 10:29)

У нас это уже разработано и работает (и устройства сигнализации и пульт). Пульт - обычный компьютер с установленным TCP сервером. Устройства с сервером держат связь постоянно, т.к. каждое подключение/отключение генерит примерно 1к траффика (провайдер так калькулирует). А так устройство генерит примерно 1-2 мега траффика при отсылке alive на сервер каждые 7 минут и 5-10 сообщений в сутки. У сервера должен быть постоянный IP. Если договорится с провайдером то можно сделать приватную сетку для своих устройств, тогда на компьютер с сервером ставится GPRS модем. Или работать через инет.
Тот вариант, когда на компьютер с сервером ставится GPRS модем, достаточно ли он надежен? нужно ли дублировать его, и сколько одновременно устройств смогут работать корректно с этим пультом?
andrewlekar
Jul 6 2011, 10:02
Цитата
от вариант, когда на компьютер с сервером ставится GPRS модем, достаточно ли он надежен? нужно ли дублировать его, и сколько одновременно устройств смогут работать корректно с этим пультом?
Надежность будет хреновая. GPRS канал имеет свойство отваливаться и пропускная способность никакая. Гораздо лучше поставить честный проводной интернет на пульт. Количество подключенных устройств в обоих случаях практически нелимитировано - считается по пропускной способности канала и не больше, чем ось на пульте может держать одновременно открытых сокетов.
Цитата(andrewlekar @ Jul 6 2011, 13:02)

Надежность будет хреновая. GPRS канал имеет свойство отваливаться и пропускная способность никакая. Гораздо лучше поставить честный проводной интернет на пульт. Количество подключенных устройств в обоих случаях практически нелимитировано - считается по пропускной способности канала и не больше, чем ось на пульте может держать одновременно открытых сокетов.
Как это нелимитировано? Лимитрировано операционкой и памятью на борту. Начиная с 2000 сокетов, не все просто.
Цитата(andrewlekar @ Jul 6 2011, 13:02)

Надежность будет хреновая. GPRS канал имеет свойство отваливаться и пропускная способность никакая. Гораздо лучше поставить честный проводной интернет на пульт. Количество подключенных устройств в обоих случаях практически нелимитировано - считается по пропускной способности канала и не больше, чем ось на пульте может держать одновременно открытых сокетов.
Понятно.КОличество одновременных подключений не лемитированно, имеете ввиду? И не подскажете источник по обучению WEB программированию. Можно ли это сделать на C# VS2008? или есть более простые решения?
Цитата(Варяг @ Jul 6 2011, 14:44)

Понятно.КОличество одновременных подключений не лемитированно, имеете ввиду? И не подскажете источник по обучению WEB программированию. Можно ли это сделать на C# VS2008? или есть более простые решения?
До сих пор еще сижу на C# vs2005, тк пока еще не придумал ничего такого что нельзя было бы на нем сделать. Моя специфика на C# немного другая(не веб программирование) но скажу, что различных источников информации (написанных профи) просто немеряно, как в электронном виде (интернет), так и в любом книжном магазине. В свое время на C# начинал с изд. WROX Карли Ватсона, где все начиналось с азов (а не для тех у кого 10лет стажа на С++). Вам нужно посмотреть ASP, ASP.NET, WEBFORMS, я думаю, что проблем у вас не будет, все получится.
andrewlekar
Jul 7 2011, 05:16
Это ему надо знать для того, чтобы действительно освоить Web программирование. Но чтобы сделать TCP сервер, WEB программирование не нужно.
Цитата(andrewlekar @ Jul 7 2011, 08:16)

Это ему надо знать для того, чтобы действительно освоить Web программирование. Но чтобы сделать TCP сервер, WEB программирование не нужно.

andrewlekar, как долго поднимается ТСР сервер?
Ткните носом в книгу, чтобы поднять ТСР сервер C#. Хотя, хочется еще пару примеров написанного кода увидеть.
MKdemiurg
Jul 7 2011, 06:45
Варяг
Простенький TCPшный сервак поднимается влёгкую на чём угодно за пару часов при знании языка. Delphi, С++, С#, php - дальше всё упирается в производительность этого сервера и обвес. Сам с этой задачей завязался - и убедился, что основная сложность не в написании сервера. ИМХО, для тестирования можно сделать самому , а для коммерческого использования надо заказывать у людей, которые только этим и занимаются.
andrewlekar
Jul 7 2011, 07:13
Да, верно. Свой сервак написать легко, но трудно его заставить хорошо и безглючно работать. Примеры найти легко - забейте в гугл "TCP server C#".
Цитата(MKdemiurg @ Jul 7 2011, 09:45)

Варяг
Простенький TCPшный сервак поднимается влёгкую на чём угодно за пару часов при знании языка. Delphi, С++, С#, php - дальше всё упирается в производительность этого сервера и обвес. Сам с этой задачей завязался - и убедился, что основная сложность не в написании сервера. ИМХО, для тестирования можно сделать самому , а для коммерческого использования надо заказывать у людей, которые только этим и занимаются.
Ну это верно. и прибор охранный тоже надо заказывать у людей, которые этим занимаются. Таким образом отпадает смысл разработки собственного прибора и пульта. Весь интерес сделать все это самому.
MKdemiurg
Jul 7 2011, 07:32
Цитата(Варяг @ Jul 7 2011, 10:13)

Ну это верно. и прибор охранный тоже надо заказывать у людей, которые этим занимаются. Таким образом отпадает смысл разработки собственного прибора и пульта. Весь интерес сделать все это самому.
Если у вас нет программиста в штате - всё сводится к одному - сделать макет и отработать логику работы, чтобы далее "скомпилить" хорошее и
окончательное ТЗ для заказа сервера на стороне. Почему? Даже если вы реализуете сервер, его желательно сделать многопоточным - уже сложнее (правда если выделять по клиенту на поток - то ничего сложного, но...). Реализовать подключение к БД, смс рассылкам, почтовикам итд Потом всё это "синхронизировать", чтобы не было всяких fatalerror и вылетов сервера в 3 часа ночи. Вообщем эти мысли к вам придут в процессе написания и тестирования.
Я вот начал, и убедился что без опыта сходу тяжко. Когда вылазит бага где нибудь между потоками с сокетными соединениями и сидишь дуплишь - или это среда не позволяет или операционка рубит или просто лажу написал в какомто месте кода.
А вот найти действительно шарящего программера - это проблема №1.
Цитата(MKdemiurg @ Jul 7 2011, 10:32)

Если у вас нет программиста в штате - всё сводится к одному - сделать макет и отработать логику работы, чтобы далее "скомпилить" хорошее и окончательное ТЗ для заказа сервера на стороне. Почему? Даже если вы реализуете сервер, его желательно сделать многопоточным - уже сложнее (правда если выделять по клиенту на поток - то ничего сложного, но...). Реализовать подключение к БД, смс рассылкам, почтовикам итд Потом всё это "синхронизировать", чтобы не было всяких fatalerror и вылетов сервера в 3 часа ночи. Вообщем эти мысли к вам придут в процессе написания и тестирования.
Сколько будет стоить такой сервер, примерно?
MKdemiurg
Jul 7 2011, 07:50
Незнаю, в действительности вам его накатают из готовых кусков под ваше ТЗ. Как договоритесь. Не больше 800$ - там всё - от шифрования до аварийного перезапуска , проектирование БД и почтового клиента. Узнавал по сайтам найма на удалёнку. В реале может дороже... Дюже много сейчас программистов и конкуренции много соответсвенно.
В Челябинске есть частное охранное предприятие "Варяг" вы оттуда?
они уже работают на подобном оборудовании , если да, то чем вас неустраивает используемое
оборудование?
avor_il
Jul 10 2011, 14:03
По поводу пропускной способности модема: на одном из серверов висит примерно 1100 устройств. Каких либо проблем по пропускной способности не замечено.
Сам сервер следит за модемом и если он отваливается то автоматически происходит реконнект.
Количество одновременный соединений конечно лимитировано. В самом простом исполнении поддерживается 2000 коннектов теоретически. При использовании IOCompletition теоретически поднимается до 65535 одновременных соединений. Сервер писан на С++ и работает под Windows не ниже XP (на старых операционках даже не знаю будет ли работать).
Цитата(avor_il @ Jul 10 2011, 17:03)

По поводу пропускной способности модема: на одном из серверов висит примерно 1100 устройств. Каких либо проблем по пропускной способности не замечено.
Сам сервер следит за модемом и если он отваливается то автоматически происходит реконнект.
Количество одновременный соединений конечно лимитировано. В самом простом исполнении поддерживается 2000 коннектов теоретически. При использовании IOCompletition теоретически поднимается до 65535 одновременных соединений. Сервер писан на С++ и работает под Windows не ниже XP (на старых операционках даже не знаю будет ли работать).
А такой вопрос... насколько я понимаю, SIM900 может одновременно поддерживать 8 устройств командой at+cipmux. Возможно ли подключать к модему на sim900 большее количество устройств, и будут ли они успевать подключаться и отключаться, не мешая остальным?
andrewlekar
Jul 11 2011, 04:41
Цитата
Возможно ли подключать к модему на sim900 большее количество устройств, и будут ли они успевать подключаться и отключаться, не мешая остальным?
Да, рано Вам сервер запускать.

Команды для SIM900 всякие-разные - это команды для собственного TCP стека SIM900. В случае подключения SIM900 как модема к компу работать будет стек операционной системы компа, а модем будет работать собственно в роли модема. Поэтому количество подключений будет достаточным для работы. А вот пропускная способность такого модема будет слабенькой. Не знаю точно, какая максимальная скорость у SIM900 по UART, но полагаю где-то 115200, то есть около 19 КБ/сек.
Цитата(andrewlekar @ Jul 11 2011, 07:41)

Да, рано Вам сервер запускать.

Команды для SIM900 всякие-разные - это команды для собственного TCP стека SIM900. В случае подключения SIM900 как модема к компу работать будет стек операционной системы компа, а модем будет работать собственно в роли модема. Поэтому количество подключений будет достаточным для работы. А вот пропускная способность такого модема будет слабенькой. Не знаю точно, какая максимальная скорость у SIM900 по UART, но полагаю где-то 115200, то есть около 19 КБ/сек.
да, ошибку свою понял... может и рано, тем не менее, надо учиться, делать. да и прибор уже готов, дело осталось за сервером
avor_il
Jul 11 2011, 05:24
Не путаем теплое с мягким

at+cipmux позволяет модему подключаться к нескольким серверам одновременно в качестве клиента. А для сервера, как сказал andrewlekar эта команда не используется. Модем действительно коннектиться на 115200, но этого хватает с головой, мы же не файлы мегабайтные гоняем по каналу, а тревожные сообщения от охранной системы. Там каждое сообщение максимум пара десятков байт. Хотя если озадачиться пересылкой допустим картинок с камер видеонаблюдения то надо переходить на 3G.
Цитата(Варяг @ Jul 11 2011, 08:17)

да, ошибку свою понял... может и рано, тем не менее, надо учиться, делать. да и прибор уже готов, дело осталось за сервером
Сам сервер не такой трудный в поднятии как база данных (например SQL) и ее интерфейсы и переферия. Вот там то поле для битвы.
Цитата(Aner @ Jul 11 2011, 11:17)

Сам сервер не такой трудный в поднятии как база данных (например SQL) и ее интерфейсы и переферия. Вот там то поле для битвы.
Охранный пульт с простейшей базой данных уже готов. только он работает пока только на смсках. Пока обошелся без SQL. Сейчас бы ТСР поднять, а потом уже за БД браться.
MKdemiurg
Jul 11 2011, 07:28
Цитата(Aner @ Jul 11 2011, 11:17)

Сам сервер не такой трудный в поднятии как база данных (например SQL) и ее интерфейсы и переферия. Вот там то поле для битвы.
Смотря на чём писать!!!
Если подключить готовые драйверы (даже желательно подключить готовые), то всё сводиться к знанию С++.
Поле для битвы начинается, когда начинаешь ловить неявные баги при конфликтах разных библиотек и подключаемых модулей.
Цитата(MKdemiurg @ Jul 11 2011, 11:28)

Смотря на чём писать!!!
Если подключить готовые драйверы (даже желательно подключить готовые), то всё сводиться к знанию С++.
Поле для битвы начинается, когда начинаешь ловить неявные баги при конфликтах разных библиотек и подключаемых модулей.
С С++ все в порядке, а вот где взять готовые драйверы...?
MKdemiurg
Jul 11 2011, 07:49
Цитата(Варяг @ Jul 11 2011, 11:39)

С С++ все в порядке, а вот где взять готовые драйверы...?
В подключаемой библиотеке.
Использую Qt , для себя выбрал MySQL( просто очень распространён). Ставишь MySQL и собираешь вручную через средства MinGW или gcc. Исходные либы поставляются вместе с MySQL.
Цитата(MKdemiurg @ Jul 11 2011, 11:49)

В подключаемой библиотеке.
Использую Qt , для себя выбрал MySQL( просто очень распространён). Ставишь MySQL и собираешь вручную через средства MinGW или gcc. Исходные либы поставляются вместе с MySQL.
Так, извиняюсь за делитанизм. Qt я так понимаю, это библиотека для ТСР...
MKdemiurg
Jul 11 2011, 07:56
Нет это условно фришарная кросплатформенная библиотека от trolltech. Nokia её в своих поделках юзает насколько я знаю.
Загуглите "Qt doc" - найдёте описание на русском.
avor_il
Jul 11 2011, 11:37
Цитата(Варяг @ Jul 11 2011, 10:28)

Охранный пульт с простейшей базой данных уже готов. только он работает пока только на смсках. Пока обошелся без SQL. Сейчас бы ТСР поднять, а потом уже за БД браться.
Хм, а как будет Ваше устройство общаться с сервером по TCP/IP? У Вас уже есть протокол обмена данными между устройством и сервером?
Цитата(avor_il @ Jul 11 2011, 15:37)

Хм, а как будет Ваше устройство общаться с сервером по TCP/IP? У Вас уже есть протокол обмена данными между устройством и сервером?
Протокол уже отлаживается, устройства с сервером общаются.
у wavecom есть несколько девайсов со встроенным TCP/IP стеком, причем можно работать либо AT командами, либо написать программу и будет автономное устройство. Кстати встроен https.
Модем Q64
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.