diff --git a/BrainATUMtome/driverserialport.cpp b/BrainATUMtome/driverserialport.cpp index b6401a6..dcbb78a 100644 --- a/BrainATUMtome/driverserialport.cpp +++ b/BrainATUMtome/driverserialport.cpp @@ -29,20 +29,16 @@ DriverSerialPort::DriverSerialPort(const QString &deviceName, const QString &por // configure dispatcher state machine m_dispatcher = new QStateMachine(this); - QState *state_error = new QState(m_dispatcher); - QState *state_poll = new QState(m_dispatcher); - QState *state_listener = new QState(state_poll); - QState *state_sender = new QState(state_poll); - QState *state_receiver = new QState(state_poll); + QState *state_listener = new QState(m_dispatcher); + QState *state_sender = new QState(m_dispatcher); + QState *state_receiver = new QState(m_dispatcher); // configure transitions - state_poll->addTransition(this, &DriverSerialPort::error, state_error); state_listener->addTransition(this, &DriverSerialPort::command, state_sender); - state_sender->addTransition(this, &DriverSerialPort::listen, state_listener); state_sender->addTransition(this, &DriverSerialPort::sent, state_receiver); + state_sender->addTransition(this, &DriverSerialPort::listen, state_listener); state_receiver->addTransition(this, &DriverSerialPort::received, state_sender); - state_poll->setInitialState(state_listener); - m_dispatcher->setInitialState(state_poll); + m_dispatcher->setInitialState(state_listener); m_dispatcher->start(); // configure callbacks diff --git a/BrainATUMtome/driverserialport.h b/BrainATUMtome/driverserialport.h index d7f953f..659df73 100644 --- a/BrainATUMtome/driverserialport.h +++ b/BrainATUMtome/driverserialport.h @@ -32,9 +32,9 @@ private slots: signals: void error(const QString &errorSource, const QString &errorMessage); - void listen(); void command(); void sent(); + void listen(); void received(const QByteArray &package); };