Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
25 / 25 / 2
Регистрация: 08.11.2011
Сообщений: 284

Как проверить произошло ли событие ?

07.05.2013, 12:09. Показов 2415. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как проверить произошло ли событие ?
К примеру есть порт в который записываются данные, как после записи проверить произошло ли событие serialPort1_DataReceived ?
C++
1
2
3
4
private: System::Void timer1_Tick(System::Object^  sender, System::EventArgs^  e)
{
 if(serialPort1->IsOpen) serialPort1->Write(":1;37;01000D;14794"+"\r");
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.05.2013, 12:09
Ответы с готовыми решениями:

Как узнать, произошло ли событие?
Добрый день! Подскажите, пожалуйста, как узнать, произошло ли событие. Надо изменить Discount, если изменится Total. (на отсутствие Price...

Принудительно вызвать событие, если произошло другое событие
Сразу оговорюсь, это тема про события, а НЕ про Windows Forms, да бы ни кто не переносил тему. В Windows Forms у тех или иных...

В каждом из n независимых испытаний событие А происходит с вероятностью p. Найти вероятность того, что событие А произошло
В каждом из n независимых испытаний событие А происходит с вероятностью p. Найти вероятность того, что событие А произошло: а) точно G...

7
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
08.05.2013, 07:45
Поставь в него точку останова

А, вообще, я пишу обычно что-нибудь видимое, например
C++
1
this->Text="Да, произошло событие"
2
25 / 25 / 2
Регистрация: 08.11.2011
Сообщений: 284
08.05.2013, 09:12  [ТС]
"Поставь в него точку останова" это как ? )) Можно чуть по подробнее!
0
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
08.05.2013, 09:43
Какой компилятор используешь? MSVisual C++, MSVisualStudio, Borland C++?
1
25 / 25 / 2
Регистрация: 08.11.2011
Сообщений: 284
08.05.2013, 09:54  [ТС]
Второй вариант ))
0
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
08.05.2013, 11:13
Гуд, ищешь в коде свою строчку
C++
1
if(serialPort1->IsOpen) serialPort1->Write(":1;37;01000D;14794"+"\r");
уводишь мышку левее этой строчки кода, сначала мышка зеркально отразится, двигаешь еще левее, она опять станет нормальной, делаешь клик, появилась красная точка (или если кликнуть по нужной тебе строчке и нажать F9, получится тоже самое). Программа, дойдя до этой точки остановится, если она дойдет до нее. Единственное, я бы написал
C++
1
2
if(serialPort1->IsOpen) 
serialPort1->Write(":1;37;01000D;14794"+"\r");
чтоб точку можно было "внутри" if поставить.
Если программа не остановилась, значит не "зашла" в этот закуток программы
2
25 / 25 / 2
Регистрация: 08.11.2011
Сообщений: 284
08.05.2013, 13:35  [ТС]
Ага понял. Спасибо! Допустим у меня стоит таймер который каждый раз производит запись в порт. Как сделать так что бы после записи проверялась проверка события serialPort1_DataReceived если произошло то ничего не делать, а если не произошло сразу отправить повторный запрос. А то у меня бывает так что прибор почему то иногда не отвечает, а данные с него надо записывать каждую секунду, чтоб пропусков небыло!
0
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
12.05.2013, 00:37
Я сейчас далеко от средств компиляции, но если бы я получал данные через сокеты, я бы использовал функцию select, она булевская, сообщает - есть или нет данных, которые можно принять? посмотри, нет ли такого решения, ну и соответственно, если после таймера на выходе false, то косяк, надо делать повторный запрос... Или я не понял вопроса. Второй вариант, даже больше подходит:
Объяви глобальную переменную, например
C++
1
bool listen_SPDR
, и изменяй её на true, когда она выполняется и на false, когда ты проверил её на bool и она была true

Добавлено через 3 минуты
в таймере внутри
C++
1
2
3
4
{операторы в таймере;
if(listen_SPDR){listen_SPDR=false;}
else{Повторный запрос(причем лучше в цикле наверное, до тех пор пока не выполнится, опять же по этой же переменной listen_SPDR)}
}
в serialPort1_DataReceived
C++
1
2
{Операторы serialPort1_DataReceived;
listen_SPDR=true;}
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.05.2013, 00:37
Помогаю со студенческими работами здесь

Как получит текст из элемента на котором произошло событие 'onclick'?
window.onload=function (e) { var user=e.currentTarget; var name; ...

Как узнать имя объекта, на котором произошло последнее событие?
к примеру Button1Click произошел когда нажали на кнопочку, а в лейбл вывести имя объекта - Button1 подскажите как эт узнать? upd. ...

Как получить координаты button в котором произошло событие Click
Здравствуйте! Если кто знает, подскажите пожалуйста как получить координаты button в котором произошло событие Click. Дело в том, что...

Как сделать, чтобы при выборе элемента radiobutton произошло событие загружающее картинку
Как сделать, чтобы при выборе элемента radiobutton произошло событие загружающее картинку? Описание контрола происходит в отдельном...

Tkinter, еще не нажал на кнопку, а событие произошло. И как скрыть терминал в программе с графическим интерфейсом
Тестирую библиотеку Thinter (python 2.7). Хочу сделать так, чтобы при нажатии на кнопку скрывались некоторые элементы. Ну для примера пусть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru