Стартовая страница › Форумы › Разработка и интеграция › Пользовательские веб-страницы
- В этой теме 75 ответов, 10 участников, последнее обновление 3 месяца назад сделано
a80808.
-
АвторСообщения
-
02.07.2019 в 05:05 #12599
Taw
УчастникНе могу получить доступ к cnlData.
02.07.2019 в 08:01 #12602Mikhail
МодераторЭто надо в смотреть в IDE самому, используя форум трудно сказать.
03.07.2019 в 04:27 #12611Taw
Участник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?03.07.2019 в 10:52 #12619Mikhail
МодераторМы можем провести с Вами индивидульное обучение по данному вопросу, это платная услуга.
04.07.2019 в 03:53 #12625Taw
УчастникПеред тем как обучение начать, надо JQuery поднять иначе это филькина грамота. Было бы для всех полезно вывести значение канала в javaScript переменную и работать с ней.
04.07.2019 в 04:13 #12626Taw
Участник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, не нашел откуда он берется (нет объявления в проекте-примере).
04.07.2019 в 04:43 #12627Taw
Участникvar td = document.querySelector(‘.table-time.table-position tr:nth-child(2) td:nth-child(2)’);
Таким образом я считываю из таблицы значения каналов.05.07.2019 в 03:01 #12634Taw
Участникно получаю строковое значение «32,943.855». По какому принципу работает форматирование? Каждых три разряда разделяются запятой, а дробная часть точкой? Для перевода в числовой тип надо удалить запятые?
05.07.2019 в 08:20 #12635manjey73
УчастникНасколько понимаю, в JS попадают данные либо через API либо сам JS такой веселый (а он действительно веселый, судя по другим форумам, особенно в части объявления переменных и т.д.)
А принцип простой — выставленная Культура на ПК = Россия. 32,943.855 ни что иное как double 32.943855 — «,» у нас разделитель целого от дробной части, а «.» у нас разделитель разрядов.-
Этот ответ был изменен 5 лет, 8 месяцев назад от
manjey73.
05.07.2019 в 16:39 #12638Mikhail
МодераторПо какому принципу работает форматирование?
Форматирование зависит от выбранной культуры. Получать значения, забирая их из ячеек, совсем не оптимальный подход.
06.07.2019 в 08:35 #12639Taw
УчастникОптимальный подход — обращаешься к функции getValue(NumCnl) и получаешь значение из канала. Но API сделаны чтобы изнутри проекта с ними работать (когда все переменные известны и доступны), получение из внешней программы или из веб-страницы напоминает эффект домино. Каждая переменная или функция завязана еще на одну и еще и т.д. Во внешней программе или веб-странице они неизвестны и недоступны. Для пользователя нужно знать только один параметр — номер канала из которого он хочет взять значения и вывести и функцию из ClientAPI с помощью которой извлекается значение канала. Но это очень далеко от реальности.
06.07.2019 в 10:37 #12640manjey73
УчастникЭ, а может быть, чтобы были известны надо подключить в коде какую-то библиотеку ? просто web еще ни разу не рассматривал в рамках RapidScada. В папке bin ведь не зря лежит ScadaData.dll
К тому же, Сервер, Коммуникатор, Web могут располагаться на разных ПК и web самой Scada ведь прекрасно получает все данные в таком варианте.з.ы. наверняка в примерах все есть, ведь работают же табличные данные и графические схемы с переменными.
06.07.2019 в 13:28 #12641Mikhail
МодераторСамый простейший способ использования Web API — это прямой вызов HTTP-запросов, пример которого по данной ссылке:
http://webserver/scada/ClientApiSvc.svc/GetCurCnlData?cnlNum=1
Здесь точно нет зависимостей от других js.наверняка в примерах все есть, ведь работают же табличные данные и графические схемы с переменными.
На данный момент примерами являются сами плагины таблиц и схем. Конечно более простой пример был бы полезен. В создании такого примера надежда на сообщество или на спонсоров.
07.07.2019 в 14:37 #12652Taw
Участник
Результат запроса. Надо парсить значение.08.07.2019 в 16:54 #12660Mikhail
МодераторJSON парсится встроенными средствами JavaScript. Именно это и делает существующий js.
-
Этот ответ был изменен 5 лет, 8 месяцев назад от
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.