我试图用Visual C ++编写Windows窗体应用程序,该程序将GCode发送到3D打印机。 GCode可以与任何文本文件读取一样,并且文件的每一行只有一个GCode命令可用于打印机。
我的目标是将文件的第一行/命令传递给打印机,等待打印机的确认,它是一个表示“确定”的字符串,然后移至文件的下一行并将其传递等等。这是我第一次使用Windows Forms应用程序编程,我不确定如何执行此操作。我对代码的想法与该伪代码大致相同,但是如果有更好的方法,我愿意提出建议。
编辑:我已经将代码更新到目前为止。我仍然没有弄清楚如何等待来自串行连接的确认信号“ 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";
}