Add baudrate settings
parent
0255dfd792
commit
51938500b6
|
|
@ -166,7 +166,7 @@ void ZigbeeInterface::onError(const QSerialPort::SerialPortError &error)
|
|||
}
|
||||
}
|
||||
|
||||
bool ZigbeeInterface::enable(const QString &serialPort)
|
||||
bool ZigbeeInterface::enable(const QString &serialPort, qint32 baudrate)
|
||||
{
|
||||
if (m_serialPort) {
|
||||
delete m_serialPort;
|
||||
|
|
@ -174,7 +174,8 @@ bool ZigbeeInterface::enable(const QString &serialPort)
|
|||
}
|
||||
|
||||
m_serialPort = new QSerialPort(serialPort, this);
|
||||
m_serialPort->setBaudRate(QSerialPort::Baud115200);
|
||||
//m_serialPort->setBaudRate(QSerialPort::Baud115200);
|
||||
m_serialPort->setBaudRate(baudrate);
|
||||
m_serialPort->setDataBits(QSerialPort::Data8);
|
||||
m_serialPort->setParity(QSerialPort::NoParity);
|
||||
m_serialPort->setFlowControl(QSerialPort::NoFlowControl);
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ private slots:
|
|||
void onError(const QSerialPort::SerialPortError &error);
|
||||
|
||||
public slots:
|
||||
bool enable(const QString &serialPort = "/dev/ttyS0");
|
||||
bool enable(const QString &serialPort = "/dev/ttyS0", qint32 baudrate = 115200);
|
||||
void disable();
|
||||
|
||||
void sendMessage(const ZigbeeInterfaceMessage &message);
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
#include "zigbeebridgecontroller.h"
|
||||
#include "loggingcategory.h"
|
||||
|
||||
ZigbeeBridgeController::ZigbeeBridgeController(const QString &serialPort, QObject *parent) :
|
||||
ZigbeeBridgeController::ZigbeeBridgeController(const QString &serialPort, qint32 baudrate, QObject *parent) :
|
||||
QObject(parent)
|
||||
{
|
||||
m_interface = new ZigbeeInterface(this);
|
||||
|
||||
connect(m_interface, &ZigbeeInterface::messageReceived, this, &ZigbeeBridgeController::onMessageReceived);
|
||||
|
||||
if (!m_interface->enable(serialPort)) {
|
||||
if (!m_interface->enable(serialPort, baudrate)) {
|
||||
qCCritical(dcZigbeeController()) << "Could not enable ZigbeeInterface on" << serialPort;
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ class ZigbeeBridgeController : public QObject
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ZigbeeBridgeController(const QString &serialPort, QObject *parent = nullptr);
|
||||
explicit ZigbeeBridgeController(const QString &serialPort, qint32 baudrate, QObject *parent = nullptr);
|
||||
|
||||
bool available() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@
|
|||
#include <QDataStream>
|
||||
#include <QSettings>
|
||||
|
||||
ZigbeeNetworkManager::ZigbeeNetworkManager(const int &channel, const QString &serialPort, QObject *parent) :
|
||||
ZigbeeNode(new ZigbeeBridgeController(serialPort, parent), parent),
|
||||
ZigbeeNetworkManager::ZigbeeNetworkManager(const int &channel, const QString &serialPort, qint32 baudrate, QObject *parent) :
|
||||
ZigbeeNode(new ZigbeeBridgeController(serialPort, baudrate, parent), parent),
|
||||
m_serialPort(serialPort)
|
||||
{
|
||||
connect(controller(), &ZigbeeBridgeController::messageReceived, this, &ZigbeeNetworkManager::onMessageReceived);
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ class ZigbeeNetworkManager : public ZigbeeNode
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ZigbeeNetworkManager(const int &channel = 0, const QString &serialPort = "/dev/ttyS0", QObject *parent = nullptr);
|
||||
explicit ZigbeeNetworkManager(const int &channel = 0, const QString &serialPort = "/dev/ttyS0", qint32 baudrate = 115200, QObject *parent = nullptr);
|
||||
|
||||
bool isAvailable() const;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,14 +4,15 @@
|
|||
|
||||
#include <QCoreApplication>
|
||||
|
||||
Core::Core(const QString &serialPort, const int &channel, QObject *parent) :
|
||||
Core::Core(const QString &serialPort, qint32 baudrate, const int &channel, QObject *parent) :
|
||||
QObject(parent),
|
||||
m_serialPort(serialPort)
|
||||
m_serialPort(serialPort),
|
||||
m_baudRate(baudrate)
|
||||
{
|
||||
m_channelMask = 0;
|
||||
m_channelMask |= 1 << (channel);
|
||||
|
||||
m_manager = new ZigbeeNetworkManager(channel, m_serialPort, this);
|
||||
m_manager = new ZigbeeNetworkManager(channel, m_serialPort, m_baudRate, this);
|
||||
|
||||
// Set commands
|
||||
TerminalCommand runCommand("run", "Run the zigbee controller in a normal non interactive mode.");
|
||||
|
|
|
|||
|
|
@ -15,12 +15,13 @@ class Core : public QObject
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit Core(const QString &serialPort, const int &channel, QObject *parent = nullptr);
|
||||
explicit Core(const QString &serialPort, qint32 baudrate, const int &channel, QObject *parent = nullptr);
|
||||
|
||||
private:
|
||||
ZigbeeNetworkManager *m_manager = nullptr;
|
||||
QList<TerminalCommand> m_commands;
|
||||
QString m_serialPort;
|
||||
qint32 m_baudRate;
|
||||
quint32 m_channelMask = 0;
|
||||
|
||||
ZigbeeNode *findNode(const QString &shortAddressString);
|
||||
|
|
|
|||
|
|
@ -125,10 +125,14 @@ int main(int argc, char *argv[])
|
|||
serialOption.setValueName("port");
|
||||
parser.addOption(serialOption);
|
||||
|
||||
QCommandLineOption baudOption(QStringList() << "b" << "baudrate", "Set the serial port baud rate for the NXP controller. Default '115200'.");
|
||||
baudOption.setDefaultValue("115200");
|
||||
baudOption.setValueName("baudrate");
|
||||
parser.addOption(baudOption);
|
||||
|
||||
// Channel
|
||||
QCommandLineOption channelOption(QStringList() << "c" << "channel", "Set channel for the zigbee network. Channel between [11-26] are allowed. If not specified, the quitest channel will be choosen automatically.");
|
||||
channelOption.setDefaultValue(0);
|
||||
channelOption.setDefaultValue("0");
|
||||
channelOption.setValueName("channel");
|
||||
parser.addOption(channelOption);
|
||||
|
||||
|
|
@ -160,9 +164,15 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
}
|
||||
|
||||
// Check baud rate value
|
||||
bool baudrateValueOk = false;
|
||||
int baudrate = parser.value(baudOption).toInt(&baudrateValueOk);
|
||||
if (!debugLevelValueOk) {
|
||||
qCritical() << "Invalid baud rate passed:" << parser.value(baudOption) << "Reset to default baudrate 115200.";
|
||||
baudrate = 115200;
|
||||
}
|
||||
|
||||
|
||||
Core core(parser.value(serialOption), channel);
|
||||
Core core(parser.value(serialOption), baudrate, channel);
|
||||
|
||||
return application.exec();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue