Перестала работать тема для чтения из сериала - PullRequest
0 голосов
/ 03 июля 2019

На прошлой неделе моя программа работала нормально с потоком, предназначенным для чтения строк, передаваемых из моего последовательного порта (3D-принтер) на мой компьютер.Я сделал некоторые небольшие изменения в своем коде в других областях, но не изменил эту тему в моей памяти.Цель этой ветки - постоянно читать сообщения, которые мой принтер отправляет на мой компьютер, и определять, действительно ли сообщение «нормально».Когда он получает ok, он меняет значение sendMessage с 0 на 1.

Я добавил несколько проверок в качестве избыточности, как я начал сам догадываться.Кроме того, это перестало работать сразу после обновления Visual Studio 2019, поэтому я не уверен, связано ли это с этим.Любая помощь будет принята с благодарностью.

private: void ReadFromSerial()
{
    // Initializes cancel function as false
    cancelPrint = 0;
    // Reads data while printer is connected
    try
    {
        while (this->serialPort->IsOpen)
        {


            if (cancelPrint == 1)
            {
                MessageBox::Show("Closing read loop due to cancelPrint = 1");
                break;
            }

            String^ ok = "ok";
            String^ message = this->serialPort->ReadLine();
            if ((this->serialPort->ReadLine() == ok) || (this->serialPort->ReadLine() == "ok") || (message == "ok") || (message == ok))
                sendMessage = 1;

        }
        MessageBox::Show("Port in read no longer open");
    }

    catch (Exception^ e)
    {
        MessageBox::Show("Unknown error in read thread");
        cancelPrint = 1;
    }
}
...