Move functionality from datamanager to mainwindow.

This commit is contained in:
2025-12-28 12:30:04 +01:00
parent 84e79c8c17
commit a0bedf254d
8 changed files with 144 additions and 105 deletions

View File

@@ -51,88 +51,17 @@ BCDataManager::BCDataManager(QObject *parent)
{
//qRegisterMetaType<BCDataValue*>("BCDataValue*");
qRegisterMetaType<BCDataValue*>();
//qRegisterMetaType<BCDataValue*>();
_transmitter.moveToThread(&_worker);
connect(this, &BCDataManager::sendValueCommand, &_transmitter, &BCTransmitter::enqueueValueOp);
// B) Ergebnisse empfangen (Runner -> Manager)
//connect(&_transmitter, &BCTransmitter::commandFinished, this, &BCDataManager::onCommandFinished);
//connect(&_transmitter, &BCTransmitter::messageLogged, this, &BCDataManager::onRunnerMessage);
// C) Aufräumen: Wenn Thread endet, lösche den Runner
connect(&_worker, &QThread::finished, &_transmitter, &QObject::deleteLater);
// 5. Thread starten
_worker.start();
}
BCDataManager::~BCDataManager()
{
// nothing to do here for now,
// our models are autokilled.
_worker.quit(); // Event Loop stoppen
_worker.wait(); // Warten bis Thread wirklich fertig ist
}
BCTransmitter* BCDataManager::getTransmitter()
{
return &_transmitter;
};
void BCDataManager::onCommandFinished(int id, bool success)
{
qDebug() << "[Manager] Command" << id << "finished. Success:" << success;
}
void BCDataManager::onRunnerMessage(const QString &msg)
{
qDebug() << "[Worker says]:" << msg;
}
void BCDataManager::onSyncFromDevice()
{
qDebug() << " ---Syncing";
/*
if( _currentDeviceID != BCDevice::ID::Invalid )
{
if( _valueModels.contains(_currentDeviceID) )
{
BCValueModel* model = _valueModels[_currentDeviceID];
BCValueList& currentList = model->getValueList();
//BCDataValue& value = currentList[4];
for( const BCDataValue& value : currentList )
{
qDebug() << " --- value: " << value.label;
// statt '_transmitter.enqueueValueCommand( value )' entkoppeln
// wir das eleganter über emit sendValueCommand()
//_transmitter.enqueueValueCommand( value );
emit sendValueCommand( BC::OpID::ReadValue, &value);
emit valueTouched( value.rowInModel );
bc::processEventsFor(500);
//QApplication::processEvents();
// Thread schlafen lassen (Simulation einer blockierenden Operation)
//QThread::msleep(500);
}
} // if contains
}
*/
}
void BCDataManager::loadXmlBikeData( const QString& fileName )
{