QtSerialPort を使用して Gcode コマンドを 3d プリンターに送信しようとしています。プリンターが送信するスタートアップ gcode を接続して読み取ることはできますが、プリンターに何かを実行させるための Gcode を書き込むことができませんでした。私は多くの人のコードを読みましたが、私の知る限り間違っているようには見えませんが、間違いなく何かが欠けています。
これは、3d プリンターに接続するために使用するものです。
void MainWindow::on_connectButton_clicked()
{
serial->setPortName(ui->portBox->currentText());
serial->setBaudRate(250000);
serial->setDataBits(QSerialPort::Data8);
serial->setParity(QSerialPort::NoParity);
serial->setStopBits(QSerialPort::OneStop);;
serial->setFlowControl(QSerialPort::NoFlowControl);
if (serial->open(QIODevice::ReadWrite)) {
ui->label->setText("Connected to Printer!!");
} else {
ui->label->setText("Error: Failed to connect");
}
}
これは、シリアルポートに書き込むために入力しているものです。
QString command = "G28";
QByteArray x = command.toLocal8Bit();
serial->write(x);
これによりエラーは発生しませんが、プリンターは反応しません。Qt シリアル コンソールの例を試してみて、「G28」を送信すると、プリンターは正しく反応しました。同じプログラムで、上記のコードを実行してコマンドを書き込むボタンを追加しましたが、何もしませんでした。これは、ポートへの書き込み方法に問題がある可能性が高いことを示しています。私が間違っていることについて何か考えがありますか? 前もって感謝します。