#745 closed задача (fixed)
Добавить поддержку плат 6S-48, 6S-24-48, 6S-220, 6S-BS
Reported by: | AlexLir | Owned by: | alx |
---|---|---|---|
Priority: | средний | Milestone: | 1 очередь |
Component: | sw | Keywords: | |
Cc: |
Description
Список всех переменных для данных плат одинаковый (платы имеют одинаковый MIB).
Для всех перечисленных плат в окне настроек платы нужно отобразить переменные (визуализация аналогично тому как в плате PS-48D):
.5.0: RO, INT16 – Выходное напряжение(Uвых) в вольтах. Переменная содержит целое беззнаковое число (x), которое интерпретируется как вещественное число с фиксированной точкой (значение переменной .5.0 = 1250 интерпретируется как значение 12.5В).
.6.0: RO, INT16 – Выходной ток(Iвых) в амперах. Переменная содержит целое беззнаковое число (x), которое интерпретируется как вещественное число с фиксированной точкой (значение переменной .6.0 = 16 интерпретируется как значение 1.6А).
.7.0: RO, INT8 – Выходная нагрузка в процентах.
.12.0: RO, INT8 – Температура в градусах Цельсия.
.13.0 … .17.0 таблицы на 1 строку – Аварии платы:
.13.1.1.0 … .17.1.1.0: RO, INT8 – Состояние (0-нет аварии, 1-есть авария);
.13.1.2.0 … .17.1.2.0: RW, INT8 – Маска (0-авария не замаскирована, 1-авария замаскирована)
.18.0 таблица на 2 строки - Датчики (аналогично переменно .9.0 в плате PS-48D):
.18.1.1.0: RO, INT8 – Состояние (0-датчик неактивный, 1-датчик активный);
.18.1.2.0: RW, INT8 – Маска (0-датчик не замаскирован, 1-датчик замаскирован)
.18.1.3.0: RW, INT8 – Инверсия (0-датчик не инвертирован, 1-датчик инвертирован)
.19.0 таблица на 1 строку – Выходные реле:
.19.1.1.0: RW, INT8 – Состояние датчика 1(0-реле разомкнуто, 1-реле замкнуто)
.19.1.2.0: RW, INT8 – Состояние датчика 2(0-реле разомкнуто, 1-реле замкнуто)
.20.0 таблица на 2 строки - Датчики температуры (аналогично переменной .25.0 в плате PS-48D)
.21.0: RW, INT8 – Нижний порог температуры (аналогично переменной .28.0 в плате PS-48D)
.22.0: RW, INT8 – Верхний порог температуры (аналогично переменной .29.0 в плате PS-48D)
.23.0: RO, INT8 – Максимальная мощность 12 вольтовой шины.
.24.0: RO, INT8 – Максимальная мощность 48 вольтовой шины.
Переменную .23.0 вывести надпись перед таблицей параметров "Максимальная мощность платы: x Вт". Если переменная .24.0 > 0, то вывести "Максимальная мощность платы: x Вт/y Вт"
.250.0 – Строка серийного номера платы (отображать в окне платы не нужно, только на вкладке Инвентаризация)
Для плат 6S-48 и 6S-24-48, вывести дополнительно:
.8.0: RO, INT16 – Входное напряжение(Uвх) в вольтах. Переменная содержит целое беззнаковое число (x), которое интерпретируется как вещественное число с фиксированной точкой (значение переменной .8.0 = 4850 интерпретируется как значение 48.5 В).
Для платы 6S-220, вывести дополнительно:''
.9.0: RO, INT16 – Входное напряжение 220В(U220) в вольтах. Переменная содержит беззнаковое число (x).
Для платы 6S-BS, вывести дополнительно:
.9.0: RO, INT16 – Входное напряжение 220В(U220) в вольтах. Переменная содержит беззнаковое число (x).
.10.0: RO, INT16 –Напряжение батареи(UАБ) в вольтах. Переменная содержит целое беззнаковое число (x), которое интерпретируется как вещественное число с фиксированной точкой (значение переменной .10.0 = 1230 интерпретируется как значение 12.3 В).
.11.0: RO, INT16 – Ток батареи(IАБ) в амперах. Переменная содержит целое беззнаковое число (x), которое интерпретируется как вещественное число с фиксированной точкой (значение переменной .11.0 = 15 интерпретируется как значение настройки 1.5 А).
.25.0: RW, INT8 - Переменная содержит беззнаковое число (x), которое интерпретируется как настройка Порог аварии "Низкий заряд АКБ" = x/10 Вольт. Т.е. значение переменной .25.0 = 105 интерпретируется как значение настройки 10.5 В.
Для вышеописанной настройки вводимые пользователем значения должны быть ограничены диапазоном от 10.0 до 13.0 В
Attachments (7)
Change History (48)
comment:1 by , 3 weeks ago
Summary: | Добавить поддержку исполнений 6 для платы BS-220 → Добавить поддержку плат 6S-48, 6S-24-48, 6S-220, 6S-BS |
---|
follow-up: 37 comment:2 by , 3 weeks ago
comment:3 by , 5 days ago
Status: | new → accepted |
---|
comment:4 by , 5 days ago
Replying to AlexLir:
В процессе реализации возникло несколько вопросов. Прошу дать уточнения.
Переменную .23.0 вывести надпись перед таблицей параметров "Максимальная мощность платы: x Вт".
Фраза не очень понятна (похоже, часть фразы куда-то пропала). Верно ли я догадываюсь, что вместо "x" следует вывести значение переменной .23.0? Или надо вывести надпись буквально так, как указано в описании тикета?
Если переменная .24.0 > 0, то вывести "Максимальная мощность платы: x Вт/y Вт"
Так и написать - "x Вт/y Вт"? Или может быть заменить "x" и "y" на что-то при выводе? Если заменить, то на что?
follow-up: 6 comment:5 by , 4 days ago
Верно ли я догадываюсь, что вместо "x" следует вывести значение переменной .23.0?
Да
Вместо "y" вывести значение переменной .24.0 если она больше 0. Если переменная .24.0 равна нулю то надпись "/y Вт" не выводить
comment:6 by , 4 days ago
Replying to AlexLir:
Вместо "y" вывести значение переменной .24.0 если она больше 0. Если переменная .24.0 равна нулю то надпись "/y Вт" не выводить
А вместо "x" ничего не надо? Верно ли я понял, что если, например, значение переменной .24.0 равно 1, то надо отобразить надпись "Максимальная мощность платы: x Вт/1 Вт"?
follow-up: 8 comment:7 by , 4 days ago
А вместо "x" ничего не надо? Верно ли я понял, что если, например, значение переменной .24.0 равно 1, то надо отобразить надпись "Максимальная мощность платы: x Вт/1 Вт"?
Вместо "x" вывести переменную .23.0
Вот выше я отвечал:
Верно ли я догадываюсь, что вместо "x" следует вывести значение переменной .23.0?
Да
comment:8 by , 4 days ago
Replying to AlexLir:
Вместо "x" вывести переменную .23.0
Вот выше я отвечал:
Верно ли я догадываюсь, что вместо "x" следует вывести значение переменной .23.0?
Да
Подожди... Или ты меня неправильно понял, или я неправильно понял написанное в описании тикета (что не удивительно, так какие-то грамматические нестыковки, предложения обрываются на середине...).
Сейчас уточню, как именно я понял. В описании тикета говорился о двух текстовых строках:
- "Максимальная мощность платы: x Вт";
- "Максимальная мощность платы: x Вт/y Вт".
Первая строка должна отображаться безусловно, а вторая - только если значение переменной .24.0 не равно нулю.
Мой вопрос "Верно ли я догадываюсь, что вместо "x" следует вывести значение переменной .23.0?", на который ты ответил "да", касался первой строки. Там я догадался, что "x" на значение переменной .23.0, так как эта переменная упоминается в той же фразе, что и эта текстовая строка.
А вопросы "Так и написать - "x Вт/y Вт"? Или может быть заменить "x" и "y" на что-то при выводе? Если заменить, то на что?" касались уже второй строки, а не первой.
Хм... Сейчас я обратил внимание на твою фразу "Если переменная .24.0 равна нулю то надпись "/y Вт" не выводить" и начал подозревать. Это отличается от того, что написано в описании тикета (возможно, там не часть фразы пропала, а наоборот, осталось лишнее после редактирования)... Теперь я догадываюсь, что отображаться должна только одна из этих двух строк. Если значение переменной .24.0 равно нулю, отображается первая строка, а если не равно нулю - вторая. Так?
comment:9 by , 4 days ago
И, раз уж этот вопрос все равно уже привел к длинной дискуссии, не могу не удержаться от вопроса: а что, разве максимальная мощность плат нам не известна заранее? Почему вообще чтобы отобразить значение максимальной мощности требуется читать значение каких-то переменных? Почему нельзя сразу написать: "Максимальная мощность платы: 50 Вт"? В конце концов, ведь где-то в эксплуатационных документах (РЭ) все равно ведь будет указана макс. мощность платы!
follow-up: 11 comment:10 by , 4 days ago
PCB используется для 4 разных типов плат и соответственно прошивка на них тоже одна. При старте плата считывает значения с внешних резисторов определяет и передает значение мощности в веб интерфейс.
comment:11 by , 4 days ago
Replying to AlexLir:
PCB используется для 4 разных типов плат и соответственно прошивка на них тоже одна.
Это я понимаю. Однако мне будет гораздо проще, если ты прямо сейчас скажешь значения максимальной мощности для каждой из этих четырех плат, и я просто буду отображать нужное значение в веб-интерфейсе, вместо того чтобы запрашивать значения переменных. Да и нагрузка на аппаратуру и сеть будет чуть-чуть меньше...
follow-up: 13 comment:12 by , 4 days ago
6S-48 - "Максимальная мощность платы: 40 Вт"
6S-24-48 - "Максимальная мощность платы: 40 Вт/10 Вт"
6S-220 - "Максимальная мощность платы: 65 Вт/10 Вт"
6S-BS - "Максимальная мощность платы: 40 Вт/10 Вт"
comment:13 by , 4 days ago
Replying to AlexLir:
6S-48 - "Максимальная мощность платы: 40 Вт"
6S-24-48 - "Максимальная мощность платы: 40 Вт/10 Вт"
6S-220 - "Максимальная мощность платы: 65 Вт/10 Вт"
6S-BS - "Максимальная мощность платы: 40 Вт/10 Вт"
Спасибо! Вот теперь с этими надписями все окончательно ясно.
follow-up: 17 comment:15 by , 4 days ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
Кажется произошло какое-то недопонимание, в окне платы не хватает возможности записи в плату RW переменных.
В плате кроме переменных параметров есть переменные настройки которые нужно не только отобразить но и дать возможность пользователю изменить и записывать их значения. Эти переменные имеют атрибут RW и взаимодействие с ними нужно реализовать аналогично тому, как это сделано в плате PS-48D для переменных аналогичного смысла.
by , 4 days ago
follow-up: 18 comment:16 by , 4 days ago
И небольшие замечания по внешнему виду:
- Заголовок таблицы термодатчики отображается не во всю ширину таблицы.
- К первой таблице параметры нужно добавить заголовки аналогично плате PS-48D
- В таблице параметры выровнять аналогично той же таблицы в плате PS-48D
comment:17 by , 4 days ago
Replying to AlexLir:
Кажется произошло какое-то недопонимание, в окне платы не хватает возможности записи в плату RW переменных.
Хм... В описании тикета ставилась такая задача:
Для всех перечисленных плат в окне настроек платы нужно отобразить переменные...
Для плат 6S-48 и 6S-24-48, вывести дополнительно...
Для платы 6S-220, вывести дополнительно...
Для платы 6S-BS, вывести дополнительно...
то есть речь шла исключительно о выводе и отображении информации. О вводе и записи в какие-то переменные ничего не говорилось... :) Хотя постой... сейчас я заметил, что в самой последней фразе говорится об ограничении ввода, на что я вчера не обратил внимания. Мне стоило задать вопрос, о каком-таком ограничении ввода идет речь, если ничего записывать в плату не требовалось... :)
В плате кроме переменных параметров есть переменные настройки которые нужно не только отобразить но и дать возможность пользователю изменить и записывать их значения. Эти переменные имеют атрибут RW и взаимодействие с ними нужно реализовать аналогично тому, как это сделано в плате PS-48D для переменных аналогичного смысла.
Понятно.
by , 4 days ago
comment:18 by , 4 days ago
Replying to AlexLir:
И небольшие замечания по внешнему виду:
- Заголовок таблицы термодатчики отображается не во всю ширину таблицы.
Действительно. Исправил.
- К первой таблице параметры нужно добавить заголовки аналогично плате PS-48D
Действительно. Добавил.
- В таблице параметры выровнять аналогично той же таблицы в плате PS-48D
??? Что ты имеешь в виду? Насколько я вижу, параметры и так выровнены как в таблице платы PS-48D. Собственно, я строки таблицы из диалога платы PS-48D и копировал... Как говорится, найдите три отличия:
Лично я отличий в выравнивании не вижу...
comment:20 by , 4 days ago
Лично я отличий в выравнивании не вижу...
Сейчас я тоже не вижу.
До того как заголовок таблицы отсутствовал, выравнивание отличалось в столбце "Значение".
Еще небольшое дополнение, прошу значения "Uвх" и "Uвых" округлить при выводе до десятых долей.
follow-up: 26 comment:23 by , 3 days ago
Осталась одна нераспознанная переменная таблицы .18.2, но при этом она корректно отображается в таблице "Датчики (сухие контакты)". Прошу исправить данный недочет.
Так же у таблицы "Датчики (сухие контакты)" столбец нужно раскрасить зеленым если переменная .18.x.1 = 0, и красным если .18.x.1 = 1, где x номер строки таблицы.
Так же прошу исправить таблицу "Датчики (выходные реле)" согласно приложенному вложению
by , 3 days ago
Attachment: | out_rele.png added |
---|
comment:26 by , 3 days ago
Replying to AlexLir:
Осталась одна нераспознанная переменная таблицы .18.2, но при этом она корректно отображается в таблице "Датчики (сухие контакты)".
Почему ты решил, что она как-то отображается? Такая переменная не упоминается в описании тикета. О ее предназначении я не имею никакого представления. Соответственно, я такую переменную из платы не читаю и ее значение никак не отображаю.
Прошу исправить данный недочет.
Нечего исправлять, по-моему все правильно.
Так же у таблицы "Датчики (сухие контакты)" столбец нужно раскрасить зеленым если переменная .18.x.1 = 0, и красным если .18.x.1 = 1, где x номер строки таблицы.
Хм... А что делать в случае, если .18.1.1.0 равна нулю, а .18.2.1.0 - единице? В какой цвет тогда красить столбец?
Пока на свой страх и риск применил компромиссное решение. Если в переменных разное значение, тогда одна ячейка столбца красится в один цвет, а другая - в другой... Ты, кстати, не уточнил, какой именно столбец надо раскрасить. :) Я понял это так, что выбор столбца для раскраски - на мое усмотрение... :)
Так же прошу исправить таблицу "Датчики (выходные реле)" согласно приложенному вложению
Переделал таблицу.
follow-up: 28 comment:27 by , 3 days ago
Почему ты решил, что она как-то отображается?
Потому что проверил, она соответствует второй строке таблицы "Датчики (сухие контакты)" и работает корректно.
Такая переменная не упоминается в описании тикета.
В описании тикета написано: ".18.0 таблица на 2 строки - Датчики ..."
Соответственно, я такую переменную из платы не читаю и ее значение никак не отображаю.
Она отображается во вторую строку таблицы "Датчики (сухие контакты)"
По раскрашиванию ячеек таблицы все верно, спасибо.
Таблица "Выходные реле" исправлена корректно
by , 3 days ago
comment:28 by , 3 days ago
Replying to AlexLir:
Почему ты решил, что она как-то отображается?
Потому что проверил,
Как именно ты это проверил? Опиши, пожалуйста, ход проверки. По-моему ты что-то путаешь...
она соответствует второй строке таблицы "Датчики (сухие контакты)" и работает корректно.
??? Если она как-то отображается, то это уже некорректная работа, так как отображать ее (кроме как в панели нераспознанных переменных), по условиям задачи не требовалось.
Такая переменная не упоминается в описании тикета.
В описании тикета написано: ".18.0 таблица на 2 строки - Датчики ..."
И что? В процитированной тобой строчке переменная .18.2 не упоминается. Не понимаю, для чего ты ее процитировал...
Соответственно, я такую переменную из платы не читаю и ее значение никак не отображаю.
Она отображается во вторую строку таблицы "Датчики (сухие контакты)"
Провел следующий эксперимент:
- Открыл в браузере (chrome) веб-интерфейс блока с адресом 192.168.0.198.
- Открыл диалог платы 6S-48 в блоке с адресом 192.168.0.198.
- Нажал Shift-Cmd-C - открылась панель разработчика.
- В панели разработчика открыл вкладку "Network" и вижу в ней как веб-интерфейс периодически (раз в секунду) шлет запросы блоку.
- Кликаю один из этих запросов.
- Открываю вкладку "Payload" - там отображается тело запроса.
- Раскрываю поле "varlist", содержащее список запрашиваемых у блока переменных. И не вижу в нем переменной .4.21.18.2.0:
follow-up: 31 comment:29 by , 3 days ago
Проверил дополнительно по исходникам - во второй строке таблицы "Датчики (сухие контакты)" отображаются переменные .18.2.1.0, .18.2.2.0 и .18.2.3.0.
by , 3 days ago
comment:30 by , 3 days ago
Запросил переменную .4.21.18.2.0 из браузера "вручную" - получил ответ "Not found":
То есть я не смог бы ее отобразить даже если бы захотел! :)
comment:31 by , 3 days ago
Replying to alx:
Проверил дополнительно по исходникам - во второй строке таблицы "Датчики (сухие контакты)" отображаются переменные .18.2.1.0, .18.2.2.0 и .18.2.3.0.
Сейчас догадался посмотреть, что там в "Нераспознанных переменных" (после того как обнаружил, что переменной .18.2 не существует). Оказалось, что там как раз три перечисленные выше переменные - .18.2.1.0, .18.2.2.0 и .18.2.3.0. Ты, наверное, их имел в виду? OID переменной из "Нераспознанные переменные" отображается во всплывающей подсказке при наведении курсора мыши на отображение значения переменной (или на ее поле ввода если она только для записи).
follow-up: 34 comment:33 by , 3 days ago
.18.2.1.0, .18.2.2.0 и .18.2.3.0. Ты, наверное, их имел в виду?
Да, это имел ввиду.
Еще есть небольшое дополнение: у таблиц "Датчики (сухие контакты)" и "Термодатчики" нужно добавить возможность добавления пользовательского комментария в столбец "Датчик", каждой строки по аналогии как это сделано в плате PS-48D.
Так же, раз у нас теперь появилась таблица "Выходные реле" предлагаю дать возможность пользователю и тут ввести комментарий в столбец "Реле" каждой строки, так же как это будет сделано для таблиц "Датчики (сухие контакты)" и "Термодатчики"
by , 3 days ago
by , 3 days ago
comment:34 by , 3 days ago
Replying to AlexLir:
Еще есть небольшое дополнение: у таблиц "Датчики (сухие контакты)" и "Термодатчики" нужно добавить возможность добавления пользовательского комментария в столбец "Датчик", каждой строки по аналогии как это сделано в плате PS-48D.
В диалоге конфигурации платы PS-48D нет никаких пользовательских комментариев в таблице датчиков:
Единственное, что там есть (и чего сейчас нет в аналогичной таблице платы 6S-48) - это возможность изменить обозначение датчика. Может быть ты имел в виду ее?
Так же, раз у нас теперь появилась таблица "Выходные реле" предлагаю дать возможность пользователю и тут ввести комментарий в столбец "Реле" каждой строки,
??? Столбец "Реле" не пустой, он уже используется - там отображаются обозначения реле! Как ты представляешь отображение комментариев пользователя в уже занятом для других целей столбце? Не будет ли лучше просто добавить новый столбец "Комментарий", тем более что во многих других местах уже сделано именно так? Посмотри, например, диалоги нескольких первых попавшихся мне плат:
так же как это будет сделано для таблиц "Датчики (сухие контакты)" и "Термодатчики"
Ну и здесь для комментария ИМХО стоит добавить новый столбец...
comment:35 by , 3 days ago
возможность изменить обозначение датчика. Может быть ты имел в виду ее?
Да, я это имел ввиду, но опять я не так выразился.
Прошу добавить возможность изменить обозначения датчиков и обозначения реле.
follow-up: 41 comment:37 by , 3 days ago
Для полной поддержки плат нужно ещё добавить переопределение названий аварий, чтобы в списке аварий и журнале пользователь видел понятные названия аварий, а не их обозначения из миба.
аварии платы:
.13.1.1.0 - Низкое входное напряжение
.14.1.1.0 - Отсутствует напряжение 12 В
.15.1.1.0 - Загрузка 100%
.16.1.1.0 - Авария термодатчика
.17.1.1.0 - Низкий заряд батареи
comment:39 by , 3 days ago
переопределение названий аварий
Исправил oid аварий в своём последнем комменте, т.к. в цитируемом сообщении от ALexLir oid аварий были указаны некорректно
comment:41 by , 2 days ago
Replying to san:
Для полной поддержки плат нужно ещё добавить переопределение названий аварий, чтобы в списке аварий и журнале пользователь видел понятные названия аварий, а не их обозначения из миба.
Меня давно мучает вопрос: а не занимаемся ли мы ерундой с этими переопределениями? Когда-то давно по какой-то причине, которой не могу вспомнить, я сделал вывод о том, что в MIB могут использоваться только ASCII символы (ну или кодировка latin-1, что для нас практически одно и то же). Однако я не смог найти никакого подтверждения этому выводу (никакого стандарта, где это было бы написано, и даже вопроса-ответа на каком-нибудь форуме). Может быть ты знаешь (или сможешь найти об этом информацию), действительно ли в MIB не может использоваться, например, кириллица в UTF-8? Где это написано?
Сейчас получается какой-то абсурд: MIB в платах был задуман ровно для того, чтобы из него пользователям было понятно, что означает некая переменная, даже если плата SW-01 этого не знает. Чтобы он сразу понял, что означает авария или что в эту переменную можно и нужно записать. А на практике получается, что понятно в MIB написать нельзя, и приходится все переопределять...
Кстати, в MIB кроме имени переменной есть еще и ее описание. Благодаря ему даже латиницей можно было бы сделать смысл переменной понятнее. Почему в платах 6S-* это описание не используется (там везде пустые строки)? Это уже не к тебе вопрос, а к @AlexLir (если я правильно понял, что разработчик плат - он)...
Забыл расписать аварии платы:
.13.0 - Низкое входное напряжение.
.14.0 - Отсутствует напряжение 12 В.
.15.0 - Загрузка 100%.
.16.0 - Авария термодатчика
.17.0 - Низкий заряд батареи(отобразить для платы 6S-BS)