Использование main-api

Просмотр 13 сообщений - с 1 по 13 (из 13 всего)
  • Автор
    Сообщения
  • #26195
    Romiros
    Участник

    Добрый день. Версия Scada RC1.
    Использую компонент ссылка, как всплывающее окно. В это окно загружаю свою страницу html, которая использует main-api.js. Данные и их форматирование получаю нормально, но не хватает размерностей для каналов.
    Подскажите пожалуйста возможно ли через main-api.js получить размерности каналов или необходимо использовать ещё что-то?
    И ещё такой вопрос. Сейчас я получаю данные функцией getCurDataByView, работает нормально.
    Пробовал функции getCurData и getCurDataStep1 возвращается пустой массив records и CnlListId = 0. Видимо не хватает прав. Как правильно использовать данные функции?

    • Эта тема была изменена 5 дней, 2 часа назад от Mikhail.
    #26209
    Mikhail
    Модератор

    Добрый день!
    main-api.js позволяет работать с данными архивов, но не предоставляет информацию из базы конфигурации, к которой относятся размерности. В данном случае необходимо разработать новое API. Пожалуй, не нужно все возможные функции добавлять именно в main-api, а лучше иметь несколько API для разных целей.

    getCurDataStep1 используется в связке с getCurDataStep2.
    Поэтому проще для начала решить вопрос с getCurData, которая работает сама по себе.
    Если бы не было прав, то в ответе содержалось бы сообщение об ошибке. Какой JSON-ответ приходит при вызове getCurData ?

    #26220
    Romiros
    Участник

    Ошибок нет. Статус хороший. Время тоже. Только массив с записями пустой. Завтра выложу какой json приходит.

    #26231
    Romiros
    Участник

    Такой ответ возвращает функция mainApi.getCurData(cnlNums,callback):
    {data: Array(0), ok: true, msg: ''}

    А такой функция mainApi.getCurDataStep1(cnlNums, false, callback)

    
    {data: {…}, ok: true, msg: ''}
    data
    : 
    cnlListID
    : 
    "0"
    records
    : 
    []
    serverTime
    : 
    {ms: 1669186966965, ut: '2022-11-23T07:02:46.965Z', lt: '2022-11-23T10:02:46.965+03:00'}
    [[Prototype]]
    : 
    Object
    msg
    : 
    ""
    ok
    : 
    true
    [[Prototype]]
    : 
    Object
    
    #26232
    Romiros
    Участник

    Я может неправильно выразился. Нужны единицы измерения параметров. Мы же получаем форматированное значение dispVal в виде строки. Нет-Да вместо 0-1. Почему бы не добавить и единицы измерения кПА и т.д.

    #26233
    manjey73
    Участник

    Какой-то кривой JSON

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

    На запрос
    http://localhost:8080/Api/Main/GetCurData?cnlNums=101
    я получаю ответ
    {"data":[{"cnlNum":101,"val":0.9490992158226871,"stat":15}],"ok":true,"msg":""}

    Проверьте, какой запрос отправляется при вызове JS функции и какой ответ в оригинале. Это видно в инструментах браузера.

    Нужны единицы измерения параметров.

    Вопрос понятен. «Нет-Да» возвращается с помощью getCurDataStep1 и getCurDataStep2, но они не вернут «10 А», например. Записал пожелание, чтобы добавить параметр в функции, который бы определял, добавлять размерность или нет.

    • Этот ответ был изменен 4 дня, 4 часа назад от Mikhail.
    #26267
    Romiros
    Участник

    Функцией mainApi.getCurData(cnlNums,callback) отправляется вот такой запрос:
    http://localhost:10008/Api/Main/GetCurData?191,192,193,194,195,196

    в строке отсутствует CnlNus=

    Я передаю в функцию просто массив номеров каналов. Или нужно как-то не так делать?

    #26268
    manjey73
    Участник

    Если массив, так может он обернут должен быть [] ?

    #26269
    Romiros
    Участник

    Да он обернут. Честно говоря не пойму почему не работает. По коду main-api.js cnlNums= сам должен добавиться перед каналами. Но почему-то не добавляется.

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

    Исправил ошибку в main-api.js
    Сможете взять с ГибХаба новую версию файла?

    #26277
    Romiros
    Участник

    Да конечно, спасибо большое!

    #26278
    Romiros
    Участник

    Сейчас всё работает нормально.

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