开源改变世界

帮助按钮 冷水 #136

推推 grbl 3年前 (2023-01-31) 206次浏览
关闭
tuananhproed 打开了这个问题 2017 年 4 月 1 日 · 4条评论
关闭

帮助按钮 冷水#136

tuananhproed 打开了这个问题 2017 年 4 月 1 日 · 4条评论

注释

帮助按钮 冷水 #136
tuananhproed 评论了 2017 年 4 月 1 日  

你好 Denvi
我尝试在控制面板上添加一个按钮来关闭冷却水,这在操作过程中非常方便。但我只能让它在点击时显示,从命令提示符发送的命令不显示,我希望它表现得像 Spind 控制按钮?帮我做那个

另外,off = black, open = red 时如何显示按钮的状态?

这是我使用的命令

void frmMain::on_cmdCoolwater_toggled(bool checked) { sendCommand(checked ? QString("M8") : "M9", -1, m_settings->showUICommands()); }

帮助按钮 冷水 #136

帮助按钮 冷水 #136
所有者

在第 1062 行的“frmmain.cpp”中:

                // Process accessories state
                static QRegExp as("A:([^,^>^|]+)");
                if (as.indexIn(data) != -1) {
                    QString state = as.cap(1);
                    
                    // Spindle
                    m_spindleCW = state.contains("S");
                    if (state.contains("S") || state.contains("C")) {
                        m_timerToolAnimation.start(25, this);
                        ui->cmdSpindle->setChecked(true);
                    } else {
                        m_timerToolAnimation.stop();
                        ui->cmdSpindle->setChecked(false);
                    }

                    // Coolant
                    ui->cmdCoolwater->setChecked(state.contains("F"));    // "M" - for mist coolant
                    
                    if (!pinState.isEmpty()) pinState.append(" / ");
                    pinState.append(QString(tr("AS: %1")).arg(as.cap(1)));
                } else {
                    m_timerToolAnimation.stop();
                    ui->cmdSpindle->setChecked(false);
                    ui->cmdCoolwater->setChecked(false);
                }

void frmMain::on_cmdCoolwater_toggled(…

替换为实时命令:

void frmMain::on_cmdCoolwater_clicked(...
{
    m_serialPort.write(QByteArray(1, char(0xa0)));
}

可以在表单设计器中的每个状态(选中、未选中)上设置图标。

帮助按钮 冷水 #136
作者

我按照说明操作,一切正常,但是当我按下 Coolant 按钮时,命令行没有显示,我尝试添加旧的命令行,这对我来说是正确的,但我仍然不明白该怎么做。:) ,我不是程序员,我从 Spind 命令复制的所有内容

`void frmMain::on_cmdCoolwater_clicked(布尔检查)

{

m_serialPort.write(QByteArray(1, char(0xa0)));
sendCommand(checked ? QString("M8") : "M9", -1, m_settings->showUICommands());

}`

帮助按钮 冷水 #136
所有者

实时命令“0xa0”不会在控制台显示“m8”或“m9”,但会正常工作在“保持”、“空闲”和“运行”状态。
您可以改用“m8”和“m9”。但在这种情况下删除

m_serialPort.write...

线。

检查:https ://github.com/gnea/grbl/wiki/Grbl-v1.1-Commands

帮助按钮 冷水 #136
作者

谢谢 Denvi 的指导,祝你有美好的一天 :)