50 lines
1.1 KiB
C++
50 lines
1.1 KiB
C++
#include "zigbeemanager.h"
|
|
#include "loggingcategory.h"
|
|
|
|
ZigbeeManager::ZigbeeManager(const QString &serialPort, QObject *parent) :
|
|
QObject(parent),
|
|
m_serialPort(serialPort)
|
|
{
|
|
m_interface = new ZigbeeInterface(this);
|
|
|
|
connect(m_interface, &ZigbeeInterface::messageReceived, this, &ZigbeeManager::onMessageReceived);
|
|
|
|
|
|
if (!m_interface->enable(m_serialPort)) {
|
|
qCWarning(dcZigbee()) << "Could not enable ZigbeeInterface on" << m_serialPort;
|
|
return;
|
|
}
|
|
|
|
initController();
|
|
|
|
}
|
|
|
|
QString ZigbeeManager::serialPort() const
|
|
{
|
|
return m_serialPort;
|
|
}
|
|
|
|
void ZigbeeManager::setSerialPort(const QString &serialPort)
|
|
{
|
|
if (m_serialPort == serialPort)
|
|
return;
|
|
|
|
m_serialPort = serialPort;
|
|
m_interface->disable();
|
|
m_interface->enable(m_serialPort);
|
|
}
|
|
|
|
void ZigbeeManager::initController()
|
|
{
|
|
ZigbeeInterfaceMessage message;
|
|
message.setMessageType(Zigbee::DataManagerAvailableResponse);
|
|
message.setData(QByteArray::fromRawData("\x00\x00", 2));
|
|
|
|
m_interface->sendMessage(message);
|
|
}
|
|
|
|
void ZigbeeManager::onMessageReceived(const ZigbeeInterfaceMessage &message)
|
|
{
|
|
qCDebug(dcZigbee()) << message;
|
|
}
|