УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

Создание собственного DAQ-модуля


Автор Сообщение
Сообщение создано: 21. 07. 2009 [12:15]
vik.brylev
Виктор Брылев
Создатель темы
Зарегистрирован(а) с: 21.07.2009
Сообщения: 2
Здравствуйте!
Как подойти к созданию нового модуля? С чего начать? Как, для начала, допустим, сделать копию модуля SNMP с другим названием, чтобы на его основе разработать собственный модуль. OpenSCADA собираю из исходников. Просто скопировать директорию SNMP с другим именем, как я понимаю, мало, и нужно ещё править скрипт configure или Makefile. Но мой опыт сбора программ под линукс ограничен стандартным configure, make, make install. Подскажите, в каком направлении двигаться?
Сообщение создано: 21. 07. 2009 [18:08]
almaz
Almaz Karimov
Contributor
Зарегистрирован(а) с: 25.09.2008
Сообщения: 516
В соседней теме "Реализация протокола DCON" есть файл DCON.tar.gz
Там небольшая инструкция, как прикрутить новый модуль к OpenSCADA.
Модуль DCON когда-то был склонированный MODBUS icon_smile.gif

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Сообщение создано: 22. 07. 2009 [09:18]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
vik.brylev wrote:

Как подойти к созданию нового модуля? С чего начать?

Руководства пока нет.
А вообще, по мере создания новых модулей, в директориях модулей подсистем создаётся шаблонный модуль "=Tmpl=". Он содержит комментарии к API подсистемы и может быть скопирован для создания нового модуля. Доступен этот модуль не для всех подсистем, поэтому для остальных копируется любой близкий к цели.

vik.brylev wrote:

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

- Копируете близкий модуль.
- Переименовуете файлы в директории модуля как нужно.
- Переименовуете в исходниках имя исходного модуля на новый.
- Изменяете секцию "Modul info!" в *.cpp под новый модуль.
- Корректируете файл Makefile.am под имя нового модуля.
- В глобальный файл конфигурации сборочной системы OpenSCADA/configure.in добавляете два участа для нового модуля:
- Для опции отключения:
AC_ARG_ENABLE(SystemTests,AC_HELP_STRING([--disable-SystemTests], [disable build module Special/SystemTests]),
[ if test $enableval = yes; then ModSystemTests=true; else ModSystemTests=false; fi],[ ModSystemTests=true; ])

- Для обработки зависимостей нового модуля и включение его в дерево сборки:
if test ${ModSystemTests} = true; then
AC_MSG_RESULT(Build module: Special/SystemTests)
AC_CONFIG_FILES(src/moduls/special/SystemTests/Makefile)
SpecSub_mod="${SpecSub_mod}SystemTests "
fi



Learn, learn and learn better than work, work and work.
Сообщение создано: 24. 07. 2009 [06:58]
vik.brylev
Виктор Брылев
Создатель темы
Зарегистрирован(а) с: 21.07.2009
Сообщения: 2
Спасибо за подробную инструкцию, всё получилось, модуль создал.
Сообщение создано: 19. 07. 2011 [07:21]
yozhik
Алексей Николаев
Зарегистрирован(а) с: 29.11.2010
Сообщения: 127
Не силен в лицензиях GPL отсюда и вопрос. В соответствии с лицензией OpenSCADA в случае написания своего DAQ модуля под определенный протокол его исходники также надо будет распространять вместе с продуктом и выкладывать в общий доступ?
Сообщение создано: 19. 07. 2011 [08:12]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
"yozhik" wrote:

Не силен в лицензиях GPL отсюда и вопрос. В соответствии с лицензией OpenSCADA в случае написания своего DAQ модуля под определенный протокол его исходники также надо будет распространять вместе с продуктом и выкладывать в общий доступ?

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

Если модуль, на основе шаблона, напишете с нуля то он может быть под любой другой лицензией.

Learn, learn and learn better than work, work and work.



8267