Page 3 of 3

Re: Нужны критика и нравоучения. Формирование импульсов

PostPosted: 30 Mar 2018, 15:21
by taras_33
Один раз наблюдал такой глюк. Кнопка имеет latch, соответственно её значение variant и ни считать ни записать нельзя. Меняю mechanical action на switch. А value из property node остаётся variant! Бред какой-то. Помогло удаление кнопки с панели с обратным восстанавлением. И ещё если меняете action кнопки, нужно заменить её reference в кластере. При инициализации references LabVIEW нарисует крест на проводе если они не совпадают, но глюки случаются ....

Re: Нужны критика и нравоучения. Формирование импульсов

PostPosted: 03 Apr 2018, 15:29
by K0sinus
Один раз наблюдал такой глюк

Да, это как раз он и был. Плюс путаница с тайпдефами и кластерами. Вроде разобрался, спасибо!

Вот, что у меня получилось, всё стало модульнее, компактнее, с ссылками (к последнему пока не привык полностью, но надо, значит надо).
Правильно ли я всё реализовал? Не обошлось конечно и без property node:value(signaling) в producer'е, это критично? Или лучше создать ещё пару состояний в консюмере?

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

Пока не реализовал запоминание/сброс параметров при повторном запуске этого VI как subVI, но это впереди. Еще ломаю голову, как строить касательную только по положительным импульсам, но с этим должен разобраться сам - у вас прошу консультаций по стилю и оптимизации.

Re: Нужны критика и нравоучения. Формирование импульсов

PostPosted: 04 Apr 2018, 11:37
by K0sinus
И ещё вопрос, вдогонку. Каждый раз меняя входной кластер с референсами, долго мучаюсь, заново переформировывая тип кластера, потом меняю его везде... А он же тайпдеф именно для того, чтобы так не делать. Но как изменить референс в самом тайпдефе - не вкурил. Если бы там был контрол или индикатор, это легко, а с ссылками так работать ещё не умею. Вот раньше была ссылка на кластер, а теперь я хочу сделать ссылку на контрол вместо нее... Как?

Re: Нужны критика и нравоучения. Формирование импульсов

PostPosted: 04 Apr 2018, 12:15
by Artem.spb
Неудобный (по мне) метод: правой на ссылку в тайпдефе, там "select vi server class" и дале по меню.
Я же обычно правой на сам контрол, из меню выбираю "создать ref", и этот реф уже перетаскиваю в тайпдеф.
Если совсем сурово и часто приходится менять один их элементов, то моэжно и его сделать тайпдефом. И этот тайпдеф поместить в тайпдеф.

Re: Нужны критика и нравоучения. Формирование импульсов

PostPosted: 09 Apr 2018, 08:35
by K0sinus
Вот, что у меня получилось, всё стало модульнее, компактнее, с ссылками (к последнему пока не привык полностью, но надо, значит надо).
Правильно ли я всё реализовал? Не обошлось конечно и без property node:value(signaling) в producer'е, это критично? Или лучше создать ещё пару состояний в консюмере?

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


Пока никто не отвечает, буду спрашивать дальше :wink:

Вопрос такой: может, в данной программе можно было воспользоваться какими-то готовыми решениями, а не писать с нуля? Например, сами импульсы или сохранение с шифрованием? Я нигде велосипеда не сделал?

Re: Нужны критика и нравоучения. Формирование импульсов

PostPosted: 25 Apr 2018, 10:24
by K0sinus
Видимо, новых советов я не дождусь. Тогда такой ещё вопрос: чем принципиально очереди отличаются от нотифаеров? Не оптимальнее в данном проекте использовать именно уведомления? Я же правильно понял, что это та же очередь, только с одним элементом? А в данной программе, мне как раз больше и не требуется. Почему же шаблон producer/consumer строится именно на очередях? Из-зза универсальности? В каком случае использовать нотифаеры предпочтительнее?

Re: Нужны критика и нравоучения. Формирование импульсов

PostPosted: 25 Apr 2018, 10:38
by FireFly
При использовании подхода producer/consumer всегда есть вероятность, что в какой-то момент времени (на короткий период) producer (или несколько producers) начнёт генерировать события быстрее чем consumer их обрабатывает.
Использование очереди позволяет не потерять эти события, в отличии от нотифаера.

Re: Нужны критика и нравоучения. Формирование импульсов

PostPosted: 14 May 2018, 12:35
by Artem.spb
K0sinus wrote:Видимо, новых советов я не дождусь. Тогда такой ещё вопрос: чем принципиально очереди отличаются от нотифаеров? Не оптимальнее в данном проекте использовать именно уведомления? Я же правильно понял, что это та же очередь, только с одним элементом? А в данной программе, мне как раз больше и не требуется. Почему же шаблон producer/consumer строится именно на очередях? Из-зза универсальности? В каком случае использовать нотифаеры предпочтительнее?


Кроме возможности поставить в очередь больше одного элемента есть ещё одно ключевое различие:
очередь = от многих одному,
нотификаторы - от одного многим.

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