Backup.
This commit is contained in:
107
bcdatamanager.h
Normal file
107
bcdatamanager.h
Normal file
@@ -0,0 +1,107 @@
|
||||
/***************************************************************************
|
||||
|
||||
BionxControl
|
||||
Copyright © 2025 christoph holzheuer
|
||||
christoph.holzheuer@gmail.com
|
||||
|
||||
Using:
|
||||
|
||||
BigXionFlasher USB V 0.2.4 rev. 97
|
||||
© 2011-2013 by Thomas Koenig <info@bigxionflasher.org>
|
||||
@see www.bigxionflasher.org
|
||||
|
||||
Bionx Bike Info
|
||||
© 2018 Thorsten Schmidt (tschmidt@ts-soft.de)
|
||||
@see www.ts-soft.de
|
||||
|
||||
mhs_can_drv.c 3.00
|
||||
© 2011 - 2015 by MHS-Elektronik GmbH & Co. KG, Germany
|
||||
Demlehner Klaus, info@mhs-elektronik.de
|
||||
@see www.mhs-elektronik.de
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
@see https://github.com/bikemike/bionx-bikeinfo
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef BCDATAMANAGER_H
|
||||
#define BCDATAMANAGER_H
|
||||
|
||||
#include <QMap>
|
||||
#include <QXmlStreamReader>
|
||||
#include <QXmlStreamWriter>
|
||||
#include <QMetaEnum>
|
||||
|
||||
#include <QThread>
|
||||
#include <bcdatamodel.h>
|
||||
|
||||
#include <bctransmitter.h>
|
||||
|
||||
|
||||
class BCDataManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
BCDataManager( QObject* parent = nullptr);
|
||||
virtual ~BCDataManager();
|
||||
|
||||
std::optional<BCDataModel*> getModel(BCDevice::ID deviceID );
|
||||
BCTransmitter* getTransmitter();
|
||||
|
||||
|
||||
|
||||
public slots:
|
||||
|
||||
void loadBikeData();
|
||||
void saveBikeData();
|
||||
void onSyncFromDevice();
|
||||
|
||||
signals:
|
||||
|
||||
// Internes Signal, um Daten an den Worker Thread zu senden
|
||||
void sendValueCommand( BC::OpID, const BCDataItem* cmd);
|
||||
//void valuedTouched(const BCDataItem& cmd);
|
||||
void valueTouched(int rowInModel );
|
||||
|
||||
private slots:
|
||||
|
||||
// Slots für Rückmeldungen vom Runner
|
||||
void onCommandFinished(int id, bool success);
|
||||
void onRunnerMessage(const QString &msg);
|
||||
|
||||
protected:
|
||||
|
||||
struct BCDataParams
|
||||
{
|
||||
QString ID;
|
||||
QString Label;
|
||||
QString Default;
|
||||
QString UnitType;
|
||||
};
|
||||
|
||||
void createValueTypes();
|
||||
void loadDeviceData( BCDataList& parsedValues );
|
||||
|
||||
std::optional<BCDataItem> makeDataItem( BCDevice::ID deviceID, const BCDataParams& params );
|
||||
|
||||
using BCDeviceModels = QMap<BCDevice::ID, BCDataModel*>;
|
||||
using BCDataTypes = QMap<QString,BCDataType*>;
|
||||
|
||||
QXmlStreamReader _xml;
|
||||
BCDataTypes _dataTypes;
|
||||
BCDeviceModels _valueModels;
|
||||
BCDevice::ID _currentDeviceID{BCDevice::ID::Invalid};
|
||||
QMetaEnum _bcDeviceEnum{QMetaEnum::fromType<BCDevice::ID>()};
|
||||
|
||||
QThread _worker;
|
||||
BCTransmitter _transmitter;
|
||||
|
||||
};
|
||||
|
||||
#endif // BCDATAMANAGER_H
|
||||
Reference in New Issue
Block a user