From 6a9ad7f855ebae28f38e02d0aa66c656a9439a78 Mon Sep 17 00:00:00 2001 From: uvos Date: Tue, 1 Feb 2022 22:36:24 +0100 Subject: [PATCH] switch to signed values for items --- src/items/item.cpp | 10 +++++----- src/items/item.h | 16 ++++++++-------- src/items/train.cpp | 2 +- src/items/train.h | 4 ++-- src/items/turnout.cpp | 2 +- src/items/turnout.h | 2 +- src/microcontroller.cpp | 4 ++-- src/microcontroller.h | 2 +- src/trainjs.cpp | 2 +- src/ui/itemwidget.cpp | 14 ++++---------- src/ui/itemwidget.h | 4 ++-- src/ui/itemwidget.ui | 13 +++++++++++-- 12 files changed, 39 insertions(+), 36 deletions(-) diff --git a/src/items/item.cpp b/src/items/item.cpp index 96c3390..36756b9 100644 --- a/src/items/item.cpp +++ b/src/items/item.cpp @@ -3,7 +3,7 @@ #include -ItemData::ItemData(uint32_t itemIdIn, QString name, uint8_t value): name_(name), value_(value), itemId_(itemIdIn) +ItemData::ItemData(uint32_t itemIdIn, QString name, int8_t value): name_(name), value_(value), itemId_(itemIdIn) { } @@ -18,7 +18,7 @@ void ItemData::setName(QString name) name_ = name; } -uint8_t ItemData::getValue() const +int8_t ItemData::getValue() const { return value_; } @@ -31,7 +31,7 @@ uint32_t ItemData::id() const //item -Item::Item(uint32_t itemIdIn, QString name, uint8_t value, QObject *parent): QObject(parent), ItemData (itemIdIn, name, value) +Item::Item(uint32_t itemIdIn, QString name, int8_t value, QObject *parent): QObject(parent), ItemData (itemIdIn, name, value) { } @@ -50,13 +50,13 @@ void Item::setFunction(uint8_t function, bool on) functionChanged(function, on); } -void Item::setValue(uint8_t value) +void Item::setValue(int8_t value) { value_ = value; valueChanged(value_); } -void Item::informValue(uint8_t value) +void Item::informValue(int8_t value) { Item::setValue(value); } diff --git a/src/items/item.h b/src/items/item.h index e8cc87b..be563d7 100644 --- a/src/items/item.h +++ b/src/items/item.h @@ -12,12 +12,12 @@ class ItemData { protected: QString name_; - uint8_t value_; + int8_t value_; uint32_t itemId_; public: - ItemData(uint32_t itemIdIn = QRandomGenerator::global()->generate(), QString name = "Item", uint8_t value = 0); + ItemData(uint32_t itemIdIn = QRandomGenerator::global()->generate(), QString name = "Item", int8_t value = 0); inline bool operator==(const ItemData& in) const{ return itemId_==in.itemId_; } inline bool operator!=(const ItemData& in) const{ return itemId_!=in.itemId_; } @@ -25,7 +25,7 @@ public: uint32_t id() const; void setName(QString name); - uint8_t getValue() const; + int8_t getValue() const; virtual QString getName() const; }; @@ -37,22 +37,22 @@ private: signals: - void valueChanged(uint8_t value); - void functionChanged(uint8_t function, bool on); + void valueChanged(int8_t value); + void functionChanged(uint8_t function, bool on); public slots: - virtual void setValue(uint8_t value); + virtual void setValue(int8_t value); virtual void setFunction(uint8_t funciton, bool value); public: - Item(uint32_t itemIdIn = QRandomGenerator::global()->generate(), QString name = "Item", uint8_t value = 0, QObject *parent = nullptr); + Item(uint32_t itemIdIn = QRandomGenerator::global()->generate(), QString name = "Item", int8_t value = 0, QObject *parent = nullptr); Item(const ItemData& itemData, QObject *parent = nullptr); virtual ~Item(); - void informValue(uint8_t value); + void informValue(int8_t value); }; diff --git a/src/items/train.cpp b/src/items/train.cpp index 5ce02b7..2f0640e 100644 --- a/src/items/train.cpp +++ b/src/items/train.cpp @@ -17,7 +17,7 @@ void Train::setFunction(uint8_t funciton, bool value) micro->trainSetFunction(train_id_, funciton, value); } -void Train::setValue(uint8_t value) +void Train::setValue(int8_t value) { Item::setValue(value); if(micro) diff --git a/src/items/train.h b/src/items/train.h index d921012..9f4ee4b 100644 --- a/src/items/train.h +++ b/src/items/train.h @@ -18,8 +18,8 @@ public: public slots: void reverse(); - virtual void setFunction(uint8_t function, bool on); - virtual void setValue(uint8_t value); + virtual void setFunction(uint8_t function, bool on); + virtual void setValue(int8_t value); uint8_t getTrainId(){return train_id_;} }; diff --git a/src/items/turnout.cpp b/src/items/turnout.cpp index 61b5a57..634d335 100644 --- a/src/items/turnout.cpp +++ b/src/items/turnout.cpp @@ -9,7 +9,7 @@ Turnout::Turnout(uint8_t id, uint8_t address, uint8_t subaddress) name_ = QString("Turnout ")+QString::number(id); } -void Turnout::setValue(uint8_t value) +void Turnout::setValue(int8_t value) { Item::setValue(value); if(micro) diff --git a/src/items/turnout.h b/src/items/turnout.h index 713887d..9cb0d2b 100644 --- a/src/items/turnout.h +++ b/src/items/turnout.h @@ -12,7 +12,7 @@ public: static Microcontroller *micro; explicit Turnout(uint8_t id = 0, uint8_t address = 0, uint8_t subaddress = 0); - virtual void setValue(uint8_t value); + virtual void setValue(int8_t value); uint8_t getTurnoutId(){return turnoutId_;} }; diff --git a/src/microcontroller.cpp b/src/microcontroller.cpp index 450bd02..ebb4d8b 100644 --- a/src/microcontroller.cpp +++ b/src/microcontroller.cpp @@ -5,11 +5,11 @@ #include "items/train.h" #include "items/turnout.h" -void Microcontroller::trainSetSpeed(uint8_t id, uint8_t speed) +void Microcontroller::trainSetSpeed(uint8_t id, int8_t speed) { qDebug()<<__func__; std::stringstream ss; - ss<<"train "<<(unsigned)id<<" speed "<<(unsigned)speed<<'\n'; + ss<<"train "<<(unsigned)id<<" speed "<<(int)speed<<'\n'; write(ss.str().c_str()); } diff --git a/src/microcontroller.h b/src/microcontroller.h index 14b68c7..cddfe2e 100644 --- a/src/microcontroller.h +++ b/src/microcontroller.h @@ -63,7 +63,7 @@ public: public slots: void requestState(); - void trainSetSpeed(uint8_t id, uint8_t speed); + void trainSetSpeed(uint8_t id, int8_t speed); void trainReverse(uint8_t id); void trainSetFunction(uint8_t id, uint8_t function, bool on); void tunoutSetDirection(uint8_t id, bool direction); diff --git a/src/trainjs.cpp b/src/trainjs.cpp index 3e69d36..0937998 100644 --- a/src/trainjs.cpp +++ b/src/trainjs.cpp @@ -66,7 +66,7 @@ void TrainJs::axisChanged(const int id, const int axis, const qreal value) { if(std::shared_ptr workitem = item_.lock()) { - uint8_t newValue = (value+1)*7; + int8_t newValue = value*14; if(newValue != workitem->getValue()) workitem->setValue(newValue); } diff --git a/src/ui/itemwidget.cpp b/src/ui/itemwidget.cpp index f6b4c09..6cf34ff 100644 --- a/src/ui/itemwidget.cpp +++ b/src/ui/itemwidget.cpp @@ -71,7 +71,7 @@ void ItemWidget::deleteItem() } } -void ItemWidget::setValue(uint8_t value) +void ItemWidget::setValue(int8_t value) { moveToValue(value); if(auto workingItem = item_.lock()) @@ -80,13 +80,13 @@ void ItemWidget::setValue(uint8_t value) disable(); } -void ItemWidget::moveToValue(uint8_t value) +void ItemWidget::moveToValue(int8_t value) { ui->slider->blockSignals(true); ui->radioButton_left->blockSignals(true); ui->radioButton_right->blockSignals(true); - ui->pushButton_reverse->setDisabled(value != 0); + ui->pushButton_reverse->setText(value == 0 ? "Reverse" : "Stop"); ui->slider->setValue(value); ui->radioButton_left->setChecked(!value); ui->radioButton_right->setChecked(value); @@ -133,8 +133,7 @@ void ItemWidget::reverse() if(train && workingItem->getValue() == 0) train->reverse(); else - { - qDebug()<<"!((bool)workingItem->getValue()) "<getValue()); + { setValue(!((bool)workingItem->getValue())); } } @@ -171,11 +170,6 @@ void ItemWidget::stepUp() void ItemWidget::stepDown() { - if(ui->slider->value() == 0) - { - setValue(0); - return; - } setValue(ui->slider->value()-1); } diff --git a/src/ui/itemwidget.h b/src/ui/itemwidget.h index b1720f6..c0eb45b 100644 --- a/src/ui/itemwidget.h +++ b/src/ui/itemwidget.h @@ -26,8 +26,8 @@ signals: void deleteRequest(const ItemData& item); private slots: - void setValue(uint8_t value); - void moveToValue(uint8_t value); + void setValue(int8_t value); + void moveToValue(int8_t value); void deleteItem(); void stepUp(); diff --git a/src/ui/itemwidget.ui b/src/ui/itemwidget.ui index 7283a26..8fb7574 100644 --- a/src/ui/itemwidget.ui +++ b/src/ui/itemwidget.ui @@ -6,8 +6,8 @@ 0 0 - 280 - 83 + 312 + 78 @@ -53,6 +53,9 @@ + + -14 + 14 @@ -65,6 +68,12 @@ Qt::Horizontal + + false + + + false +