Ответы в темах
-
АвторЗаписи
-
akofor@mail.ru
УчастникИнтересует именно реализация в PluginView, по логике поддержка форм должна быть там
akofor@mail.ru
УчастникСпасибо! А как данная система работает с другими плагинами(например, квитирование событий)? Нужно предоставить путь к js файлу соответствующего плагина (ChartScriptUrl = «»;
CommandScriptUrl = «»;
EventAckScriptUrl = «»;
NotificationScriptUrl = «»;)
В случае графиков этот скрипт должен возвращать ссылку на соответствующий заданным параметрам график. А что должны делать скрипты для плагинов уведомлений, событий, работы с пользователями?akofor@mail.ru
УчастникВообще, функционал представлений можно расширить, сделав вместо схемы или таблицы кастомный веб-плагин, где можно уже добавить какие хочешь элементы и функционал, но делать придется вручную) Можно тогда уж заняться разработкой редактора веб-плагинов
akofor@mail.ru
УчастникКак это бывает, на следующий день ошибка решилась сама по себе
Возможно, из-за того что Администратор не всегда сохраняет конфигурацию, пока его не закрыть и не открыть заново.akofor@mail.ru
УчастникЗачем для этого логический модуль ? Это делается выходной формулой
А вообще, решил сделать так, чтобы при настройке новых проектов использовать старый модуль и не настраивать отдельно каналы
akofor@mail.ru
УчастникНе могли бы вы привести пример формулы? Было бы хорошо найти актуальную документацию по формулам, потому что я находил только какую-то старую…
akofor@mail.ru
УчастникДействительно работает, можно от имени клиента получать информацию с каналов и отправлять на них команды. Однако заметил также, что в .cshtml файле в те элементы, из которых вы хотите отправлять команды (например, поля для ввода данных), нужно вставлять
<form method=»post» id=»commandForm»>
@Html.AntiForgeryToken()Иначе выдает ошибку 400
akofor@mail.ru
УчастникЯ примерно это и сделал — взял из существующих плагинов часть кода, отвечающую за API, и вставил в свою… Просто из существующих плагинов есть только служебные по типу PlgMain, PlgChart, достаточно проблематично будет из них вычленить отдельную страницу для тестирования
akofor@mail.ru
УчастникВ коде страницы других плагинов есть нужные строчки:
<script src=»/lib/jquery/dist/jquery.min.js»></script>
<script src=»/lib/bootstrap/dist/js/bootstrap.bundle.min.js»></script>
<script src=»/js/scada-common.js?v=i3sMGtyt1lTSEf8acito3jEoqwdRCOMBEnhlW9xK8HU»></script>
и тдakofor@mail.ru
Участник<div id=»divDescr1″></div>
<div id=»divData1″></div>весь код)
akofor@mail.ru
УчастникКасательно моей второй мысли: да, можно
public override void OnCommand(TeleCommand command, CommandResult commandResult)
{
int cn = command.CnlNum;
double cv = command.CmdVal;
CnlData newOutputData = new CnlData(cv, 1);
ServerContext.WriteCurrentData(cn, newOutputData);
}Но хотелось бы знать, может, не обязательно для этих целей делать логический модуль
akofor@mail.ru
УчастникЛибо же, если в коде логического модуля можно перехватывать приходящие на канал команды, и с помощью ServerContext.WriteCurrentData записывать значение команды в канал…
akofor@mail.ru
УчастникВариант 2 был бы идеален, спасибо
akofor@mail.ru
УчастникЗаписать значение в один или несколько каналов.
Не могли бы вы привести пример, как в коде веб-плагина выглядит запись/считывание значения канала?
akofor@mail.ru
УчастникДелал просто по оф.руководству https://rapidscada.net/docs/ru/latest/developers/plugin-development, никакого функционала далее не добавлял, потому что не успел разобраться, как с веб-плагина отправлять данные на каналы(и как читать их тоже). Вроде в WebContext есть только количество каналов…
-
АвторЗаписи