Taw

Ответы в темах

Просмотр 15 сообщений - с 181 по 195 (из 406 всего)
  • Автор
    Записи
  • в ответ на: Пользовательские веб-страницы #12611
    Taw
    Участник

    Html страница не знает что такое cnlData (мы передаем этот аргумент в callback).
    Она объявлена внутри другой функции в table.js
    // Returns true if the cell text has been changed
    function displayCellData(cell, cnlDataMap) {
    var cnlNum = parseInt(cell.attr(«data-cnl»));
    if (cnlNum) {
    var cnlData = cnlDataMap.get(cnlNum);

    и в clientapi.js как функция
    // Input channel data type.
    // Note: Casing is caused by C# naming rules
    scada.CnlData = function () {
    this.Val = 0.0;
    this.Stat = 0;
    };

    Страница html не понимает откуда брать этот аргумент. Перед тем как передать в callback нам надо получить этот CnlDate?

    в ответ на: Пользовательские веб-страницы #12599
    Taw
    Участник

    Не могу получить доступ к cnlData.

    в ответ на: Пользовательские веб-страницы #12592
    Taw
    Участник

    функция getCurCnlData имеет вид
    // Get current data of the input channel.
    // callback is a function (success, cnlData)
    // URL example: http://webserver/scada/ClientApiSvc.svc/GetCurCnlData?cnlNum=1
    getCurCnlData: function (cnlNum, callback)
    {
    this._request(«ClientApiSvc.svc/GetCurCnlData», «?cnlNum=» + cnlNum, callback, this._EMPTY_CNL_DATA);
    }

    Я пытаюсь вызвать по событию кнопки
    <script>
    function GetValue() {
    var i = scada.clientAPI.getCurCnlData(611, callback);
    alert(«Value is » + i);
    }
    </script>

    <input type=»button» onclick=»GetValue()» value=»Read Chanel value!»/>

    Как мне избавиться от callback или как мне задать ее в качестве аргумента в моей веб-странице.
    Появляется сообщение об ошибке «callback is not defined»
    эта функция имеет вид — ƒ (success, cnlData). Но как задать эту функцию и ее аргументы на моей веб-странице?

    в ответ на: Пользовательские веб-страницы #12586
    Taw
    Участник

    Вопросы по проекту PlgTable. В файле Table.aspx.cs в методе GenerateTableViewHtml на основе C# формируется html разметка таблицы в которую затем будут выводиться значения каналов. Этот метод вызывается в PageLoad (файл Table.aspx.cs). Который формирует tableViewHtml. Table.aspx вставляет <%= tableViewHtml %> в веб страницу.
    В теге head (Table.aspx файл страницы) подключается table.js
    <script type=»text/javascript» src=»js/table.js»></script>
    В файле table.js
    в $(document).ready(function ()
    имеется вызов функции startUpdatingCurData();
    Которая вызывает функцию getCurCnlDataExt (функция для Get extended current data ) из clientAPI.js. функция updateCurData (Request and display current data) из table.js отвечает за отображение данных из канала. Эта функция вызывает функцию displayCellData (Display the given data in the cell).
    Вопросы:
    1) Я не могу манипулировать с элементами страницы пока страница не «готова» (объектная модель готова (DOM)). Обычный доступ к элементам html не проходит (Я имею в виду взять готовые данные из таблицы). Для того чтобы получить данные из канала мне нужно писать код на javaScript в функции $(document).ready(function ()) (когда DOM будет сформирован) после вызова функции startUpdatingCurData() в файле table.js ? Или в функции displayCellData предусмотреть вывод на свои элементы (но это все на JQuery и напоминает создание компонентов плагинов графического редактора)?
    2) В clientAPI.js находится функция getCurCnlData (Get current data of the input channel). Я не нашел нигде ее вызова. Я бы хотел чтобы вы пояснили где и в каком месте моей веб страницы я могу вызвать эту функцию чтобы получить значение канала для вывода в тег <div>? Не могли бы вы привести синтаксис или пример вызова этой функции для любого тега?
    3) Или вообще каким способом вывести данные из канала на мою веб страницу в тег div?
    4) Каким образом можно взять данные из табличного представления скады в JavaScript переменную (обычный доступ к элементам html не проходит)?

    в ответ на: Пользовательские веб-страницы #12583
    Taw
    Участник

    Я взял за основу табличное представление из проекта DemoProject
    «<div id=»divTblWrapper» class=»table-wrapper»>
    <table>
    <tr class=’hdr’>
    <td class=’cur’><span>Current</span></td><td class=’hour hidden’ data-hour=’-24′></td>
    </tr>
    <tr class=’item’ data-cnl=’104′>
    <td class=’cur’>
    </tr>
    <tr class=’item alt’ data-cnl=’611′>
    <td class=’cur’></td>
    </tr>
    <tr class=’item’ data-cnl=’103′>
    <td class=’cur’></td>
    </tr>
    <tr class=’item’ data-cnl=’105′>
    <td class=’cur’></td>
    </tr>
    </table>»
    изменил канал 102 на мой созданный 611. Почему не выводятся значения в Html форму? Хотя для всех остальных каналов, которые созданы в табличном представлении (этого проекта) я могу менять номера и все работает?

    Taw
    Участник

    1) Это когда вы не имеете доступа к исходникам, допустим dll или не хотите лезть в исходники. Вы просто добавляете свой метод к остальным методам класса. Имеете доступ ко всем остальным методам и полям класса и добавляете свой метод для класса, исходный код которого недоступен.
    2) Полиморфизм. Допустим есть набор фигур, фигуры имеют какие то общие методы, допустим вычисление стороны по ее координатам вершин. И в тоже время есть методы которые вычисляют периметр и площадь. Но эти методы отличаются для каждой из фигур. Но вы можете их вызвать в обычном цикле перебора фигур (по коллекции или массиву базового класса). Вы добавляете свою фигуру, берете за предка класс (обычно абстрактный типа фигура) и все его методы. И добавляете свои методы. Но все методы предка класса доступны. Это можно через виртуальные методы и интерфейсы.
    3) Это в С++ как указатель на функцию. Т.е. вы можете в качестве аргументов метода использовать другие методы.

    в ответ на: Пользовательские веб-страницы #12515
    Taw
    Участник

    Ошибка в хроме была.
    Failed to load resource: the server responded with a status of 404 (Not Found)
    Uncaught Error at contentscript.js:1

    в опере была
    http://localhost/Scada/plugins/WebPage/custom/index.html 404 (Not Found)
    В хроме не четкое описание ошибки и я не мог устранить. А в опере детальное описание. В принципе если бы я пользовался оперой, то мог бы устранить. Но из за хрома я не понимал в чем дело.
    Сделал согласно «Baur» и нет ошибки. Просто хочу на чистом html и javascript отображать графики и панели приборов (примеры моей самоделки панели приборов и мониторинга, графиков можно сколько хочешь и любого типа со всей статистикой).


    Вопрос. Мне нужно данные из каналов преобразовать в js переменную. В примере PlgTable как иголку в стоге сена искать. Можете привести простой div и как с помощью JS API заполнить этот div. Или как преобразовать данные с каналов в javaScript объект?

    Taw
    Участник

    1) extension methods
    2) override, virtual methods, constructors, polymorphism, inheritance
    3) Delegate,new Delegate which based on the others

    в ответ на: Настройка модуля экспорта в БД #12495
    Taw
    Участник

    4) Я решил изучить модуль экспорта и начал с тестового модуля. подключил ModTest.dll (сбилдил на основе открытого кода). Но почему не ведется log для этого тестового модуля? В программном коде мы пишем
    WriteToLog(«Process current data by the module » + Name, Log.ActTypes.Action);
    Но лога нет.

    в ответ на: Настройка модуля экспорта в БД #12494
    Taw
    Участник

    Вопросы:
    1) «для каналов типа Дорасчётный ТС/ТИ» Не могли бы в кратце пояснить что это за тип таких каналов “Дорасчетный”?
    2) “Это действие оператора, что он понял/принял событие. Выпоняется через UI Вебстанции.” — а если оператор не понял это событие? Можете пояснить? Это имеется в виду что появляется сообщение на весь экран и требует выбора оператора (что-то вроде MessageBox и только после нажатия кнопки и подтверждения что понял это окно закрывается)?
    3) В модуле есть код
    » const int MyCmdNum = 1;
    const double MyCmdVal = 1.0;»

    Команды имеют номера и значение команды может быть вещественным? Я думал что команда принимает значение 0 или 1? А в каких случаях имеет смысл использовать значение команды 0.2 0.3 и т.д. сотни значений?

    в ответ на: Настройка модуля экспорта в БД #12493
    Taw
    Участник

    На проекте HelloWorld нет ошибки как при включенных опциях экспорта архива и событий так и при выключенных. Я нашел ошибку, теперь и в моем проекте нет ошибки.
    Проблема была в том что я пометил галочки на входных каналах (Write Events, Event sound, Event on Undefined, Event on Change).

    Но возможно не задал какие-то параметры для них. Я убрал эти галочки и все работает как при включенных опциях так и при отключенных.

    в ответ на: Настройка модуля экспорта в БД #12492
    Taw
    Участник

    Я выполнял на основе стандартного проекта DemoProject.
    Вы можете заполнять как одну (для текущих данных) так и все вкладки (архив и события). А можете вообще не заполнять архив и события. Проблема в том что опция флажок Экспорт должна быть включена на архив и события (даже при пустом запросе). Тогда нет ошибки. Если эти опции отключены, то ошибка не сразу возникает, через 1 или 2 минуты. Минуту две работает нормально. А потом сыпет эту ошибку. Проблема в общем решена — надо включить пустышки запросы на экспорт архива и событий (при выключенных опциях возникает ошибка через минуту две. не сразу). Я как бы не вижу необходимости платной основы.

    в ответ на: Настройка модуля экспорта в БД #12483
    Taw
    Участник

    Хотелось бы отправить данные на удаленный сервер БД необходимые для мониторинга. Чтобы не перегружать СУБД.
    1) В модуле есть метод OnCurDataCalculated(int[] cnlNums, SrezTableLight.Srez curSrez).
    метод выполняется после вычисления дорасчётных каналов текущего среза (примерно каждые 100 мс)
    Что значит “дорасчётные каналы текущего среза (примерно каждые 100 мс)”?
    2) // метод выполняется после квитирования события
    Что означает квитирование события?

    в ответ на: Пользовательские веб-страницы #12473
    Taw
    Участник

    Не помогает, это означает, что в дереве ссылка не кликабельна. Прописал по вашему примеру и ссылка стала кликабельна.
    1) Но почему не отображается содержимое веб-страницы (обычный текст вставленный в тег body)?
    2) Какие требования к встраиваемым веб-страницам?
    3) Можете привести пример простой встраиваемой html страницы?

    в ответ на: Настройка модуля экспорта в БД #12447
    Taw
    Участник

    Как сделать на стороне модуля правильный запрос для отправки данных только с определенных каналов? Примеры с форума не работают.
    Например делаю на стороне модуля запрос
    IF (@cnlnum = 270 )
    BEGIN
    INSERT INTO cnldata (datetime, cnlnum, val, stat) VALUES (@dateTime, @cnlnum, @val, @stat);
    END;

    В логе следующая ошибка
    2019-06-25 16:36:45 Error export current data to DB MySQL — 127.0.0.1:3306: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘IF (610 = 270 )
    BEGIN
    INSERT INTO cnldata (datetime, cnlnum, val, stat) VALU’ at line 18
    2019-06-25 16:36:45 Unable to enqueue current data. The maximum size of the queue 100 is exceeded

Просмотр 15 сообщений - с 181 по 195 (из 406 всего)