239 /* |
239 /* |
240 * Two maingroups, nodes and devices. |
240 * Two maingroups, nodes and devices. |
241 * Node message are detected by the group_id object. |
241 * Node message are detected by the group_id object. |
242 * Device messages are detected by the device object. |
242 * Device messages are detected by the device object. |
243 * |
243 * |
244 * Messages can be connected to client widgets so we can emit messages to them. |
244 * Signals can be connected from child widgets so we can emit messages to them. |
245 */ |
245 */ |
246 QString device = jsonMessage.object()["device"].toString(); |
246 QString device = jsonMessage.object()["device"].toString(); |
247 QString group_id = jsonMessage.object()["group_id"].toString(); |
247 QString group_id = jsonMessage.object()["group_id"].toString(); |
248 if (device != "") { |
248 if (device != "") { |
249 if (device == "fermenters") { |
249 if (device == "fermenters") { |
251 emit updateFermenters(jsonMessage.object()["node"].toString()+"/"+jsonMessage.object()["unit"].toString()); |
251 emit updateFermenters(jsonMessage.object()["node"].toString()+"/"+jsonMessage.object()["unit"].toString()); |
252 } else if (device == "co2meters") { |
252 } else if (device == "co2meters") { |
253 //qDebug() << "found co2meter" << jsonMessage.object()["node"].toString()+"/"+jsonMessage.object()["unit"].toString(); |
253 //qDebug() << "found co2meter" << jsonMessage.object()["node"].toString()+"/"+jsonMessage.object()["unit"].toString(); |
254 emit updateCO2meters(jsonMessage.object()["node"].toString()+"/"+jsonMessage.object()["unit"].toString()); |
254 emit updateCO2meters(jsonMessage.object()["node"].toString()+"/"+jsonMessage.object()["unit"].toString()); |
255 } else if (device == "ispindels") { |
255 } else if (device == "ispindels") { |
256 qDebug() << "found iSpindel" << jsonMessage.object()["node"].toString()+"/"+jsonMessage.object()["unit"].toString(); |
256 //qDebug() << "found iSpindel" << jsonMessage.object()["node"].toString()+"/"+jsonMessage.object()["unit"].toString(); |
257 emit updateiSpindels(jsonMessage.object()["node"].toString()+"/"+jsonMessage.object()["unit"].toString()); |
257 emit updateiSpindels(jsonMessage.object()["node"].toString()+"/"+jsonMessage.object()["unit"].toString()); |
258 } else { |
258 } else { |
259 qDebug() << "unknown device" << device; |
259 qDebug() << "unknown device" << device; |
260 } |
260 } |
261 } else if (group_id != "") { |
261 } else if (group_id != "") { |
262 emit updateNodes(jsonMessage.object()["node"].toString()); |
262 emit updateNodes(jsonMessage.object()["node"].toString()); |
263 // } else if (jsonMessage.object()["ping"].toString() != "") { |
263 } else if (jsonMessage.object()["ping"].toInt() ) { |
264 // qDebug() << "ping" << jsonMessage; |
264 /* |
|
265 * Reply to ping message. Note that the bmsd ignore's |
|
266 * our reply, but we send it anyway. |
|
267 */ |
|
268 webSocket->sendTextMessage(QString("{\"pong\":1}")); |
265 } else { |
269 } else { |
266 qDebug() << "unknown WS message" << message; |
270 qDebug() << "unknown WS message" << message << jsonMessage; |
267 } |
271 } |
268 } |
272 } |
269 |
273 |
270 |
274 |
271 void MainWindow::readsettings() |
275 void MainWindow::readsettings() |
439 MonFermentersWindow = new MonFermenters(this); |
443 MonFermentersWindow = new MonFermenters(this); |
440 int index = ui->mainStack->count(); |
444 int index = ui->mainStack->count(); |
441 ui->mainStack->addWidget(MonFermentersWindow); |
445 ui->mainStack->addWidget(MonFermentersWindow); |
442 ui->mainStack->setCurrentIndex(index); |
446 ui->mainStack->setCurrentIndex(index); |
443 setWindowTitle( QString("BMSapp - %1 - Monitor Fermenters").arg(VERSIONSTRING)); |
447 setWindowTitle( QString("BMSapp - %1 - Monitor Fermenters").arg(VERSIONSTRING)); |
444 // ui->menuBar->setVisible(false); |
448 ui->menuBar->setVisible(false); |
445 } |
449 } |
446 |
450 |
447 |
451 |
448 void MainWindow::fromMonCO2meters() |
452 void MainWindow::fromMonCO2meters() |
449 { |
453 { |
481 MoniSpindelsWindow = new MoniSpindels(this); |
485 MoniSpindelsWindow = new MoniSpindels(this); |
482 int index = ui->mainStack->count(); |
486 int index = ui->mainStack->count(); |
483 ui->mainStack->addWidget(MoniSpindelsWindow); |
487 ui->mainStack->addWidget(MoniSpindelsWindow); |
484 ui->mainStack->setCurrentIndex(index); |
488 ui->mainStack->setCurrentIndex(index); |
485 setWindowTitle( QString("BMSapp - %1 - Monitor iSpindels").arg(VERSIONSTRING)); |
489 setWindowTitle( QString("BMSapp - %1 - Monitor iSpindels").arg(VERSIONSTRING)); |
486 // ui->menuBar->setVisible(false); |
490 ui->menuBar->setVisible(false); |
487 } |
491 } |
488 |
492 |
489 |
493 |
490 void MainWindow::fromRecipesTree() |
494 void MainWindow::fromRecipesTree() |
491 { |
495 { |