#864 closed задача (готово)
Новые настройки TD-01 v10
| Reported by: | vlad | Owned by: | alx |
|---|---|---|---|
| Priority: | средний | Milestone: | 1 очередь |
| Component: | sw | Keywords: | |
| Cc: |
Description
Изменить настройки для платы TD-01 программной версии v10 и выше.
(причина - добавлена поддержка потоков Е1 с кросса)
В МИБ-файл добавлена переменная .10.0 с программной версией платы.
Если в плате присутствует эта переменная и она >=10, то отображать конфигурационное окно платы TD-01 немного видоизменённым, изменения ниже.
Цвета, иконки, подписи сделать в общем стиле конфигурационного окна на своё усмотрение, на скриншоте я просто выделил яркими цветами, чтобы бросалось в глаза
- Отобразить значение переменной .10.0, обозначить его как "Программная версия"
- Убрать колонку с галочками "сбросить счётчики"
- Добавить одну кнопку "сбросить счётчики", по нажатию которой записывать в переменную .11.0 значение =1. Положение кнопки - в поле Состояние, можно под таблицей.
- Изменить колонку Блокировка: назвать её Поток. Убрать галочки, вместо них сделать выпадающий список комбо-бокс с вариантами:
- Выкл - Внеш хЕ1 - 1Е1 - 2Е1 ... - 32Е1
хЕ1 - х-номер потока для соответствующего конвертера, для первого конвертера вывести "Внеш.1Е1", для второго "Внеш.2Е1"...
Список длинный, его лучше сделать с прокруткой скроллбаром, либо вместо 32 вариантов сделать один вариант Кросс, а при его выборе добавить поле для ввода номера потока с кросса.
Конфигурационная переменная .5.0 CONFIG[150B]
Изменены конфигурационные байты 14, 31, 48, 65 (config[14+17*n] n=0..3 - 4 конвертера)
Для предыдущих версий в этом байте хранился бит блокировки конвертера, теперь добавлен бит выбора потока с кросса и номера потока
[ 0 ] =0-конвертер включен, =1-конвертер выключен
[ 1 ] =0-поток Е1 внешний, =1-поток Е1 с кросса
[6..2] =0..31 -номер потока Е1 (1..32) с кросса
Attachments (3)
Change History (31)
by , 3 weeks ago
| Attachment: | config_TD.png added |
|---|
comment:1 by , 2 weeks ago
| Milestone: | 2 очередь → 1 очередь |
|---|---|
| Type: | улучшение → задача |
follow-ups: 4 6 comment:3 by , 2 weeks ago
| Resolution: | fixed |
|---|---|
| Status: | closed → reopened |
- При открытии окна конфигурации платы TD-01 v10 - все поля в окне пустые.
Кроме этого, шапка таблицы в настройках "съехала" и не соответствует колонкам...
Для тестирования можно воспользоваться блоком, в котором установлены 2 платы TD-01 разных версий:
слот 3 - плата версии 10
слот 8 - плата версии 9
Адрес блока и пароли отправил по защищённому каналу связи
- Осталась нераспознанной переменная CLR [.4.3.11.0] - переменная на запись, для команды очистки счётчиков. Отображать её не нужно.
- Также теперь при открытии окна конфигурации TD-01 9 версии появляется окно "Ошибка чтения переменной .4.8.10.0: Not found" И окно тоже видоизмененное, для версии ниже 10 нужно оставить всё как было
comment:4 by , 2 weeks ago
Replying to vlad:
- При открытии окна конфигурации платы TD-01 v10 - все поля в окне пустые.
Исправил.
Кроме этого, шапка таблицы в настройках "съехала" и не соответствует колонкам...
Исправил.
- Осталась нераспознанной переменная CLR [.4.3.11.0]
Добавил в распознанные (отмечу, что в описании тикета о том, что добавлена переменная .11.0, не говорилось).
- Также теперь при открытии окна конфигурации TD-01 9 версии появляется окно "Ошибка чтения переменной .4.8.10.0: Not found"
Проверка показала, что плата действительно на запрос переменной .10.0 отвечает кодом ошибки 1, что означает "переменная не найдена":
swd[27304]: slot 08: sending 6 bytes: 00 11 0a 00 05 00 swd[27304]: slot 08: 161 bytes received: 80 11 0a 00 01 ...
Ошибки в SW-01 нет.
follow-up: 7 comment:6 by , 2 weeks ago
Replying to vlad:
И окно тоже видоизмененное,
??? Не понимаю, что ты имеешь в виду. Насколько я могу видеть, диалог с сообщением об ошибке ровно такой же, как и у любой другой платы (он и не может быть другим, он одинаковый для всех, от типа платы не зависит).
для версии ниже 10 нужно оставить всё как было
Диалог сообщения от ошибке в обозримом прошлом не изменялся. Он такой уже много-много лет (независимо от версии, типа, исполнения платы и т.п.).
follow-up: 9 comment:7 by , 2 weeks ago
Replying to alx:
??? Не понимаю, что ты имеешь в виду.
У плат версии 9 и ниже не было (и нет) в МИБе переменной .10.0 (и .11.0), поэтому непонятно, зачем sw01 запрашивает её и сама же выдаёт на это ошибку.
follow-up: 10 comment:8 by , 2 weeks ago
Еще одно добавление: при положении комбо-бокса в состояние ВЫКЛ сделать поведение окна таким же, как было при включении галочки "блокировка", а именно: задизейблить строку настроек конвертера в поле Конфигурация и строку в поле состояние
comment:9 by , 2 weeks ago
Replying to vlad:
??? Не понимаю, что ты имеешь в виду.
Ты не правильно понял мой вопрос. Этот вопрос относился к цитате, под которой он был написан: "И окно тоже видоизмененное". Я не понял, какое изменение ты усмотрел в "окне" с сообщением о том, что запрошенная переменная не найдена - в этом диалоге ничего не менялось уже много лет... Я надеялся, что ты в ответ пояснишь именно это.
У плат версии 9 и ниже не было (и нет) в МИБе переменной .10.0 (и .11.0), поэтому непонятно, зачем sw01 запрашивает её
Ее запрашивает не плата SW-01, а веб-браузер (плата SW-01 в данном случае является просто посредником между ними). В описании тикета мне была поставлена тобой задача отображать диалог конфигурации платы по-разному в зависимости от значения, содержащегося в переменной .10.0:
Если в плате присутствует эта переменная и она >=10, то отображать конфигурационное окно платы TD-01 немного видоизменённым...
Я полагал, что для того, чтобы узнать, какое значение содержится в переменной, его надо запросить у платы. Вот браузер и запрашивает переменную у платы TD-01 чтобы узнать, какое значение в ней содержится и отобразить диалог конфигурации платы тем или иным образом. Если ты знаешь, как узнать значение переменной платы, не запрашивая ее у платы, расскажи мне. :)
и сама же выдаёт на это ошибку.
Ошибку выдала плата TD-01 (см. comment:4), веб-интерфейс лишь довел ее до сведения пользователя.
follow-up: 11 comment:10 by , 2 weeks ago
Replying to vlad:
Еще одно добавление: при положении комбо-бокса в состояние ВЫКЛ сделать поведение окна таким же, как было при включении галочки "блокировка", а именно: задизейблить строку настроек конвертера в поле Конфигурация и строку в поле состояние
Создал от твоего имени тикет #868. Проверь, пожалуйста, все ли верно там сформулировано.
follow-up: 12 comment:11 by , 2 weeks ago
Replying to alx:
Создал от твоего имени тикет #868. Проверь, пожалуйста, все ли верно там сформулировано.
Да, спасибо. Всё верно, проверил в блоке - все отображается и становится неактивным при положении "выкл".
Replying to alx:
какое изменение ты усмотрел в "окне"
Приложил файл. Это окно конфигурации TD-01, стоящей в слоте8 v9, данное окно я усмотрел вчера. И по вчерашним же данным писал сегодня пункт.3 своего сообщения. Сегодня это уже было исправлено.
Replying to alx:
Если ты знаешь, как узнать значение переменной платы, не запрашивая ее у платы, расскажи мне
Если в плате присутствует эта переменная и она >=10, то отображать конфигурационное окно платы TD-01 немного видоизменённым...
Давай перефразируем тогда - сначала нужно убедиться, что такая переменная присутствует, а затем уже проверять её значение. Если такой переменной нет в МИБе платы, считать плату старой версии, ниже 10й.
follow-up: 13 comment:12 by , 2 weeks ago
Replying to vlad:
какое изменение ты усмотрел в "окне"
Приложил файл. Это окно конфигурации TD-01, стоящей в слоте8 v9, данное окно я усмотрел вчера. И по вчерашним же данным писал сегодня пункт.3 своего сообщения.
Если ты о том, что в нем отображаются и чекбоксы "Блокировка", и новые селекты "поток", то да, это исправлено в r2755 (я забыл сделать эти селекты изначально скрытыми). А я думал, ты нашел какие-то изменения в диалоге сообщения об ошибке... :)
Давай перефразируем тогда - сначала нужно убедиться, что такая переменная присутствует, а затем уже проверять её значение. Если такой переменной нет в МИБе платы, считать плату старой версии, ниже 10й.
Я что-то совсем "потерял нить"... В контексте этого тикета я не вижу отличия "перефразированной" фразы от написанной в описании тикета и от того, что сейчас реализовано в веб-интерфейсе. Сейчас все так и сделано - если переменная есть, и ее значение больше или равно 10, то отображается новый вариант интерфейса (измененный). Если она есть и ее значение меньше десяти - отображается старый вариант. Если такой переменной вообще нет - то тоже старый вариант...
Да, я вижу в новом варианте фразы "сначала" - "потом". Когда "потом" - через 5 минут? :) Сейчас MIB платы веб-интерфейсом, действиетльно, не запрашивается, но какая тебе разница, как это реализовано внутри, "под капотом", если результат все равно тот же (причем достигается меньшим количеством запросов!)?
Или может быть в платах программной версии 9 вообще нельзя зпрашивать переменную .10.0 по каким-то ее внутренним причинам (плата сгорает)? :) Но тогда это очевидный баг платы, и исправлять его надо в плате, а не в веб-интерфейсе...
Если ты считаешь, что в веб-интерфейсе что-то работает неправильно, то напиши, пожалуйста, конкретно - что, как, при каких обстоятельствах ты делаешь, что и почему ожидаешь получить, и что получаешь вместо ожидаемого... Вод здесь есть подробная подсказка о том, как сделать хороший баг-рипорт. Пока что я не понимаю, о чем вообще разговор. По-моему сейчас все сделано и работает ровно так, как ты хотел...
follow-up: 14 comment:13 by , 2 weeks ago
Replying to alx:
Да, я вижу в новом варианте фразы "сначала" - "потом". Когда "потом" - через 5 минут? :) Сейчас MIB платы веб-интерфейсом, действиетльно, не запрашивается, но какая тебе разница, как это реализовано внутри, "под капотом", если результат все равно тот же (причем достигается меньшим количеством запросов!)?
Да, я понятия не имею, как оно там реализовано и мне не особо важно...
И видимо, я заблуждался в предположениях, что веб-интерфейс сначала запрашивает МИБ, а "потом" (после получения миба, а не через 5 минут) по содержимому этого миба решает, что и когда запрашивать дальше. Ну раз не так, то не так)
Replying to alx:
Или может быть в платах программной версии 9 вообще нельзя зпрашивать переменную .10.0 по каким-то ее внутренним причинам (плата сгорает)? Если ты считаешь, что в веб-интерфейсе что-то работает неправильно, то напиши, пожалуйста, конкретно
Нет, конечно, не сгорает. Веб-интерфейс может, чем угодно заниматься, и запросить, например, переменную .28.39.0 и тоже выдать ошибку, что такой переменной в плате не существует. И еще десяток/сотню других с соответствующими окошками с ошибкой. И будет прав, ведь и правда, этих переменных нет в плате. А пользователь пусть закрывает окошки и радуется этой информации об отсутствующих переменных.
А что именно не так, я уже писал тут выше, но повторю, что считаю:
если в МИБе платы нет переменной, то и запрашивать её нет необходимости, тем более выводить ошибку, что такой переменной не существует.
Ну или хотя бы не выдавать ошибку.
Давай тогда еще раз перефразируем, чтобы не было путаницы. Запросить переменную .10, проверить версию. А если этой переменной нет, то не сообщать об ошибке, а считать плату версией ниже 10.
follow-ups: 15 16 comment:14 by , 2 weeks ago
Replying to vlad:
Replying to alx:
Сейчас MIB платы веб-интерфейсом, действиетльно, не запрашивается, но какая тебе разница, как это реализовано внутри,
Да, я понятия не имею, как оно там реализовано и мне не особо важно...
...
А что именно не так, я уже писал тут выше, но повторю, что считаю:
если в МИБе платы нет переменной, то и запрашивать её нет необходимости,
Ты по-моему сам себе противоречишь. Выше ты написал, что тебе не особо важно, запрашивается MIB или нет. Теперь же из твоих слов следует, что MIB должен запрашиваться (иначе как веб-интерфейс узнает, есть ли в плате переменная .10.0 или нет, и примет решение о том, запращивать ее или нет?)...
Ну или хотя бы не выдавать ошибку.
Не выдавать ошибку, конечно, можно. Но, прости что я сейчас влезаю "на твою территорию", но не лучше ли будет просто добавить переменную .10.0 во все программные версии платы, тем самым устранив первопричину сообщения об ошибке? Мне кажется, что всегда лучше устранить первопричину проблемы, чем бороться с ее последствиями...
Давай тогда еще раз перефразируем, чтобы не было путаницы. Запросить переменную .10, проверить версию. А если этой переменной нет, то не сообщать об ошибке, а считать плату версией ниже 10.
Сейчас все ровно так и происходит, за исключением сообщения об ошибке. То есть единственное, что тебе сейчас нужно - это чтобы не показывалось сообщение об отсутствии в плате переменной .10.0. Я правильно понял?
follow-up: 17 comment:15 by , 2 weeks ago
Replying to alx:
но не лучше ли будет просто добавить переменную .10.0 во все программные версии платы, тем самым устранив первопричину сообщения об ошибке? Мне кажется, что всегда лучше устранить первопричину проблемы, чем бороться с ее последствиями...
Это же просто невозможно :-D
Старые прошивки(программные версии) для TD-01 выпущены и переданы и добавлены в SW-01 давным давно и сомневаюсь, что Влад может вернуться в прошлое и добавить в первую прошивку переменную 10 на будущее))))
comment:16 by , 2 weeks ago
Replying to alx:
Сейчас все ровно так и происходит, за исключением сообщения об ошибке. То есть единственное, что тебе сейчас нужно - это чтобы не показывалось сообщение об отсутствии в плате переменной .10.0. Я правильно понял?
Наверное, для текущих условий это будет лучшим вариантом.
follow-up: 18 comment:17 by , 2 weeks ago
Replying to san:
Это же просто невозможно :-D
??? Почему?
Старые прошивки(программные версии) для TD-01 выпущены и переданы и добавлены в SW-01 давным давно и сомневаюсь, что Влад может вернуться в прошлое и добавить в первую прошивку переменную 10 на будущее))))
Ничего не понимаю... Зачем возвращаться в прошлое? Я возвращаться в прошлое не предлагал. :) Вот, например, не далее чем 29 января этого года разработчик (точнее, я по указаниб разработчика) выпустил новую ревизию прошивки платы TD-01, в которой была исправлена некая ошибка (см. #785). Разве что-то мешает сегодня (завтра, или в любой другой будущий день) выпустить еще более новую прошивку, в которой реализовать любые другие изменения в плате?
follow-up: 20 comment:18 by , 2 weeks ago
Replying to alx:
Разве что-то мешает сегодня (завтра, или в любой другой будущий день) выпустить еще более новую прошивку, в которой реализовать любые другие изменения в плате?
Новую прошивку никто не мешает выпустить, но ты то предлагаешь СТАРУЮ прошивку исправить :)
alx:
не лучше ли будет просто добавить переменную .10.0 во все программные версии платы
follow-up: 21 comment:20 by , 2 weeks ago
Replying to san:
Новую прошивку никто не мешает выпустить, но ты то предлагаешь СТАРУЮ прошивку исправить :)
не лучше ли будет просто добавить переменную .10.0 во все программные версии платы
В 10-ю версию Влад добавил переменную, но чтобы добавить в 9-ю, 8-ю... и тд. ему потребуется машина времени
Ты по-моему путаешь ревизию прошивки с программной версией платы. :)
Если ты имел в виду выпустить исправленную прошивку под старым номером ревизии, то я такого не предлагал.
comment:21 by , 2 weeks ago
Replying to alx:
Ты по-моему путаешь ревизию прошивки с программной версией платы. :)
Вот и в comment:15 ты написал: "Старые прошивки(программные версии)..."
follow-up: 23 comment:22 by , 2 weeks ago
путаешь ревизию прошивки с программной версией платы
Не путаю, это синонимы.
Ревизия, версия, прошивка.
Влад, добавил в ПО ревизии 10 новую переменную которой не было в ревизии 9 и предыдущих, номер ревизии ПО как-раз и содержится в новой переменной, чтобы для разных ревизий ПО отображать интерфейс немного по-разному
А что такое тогда по-твоему программная версия?
comment:23 by , 2 weeks ago
Replying to san:
путаешь ревизию прошивки с программной версией платы
Не путаю, это синонимы.
Это не могут быть синонимы. :)
Обрати, пожалуйста, внимание на описание тикета. Там разработчик платы говорит, что в переменной .10.0 плата возвращает программную версию платы и предписывает проверять значение переменной .10.0 на >=10 и в зависимости от этого условия выполнять ветвление. Следовательно, сам разработчик платы допускает, что значение этой переменной может быть меньше 10.
Если бы, как ты говоришь, программная версия и ревизия прошивки было одно и то же, то плата никак бы не могла возвращать в переменной .10.0 значение меньше 10, так как прошивка ревизии 9 уже была выпущена в январе, и переменной .10.0 там нет, а любая новая прошивка будет иметь ревизию больше 9. В таком случае проверка значения переменной была бы бессмысленной...
Также обрати внимание на то, что автор тикета предписал отображать програмную версию платы в диалоге конфигурации. Если бы это было то же самое, что и ревизия прошивки, это было бы бессмысленно, так как ревизии прошивок и так отображаются в веб-интерфейсе на вкладке "Обновление ПО". Тоже, получается, бессмысленное требование...
Влад, добавил в ПО ревизии 10 новую переменную которой не было в ревизии 9 и предыдущих,
Ага. И сам же предписал проверять, не будет ли в ней случайно значения меньше десяти... :) За кого ты его принимаешь? :)
номер ревизии ПО как-раз и содержится в новой переменной, чтобы для разных ревизий ПО отображать интерфейс немного по-разному
Это по-моему какая-то странняа идея... Зачем это может быть надо? Если появилась более новая прошивка платы, в которой добавлены новые функции, почему бы владельцу платы сразу (как появится возмоность) не обновить в ней прошивку? Какой смысл оставаться на старой, менее функциональной ревизии прошивки?
Если же причины оставаться на старой реизии прошивки есть (я чмсто теоретически допускаю, что они могут быть), то почему разработчик не сделал, например, два существующих параллельно варианта исполнения платы? Или даже два разных типа? Ведь получается, что у того, кто имел старую плату, есть выбор - обновиться или остаться со старой прошивкой, а у новых клиентов такого выбора не будет...
Наконец, зачем в веб-интерфейсе одного и того же блока одно и тоже называть разными словами (в одном месте - "ревизия прошивки", в другом - "программная версия платы"), создавая путаници в головах пользователей (чтобы они гадали - это тоже самое или разные вещи)?
А что такое тогда по-твоему программная версия?
Я не знаю. Как ты можешь видеть, прочитав тикет, автор тикета мне об этом не сообщил. Спроси об этом разработчика платы (автора тикета). Впрочем, он же и так увидит твой комментарий, сможет тебе ответить и без дополнительного вопроса... :)
Есть такая профессия - "разнорабочий". Часто такие бывают на стройках. Это обычно неквалифицированный сотрудник, выполняющий, как робот, элементарные команды: "возьми вот этот мешок, отнести и положи вон туда", "вот эти ящики перетаскай на второй этаж" и т.п... Я, когда делаю веб-интерфейс для какой-то чужой платы, работаю как бы таким разнорабочим - я обычно не знаю, как плата работает (так как РЭ на этот момент еще не написано), и просто выполняю указания разработчика: "значение этой переменной отобразить тут", "при нажатии такой-то кнопки записать в такую-то переменную число 6" и т.п. Вот так и здесь - я выполнил указание отобразить значение переменной .10.0 в диалоге, а для чего это надо, меня автор тикета в известность не поставил...
follow-up: 26 comment:24 by , 2 weeks ago
Это не могут быть синонимы. :)
В рамках этого тикета это синонимы.
В таком случае проверка значения переменной была бы бессмысленной...
Так и есть, достаточно было бы проверить наличие переменной.
Если появилась более новая прошивка платы, в которой добавлены новые функции, почему бы владельцу платы сразу (как появится возмоность) не обновить в ней прошивку
Пока пользователь не обновит прошивку интерфейс должен как-то работать со старой, может быть, например, у пользователя нет возможности устроить перерыв связи рабочего канала на время обновления. В худшем случае всё-равно придётся отобразить баннер с требованием обновить плату, но это тоже разный вд для разных ревизий.
Остальные вопросы оставлю автору тикета))
follow-up: 28 comment:25 by , 2 weeks ago
| Resolution: | fixed |
|---|---|
| Status: | closed → reopened |
Кажется, есть какая-то ошибка
- Конфиг байт [14+17*n] бит[ 1 ] =0-поток Е1 внешний, =1-поток Е1 с кросса
Получилось инверсно, сейчас при выборе внешнего потока этот бит взводится, при выборе потока 1..32Е1 с кросса - зануляется.
- Ещё заметил, что при чтении конфигурации платы отображается не тот поток, который был ранее записан.
comment:26 by , 2 weeks ago
Replying to san:
Пока пользователь не обновит прошивку интерфейс должен как-то работать со старой,
Ты так говоришь, как будно аппаратура разработана вчера, а сегодня появилась вторая плата - TD-01... :)
Аппаратуре уже больше 10 лет, разработано больше полусотни плат. Никогда (за крайне малым исключением) так специально не делали - чтобы скрывать какие-то новые функции для прошивок, в которых их еще нет. По-моему до сих пор придерживались такой политики (негласной практики):
- Обеспечивается прямая совместимость конфигурации платы старой прошивки с более новыми.
- По возможности обеспечивается обратная совместимость: если установленная в блоке плата содержит устаревшую прошивку, она просто не выполняет некоторые новые функции (которые в ней не реализованы). Те, которые реализованы - выполняет.
- Настройки новых функций и сообщения о отсутствии каких-то переменных специально не прячем - пользователь же понимает, что это потому, что в плате устаревшая прошивка, и что когда он ее оновит, функционал станет полным... Кто-то из разработчиков в ситуации, подобной описанной здесь выше (когда появлялось сообщение об отсутствии каких-то переменных) говорил, что это даже хорошо - лишний раз подталкивает пользователя обновить наконец-то прошивку... :)
Пункты 1 и 2 в случае этого тикета выполняются - "Блокировка" в старой конфигурации соответствует "Выкл." параметра "Поток" в новой и наоборот...
может быть, например, у пользователя нет возможности устроить перерыв связи рабочего канала на время обновления.
Это я понимаю, я поэтому и написал "как появится возможность". Но ведь если у пользовтеля конвертеры в работе, и ничего трогать нельзя - какая тогда разница, как отображается диалог конфигурации? Пользователь все равно ничего переконфигурировать не может... :)
Я думал, что, может быть кому-то принципиально нужна возможность сбрасывать счетчики для каждого конвертера индивидуально, и без этой возможности плата TD-01 ему нафиг не нужна, поэтому такой пользователь принципиально будет оставаться на прошивке ревизии 9... :)
comment:28 by , 2 weeks ago
| Resolution: | → готово |
|---|---|
| Status: | reopened → closed |
Replying to vlad:
- Ещё заметил, что при чтении конфигурации платы отображается не тот поток, который был ранее записан.
Сейчас проверил - отображается тот же. Предполагаю, что исправилось при исправлении пункта 1 (то есть причина была одна и та же)...

окно конфигурации TD01 v 10