LCOV - code coverage report
Current view: top level - src/cli - devicecommand.h (source / functions) Hit Total Coverage
Project: Dokit Lines: 1 1 100.0 %
Version: Functions: 0 0 -

          Line data    Source code
       1             : // SPDX-FileCopyrightText: 2022-2024 Paul Colby <git@colby.id.au>
       2             : // SPDX-License-Identifier: LGPL-3.0-or-later
       3             : 
       4             : #ifndef DOKIT_DEVICECOMMAND_H
       5             : #define DOKIT_DEVICECOMMAND_H
       6             : 
       7             : #include "abstractcommand.h"
       8             : #include "qtpokit/pokitproducts.h"
       9             : 
      10             : #include <QLowEnergyController>
      11             : 
      12             : class AbstractPokitService;
      13             : class PokitDevice;
      14             : 
      15             : class DeviceCommand : public AbstractCommand
      16             : {
      17         180 :     Q_OBJECT
      18             : 
      19             : public:
      20             :     explicit DeviceCommand(QObject * const parent = nullptr);
      21             : 
      22             : public slots:
      23             :     bool start() override;
      24             : 
      25             : protected:
      26             :     PokitDevice * device { nullptr }; ///< Pokit Bluetooth device (if any) this command interracts with.
      27             :     int exitCodeOnDisconnect { EXIT_FAILURE }; ///< Exit code to return on device disconnection.
      28             : 
      29             :     void disconnect(int exitCode=EXIT_SUCCESS);
      30             :     virtual AbstractPokitService * getService() = 0;
      31             : 
      32             :     template<typename T> static T minRange(const quint32 maxValue);
      33             :     static quint8 minCapacitanceRange(const PokitProduct product, const quint32 maxValue);
      34             :     static quint8 minCurrentRange(const PokitProduct product, const quint32 maxValue);
      35             :     static quint8 minResistanceRange(const PokitProduct product, const quint32 maxValue);
      36             :     static quint8 minVoltageRange(const PokitProduct product, const quint32 maxValue);
      37             : 
      38             : protected slots:
      39             :     virtual void controllerError(const QLowEnergyController::Error error);
      40             :     virtual void deviceDisconnected();
      41             :     virtual void serviceError(const QLowEnergyService::ServiceError error);
      42             :     virtual void serviceDetailsDiscovered();
      43             : 
      44             : private slots:
      45             :     // These are protected in the base class, but hidden (private) for our descendents.
      46             :     void deviceDiscovered(const QBluetoothDeviceInfo &info) override;
      47             :     void deviceDiscoveryFinished() override;
      48             : 
      49             :     friend class TestDeviceCommand;
      50             : };
      51             : 
      52             : #endif // DOKIT_DEVICECOMMAND_H

Generated by: LCOV version 1.14