Opened 2 months ago

Closed 2 months ago

#420 closed баг (fixed)

Неверная индикация светодиодами окончания R485

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

Description

Цитирую из РЭ:

Состояние канальных окончаний R232, R422, R485 отображается двумя индикаторами
соответствующего порта:
- желтый индикатор горит постоянно – канальное окончание ожидает входящее подключение
от клиента (находится в состоянии Listen).
- зеленый индикатор горит постоянно – установлено соединение TCP, но данные
не передаются в сеть (состояние Connected).
- желтый индикатор мигает – приняты данные из сети для передачи в порт.
- зеленый индикатор мигает – данные, принятые портом передаются в сеть.

Согласно этой цитате у окончания R485 не могут одновременно "гореть" два индикатора. т.к. они отображают взаимоисключающие состояния.

Однако во время настройки схемы пользователя несколько раз я наблюдал такое состояние индикаторов окончания в состоянии Connected.
ПО VE-02 ревизии 47
Я постараюсь воспроизвести этот баг чуть позже.

Change History (3)

comment:1 by alx, 2 months ago

Приложи, пожалуйста, конфигурацию, при которой наблюдается описанный баг.

comment:2 by alx, 2 months ago

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

comment:3 by alx, 2 months ago

Resolution: fixed
Status: newclosed

In 2253/sip_ua:

Исправлена ошибка индикации желтым светодиодом окончаний R232/R422/R485:
желтый светодиод зажигался слишком рано - когда еще окончание только
"имело намерение" перейти в состояние listen. Если после зажигания светодиода
какой-то системный вызов возвращал ошибку, окончание вместо состояния listen
переходило в состояние error, однако светодиод продолжал гореть.
Теперь светодиод зажигается только в случае успешного выполнения
всех системных вызовов - когда причин не перейти в состояние listen уже нет.
Closes #420.

Note: See TracTickets for help on using tickets.