Чтение последовательного события с помощью winapi.h в MFCC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Чтение последовательного события с помощью winapi.h в MFC

Сообщение Anonymous »

У меня есть диалоговое приложение MFC, созданное в Visual Studio. С помощью моего приложения я хочу считать последовательное событие с потенциометра, подключенного к плате Arduino.
Arduino работает нормально, со скоростью передачи данных 9600 бод я получаю значение, которое могу прочитать на последовательном мониторе 2 в Visual Studio.
Но теперь я хотел бы прочитать это значение с помощью моего приложения и нарисовать его на диаграмме XY (со значением, отображаемым на оси Y, а время на оси Y). ось X).
Я уже поместил следующий код в функцию OnInitDialog() моего приложения:

Код: Выделить всё

m_hCom = CreateFileW(m_sComPort,GENERIC_READ | GENERIC_WRITE, 0,NULL, OPEN_EXISTING, 0, NULL);

SetupComm(m_hCom, 128, 128);
GetCommState(m_hCom, &m_dcb);

m_dcb.BaudRate = 9600;
m_dcb.ByteSize = 8;
m_dcb.Parity = NOPARITY;
m_dcb.StopBits = ONESTOPBIT;
m_dcb.fAbortOnError = TRUE;

SetCommState(m_hCom, &m_dcb);
SetCommMask(m_hCom, EV_RXCHAR);
Я поместил несколько переменных в заголовочный файл:

Код: Выделить всё

HANDLE m_hCom;
CString m_sComPort = L"COM4";
DCB m_dcb;
DWORD iBytesWritten;
DWORD iBytesRead;
Но теперь я не знаю, где установить функцию ReadFile(). Нужно ли мне устанавливать для этого событие таймера?
Я установил событие таймера с помощью следующего кода:

Код: Выделить всё

char sBuffer[128];
ReadFile(m_hCom, &sBuffer, 8, &iBytesRead, NULL);
Но переменная sBuffer заполнена символами /n и /r, а иногда и числом.

[*]Правильно ли событие SetTimer-Event для этого типа операций?

[*]Как работает сбор значений внутри MFC, не слишком ли велика переменная sBuffer?



Подробнее здесь: https://stackoverflow.com/questions/798 ... i-h-in-mfc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»