Я пытаюсь написать приложение Windows Forms на Visual C ++, которое отправляет GCode на 3D-принтер.GCode может считываться так же, как любой текстовый файл, и для каждой строки файла существует только одна команда GCode для принтера.
Моя цель - передать первую строку / команду файла на принтер, дождаться подтверждения от принтера, которое представляет собой строку с надписью "ok", а затем перейти к следующей строке файлаи передать его, и т. д. Я впервые программирую с приложениями Windows Form, и я не уверен, как это сделать.Моя идея кода выглядела бы примерно так, как в этом псевдокоде, но я открыт для предложений, если есть лучший способ.
Редактировать: я обновил свой код до того, что у меня есть до сих пор.Я до сих пор не выяснил, как ждать сигнала подтверждения "ok" от последовательного соединения или как заставить его работать в своем собственном потоке.
String^ fileName = "C:\\LUPrint\\profiles\\graphene\\temp.gcode";
try
{
StreamReader^ din = File::OpenText(fileName);
String^ str;
int count = 0;
while ((str = din->ReadLine()) != nullptr)
{
count++;
this->serialPort->WriteLine() = str;
// Find way to wait for ack
}
}
catch (Exception^ e)
{
if (dynamic_cast<FileNotFoundException^> (e))
this->textBox1->Text = "File not found";
else
this->textBox1->Text = "Problem reading file";
}