Сообщение создано: 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
21 век - век повсеместной автоматизации. Главное - во благо всем людям.
|
Сообщение создано: 22. 07. 2009 [09:18]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
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
Сообщения: 3750
|
"yozhik" wrote:
Не силен в лицензиях GPL отсюда и вопрос. В соответствии с лицензией OpenSCADA в случае написания своего DAQ модуля под определенный протокол его исходники также надо будет распространять вместе с продуктом и выкладывать в общий доступ?
В соответствии с GPL, публикации, при распространении, подлежит исходный код, основанный на ранее лицензированном под GPL коде. Т.е. если в основу вашего модуля ляжет уже существующий модуль, не шаблон, то код нового модуля должен быть также лицензирован под GPL, а значит и открыт.
Если модуль, на основе шаблона, напишете с нуля то он может быть под любой другой лицензией.
Learn, learn and learn better than work, work and work.
|