@@ -611,6 +611,7 @@ void frmMain::grblReset()
611
611
m_resetCompleted = false ;
612
612
m_updateSpindleSpeed = true ;
613
613
m_lastGrblStatus = -1 ;
614
+ m_statusReceived = true ;
614
615
615
616
// Drop all remaining commands in buffer
616
617
m_commands.clear ();
@@ -658,6 +659,8 @@ void frmMain::onSerialPortReadyRead()
658
659
if (data[0 ] == ' <' ) {
659
660
int status = -1 ;
660
661
662
+ m_statusReceived = true ;
663
+
661
664
// Update machine coordinates
662
665
QRegExp mpx (" MPos:([^,]*),([^,]*),([^,^>]*)" );
663
666
if (mpx.indexIn (data) != -1 ) {
@@ -743,15 +746,16 @@ void frmMain::onSerialPortReadyRead()
743
746
744
747
if (m_aborting) {
745
748
switch (status) {
746
- case 0 : // Idle
749
+ case IDLE : // Idle
747
750
if (!m_processingFile && m_resetCompleted) {
748
751
m_aborting = false ;
749
752
restoreOffsets ();
750
753
restoreParserState ();
751
754
return ;
752
755
}
753
756
break ;
754
- case 4 : // Hold
757
+ case HOLD: // Hold
758
+ case QUEUE:
755
759
if (!m_reseting && compareCoordinates (x, y, z)) {
756
760
x = sNan ;
757
761
y = sNan ;
@@ -1129,8 +1133,9 @@ void frmMain::onTimerConnection()
1129
1133
1130
1134
void frmMain::onTimerStateQuery ()
1131
1135
{
1132
- if (m_serialPort.isOpen () && m_resetCompleted) {
1136
+ if (m_serialPort.isOpen () && m_resetCompleted && m_statusReceived ) {
1133
1137
m_serialPort.write (QByteArray (1 , ' ?' ));
1138
+ m_statusReceived = false ;
1134
1139
}
1135
1140
1136
1141
ui->glwVisualizer ->setBufferState (QString (tr (" Buffer: %1 / %2" )).arg (bufferLength ()).arg (m_queue.length ()));
@@ -2270,7 +2275,8 @@ bool frmMain::dataIsFloating(QString data) {
2270
2275
}
2271
2276
2272
2277
bool frmMain::dataIsReset (QString data) {
2273
- return data.contains (" '$' for help" );
2278
+ // return data.contains("'$' for help");
2279
+ return data.toUpper ().contains (QRegExp (" ^GRBL \\ d\\ .\\ d." ));
2274
2280
}
2275
2281
2276
2282
QString frmMain::feedOverride (QString command)
0 commit comments