Страница 1 из 2

Индикатор сложения и вычитания

Добавлено: 03 авг 2018, 15:51
Select
Задача:
Нажатие кнопки 1 = (+1) и 2(= -1) представляет собой счетчик количества нажатий.
Необходимо визуально посредством одного из набора графического индикаторов Numerik отображать результат.
Константы до Select, я не могу менять.
В моем случае индикатор не суммирует значения.

Re: Индикатор сложения и вычитания

Добавлено: 03 авг 2018, 15:54
Select
Если проще, то это графический калькулятор с отображением текущего результата

Re: Индикатор сложения и вычитания

Добавлено: 03 авг 2018, 21:30
Blackman
:think:

Re: Индикатор сложения и вычитания

Добавлено: 05 авг 2018, 22:25
Select
Благодарю, к сожалению для меня это громоздкий код, у меня кнопка +1 и -1, которые управляют запуском генератора определенной формы сигналов воздействия на специфический, НЕ DAQ, драйвером логического управления напряжением и мне нужно каким то образом решить прогресс индикацию отображения настроек напряжения.
Думал применить процедуру подсчета нажатий с передачей суммы к прогресс индикатору, но это не работает, индикатор отображает мгновенный импульс +1 и возвращается в 0, задействовать удержание не приемлемо, т.к. требуется фиксация на каждое нажатие.
Возможно существует метод присвоения свойства control к регулятору, где может применяться тот же принцип что и при нажатии кнопки, т.е селективный переключатель? Я здесь нечто похожее нарыл, но он меняет значения с плавающей запятой, в свойствах при отображении кол-ва цифр не рулит, т.е. фактически переход от перврого нажатия к второму это 1,022466 ...99, 2, а не 1 - 2 индикация работает, но сигнал идет непрерывный, а требуется 1 импульс.
Не знаю насколько в.с. доходчиво к пониманию.

Re: Индикатор сложения и вычитания

Добавлено: 06 авг 2018, 09:40
Artem.spb
Select писал(а):Не знаю насколько в.с. доходчиво к пониманию.
я вот толком ничего не понял.
Особенно, почему вы ваш код считаете менее громоздким, чем код Blackman-а. Если нужно помнить прошлое значение переменной, то без сдвиговых не обойтись. Ну можно их локальными переменными заменить.
Опять же не понятно, кого вы называете регулятором.
Если вам надо увеличивать на 1 что-то стрелочное (судя по индикатору Meter в первом посте), то и увеличвайте прямо а индикаторе:
meter.PNG
meter.PNG (10.1 КБ) 6232 просмотра

Re: Индикатор сложения и вычитания

Добавлено: 06 авг 2018, 16:08
Blackman
Попробую с другого боку)

Re: Индикатор сложения и вычитания

Добавлено: 07 авг 2018, 00:52
Select
Artem.spb,
Нужно построить индикатор, который во время запуска программы, отображает в реальном времени разницу количества нажатия 2 кнопок, при останове сброс на 0.
Пример:
Кнопка "А" была нажата 10 раз, кнопка "В" 3 раза, прогресс бар (или numric indicator) соответствует значению 7.
В качестве альтернативы, возможно есть метод назначения свойства control к элементу типа knob, который при вращении, будет дублировать функцию нажатия определенных кнопок (OK button).

Re: Индикатор сложения и вычитания

Добавлено: 07 авг 2018, 10:17
Artem.spb
вот вам чудо кастомизации, которое в реальномм времени, причём даже когда программа не запущена, показывает разницу в количестве нажатий между левой и правой кнопками :)
при остановке программы в локальную переменную можно запистаь 0, будет "сброс".
ctrl.PNG
ctrl.PNG (7.82 КБ) 6164 просмотра

Re: Индикатор сложения и вычитания

Добавлено: 08 авг 2018, 04:48
Vitekkz88
Наверно так хочется, не? Сброс после нажатия кнопки "стоп" прикрутите сами(если оно надо). По старту и так всё обнуляется...

Re: Индикатор сложения и вычитания

Добавлено: 10 авг 2018, 00:42
Select
Vitekkz88,
Гран мерси, за vi :drink: очень красиво
Попытка вывести сигналы boolean за пределы лупа в основной цикл к тем модулям, с которыми они должны взаимодействовать, пораждает крах, какими бы сплиттерами и пр. я не пытался. Проблема в том, что я не представляю как этот луп внедрить в существующий с привязкой к этим кнопкам. Эти 2 мои кнопки в куче с остальными выполняют через селект и add обращение к массивам, те в свою очередь индексируются на выборку параметров к управлению генератором. Я не могу их выдрать из контекста в отдельный луп.
Вот фрагмент моего кода.
В целом проблема индикации напряжения решаема на аппаратном уровне посредством команд от этих кнопок, пришлось менять дизайн железа, чтоб осуществлялся контроль, но я все же уже из спортивного интереса хочу все же додумать такой код с привязкой к своей ситуации.

Re: Индикатор сложения и вычитания

Добавлено: 10 авг 2018, 14:06
taras_33
Оно конечно ежели, хотя однако всетаки, но если что коснется вдруг, то вот вам и пожалуйста.

Вот примерно так Вы объясняете, чего добиваетесь. Экстасенсов здесь нет, гадание в програмировании дело неблагодарное, например выложенный законченый vi от Vitekkz88 вы пытаетесь воткнуть в свой законченый vi в итоге имеем два while loop один внутри другого. Конечно ничего работать не будет. Вот здесь я занимаюсь именно этим. Выложите полностью VI, даже если он не рабочий, что бы люди понимали логику работы программы.

Re: Индикатор сложения и вычитания

Добавлено: 10 авг 2018, 14:39
Vitekkz88
Select писал(а):Проблема в том, что я не представляю как этот луп внедрить в существующий с привязкой к этим кнопкам.
Эммм...тут скорее архитектурная проблема самого приложения. Я не совсем понял, что и куда Вы пытаетесь выводить. Вам же просто индикация нужна, верно? Не обязательно аппаратные вещи смешивать с визуальными.
Вот у вас есть 2 кнопки: "А" и "В", они помещены в некий основной цикл. Вот у Вас есть задача: посчитать разницу между нажатиями кнопки "А" и кнопки "В". Задача носит чисто визуальный и информативный характер(по крайней мере это так понял я из постановки). Пути решения:
1. Вносим логику решения в основной цикл. Вам не нужно целиком цикл в цикл копировать. Вам от туда логику дёрнуть нужно и добавить к себе. Всё, задача решена.
2. Если хотим в отдельный цикл, то всё немного усложняется:
создаём две очереди(по одной для каждой кнопки), в очередь будем закидывать "true" когда нажали кнопку, иначе ничего не делаем. Во втором цикле будем будем следить: если в какой-либо очереди появился элемент, то начинаем вычитывать и подавать на вход селектора. Да и всё, пожалуй. Будет работать.
3. Использовать event-структуру, как предлагали выше.
Вот я Вам второй вариант покажу, а в остальном сами выбирайте подходящий. Что-то мне подсказывает, что Вам подойдет первый вариант :crazy:

Re: Индикатор сложения и вычитания

Добавлено: 11 авг 2018, 12:05
Select
taras_33 писал(а):...Вот здесь я занимаюсь именно этим. Выложите полностью VI, даже если он не рабочий, что бы люди понимали логику работы программы.
Продублировал рабочий кусок кода в отдельном лупе, который предложил Vitekkz88 он в том же vi, нуждающийся в в.у. индикации по кнопкам "A+" и "B -"
Полный выставить проблематично, могут за конфликтовать драйвера, отсутсвие тулсов и т.п. Надеюсь это облегчит решение. :drink:

Re: Индикатор сложения и вычитания

Добавлено: 12 авг 2018, 21:09
Select
Vitekkz88
Наверно так хочется, не? Сброс после нажатия кнопки "стоп" прикрутите сами(если оно надо). По старту и так всё обнуляется..
.

Краткость - сестра таланта, этот вариант самый удачный , в процессе создания лед бар графа, меня в какой то момент осенило как поступить с твоим кодом, все заработало 1-го пинка, огромное тебе спасибо, оставил китайцев без работы :drink:

Re: Индикатор сложения и вычитания

Добавлено: 13 авг 2018, 04:55
Vitekkz88
Select, ну и хорошо, что всё хорошо :super: