Цитата Сообщение от melky Посмотреть сообщение
Ну вот если я на счетчик буду пытаться делать плагин. Счетчиков 2 или больше. В плагине задается COM порт и его настройки?
Разработчик плагина сам решает, какие параметры ему нужны и как будут устроены каналы.
Для этого в файлах json специального формата описываются форма для параметров и форма для каналов: https://docs.intrascada.com/ru/pg143

Пример: небольшая часть формы параметров плагина Modbus

{"prop": "timeout","title": "Ожидание ответа на запрос","default": 5000, "type": "number"},
{"prop" : "sendChanges", "title": "Отправлять только изменения", "type": "cb"}

Вы можете посмотреть код плагина, который установлен, прямо в админке. Например для Modbus, в разделе Плагины->MODBUS на вкладке Редактор. Формы находятся в папке v5

Ядро использует эти формы для ввода и передает данные плагину, т е плагин получит те параметры, которые определил (timeout, polldelay, ...)

Аналогично, система никак не ограничивает, как будут устроены ваши каналы. Канал имеет id, r - флаг чтения, w - флаг записи. А остальное = требования протокола + ваша фантазия.

Цитата Сообщение от melky Посмотреть сообщение
Или в какой-то надстройке которая и будет разруливать последовательные запросы? Каждый счетчик имеет несколько запросов и ответов ну по аналогии с Modbus группами.
Никаких надстроек, опрос выполняет сам плагин. Сколько и какие нужны запросы - сам отправляет, получает, парсит, как хочет.
В принципе, если пишется специализированный плагин, набор каналов известен и не требуется настройка со стороны пользователя, плагин может сам объявить каналы, описав их в манифесте или отдавать их при старте. Или даже можно отдавать динамически

Пример 1. Плагин jethomed1: https://github.com/intrahouseio/ih-v5-jethomed1-plugin
Плагин отдает фиксированные каналы с заранее заданными ID при старте, а датчики 1-Wire отдает динамически при подключении

Пример 2. Плагин laurent https://github.com/intrahouseio/ih-v5-laurent-plugin
Все каналы прописаны в манифесте

Просто нужно решить - что у вас является значением канала, которое будет отдаваться в ядро.

Цитата Сообщение от melky Посмотреть сообщение
Еще такой вопрос, два(или более) устройства в плагине могут иметь общие переменные в рамках одной линии связи? (одного COM порта)
Общие переменные-параметры или переменные сеанса? В любом случае ответ - да, это реализуется просто.

Цитата Сообщение от melky Посмотреть сообщение
Ну и есть куча других функций по аналогии, например преобразования из BCD в DEC и обратно, из строки в HEX и обратно и так далее.
Есть подобный функционал у вас?
Такой функционал уже давно есть в любом языке высокого уровня. В javascript это элементарно, причем гуглится на раз:

- parseInt( dec.toString(10),16); // DEC => BCD
- parseInt( bcd.toString(16),10); // BCD => DEC
- parseInt( hexString, 16); // HEX => BCD: '20' => 32
- yourNumber.toString(16); // BCD => HEX: 32 => '20'

Цитата Сообщение от melky Посмотреть сообщение
Проще говоря, есть ли доступ к функциям ядра и список того, что можно использовать при программировании ?
API плагина - https://docs.intrahouse.ru/ru/pg142
Минимальный плагин - https://docs.intrahouse.ru/ru/pg141
И другие разделы в пункте "Источники данных" -> "Разработка плагина"
Там есть, как работать с ядром, как создать свои формы для параметров плагина и для каналов.