Opened 6 лет ago

Closed 6 лет ago

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

Реинициализация экрана.

Сообщил: san Владелец: alx
Приоритет: фигня Этап разработки: 2-я очередь
Ключевые слова: Копия: andrei, Director, Art_M

Описание

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

История изменений (32)

comment:1 by alx, 6 лет ago

Мне удалось найти в драйвере функцию fbtft_init_display(), при вызове которой дисплей инициализируется. Однако процесс инициализации дисплея длится почти 200 мс. Не помешает ли такое длительное занятие шины SPI работе установки (например опросу датчиков)?

Если нет, буду думать дальше - каким образом сообщить драйверу, что надо выполнить эту функцию...

comment:2 by san, 6 лет ago

Думаю что помешает.

comment:3 by alx, 6 лет ago

Тогда есть вариант выполнять инициализацию при нажатии оператором какой-то определенной комбинации клавишь. Или, например, при длительном удержании какой-нибудь кнопки (например ОТМ)...

comment:4 by san, 6 лет ago

Наверное стоит обсудить это с директором, предложившим тикет.

comment:5 by alx, 6 лет ago

Копия: Director added

in reply to:  2 comment:6 by alx, 6 лет ago

Replying to san:

Думаю что помешает.

А, кстати, не мог бы ты более подробно написать, чем именно помешает?

Version 0, edited 6 лет ago by alx (следующий)

comment:7 by san, 6 лет ago

Например, при движении вверх за 200 мс. можно проскочить датчик, двигатели будут пытаться тащить шток который "встал на упор" и привод остановится по превышению нагрузки на штоке или по аварии ЧРП

comment:8 by san, 6 лет ago

Есть предложение проводить реинициализацию экрана в определённый момент. Например когда привод не движется или сразу после начала движения, тогда, кажется эти 200мс. ничему особо не помешают

comment:9 by alx, 6 лет ago

Согласен. Но вариант "ручной" инициализации мне тоже кажется полезным. Представь себе, что оператор работает с установкой, и вдруг дисплей "испортился" - отображает мусор. Без ручного сброса оператору придется ждать пять минут прежде чем он сможет продолжить работу. Вместо этого он мог бы, например, подержать "ОТМ" 5 секунд - и все...

comment:10 by san, 6 лет ago

Насколько я помню идея директора была в такой инициализации экрана "чтобы оператор ничего не заметил".

in reply to:  10 comment:11 by alx, 6 лет ago

Replying to san:

"чтобы оператор ничего не заметил".

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

comment:12 by andrei, 6 лет ago

А за RESET его подергать не достаточно?
Было бы хорошо на столе поймать этот баг.

comment:13 by san, 6 лет ago

Так после резета, "настройки" дисплея сбросятся и без инициализации он корректно работать не будет.

comment:14 by andrei, 6 лет ago

Если кабель DB-9/DB-9 соединяющий панель оператора с контроллером отключить и подключить обратно дисплей перестает отображать информацию. Ресетом вылечить не получилось. Перезагрузка процессора SAM5 помогает.

comment:15 by andrei, 6 лет ago

Копия: Art_M added

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

comment:16 by san, 6 лет ago

Тикет создан мной по просьбе директора(смотри описание), предлагаю узнать что по этому поводу думает автор тикета.

in reply to:  12 comment:17 by alx, 6 лет ago

Поторопился я, оказывается, Саша уже ответил, почти теми же словами... :)

comment:18 by andrei, 6 лет ago

Саша, раз уж ты от директора принес этот тикет, тебе и обсуждать с директором его актуальность.
А мы ждем решения.

comment:19 by san, 6 лет ago

Директор добавлен в копию этого тикета.

comment:20 by andrei, 6 лет ago

Директор подтвердил актуальность задачи.
Думаем.
Реализуем.

comment:21 by san, 6 лет ago

Если ты не заметил, мы зашли в тупик. Читай комменты.

in reply to:  21 comment:22 by alx, 6 лет ago

Replying to san:

Если ты не заметил, мы зашли в тупик.

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

comment:23 by san, 6 лет ago

Это я понял.
Но закончили мы диалог этим:

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

Это я и назвал тупиком, каким образом предлагается реализовать нереализуемое?

comment:24 by alx, 6 лет ago

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

comment:25 by andrei, 6 лет ago

В тупик, Саша, ты сам это завел наводящими комментариями.
Только инициализация нас спасет? Сброс питания я пока не рассматриваю.
Тогда предлагаю два варианта инициализации дисплея: 1- Ручками, удерживая какую-либо кнопку. 2- Автоматически.
Если речь о 200 мс, то это не так страшно.
Можно инициализировать в автомате при выводе дисплея из "ждущего режима". Нужно понять когда это не помешает работе станции (а может придумать как обойти это и инициализировать с приоритетом ниже опроса датчиков).
А если он сломается в активном состоянии, то оператор подержит кнопку и оживит его.

comment:26 by andrei, 6 лет ago

Сколько времени длится сработанное состояние датчика положения при наиболее быстром движении штока?
Наверно можно это посмотреть осциллографом в гтп.

comment:27 by san, 6 лет ago

инициализировать в автомате при выводе дисплея из "ждущего режима"

Я считаю что намеренно "тупить" 200 мс. в практически произвольный момент времени неправильно и даже опасно: решая мизерную проблему мы создаём потенциальную дыру в алгоритме.

Ручками, удерживая какую-либо кнопку.

У меня есть сильное подозрение что оператор , которому посчастливиться встретить этот баг, даже не будет знать/помнить, что есть такая волшебная кнопка, а просто сбросит питание контроллера и нашии усилия будут напрасными.
Ну и ручной сброс - это точно не то что хотел директор.

необходимо чем-то пожертвовать

На мой взгляд Андрей и должен решить чем жертвовать.

in reply to:  27 comment:28 by andrei, 6 лет ago

это точно не то что хотел директор.

Не тебе это знать

На мой взгляд Андрей и должен решить чем жертвовать.

А это знать тебе, да.

comment:29 by san, 6 лет ago

Андрей, хватит превращать тикеты во флуд.

comment:30 by andrei, 6 лет ago

Приоритет: среднийфигня

comment:31 by san, 6 лет ago

5 месяцев прошло, Андрей, предлагаю закрыть как "не будем делать", аргументы уже приводил выше.

comment:32 by san, 6 лет ago

Решение: не будем делать
Состояние: newclosed

Т.к. за время эксплуатации жалоб на "зависшие экраны" не поступало, директор предложил закрыть тикет.

Note: See TracTickets for help on using tickets.