#include "omobidisplaybackend.h" OmobiDisplayBackend::OmobiDisplayBackend(QObject *parent) : QObject(parent) { this->ble = new QBluetoothLeUart(); connect(this->ble, &QBluetoothLeUart::stateChanged, this, &OmobiDisplayBackend::handleBluetoothStateChange); connect(this->ble, &QBluetoothLeUart::foundNewDevice, this, &OmobiDisplayBackend::handleFoundNewDevice); connect(this->ble, &QBluetoothLeUart::dataReceived, this, &OmobiDisplayBackend::DataHandler); connect(this->ble, &QBluetoothLeUart::connectedToDevice, this, &OmobiDisplayBackend::handleBluetoothDeviceConected); this->setState(Idle); this->ble->startScanningForDevices(); } void OmobiDisplayBackend::startScanning() { this->ble->startScanningForDevices(); } void OmobiDisplayBackend::handleBluetoothStateChange(QBluetoothLeUart::BluetoothLeUartState state){ switch(state){ case QBluetoothLeUart::Idle: { this->setState(Idle); break; } case QBluetoothLeUart::Scanning: { this->setState(Scanning); break; } case QBluetoothLeUart::ScanFinished: { this->setState(ReadyToConnect); break; } case QBluetoothLeUart::Connecting: { this->setState(Connecting); break; } case QBluetoothLeUart::ScanningForService: { this->setState(Connecting); break; } case QBluetoothLeUart::ServiceFound: { this->setState(Connecting); break; } case QBluetoothLeUart::Connected: { this->setState(Connected); break; } } } void OmobiDisplayBackend::handleBluetoothDeviceConected() { this->ble->sendData("Hallihallo ich bin Julia Mueller"); } void OmobiDisplayBackend::handleFoundNewDevice(QBluetoothLeUartDevice* device) { qDebug() << "Found a device: name: " << device->getName() << " address: " << device->getAddress(); } void OmobiDisplayBackend::DataHandler(const QString &s){ qDebug() << "NEw data: " << s; } QBluetoothLeUart* OmobiDisplayBackend::getBleController() { return this->ble; } OmobiDisplayBackend::OmobiDisplayAppState OmobiDisplayBackend::getState() { return this->state; } void OmobiDisplayBackend::setState(OmobiDisplayAppState state) { if(state == this->state) return; this->state = state; emit this->stateChanged(); if(this->state == Idle) this->ble->startScanningForDevices(); }