diff --git a/src/plugins/teacupplugin.cpp b/src/plugins/teacupplugin.cpp --- a/src/plugins/teacupplugin.cpp +++ b/src/plugins/teacupplugin.cpp @@ -44,17 +44,26 @@ void TeacupPlugin::extractTemp(const QString &lastMessage) { - // ok T:185.4 /185.0 B:60.5 /60.0 + // ok T:185.5 B:60 + // ok T:185.4/185.0 B:60.5/60.0 QStringList list = lastMessage.split(QChar::fromLatin1(' ')); // T:185.4 - current temperature - core()->temperature().setExtruderTemperature(list[0].mid(2).toFloat()); - // /185.0 - target temperature - core()->temperature().setExtruderTargetTemperature(list[1].mid(1).toFloat()); + if (list[0].indexOf(QStringLiteral("/")) != 0) { + //T:185.4/185 + core()->temperature().setExtruderTemperature(list[0].mid(2, list[0].size() - list[0].indexOf(QStringLiteral("/")) + 2).toFloat()); + core()->temperature().setExtruderTargetTemperature(list[0].mid(list[0].indexOf(QStringLiteral("/")) + 1).toFloat()); + } else { + core()->temperature().setExtruderTemperature(list[0].mid(2).toFloat()); + } if (lastMessage.contains(_bedTemp)) { - // B:185.4 - current temperature - core()->temperature().setBedTemperature(list[2].mid(2).toFloat()); - // /60.0 - target temperature - core()->temperature().setBedTargetTemperature(list[3].mid(1).toFloat()); + if (list[1].indexOf(QStringLiteral("/")) != 0) { + //T:185.4/185 + core()->temperature().setBedTemperature(list[1].mid(2, list[0].size() - list[1].indexOf(QStringLiteral("/")) + 2).toFloat()); + core()->temperature().setBedTargetTemperature(list[1].mid(list[1].indexOf(QStringLiteral("/")) + 1).toFloat()); + } else { + // B:185.4 - current temperature + core()->temperature().setBedTemperature(list[1].mid(2).toFloat()); + } } }