Opened 4 days ago

Last modified 2 days ago

#878 new задача

Обновление настоек платы FS-08.

Reported by: ledol Owned by: alx
Priority: высокий Milestone: 1 очередь
Component: sw Keywords:
Cc:

Description (last modified by ledol)

Для выполнения задач тикета https://trac.adc-line.ru/mc-04/ticket/1525 в части плат FS-08 предлагаю:

  1. Оставить в web-интерфейсе платы настройку "инверсия СУВ" для 4-го аппаратного исполнения платы.
  2. Разместить в переменной 5 платы исполнения 3, где каждому каналу дается в соответствие строка 10 байт, следующие дополнительные настройки СУВ канала (описаны в тикете 1525):

Байт(0-9)|Биты(7..0)|Значение(Текст): Детали(Текст).

1 | 0 | не используется
1 | 3..1| Звонок: 0-"0X",1-"1X",2-"X0",3-"X1",4-"00",5-"01",6-"10",7-"11".
1 | 5..4| Трубка положена: 0-"11",1-"00",2-"01",3-"10".
1 | 7..6| Трубка снята: 0-"01",1-"00",2-"10",3-"11".

  1. Считать данные настройки актуальными начиная с версии 12 ПО платы.
  2. Версию 12 ПО платы применять к аппаратному исполнению платы 3.
  3. В качестве блока отладки предлагается использовать блок 192.168.0.252. При технических трудностях в доступе к блоку, обращаться к Найданову А.А.
  4. По предложению Найданова А.А. в mib платы FS-08 добавлена переменная 250, содержащая серийный номер. Предлагаю реализовать интерпретацию переменной во вкладке "Инвентаризация" блока.

Change History (28)

comment:1 by ledol, 4 days ago

Description: modified (diff)

comment:2 by ledol, 4 days ago

Description: modified (diff)

comment:3 by ledol, 4 days ago

Description: modified (diff)

in reply to:  description ; comment:4 by alx, 4 days ago

Replying to ledol:

  1. Разместить в переменной 5, где каждому каналу дается в соответствие строка 10 байт, следующие дополнительные настройки СУВ канала (описаны в тикете 1525):

Уточни, пожалуйста, что ты имеешь в виду, когда пишешь "переменная 5". В плате FS-08 на данный момент нет переменной, имеющей OID .5.0. Более того, конфигурации каналов (если я правильно понял, что "каналом" ты называешь порт) платы не находятся в одной переменной, конфигурация каждого порта находится в своей отдельной переменной. Например конфигурация порта 1 находится в переменной .5.1.1.0, конфигурация порта 2 находится в переменной .5.2.1.0 и т.д... В связи с этим непонятно, идет ли речь в процитированной фразе о добавлении какой-то новой переменной, или об использовании какой-то из уже существующих.

in reply to:  description ; comment:5 by alx, 4 days ago

Replying to ledol:

  1. Версию 12 ПО платы применять к аппаратному исполнению платы 3 и 4.

Данное предложение мне непонятно... "Применять версию к исполнению" - это как? Это значит делать что конкретно? Поясни, пожалуйста.

in reply to:  description comment:6 by alx, 4 days ago

Replying to ledol:

Предлагаю реализовать интерпретацию переменной во вкладке "Инвентаризация" блока.

Это реализовано 6 лет назад - см. тикет #470.

comment:7 by alx, 4 days ago

In 2802/sw:

Переменная .250.0 платы FS-08 добавлена в список известных.
See #878.

in reply to:  4 ; comment:8 by ledol, 4 days ago

Replying to alx:

Replying to ledol:

  1. Разместить в переменной 5, где каждому каналу дается в соответствие строка 10 байт, следующие дополнительные настройки СУВ канала (описаны в тикете 1525):

Уточни, пожалуйста, что ты имеешь в виду, когда пишешь "переменная 5". В плате FS-08 на данный момент нет переменной, имеющей OID .5.0. Более того, конфигурации каналов (если я правильно понял, что "каналом" ты называешь порт) платы не находятся в одной переменной, конфигурация каждого порта находится в своей отдельной переменной. Например конфигурация порта 1 находится в переменной .5.1.1.0, конфигурация порта 2 находится в переменной .5.2.1.0 и т.д... В связи с этим непонятно, идет ли речь в процитированной фразе о добавлении какой-то новой переменной, или об использовании какой-то из уже существующих.

Переменная 5 - таблица, 8 строк по 10 байт каждая. Предлагается использовать существующий формат.

in reply to:  5 ; comment:9 by ledol, 4 days ago

Replying to alx:

Replying to ledol:

  1. Версию 12 ПО платы применять к аппаратному исполнению платы 3 и 4.

Данное предложение мне непонятно... "Применять версию к исполнению" - это как? Это значит делать что конкретно? Поясни, пожалуйста.

Это значит, что при передаче файла прошивки 12.bin ее нужно разместить в каталоге "firmware" SW-01 в папках 3 и 4 папки FS-08.

in reply to:  8 ; comment:10 by alx, 4 days ago

Replying to ledol:

Переменная 5 - таблица, 8 строк по 10 байт каждая. Предлагается использовать существующий формат.

Спасибо за уточнение. В таком случае, предложенное изменение по-моему нарушает прямую совместимость (для плат исполнения 4). Если байт 1 имеет значение 1 (именно такое значение записывает туда веб-интерфейс при отмеченном чекбоксе "инверсия СУВ"), то в настоящее время плата FS-08 исполнения 4 инвертирует СУВ A: 1 - шлейф замкнут, 0 - шлейф разомкнут, 1 - звонок, 0 - нет звонка. Однако в новой семантике (описанной в описании тикета) получится 0 - шлейф замкнут, 1 - шлейф разомкнут, 0 - звонок, 1 - нет звонка. То есть сконфигурированная инверсия пропадет!

Для сохранения совместимости я предлагаю:

  • Конфигурирацию СУВ разместить не в байте 1, а добавить новый (11-й по счету) байт 10. Формат байта можно оставить тот же, который описан в описании тикета.
  • Реализовать в плате FS-08 следующую логику:
    • Если в конфигурации порта байт 10 отсутствует (получено только 10 байт, 0...9), то применять настройку байта 1, как это делается сейчас. А именно:
      • если байт 1 равен нулю, то инверсии нет - как если бы байт 10 присутствовал и был равен нулю;
      • иначе (если байт 1 не равен нулю) использовать СУВ A с инверсией - как если бы байт 10 присутствовал и был равен 0xe2.
    • иначе (если байт 10 присутствует) применять настройки байта 10 и игнорировать байт 1.
Version 3, edited 4 days ago by alx (previous) (next) (diff)

in reply to:  9 comment:11 by alx, 4 days ago

Replying to ledol:

Это значит, что при передаче файла прошивки 12.bin ее нужно разместить в каталоге "firmware" SW-01 в папках 3 и 4 папки FS-08.

Понял. Спасибо за разъяснение.

in reply to:  10 ; comment:12 by ledol, 4 days ago

Replying to alx:

Replying to ledol:

Переменная 5 - таблица, 8 строк по 10 байт каждая. Предлагается использовать существующий формат.

Спасибо за уточнение. В таком случае, предложенное изменение по-моему нарушает прямую совместимость (для плат исполнения 4). Если байт 1 имеет значение 1 (именно такое значение записывает туда веб-интерфейс при отмеченном чекбоксе "инверсия СУВ"), то в настоящее время плата FS-08 исполнения 4 инвертирует СУВ A: 1 - шлейф замкнут, 0 - шлейф разомкнут, 1 - звонок, 0 - нет звонка. Однако в новой семантике (описанной в описании тикета) получится 0 - шлейф замкнут, 1 - шлейф разомкнут, 0 - звонок, 1 - нет звонка. То есть сконфигурированная инверсия пропадет!

Для сохранения совместимости я предлагаю:

  • Конфигурирацию СУВ разместить не в байте 1, а добавить новый (11-й по счету) байт 10. Формат байта можно оставить тот же, который описан в описании тикета.
  • Реализовать в плате FS-08 следующую логику:
    • Если в конфигурации порта байт 10 отсутствует (получено только 10 байт, 0...9), то применять настройку байта 1, как это делается сейчас. А именно:
      • если байт 1 равен нулю, то инверсии нет - как если бы байт 10 присутствовал и был равен нулю;
      • иначе (если байт 1 не равен нулю) использовать СУВ A с инверсией - как если бы байт 10 присутствовал и был равен 0xe2.
    • иначе (если байт 10 присутствует) применять настройки байта 10 и игнорировать байт 1.

Платы исполнения 4 не выпускались. Настройка "инверсия СУВ" не актуальна. Смысла менять формат переменной не вижу.

in reply to:  12 ; comment:13 by alx, 4 days ago

Replying to ledol:

Платы исполнения 4 не выпускались.

Думаю, ты ошибаешься. Согласно информации, полученной мной от начальника отдела разработок, платы исполнения 4 выпускались и отгружались заказчикам. Таким образом, у потребителей имеются и, скорее всего, работают платы FS-08 исполнения 4. В связи с этой информацией прошу рассмотреть мое предложение из comment:10.

Last edited 4 days ago by alx (previous) (diff)

in reply to:  13 ; comment:14 by san, 4 days ago

Replying to alx:
предложение из comment:10.

А зачем лишние сложности? Почему нельзя просто использовать бит инверсии "как раньше" - если он присутствует в конфиге, то записать его в плату. Для старой прошивки FS-08 он включит инверсию, а новая прошивка его проигнорирует.

in reply to:  13 comment:15 by ledol, 4 days ago

Replying to alx:

Replying to ledol:

Платы исполнения 4 не выпускались.

Думаю, ты ошибаешься. Согласно информации, полученной мной от начальника отдела разработок, платы исполнения 4 выпускались и отгружались заказчикам. Таким образом, у потребителей имеются и, скорее всего, работают платы FS-08 исполнения 4. В связи с этой информацией прошу рассмотреть мое предложение из comment:10.

Ну до вчерашнего дня на производстве шилась 3-я версия, мы ходили проверяли. Правда они наклейку от 4-й клеят, B1H4.

comment:16 by ledol, 4 days ago

"рассмотреть мое предложение из comment:10."

Смущает меня, что при установке платы FS-08 версии 12 в блок будет требоваться обязательное обновление SW-01 и перенастройка по новой всех каналов.

in reply to:  14 ; comment:17 by alx, 4 days ago

Replying to san:

А зачем лишние сложности?

Не уверен, что правильно понял твой вопрос (о каких "таких" сложностях ты говоришь). Ответ "зачем" написан в comment:10: для сохранения совместимости.

Почему нельзя просто использовать бит инверсии "как раньше" - ... а новая прошивка его проигнорирует.

Потому что если прошивка будет игнорировать байт инверсии, то после обновления прошивки платы, сконфигурированной на работу с инверсией, эта инверсия пропадет - то есть плата перестанет работать! Это будет та самая несовместивомть, о которой я писал в comment:10, и которую предлагаю устранить.

Last edited 4 days ago by alx (previous) (diff)

in reply to:  16 comment:18 by alx, 4 days ago

Replying to ledol:

Смущает меня, что при установке платы FS-08 версии 12 в блок будет требоваться обязательное обновление SW-01 и перенастройка по новой всех каналов.

Так я же в comment:10 как раз предлагаю сделать так, чтобы это не требовалось! Плата с прошивкой ревизии 12, получив конфигурацию порта из 10 байт, в соответствии с предложенным мной алгоритмом будет следовать содержимому байта инверсии (байта 1). То есть ее работа никак не будет отличаться от работы платы с прошивкой ревизии 11!

А вот если сделать как ты предлагаешь в описании тикета, то плата с прошивкой ревизии 12 будет неправильно интерпретировать значение байта инверсии (пример приведен в comment:10).

in reply to:  17 ; comment:19 by san, 4 days ago

Replying to alx:

Потому что если прошивка будет игнорировать байт инверсии, то после обновления прошивки платы, сконфигурированной на работу с инверсией, эта инверсия пропадет - то есть плата перестанет работать! Это бубет та самая несовместивомть, о которой я писал в comment:10, и которую предлагаю устранить.

Да, теперь я понял суть проблеммы.
ledol предложил другой вариант решения:
Если в конфиг файле или в конфиге платы FS-08 "байт 1" равен 0x1, то SW-01 должна интерпретировать это как значение 0xE3 (записать это в плату или отобразить в окне настроек). Значение 0xE3 старой прошивкой будет интерпретировано как инверсия и новой прошивкой тоже будет интерпретировано как инверсия(но уже в новом формате настроек).

Last edited 4 days ago by san (previous) (diff)

in reply to:  19 comment:20 by alx, 4 days ago

Replying to san:

Если в конфиг файле или в конфиге платы FS-08 "байт 1" равен 0x1, то SW-01 должна интерпретировать это как значение 0xE3 (записать это в плату или отобразить в окне настроек).

Я понял, что ledol предлагает переложить решение проблемы со своей платы на плату SW-01. :) В принципе, это возможно (хоть и не логично).

Однако это какое-то половинчатое решение... А если байт 1 равен не 0x1, а 0x2? :) Тогда уж лучше засунуть в SW-01 алгоритм, предложенный в comment:10: при отсутствии в конфиге порта байта 10 добавлять его к конфигу автоматически (на основе значения байта 1). Платы со старыми прошивками будут продолжать использовать байт 1, платы с прошивкой ревизии 12 будут использовать байт 10.

comment:21 by san, 4 days ago

А если байт 1 равен не 0x1, а 0x2? :)

В валидном конфиге "старой платы" этот байт может быть только 0 или 1.

Я понял, что ledol предлагает переложить решение проблемы со своей платы на плату SW-01. :) В принципе, это возможно (хоть и не логично).

Он проверил - старая прошивка FS-08 не переварит строку настроек длиннее 10 байт, поэтому решение из коммент10 не будет работать.

in reply to:  21 ; comment:22 by alx, 4 days ago

Replying to san:

В валидном конфиге "старой платы" этот байт может быть только 0 или 1.

Откуда такая уверенность? :) Ты, видимо, основываешь это свое утверждение на двух допущениях:

  1. При включенной инверсии веб-интерфейсе всегда записывал в байт 1 значение 1.
  2. Конфигурация платы может быть создана только веб-интерейсом.

Верно ли первое допущение, не знаю даже я (я знаю, как есть сейчас, но не могу поручиться, что так было всегда). К счастью, при желании это можно выяснить в репозитории.

Верно ли второе допущение, наверное не знает никто. А вдруг пользователь формирует конфиг сам какой-то своей программой (типа КАУСС) для каких-то своих хитрых нужд? Я понимаю, что это маловероятно, но не невозможно.

Поэтому IMHO "академически правильным" решением будет, если уж ledol изначально выделил в настройках для хранения инверсии целый байт, то и оставить весь этот байт для инверсии. А для новых функций использовать новый байт.

Он проверил - старая прошивка FS-08 не переварит строку настроек длиннее 10 байт, поэтому решение из коммент10 не будет работать.

Ахринеть! :( Извините, непроизвольно вырвалось... :)

in reply to:  22 comment:23 by ledol, 3 days ago

Description: modified (diff)

Исправлено описание задачи в п.1 и п.4.
"1. Оставить в web-интерфейсе платы настройку "инверсия СУВ" для 4-го аппаратного исполнения платы."
"4. Версию 12 ПО платы применять к аппаратному исполнению платы 3."

Аппаратную версию платы 4 предлагаю исключить из репозитория и участка программирования как неполноценную.

Last edited 3 days ago by ledol (previous) (diff)

comment:24 by ledol, 3 days ago

Description: modified (diff)

in reply to:  22 comment:25 by san, 3 days ago

Replying to alx:

Ахринеть! :( Извините, непроизвольно вырвалось... :)

Учитывая, что в контроллере 16Кбайт ПЗУ и 2Кбайта ОЗУ, можно понять некоторые ограничения размеров строк.

Аппаратную версию платы 4 предлагаю исключить из репозитория и участка программирования как неполноценную.

Давайте так:

  1. Для исполнения 4 передавать прошивку 12 не будем (я знаю тех двух пользователей, которые получили экспериментальные платы, если им нужно будет обновиться, то сделаем это "вручную" и конфликта не будет). Вопрос с возможным конфликтом на этом будет закрыт.
  2. Если ПО платы меньше версии 12, то в окне настроек веб интерфейс должен отобразить баннер с требованием обновить ПО платы. Ledol предлагает признаком ПО с версией ниже 12 считать отсутствие в плате переменной .250.0.
Last edited 3 days ago by san (previous) (diff)

comment:26 by alx, 3 days ago

Предлагаемая настройка "Звонок" мне не нравится - просторечье какое-то. :) Мне кажется, более грамотно будет назвать ее "Вызов". Нет ли возражений против такой замены?

in reply to:  26 comment:27 by san, 3 days ago

Replying to alx:

Предлагаемая настройка "Звонок" мне не нравится - просторечье какое-то. :) Мне кажется, более грамотно будет назвать ее "Вызов". Нет ли возражений против такой замены?

У меня и ledol возражений нет

comment:28 by alx, 2 days ago

In 2803/sw:

В веб-интерфейсе в диалоге конфигурации платы FS-08
для плат с ревизией прошивки больше 11 отображаются
новые конфигурационные параметры:

  • Прием СУВ из TDM Вызов;
  • Передача СУВ в TDM трубка положена;
  • Передача СУВ в TDM трубка снята.

Для обеспечения совместимости при загрузке конфигурации
платы FS-08, если байт 1 конфигурации порта равен 1,
его значение устанавливается в 0xe2.
See #878.

Note: See TracTickets for help on using tickets.