Compare commits
10 Commits
3870af9918
...
f7b2e5cb37
Author | SHA1 | Date | |
---|---|---|---|
f7b2e5cb37 | |||
0727e73f75 | |||
a032bc3f04 | |||
9d51646260 | |||
e5ff3716a7 | |||
3d928286b3 | |||
4392d14889 | |||
3ed8fd59ef | |||
f4d58fd05f | |||
238b0453f8 |
19
library.cpp
19
library.cpp
@ -1,19 +0,0 @@
|
|||||||
#include <QCoreApplication>
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
extern int debugLevel;
|
|
||||||
|
|
||||||
void debug(QString text, int level)
|
|
||||||
{
|
|
||||||
if (level & debugLevel)
|
|
||||||
{
|
|
||||||
cout << text.toStdString() << endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void signal_handler(int signal)
|
|
||||||
{
|
|
||||||
cout << "Received signal " << signal << endl;
|
|
||||||
}
|
|
14
library.h
14
library.h
@ -1,14 +0,0 @@
|
|||||||
#ifndef LIBRARY_H
|
|
||||||
#define LIBRARY_H
|
|
||||||
|
|
||||||
#include <QString>
|
|
||||||
|
|
||||||
#define DEBUG 1
|
|
||||||
#define INFO 2
|
|
||||||
#define WARNING 3
|
|
||||||
#define ERROR 4
|
|
||||||
|
|
||||||
void debug(QString text, int level);
|
|
||||||
void signal_handler(int signal);
|
|
||||||
|
|
||||||
#endif // LIBRARY_H
|
|
33
main.cpp
33
main.cpp
@ -1,33 +0,0 @@
|
|||||||
#include "main.h"
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
extern ZigateBackend zigateBkd;
|
|
||||||
int debugLevel = DEBUG | INFO | WARNING | ERROR;
|
|
||||||
//ResponseList responseList;
|
|
||||||
SerialManager serialManager;
|
|
||||||
QMap <QString, BackEnds> backends;
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
QApplication a(argc, argv);
|
|
||||||
|
|
||||||
QCoreApplication::setOrganizationName("zigbeemanager");
|
|
||||||
QCoreApplication::setApplicationName("zigbeemanager");
|
|
||||||
|
|
||||||
initBackends();
|
|
||||||
|
|
||||||
return a.exec();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool initBackends()
|
|
||||||
{
|
|
||||||
/* foreach (backend, backends)
|
|
||||||
{
|
|
||||||
temp = new ResponseProperties();
|
|
||||||
temp->manager = &defaultManager;
|
|
||||||
responseListIndex.insert(var, temp) ;
|
|
||||||
}*/
|
|
||||||
zigateBkd.initBackend();
|
|
||||||
return false;
|
|
||||||
}
|
|
32
main.h
32
main.h
@ -1,32 +0,0 @@
|
|||||||
#ifndef MAIN_H
|
|
||||||
#define MAIN_H
|
|
||||||
|
|
||||||
#include <QSettings>
|
|
||||||
#include <cstring>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <cstdio>
|
|
||||||
#include <QGuiApplication>
|
|
||||||
#include <QStringBuilder>
|
|
||||||
#include <QString>
|
|
||||||
#include <QCoreApplication>
|
|
||||||
#include <csignal>
|
|
||||||
#include <iostream>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <string>
|
|
||||||
#include <QtEndian>
|
|
||||||
#include <QDebug>
|
|
||||||
#include "library.h"
|
|
||||||
#include "zigateBackend.h"
|
|
||||||
|
|
||||||
bool initBackends();
|
|
||||||
|
|
||||||
class BackEnds
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QString name;
|
|
||||||
QString device;
|
|
||||||
QVariant backend;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif // MAIN_H
|
|
@ -1,38 +0,0 @@
|
|||||||
#ifndef RESPONSECLASSES_H
|
|
||||||
#define RESPONSECLASSES_H
|
|
||||||
#include <QByteArray>
|
|
||||||
#include <QString>
|
|
||||||
#include <QVariant>
|
|
||||||
#include <QMap>
|
|
||||||
#include <QList>
|
|
||||||
#include <QHash>
|
|
||||||
|
|
||||||
//void (*propertyManager)(QByteArray);
|
|
||||||
|
|
||||||
class Response
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QByteArray code;
|
|
||||||
QByteArray datas;
|
|
||||||
QString description;
|
|
||||||
void manager(Response *);
|
|
||||||
};
|
|
||||||
|
|
||||||
class ResponseProperties
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QByteArray code;
|
|
||||||
QByteArray datas;
|
|
||||||
QString description;
|
|
||||||
QMap <uint, QList<QVariant>> properties;
|
|
||||||
QMap <uint, QMap<uint,QString>> propertyDetail;
|
|
||||||
QHash <uint, void (*)(QByteArray)> propertyManagerList;
|
|
||||||
void (*manager)(Response *);
|
|
||||||
};
|
|
||||||
|
|
||||||
void infoOutput(Response *);
|
|
||||||
void defaultManager(Response *);
|
|
||||||
//void (*manager)(Response *);
|
|
||||||
void macCapabilityManager(QByteArray);
|
|
||||||
|
|
||||||
#endif // RESPONSECLASSES_H
|
|
109
serial.inc.cpp
109
serial.inc.cpp
@ -1,109 +0,0 @@
|
|||||||
#include "serial.inc.h"
|
|
||||||
#include <unistd.h>
|
|
||||||
#include "zigateBackend.h"
|
|
||||||
|
|
||||||
extern QApplication a;
|
|
||||||
extern ZigateBackend zigateBkd;
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
SerialManager::SerialManager()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
SerialManager::~SerialManager()
|
|
||||||
{
|
|
||||||
this->close();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SerialManager::initSerial()
|
|
||||||
{
|
|
||||||
bool test;
|
|
||||||
bool result;
|
|
||||||
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
result = this->findSerialDevice();
|
|
||||||
if (result)
|
|
||||||
{
|
|
||||||
debug("Device found :" + this->serialDevicePath, INFO);
|
|
||||||
break;
|
|
||||||
}else
|
|
||||||
{
|
|
||||||
cout << "Device not found, waiting 10 seconds before retrying" << endl;
|
|
||||||
sleep(10);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this->setBaudRate(115200);
|
|
||||||
this->setDataBits(QSerialPort::Data8);
|
|
||||||
this->setStopBits(QSerialPort::OneStop);
|
|
||||||
this->setParity(QSerialPort::NoParity);
|
|
||||||
this->setPortName(this->serialDevicePath);
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
test = this->open(QIODevice::ReadWrite);
|
|
||||||
if (!test)
|
|
||||||
{
|
|
||||||
cout << this->errorString().toStdString() << "=>" << this->serialDevicePath.toStdString() << endl;
|
|
||||||
sleep(5);
|
|
||||||
}
|
|
||||||
}while(!test);
|
|
||||||
|
|
||||||
|
|
||||||
QFutureWatcher<void> watcher;
|
|
||||||
QFuture<void> future = QtConcurrent::run([=]()
|
|
||||||
{
|
|
||||||
do
|
|
||||||
{
|
|
||||||
this->dataRead.clear();
|
|
||||||
//cout << "getData()" << endl;
|
|
||||||
if (this->waitForReadyRead())
|
|
||||||
{
|
|
||||||
while (!this->atEnd())
|
|
||||||
{
|
|
||||||
cout << "reading datas" << endl;
|
|
||||||
this->dataRead += this->readAll();
|
|
||||||
//cout << this->dataRead.toHex().toStdString() << endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
emit this->datasReady(this->dataRead);
|
|
||||||
//zigateBkd.interpretResult(this->dataRead);
|
|
||||||
}while(1);
|
|
||||||
});
|
|
||||||
watcher.setFuture(future);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void SerialManager::write(QByteArray msg)
|
|
||||||
{
|
|
||||||
cout << "writing to serial" << endl;
|
|
||||||
dataWriteSize = msg.count();
|
|
||||||
cout << "size = " << dataWriteSize << endl;
|
|
||||||
this->writeData(msg, msg.count()+1);
|
|
||||||
cout << msg.toHex().toStdString() << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool SerialManager::findSerialDevice()
|
|
||||||
{
|
|
||||||
const auto serialPortInfos = QSerialPortInfo::availablePorts();
|
|
||||||
for (const QSerialPortInfo &portInfo : serialPortInfos)
|
|
||||||
{
|
|
||||||
cout << portInfo.serialNumber().toStdString() << this->deviceName.toStdString() << endl;
|
|
||||||
if (portInfo.serialNumber().contains(this->deviceName))
|
|
||||||
{
|
|
||||||
this->portName = portInfo.portName();
|
|
||||||
this->serialDevicePath = portInfo.systemLocation();
|
|
||||||
this->serialDeviceDescription = portInfo.description();
|
|
||||||
this->serialDeviceManufacturer = portInfo.manufacturer();
|
|
||||||
this->serialDeviceNumber = portInfo.serialNumber();
|
|
||||||
this->serialDeviceVendor = portInfo.vendorIdentifier();
|
|
||||||
this->serialDeviceProduct = portInfo.productIdentifier();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
336
zigateBackend.h
336
zigateBackend.h
@ -1,336 +0,0 @@
|
|||||||
#ifndef ZIGATEBACKEND_H
|
|
||||||
#define ZIGATEBACKEND_H
|
|
||||||
|
|
||||||
#define DEVICE_ANNOUNCE "004D"
|
|
||||||
#define STATUS_RETURNED "8000"
|
|
||||||
#define LOG_MESSAGE "8001"
|
|
||||||
#define DATA_INDICATION "8002"
|
|
||||||
#define CLUSTERS_LIST "8003"
|
|
||||||
#define ATTRIBUTES_LIST "8004"
|
|
||||||
#define COMMANDS_LIST "8005"
|
|
||||||
#define STATUS "8006"
|
|
||||||
#define STATUS2 "8007"
|
|
||||||
#define VERSION_LIST "8010"
|
|
||||||
#define PERMIT_JOIN "8014"
|
|
||||||
#define NETWORK_JOINED_FORMED "8024"
|
|
||||||
#define BIND_RESPONSE "8030"
|
|
||||||
#define UNBIND_RESPONSE "8031"
|
|
||||||
#define NETWORK_ADDRESS "8040"
|
|
||||||
#define IEEE_ADDRESS "8041"
|
|
||||||
#define NODE_DESCRIPTOR "8042"
|
|
||||||
#define SIMPLE_DESCRIPTOR "8043"
|
|
||||||
#define POWER_DESCRIPTOR "8044"
|
|
||||||
#define ACTIVE_ENDPOINT "8045"
|
|
||||||
#define MATCH_DESCRIPTOR "8046"
|
|
||||||
#define USER_DESCRIPTOR_NOTIFY "802B"
|
|
||||||
#define USER_DESCRIPTOR "802C"
|
|
||||||
#define MANAGEMENT_LEAVE "8047"
|
|
||||||
#define LEAVE_INDICATION "8048"
|
|
||||||
#define MANAGEMENT_NETWORK_UPDATE "804A"
|
|
||||||
#define SYSTEM_SERVER_DISCOVERY "804B"
|
|
||||||
#define MANAGEMENT_LQI "804E"
|
|
||||||
#define ATTRIBUTE_DISCOVERY "8140"
|
|
||||||
#define HEARTBEAT "8008"
|
|
||||||
#define NETWORK_STATE "8009"
|
|
||||||
#define ACK_DATA "8011"
|
|
||||||
#define DATA_CONFIRM "8012"
|
|
||||||
#define DEVICES_LIST "8015"
|
|
||||||
#define TIME_SERVER "8017"
|
|
||||||
#define AUTHENTICATE_RESPONSE "8028"
|
|
||||||
#define PDM_EVENT "8035"
|
|
||||||
#define PERMIT_JOINING "8049"
|
|
||||||
#define PDM_CHILD_TABLE_SIZE "8052"
|
|
||||||
#define ADD_GROUP "8060"
|
|
||||||
#define VIEW_GROUP "8061"
|
|
||||||
#define GROUP_MEMBERSHIP "8062"
|
|
||||||
#define REMOVE_GROUP "8063"
|
|
||||||
#define LEVEL_UPDATE "8085"
|
|
||||||
#define ON_OFF "8095"
|
|
||||||
#define VIEW_SCENE "80A0"
|
|
||||||
#define ADD_SCENE "80A1"
|
|
||||||
#define REMOVE_SCENE "80A2"
|
|
||||||
#define REMOVE_ALL_SCENE "80A3"
|
|
||||||
#define STORE_SCENE "80A4"
|
|
||||||
#define SCENE_MEMBERSHIP "80A6"
|
|
||||||
#define SCENES_UPDATE "80A7"
|
|
||||||
#define READ_INDIVIDUAL_ATTRIBUTE "8100"
|
|
||||||
#define DEFAULT_RESPONSE "8101"
|
|
||||||
#define REPORT_INDIVIDUAL_ATTRIBUTE "8102"
|
|
||||||
#define WRITE_ATTRIBUTE "8110"
|
|
||||||
#define CONFIGURE_REPORTING "8120"
|
|
||||||
#define READ_REPORT_CONFIG "8122"
|
|
||||||
#define COMPLEX_DESCRIPTOR "8531"
|
|
||||||
#define ROUTER_DISCOVERY "8701"
|
|
||||||
#define APS_DATA_CONFIRM_FAIL "8702"
|
|
||||||
#define EXTENDED_ERROR "9999"
|
|
||||||
|
|
||||||
#include "library.h"
|
|
||||||
#include "serial.inc.h"
|
|
||||||
#include <QMap>
|
|
||||||
#include <QHash>
|
|
||||||
#include <QSerialPort>
|
|
||||||
#include "responseClasses.h"
|
|
||||||
#include <QtConcurrent/QtConcurrent>
|
|
||||||
|
|
||||||
//void deviceAnnounceManager(Response *);
|
|
||||||
//void commandReturnStatusManager(Response *);
|
|
||||||
//void logMessageManager(Response *);
|
|
||||||
//void dataIndicationManager(Response *);
|
|
||||||
void clustersListManager(Response *);
|
|
||||||
//void attributesListManager(Response *);
|
|
||||||
//void commandsListManager(Response *);
|
|
||||||
//void statusManager(Response *);
|
|
||||||
//void status2Manager(Response *);
|
|
||||||
//void versionListManager(Response *);
|
|
||||||
//void permitJoinManager(Response *);
|
|
||||||
//void networkJoinedFormedManager(Response *);
|
|
||||||
//void bindResponseManager(Response *);
|
|
||||||
//void unbindResponseManager(Response *);
|
|
||||||
//void networkAddressManager(Response *);
|
|
||||||
void iEEEAddressManager(Response *);
|
|
||||||
void nodeDescriptorManager(Response *);
|
|
||||||
void simpleDescriptorManager(Response *);
|
|
||||||
//void powerDescriptorManager(Response *);
|
|
||||||
//void activeEndpointManager(Response *);
|
|
||||||
//void matchDescriptorManager(Response *);
|
|
||||||
//void userDescriptorNotifyManager(Response *);
|
|
||||||
//void userDescriptorManager(Response *);
|
|
||||||
//void complexDescriptorManager(Response *);
|
|
||||||
//void managementLeaveManager(Response *);
|
|
||||||
//void leaveIndicationManager(Response *);
|
|
||||||
//void managementNetworkUpdateManager(Response *);
|
|
||||||
//void systemServerDiscoveryManager(Response *);
|
|
||||||
//void managementLQIManager(Response *);
|
|
||||||
//void attributeDiscoveryManager(Response *);
|
|
||||||
void deviceListManager(Response *);
|
|
||||||
void networkAddressManager(Response *);
|
|
||||||
void dataIndicationManager(Response *);
|
|
||||||
|
|
||||||
class ZigbeeMgr;
|
|
||||||
|
|
||||||
class ZigateBackend : QObject
|
|
||||||
{
|
|
||||||
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public slots:
|
|
||||||
void interpretResult(QByteArray);
|
|
||||||
|
|
||||||
public:
|
|
||||||
ZigateBackend();
|
|
||||||
~ZigateBackend();
|
|
||||||
|
|
||||||
bool initBackend();
|
|
||||||
QByteArray checksum(QByteArray msgType, QByteArray length, QByteArray datas);
|
|
||||||
QByteArray transcode(QByteArray datas);
|
|
||||||
QByteArray unTranscode(QByteArray datas);
|
|
||||||
void sendCmd(QByteArray cmd, QByteArray datas);
|
|
||||||
//int interpretResult(QByteArray datas);
|
|
||||||
//void getResponse();
|
|
||||||
bool resetCoordinator();
|
|
||||||
void interpretResult();
|
|
||||||
|
|
||||||
// commands
|
|
||||||
void getVersion();
|
|
||||||
|
|
||||||
// commands
|
|
||||||
void getVersion();
|
|
||||||
|
|
||||||
QMap <int, QString> resultCodes;
|
|
||||||
QMap <QString, QList <QByteArray>> cmdList =
|
|
||||||
{
|
|
||||||
{"setHeartBeat", {"0008", "0000", ""}},
|
|
||||||
{"getNetWorkState", {"0009", "0000", ""}},
|
|
||||||
{"getVersion", {"0010", "0000", ""}},
|
|
||||||
{"reset", {"0011", "0000", ""}},
|
|
||||||
{"erasePersistentData", {"0012", "0000", ""}},
|
|
||||||
{"factoryReset", {"0013", "0000", ""}},
|
|
||||||
{"permitJoin", {"0014", "0000", ""}},
|
|
||||||
{"setExpendedPANID", {"0020", "0008", ""}},
|
|
||||||
{"setChannelMask", {"0021", "0004", ""}},
|
|
||||||
{"setSecurityStateandKey", {"0022", "0000", ""}},
|
|
||||||
{"setDeviceType", {"0023", "0001", ""}},
|
|
||||||
{"startNetwork", {"0024", "0000", ""}},
|
|
||||||
{"startNetworkScan", {"0025", "0000", ""}},
|
|
||||||
{"removeDevice", {"0026", "0010", ""}},
|
|
||||||
{"enablePermissionsControlledJoins", {"0027", "0001", ""}},
|
|
||||||
{"authenticateDevice", {"0028", "0018", ""}},
|
|
||||||
{"outOfBandCommissioningDataRequest", {"0029", "0018", ""}},
|
|
||||||
{"userDescriptorSet", {"002B", "0000", ""}},
|
|
||||||
{"userDescritporRequest", {"002C", "0000", ""}},
|
|
||||||
{"bind", {"0030", "", ""}},
|
|
||||||
{"unbind", {"0031", "", ""}},
|
|
||||||
{"complexDescriptorRequest", {"0034", "0004", ""}},
|
|
||||||
{"networkAddressRequest", {"0040", "0012", ""}},
|
|
||||||
{"ieeeAddressRequest", {"0041", "0006", ""}},
|
|
||||||
{"nodeDescriptorRequest", {"0042", "0002", ""}},
|
|
||||||
{"simpleDescriptorRequest", {"0043", "0003", ""}},
|
|
||||||
{"powerDescriptorRequest", {"0044", "0002", ""}},
|
|
||||||
{"activeEndpointRequest", {"0045", "0002", ""}},
|
|
||||||
{"matchDescriptorRequest", {"0046", "", ""}},
|
|
||||||
{"managementLeaveRequest", {"0047", "001C", ""}},
|
|
||||||
{"permitJoiningRequest", {"0049", "0004", ""}},
|
|
||||||
{"managementNetworkUpdateRequest", {"004A", "000B", ""}},
|
|
||||||
{"systemServerDiscoveryRequest", {"004B", "0004", ""}},
|
|
||||||
{"managementLQIRequest", {"004E", "0003", ""}},
|
|
||||||
{"addGroup", {"0060", "0007", ""}},
|
|
||||||
{"viewGroup", {"0061", "0007", ""}},
|
|
||||||
{"getGroupMembership", {"0062", "", ""}},
|
|
||||||
{"removeGroup", {"0063", "0007", ""}},
|
|
||||||
{"removeAllGroups", {"0064", "0005", ""}},
|
|
||||||
{"addGroupIfIdentify", {"0065", "0007", ""}},
|
|
||||||
{"identifySend", {"0070", "0007", ""}},
|
|
||||||
{"identifyQuery", {"0071", "0005", ""}},
|
|
||||||
{"moveToLevel", {"0080", "0008", ""}},
|
|
||||||
{"moveToLevelWithWithoutOnOff", {"0081", "0009", ""}},
|
|
||||||
{"moveStep", {"0082", "000A", "0000"}},
|
|
||||||
{"moveStopMove", {"0083", "0005", ""}},
|
|
||||||
{"moveStopWithOnOff", {"0084", "0005", ""}},
|
|
||||||
{"onOffWithNoEffects", {"0092", "0006", ""}},
|
|
||||||
{"onOffTimedSend", {"0093", "000A", ""}},
|
|
||||||
{"onOffWithEffectsSend", {"0094", "0007", ""}},
|
|
||||||
{"viewScene", {"00A0", "0008", ""}},
|
|
||||||
{"addScene", {"00A1", "000D", ""}},
|
|
||||||
{"removeScene", {"00A2", "0008", ""}},
|
|
||||||
{"removeAllScenes", {"00A3", "0007", ""}},
|
|
||||||
{"storeScene", {"00A4", "0008", ""}},
|
|
||||||
{"recallScene", {"00A5", "0008", ""}},
|
|
||||||
{"sceneMembershipRequest", {"00A6", "0007", ""}},
|
|
||||||
{"addEnhancedScene", {"00A7", "", ""}},
|
|
||||||
{"viewEnhancedHostToNodeScene", {"00A8", "0008", ""}},
|
|
||||||
{"copyScene", {"00A9", "000C", ""}},
|
|
||||||
{"moveToHue", {"00B0", "0009", ""}},
|
|
||||||
{"moveHue", {"00B1", "0007", ""}},
|
|
||||||
{"stepHue", {"00B2", "0008", ""}},
|
|
||||||
{"moveToSaturation", {"00B3", "0008", ""}},
|
|
||||||
{"moveSaturation", {"00B4", "0006", ""}},
|
|
||||||
{"stepSaturation", {"00B5", "0008", ""}},
|
|
||||||
{"moveToHueAndSaturation", {"00B6", "0008", ""}},
|
|
||||||
{"moveToColour", {"00B7", "000B", ""}},
|
|
||||||
{"moveColour", {"00B8", "0009", ""}},
|
|
||||||
{"stepColour", {"00B9", "000B", ""}},
|
|
||||||
{"enhancedMoveToHue", {"00BA", "000A", ""}},
|
|
||||||
{"enhancedMoveHue", {"00BB", "0007", ""}},
|
|
||||||
{"enhancedStepHue", {"00BC", "0008", ""}},
|
|
||||||
{"enhancedMoveToHueAndSaturation", {"00BD", "000E", ""}},
|
|
||||||
{"colourLoopSet", {"00BE", "000D", ""}},
|
|
||||||
{"stopMoveStep", {"00BF", "0005", ""}},
|
|
||||||
{"moveToColourTemperature", {"00C0", "0009", ""}},
|
|
||||||
{"moveColourTemperature", {"00C1", "000D", ""}},
|
|
||||||
{"stepColourTemperature", {"00C2", "000E", ""}},
|
|
||||||
{"Initiate Touchlink", {"00D0", "0000", ""}},
|
|
||||||
{"touchLinkFactoryResetTarget", {"00D2", "0000", ""}},
|
|
||||||
{"identifyTriggerEffect", {"00E0", "0007", ""}},
|
|
||||||
{"lockUnlockDoor", {"00F0", "0006", ""}},
|
|
||||||
{"readAttributeRequest", {"0100", "", ""}},
|
|
||||||
{"writeAttributeRequest", {"0110", "000", ""}},
|
|
||||||
{"configureReportingRequest", {"0120", "", ""}},
|
|
||||||
{"attributeDiscoveryRequest", {"0140", "000E", ""}},
|
|
||||||
{"iASZoneEnrollResponse", {"0400", "0007", ""}},
|
|
||||||
{"rawApsDataRequest", {"0530", "000D", ""}}
|
|
||||||
};
|
|
||||||
QHash <QString, ResponseProperties *> responseListIndex;
|
|
||||||
|
|
||||||
QList <QString> responseListCode
|
|
||||||
{
|
|
||||||
"004D",
|
|
||||||
"8000",
|
|
||||||
"8001",
|
|
||||||
"8002",
|
|
||||||
"8003",
|
|
||||||
"8004",
|
|
||||||
"8005",
|
|
||||||
"8006",
|
|
||||||
"8007",
|
|
||||||
"8010",
|
|
||||||
"8014",
|
|
||||||
"8024",
|
|
||||||
"8030",
|
|
||||||
"8031",
|
|
||||||
"8040",
|
|
||||||
"8041",
|
|
||||||
"8042",
|
|
||||||
"8043",
|
|
||||||
"8044",
|
|
||||||
"8045",
|
|
||||||
"8046",
|
|
||||||
"802B",
|
|
||||||
"802C",
|
|
||||||
"8047",
|
|
||||||
"8048",
|
|
||||||
"804A",
|
|
||||||
"804B",
|
|
||||||
"804E",
|
|
||||||
"8140",
|
|
||||||
"8008",
|
|
||||||
"8009",
|
|
||||||
"8011",
|
|
||||||
"8012",
|
|
||||||
"8015",
|
|
||||||
"8017",
|
|
||||||
"8028",
|
|
||||||
"8035",
|
|
||||||
"8049",
|
|
||||||
"8052",
|
|
||||||
"8060",
|
|
||||||
"8061",
|
|
||||||
"8062",
|
|
||||||
"8063",
|
|
||||||
"8085",
|
|
||||||
"8095",
|
|
||||||
"80A0",
|
|
||||||
"80A1",
|
|
||||||
"80A2",
|
|
||||||
"80A3",
|
|
||||||
"80A4",
|
|
||||||
"80A6",
|
|
||||||
"80A7",
|
|
||||||
"8100",
|
|
||||||
"8101",
|
|
||||||
"8102",
|
|
||||||
"8110",
|
|
||||||
"8120",
|
|
||||||
"8122",
|
|
||||||
"8531",
|
|
||||||
"8701",
|
|
||||||
"8702",
|
|
||||||
"9999"
|
|
||||||
};
|
|
||||||
|
|
||||||
//ZigbeeMgr serial;
|
|
||||||
QMap <QByteArray, QString> clusters
|
|
||||||
{
|
|
||||||
{"0000", " (General: Basic)"},
|
|
||||||
{"0001", " (General: Power Config)"},
|
|
||||||
{"0002", " (General: Temperature Config)"},
|
|
||||||
{"0003", " (General: Identify)"},
|
|
||||||
{"0004", " (General: Groups)"},
|
|
||||||
{"0005", " (General: Scenes)"},
|
|
||||||
{"0006", " (General: On/Off)"},
|
|
||||||
{"0007", " (General: On/Off Config)"},
|
|
||||||
{"0008", " (General: Level Control)"},
|
|
||||||
{"0009", " (General: Alarms)"},
|
|
||||||
{"000A", " (General: Time)"},
|
|
||||||
{"000F", " (General: Binary Input Basic)"},
|
|
||||||
{"0020", " (General: Poll Control)"},
|
|
||||||
{"0019", " (General: OTA)"},
|
|
||||||
{"0101", " (General: Door Lock"},
|
|
||||||
{"0201", " (HVAC: Thermostat)"},
|
|
||||||
{"0202", " (HVAC: Fan Control)"},
|
|
||||||
{"0300", " (Lighting: Color Control)"},
|
|
||||||
{"0400", " (Measurement: Illuminance)"},
|
|
||||||
{"0402", " (Measurement: Temperature)"},
|
|
||||||
{"0405", " (Measurement: Humidity)"},
|
|
||||||
{"0406", " (Measurement: Occupancy Sensing)"},
|
|
||||||
{"0500", " (Security & Safety: IAS Zone)"},
|
|
||||||
{"0702", " (Smart Energy: Metering)"},
|
|
||||||
{"0B05", " (Misc: Diagnostics)"},
|
|
||||||
{"1000", " (ZLL: Commissioning)"},
|
|
||||||
{"FF01", " Xiaomi private"},
|
|
||||||
{"FF02", " Xiaomi private"},
|
|
||||||
{"1234", " Xiaomi private"}
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif // ZIGATEBACKEND_H
|
|
465
zigatecmd.cpp
465
zigatecmd.cpp
@ -1,465 +0,0 @@
|
|||||||
#include "zigateBackend.h"
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
bool ZigateBackend::resetCoordinator()
|
|
||||||
{
|
|
||||||
bool returnCode = false;
|
|
||||||
|
|
||||||
cout << "Sending reset to coordinator" << endl;
|
|
||||||
sendCmd("0011", "");
|
|
||||||
cout << "***************************************************" << endl;
|
|
||||||
sleep(5);
|
|
||||||
return returnCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
void ZigateBackend::getVersion()
|
|
||||||
{
|
|
||||||
sendCmd("0010", "");
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
bool ZigateBackend::setHeartBeat()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::getNetworkState()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::erasePersistentData()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::factoryNewReset()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::permitJoin()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::setExpendedPANID()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::setChannelMask()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::setSecurityStateKey()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::setDeviceType()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::startNetwork()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::startNetworkScan()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::removeDevice()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::enablePermissionsControlledJoins()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::authenticateDevice()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::outOfBandCommissioningDataRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::userDescriptorSet()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::userDescriptorRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::bind()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::unbind()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::complexDescriptorRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::networkAddressRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::iEEEAddressRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::nodeDescriptorRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::simpleDescriptorRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::powerDescriptorRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::activeEndpointRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::matchDescriptorRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::managementLeaveRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::permitJoiningRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::managementNetworkUpdateRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::systemServerDiscoveryRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::managementLQIRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::addGroup()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::viewGroup()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::getGroupMembership()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::removeGroup()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::removeAllGroups()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::addGroupIfIdentify()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::identifySend()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::identifyQuery()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveToLevel()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveToLevelWithWithoutOnOoff()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveStep()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveStopMove()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveStopWithOnOff()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::onOffWithNEffects()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::onOffWithEffects()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::onOffTimedSend()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::onOffTimed()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::onOffWithEffectsSend()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::viewScene()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::addScene()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::removeScene()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::removeAllScenes()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::storeScene()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::recallScene()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::sceneMembershipRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::addEnhancedScene()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::viewEnhancedHostToNodeScene()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::copyScene()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveToHue()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveHue()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::stepHue()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveToSaturation()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveSaturation()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::stepSaturation()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveToHueAndSaturation()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveToColour()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveColour()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::stepColour()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::enhancedMoveToHue()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::enhancedMoveHue()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::enhancedStepHue()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::enhancedMoveToHueAndSaturation()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::colourLoopSet()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::stopMoveStep()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveToColourTemperature()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::moveColourTemperature()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::stepColourTemperature()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::initiateTouchlink()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::touchLinkFactoryResetTarget()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::identifyTriggerEffect()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::lockUnlockDoor()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::readAttributerequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::writeAttributeRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::configureReportingRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::attributeDiscoveryRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::iASZoneEnrollResponse()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ZigateBackend::rawAPSDataRequest()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
*/
|
|
73
zigateplugin/responseClasses.h
Normal file
73
zigateplugin/responseClasses.h
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
#ifndef RESPONSECLASSES_H
|
||||||
|
#define RESPONSECLASSES_H
|
||||||
|
#include <QByteArray>
|
||||||
|
#include <QString>
|
||||||
|
#include <QVariant>
|
||||||
|
#include <QMap>
|
||||||
|
#include <QList>
|
||||||
|
#include <QHash>
|
||||||
|
//#include "zigateplugin.h"
|
||||||
|
|
||||||
|
//void (*propertyManager)(QByteArray);
|
||||||
|
class ZigatePlugin;
|
||||||
|
class Response
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
QByteArray code;
|
||||||
|
QByteArray datas;
|
||||||
|
QString description;
|
||||||
|
void manager(Response *);
|
||||||
|
};
|
||||||
|
|
||||||
|
class ResponseProperties
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
QByteArray code;
|
||||||
|
QByteArray datas;
|
||||||
|
QString description;
|
||||||
|
QMap <uint, QList<QVariant>> properties;
|
||||||
|
QMap <uint, QMap<uint,QString>> propertyDetail;
|
||||||
|
QHash <uint, void (*)(QByteArray)> propertyManagerList;
|
||||||
|
void (*manager)(ResponseProperties *);
|
||||||
|
};
|
||||||
|
|
||||||
|
void infoOutput(ResponseProperties *);
|
||||||
|
void defaultManager(ResponseProperties *);
|
||||||
|
//void (*manager)(Response *);
|
||||||
|
void macCapabilityManager(QByteArray);
|
||||||
|
//void deviceAnnounceManager(ResponseProperties *);
|
||||||
|
//void commandReturnStatusManager(ResponseProperties *);
|
||||||
|
//void logMessageManager(ResponseProperties *);
|
||||||
|
//void dataIndicationManager(ResponseProperties *);
|
||||||
|
void clustersListManager(ResponseProperties *);
|
||||||
|
//void attributesListManager(ResponseProperties *);
|
||||||
|
//void commandsListManager(ResponseProperties *);
|
||||||
|
//void statusManager(ResponseProperties *);
|
||||||
|
//void status2Manager(ResponseProperties *);
|
||||||
|
//void versionListManager(ResponseProperties *);
|
||||||
|
//void permitJoinManager(ResponseProperties *);
|
||||||
|
//void networkJoinedFormedManager(ResponseProperties *);
|
||||||
|
//void bindResponseManager(ResponseProperties *);
|
||||||
|
//void unbindResponseManager(ResponseProperties *);
|
||||||
|
//void networkAddressManager(ResponseProperties *);
|
||||||
|
void iEEEAddressManager(ResponseProperties *);
|
||||||
|
void nodeDescriptorManager(ResponseProperties *);
|
||||||
|
void simpleDescriptorManager(ResponseProperties *);
|
||||||
|
//void powerDescriptorManager(ResponseProperties *);
|
||||||
|
//void activeEndpointManager(ResponseProperties *);
|
||||||
|
//void matchDescriptorManager(ResponseProperties *);
|
||||||
|
//void userDescriptorNotifyManager(ResponseProperties *);
|
||||||
|
//void userDescriptorManager(ResponseProperties *);
|
||||||
|
//void complexDescriptorManager(ResponseProperties *);
|
||||||
|
//void managementLeaveManager(ResponseProperties *);
|
||||||
|
//void leaveIndicationManager(ResponseProperties *);
|
||||||
|
//void managementNetworkUpdateManager(ResponseProperties *);
|
||||||
|
//void systemServerDiscoveryManager(ResponseProperties *);
|
||||||
|
//void managementLQIManager(ResponseProperties *);
|
||||||
|
//void attributeDiscoveryManager(ResponseProperties *);
|
||||||
|
void deviceListManager(ResponseProperties *);
|
||||||
|
void networkAddressManager(ResponseProperties *);
|
||||||
|
void dataIndicationManager(ResponseProperties *);
|
||||||
|
void macCapabilityManager(QByteArray mac);
|
||||||
|
|
||||||
|
#endif // RESPONSECLASSES_H
|
124
zigateplugin/serial.cpp
Normal file
124
zigateplugin/serial.cpp
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
#include "serial.h"
|
||||||
|
#include <unistd.h>
|
||||||
|
#include "zigateplugin.h"
|
||||||
|
#include <QtCore>
|
||||||
|
|
||||||
|
//extern QApplication a;
|
||||||
|
extern ZigatePlugin zigatePlugin;
|
||||||
|
extern SerialManager serialManager;
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
SerialManager::SerialManager()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
SerialManager::~SerialManager()
|
||||||
|
{
|
||||||
|
this->close();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SerialManager::initSerial()
|
||||||
|
{
|
||||||
|
|
||||||
|
this->setBaudRate(115200);
|
||||||
|
this->setDataBits(QSerialPort::Data8);
|
||||||
|
this->setStopBits(QSerialPort::OneStop);
|
||||||
|
this->setParity(QSerialPort::NoParity);
|
||||||
|
|
||||||
|
openSerialPort();
|
||||||
|
}
|
||||||
|
|
||||||
|
// open serial port and return true when it is available
|
||||||
|
bool SerialManager::openSerialPort()
|
||||||
|
{
|
||||||
|
bool result;
|
||||||
|
bool test = false;
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
result = this->findSerialDevice();
|
||||||
|
this->setPortName(this->serialDevicePath);
|
||||||
|
if (result)
|
||||||
|
{
|
||||||
|
cout << "Device found :" + this->serialDevicePath.toStdString() << endl;
|
||||||
|
break;
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
cout << "Device not found, waiting 10 seconds before retrying" << endl;
|
||||||
|
sleep(10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while(!test or !this->isOpen())
|
||||||
|
{
|
||||||
|
test = this->open(QIODevice::ReadWrite);
|
||||||
|
if (!test)
|
||||||
|
{
|
||||||
|
cout << "opening device: " << this->errorString().toStdString() << "=>" << this->serialDevicePath.toStdString() << endl;
|
||||||
|
sleep(5);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// launch the thread which read datas on serial port
|
||||||
|
void ZigatePlugin::readDatas()
|
||||||
|
{
|
||||||
|
|
||||||
|
serialManager.dataRead = serialManager.readAll();
|
||||||
|
//cout << "reading datas" << serialManager.dataRead.toHex(' ').toStdString() << endl;
|
||||||
|
zigatePlugin.interpretResult(serialManager.dataRead);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SerialManager::write2serial(QByteArray msg)
|
||||||
|
{
|
||||||
|
cout << "writing to serial" << endl;
|
||||||
|
dataWriteSize = msg.count();
|
||||||
|
cout << "size = " << dataWriteSize << endl;
|
||||||
|
this->write((const QByteArray)msg);
|
||||||
|
cout << msg.toHex().toStdString() << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool SerialManager::findSerialDevice()
|
||||||
|
{
|
||||||
|
const auto serialPortInfos = QSerialPortInfo::availablePorts();
|
||||||
|
for (const QSerialPortInfo &portInfo : serialPortInfos)
|
||||||
|
{
|
||||||
|
cout << portInfo.serialNumber().toStdString() << this->deviceName.toStdString() << endl;
|
||||||
|
if (portInfo.serialNumber().contains(this->deviceName))
|
||||||
|
{
|
||||||
|
this->portName = portInfo.portName();
|
||||||
|
this->serialDevicePath = portInfo.systemLocation();
|
||||||
|
this->serialDeviceDescription = portInfo.description();
|
||||||
|
this->serialDeviceManufacturer = portInfo.manufacturer();
|
||||||
|
this->serialDeviceNumber = portInfo.serialNumber();
|
||||||
|
this->serialDeviceVendor = portInfo.vendorIdentifier();
|
||||||
|
this->serialDeviceProduct = portInfo.productIdentifier();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SerialManager::serialError(QSerialPort::SerialPortError error)
|
||||||
|
{
|
||||||
|
cout << "error code : " << error << this->errorString().toStdString() << "=>" << this->serialDevicePath.toStdString() << endl;
|
||||||
|
|
||||||
|
switch (error)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
case 3:
|
||||||
|
return;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
case 9:
|
||||||
|
cout << "error code : " << error << this->errorString().toStdString() << "=>" << this->serialDevicePath.toStdString() << endl;
|
||||||
|
this->close();
|
||||||
|
openSerialPort();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
cout << "error code : " << error << this->errorString().toStdString() << "=>" << this->serialDevicePath.toStdString() << endl;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
@ -5,7 +5,7 @@
|
|||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
#include <QSerialPort>
|
#include <QSerialPort>
|
||||||
#include <QSerialPortInfo>
|
#include <QSerialPortInfo>
|
||||||
#include <QApplication>
|
//#include <QApplication>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
class SerialManager : public QSerialPort
|
class SerialManager : public QSerialPort
|
||||||
@ -26,20 +26,22 @@ class SerialManager : public QSerialPort
|
|||||||
QString serialDeviceVendor;
|
QString serialDeviceVendor;
|
||||||
QString serialDeviceProduct;
|
QString serialDeviceProduct;
|
||||||
quint32 baudRate = 115200;
|
quint32 baudRate = 115200;
|
||||||
void write(QByteArray datas);
|
|
||||||
|
|
||||||
SerialManager();
|
SerialManager();
|
||||||
~SerialManager();
|
~SerialManager();
|
||||||
|
|
||||||
void initSerial();
|
void initSerial();
|
||||||
bool findSerialDevice();
|
bool findSerialDevice();
|
||||||
|
bool openSerialPort();
|
||||||
|
void write2serial(QByteArray);
|
||||||
|
|
||||||
//void getData();
|
//void getData();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void datasReady(QByteArray);
|
void datasReady(QByteArray);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
void serialError(QSerialPort::SerialPortError);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
8
zigateplugin/version.h
Normal file
8
zigateplugin/version.h
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#ifndef VERSION_H
|
||||||
|
#define VERSION_H
|
||||||
|
|
||||||
|
QString version = "0.1";
|
||||||
|
|
||||||
|
|
||||||
|
#endif // VERSION_H
|
||||||
|
|
@ -1,25 +1,29 @@
|
|||||||
#include "zigateBackend.h"
|
#include "zigateplugin.h"
|
||||||
#include "serial.inc.h"
|
#include "serial.h"
|
||||||
|
#include "interface.h"
|
||||||
#include <QByteArray>
|
#include <QByteArray>
|
||||||
|
|
||||||
extern ZigateBackend zigateBkd;
|
extern ZigatePlugin zigatePlugin;
|
||||||
extern SerialManager serialManager;
|
extern SerialManager serialManager;
|
||||||
extern QHash <QString, ResponseProperties *> responseListIndex;
|
|
||||||
|
//extern QHash <QString, ResponseProperties *> responseListIndex;
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
extern QHash <QString, ResponseProperties*> responseListIndex;
|
||||||
|
|
||||||
bool ZigateBackend::initBackend()
|
bool ZigatePlugin::initPlugin()
|
||||||
{
|
{
|
||||||
bool returnCode = false;
|
bool returnCode = false;
|
||||||
QString var;
|
|
||||||
ResponseProperties * temp;
|
ResponseProperties * temp;
|
||||||
|
QHash<QString, ResponseProperties*>::iterator i;
|
||||||
|
|
||||||
foreach (var, responseListCode)
|
for (i = responseListIndex.begin(); i != responseListIndex.end(); ++i)
|
||||||
|
// init lists
|
||||||
|
//for(i=0;i=responseListIndex.count;i++)
|
||||||
{
|
{
|
||||||
temp = new ResponseProperties();
|
temp = new ResponseProperties();
|
||||||
temp->manager = &defaultManager;
|
temp->manager = defaultManager;
|
||||||
responseListIndex.insert(var, temp) ;
|
i.value() = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
temp = responseListIndex["004D"];
|
temp = responseListIndex["004D"];
|
||||||
@ -134,10 +138,10 @@ bool ZigateBackend::initBackend()
|
|||||||
{4, {"Destination endpoint", 1, 0}}, // uint8_t
|
{4, {"Destination endpoint", 1, 0}}, // uint8_t
|
||||||
{5, {"Source address mode", 1, 0}}, // uint8_t TODO
|
{5, {"Source address mode", 1, 0}}, // uint8_t TODO
|
||||||
{6, {"Source address", 2, 0}}, // uint16_t or uint64_t
|
{6, {"Source address", 2, 0}}, // uint16_t or uint64_t
|
||||||
{7, {"Destination address mode", 0}}, // uint8_t TODO
|
{7, {"Destination address mode", 0, 0}}, // uint8_t TODO
|
||||||
{8, {"Destination address", 2}}, // uint16_t or uint64_t
|
{8, {"Destination address", 2, 0}}, // uint16_t or uint64_t
|
||||||
{9, {"Payload size", 1}}, // uint8_t
|
{9, {"Payload size", 1, 0}}, // uint8_t
|
||||||
{10, {"Payload", -1}} // data each element is uint8_t
|
{10, {"Payload", -1, 0}} // data each element is uint8_t
|
||||||
};
|
};
|
||||||
temp->manager = &defaultManager; //dataIndicationManager
|
temp->manager = &defaultManager; //dataIndicationManager
|
||||||
|
|
||||||
@ -264,7 +268,7 @@ bool ZigateBackend::initBackend()
|
|||||||
temp->description = "DATA_CONFIRM";
|
temp->description = "DATA_CONFIRM";
|
||||||
temp->properties =
|
temp->properties =
|
||||||
{
|
{
|
||||||
{0, {"Status: ", 1, }},
|
{0, {"Status: ", 1, 0}},
|
||||||
{1, {"Source Endpoint: ", 1, 0}},
|
{1, {"Source Endpoint: ", 1, 0}},
|
||||||
{2, {"Destination endpoint: ", 1, 0}},
|
{2, {"Destination endpoint: ", 1, 0}},
|
||||||
{3, {"Destination Address mode:", 1, 0}},
|
{3, {"Destination Address mode:", 1, 0}},
|
||||||
@ -359,7 +363,7 @@ bool ZigateBackend::initBackend()
|
|||||||
{1, {"Status", 1, 0}}, // uint8_t
|
{1, {"Status", 1, 0}}, // uint8_t
|
||||||
{2, {"Network address of interest", 2, 0}}, // uint16_6
|
{2, {"Network address of interest", 2, 0}}, // uint16_6
|
||||||
{3, {"Length", 1, 0}}, // uint8_t
|
{3, {"Length", 1, 0}}, // uint8_t
|
||||||
{4, {"Data", -1}} // uint8_t stream
|
{4, {"Data", -1, 0}} // uint8_t stream
|
||||||
};
|
};
|
||||||
temp->manager = &defaultManager;
|
temp->manager = &defaultManager;
|
||||||
|
|
||||||
@ -369,7 +373,7 @@ bool ZigateBackend::initBackend()
|
|||||||
temp->properties =
|
temp->properties =
|
||||||
{
|
{
|
||||||
{0, {"Sequence number", 1, 0}}, // uint8_t
|
{0, {"Sequence number", 1, 0}}, // uint8_t
|
||||||
{1, {"Status", 1}}, // uint8_t
|
{1, {"Status", 1, 0}}, // uint8_t
|
||||||
{2, {"Source address mode: ", 1, 0}}, // uint8_t> (only from v3.1a)
|
{2, {"Source address mode: ", 1, 0}}, // uint8_t> (only from v3.1a)
|
||||||
{3, {"Source Address: ", 2, 0}} // uint16_t> (only from v3.1a)
|
{3, {"Source Address: ", 2, 0}} // uint16_t> (only from v3.1a)
|
||||||
};
|
};
|
||||||
@ -380,10 +384,10 @@ bool ZigateBackend::initBackend()
|
|||||||
temp->description = "Unbind response";
|
temp->description = "Unbind response";
|
||||||
temp->properties =
|
temp->properties =
|
||||||
{
|
{
|
||||||
{0, {"Sequence number", 1}}, // uint8_t
|
{0, {"Sequence number", 1, 0}}, // uint8_t
|
||||||
{1, {"Status", 1}}, // uint8_t
|
{1, {"Status", 1, 0}}, // uint8_t
|
||||||
{2, {"Source address mode: ", 1, 0}}, // uint8_t> (only from v3.1a)
|
{2, {"Source address mode: ", 1, 0}}, // uint8_t (only from v3.1a)
|
||||||
{3, {"Source Address: ", 2, 0}} // uint16_t> (only from v3.1a)
|
{3, {"Source Address: ", 2, 0}} // uint16_t (only from v3.1a)
|
||||||
|
|
||||||
};
|
};
|
||||||
temp->manager = &defaultManager;
|
temp->manager = &defaultManager;
|
||||||
@ -492,7 +496,7 @@ bool ZigateBackend::initBackend()
|
|||||||
{
|
{
|
||||||
{0, {"Sequence number", 1, 0}}, // uin8_t
|
{0, {"Sequence number", 1, 0}}, // uin8_t
|
||||||
{1, {"Status", 1, 0}}, // uint8_t
|
{1, {"Status", 1, 0}}, // uint8_t
|
||||||
{2, {"bit field", 2, }} // uint16_t
|
{2, {"bit field", 2, 0}} // uint16_t
|
||||||
};
|
};
|
||||||
temp->manager = &defaultManager;
|
temp->manager = &defaultManager;
|
||||||
// ******************************************
|
// ******************************************
|
||||||
@ -695,15 +699,20 @@ bool ZigateBackend::initBackend()
|
|||||||
};
|
};
|
||||||
temp->manager = &defaultManager;
|
temp->manager = &defaultManager;
|
||||||
|
|
||||||
serialManager.initSerial();
|
|
||||||
connect(&serialManager, SIGNAL(datasReady(QByteArray)), this, SLOT(interpretResult(QByteArray)));
|
|
||||||
|
|
||||||
|
qRegisterMetaType<QSerialPort::SerialPortError>("serialManager");
|
||||||
|
serialManager.initSerial();
|
||||||
|
connect(&serialManager, SIGNAL(readyRead()), &zigatePlugin, SLOT(readDatas()));
|
||||||
|
connect(&serialManager, SIGNAL(errorOccurred(QSerialPort::SerialPortError)), &serialManager, SLOT(serialError(QSerialPort::SerialPortError)), Qt::QueuedConnection);
|
||||||
|
|
||||||
|
//sending reset and getting version of zigate
|
||||||
resetCoordinator();
|
resetCoordinator();
|
||||||
getVersion();
|
getVersion();
|
||||||
|
|
||||||
return returnCode;
|
return returnCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void infoOutput(Response *object)
|
void infoOutput(ResponseProperties *object)
|
||||||
{
|
{
|
||||||
cout << object->code.toHex().toStdString() << " : " << object->description.toStdString() << endl;
|
cout << object->code.toHex().toStdString() << " : " << object->description.toStdString() << endl;
|
||||||
|
|
468
zigateplugin/zigatecmd.cpp
Normal file
468
zigateplugin/zigatecmd.cpp
Normal file
@ -0,0 +1,468 @@
|
|||||||
|
#include "zigateplugin.h"
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
class ZigatePugin;
|
||||||
|
|
||||||
|
bool ZigatePlugin::resetCoordinator()
|
||||||
|
{
|
||||||
|
bool returnCode = false;
|
||||||
|
|
||||||
|
cout << "Sending reset to coordinator" << endl;
|
||||||
|
sendCmd("0011", "");
|
||||||
|
cout << "***************************************************" << endl;
|
||||||
|
//sleep(5);
|
||||||
|
return returnCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ZigatePlugin::getVersion()
|
||||||
|
{
|
||||||
|
sendCmd("0010", "");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
bool ZigatePlugin::setHeartBeat()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::getNetworkState()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::erasePersistentData()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::factoryNewReset()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::permitJoin()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::setExpendedPANID()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::setChannelMask()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::setSecurityStateKey()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::setDeviceType()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::startNetwork()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::startNetworkScan()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::removeDevice()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::enablePermissionsControlledJoins()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::authenticateDevice()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::outOfBandCommissioningDataRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::userDescriptorSet()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::userDescriptorRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::bind()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::unbind()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::complexDescriptorRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::networkAddressRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::iEEEAddressRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::nodeDescriptorRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::simpleDescriptorRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::powerDescriptorRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::activeEndpointRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::matchDescriptorRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::managementLeaveRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::permitJoiningRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::managementNetworkUpdateRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::systemServerDiscoveryRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::managementLQIRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::addGroup()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::viewGroup()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::getGroupMembership()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::removeGroup()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::removeAllGroups()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::addGroupIfIdentify()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::identifySend()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::identifyQuery()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToLevel()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToLevelWithWithoutOnOoff()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveStep()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveStopMove()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveStopWithOnOff()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::onOffWithNEffects()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::onOffWithEffects()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::onOffTimedSend()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::onOffTimed()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::onOffWithEffectsSend()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::viewScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::addScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::removeScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::removeAllScenes()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::storeScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::recallScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::sceneMembershipRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::addEnhancedScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::viewEnhancedHostToNodeScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::copyScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToHue()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveHue()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::stepHue()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToSaturation()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveSaturation()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::stepSaturation()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToHueAndSaturation()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToColour()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveColour()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::stepColour()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::enhancedMoveToHue()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::enhancedMoveHue()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::enhancedStepHue()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::enhancedMoveToHueAndSaturation()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::colourLoopSet()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::stopMoveStep()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToColourTemperature()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveColourTemperature()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::stepColourTemperature()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::initiateTouchlink()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::touchLinkFactoryResetTarget()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::identifyTriggerEffect()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::lockUnlockDoor()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::readAttributerequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::writeAttributeRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::configureReportingRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::attributeDiscoveryRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::iASZoneEnrollResponse()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::rawAPSDataRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
467
zigateplugin/zigatecmd.cpp.autosave
Normal file
467
zigateplugin/zigatecmd.cpp.autosave
Normal file
@ -0,0 +1,467 @@
|
|||||||
|
#include "zigateplugin.h"
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
class ZigatePugin;
|
||||||
|
|
||||||
|
bool ZigatePlugin::resetCoordinator()
|
||||||
|
{
|
||||||
|
bool returnCode = false;
|
||||||
|
|
||||||
|
cout << "Sending reset to coordinator" << endl;
|
||||||
|
sendCmd("0011", "");
|
||||||
|
return returnCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ZigatePlugin::getVersion()
|
||||||
|
{
|
||||||
|
cout << "Getting o coordinator" << endl;
|
||||||
|
sendCmd("0010", "");
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
bool ZigatePlugin::setHeartBeat()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::getNetworkState()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::erasePersistentData()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::factoryNewReset()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::permitJoin()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::setExpendedPANID()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::setChannelMask()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::setSecurityStateKey()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::setDeviceType()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::startNetwork()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::startNetworkScan()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::removeDevice()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::enablePermissionsControlledJoins()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::authenticateDevice()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::outOfBandCommissioningDataRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::userDescriptorSet()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::userDescriptorRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::bind()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::unbind()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::complexDescriptorRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::networkAddressRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::iEEEAddressRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::nodeDescriptorRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::simpleDescriptorRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::powerDescriptorRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::activeEndpointRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::matchDescriptorRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::managementLeaveRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::permitJoiningRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::managementNetworkUpdateRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::systemServerDiscoveryRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::managementLQIRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::addGroup()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::viewGroup()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::getGroupMembership()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::removeGroup()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::removeAllGroups()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::addGroupIfIdentify()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::identifySend()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::identifyQuery()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToLevel()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToLevelWithWithoutOnOoff()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveStep()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveStopMove()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveStopWithOnOff()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::onOffWithNEffects()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::onOffWithEffects()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::onOffTimedSend()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::onOffTimed()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::onOffWithEffectsSend()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::viewScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::addScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::removeScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::removeAllScenes()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::storeScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::recallScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::sceneMembershipRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::addEnhancedScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::viewEnhancedHostToNodeScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::copyScene()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToHue()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveHue()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::stepHue()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToSaturation()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveSaturation()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::stepSaturation()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToHueAndSaturation()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToColour()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveColour()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::stepColour()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::enhancedMoveToHue()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::enhancedMoveHue()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::enhancedStepHue()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::enhancedMoveToHueAndSaturation()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::colourLoopSet()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::stopMoveStep()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveToColourTemperature()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::moveColourTemperature()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::stepColourTemperature()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::initiateTouchlink()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::touchLinkFactoryResetTarget()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::identifyTriggerEffect()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::lockUnlockDoor()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::readAttributerequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::writeAttributeRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::configureReportingRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::attributeDiscoveryRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::iASZoneEnrollResponse()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigatePlugin::rawAPSDataRequest()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
*/
|
@ -1,28 +1,77 @@
|
|||||||
#include "main.h"
|
#include "zigateplugin.h"
|
||||||
#include <unistd.h>
|
|
||||||
#include <QFutureWatcher>
|
|
||||||
#include "serial.inc.h"
|
|
||||||
|
|
||||||
class BackEnds;
|
|
||||||
extern SerialManager serialManager;
|
|
||||||
extern QMap <QString, BackEnds> backends;
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
ZigateBackend zigateBkd;
|
ZigatePlugin zigatePlugin;
|
||||||
|
SerialManager serialManager;
|
||||||
|
|
||||||
ZigateBackend::ZigateBackend()
|
QHash <QString, ResponseProperties*> responseListIndex
|
||||||
{
|
{
|
||||||
BackEnds zigate;
|
{"004D", nullptr},
|
||||||
backends["Zigate"] = zigate;
|
{"8000", nullptr},
|
||||||
backends["zigate"].name = "Zigate";
|
{"8001", nullptr},
|
||||||
backends["zigate"].device = "ZIGATE";
|
{"8002", nullptr},
|
||||||
}
|
{"8003", nullptr},
|
||||||
|
{"8004", nullptr},
|
||||||
|
{"8005", nullptr},
|
||||||
|
{"8006", nullptr},
|
||||||
|
{"8007", nullptr},
|
||||||
|
{"8010", nullptr},
|
||||||
|
{"8014", nullptr},
|
||||||
|
{"8024", nullptr},
|
||||||
|
{"8030", nullptr},
|
||||||
|
{"8031", nullptr},
|
||||||
|
{"8040", nullptr},
|
||||||
|
{"8041", nullptr},
|
||||||
|
{"8042", nullptr},
|
||||||
|
{"8043", nullptr},
|
||||||
|
{"8044", nullptr},
|
||||||
|
{"8045", nullptr},
|
||||||
|
{"8046", nullptr},
|
||||||
|
{"802B", nullptr},
|
||||||
|
{"802C", nullptr},
|
||||||
|
{"8047", nullptr},
|
||||||
|
{"8048", nullptr},
|
||||||
|
{"804A", nullptr},
|
||||||
|
{"804B", nullptr},
|
||||||
|
{"804E", nullptr},
|
||||||
|
{"8140", nullptr},
|
||||||
|
{"8008", nullptr},
|
||||||
|
{"8009", nullptr},
|
||||||
|
{"8011", nullptr},
|
||||||
|
{"8012", nullptr},
|
||||||
|
{"8015", nullptr},
|
||||||
|
{"8017", nullptr},
|
||||||
|
{"8028", nullptr},
|
||||||
|
{"8035", nullptr},
|
||||||
|
{"8049", nullptr},
|
||||||
|
{"8052", nullptr},
|
||||||
|
{"8060", nullptr},
|
||||||
|
{"8061", nullptr},
|
||||||
|
{"8062", nullptr},
|
||||||
|
{"8063", nullptr},
|
||||||
|
{"8085", nullptr},
|
||||||
|
{"8095", nullptr},
|
||||||
|
{"80A0", nullptr},
|
||||||
|
{"80A1", nullptr},
|
||||||
|
{"80A2", nullptr},
|
||||||
|
{"80A3", nullptr},
|
||||||
|
{"80A4", nullptr},
|
||||||
|
{"80A6", nullptr},
|
||||||
|
{"80A7", nullptr},
|
||||||
|
{"8100", nullptr},
|
||||||
|
{"8101", nullptr},
|
||||||
|
{"8102", nullptr},
|
||||||
|
{"8110", nullptr},
|
||||||
|
{"8120", nullptr},
|
||||||
|
{"8122", nullptr},
|
||||||
|
{"8531", nullptr},
|
||||||
|
{"8701", nullptr},
|
||||||
|
{"8702", nullptr},
|
||||||
|
{"9999", nullptr}
|
||||||
|
};
|
||||||
|
|
||||||
ZigateBackend::~ZigateBackend()
|
QByteArray ZigatePlugin::checksum(QByteArray msgType, QByteArray length, QByteArray datas)
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
QByteArray ZigateBackend::checksum(QByteArray msgType, QByteArray length, QByteArray datas)
|
|
||||||
{
|
{
|
||||||
quint16 temp = 0;
|
quint16 temp = 0;
|
||||||
int i;
|
int i;
|
||||||
@ -44,7 +93,7 @@ QByteArray ZigateBackend::checksum(QByteArray msgType, QByteArray length, QByteA
|
|||||||
return QByteArray::number(temp, 16);
|
return QByteArray::number(temp, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray ZigateBackend::transcode(QByteArray datas)
|
QByteArray ZigatePlugin::transcode(QByteArray datas)
|
||||||
{
|
{
|
||||||
QByteArray msg = "";
|
QByteArray msg = "";
|
||||||
int i;
|
int i;
|
||||||
@ -68,7 +117,7 @@ QByteArray ZigateBackend::transcode(QByteArray datas)
|
|||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
QByteArray ZigateBackend::unTranscode(QByteArray datas)
|
QByteArray ZigatePlugin::unTranscode(QByteArray datas)
|
||||||
{
|
{
|
||||||
QByteArray result;
|
QByteArray result;
|
||||||
int i;
|
int i;
|
||||||
@ -79,7 +128,7 @@ QByteArray ZigateBackend::unTranscode(QByteArray datas)
|
|||||||
return "-1";
|
return "-1";
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i=1;i<=datas.count()-2;i++)
|
for (i=0;i<=datas.count()-1;i++)
|
||||||
{
|
{
|
||||||
tmp = datas.at(i);
|
tmp = datas.at(i);
|
||||||
if (tmp == 0x02)
|
if (tmp == 0x02)
|
||||||
@ -88,17 +137,17 @@ QByteArray ZigateBackend::unTranscode(QByteArray datas)
|
|||||||
result.append(datas[i] ^ 16);
|
result.append(datas[i] ^ 16);
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
if (tmp != 0 and tmp != 1)
|
//if (tmp != 0 and tmp != 1)
|
||||||
{
|
//{
|
||||||
result += tmp;
|
result += tmp;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cout << result.toHex(' ').toStdString() << endl;
|
cout << result.toHex(' ').toStdString() << endl;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ZigateBackend::sendCmd(QByteArray cmd, QByteArray datas)
|
void ZigatePlugin::sendCmd(QByteArray cmd, QByteArray datas)
|
||||||
{
|
{
|
||||||
QByteArray msg;
|
QByteArray msg;
|
||||||
QByteArray len;
|
QByteArray len;
|
||||||
@ -115,45 +164,50 @@ void ZigateBackend::sendCmd(QByteArray cmd, QByteArray datas)
|
|||||||
msg += QByteArray::fromHex(checksum(cmd, len, ""));
|
msg += QByteArray::fromHex(checksum(cmd, len, ""));
|
||||||
}
|
}
|
||||||
msg += QByteArray::fromHex("03");
|
msg += QByteArray::fromHex("03");
|
||||||
serialManager.write(msg);
|
serialManager.write2serial(msg);
|
||||||
if (!serialManager.waitForBytesWritten(10000))
|
|
||||||
{
|
|
||||||
cout << "error : no acknoledge of bytes written" << endl;
|
|
||||||
}
|
|
||||||
//this->interpretResult(this->dataRead);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*void ZigateBackend::getResponse()
|
void ZigatePlugin::interpretResult(QByteArray payload)
|
||||||
{
|
{
|
||||||
//this->getData();
|
//uint tab = 0;
|
||||||
this->interpretResult(this->dataRead);
|
uint length = 0;
|
||||||
this->dataRead.clear();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
void ZigateBackend::interpretResult(QByteArray payload)
|
|
||||||
{
|
|
||||||
uint tab = 0;
|
|
||||||
int length = 0;
|
|
||||||
quint8 crctmp = 0;
|
quint8 crctmp = 0;
|
||||||
uint i = 0;
|
uint i = 0;
|
||||||
int datasResultLength = 0;
|
//int datasResultLength = 0;
|
||||||
Response responseObject;
|
ResponseProperties * responseObject;
|
||||||
QByteArray type;
|
QByteArray type;
|
||||||
uint ln;
|
uint ln;
|
||||||
quint8 crc;
|
quint8 crc;
|
||||||
QByteArray datasResult;
|
QByteArray datas;
|
||||||
QByteArray quality;
|
QByteArray quality;
|
||||||
QByteArray payloadD;
|
QByteArray payloadD;
|
||||||
payloadD = unTranscode(payload);
|
payloadD = unTranscode(payload);
|
||||||
|
if (this->datas.count() >= 1)
|
||||||
|
{
|
||||||
|
cout << "inserting: " << this->datas.toHex(' ').toStdString() << endl;
|
||||||
|
payloadD.insert(0, this->datas);
|
||||||
|
}
|
||||||
length = payloadD.count();
|
length = payloadD.count();
|
||||||
|
|
||||||
while(length > 5)
|
while(length > 5)
|
||||||
{
|
{
|
||||||
crctmp = 0;
|
cout << "Interpreting datas =>" << payload.left(1).toHex(' ').toStdString() << endl;
|
||||||
|
cout << "PayloadD : " << payloadD.toHex(' ').toStdString() << endl;
|
||||||
|
while(payloadD.left(1).toHex() != "01")
|
||||||
|
{
|
||||||
|
payloadD.remove(0,1);
|
||||||
|
}
|
||||||
|
payloadD.remove(0,1);crctmp = 0;
|
||||||
//type de message
|
//type de message
|
||||||
type = payloadD.mid(0, 2);
|
type = payloadD.mid(0, 2);
|
||||||
ln = payloadD.mid(2, 2).toHex().toUInt(nullptr, 16);
|
ln = payloadD.mid(2, 2).toHex().toUInt(nullptr, 16);
|
||||||
|
if (ln + 6 > length)
|
||||||
|
{
|
||||||
|
cout << "storing payloadD: " << payloadD.toHex(' ').toStdString() << endl;
|
||||||
|
this->datas = payloadD;
|
||||||
|
break;
|
||||||
|
}else
|
||||||
|
{
|
||||||
if ((unsigned char)type[0] == 128 or (unsigned char)type[0] == 0 or (unsigned char)type[0] == 153)
|
if ((unsigned char)type[0] == 128 or (unsigned char)type[0] == 0 or (unsigned char)type[0] == 153)
|
||||||
{
|
{
|
||||||
crctmp = crctmp ^ payloadD.at(0) ^ payloadD.at(1);
|
crctmp = crctmp ^ payloadD.at(0) ^ payloadD.at(1);
|
||||||
@ -161,25 +215,27 @@ void ZigateBackend::interpretResult(QByteArray payload)
|
|||||||
//acquisition du CRC
|
//acquisition du CRC
|
||||||
crc = payloadD.at(4);
|
crc = payloadD.at(4);
|
||||||
//datasResult
|
//datasResult
|
||||||
datasResult = "";
|
datas = "";
|
||||||
for(i=0;i<ln;i++)
|
|
||||||
|
for(i=0;i<ln;i+=1)
|
||||||
{
|
{
|
||||||
datasResult += payloadD.at(5+i);
|
datas += payloadD.at(5+i);
|
||||||
crctmp ^= payloadD.at(5+i);
|
crctmp ^= payloadD.at(5+i);
|
||||||
}
|
}
|
||||||
quality = payloadD.right(1);
|
quality = payloadD.right(1);
|
||||||
|
|
||||||
datasResultLength = datasResult.count();
|
//datasResultLength = datasResult.count();
|
||||||
|
|
||||||
//verification du CRC
|
//verification du CRC
|
||||||
if (crc == crctmp)
|
if (crc == crctmp)
|
||||||
{
|
{
|
||||||
if (responseListIndex[type.toHex()]->manager != nullptr)
|
responseObject = responseListIndex[type.toHex()];
|
||||||
|
if (responseObject->manager != nullptr)
|
||||||
{
|
{
|
||||||
responseObject.code = type;
|
responseObject->code = type;
|
||||||
responseObject.datas = datasResult;
|
responseObject->datas = datas;
|
||||||
//responseObject.properties = responseListIndex[type]->properties
|
//responseObject.properties = responseListIndex[type]->properties
|
||||||
responseListIndex[type.toHex()]->manager(&responseObject);
|
responseObject->manager(responseObject);
|
||||||
|
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
@ -187,40 +243,53 @@ void ZigateBackend::interpretResult(QByteArray payload)
|
|||||||
}
|
}
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
tab=-2;
|
//tab = -2;
|
||||||
|
}
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
cout << "unknown type of datagram type: " << type.toHex().toStdString() << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
payloadD.remove(0,ln+6);
|
payloadD.remove(0,ln+6);
|
||||||
length = payloadD.count();
|
length = payloadD.count();
|
||||||
|
cout << "---------------" << endl;
|
||||||
}
|
}
|
||||||
//return tab;
|
//return tab;
|
||||||
}
|
}
|
||||||
|
|
||||||
void defaultManager(Response *responseObject)
|
|
||||||
|
void defaultManager(ResponseProperties *responseObject)
|
||||||
{
|
{
|
||||||
int nbyte;
|
int nbyte;
|
||||||
int isValue;
|
int isValue;
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
|
int i;
|
||||||
|
|
||||||
QByteArray datas = responseObject->datas;
|
QByteArray datas = responseObject->datas;
|
||||||
QByteArray result;
|
QByteArray result;
|
||||||
QByteArray code = responseObject->code.toHex();
|
//QByteArray code = responseObject->code.toHex();
|
||||||
|
|
||||||
cout << responseObject->code.toStdString() << endl;
|
//cout << responseObject->code.toHex().toStdString() << endl;
|
||||||
QMap <uint, QList<QVariant>>::iterator i = zigateBkd.responseListIndex[code]->properties.begin();
|
int n = responseObject->properties.count();
|
||||||
QList <QVariant> propertyList;
|
QMap<uint, QList<QVariant>> propertyList;
|
||||||
QMap<uint, QString> propertyDetail;
|
QMap<uint, QString> propertyDetail;
|
||||||
QMap<uint,QString> var;
|
QMap<uint,QString> var;
|
||||||
|
QList<QVariant> property;
|
||||||
|
QMap<uint,QString>::iterator j;
|
||||||
|
//int propertyListKey;
|
||||||
|
|
||||||
|
propertyList = responseObject->properties;
|
||||||
infoOutput(responseObject);
|
infoOutput(responseObject);
|
||||||
while (i != zigateBkd.responseListIndex[code]->properties.end())
|
for(i=0;i<n;i+=1)
|
||||||
|
//while (i != zigatePlugin.responseListIndex[code].properties.end())
|
||||||
{
|
{
|
||||||
propertyList = i.value();
|
property = propertyList.value(i);
|
||||||
propertyDetail = zigateBkd.responseListIndex[code]->propertyDetail.value(i.key());
|
cout << property.at(0).toString().toStdString() << ": ";
|
||||||
cout << propertyList.at(0).toString().toStdString() << ": ";
|
nbyte = property.at(1).toInt();
|
||||||
nbyte = propertyList.at(1).toInt();
|
isValue = property.at(2).toInt();
|
||||||
isValue = propertyList.at(2).toInt();
|
|
||||||
result = datas.mid(offset, nbyte);
|
result = datas.mid(offset, nbyte);
|
||||||
offset += nbyte;
|
offset += nbyte;
|
||||||
|
propertyDetail = responseObject->propertyDetail.value(i);
|
||||||
|
|
||||||
switch (isValue)
|
switch (isValue)
|
||||||
{
|
{
|
||||||
@ -229,10 +298,14 @@ void defaultManager(Response *responseObject)
|
|||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
cout << result.toHex().toStdString() << endl;
|
cout << result.toHex().toStdString() << endl;
|
||||||
//foreach (var, propertyDetail)
|
j = propertyDetail.begin();
|
||||||
//{
|
while(j != propertyDetail.end())
|
||||||
|
{
|
||||||
//}
|
if (result.toUInt(nullptr,16) & var[0].toUInt(nullptr,16))
|
||||||
|
{
|
||||||
|
cout << var[1].toStdString() << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (propertyDetail.contains(result.toUInt()))
|
if (propertyDetail.contains(result.toUInt()))
|
||||||
@ -244,7 +317,7 @@ void defaultManager(Response *responseObject)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
zigateBkd.responseListIndex[responseObject->code]->propertyManagerList[i.key()](result);
|
responseObject->propertyManagerList[i](result);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
cout << "Liste" << endl;
|
cout << "Liste" << endl;
|
||||||
@ -253,7 +326,6 @@ void defaultManager(Response *responseObject)
|
|||||||
cout << result.toStdString() << endl;
|
cout << result.toStdString() << endl;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,22 +333,26 @@ void macCapabilityManager(QByteArray mac)
|
|||||||
{
|
{
|
||||||
cout << "macCapabilityManger" << mac.toStdString() << endl;
|
cout << "macCapabilityManger" << mac.toStdString() << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* void deviceAnnounceManager()
|
/* void deviceAnnounceManager()
|
||||||
{
|
{
|
||||||
infoOutput(responseListIndex(""));
|
infoOutput(responseListIndex(""));
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void dataIndicationManager(Response * response)
|
void dataIndicationManager(ResponseProperties * response)
|
||||||
{
|
{
|
||||||
infoOutput(response);
|
infoOutput(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
void clustersListManager(Response * response)
|
|
||||||
|
void clustersListManager(ResponseProperties * response)
|
||||||
{
|
{
|
||||||
infoOutput(response);
|
infoOutput(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
void attributesListManager()
|
void attributesListManager()
|
||||||
{
|
{
|
||||||
@ -318,7 +394,8 @@ void networkJoinedFormedManager()
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void deviceListManager(Response * response)
|
|
||||||
|
void deviceListManager(ResponseProperties * response)
|
||||||
{
|
{
|
||||||
infoOutput(response);
|
infoOutput(response);
|
||||||
// **************************************************************
|
// **************************************************************
|
||||||
@ -331,6 +408,7 @@ void deviceListManager(Response * response)
|
|||||||
// **************************************************************
|
// **************************************************************
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
void bindResponseManager()
|
void bindResponseManager()
|
||||||
{
|
{
|
||||||
@ -343,27 +421,28 @@ void unbindResponseManager()
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void networkAddressManager(Response * response)
|
|
||||||
|
void networkAddressManager(ResponseProperties * response)
|
||||||
{
|
{
|
||||||
infoOutput(response);
|
infoOutput(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void iEEEAddressManager(ResponseProperties * response)
|
||||||
void iEEEAddressManager(Response * response)
|
|
||||||
{
|
{
|
||||||
infoOutput(response);
|
infoOutput(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
void nodeDescriptorManager(Response * response)
|
void nodeDescriptorManager(ResponseProperties * response)
|
||||||
{
|
{
|
||||||
infoOutput(response);
|
infoOutput(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
void simpleDescriptorManager(Response * response)
|
void simpleDescriptorManager(ResponseProperties * response)
|
||||||
{
|
{
|
||||||
infoOutput(response);
|
infoOutput(response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
void powerDescriptorManager()
|
void powerDescriptorManager()
|
||||||
{
|
{
|
312
zigateplugin/zigateplugin.h
Normal file
312
zigateplugin/zigateplugin.h
Normal file
@ -0,0 +1,312 @@
|
|||||||
|
#ifndef ZIGATEPLUGIN_H
|
||||||
|
#define ZIGATEPLUGIN_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QtPlugin>
|
||||||
|
#include <iostream>
|
||||||
|
#include "interface.h"
|
||||||
|
//#include "library.h"
|
||||||
|
#include "serial.h"
|
||||||
|
#include <QMap>
|
||||||
|
#include <QHash>
|
||||||
|
#include <QSerialPort>
|
||||||
|
#include "responseClasses.h"
|
||||||
|
#include <QtConcurrent/QtConcurrent>
|
||||||
|
#include <QObject>
|
||||||
|
#include <QtPlugin>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <QFutureWatcher>
|
||||||
|
|
||||||
|
#define DEVICE_ANNOUNCE "004D"
|
||||||
|
#define STATUS_RETURNED "8000"
|
||||||
|
#define LOG_MESSAGE "8001"
|
||||||
|
#define DATA_INDICATION "8002"
|
||||||
|
#define CLUSTERS_LIST "8003"
|
||||||
|
#define ATTRIBUTES_LIST "8004"
|
||||||
|
#define COMMANDS_LIST "8005"
|
||||||
|
#define STATUS "8006"
|
||||||
|
#define STATUS2 "8007"
|
||||||
|
#define VERSION_LIST "8010"
|
||||||
|
#define PERMIT_JOIN "8014"
|
||||||
|
#define NETWORK_JOINED_FORMED "8024"
|
||||||
|
#define BIND_RESPONSE "8030"
|
||||||
|
#define UNBIND_RESPONSE "8031"
|
||||||
|
#define NETWORK_ADDRESS "8040"
|
||||||
|
#define IEEE_ADDRESS "8041"
|
||||||
|
#define NODE_DESCRIPTOR "8042"
|
||||||
|
#define SIMPLE_DESCRIPTOR "8043"
|
||||||
|
#define POWER_DESCRIPTOR "8044"
|
||||||
|
#define ACTIVE_ENDPOINT "8045"
|
||||||
|
#define MATCH_DESCRIPTOR "8046"
|
||||||
|
#define USER_DESCRIPTOR_NOTIFY "802B"
|
||||||
|
#define USER_DESCRIPTOR "802C"
|
||||||
|
#define MANAGEMENT_LEAVE "8047"
|
||||||
|
#define LEAVE_INDICATION "8048"
|
||||||
|
#define MANAGEMENT_NETWORK_UPDATE "804A"
|
||||||
|
#define SYSTEM_SERVER_DISCOVERY "804B"
|
||||||
|
#define MANAGEMENT_LQI "804E"
|
||||||
|
#define ATTRIBUTE_DISCOVERY "8140"
|
||||||
|
#define HEARTBEAT "8008"
|
||||||
|
#define NETWORK_STATE "8009"
|
||||||
|
#define ACK_DATA "8011"
|
||||||
|
#define DATA_CONFIRM "8012"
|
||||||
|
#define DEVICES_LIST "8015"
|
||||||
|
#define TIME_SERVER "8017"
|
||||||
|
#define AUTHENTICATE_RESPONSE "8028"
|
||||||
|
#define PDM_EVENT "8035"
|
||||||
|
#define PERMIT_JOINING "8049"
|
||||||
|
#define PDM_CHILD_TABLE_SIZE "8052"
|
||||||
|
#define ADD_GROUP "8060"
|
||||||
|
#define VIEW_GROUP "8061"
|
||||||
|
#define GROUP_MEMBERSHIP "8062"
|
||||||
|
#define REMOVE_GROUP "8063"
|
||||||
|
#define LEVEL_UPDATE "8085"
|
||||||
|
#define ON_OFF "8095"
|
||||||
|
#define VIEW_SCENE "80A0"
|
||||||
|
#define ADD_SCENE "80A1"
|
||||||
|
#define REMOVE_SCENE "80A2"
|
||||||
|
#define REMOVE_ALL_SCENE "80A3"
|
||||||
|
#define STORE_SCENE "80A4"
|
||||||
|
#define SCENE_MEMBERSHIP "80A6"
|
||||||
|
#define SCENES_UPDATE "80A7"
|
||||||
|
#define READ_INDIVIDUAL_ATTRIBUTE "8100"
|
||||||
|
#define DEFAULT_RESPONSE "8101"
|
||||||
|
#define REPORT_INDIVIDUAL_ATTRIBUTE "8102"
|
||||||
|
#define WRITE_ATTRIBUTE "8110"
|
||||||
|
#define CONFIGURE_REPORTING "8120"
|
||||||
|
#define READ_REPORT_CONFIG "8122"
|
||||||
|
#define COMPLEX_DESCRIPTOR "8531"
|
||||||
|
#define ROUTER_DISCOVERY "8701"
|
||||||
|
#define APS_DATA_CONFIRM_FAIL "8702"
|
||||||
|
#define EXTENDED_ERROR "9999"
|
||||||
|
|
||||||
|
class ZigatePlugin : public QObject, public ZigbeeManagerInterface
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PLUGIN_METADATA(IID "org.zigbeeManagerInterface" FILE "zigateplugin.json")
|
||||||
|
Q_INTERFACES(ZigbeeManagerInterface)
|
||||||
|
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void interpretResult(QByteArray);
|
||||||
|
void readDatas();
|
||||||
|
|
||||||
|
signals:
|
||||||
|
|
||||||
|
public:
|
||||||
|
bool initPlugin() override;
|
||||||
|
QByteArray checksum(QByteArray msgType, QByteArray length, QByteArray datas);
|
||||||
|
QByteArray transcode(QByteArray datas);
|
||||||
|
QByteArray unTranscode(QByteArray datas);
|
||||||
|
void sendCmd(QByteArray cmd, QByteArray datas);
|
||||||
|
//int interpretResult(QByteArray datas);
|
||||||
|
//void getResponse();
|
||||||
|
bool resetCoordinator();
|
||||||
|
void interpretResult();
|
||||||
|
void infoOutput(ResponseProperties *);
|
||||||
|
void debug(QString text, int level);
|
||||||
|
void signal_handler(int signal);
|
||||||
|
|
||||||
|
// commands
|
||||||
|
void getVersion();
|
||||||
|
|
||||||
|
QByteArray datas; //datas not complete waiting reading new datas
|
||||||
|
QMap <int, QString> resultCodes;
|
||||||
|
QMap <QString, QList <QByteArray>> cmdList =
|
||||||
|
{
|
||||||
|
{"setHeartBeat", {"0008", "0000", ""}},
|
||||||
|
{"getNetWorkState", {"0009", "0000", ""}},
|
||||||
|
{"getVersion", {"0010", "0000", ""}},
|
||||||
|
{"reset", {"0011", "0000", ""}},
|
||||||
|
{"erasePersistentData", {"0012", "0000", ""}},
|
||||||
|
{"factoryReset", {"0013", "0000", ""}},
|
||||||
|
{"permitJoin", {"0014", "0000", ""}},
|
||||||
|
{"setExpendedPANID", {"0020", "0008", ""}},
|
||||||
|
{"setChannelMask", {"0021", "0004", ""}},
|
||||||
|
{"setSecurityStateandKey", {"0022", "0000", ""}},
|
||||||
|
{"setDeviceType", {"0023", "0001", ""}},
|
||||||
|
{"startNetwork", {"0024", "0000", ""}},
|
||||||
|
{"startNetworkScan", {"0025", "0000", ""}},
|
||||||
|
{"removeDevice", {"0026", "0010", ""}},
|
||||||
|
{"enablePermissionsControlledJoins", {"0027", "0001", ""}},
|
||||||
|
{"authenticateDevice", {"0028", "0018", ""}},
|
||||||
|
{"outOfBandCommissioningDataRequest", {"0029", "0018", ""}},
|
||||||
|
{"userDescriptorSet", {"002B", "0000", ""}},
|
||||||
|
{"userDescritporRequest", {"002C", "0000", ""}},
|
||||||
|
{"bind", {"0030", "", ""}},
|
||||||
|
{"unbind", {"0031", "", ""}},
|
||||||
|
{"complexDescriptorRequest", {"0034", "0004", ""}},
|
||||||
|
{"networkAddressRequest", {"0040", "0012", ""}},
|
||||||
|
{"ieeeAddressRequest", {"0041", "0006", ""}},
|
||||||
|
{"nodeDescriptorRequest", {"0042", "0002", ""}},
|
||||||
|
{"simpleDescriptorRequest", {"0043", "0003", ""}},
|
||||||
|
{"powerDescriptorRequest", {"0044", "0002", ""}},
|
||||||
|
{"activeEndpointRequest", {"0045", "0002", ""}},
|
||||||
|
{"matchDescriptorRequest", {"0046", "", ""}},
|
||||||
|
{"managementLeaveRequest", {"0047", "001C", ""}},
|
||||||
|
{"permitJoiningRequest", {"0049", "0004", ""}},
|
||||||
|
{"managementNetworkUpdateRequest", {"004A", "000B", ""}},
|
||||||
|
{"systemServerDiscoveryRequest", {"004B", "0004", ""}},
|
||||||
|
{"managementLQIRequest", {"004E", "0003", ""}},
|
||||||
|
{"addGroup", {"0060", "0007", ""}},
|
||||||
|
{"viewGroup", {"0061", "0007", ""}},
|
||||||
|
{"getGroupMembership", {"0062", "", ""}},
|
||||||
|
{"removeGroup", {"0063", "0007", ""}},
|
||||||
|
{"removeAllGroups", {"0064", "0005", ""}},
|
||||||
|
{"addGroupIfIdentify", {"0065", "0007", ""}},
|
||||||
|
{"identifySend", {"0070", "0007", ""}},
|
||||||
|
{"identifyQuery", {"0071", "0005", ""}},
|
||||||
|
{"moveToLevel", {"0080", "0008", ""}},
|
||||||
|
{"moveToLevelWithWithoutOnOff", {"0081", "0009", ""}},
|
||||||
|
{"moveStep", {"0082", "000A", "0000"}},
|
||||||
|
{"moveStopMove", {"0083", "0005", ""}},
|
||||||
|
{"moveStopWithOnOff", {"0084", "0005", ""}},
|
||||||
|
{"onOffWithNoEffects", {"0092", "0006", ""}},
|
||||||
|
{"onOffTimedSend", {"0093", "000A", ""}},
|
||||||
|
{"onOffWithEffectsSend", {"0094", "0007", ""}},
|
||||||
|
{"viewScene", {"00A0", "0008", ""}},
|
||||||
|
{"addScene", {"00A1", "000D", ""}},
|
||||||
|
{"removeScene", {"00A2", "0008", ""}},
|
||||||
|
{"removeAllScenes", {"00A3", "0007", ""}},
|
||||||
|
{"storeScene", {"00A4", "0008", ""}},
|
||||||
|
{"recallScene", {"00A5", "0008", ""}},
|
||||||
|
{"sceneMembershipRequest", {"00A6", "0007", ""}},
|
||||||
|
{"addEnhancedScene", {"00A7", "", ""}},
|
||||||
|
{"viewEnhancedHostToNodeScene", {"00A8", "0008", ""}},
|
||||||
|
{"copyScene", {"00A9", "000C", ""}},
|
||||||
|
{"moveToHue", {"00B0", "0009", ""}},
|
||||||
|
{"moveHue", {"00B1", "0007", ""}},
|
||||||
|
{"stepHue", {"00B2", "0008", ""}},
|
||||||
|
{"moveToSaturation", {"00B3", "0008", ""}},
|
||||||
|
{"moveSaturation", {"00B4", "0006", ""}},
|
||||||
|
{"stepSaturation", {"00B5", "0008", ""}},
|
||||||
|
{"moveToHueAndSaturation", {"00B6", "0008", ""}},
|
||||||
|
{"moveToColour", {"00B7", "000B", ""}},
|
||||||
|
{"moveColour", {"00B8", "0009", ""}},
|
||||||
|
{"stepColour", {"00B9", "000B", ""}},
|
||||||
|
{"enhancedMoveToHue", {"00BA", "000A", ""}},
|
||||||
|
{"enhancedMoveHue", {"00BB", "0007", ""}},
|
||||||
|
{"enhancedStepHue", {"00BC", "0008", ""}},
|
||||||
|
{"enhancedMoveToHueAndSaturation", {"00BD", "000E", ""}},
|
||||||
|
{"colourLoopSet", {"00BE", "000D", ""}},
|
||||||
|
{"stopMoveStep", {"00BF", "0005", ""}},
|
||||||
|
{"moveToColourTemperature", {"00C0", "0009", ""}},
|
||||||
|
{"moveColourTemperature", {"00C1", "000D", ""}},
|
||||||
|
{"stepColourTemperature", {"00C2", "000E", ""}},
|
||||||
|
{"Initiate Touchlink", {"00D0", "0000", ""}},
|
||||||
|
{"touchLinkFactoryResetTarget", {"00D2", "0000", ""}},
|
||||||
|
{"identifyTriggerEffect", {"00E0", "0007", ""}},
|
||||||
|
{"lockUnlockDoor", {"00F0", "0006", ""}},
|
||||||
|
{"readAttributeRequest", {"0100", "", ""}},
|
||||||
|
{"writeAttributeRequest", {"0110", "000", ""}},
|
||||||
|
{"configureReportingRequest", {"0120", "", ""}},
|
||||||
|
{"attributeDiscoveryRequest", {"0140", "000E", ""}},
|
||||||
|
{"iASZoneEnrollResponse", {"0400", "0007", ""}},
|
||||||
|
{"rawApsDataRequest", {"0530", "000D", ""}}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* QList <QString> responseListCode
|
||||||
|
{
|
||||||
|
"004D",
|
||||||
|
"8000",
|
||||||
|
"8001",
|
||||||
|
"8002",
|
||||||
|
"8003",
|
||||||
|
"8004",
|
||||||
|
"8005",
|
||||||
|
"8006",
|
||||||
|
"8007",
|
||||||
|
"8010",
|
||||||
|
"8014",
|
||||||
|
"8024",
|
||||||
|
"8030",
|
||||||
|
"8031",
|
||||||
|
"8040",
|
||||||
|
"8041",
|
||||||
|
"8042",
|
||||||
|
"8043",
|
||||||
|
"8044",
|
||||||
|
"8045",
|
||||||
|
"8046",
|
||||||
|
"802B",
|
||||||
|
"802C",
|
||||||
|
"8047",
|
||||||
|
"8048",
|
||||||
|
"804A",
|
||||||
|
"804B",
|
||||||
|
"804E",
|
||||||
|
"8140",
|
||||||
|
"8008",
|
||||||
|
"8009",
|
||||||
|
"8011",
|
||||||
|
"8012",
|
||||||
|
"8015",
|
||||||
|
"8017",
|
||||||
|
"8028",
|
||||||
|
"8035",
|
||||||
|
"8049",
|
||||||
|
"8052",
|
||||||
|
"8060",
|
||||||
|
"8061",
|
||||||
|
"8062",
|
||||||
|
"8063",
|
||||||
|
"8085",
|
||||||
|
"8095",
|
||||||
|
"80A0",
|
||||||
|
"80A1",
|
||||||
|
"80A2",
|
||||||
|
"80A3",
|
||||||
|
"80A4",
|
||||||
|
"80A6",
|
||||||
|
"80A7",
|
||||||
|
"8100",
|
||||||
|
"8101",
|
||||||
|
"8102",
|
||||||
|
"8110",
|
||||||
|
"8120",
|
||||||
|
"8122",
|
||||||
|
"8531",
|
||||||
|
"8701",
|
||||||
|
"8702",
|
||||||
|
"9999"
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
//ZigbeeMgr serial;
|
||||||
|
QMap <QByteArray, QString> clusters
|
||||||
|
{
|
||||||
|
{"0000", " (General: Basic)"},
|
||||||
|
{"0001", " (General: Power Config)"},
|
||||||
|
{"0002", " (General: Temperature Config)"},
|
||||||
|
{"0003", " (General: Identify)"},
|
||||||
|
{"0004", " (General: Groups)"},
|
||||||
|
{"0005", " (General: Scenes)"},
|
||||||
|
{"0006", " (General: On/Off)"},
|
||||||
|
{"0007", " (General: On/Off Config)"},
|
||||||
|
{"0008", " (General: Level Control)"},
|
||||||
|
{"0009", " (General: Alarms)"},
|
||||||
|
{"000A", " (General: Time)"},
|
||||||
|
{"000F", " (General: Binary Input Basic)"},
|
||||||
|
{"0020", " (General: Poll Control)"},
|
||||||
|
{"0019", " (General: OTA)"},
|
||||||
|
{"0101", " (General: Door Lock"},
|
||||||
|
{"0201", " (HVAC: Thermostat)"},
|
||||||
|
{"0202", " (HVAC: Fan Control)"},
|
||||||
|
{"0300", " (Lighting: Color Control)"},
|
||||||
|
{"0400", " (Measurement: Illuminance)"},
|
||||||
|
{"0402", " (Measurement: Temperature)"},
|
||||||
|
{"0405", " (Measurement: Humidity)"},
|
||||||
|
{"0406", " (Measurement: Occupancy Sensing)"},
|
||||||
|
{"0500", " (Security & Safety: IAS Zone)"},
|
||||||
|
{"0702", " (Smart Energy: Metering)"},
|
||||||
|
{"0B05", " (Misc: Diagnostics)"},
|
||||||
|
{"1000", " (ZLL: Commissioning)"},
|
||||||
|
{"FF01", " Xiaomi private"},
|
||||||
|
{"FF02", " Xiaomi private"},
|
||||||
|
{"1234", " Xiaomi private"}
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
1
zigateplugin/zigateplugin.json
Normal file
1
zigateplugin/zigateplugin.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{}
|
37
zigateplugin/zigateplugin.pro
Normal file
37
zigateplugin/zigateplugin.pro
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
TEMPLATE = lib
|
||||||
|
CONFIG += plugin
|
||||||
|
#QT += widgets
|
||||||
|
|
||||||
|
QT += core
|
||||||
|
QT -= gui
|
||||||
|
QT += serialport
|
||||||
|
QT += concurrent
|
||||||
|
|
||||||
|
INCLUDEPATH += ../zigbeemanager
|
||||||
|
|
||||||
|
HEADERS = zigateplugin.h \
|
||||||
|
interface.h \
|
||||||
|
version.h \
|
||||||
|
responseClasses.h \
|
||||||
|
# library.h \
|
||||||
|
serial.h \
|
||||||
|
../../zigbeemanager/zigbeeManagerinterface.h
|
||||||
|
|
||||||
|
|
||||||
|
SOURCES = zigateplugin.cpp \
|
||||||
|
zigatecmd.cpp \
|
||||||
|
zigateInit.cpp \
|
||||||
|
# library.cpp \
|
||||||
|
serial.cpp \
|
||||||
|
|
||||||
|
|
||||||
|
TARGET = $$qtLibraryTarget(zigateplugin)
|
||||||
|
DESTDIR = ../zigbeemanager/plugins
|
||||||
|
|
||||||
|
EXAMPLE_FILES = zigateplugin.json
|
||||||
|
|
||||||
|
# install
|
||||||
|
target.path = ../zigbeemanager/plugins
|
||||||
|
INSTALLS += target
|
||||||
|
|
||||||
|
CONFIG += install_ok # Do not cargo-cult this!
|
424
zigateplugin/zigateplugin.pro.user
Normal file
424
zigateplugin/zigateplugin.pro.user
Normal file
@ -0,0 +1,424 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE QtCreatorProject>
|
||||||
|
<!-- Written by QtCreator 9.0.1, 2023-05-13T14:15:25. -->
|
||||||
|
<qtcreator>
|
||||||
|
<data>
|
||||||
|
<variable>EnvironmentId</variable>
|
||||||
|
<value type="QByteArray">{a3117c94-e673-4dca-aa4c-050bbea034fe}</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||||
|
<value type="qlonglong">0</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||||
|
<value type="QString" key="language">Cpp</value>
|
||||||
|
<valuemap type="QVariantMap" key="value">
|
||||||
|
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||||
|
</valuemap>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||||
|
<value type="QString" key="language">QmlJS</value>
|
||||||
|
<valuemap type="QVariantMap" key="value">
|
||||||
|
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||||
|
</valuemap>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||||
|
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||||
|
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">1</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||||
|
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||||
|
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||||
|
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.inEntireDocument">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
|
||||||
|
<value type="bool" key="AutoTest.Framework.Boost">true</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.CTest">false</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.Catch">true</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.GTest">true</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
|
||||||
|
<value type="int" key="AutoTest.RunAfterBuild">0</value>
|
||||||
|
<value type="bool" key="AutoTest.UseGlobal">true</value>
|
||||||
|
<valuemap type="QVariantMap" key="ClangTools">
|
||||||
|
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
|
||||||
|
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
|
||||||
|
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
|
||||||
|
<value type="int" key="ClangTools.ParallelJobs">2</value>
|
||||||
|
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
|
||||||
|
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
|
||||||
|
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
|
||||||
|
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
|
||||||
|
</valuemap>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="QString" key="DeviceType">Desktop</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 5.15.7 (qt5)</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 5.15.7 (qt5)</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{a8a6d767-5e05-45c7-b70b-532f99112b6a}</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||||
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develope/zigateplugin/plugin/../build-plugin-Qt_5_15_7_qt5-Debug</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develope/zigateplugin/build-plugin-Qt_5_15_7_qt5-Debug</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||||
|
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||||
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develope/zigateplugin/plugin/../build-plugin-Qt_5_15_7_qt5-Release</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develope/zigateplugin/build-plugin-Qt_5_15_7_qt5-Release</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||||
|
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||||
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||||
|
<value type="int" key="QtQuickCompiler">0</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||||
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develope/zigateplugin/plugin/../build-plugin-Qt_5_15_7_qt5-Profile</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develope/zigateplugin/build-plugin-Qt_5_15_7_qt5-Profile</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||||
|
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||||
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||||
|
<value type="int" key="QtQuickCompiler">0</value>
|
||||||
|
<value type="int" key="SeparateDebugInfo">0</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||||
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||||
|
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||||
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||||
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey"></value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.Target.1</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="QString" key="DeviceType">Desktop</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{893f9ca6-0efa-4c08-a4a6-5a818f60a8a0}</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||||
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develope/zigateplugin/plugin/../build-plugin-Desktop-Debug</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develope/zigateplugin/build-plugin-Desktop-Debug</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||||
|
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||||
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develope/zigateplugin/plugin/../build-plugin-Desktop-Release</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develope/zigateplugin/build-plugin-Desktop-Release</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||||
|
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||||
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||||
|
<value type="int" key="QtQuickCompiler">0</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||||
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develope/zigateplugin/plugin/../build-plugin-Desktop-Profile</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develope/zigateplugin/build-plugin-Desktop-Profile</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||||
|
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||||
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||||
|
<value type="int" key="QtQuickCompiler">0</value>
|
||||||
|
<value type="int" key="SeparateDebugInfo">0</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||||
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||||
|
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||||
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||||
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey"></value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||||
|
<value type="qlonglong">2</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||||
|
<value type="int">22</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>Version</variable>
|
||||||
|
<value type="int">22</value>
|
||||||
|
</data>
|
||||||
|
</qtcreator>
|
@ -1,35 +1,5 @@
|
|||||||
QT += core
|
#! [0]
|
||||||
QT += serialport
|
TEMPLATE = subdirs
|
||||||
QT += widgets
|
SUBDIRS = zigbeemanager \
|
||||||
QT += KConfigCore KConfigGui
|
zigateplugin
|
||||||
QT += KCoreAddons
|
#! [0]
|
||||||
QT += concurrent
|
|
||||||
|
|
||||||
CONFIG += c++17 console
|
|
||||||
CONFIG -= app_bundle
|
|
||||||
|
|
||||||
# You can make your code fail to compile if it uses deprecated APIs.
|
|
||||||
# In order to do so, uncomment the following line.
|
|
||||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
|
||||||
|
|
||||||
SOURCES += \
|
|
||||||
library.cpp \
|
|
||||||
main.cpp \
|
|
||||||
serial.inc.cpp \
|
|
||||||
zigateBackend.cpp \
|
|
||||||
zigateInit.cpp \
|
|
||||||
zigatecmd.cpp
|
|
||||||
|
|
||||||
# Default rules for deployment.
|
|
||||||
qnx: target.path = /tmp/$${TARGET}/bin
|
|
||||||
else: unix:!android: target.path = /usr/bin
|
|
||||||
!isEmpty(target.path): INSTALLS += target
|
|
||||||
|
|
||||||
HEADERS += \
|
|
||||||
library.h \
|
|
||||||
main.h \
|
|
||||||
zigateBackend.h \
|
|
||||||
responseClasses.h \
|
|
||||||
serial.inc.h \
|
|
||||||
version.h
|
|
||||||
|
|
||||||
|
21
zigbeemanager/interface.h
Normal file
21
zigbeemanager/interface.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
#ifndef INTERFACE_H
|
||||||
|
#define INTERFACE_H
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
|
||||||
|
class ZigbeeManagerInterface
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual ~ZigbeeManagerInterface() = default;
|
||||||
|
virtual bool initPlugin() = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
#define ZigbeeManagerInterface_iid "org.zigbeeManagerInterface"
|
||||||
|
|
||||||
|
Q_DECLARE_INTERFACE(ZigbeeManagerInterface, ZigbeeManagerInterface_iid)
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
#endif
|
13
zigbeemanager/main.cpp
Normal file
13
zigbeemanager/main.cpp
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
#include <QCoreApplication>
|
||||||
|
|
||||||
|
#include "zigbeemanager.h"
|
||||||
|
#include "interface.h"
|
||||||
|
|
||||||
|
int main(int argv, char *args[])
|
||||||
|
{
|
||||||
|
QCoreApplication app(argv, args);
|
||||||
|
|
||||||
|
ZigbeeManager zigbeeManager;
|
||||||
|
|
||||||
|
return app.exec();
|
||||||
|
}
|
45
zigbeemanager/zigbeemanager.cpp
Normal file
45
zigbeemanager/zigbeemanager.cpp
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#include "zigbeemanager.h"
|
||||||
|
|
||||||
|
#include <QCoreApplication>
|
||||||
|
#include <QDir>
|
||||||
|
#include <QPluginLoader>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
ZigbeeManager::ZigbeeManager()
|
||||||
|
{
|
||||||
|
if (!loadPlugin()) {
|
||||||
|
cout << "Error" << "Could not load the plugin" << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ZigbeeManager::loadPlugin()
|
||||||
|
{
|
||||||
|
uint i = 0;
|
||||||
|
|
||||||
|
QDir pluginsDir(QCoreApplication::applicationDirPath());
|
||||||
|
pluginsDir.cd("plugins");
|
||||||
|
const QStringList entries = pluginsDir.entryList(QDir::Files);
|
||||||
|
|
||||||
|
for (const QString &fileName : entries)
|
||||||
|
{
|
||||||
|
QPluginLoader pluginLoader(pluginsDir.absoluteFilePath(fileName));
|
||||||
|
QObject *plugin = pluginLoader.instance();
|
||||||
|
if (plugin)
|
||||||
|
{
|
||||||
|
zigbeeManagerInterface.insert(i, qobject_cast<ZigbeeManagerInterface *>(plugin));
|
||||||
|
if (zigbeeManagerInterface[i])
|
||||||
|
{
|
||||||
|
zigbeeManagerInterface[i]->initPlugin();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
pluginLoader.unload();
|
||||||
|
}else
|
||||||
|
{
|
||||||
|
cout << pluginLoader.errorString().toStdString() << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
28
zigbeemanager/zigbeemanager.h
Normal file
28
zigbeemanager/zigbeemanager.h
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#ifndef ZIGBEEMANAGER_H
|
||||||
|
#define ZIGBEEMANAGER_H
|
||||||
|
|
||||||
|
#include "interface.h"
|
||||||
|
#include <QObject>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
class QString;
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
class ZigbeeManager : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
ZigbeeManager();
|
||||||
|
|
||||||
|
/*private slots:
|
||||||
|
void sendEcho();
|
||||||
|
*/
|
||||||
|
private:
|
||||||
|
bool loadPlugin();
|
||||||
|
|
||||||
|
QList<ZigbeeManagerInterface *> zigbeeManagerInterface;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
21
zigbeemanager/zigbeemanager.pro
Normal file
21
zigbeemanager/zigbeemanager.pro
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
QT += core
|
||||||
|
|
||||||
|
HEADERS = zigbeemanager.h \
|
||||||
|
interface.h
|
||||||
|
SOURCES = zigbeemanager.cpp \
|
||||||
|
main.cpp
|
||||||
|
|
||||||
|
TARGET = zigbeemanager
|
||||||
|
QMAKE_PROJECT_NAME = zigbeemanager
|
||||||
|
win32 {
|
||||||
|
CONFIG(debug, release|debug):DESTDIR = ../debug/
|
||||||
|
CONFIG(release, release|debug):DESTDIR = ../release/
|
||||||
|
} else {
|
||||||
|
DESTDIR = ./
|
||||||
|
}
|
||||||
|
|
||||||
|
# install
|
||||||
|
target.path = ./
|
||||||
|
INSTALLS += target
|
||||||
|
|
||||||
|
CONFIG += install_ok # Do not cargo-cult this!
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE QtCreatorProject>
|
<!DOCTYPE QtCreatorProject>
|
||||||
<!-- Written by QtCreator 9.0.1, 2023-04-27T18:58:28. -->
|
<!-- Written by QtCreator 9.0.1, 2023-05-13T14:15:20. -->
|
||||||
<qtcreator>
|
<qtcreator>
|
||||||
<data>
|
<data>
|
||||||
<variable>EnvironmentId</variable>
|
<variable>EnvironmentId</variable>
|
||||||
@ -81,25 +81,22 @@
|
|||||||
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
|
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
|
||||||
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
|
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="CppEditor.QuickFix">
|
|
||||||
<value type="bool" key="UseGlobalSettings">true</value>
|
|
||||||
</valuemap>
|
|
||||||
</valuemap>
|
</valuemap>
|
||||||
</data>
|
</data>
|
||||||
<data>
|
<data>
|
||||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||||
<valuemap type="QVariantMap">
|
<valuemap type="QVariantMap">
|
||||||
<value type="QString" key="DeviceType">Desktop</value>
|
<value type="QString" key="DeviceType">Desktop</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 5.15.7 (qt5)</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 5.15.7 (qt5)</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{a8a6d767-5e05-45c7-b70b-532f99112b6a}</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{893f9ca6-0efa-4c08-a4a6-5a818f60a8a0}</value>
|
||||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||||
<value type="int" key="EnableQmlDebugging">0</value>
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develop/zigbeemanager/../build-zigbeemanager-Qt_5_15_7_qt5-Debug</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develope/echoplugin/echowindow/../build-echowindow-Desktop-Debug</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develop/build-zigbeemanager-Qt_5_15_7_qt5-Debug</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develope/echoplugin/build-echowindow-Desktop-Debug</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
@ -137,8 +134,8 @@
|
|||||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develop/zigbeemanager/../build-zigbeemanager-Qt_5_15_7_qt5-Release</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develope/echoplugin/echowindow/../build-echowindow-Desktop-Release</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develop/build-zigbeemanager-Qt_5_15_7_qt5-Release</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develope/echoplugin/build-echowindow-Desktop-Release</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
@ -178,8 +175,8 @@
|
|||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||||
<value type="int" key="EnableQmlDebugging">0</value>
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develop/zigbeemanager/../build-zigbeemanager-Qt_5_15_7_qt5-Profile</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develope/echoplugin/echowindow/../build-echowindow-Desktop-Profile</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develop/build-zigbeemanager-Qt_5_15_7_qt5-Profile</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develope/echoplugin/build-echowindow-Desktop-Profile</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
@ -239,15 +236,14 @@
|
|||||||
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">zigbeemanager</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/daniel/develope/echoplugin/echowindow/echowindow.pro</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/daniel/develop/zigbeemanager/zigbeemanager.pro</value>
|
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/daniel/develope/echoplugin/echowindow/echowindow.pro</value>
|
||||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/daniel/develop/zigbeemanager/zigbeemanager.pro</value>
|
|
||||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||||
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/daniel/develop/build-zigbeemanager-Qt_5_15_7_qt5-Debug</value>
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/daniel/develope/echoplugin/build-echowindow-Desktop-Debug/../</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
@ -256,16 +252,16 @@
|
|||||||
<variable>ProjectExplorer.Project.Target.1</variable>
|
<variable>ProjectExplorer.Project.Target.1</variable>
|
||||||
<valuemap type="QVariantMap">
|
<valuemap type="QVariantMap">
|
||||||
<value type="QString" key="DeviceType">Desktop</value>
|
<value type="QString" key="DeviceType">Desktop</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 5.15.7 (qt5)</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 5.15.7 (qt5)</value>
|
||||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{893f9ca6-0efa-4c08-a4a6-5a818f60a8a0}</value>
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{a8a6d767-5e05-45c7-b70b-532f99112b6a}</value>
|
||||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||||
<value type="int" key="EnableQmlDebugging">0</value>
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develop/zigbeemanager/../build-zigbeemanager-Desktop-Debug</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develope/echoplugin/echowindow/../build-echowindow-Qt_5_15_7_qt5-Debug</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develop/build-zigbeemanager-Desktop-Debug</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develope/echoplugin/build-echowindow-Qt_5_15_7_qt5-Debug</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
@ -303,8 +299,8 @@
|
|||||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develop/zigbeemanager/../build-zigbeemanager-Desktop-Release</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develope/echoplugin/echowindow/../build-echowindow-Qt_5_15_7_qt5-Release</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develop/build-zigbeemanager-Desktop-Release</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develope/echoplugin/build-echowindow-Qt_5_15_7_qt5-Release</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
@ -344,8 +340,8 @@
|
|||||||
</valuemap>
|
</valuemap>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||||
<value type="int" key="EnableQmlDebugging">0</value>
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develop/zigbeemanager/../build-zigbeemanager-Desktop-Profile</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/daniel/develope/echoplugin/echowindow/../build-echowindow-Qt_5_15_7_qt5-Profile</value>
|
||||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develop/build-zigbeemanager-Desktop-Profile</value>
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develope/echoplugin/build-echowindow-Qt_5_15_7_qt5-Profile</value>
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
@ -1,6 +1,6 @@
|
|||||||
Name: zigbeemanager
|
Name: zigbeemanager
|
||||||
Summary: Zigbee gateway manager
|
Summary: Zigbee gateway manager
|
||||||
Version: 0.1
|
Version: 0.1.3
|
||||||
Release: %mkrel 1
|
Release: %mkrel 1
|
||||||
License: GPLv3
|
License: GPLv3
|
||||||
Group: Networking/Other
|
Group: Networking/Other
|
||||||
@ -15,7 +15,7 @@ BuildRequires: pkgconfig(Qt5Core)
|
|||||||
BuildRequires: pkgconfig(Qt5SerialPort)
|
BuildRequires: pkgconfig(Qt5SerialPort)
|
||||||
BuildRequires: pkgconfig(Qt5Widgets)
|
BuildRequires: pkgconfig(Qt5Widgets)
|
||||||
BuildRequires: pkgconfig(Qt5Xml)
|
BuildRequires: pkgconfig(Qt5Xml)
|
||||||
#BuildRequires: pkgconfig(libmagic)
|
BuildRequires: pkgconfig(Qt5Concurrent)
|
||||||
#BuildRequires: cmake(KF5Completion)
|
#BuildRequires: cmake(KF5Completion)
|
||||||
BuildRequires: cmake(KF5CoreAddons)
|
BuildRequires: cmake(KF5CoreAddons)
|
||||||
#BuildRequires: cmake(KF5I18n)
|
#BuildRequires: cmake(KF5I18n)
|
Reference in New Issue
Block a user