Opened 6 years ago

Last modified 12 hours ago

#224 reopened дефект

Ложное отображение активности входных сигналов DTR и RTS модуля R232 платы PD-04

Reported by: alx Owned by: anatoly
Priority: minor Component: MC04-DSL-3U и его платы
Keywords: Cc: san, alx

Description

Обнаружено, что если в конфигурации модуля R232 платы PD-04 чекбокс "Аппаратное управление" не отмечен, индикаторы DTR и RTS в веб-интерфейсе показывают активность соответствующих сигналов в то время как к плате ничего не подключено, и, следовательно, активными эти сигналы быть не могут. Байт 3 переменной .6.1.1.0 имеет значение 15, то есть плата действительно сообщает об активности сигналов DTR и RTS.

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

Change History (24)

comment:1 by anatoly, 6 years ago

Если аппаратное управление отключено, то все квитирующие сигналы имеют активный уровень принудительно.

comment:2 by anatoly, 6 years ago

Resolution: готово
Status: newclosed

comment:3 by san, 6 years ago

Уточню немного Толин ответ.
Устно он пояснил что в веб интерфейсе отображаются не сами сигналы DTR и RTS, а то что передаётся в сторону центральной платы в качестве значения этих сигналов. А при отключенном аппаратном управлении в сторону центральной платы принудительно передаются активные уровни.

in reply to:  1 comment:4 by alx, 6 years ago

Replying to anatoly:

Если аппаратное управление отключено, то все квитирующие сигналы имеют активный уровень принудительно.

Плата PD-04 не может принудительно ничего установить на DTR и RTS, так как DTS и RTS - это ее входные сигналы. Какой уровень на этих входах, зависит исключительно от внешнего оборудования, но никак не от самой платы PD-04. Например, я могу внешним проводом соединить вход DTR с "землей", и он будет гарантированно неактивным. В веб-интерфейсе при этом должно отображаться неактивное состояние сигнала DTR.

in reply to:  3 comment:5 by alx, 6 years ago

Replying to san:

... в веб интерфейсе отображаются не сами сигналы DTR и RTS, а то что передаётся в сторону центральной платы в качестве значения этих сигналов. А при отключенном аппаратном управлении в сторону центральной платы принудительно передаются активные уровни.

Понятно, что сами фзические сигналы DTR и RTS в плату SW-01 не идут. Вместо них плата PD-04 передает информацию о состоянии этих сигналов. Проблема в том, что эта информация не всегда верная: при отключенном аппаратном управлении потоком плата PD-04 отдает (в ответ на запрос переменной .6.1.1.0) информацию о том, что DTR и RTS активны, в то время как на самом деле они неактивны (низкий уровень на входах). Об этом и тикет.

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

comment:6 by alx, 6 years ago

Resolution: готово
Status: closedreopened

И, насколько я понимаю, тикет был закрыт по ошибке - не было выпущено исправления. Переоткрываю.

comment:7 by alx, 6 years ago

Провел дополнительный эксперимент. В плату PD-04 установил модуль R232, на соответствующем разъеме соединил контакт 7 (DTR) с контактом 4 (SG). Таким образом, я обеспечил на входе DTR напряжение 0, что соответствует неактивному состоянию сигнала. Но в веб-интерфейсе индикатор DTR отображал состояние сигнала как активное, что не соответствует действительности.

comment:8 by san, 4 years ago

Насколько я понял Толю, он имел в виду что так и задумано.
При снятом чекбоксе "Аппаратное управление" состояние входов DTR и RTS не контролируется, а индикаторы DTR и RTS всегда будут активными.

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

Replying to san:

При снятом чекбоксе "Аппаратное управление" состояние входов DTR и RTS не контролируется, а индикаторы DTR и RTS всегда будут активными.

В таком случае, задуманное противоречит описанному в документации.

comment:10 by san, 2 years ago

milestone: 1 очередь

Milestone deleted

comment:11 by san, 23 months ago

Component: PD-04 и ее модулиMC04-DSL-3U и его платы

in reply to:  8 comment:12 by Vladimir, 3 days ago

Cc: san alx added

Replying to san:

Насколько я понял Толю, он имел в виду что так и задумано.
При снятом чекбоксе "Аппаратное управление" состояние входов DTR и RTS не контролируется,
а индикаторы DTR и RTS всегда будут активными.

Сейчас в РЭ-74 записано так:
"Если стоит галочка Аппаратное управление, то управляющие сигналы прозрачно передаются на дальний конец (анализа и управления данными в плате не происходит). Состояние входа RTS прозрачно передаётся на дальнюю сторону на выход CTS.
Состояние входа DTR передаётся на дальнюю сторону на выход DSR. Управляющие сигналы и данные передаются через аппаратуру прозрачно от одного пользовательского устройства в другое, анализ и использование управляющих сигналов происходят
в пользовательских устройствах. Если галочка Аппаратное управление не установлена,
то на выходы CTS и DSR всегда выдаётся неактивное состояние.

В следующей редакции РЭ-75 это надо исправить? "
Если надо исправить, то напишите тикет в мой компонент "Инструкция по эксплуатации".

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

comment:13 by san, 36 hours ago

Resolution: это не баг
Status: reopenedclosed

Раз уж Vladimir поднял этот тикет из прошлого, думаю пора его закрыть :)

Автором задуманно так:

  • При установленном чекбоксе "Аппаратное управление" значения входных сигналы RTS и DTR передаются прозрачно на дальнюю сторону и выдаются на выходы CTS и DSR соответственно.
  • Если чекбокс снят, то считается, что входы RTS и DTR и выходы CTS и DSR не используются и их состояние не определено, а индикация не имеет значения.

in reply to:  13 comment:14 by alx, 35 hours ago

Replying to san:

пора его закрыть :)

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

Ты закрыл тикет с резолюцией "это не баг". Хочется узнать, а что это, в таком случае.

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

Last edited 35 hours ago by alx (previous) (diff)

comment:15 by san, 35 hours ago

Replying to alx:

которая состоит в неверной индикации


san:
состояние не определено, а индикация не имеет значения

Индикация в данном случае показывает ерунду, как и задумал автор

Last edited 35 hours ago by san (previous) (diff)

in reply to:  13 comment:16 by Vladimir, 35 hours ago

Replying to san:

Раз уж Vladimir поднял этот тикет из прошлого, думаю пора его закрыть :)

Автором задуманно так:

  • При установленном чекбоксе "Аппаратное управление" значения входных сигналы RTS и DTR передаются прозрачно на дальнюю сторону и выдаются на выходы CTS и DSR соответственно.
  • Если чекбокс снят, то считается, что входы RTS и DTR и выходы CTS и DSR не используются и их состояние не определено, а индикация не имеет значения, т.е. индикаторы не врут :-)

С учётом предложения от san я изменил текст в редактируемом РЭ-75,
но готов изменить сколько угодно раз в лучшую сторону :-)

Влад уже проверил в блоке с платой PD-04 + R232:
если индикаторы DTR, DSR зелёные, то уровни напряжения соответствуют активности.

Last edited 34 hours ago by Vladimir (previous) (diff)

in reply to:  15 comment:17 by alx, 34 hours ago

Replying to san:

Индикация в данном случае показывает ерунду

Об этом я написал в описании тикета еще 6 лет назад, и именно по этой причине я и создал этот тикет. Не понял, в чем смысл твоего комментария...

comment:18 by san, 33 hours ago

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

in reply to:  18 comment:19 by alx, 32 hours ago

Replying to san:

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

Я понял, что автором так задумано, но я не понимаю, какое это имеет отношение к закрытию тобой тикета. Следует ли понимать тебя так, что то, что задумал и сделал автор, нельзя критиковать трогать (изменять, улучшать) ни при каких условиях? :) Думаю что нет, так как ты сам неоднократно создавал тикеты, в которых предлагал авторам самые разные изменения. Не далее как сегодня ты сам создал для меня два тикета. Автор - не господь бог, и он мог в своей задумке ошибиться, задумать плохо, неправильно... Или этот конкретный автор - особенный? :)

Мы имеем факт: работа аппаратуры противоречит документации (с этим вроде бы никто не спорит). В моем понимании - это однозначно баг, поэтому я создаю тикет. Ты закрываешь тикет с противоречивым комментарием (в тексте комментария пишешь, что тикет закрыт потому что пришла пора (???), но резолюцию почему-то выбираешь "это не баг") и не хочешь пояснить причину закрытия (не отвечаешь на вопросы comment:14)... Мне эта ситуация кажется странной, неправильной. Не помню, чтобы когда-либо ранее ты закрывал чей-то (заметь, не свой!) тикет без разумных объяснений...

Last edited 32 hours ago by alx (previous) (diff)

comment:20 by alx, 31 hours ago

Resolution: это не баг
Status: closedreopened

Сегодня эта ситуация с багом 6-летней давности меня немного разозлила. Я залез в eng_progs и обнаружил там исходники ПЛИС платы PD-04. Там я, как мне кажется, нашел место, где индикация DTR/RTS "портится" при выключении "Аппаратного управления". Предлагаю посмотреть следующий патч:

  • module.tdf

    old new  
    450450               cas_b_rx = VCC;
    451451       ELSE
    452452               IF (module_type[4..0] == RS_232) THEN
    453                        IF hard_management THEN
    454453                               cas_a_rx = cas_a_rx_;   -- ???????????
    455454                               cas_b_rx = cas_b_rx_;
    456                        ELSE
    457                                cas_a_rx = GND;                 -- ???????     
    458                                cas_b_rx = GND;
    459                        END IF;
    460455               ELSIF (module_type[4..0] == CS_02) THEN
    461456                       IF cs_tx_tdm[1] THEN
    462457                               cas_a_rx = VCC;

Здесь cas_a_rx и cas_b_rx - это сигналы индикации RTS/DTR, которые отдаются процессору платы, cas_a_rx_ и cas_b_rx_ - профильтрованные входные сигналы RTS/DTR.

На выяснение этого у меня ушло приблизительно 30 минут. По моему скромному мнению, вот эта вот фигня не стоила шести лет ожидания исправления и нескольких (!!!) тикетов с предложениями замести эту проблему под ковер в веб-интерфейсе...

Прошу протестировать мой патч в аппаратуре, и если все OK выпустить обновление. Если разработчик ПЛИС PD-04 сильно занят, прошу san поручить это кому-нибудь еще.

Last edited 28 hours ago by alx (previous) (diff)

comment:21 by san, 17 hours ago

ситуация с багом 6-летней давности

Формально это не баг, т.к. разработчик задумывал именно такое поведение.

cas_a_rx и cas_b_rx - это сигналы индикации RTS/DTR, которые отдаются процессору платы

Подозреваю, что эти же сигналы передаются в TDM, т.е. твой патч изменит не только индикацию...

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

in reply to:  21 comment:22 by alx, 14 hours ago

Type: дефектулучшение

Replying to san:

Формально это не баг,

А что тогда в твоем понимании баг? Дай свое определение, пожалуйста.

Я думал, что когда поведение устройства не соответствует написанному в документации - это ненормально, так быть не должно. Иными словами, имеет место дефект, баг. А по-твоему противоречие реального поведения описанному в документации - это нормально?

Поставь себя на место потребителя, столкнувшегося с такой ситуацией. В документации он читает, что индикатор отражает состояние входного сигнала, а на практике видит - что нет, не отражает. Что он подумает? По-моему ясно что - что эта функция не работает... Уверен, что ты не хуже меня знаешь, что основой Политики в области качества ООО "АДС" является стремление повысить удовлетворенность потребителя. Ты сам неоднократно повторял, что мы - клиентоориентированная компания. Будет ли потребитель удовлетворен, обнаружив, что заявленная в документации функция не работает?

т.к. разработчик задумывал именно такое поведение.

Если разработчик задумал и реализовал именно так, то почему в РЭ поведение индикаторов описано по-другому, а не так, как задумано (и реально реализовано в ПЛИС) разработчиком? Это вдвойне удивительно, учитывая, что на тот момент разработчиком ПЛИС PD-04 и разработчиком РЭ было одно и то же лицо...

cas_a_rx и cas_b_rx - это сигналы индикации RTS/DTR, которые отдаются процессору платы

Подозреваю, что эти же сигналы передаются в TDM, т.е. твой патч изменит не только индикацию...

В comment:13 ты сам написал:

Если чекбокс снят, то считается, что входы RTS и DTR и выходы CTS и DSR не используются и их состояние не определено

Если сигналы не используются, то какая разница, что передавать - 0 или не 0?

Я не утверждаю, что предложенный мной патч безупречен (поэтому и просил о проверке "в железе"). Возможно, он никуда не годится. Но это ИМХО единственная попытка реального решения проблемы за последние 6 лет. Путь в тысячу ли начинается с первого шага... :)

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

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

comment:23 by alx, 14 hours ago

Type: улучшениедефект

Прошу прощения, поторопился изменить тип тикета на "улучшение". Сначала, узнав, что san противоречие реального поведения документации дефектом не считает, хотел изменить, но потом решил дождаться результата дискуссии по этому вопросу..

in reply to:  21 comment:24 by alx, 13 hours ago

Replying to san:

не вижу смысла для пользователя отключать передачу RTS/DTR. Алексей, что ты думаешь об этом предложении?

Могу ответить на твой вопрос так: я тоже для пользователя такого смысла не вижу. Пользователю было бы удобнее без такой настройки (проще - лучше). Но я не знаю, возможно ли исключить эту настройку технически. Насколько я понял из вчерашнего анализа кода ПЛИС, эта настройка не делает ничего кроме зануления/заединичивания входных/выходных управляющих сигналов. Зачем это могло потребоваться разработчикам, для меня непонятно...

Last edited 12 hours ago by alx (previous) (diff)
Note: See TracTickets for help on using tickets.