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

Очистка переменной.

Добавлено: 28.10.2015{, 21:25}
Max
Как принудительно очистить переменную (обнулить) через определенное время после того, как в нее записались какие нибудь данные?
Например, переменная string по команде на входе "Вход разрешения записи" записались данные. Потом через некоторое время надо её очистить (по времени, или по команде). И в следующий раз опять при поступлении нужных данных опять записать.

Очистка переменной.

Добавлено: 28.10.2015{, 22:29}
OlegAn1962
Так?

Очистка переменной.

Добавлено: 29.10.2015{, 12:10}
Oleg1345140
OlegAn1962 писал(а):Так?
А что подаете на строковый вход второй переменной?

Очистка переменной.

Добавлено: 29.10.2015{, 12:37}
OlegAn1962
Пробел

Очистка переменной.

Добавлено: 29.10.2015{, 13:37}
Oleg1345140
OlegAn1962 писал(а):Пробел
Я не до конца уверен что именно имел введу автор вопроса про очистить переменную, но я думаю что смысл был именно в том что бы в переменную ничего не было записано, совсем ничего. Я сталкивался с подобным в одном из своих проектов. Суть была в том что некое значение вводится с клавиатуры в ПУСТУЮ переменную и программа начинает работать с данным значением. Программа отрабатывала до логического конца и все было верно. Если после этого с клавиатуры ввести любое другое значение программа не работала. Даже если я обнулял все переменные (именно обнулял, а не очищал) и сбрасывал значения всего что можно было (счетчиков, триггеров, переключателей). Программа начинала работать корректно в том случае если я перезагружал устройство. По этой причине считаю запись "невидимого" символа не достаточным для очистки переменной.

Очистка переменной.

Добавлено: 29.10.2015{, 14:53}
Max
Oleg1345140 писал(а):Я не до конца уверен что именно имел введу автор вопроса про очистить переменную,
На самом деле логика такова: в переменную string из UART записывается по команде значение (цифры, символы нет разницы) и через какое то время, например 50-100 мсек (время выставляется в зависимости от задачи и оно может быть разным), как переменная отработала (например мы сравнили её с каким то значением) после этого в неё АВТОМАТИЧЕСКИ записывался ноль, для приема в эту же переменную другого значения опять же из UARTа.

Очистка переменной.

Добавлено: 29.10.2015{, 14:57}
Oleg1345140
Max писал(а):На самом деле логика такова: в переменную string из UART записывается по команде значение (цифры, символы нет разницы) и через какое то время, например 50-100 мсек (время выставляется в зависимости от задачи и оно может быть разным), как переменная отработала (например мы сравнили её с каким то значением) после этого в неё АВТОМАТИЧЕСКИ записывался ноль, для приема в эту же переменную другого значения опять же из UARTа.
Именно НОЛЬ или пустота? Ноль ведь тоже символ?

Очистка переменной.

Добавлено: 29.10.2015{, 15:00}
rw6cm
Max писал(а):из UART записывается по команде значение
Так и берите эту команду на запись, а на стирание или команда или таймер.

Очистка переменной.

Добавлено: 29.10.2015{, 15:00}
Max
Oleg1345140 писал(а):Именно НОЛЬ или пустота? Ноль ведь тоже символ?
 Можно и ноль.

Получается так. получил, сравнил, ноль, получил, сравнил, ноль..... Самое главное, что бы после приема и использования данных переменной там оставался ноль.

Очистка переменной.

Добавлено: 29.10.2015{, 15:09}
Oleg1345140
Max писал(а):Получается так. получил, сравнил, ноль, получил, сравнил, ноль..... Самое главное, что бы после приема и использования данных переменной там оставался ноль.
Тогда бери совет
rw6cm писал(а):Так и берите эту команду на запись, а на стирание или команда или таймер.
и добавляй условия по "И" или по таймеру (смотря какая задача).

Очистка переменной.

Добавлено: 22.07.2016{, 21:33}
AlexSar
Max писал(а):Как принудительно очистить переменную (обнулить) через определенное время после того, как в нее записались какие нибудь данные?Например, переменная string по команде на входе "Вход разрешения записи" записались данные. Потом через некоторое время надо её очистить (по времени, или по команде). И в следующий раз опять при поступлении нужных данных опять записать.
Если данная тема еще актуальна.
Мне понадобилось через COM-порт от компьютера из файла программы LabVIEW передавать на плату Arduino данные и счтитывать их в виде строки. Проблема решилась в итоге с помощью пользовательского блока (code). Блок распознает передаваемые данные, по символу окончания строки очищает её и формирует на своем выходе строку с идентификатором начала строки. Блок достаточно прост, если возникнет необходимость либо затруднения в его написании - могу выложить.