switch to signed values for items
This commit is contained in:
parent
1f36522492
commit
6a9ad7f855
@ -3,7 +3,7 @@
|
||||
|
||||
#include <QJsonArray>
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
};
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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_;}
|
||||
};
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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_;}
|
||||
};
|
||||
|
||||
|
@ -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());
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -66,7 +66,7 @@ void TrainJs::axisChanged(const int id, const int axis, const qreal value)
|
||||
{
|
||||
if(std::shared_ptr<Item> workitem = item_.lock())
|
||||
{
|
||||
uint8_t newValue = (value+1)*7;
|
||||
int8_t newValue = value*14;
|
||||
if(newValue != workitem->getValue())
|
||||
workitem->setValue(newValue);
|
||||
}
|
||||
|
@ -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()) "<<!((bool)workingItem->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);
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
|
@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>280</width>
|
||||
<height>83</height>
|
||||
<width>312</width>
|
||||
<height>78</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
@ -53,6 +53,9 @@
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QSlider" name="slider">
|
||||
<property name="minimum">
|
||||
<number>-14</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>14</number>
|
||||
</property>
|
||||
@ -65,6 +68,12 @@
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="invertedAppearance">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="invertedControls">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
|
Loading…
x
Reference in New Issue
Block a user