Пользовательские веб-страницы

Стартовая страница Форумы Разработка и интеграция Пользовательские веб-страницы

Просмотр 15 сообщений - с 46 по 60 (из 64 всего)
  • Автор
    Сообщения
  • #12599
    Taw
    Участник

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

    #12602
    Mikhail
    Модератор

    Это надо в смотреть в IDE самому, используя форум трудно сказать.

    #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?

    #12619
    Mikhail
    Модератор

    Мы можем провести с Вами индивидульное обучение по данному вопросу, это платная услуга.

    #12625
    Taw
    Участник

    Перед тем как обучение начать, надо JQuery поднять иначе это филькина грамота. Было бы для всех полезно вывести значение канала в javaScript переменную и работать с ней.

    #12626
    Taw
    Участник

    var cnlData = cnlDataMap.get(cnlNum);

    а cnlDataMap тоже локальная переменная
    function updateCurData(callback) {
    scada.clientAPI.getCurCnlDataExt(cnlFilter, function (success, cnlDataExtArr) {
    if (success) {
    var cnlDataMap = scada.clientAPI.createCnlDataExtMap(cnlDataExtArr);

    Нужно знать cnlDataExtArr, не нашел откуда он берется (нет объявления в проекте-примере).

    #12627
    Taw
    Участник

    var td = document.querySelector(‘.table-time.table-position tr:nth-child(2) td:nth-child(2)’);
    Таким образом я считываю из таблицы значения каналов.

    #12634
    Taw
    Участник

    но получаю строковое значение «32,943.855». По какому принципу работает форматирование? Каждых три разряда разделяются запятой, а дробная часть точкой? Для перевода в числовой тип надо удалить запятые?

    #12635
    manjey73
    Участник

    Насколько понимаю, в JS попадают данные либо через API либо сам JS такой веселый (а он действительно веселый, судя по другим форумам, особенно в части объявления переменных и т.д.)
    А принцип простой — выставленная Культура на ПК = Россия. 32,943.855 ни что иное как double 32.943855 — «,» у нас разделитель целого от дробной части, а «.» у нас разделитель разрядов.

    • Этот ответ был изменен 4 года, 9 месяцев назад от manjey73.
    #12638
    Mikhail
    Модератор

    По какому принципу работает форматирование?

    Форматирование зависит от выбранной культуры. Получать значения, забирая их из ячеек, совсем не оптимальный подход.

    #12639
    Taw
    Участник

    Оптимальный подход — обращаешься к функции getValue(NumCnl) и получаешь значение из канала. Но API сделаны чтобы изнутри проекта с ними работать (когда все переменные известны и доступны), получение из внешней программы или из веб-страницы напоминает эффект домино. Каждая переменная или функция завязана еще на одну и еще и т.д. Во внешней программе или веб-странице они неизвестны и недоступны. Для пользователя нужно знать только один параметр — номер канала из которого он хочет взять значения и вывести и функцию из ClientAPI с помощью которой извлекается значение канала. Но это очень далеко от реальности.

    #12640
    manjey73
    Участник

    Э, а может быть, чтобы были известны надо подключить в коде какую-то библиотеку ? просто web еще ни разу не рассматривал в рамках RapidScada. В папке bin ведь не зря лежит ScadaData.dll
    К тому же, Сервер, Коммуникатор, Web могут располагаться на разных ПК и web самой Scada ведь прекрасно получает все данные в таком варианте.

    з.ы. наверняка в примерах все есть, ведь работают же табличные данные и графические схемы с переменными.

    #12641
    Mikhail
    Модератор

    Самый простейший способ использования Web API — это прямой вызов HTTP-запросов, пример которого по данной ссылке:
    http://webserver/scada/ClientApiSvc.svc/GetCurCnlData?cnlNum=1
    Здесь точно нет зависимостей от других js.

    наверняка в примерах все есть, ведь работают же табличные данные и графические схемы с переменными.

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

    #12652
    Taw
    Участник


    Результат запроса. Надо парсить значение.

    #12660
    Mikhail
    Модератор

    JSON парсится встроенными средствами JavaScript. Именно это и делает существующий js.

Просмотр 15 сообщений - с 46 по 60 (из 64 всего)
  • Вы должны авторизироваться для ответа в этой теме.