Чтение и запись работают в отдельных потоках. Нужно настроить чтение при поступлении данных в порт. Запись выполняется по условию надобности, но ждет сигнал о возможности записи. На данный момент чтение работает правильно. Проблема:
Запись в порт выполняется только после завершения чтения
Что я упустил? Если в процедуре открытия порта(файла), установить флаг FILE_FLAG_OVERLAPPED , то процедуры чтения/записи не работают.
Код объемный, здесь покажу только тело main:
int main()
{
if (InitComPort(L"\\\\.\\COM2", 115200, 8, 0, 0)) {
printf("Port Init ERROR\n");
system("pause");
return 0;
}
_Output = new char[_OutputSize];
_Input = new char[_InputSize];
memset(_Output, 0x00, _OutputSize);
memset(_Input, 0x00, _InputSize);
hReadThread = CreateThread(NULL, 0, COMReadData, 0, 0, NULL);
hWriteThread = CreateThread( NULL, 0, COMWriteData, 0, 0, NULL );
while (1) {};
return 0;
}
Код всего проекта: GitHub
Сборка персонального компьютера от Artline: умный выбор для современных пользователей