Стартовая страница › Форумы › Разработка и интеграция › Пользовательские веб-страницы
- В этой теме 63 ответа, 8 участников, последнее обновление 3 года, 4 месяца назад сделано Mikhail.
-
АвторСообщения
-
02.07.2019 в 05:05 #12599TawУчастник
Не могу получить доступ к 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 — «,» у нас разделитель целого от дробной части, а «.» у нас разделитель разрядов.- Этот ответ был изменен 4 года, 9 месяцев назад от 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.
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.