diff --git a/src/items/train.cpp b/src/items/train.cpp index 2f0640e..09266de 100644 --- a/src/items/train.cpp +++ b/src/items/train.cpp @@ -1,11 +1,10 @@ #include "train.h" -Train::Train(uint8_t id, uint8_t address, uint8_t functionMask): +Train::Train(uint8_t id, uint8_t address, uint8_t functionMask, int8_t initalValue): + Item(address, QString("Train ")+QString::number(id), initalValue), functionMask_(functionMask), train_id_(id) { - itemId_ = address; - name_ = QString("Train ")+QString::number(id); } Microcontroller *Train::micro = nullptr; diff --git a/src/items/train.h b/src/items/train.h index 9f4ee4b..41bbf0e 100644 --- a/src/items/train.h +++ b/src/items/train.h @@ -12,7 +12,7 @@ class Train : public Item public: static Microcontroller *micro; - Train(uint8_t id = 0, uint8_t address = 0, uint8_t functionMask = 0); + Train(uint8_t id = 0, uint8_t address = 0, uint8_t functionMask = 0, int8_t initalValue = 0); uint8_t getFunctionMask() {return functionMask_;} diff --git a/src/items/turnout.cpp b/src/items/turnout.cpp index 634d335..23afcea 100644 --- a/src/items/turnout.cpp +++ b/src/items/turnout.cpp @@ -2,8 +2,9 @@ Microcontroller *Turnout::micro = nullptr; -Turnout::Turnout(uint8_t id, uint8_t address, uint8_t subaddress) - : subaddress_(subaddress), turnoutId_(id) +Turnout::Turnout(uint8_t id, uint8_t address, uint8_t subaddress, int8_t initalValue) + : Item(address | (subaddress << 8), QString("Turnout ")+QString::number(id), initalValue), + subaddress_(subaddress), turnoutId_(id) { itemId_ = address | (subaddress << 8); name_ = QString("Turnout ")+QString::number(id); diff --git a/src/items/turnout.h b/src/items/turnout.h index 9cb0d2b..27cd975 100644 --- a/src/items/turnout.h +++ b/src/items/turnout.h @@ -11,7 +11,7 @@ class Turnout : public Item public: 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, int8_t initalValue = 0); virtual void setValue(int8_t value); uint8_t getTurnoutId(){return turnoutId_;} }; diff --git a/src/main.cpp b/src/main.cpp index 17392c2..4464629 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -94,6 +94,7 @@ int main(int argc, char *argv[]) ItemStore items; QObject::connect(µ, &Microcontroller::gotItemList, &items, &ItemStore::addItems); + QObject::connect(µ, &Microcontroller::itemChanged, &items, &ItemStore::itemStateChanged); //mainwindow MainWindow w(µ, &items); diff --git a/src/microcontroller.cpp b/src/microcontroller.cpp index ebb4d8b..a469106 100644 --- a/src/microcontroller.cpp +++ b/src/microcontroller.cpp @@ -150,7 +150,7 @@ void Microcontroller::processItemState(const QString& buffer) { if(_buffer.startsWith("TRAIN NUMBER:")) itemChanged(static_cast(*processTrainLine(buffer))); - else if(_buffer.startsWith("TRAIN NUMBER:")) + else if(_buffer.startsWith("TURNOUT NUMBER:")) itemChanged(static_cast(*processTurnoutLine(buffer))); } @@ -170,7 +170,7 @@ void Microcontroller::processMicroReturn() { listMode = TURNOUT_LIST; } - else if(_buffer.startsWith("TRAIN NUMBER:") || _buffer.startsWith("TRAIN NUMBER:")) + else if(_buffer.startsWith("TRAIN NUMBER:") || _buffer.startsWith("TURNOUT NUMBER:")) { processItemState(_buffer); }