Постоянно запускать функцию в форме (C ++) - PullRequest
0 голосов
/ 19 января 2012

В настоящее время я использую два XBees, один из которых подключен к моему компьютеру, а другой - на домашнем беспилотнике.Xbee в самолете постоянно отправляет данные о самолете, и я хочу получить эти данные, используя мой интерфейс C ++ - форму (я думаю, их также называют WinForms?).В моей форме есть веб-браузер, в который встроен Google Планета Земля, и я хочу обновить местоположение самолета на карте GE.Я знаю, как получить данные из XBee, но я просто не знаю, как получить код, который собирает данные для постоянного выполнения без ввода.

Этот проект был кем-то другим, кто его отбросил.Я «унаследовал» этот код, и он немного смущает меня из-за отсутствия комментариев.

1 Ответ

1 голос
/ 19 января 2012

Вы можете изменить свой насос сообщений на использование PeekMessage() вместо обычного GetMessage(). Это позволит вам обрабатывать сообщения, если они есть, или делать что-то еще, пока цикл сообщений не используется.

При использовании Win32 API это выглядит примерно так:

for (bool running = true; running; )
{
    // check for any window messages.  this operation does not block
    // if no messages are available.
    ::MSG message;
    const ::BOOL fetched = ::PeekMessage(&message, 0, 0, 0, PM_REMOVE);
    if (fetched)
    {
        // process window message.
        TranslateMessage(&message);
        DispatchMessage(&message);

        // need to check explicitly for WM_QUIT message, since the "false"
        // return value is already used to mean "there were no messages".
        running = (message.message != WM_QUIT);
    }
    else
    {
        // no messages available, thread is idle.  take time to check
        // auxiliary input source.  if no auxiliary input is available
        // and checking (and processing) the auxiliary inputs is very
        // fast, consider adding an extra ::Sleep() call to avoid hogging
        // up the CPU.
    }
}

Для приложений на основе .NET вы можете взглянуть на событие Application.Idle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...