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

Re: Автоматическое повторное нажатие кнопки

Добавлено: 09 ноя 2018, 23:15
Select
Выход один заложен тех заданием, здесь у меня 2 выхода, т.к. ничего другого в голову не пришло чтоб повторить итерацию и я понимаю что это криво, как временное решение это рулит и запускает сигнал именно в том варианте о котором здесь морочу всем голову, пожалуй первый цикл лишний его можно удалить оставив 1 итерацию в основном цикле.
Add 0 я указал для наглядности, чтоб была видна механика кнопки, там же и лед. Выставленный здесь пример это упрощенная и отрезанная часть от рабочей части диаграммы. Вместо Numeric у меня подключается Enum массив с предустановленными ID значениями для частотного генератора и т.д.

Re: Автоматическое повторное нажатие кнопки

Добавлено: 10 ноя 2018, 02:39
taras_33
Действительно, такой код выполняет те действия о которых я говорил, но попытка прикрутить его к моей ситуации зашла в тупик. У меня Select задает условия в виде констант и отправляет их на выборку из массива. Буду курить этот метод дальше.
Ну если так принципиально нужен именно Select...
Double Press Btn_2.png
Выставленный здесь пример это упрощенная и отрезанная часть от рабочей части диаграммы. Вместо Numeric у меня подключается Enum массив с предустановленными ID значениями для частотного генератора и т.д.
Так чего Вы шифруетесь? Покажите всю диаграмму, чтоб понять в какой Вы там в тупик зашли.

Re: Автоматическое повторное нажатие кнопки

Добавлено: 10 ноя 2018, 12:55
Select
Double Press Btn_2.vi не завелся у меня 14.
возможно в Вашем примере, время завершения 1-го цикла большое, так же у меня в основном цикле есть и другие процедуры, таймер во 2 цикле позволяет мне настроить задержку как мне удобно.
То, что сейчас у меня работает выглядит так. Если не составит труда, прокомментируйте увиденные здесь проблемы и подводные камни.
Смотрел загрузку памяти, ничего критического не заметил, другие функции, присутствующие в основном цикле не тормозят, железо не виснет. :dntknw:
Целиком выставить всю блок диаграмму не реально, она выходит за пределы экрана, да и нет в этом смысла. Здесь 1:1 выставленна самостоятельная процедура как она есть в проекте.

Re: Автоматическое повторное нажатие кнопки

Добавлено: 10 ноя 2018, 19:13
taras_33
возможно в Вашем примере, время завершения 1-го цикла большое
Это не циклы, это FGV - рассмативайте этот "цикл" как обычную переменную с расширенными возможностями, которая помнит предыдущее значение, поэтому время здесь не при делах и задержек нет. Задержка между "нажатиями-отпусканиями" определяется задержкой основного цикла. Скажем в моем примере она составляет 500mS. Вы нажали кнопку - на выходе установилась единичка, через пол секунды она сменится на ноль, еще через пол секунды снова единичка, потом снова ноль. Т.e. время между сменами состояний определяется скоростью работы основного цикла.

Ваш последний пример:
Вместо Numeric у меня подключается Enum массив с предустановленными ID значениями для частотного генератора и т.д.
Вам действительно нужно каждые 600 mS (500 mS + 10 mS) отправлять данные в частотный генератор? В моем понимании установил необходимую частоту и забыл, до следующей необходимости ее изменить.
Но при любом раскладе while цикл это, как говорил Artem, извращение, замените его на Flat Sequence Structure

Re: Автоматическое повторное нажатие кнопки

Добавлено: 10 ноя 2018, 23:23
Select
Вам действительно нужно каждые 600 mS (500 mS + 10 mS) отправлять данные в частотный генератор?
Такого поведения не обнаруживаю, на протяжении всего активного состояния vi происходит два импульса выбранной частоты в одно нажатие кнопки, что и требуется. Никаких дальнейших повторов каждые 600 ms не происходит. Или мы говорим о разных вещах?
Flat Sequence Structure пробовал по аналогии с FGV, но я как то неверно строил там связи, или чего-то не хватало, не пошло.

Re: Автоматическое повторное нажатие кнопки

Добавлено: 12 ноя 2018, 11:23
Artem.spb
Select писал(а):
Вам действительно нужно каждые 600 mS (500 mS + 10 mS) отправлять данные в частотный генератор?
Такого поведения не обнаруживаю, на протяжении всего активного состояния vi происходит два импульса выбранной частоты в одно нажатие кнопки, что и требуется. Никаких дальнейших повторов каждые 600 ms не происходит. Или мы говорим о разных вещах?
Flat Sequence Structure пробовал по аналогии с FGV, но я как то неверно строил там связи, или чего-то не хватало, не пошло.
Как не происходит? Главный цикл работает, значит повторы идут. То, что импульса нет, не значит отсутствие сигнала. Вы просто отправляете 0 на выход.

Re: Автоматическое повторное нажатие кнопки

Добавлено: 12 ноя 2018, 15:38
taras_33
Как не происходит? Главный цикл работает, значит повторы идут. То, что импульса нет, не значит отсутствие сигнала. Вы просто отправляете 0 на выход.
Артем прав...
Я бы изменил структуру программы. Например Producer-Consumer или
если извратиться, как показано ниже, применил бы конечный автомат
Double Press - State machine.png
Правда здесь есть недостаток - повторные нажатия на кнопку будут игнорироваться, пока не обработается первое.
посмотрите вложенный проект LV2014 вдруг поможет.

Re: Автоматическое повторное нажатие кнопки

Добавлено: 13 ноя 2018, 00:59
Select
taras_33 писал(а):
посмотрите вложенный проект LV2014 вдруг поможет.
:labview: 14 этот vi не открывает.
Относительно тишины при переходе в нулевую частоту, согласен, действительно каждые 600 mS происходит генерация белого шума однородной плотности. Вопрос, как это влияет на окружение? В трансмиттерах, как впрочем и во всех приемопередающих системах это явление присутствует всегда и имеет относительный уровень по отношению к модулируемым сигналам на выделенных частотах. В моем случае это звенящий ноль, ну и пусть себе звенит и ни на какие процессы не влияет. У меня все процессы в программе построены на переходах от нуля, к нужной частоте.
Как не просил, так и не получаю коммент почему такой код не есть хорошо, мазохизм, изврат и т.п. К примеру, если в микропроцессорах явление дребезга обусловлено мусором, кривым алгоритмом или непродуманным до конца дизайном, существует масса способов коррекции и доведения до желаемого результата.
Попробую поиграться построить конечный автомат.

Re: Автоматическое повторное нажатие кнопки

Добавлено: 13 ноя 2018, 03:56
taras_33
:labview: 14 этот vi не открывает.
Хм странно... Пересохранил в 2013
Update: Только что проверил - LV2014 данный проект открывает без проблем....
Как не просил, так и не получаю коммент почему такой код не есть хорошо, мазохизм, изврат и т.п.
Да потому что так никто не программирует! Как правило проект строят из нескольких независимых процессов - UI отдельно, коммуникация с железом отдельно, какие то ресурсо-затратные функции отдельно и т.д. Общение между ними через очереди, нотифаеры или юзер ивенты. Тогда и программа "отзывчива", не виснет, событий не пропускает...
Как Вам можно что то посоветовать если нет общего понимания всей структуры и назначения программы. Да и с Вашей стороны...
Flat Sequence Structure пробовал по аналогии с FGV, но я как то неверно строил там связи, или чего-то не хватало, не пошло.
- ну почитайте Вы самые азы... Но Вы ранее писали что на это у Вас нет времени.
непродуманным до конца дизайном, существует масса способов коррекции и доведения до желаемого результата.
Вот тут прямо в точку! См. Выше

Re: Автоматическое повторное нажатие кнопки

Добавлено: 13 ноя 2018, 18:12
Select
taras_33, благодарю, файл открылся, благодарю за коммент, попробую Ваш вариант, по результату отпишусь.

Re: Автоматическое повторное нажатие кнопки

Добавлено: 14 ноя 2018, 01:37
Select
Адаптация не получается.
В моем примере я могу организовать сколько угодно генерируемых частот задавая их диапазон с присвоением к каждому номер в виде константы, производить их выборку в массиве по предустановленным номерам и соответственно селективно запускать эти частоты.
В варианте State machine я лишен такой возможности, хотя алгоритм итерации правильный.
Версия
Double Press Btn_2.png на мой взгляд имеет больше шансов, попробую его покурить.

Re: Автоматическое повторное нажатие кнопки

Добавлено: 14 ноя 2018, 03:33
taras_33
Видимо я чего-то не понимаю :think:

Re: Автоматическое повторное нажатие кнопки

Добавлено: 14 ноя 2018, 13:39
Select
taras_33,
Самое то :drink:
Коллективный разум незаменим.
Товарищ Сталин сказал бы - " У этой аджики большое будущее " :brows: