1
0

serial fonctional

This commit is contained in:
Daniel Tartavel 2023-04-24 21:57:35 +02:00
parent 8030843ed3
commit be86c44846
10 changed files with 671 additions and 1041 deletions

Binary file not shown.

115
docs/properties.txt Normal file
View File

@ -0,0 +1,115 @@
MAC capability
Packet Type
Optional additional error information
Log level
Power source
Battery
AC Power
MIC
Event status
Server mask
Descriptor capability
Mac flags
startStatus
restartStatus
// *****************************************************************************
* 0 - STARTUP
* 2 - NFN_START
* 6 - RUNNING
* The node is not yet provisioned.
// ******************************************************************************
networkJoinedStatus
// ****************************************************************************
// Status:
// 0 = Joined existing network
// 1 = Formed new network
// 128 244 = Failed (ZigBee event codes)
// *******************************************************************************
permitJoinStatus
// ****************************************************************************
// 0 - Off
// 1 - On
// *******************************************************************************
Bit fields (8042, 8043, 8044)
/*
// ****************************************************************************
// Bitfields:
// Logical type (bits 0-2
// 0 - Coordinator
// 1 - Router
// 2 - End Device)
// Complex descriptor available (bit 3)
// User descriptor available (bit 4)
// Reserved (bit 5-7)
// APS flags (bit 8-10 currently 0)
// Frequency band(11-15 set to 3 (2.4Ghz))
// Server mask bits:
// 0 - Primary trust center
// 1 - Back up trust center
// 2 - Primary binding cache
// 3 - Backup binding cache
// 4 - Primary discovery cache
// 5 - Backup discovery cache
// 6 - Network manager
// 7 to15 - Reserved
// MAC capability
// Bit 0 - Alternate PAN Coordinator
// Bit 1 - Device Type
// Bit 2 - Power source
// Bit 3 - Receiver On when Idle
// Bit 4-5 - Reserved
// Bit 6 - Security capability
// Bit 7 - Allocate Address
// Descriptor capability:
// 0 - extended Active endpoint list available
// 1 - Extended simple descriptor list available
// 2 to 7 - Reserved
// *******************************************************************************
8043
// ****************************************************************************
// Bit fields:
// Device version: 4 bits (bits 0-4)
// Reserved: 4 bits (bits4-7)
// *******************************************************************************
8044
// ****************************************************************************
// Bit fields
// 0 to 3: current power mode
// 4 to 7: available power source
// 8 to 11: current power source
// 12 to 15: current power source level
// *******************************************************************************
804E
// ****************************************************************************
// Note: If Neighbour Table list count is 0, there are no elements in the list.
// NWK Address : uint16_t
// Extended PAN ID : uint64_t
// IEEE Address : uint64_t
// Depth : uint_t
// Link Quality : uint8_t
// Bit map of attributes Described below: uint8_t
// bit 0-1 Device Type
// (0-Coordinator 1-Router 2-End Device)
// bit 2-3 Permit Join status
// (1- On 0-Off)
// bit 4-5 Relationship
// (0-Parent 1-Child 2-Sibling)
// bit 6-7 Rx On When Idle status
// (1-On 0-Off)
// *******************************************************************************
8140
// ****************************************************************************
// Complete:
// 0 more attributes to follow
// 1 this was the last attribute
//*******************************************************************************

View File

@ -1,6 +1,8 @@
#ifndef LIBRARY_H
#define LIBRARY_H
#include <QString>
#define DEBUG 1
#define INFO 2
#define WARNING 3

View File

@ -5,6 +5,18 @@
#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
{
@ -14,16 +26,13 @@ class ResponseProperties
QString description;
QMap <uint, QList<QVariant>> properties;
QMap <uint, QMap<uint,QString>> propertyDetail;
QFunctionPointer manager;
QHash <uint, void (*)(QByteArray)> propertyManagerList;
void (*manager)(Response *);
};
class Response
{
public:
QByteArray code;
QByteArray datas;
QString description;
QFunctionPointer manager;
};
void infoOutput(Response *);
void defaultManager(Response *);
//void (*manager)(Response *);
void macCapabilityManager(QByteArray);
#endif // RESPONSECLASSES_H

View File

@ -1,5 +1,4 @@
#include "main.h"
#include "responseClasses.h"
#include "zigateBackend.h"
#include <unistd.h>
using namespace std;
@ -35,6 +34,8 @@ ZigateBackend::~ZigateBackend()
{
}
QByteArray ZigateBackend::checksum(QByteArray msgType, QByteArray length, QByteArray datas)
{
quint16 temp = 0;
@ -150,14 +151,14 @@ int ZigateBackend::interpretResult(QByteArray payload)
quint8 crctmp = 0;
uint i = 0;
int datasResultLength = 0;
ResponseProperties * responseObject = nullptr;
Response responseObject;
QByteArray type;
uint ln;
quint8 crc;
QByteArray datasResult;
QByteArray quality;
QByteArray payloadD;
uint typeA;
payloadD = unTranscode(payload);
length = payloadD.count();
@ -166,8 +167,10 @@ int ZigateBackend::interpretResult(QByteArray payload)
crctmp = 0;
//type de message
type = payloadD.mid(0, 2);
crctmp = crctmp ^ payloadD.at(0) ^ payloadD.at(1);
ln = payloadD.mid(2, 2).toHex().toUInt(nullptr, 16);
if (type[0] == 0x80 or type[0] == 0X00 or type[0] == 0X99)
{
crctmp = crctmp ^ payloadD.at(0) ^ payloadD.at(1);
crctmp = crctmp ^ payloadD.at(2) ^ payloadD.at(3);
//acquisition du CRC
crc = payloadD.at(4);
@ -185,20 +188,23 @@ int ZigateBackend::interpretResult(QByteArray payload)
//verification du CRC
if (crc == crctmp)
{
//responseObject = responseListIndex[type.toHex()];
if (responseObject != nullptr)
if (responseListIndex[type.toHex()]->manager != nullptr)
{
responseObject->datas = datasResult;
responseObject->manager();
responseObject.code = type;
responseObject.datas = datasResult;
// responseObject.properties = responseListIndex[type]->properties
responseListIndex[type.toHex()]->manager(&responseObject);
}else
{
cout << "unknown command" << endl;
cout << "unknown command or command not implemented :" << type.toHex().toStdString() << endl;
}
}else
{
tab=-2;
}
payloadD.remove(0,i+6);
}
payloadD.remove(0,ln+6);
length = payloadD.count();
}
return tab;

View File

@ -1,43 +1,109 @@
#ifndef ZIGATEBACKEND_H
#define ZIGATEBACKEND_H
#include "main.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"
void deviceAnnounceManager();
void commandReturnStatusManager();
void logMessageManager();
void dataIndicationManager();
void clustersListManager();
void attributesListManager();
void commandsListManager();
void statusManager();
void status2Manager();
void versionListManager();
void permitJoinManager();
void networkJoinedFormedManager();
void bindResponseManager();
void unbindResponseManager();
void networkAddressManager();
void iEEEAddressManager();
void nodeDescriptorManager();
void simpleDescriptorManager();
void powerDescriptorManager();
void activeEndpointManager();
void matchDescriptorManager();
void userDescriptorNotifyManager();
void userDescriptorManager();
void complexDescriptorManager();
void managementLeaveManager();
void leaveIndicationManager();
void managementNetworkUpdateManager();
void systemServerDiscoveryManager();
void managementLQIManager();
void attributeDiscoveryManager();
//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;
@ -152,7 +218,6 @@ class ZigateBackend : public ZigbeeMgr
{"iASZoneEnrollResponse", {"0400", "0007", ""}},
{"rawApsDataRequest", {"0530", "000D", ""}}
};
QHash <QString, ResponseProperties *> responseListIndex;
QList <QString> responseListCode
@ -256,66 +321,5 @@ class ZigateBackend : public ZigbeeMgr
};
};
#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"
#endif // ZIGATEBACKEND_H

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
#include "main.h"
#include "zigateBackend.h"
using namespace std;
@ -11,6 +11,8 @@ bool ZigateBackend::resetCoordinator()
getResponse();
getResponse();
getResponse();
getResponse();
getResponse();
cout << "***************************************************" << endl;
sleep(10);
return returnCode;

View File

@ -26,7 +26,7 @@ else: unix:!android: target.path = /usr/bin
HEADERS += \
library.h \
main.h \
zigateBackend.h \
responseClasses.h \
serial.inc.h \
version.h \
zigateBackend.h
version.h

View File

@ -1,430 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 9.0.1, 2023-04-19T22:36:16. -->
<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 type="QVariantMap" key="CppEditor.QuickFix">
<value type="bool" key="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/develop/zigbeemanager/../build-zigbeemanager-Qt_5_15_7_qt5-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develop/build-zigbeemanager-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/develop/zigbeemanager/../build-zigbeemanager-Qt_5_15_7_qt5-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develop/build-zigbeemanager-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/develop/zigbeemanager/../build-zigbeemanager-Qt_5_15_7_qt5-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develop/build-zigbeemanager-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.DisplayName">zigbeemanager</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/develop/zigbeemanager/zigbeemanager.pro</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</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>
</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/develop/zigbeemanager/../build-zigbeemanager-Desktop-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develop/build-zigbeemanager-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/develop/zigbeemanager/../build-zigbeemanager-Desktop-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develop/build-zigbeemanager-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/develop/zigbeemanager/../build-zigbeemanager-Desktop-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/daniel/develop/build-zigbeemanager-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>