Reworked driver code, again.
This commit is contained in:
27
bcdriver.h
27
bcdriver.h
@@ -84,9 +84,9 @@ class BCDriverStatus;
|
||||
*/
|
||||
|
||||
|
||||
class BCDriver : public QObject
|
||||
class BCDriver
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_GADGET
|
||||
|
||||
public:
|
||||
|
||||
@@ -95,21 +95,23 @@ public:
|
||||
|
||||
enum class DriverState
|
||||
{
|
||||
NotPresent,
|
||||
Error,
|
||||
NotPresent,
|
||||
Loaded,
|
||||
Initialized,
|
||||
Opened, // bis hierher: dll vorhanden, Treiber geladen
|
||||
DeviceReady // hier: devices connectable, wir können arbeiten.
|
||||
DeviceReady, // hier: devices connectable, wir können arbeiten.
|
||||
Error,
|
||||
};
|
||||
Q_ENUM(DriverState)
|
||||
|
||||
// Enthält den Treiberzustand oder einen Fehlerstring
|
||||
using DriverStateResult = std::expected<DriverState,QString>;
|
||||
|
||||
explicit BCDriver( QObject* parent = nullptr );
|
||||
explicit BCDriver() = default;
|
||||
virtual ~BCDriver() = default;
|
||||
|
||||
virtual BCDriver::DriverStateResult loadAndStartDriver() = 0;
|
||||
|
||||
// Gibt den aktuelle Zustand des Treibers zurück. Der DriverState
|
||||
// muss auf DeviceReady stehen, um Werte lesen & schreiben zu können.
|
||||
// Dazu muss das Bionx-System eingeschaltet sein.
|
||||
@@ -122,14 +124,6 @@ public:
|
||||
virtual TransmitResult readRawByte ( uint32_t deviceID, uint8_t registerID ) const = 0;
|
||||
virtual TransmitResult writeRawByte( uint32_t deviceID, uint8_t registerID, uint8_t value ) const = 0;
|
||||
|
||||
public slots:
|
||||
|
||||
virtual void onStartDriver() = 0;
|
||||
|
||||
signals:
|
||||
|
||||
void driverStateChanged( DriverState state, const QString& message="" ) const;
|
||||
|
||||
protected:
|
||||
|
||||
DriverState _driverState{DriverState::NotPresent};
|
||||
@@ -139,18 +133,15 @@ protected:
|
||||
|
||||
class BCDriverDummy : public BCDriver
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
explicit BCDriverDummy( QObject* parent = nullptr );
|
||||
BCDriver::DriverStateResult loadAndStartDriver() override;
|
||||
|
||||
TransmitResult readRawByte( uint32_t deviceID, uint8_t registerID ) const override;
|
||||
TransmitResult writeRawByte( uint32_t deviceID, uint8_t registerID, uint8_t value ) const override;
|
||||
|
||||
public slots:
|
||||
|
||||
virtual void onStartDriver() override;
|
||||
};
|
||||
|
||||
#endif // BCDRIVER_H
|
||||
|
||||
Reference in New Issue
Block a user