switch to signed values for items
This commit is contained in:
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include <QJsonArray>
|
#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;
|
name_ = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ItemData::getValue() const
|
int8_t ItemData::getValue() const
|
||||||
{
|
{
|
||||||
return value_;
|
return value_;
|
||||||
}
|
}
|
||||||
@ -31,7 +31,7 @@ uint32_t ItemData::id() const
|
|||||||
|
|
||||||
//item
|
//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);
|
functionChanged(function, on);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Item::setValue(uint8_t value)
|
void Item::setValue(int8_t value)
|
||||||
{
|
{
|
||||||
value_ = value;
|
value_ = value;
|
||||||
valueChanged(value_);
|
valueChanged(value_);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Item::informValue(uint8_t value)
|
void Item::informValue(int8_t value)
|
||||||
{
|
{
|
||||||
Item::setValue(value);
|
Item::setValue(value);
|
||||||
}
|
}
|
||||||
|
@ -12,12 +12,12 @@ class ItemData
|
|||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
QString name_;
|
QString name_;
|
||||||
uint8_t value_;
|
int8_t value_;
|
||||||
uint32_t itemId_;
|
uint32_t itemId_;
|
||||||
|
|
||||||
public:
|
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_; }
|
||||||
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;
|
uint32_t id() const;
|
||||||
|
|
||||||
void setName(QString name);
|
void setName(QString name);
|
||||||
uint8_t getValue() const;
|
int8_t getValue() const;
|
||||||
virtual QString getName() const;
|
virtual QString getName() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -37,22 +37,22 @@ private:
|
|||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
void valueChanged(uint8_t value);
|
void valueChanged(int8_t value);
|
||||||
void functionChanged(uint8_t function, bool on);
|
void functionChanged(uint8_t function, bool on);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
||||||
virtual void setValue(uint8_t value);
|
virtual void setValue(int8_t value);
|
||||||
virtual void setFunction(uint8_t funciton, bool value);
|
virtual void setFunction(uint8_t funciton, bool value);
|
||||||
|
|
||||||
public:
|
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);
|
Item(const ItemData& itemData, QObject *parent = nullptr);
|
||||||
|
|
||||||
virtual ~Item();
|
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);
|
micro->trainSetFunction(train_id_, funciton, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Train::setValue(uint8_t value)
|
void Train::setValue(int8_t value)
|
||||||
{
|
{
|
||||||
Item::setValue(value);
|
Item::setValue(value);
|
||||||
if(micro)
|
if(micro)
|
||||||
|
@ -18,8 +18,8 @@ public:
|
|||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void reverse();
|
void reverse();
|
||||||
virtual void setFunction(uint8_t function, bool on);
|
virtual void setFunction(uint8_t function, bool on);
|
||||||
virtual void setValue(uint8_t value);
|
virtual void setValue(int8_t value);
|
||||||
uint8_t getTrainId(){return train_id_;}
|
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);
|
name_ = QString("Turnout ")+QString::number(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Turnout::setValue(uint8_t value)
|
void Turnout::setValue(int8_t value)
|
||||||
{
|
{
|
||||||
Item::setValue(value);
|
Item::setValue(value);
|
||||||
if(micro)
|
if(micro)
|
||||||
|
@ -12,7 +12,7 @@ public:
|
|||||||
static Microcontroller *micro;
|
static Microcontroller *micro;
|
||||||
|
|
||||||
explicit Turnout(uint8_t id = 0, uint8_t address = 0, uint8_t subaddress = 0);
|
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_;}
|
uint8_t getTurnoutId(){return turnoutId_;}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
#include "items/train.h"
|
#include "items/train.h"
|
||||||
#include "items/turnout.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__;
|
qDebug()<<__func__;
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss<<"train "<<(unsigned)id<<" speed "<<(unsigned)speed<<'\n';
|
ss<<"train "<<(unsigned)id<<" speed "<<(int)speed<<'\n';
|
||||||
write(ss.str().c_str());
|
write(ss.str().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ public:
|
|||||||
public slots:
|
public slots:
|
||||||
void requestState();
|
void requestState();
|
||||||
|
|
||||||
void trainSetSpeed(uint8_t id, uint8_t speed);
|
void trainSetSpeed(uint8_t id, int8_t speed);
|
||||||
void trainReverse(uint8_t id);
|
void trainReverse(uint8_t id);
|
||||||
void trainSetFunction(uint8_t id, uint8_t function, bool on);
|
void trainSetFunction(uint8_t id, uint8_t function, bool on);
|
||||||
void tunoutSetDirection(uint8_t id, bool direction);
|
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())
|
if(std::shared_ptr<Item> workitem = item_.lock())
|
||||||
{
|
{
|
||||||
uint8_t newValue = (value+1)*7;
|
int8_t newValue = value*14;
|
||||||
if(newValue != workitem->getValue())
|
if(newValue != workitem->getValue())
|
||||||
workitem->setValue(newValue);
|
workitem->setValue(newValue);
|
||||||
}
|
}
|
||||||
|
@ -71,7 +71,7 @@ void ItemWidget::deleteItem()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemWidget::setValue(uint8_t value)
|
void ItemWidget::setValue(int8_t value)
|
||||||
{
|
{
|
||||||
moveToValue(value);
|
moveToValue(value);
|
||||||
if(auto workingItem = item_.lock())
|
if(auto workingItem = item_.lock())
|
||||||
@ -80,13 +80,13 @@ void ItemWidget::setValue(uint8_t value)
|
|||||||
disable();
|
disable();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ItemWidget::moveToValue(uint8_t value)
|
void ItemWidget::moveToValue(int8_t value)
|
||||||
{
|
{
|
||||||
ui->slider->blockSignals(true);
|
ui->slider->blockSignals(true);
|
||||||
ui->radioButton_left->blockSignals(true);
|
ui->radioButton_left->blockSignals(true);
|
||||||
ui->radioButton_right->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->slider->setValue(value);
|
||||||
ui->radioButton_left->setChecked(!value);
|
ui->radioButton_left->setChecked(!value);
|
||||||
ui->radioButton_right->setChecked(value);
|
ui->radioButton_right->setChecked(value);
|
||||||
@ -133,8 +133,7 @@ void ItemWidget::reverse()
|
|||||||
if(train && workingItem->getValue() == 0)
|
if(train && workingItem->getValue() == 0)
|
||||||
train->reverse();
|
train->reverse();
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
qDebug()<<"!((bool)workingItem->getValue()) "<<!((bool)workingItem->getValue());
|
|
||||||
setValue(!((bool)workingItem->getValue()));
|
setValue(!((bool)workingItem->getValue()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -171,11 +170,6 @@ void ItemWidget::stepUp()
|
|||||||
|
|
||||||
void ItemWidget::stepDown()
|
void ItemWidget::stepDown()
|
||||||
{
|
{
|
||||||
if(ui->slider->value() == 0)
|
|
||||||
{
|
|
||||||
setValue(0);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
setValue(ui->slider->value()-1);
|
setValue(ui->slider->value()-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,8 +26,8 @@ signals:
|
|||||||
void deleteRequest(const ItemData& item);
|
void deleteRequest(const ItemData& item);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void setValue(uint8_t value);
|
void setValue(int8_t value);
|
||||||
void moveToValue(uint8_t value);
|
void moveToValue(int8_t value);
|
||||||
void deleteItem();
|
void deleteItem();
|
||||||
|
|
||||||
void stepUp();
|
void stepUp();
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>280</width>
|
<width>312</width>
|
||||||
<height>83</height>
|
<height>78</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -53,6 +53,9 @@
|
|||||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QSlider" name="slider">
|
<widget class="QSlider" name="slider">
|
||||||
|
<property name="minimum">
|
||||||
|
<number>-14</number>
|
||||||
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>14</number>
|
<number>14</number>
|
||||||
</property>
|
</property>
|
||||||
@ -65,6 +68,12 @@
|
|||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="invertedAppearance">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="invertedControls">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
Reference in New Issue
Block a user