Я пытаюсь отправить команды Gcode на 3d-принтер с помощью QtSerialPort. Я могу подключиться и прочитать 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», и принтер реагирует правильно. в той же программе я добавил кнопку, которая выполняет приведенный выше код, чтобы написать команду, и она ничего не сделала. Это говорит мне, что проблема, вероятно, связана с тем, как я пишу в порт.
У кого-нибудь есть идеи, что я делаю не так?
Заранее спасибо.