Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#564 closed улучшение (не будем делать)

VE-02: очищать URI окончаний FS01, FO01 при очистке конфига

Reported by: san Owned by: alx
Priority: низкий Milestone: 1 очередь
Component: sw Keywords:
Cc:

Description

При нажатии кнопки "Очистить конфиг" настройки URI канальных окончаний 255 и 256 платы VE-02 остаются такими, какими их ввёл пользователь(проверялось на окончаниях FS01, FO01). Пользователю может показаться это неправильным - очистка не сработала.
Предлагаю при очистке конфига очищать и значения полей URI.

Change History (15)

in reply to:  description comment:1 by alx, 2 years ago

Resolution: не будем делать
Status: newclosed

Replying to san:

При нажатии кнопки "Очистить конфиг" настройки URI канальных окончаний 255 и 256 платы VE-02 остаются такими, какими их ввёл пользователь(проверялось на окончаниях FS01, FO01). Пользователю может показаться это неправильным - очистка не сработала.
Предлагаю при очистке конфига очищать и значения полей URI.

Так и должно быть. При нажатии кнопки "Очистить конфиг" выполняется очистка конфиг-файла (записывается новый конфиг-файл с пустым корневым элементом <config/>), и больше ничего. Никакие настройки никаких плат при этом не меняются и меняться не должны. Если какому-то пользователю кажется, что при очистке конфига должны измениться URI в каких-то платах - это его личные фантазии. Этому пользователю стоит перечитать руководство по эксплуатации.

comment:2 by san, 2 years ago

Что так задумано я понял.
Но получается, с точки зрения пользователя, поведение этих настроек при очистке конфига отличается от поведения других настроек, поэтому я и предложил улучшение.
Пользователю далеко не очевидно, что одни настройки плат хранятся в конфиге, а другие - нет.
Даже если эта информация будет в РЭ, то на мой взгляд лучше сразу сделать понятный и интуитивный интерфейс, чем ссылаться на РЭ.

in reply to:  2 comment:3 by alx, 2 years ago

Я исхожу и того, что адекватных пользователей больше, чем неадекватных. :)

Если в угоду одному пользователю, который по каким-то непонятным причинам придумал, что при нажатии кнопки "Очитстить конфиг" должна измениться настройка URI канального окончания FS01 платы VE-02, мы сделаем, чтобы это было действительно так, этот один пользователь успокоится, зато удивятся сто других адекватных пользователей, для которых будет неочевидной неожиданностью, что при нажатии "Очитстить конфиг" одна из настроек вдруг изменится... Поэтому мне кажется, что предложенное улучшение больше похоже на диверсию. :)

comment:4 by san, 2 years ago

Ммм...
А чем настройка URI FS01/FO01 хуже других)?
почему нужно хранить её ещё где-то кроме конфиг-файла?

in reply to:  4 comment:5 by alx, 2 years ago

Replying to san:

Ммм...
А чем настройка URI FS01/FO01 хуже других)?
почему нужно хранить её ещё где-то кроме конфиг-файла?

Ммм... А почему ты задаешь эти вопросы мне? :) Задавай их тому, что считает, во-первых, что настройка URI FS01/FO01 хуже других, и во-вторых, что нужно хранить её ещё где-то кроме конфиг-файла. Я так не считаю и вроде бы никогда такого не говорил...

comment:6 by san, 2 years ago

Ок. Переформулирую вопрос.
Почему при "Очистке конфига" URI окончания FXS становится "пустым", а URI окончания FS01 по прежнему отображает введённое пользователем?

in reply to:  6 ; comment:7 by alx, 2 years ago

Replying to san:

Ок. Переформулирую вопрос.
Почему при "Очистке конфига" URI окончания FXS становится "пустым", а URI окончания FS01 по прежнему отображает введённое пользователем?

Вообще-то здесь два разных вопроса. :)

Почему при "Очистке конфига" URI окончания FXS становится "пустым"?

Не знаю. Сам такого никогда не видел, и ни от кого о таком поведении не слышал. Если это действительно так, то это какой-то баг.

Почему при "Очистке конфига" URI окончания FS01 по прежнему отображает введённое пользователем?

Потому что пользователь не менял введенное ранее значение этого параметра.

in reply to:  7 ; comment:8 by san, 2 years ago

Почему при "Очистке конфига" URI окончания FXS становится "пустым"?

Не знаю. Сам такого никогда не видел, и ни от кого о таком поведении не слышал. Если это действительно так, то это какой-то баг.

Это я какую-то ерунду написал. При очистке конфига окончания FXS вообще все пропадают.

in reply to:  8 comment:9 by alx, 2 years ago

Replying to san:

Это я какую-то ерунду написал. При очистке конфига окончания FXS вообще все пропадают.

При очистке конфига они не пропадают, и пропасть не должны. еще раз повторяю, "Очистка конфига" - это только запись пустого конфиг-файла в файловую систему в ПЗУ. Никакого влияния на работу блока она не оказывает. Поэтому все канальные окончания как работали до очистки конфига, так и продолжат работать после. А вот если после очистки конфиг-файла перезапустить блок - тогда они, действительно, пропадут, так как в хранящемся в ПЗУ конфиг-файле их нет...

И отвечаю на, видимо, предполагавшийся вопрос, почему, в отличие от FXS, канальное окончание FS01 остается, даже если его нет в конфиге. Калаьное окончание FS01 - особое, так как для его работы требуется наличие в плате VE-02 модуля FS01. Пользователь не может создать или удалить окончание FS01 по своему желанию. Оно создается автоматически по факту наличия в плате VE-02 модуля FS01. Это сделано намеренно чтобы исключить ситуации, когда пользователь создает канальное окончание другого типа, например FO01 при установленном модуле FS01 или когда никакого модуля нет вообще...

Last edited 2 years ago by alx (previous) (diff)

comment:10 by san, 2 years ago

Ага, теперь понял ключевой момент недопонимания в этом диалоге)
Тогда переформулирую предложение так:

При очистке конфига и перезапуске swd в настройке URI окончаний FS01, FO01 пользователь по прежнему видит значение сохраненное пользователем до очистки конфига.
На мой взгляд это "неожиданно" для пользователя снова увидеть часть своих настроек, после того как конфиг был удалён и, после перезапуска swd, в плату загружен пустой конфиг.
Если же пользователь потом перезагрузит плату VE-02, то URI станет пустым. Думаю что для пользователя совсем не очевидно такое поведение - одна из настроек окончания ведёт себя отлично от других настроек.
Предлагаю сделать так чтобы после очистки конфига и перезапуска swd URI FS01 и FO01 принимало значение "пусто", т.к. именно этого ожидает пользователь из соображений единообразия.

in reply to:  10 comment:11 by alx, 2 years ago

Replying to san:

На мой взгляд это "неожиданно" для пользователя снова увидеть часть своих настроек, после того как конфиг был удалён и, после перезапуска swd, в плату загружен пустой конфиг.

Я не понимаю твой взгляд. Ты считаешь, что пользователя увидит, что ничего не произошло (с настройкой)! :) Чтобы удивиться тому, что ничего не произошло, пользователь должен ожидать, что что-то произойдет. А какие у пользователя основания для таких ожиданий?

Приведу утрированный пример: в твоей плате EM-04 пользователь настраивает номинальный уровень приема интерфейса -13 дБм, затем очищает конфиг, перезапускает swd - и снова видит там -13 дБм! Как же так - с настройкой ничего не произошло! :)

Возвращаясь к VE-02: Почему сохранение значения настройки для него было "неожиданно"? Какое значение он ожидал увидеть и, главное, почему? Мне кажется, в твоем примере очевидный случай ошибочного ожидания...

Если же пользователь потом перезагрузит плату VE-02, то URI станет пустым. Думаю что для пользователя совсем не очевидно такое поведение - одна из настроек окончания ведёт себя отлично от других настроек.

Эту мысль я просто не понял... Какая настройка ведёт себя отлично от какой?

Предлагаю сделать так чтобы после очистки конфига и перезапуска swd URI FS01 и FO01 принимало значение "пусто", т.к. именно этого ожидает пользователь из соображений единообразия.

Почему ты считаешь, что пользователь ожидает значение "пусто"? Из соображений единообразия чего с чем?

comment:12 by san, 2 years ago

Приведу утрированный пример: в твоей плате EM-04 пользователь настраивает номинальный уровень приема интерфейса -13 дБм, затем очищает конфиг, перезапускает swd - и снова видит там -13 дБм! Как же так - с настройкой ничего не произошло! :)

Разница в том что в плате EM-04 "изначально" пустая конфигурация и интерпретируется как -13 Дб, а для FS01 пустая конфигурация интерпретируется то как пусто то как не пусто.

Почему ты считаешь, что пользователь ожидает значение "пусто"? Из соображений единообразия чего с чем?

Например, из единообразия с остальными настройками того-же окончания: выглядит странно что "Горячая линия" становится пустым а Uri нет.

in reply to:  12 comment:13 by alx, 2 years ago

Replying to san:

Разница в том что в плате EM-04 "изначально" пустая конфигурация и интерпретируется как -13 Дб, а для FS01 пустая конфигурация интерпретируется то как пусто то как не пусто.

Она просто никак не интерпретируется, :) так как у этого параметра нет значения по умолчанию.

Почему ты считаешь, что пользователь ожидает значение "пусто"? Из соображений единообразия чего с чем?

Например, из единообразия с остальными настройками того-же окончания

Вообще-то остальных настроек у этого канального окончания много, и далеко не у всех из них значение по умолчанию - "пусто".

выглядит странно что "Горячая линия" становится пустым а Uri нет.

Настройка "Горячая линия", действительно, имеет значение по умолчанию "пусто". Но при этом, например, настройка "Таймаут набора" имеет значение по умолчанию 5000, что очень неединообразно с настройкой "Горячая линия" и, по твоей логике, должно быть "неожиданно" для пользователя. :)

На самом деле значения по умолчанию для конфигурационных параметров выбирались таким образом, чтобы:

  1. обеспечить совместимость с предыдущими ревизиями прошивок. Например параметр "Горячая линия" по умолчанию имеет значение "пусто", потому что именно при таком значении функция "горячая линия" выключена, и плата работает так же, как она работала, когда такой функции еще не было в прошивке.
  2. они могли быть применены в большинстве возможных случаев. Например упомянутый параметр "Таймаут набора" выбран таким образом, чтобы, с одной стороны, не надо было очень долго ждать после завершения набора номера, когда будет выполнен вызов, а с другой стороны, не вызвался неверный номер, если в процессе набора на несколько секунд "задумался" перед вводом очередной цифры...

Что касается параметра "SIP URI", ни тот, ни другой подход к нему неприменимы, так как, во-первых, этот параметр был у окончания с самого начала, и вопроса совместимости не стоит, а во-вторых, нет такого URI, который был бы применим в большинстве случаев - URI для каждого случая свой, и невозможно угадать, какой будет нужен пользователю. Более того, указание URI "наугад" может нарушить работу других канальных окончаний. Поэтому у параметра "SIP URI" значения по умолчанию просто нет.

Еще раз благодарю за уточнения и аргументы, но мое решение остается прежним.

Last edited 2 years ago by alx (previous) (diff)

comment:14 by san, 2 years ago

у этого параметра нет значения по умолчанию.

А есть ещё у платы какие-то настройки для которых нет значения по умолчанию?

Что касается параметра "SIP URI", ни тот, ни другой подход к нему неприменимы, так как, во-первых, этот параметр был у окончания с самого начала, и вопроса совместимости не стоит, а во-вторых, нет такого URI, который был бы применим в большинстве случаев - URI для каждого случая свой, и невозможно угадать, какой будет нужен пользователю. Более того, указание URI "наугад" может нарушить работу других канальных окончаний. Поэтому у параметра "SIP URI" значения по умолчанию просто нет

Но если конфиг пустой, то после перезагрузки VE-02 URI становится пустым(т.е ему приходится остаться пустым т.к. значения по умолчанию нет), почему бы тогда не задать ему пустое значение по умолчанию, раз мы всё равно вынуждены делать его пустым в каких то случаях. По-моему это логичнее, чем оставлять в этой настройке "старое" значение, которое пользователь уже "удалил".

in reply to:  14 comment:15 by alx, 2 years ago

Replying to san:

у этого параметра нет значения по умолчанию.

А есть ещё у платы какие-то настройки для которых нет значения по умолчанию?

Не готов так сразу ответить - это надо искать в исходном коде... Хотя вот, пожалуй, "Канал". :)

Но если конфиг пустой, то после перезагрузки VE-02 URI становится пустым

Да, это так, но это просто случайность - потому что для хранения URI используется переменная типа std::string, а ее конструктор по умолчанию создает пустую строку.

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

Мы не были вынуждены делать его пустым. Как я уже написал выше, такое начальное значение получилось случайно. Более того, это значение не является валидным для URI. Кажется когда я впервые делал окончание FS01, я думал над этим вопросом, но так и не смог придумать никакого разумного валидного значения по умолчанию для URI, поэтому вынужденно оставил так, как получилось само собой. :)

Почему бы не сделать - не знаю. Сделать для URI значение по умолчанию "пусто", конечно, можно. Но мне кажется, что "а почему бы не..." - это недостаточная аргументация для подобного изменения. :) Ты преподносишь свое предложение как улучшение, а я пока этого улучшения не вижу - твои аргументы не убедили меня в том, что в результате что-то станет лучше... Я бы, возможно, согласился, если бы ты предложил какой-то валидный URI в качестве значения по умолчанию, но не "пусто". Потому что с "пусто" точно ничего не получится (с). :)

Еще ты сам когда-то говорил, что при нажатии "Сброс" в веб-интерфейсе настройки должны принимать значения по умолчанию (на практике это выполняется не для всех настроек). Мной предполагалось, что это такая "аварийная" кнопка для случая, когда пользователь играл с настройками и доигрался до того, что ничего не работает. :) Тогда он может нажать "Сброс" и большинство настроек (например уровни всякие, длительности и т.п.) вернется к значениям по умолчанию, при которых, скорее всего, все как-то заработает. А теперь представь, что при нажатии "Сброс" параметр "SIP URI" очищается. Результат будет противоположным желаемому... :)

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

С пустым URI канальное окончание не сможет ни послать INVITE, ни принять входящий, то есть просто не будет работать. Чем же такое значение лучше того, которое раньше было (надеюсь, что осмысленно) назначено пользователем? В чем логика?

Note: See TracTickets for help on using tickets.