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

Делись идеей, получай поддержку и критику!

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

Postby taras_33 on 30 Mar 2018, 15:21

Один раз наблюдал такой глюк. Кнопка имеет latch, соответственно её значение variant и ни считать ни записать нельзя. Меняю mechanical action на switch. А value из property node остаётся variant! Бред какой-то. Помогло удаление кнопки с панели с обратным восстанавлением. И ещё если меняете action кнопки, нужно заменить её reference в кластере. При инициализации references LabVIEW нарисует крест на проводе если они не совпадают, но глюки случаются ....
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
User avatar
taras_33
advanced
advanced
 
Posts: 179
Joined: 31 Oct 2009, 18:25
Location: Minsk -> Miami
Medals: 1
Activity (1)
LabVIEW Version: 2016
Karma: 92
CLD

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

Postby K0sinus on 03 Apr 2018, 15:29

Один раз наблюдал такой глюк

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

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

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

Пока не реализовал запоминание/сброс параметров при повторном запуске этого VI как subVI, но это впереди. Еще ломаю голову, как строить касательную только по положительным импульсам, но с этим должен разобраться сам - у вас прошу консультаций по стилю и оптимизации.
Attachments
Main Folder.rar
(647.36 KiB) Downloaded 37 times
K0sinus
beginner
beginner
 
Posts: 40
Joined: 22 Nov 2017, 10:29
Location: Санкт-Петербург
LabVIEW Version: 2014
Karma: 0

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

Postby K0sinus on 04 Apr 2018, 11:37

И ещё вопрос, вдогонку. Каждый раз меняя входной кластер с референсами, долго мучаюсь, заново переформировывая тип кластера, потом меняю его везде... А он же тайпдеф именно для того, чтобы так не делать. Но как изменить референс в самом тайпдефе - не вкурил. Если бы там был контрол или индикатор, это легко, а с ссылками так работать ещё не умею. Вот раньше была ссылка на кластер, а теперь я хочу сделать ссылку на контрол вместо нее... Как?
K0sinus
beginner
beginner
 
Posts: 40
Joined: 22 Nov 2017, 10:29
Location: Санкт-Петербург
LabVIEW Version: 2014
Karma: 0

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

Postby Artem.spb on 04 Apr 2018, 12:15

Неудобный (по мне) метод: правой на ссылку в тайпдефе, там "select vi server class" и дале по меню.
Я же обычно правой на сам контрол, из меню выбираю "создать ref", и этот реф уже перетаскиваю в тайпдеф.
Если совсем сурово и часто приходится менять один их элементов, то моэжно и его сделать тайпдефом. И этот тайпдеф поместить в тайпдеф.
Artem.spb
expert
expert
 
Posts: 1277
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 223
CLD hardware I/O VIP freelance

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

Postby K0sinus on 09 Apr 2018, 08:35

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

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


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

Вопрос такой: может, в данной программе можно было воспользоваться какими-то готовыми решениями, а не писать с нуля? Например, сами импульсы или сохранение с шифрованием? Я нигде велосипеда не сделал?
K0sinus
beginner
beginner
 
Posts: 40
Joined: 22 Nov 2017, 10:29
Location: Санкт-Петербург
LabVIEW Version: 2014
Karma: 0

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

Postby K0sinus on 25 Apr 2018, 10:24

Видимо, новых советов я не дождусь. Тогда такой ещё вопрос: чем принципиально очереди отличаются от нотифаеров? Не оптимальнее в данном проекте использовать именно уведомления? Я же правильно понял, что это та же очередь, только с одним элементом? А в данной программе, мне как раз больше и не требуется. Почему же шаблон producer/consumer строится именно на очередях? Из-зза универсальности? В каком случае использовать нотифаеры предпочтительнее?
K0sinus
beginner
beginner
 
Posts: 40
Joined: 22 Nov 2017, 10:29
Location: Санкт-Петербург
LabVIEW Version: 2014
Karma: 0

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

Postby FireFly on 25 Apr 2018, 10:38

При использовании подхода producer/consumer всегда есть вероятность, что в какой-то момент времени (на короткий период) producer (или несколько producers) начнёт генерировать события быстрее чем consumer их обрабатывает.
Использование очереди позволяет не потерять эти события, в отличии от нотифаера.
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
User avatar
FireFly
expert
expert
 
Posts: 1320
Joined: 25 Apr 2009, 08:58
Location: Санкт-Петербург
Medals: 2
Activity (1) Black (1)
LabVIEW Version: 2014
Karma: 174

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

Postby Artem.spb on 14 May 2018, 12:35

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


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

Читатель очереди вытаскивает элемент из неё, так что параллельное чтение без глюков не получится.Обращение к нотификатору не удаляет элемент, так что можно проверять параллельно из нескольких мест.
Artem.spb
expert
expert
 
Posts: 1277
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 223
CLD hardware I/O VIP freelance

Previous

Return to Проекты

Who is online

Users browsing this forum: No registered users and 0 guests

cron