Здравствуйте.
Имеется:
Ubuntu
Некая девайсина с linux kernel на борту и SNMP
Знания PHP over 5 лет
Описание:
Девайсина имеет реле, сенсоры.. и управляется это через SNMP. Хочу я написать программу, чтобы считывать данные с сенсоров и переключать реле. Как я понимаю, программа будет раза 2 в секунду посылать запросы на девайсину на каждый сенсор.. т.е. в памяти она будет все время. на php такое писать не охота, сборщик мусора там никудышный.
Вопрос:
Какой язык мне выбрать: C++ или PYTHON? Оба я толком не знаю, будет интересно. Второй мне милее, первый пугает. С точки зрения этой задачи на каком языке проще будет реализовать ее?
PS.
Опыта разработки приложений для *nix нету вообще. Писал в детстве на паскале, сях, c++ малость.. но все под win32. Так что интересно будет вдвойне.
Это, я так понимаю, будет демон, да?
Спасибо.
SNMP. С++ vs PYTHON («Проблемы, перспективы, истории успеха» ©)
Модератор: Модераторы разделов
-
eddy
- Сообщения: 3321
- Статус: Красный глаз тролля
- ОС: ArchLinux
Re: SNMP. С++ vs PYTHON
Т.к. вы не знаете ни тот язык программирования, ни другой, можете хоть на хаскеле писать - все равно это будет очень долго 
А вообще, задача простая. Демон может запускаться как вручную, так и при первом обращении к нему. Узнавать параметры можно при помощи одного из множества разнообразных способов. Но для реализации вам еще, помимо литературы по выбранному языку, надо будет почитать хотя бы Стивенса "unix: взаимодействие процессов".
Я, например, реализовал это взаимодействие через отображаемый в память файл (когда данных немного) или при помощи очередей сообщений (когда надо было обеспечить передачу клиенту более объемных порций информации).
Чтобы работать с "железякой" вам тоже придется повозиться...
А вообще, задача простая. Демон может запускаться как вручную, так и при первом обращении к нему. Узнавать параметры можно при помощи одного из множества разнообразных способов. Но для реализации вам еще, помимо литературы по выбранному языку, надо будет почитать хотя бы Стивенса "unix: взаимодействие процессов".
Я, например, реализовал это взаимодействие через отображаемый в память файл (когда данных немного) или при помощи очередей сообщений (когда надо было обеспечить передачу клиенту более объемных порций информации).
Чтобы работать с "железякой" вам тоже придется повозиться...
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка
Спасибо сказали:
-
Denisiuk
- Сообщения: 114
- ОС: Ubuntu
Re: SNMP. С++ vs PYTHON
Спасибо. Надеюсь все не будет очень уж долго(если не учитывать то, что пишу для себя, и в свободное время).
Задача несложная:
запускается процесс,
считывает из конфига какие сенсоры дергать, правила поведения при возникновении события(например, сенсор CO2 информирует об X% содержания -> включаем реле #3 где у нас пищит пьезодинамик),
опрашивает сенсоры,
скидывает показания в файлы, пишет логи, ждет ответного сигнала когда выполнятся условия
на питоне такое написать не должно быть сложным. наверное, я и до написания поста это решил, но нужно было удостовериться, что на питоне можно писать демоны(ведь я правильно понял?).
Задача несложная:
запускается процесс,
считывает из конфига какие сенсоры дергать, правила поведения при возникновении события(например, сенсор CO2 информирует об X% содержания -> включаем реле #3 где у нас пищит пьезодинамик),
опрашивает сенсоры,
скидывает показания в файлы, пишет логи, ждет ответного сигнала когда выполнятся условия
на питоне такое написать не должно быть сложным. наверное, я и до написания поста это решил, но нужно было удостовериться, что на питоне можно писать демоны(ведь я правильно понял?).
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: SNMP. С++ vs PYTHON
все же понятие "демон" скорее описывает то как запущен и работает процесс, чем какие-то шибко особенные свойства процесса заложенные программистом.
ну то есть запустив что-то типа простого шелловского while true; do echo 1 > mylog; sleep 1; done в бэкграунде, вы получите по-сути своей демон, запустив просто в шелле - демона таки не получится. никакой особой "регистрации" в системе как демона не нужно.
-
Denisiuk
- Сообщения: 114
- ОС: Ubuntu
Re: SNMP. С++ vs PYTHON
я уточнял корректность использования термина "демон", вы ответили. спасибо.
были у меня сомнения, что по-хорошему нужно иметь управление сервисом демона, как, например, /etc/init.d/xxx start
в целом же, я привык к php, а там скрипт, хоть и будет работать 5 часов без особых проблем.. рано или поздно он засрет всю память...
-
watashiwa_daredeska
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: SNMP. С++ vs PYTHON
Всё познаётся в сравнении. Я его сборщик мусора с PHP не сравнивал, но скрипты, бывалыча и более недели работали без особого раздувания. Но это как писать…
Мои розовые очки
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: SNMP. С++ vs PYTHON
можно иметь и скрипт в /etc/init.d/. То что он будет делать - это просто пускать Ваш скрипт в бэкграунде, и в случае stop - убивать его. Там тоже в принципе никакой магии нет, хотя в некоторых дистрибутивах содержимое стартового скрипта может напугать.
мне кажется что это скорее особенность скрипта, чем сборщика мусора php. Да и возможность явно сказать "мне больше эта фигня не нужна" в php должна быть.
Спасибо сказали:
-
Denisiuk
- Сообщения: 114
- ОС: Ubuntu