Daum minor code cleanup (#3692)

* Daum: Remove redundant virtual keywords

These function were not involved in any inheritance, so the virtual
keyword is removed.

* Daum: Remove unused parent member

* Daum: Remove redundant destructor

* Daum: Remove default values for contructor parameters

This circumvents problems where e.g. explicit would be necessary.
The constructor is actually only used when all parameters are given.

* Daum: Remove redundant this->

* Daum: Ensure timer only allocated once

Also use nullptr instead of 0.

* Daum: Remove unused includes

* Daum: daumDevice is now a private instance member

There is no need for it to be a pointer or public.
This commit is contained in:
Christian Taedcke
2020-12-04 13:47:03 +01:00
committed by GitHub
parent 2d1e36549c
commit 53e19a006d
4 changed files with 41 additions and 48 deletions

View File

@@ -20,9 +20,9 @@
#include "Daum.h"
Daum::Daum(QObject *parent, QString device, QString profile) : QThread(parent),
timer_(0),
timer_(nullptr),
serialDeviceName_(device),
serial_dev_(0),
serial_dev_(nullptr),
deviceAddress_(-1),
maxDeviceLoad_(800),
serialWriteDelay_(0),
@@ -35,12 +35,8 @@ Daum::Daum(QObject *parent, QString device, QString profile) : QThread(parent),
load_(kDefaultLoad),
loadToWrite_(kDefaultLoad),
forceUpdate_(profile.contains("force", Qt::CaseInsensitive)) {
this->parent = parent;
}
Daum::~Daum() {}
int Daum::start() {
QThread::start();
return isRunning() ? 0 : 1;
@@ -56,7 +52,7 @@ int Daum::pause() {
return 0;
}
int Daum::stop() {
this->exit(-1);
exit(-1);
return 0;
}
@@ -115,8 +111,8 @@ double Daum::getHeartRate() const {
bool Daum::openPort(QString dev) {
QMutexLocker locker(&pvars);
if (serial_dev_ == 0) {
serial_dev_ = new QSerialPort;
if (serial_dev_ == nullptr) {
serial_dev_ = new QSerialPort();
}
if (serial_dev_->isOpen()) {
serial_dev_->close();
@@ -138,7 +134,8 @@ bool Daum::openPort(QString dev) {
bool Daum::closePort() {
QMutexLocker locker(&pvars);
delete serial_dev_; serial_dev_ = 0;
delete serial_dev_;
serial_dev_ = nullptr;
return true;
}
@@ -150,12 +147,12 @@ void Daum::run() {
{
QMutexLocker locker(&pvars);
timer_ = new QTimer();
if (timer_ == 0) {
exit(-1);
if (timer_ == nullptr) {
timer_ = new QTimer();
connect(this, SIGNAL(finished()), timer_, SLOT(stop()), Qt::DirectConnection);
connect(timer_, SIGNAL(timeout()), this, SLOT(requestRealtimeData()), Qt::DirectConnection);
}
connect(this, SIGNAL(finished()), timer_, SLOT(stop()), Qt::DirectConnection);
connect(timer_, SIGNAL(timeout()), this, SLOT(requestRealtimeData()), Qt::DirectConnection);
// discard prev. read data
serial_dev_->readAll();
@@ -192,7 +189,7 @@ void Daum::initializeConnection() {
}
if (addr < 0) {
qWarning() << "unable to detect device address";
this->exit(-1);
exit(-1);
}
QThread::msleep(100);
@@ -450,7 +447,7 @@ QByteArray Daum::WriteDataAndGetAnswer(QByteArray const& dat, int response_bytes
s.write(dat);
if(!s.waitForBytesWritten(1000)) {
qWarning() << "failed to write data to daum cockpit";
this->exit(-1);
exit(-1);
}
if (response_bytes > 0) {

View File

@@ -44,10 +44,7 @@ public:
const int kDefaultLoad = 100;
const int kQueryIntervalMS = 1000;
Daum(QObject *parent = 0, QString device = "", QString profile = "");
virtual ~Daum();
QObject *parent;
Daum(QObject *parent, QString device, QString profile);
int start();
int restart();
@@ -71,16 +68,16 @@ private:
void initializeConnection();
bool configureForCockpitType(int cockpitType);
virtual bool ResetDevice();
virtual bool StartProgram(unsigned int prog);
virtual bool StopProgram(unsigned int prog);
virtual int GetAddress();
virtual int CheckCockpit();
virtual int GetDeviceVersion();
virtual bool SetProgram(unsigned int prog);
virtual bool SetDate();
virtual bool SetTime();
virtual void PlaySound();
bool ResetDevice();
bool StartProgram(unsigned int prog);
bool StopProgram(unsigned int prog);
int GetAddress();
int CheckCockpit();
int GetDeviceVersion();
bool SetProgram(unsigned int prog);
bool SetDate();
bool SetTime();
void PlaySound();
QByteArray WriteDataAndGetAnswer(QByteArray const& dat, int response_bytes);
char MapLoadToByte(unsigned int load) const;

View File

@@ -22,30 +22,29 @@
#include "RealtimeData.h"
#include <QMessageBox>
#include <QSerialPort>
DaumController::DaumController(TrainSidebar *parent, DeviceConfiguration *dc) : RealtimeController(parent, dc) {
daumDevice_ = new Daum(this, dc != 0 ? dc->portSpec : "", dc != 0 ? dc->deviceProfile : "");
DaumController::DaumController(TrainSidebar *parent, DeviceConfiguration *dc) : RealtimeController(parent, dc)
, daumDevice_(this, dc ? dc->portSpec : "", dc ? dc->deviceProfile : "") {
}
int DaumController::start() {
return daumDevice_->start();
return daumDevice_.start();
}
int DaumController::restart() {
return daumDevice_->restart();
return daumDevice_.restart();
}
int DaumController::pause() {
return daumDevice_->pause();
return daumDevice_.pause();
}
int DaumController::stop() {
return daumDevice_->stop();
return daumDevice_.stop();
}
bool DaumController::discover(QString name) {
return daumDevice_->discover(name);
return daumDevice_.discover(name);
}
/*
@@ -54,7 +53,7 @@ bool DaumController::discover(QString name) {
* act accordingly.
*/
void DaumController::getRealtimeData(RealtimeData &rtData) {
if(!daumDevice_->isRunning()) {
if(!daumDevice_.isRunning()) {
QMessageBox msgBox;
msgBox.setText(tr("Cannot Connect to Daum"));
msgBox.setIcon(QMessageBox::Critical);
@@ -63,12 +62,12 @@ void DaumController::getRealtimeData(RealtimeData &rtData) {
return;
}
rtData.setWatts(daumDevice_->getPower());
rtData.setHr(daumDevice_->getHeartRate());
rtData.setCadence(daumDevice_->getCadence());
rtData.setSpeed(daumDevice_->getSpeed());
rtData.setWatts(daumDevice_.getPower());
rtData.setHr(daumDevice_.getHeartRate());
rtData.setCadence(daumDevice_.getCadence());
rtData.setSpeed(daumDevice_.getSpeed());
}
void DaumController::setLoad(double load) {
daumDevice_->setLoad(load);
daumDevice_.setLoad(load);
}

View File

@@ -17,7 +17,6 @@
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <QSharedPointer>
#include "GoldenCheetah.h"
#include "RealtimeController.h"
@@ -33,8 +32,6 @@ class DaumController : public RealtimeController
public:
DaumController (TrainSidebar *, DeviceConfiguration *);
Daum *daumDevice_; // device instance
// device control
int start(); // start capturing
int restart(); // restart after paused
@@ -53,6 +50,9 @@ public:
void setLoad(double);
void setMode(int) { return; }
private:
Daum daumDevice_; // device instance
};
#endif // _GC_DaumController_h