1
0
This repository has been archived on 2023-11-30. You can view files and clone it, but cannot push or open issues or pull requests.
dtux__zigbeemanager/zigateplugin/zigateInit.cpp

721 lines
27 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "zigateplugin.h"
#include "serial.h"
#include "interface.h"
#include <QByteArray>
extern ZigatePlugin zigatePlugin;
extern SerialManager serialManager;
//extern QHash <QString, ResponseProperties *> responseListIndex;
using namespace std;
extern QHash <QString, ResponseProperties*> responseListIndex;
bool ZigatePlugin::initPlugin()
{
bool returnCode = false;
ResponseProperties * temp;
QHash<QString, ResponseProperties*>::iterator i;
for (i = responseListIndex.begin(); i != responseListIndex.end(); ++i)
// init lists
//for(i=0;i=responseListIndex.count;i++)
{
temp = new ResponseProperties();
temp->manager = defaultManager;
i.value() = temp;
}
temp = responseListIndex["004D"];
temp->code = QByteArray::fromHex("004D");
temp->description = "Device announce";
temp->properties =
{
// {rang, {designation, nbyte, isvalue}}
// isvalue = 0 => display value
// = 1 => is array of bits
// = 2 => is index of string in list
// = 3 => launch a subroutine pointed by propertyManagerList
// = 4 => is a list of objects
{0, {"Short address", 2, 0}}, // uint16_t
{1, {"IEEE address", 4, 0}}, // uint64_t
{2, {"MAC capability", 1, 3}}
};
temp->propertyManagerList[2] = &macCapabilityManager;
temp->manager = &defaultManager;
temp->propertyDetail[2] =
{
{1, "Alternate PAN Coordinator"},
{2, "Device Type"},
{4, "Power source"},
{8, "Receiver On when Idle"},
{64, "Security capability"},
{128, "Allocate Address"}
};
// *****************************************************************************
// 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
// ******************************************************************************
temp = responseListIndex["8000"];
temp->code = QByteArray::fromHex("8000");
temp->description = "Status returned by command";
temp->properties =
{
{0, {"Status", 1, 2}}, // <uint8_t>
{1, {"Sequence number", 1, 0}}, // <uint8_t>
{2, {"Packet Type", 2, 0}}, // <uint16_t>
{3, {"Optional additional error information", -1, 5}} // <string>
};
temp->manager = &defaultManager;
temp->propertyDetail[0] =
{
{0, "Success"},
{1, "Incorrect parameters"},
{2, "Unhandled command"},
{3, "Command failed"},
{4, "Busy (Node is carrying out a lengthy operation and is currently unable to handle the incoming command)"},
{5, "Stack already started (no new configuration accepted)"},
{-1, "Failed"}
};
// *****************************************************************************
// // Status :
// // 0 = Success
// // 1 = Incorrect parameters
// // 2 = Unhandled command
// // 3 = Command failed
// // 4 = Busy (Node is carrying out a lengthy operation and is currently unable to handle the incoming command)
// // 5 = Stack already started (no new configuration accepted)
// // 128 244 = Failed (ZigBee event codes)
// // Packet Type: The value of the initiating command request.
// ******************************************************************************
temp = responseListIndex["8001"];
temp->code = QByteArray::fromHex("8001");
temp->description = "Log message";
temp->properties =
{
{0, {"Log level", 1, 2}}, // uint8_t
{1, {"Log message", -1, 5}} // string
};
temp->manager = &defaultManager;
temp->propertyDetail[0] =
{
{0, "Emergency"},
{1, "Alert"},
{2, "Critical"},
{3, "Error"},
{4, "Warning"},
{5, "Notice"},
{6, "Information"},
{7, "Debug"}
};
// *********************************************************************************
// 0 = Emergency
// 1 = Alert
// 2 = Critical
// 3 = Error
// 4 = Warning
// 5 = Notice
// 6 = Information
// 7 = Debug
// *********************************************************************************
temp = responseListIndex["8002"];
temp->code = QByteArray::fromHex("8002");
temp->description = "Data indication";
temp->properties =
{
{0, {"status", 1, 1}}, // uint8_t
{1, {"Profile ID", 2, 0}}, // uint16_t
{2, {"Cluster ID", 2, 0}}, // uint16_t
{3, {"Source endpoint", 1, 0}}, // uint8_t
{4, {"Destination endpoint", 1, 0}}, // uint8_t
{5, {"Source address mode", 1, 0}}, // uint8_t TODO
{6, {"Source address", 2, 0}}, // uint16_t or uint64_t
{7, {"Destination address mode", 0, 0}}, // uint8_t TODO
{8, {"Destination address", 2, 0}}, // uint16_t or uint64_t
{9, {"Payload size", 1, 0}}, // uint8_t
{10, {"Payload", -1, 0}} // data each element is uint8_t
};
temp->manager = &defaultManager; //dataIndicationManager
temp = responseListIndex["8003"];
temp->code = QByteArray::fromHex("8003");
temp->description = "list of object's clusters";
temp->properties =
{
{0, {"Source endpoint", 1, 0}}, // uint8_t
{1, {"Profile ID", 2, 0}}, // uint16_t
{2, {"Cluster list", 0, 0}}, // data each entry is uint16_t
{3, {"Source endpoint", 1, 0}}, // uint8_t
{4, {"Profile ID", 2, 0}}, // uint16_t
{5, {"Cluster ID", 2, 0}}, // uint16_t
{6, {"Attribute list", 2, 0}} // data each entry is uint16_t
};
temp->manager = &clustersListManager;
temp = responseListIndex["8004"];
temp->code = QByteArray::fromHex("8004");
temp->description = "list of object's attributes";
temp->properties =
{
{0, {"Source endpoint", 1, 0}}, // uint8_t
{1, {"Profile ID", 2, 0}}, // uint16_t
{2, {"Cluster ID", 2, 0}}, // uint16_t
{3, {"Attribute list", 2, 0}} // data each entry is uint16_t>
};
temp->manager = &defaultManager; //TODO
temp = responseListIndex["8005"];
temp->code = QByteArray::fromHex("8005");
temp->description = "List of object's commands";
temp->properties =
{
{0, {"Source endpoint", 1, 0}}, // uint8_t
{1, {"Profile ID", 1, 0}}, // uint16_t
{2, {"Cluster ID", 1, 0}}, // uint16_t
{3, {"Command ID list", -1, 0}} // data each entry is uint8_t
};
temp->manager = &defaultManager; //TODO
temp = responseListIndex["8006"];
temp->code = QByteArray::fromHex("8006");
temp->description = "Status after restart";
temp->properties =
{
{0, {"Status after restart: ", 1, 2}}
};
temp->manager = &defaultManager;
temp->propertyDetail[0] =
{
{0, "Startup"},
{1, "NFN_START"},
{2, "RUNNING"},
};
// *****************************************************************************
// 0 - STARTUP
// 2 - NFN_START
// 6 - RUNNING
// The node is provisioned from previous restart.
// *****************************************************************************
temp = responseListIndex["8007"];
temp->code = QByteArray::fromHex("8007");
temp->description = "Status after start";
temp->properties =
{
{0, {"Status after start: ", 1, 2}}
};
temp->manager = &defaultManager;
temp->propertyDetail[0] =
{
{0, "Startup"},
{1, "NFN_START"},
{2, "RUNNING"},
};
temp = responseListIndex["8008"];
temp->code = QByteArray::fromHex("8008");
temp->description = "HeartBeat";
temp->properties =
{
{0, {"UTC time :", 4, 0}}
};
temp->manager = &defaultManager;
temp = responseListIndex["8009"];
temp->code = QByteArray::fromHex("8009");
temp->description = "Network state";
temp->properties =
{
{0, {"Short Address: ", 2, 0}},
{1, {"Extended Address: ", 8, 0}},
{2, {"PAN ID: ", 2, 0}},
{3, {"Extended PAN ID: ", 8, 0}},
{4, {"Channel: ", 8, 0}}
};
temp->manager = &defaultManager;
temp = responseListIndex["8010"];
temp->code = QByteArray::fromHex("8010");
temp->description = "Version List";
temp->properties =
{
{0, {"Major version number", 2, 0}}, // uint16_t
{1, {"Installer version number", 2, 0}} // uint16_t
};
temp->manager = &defaultManager;
temp = responseListIndex["8011"];
temp->code = QByteArray::fromHex("8011");
temp->description = "Ack Data";
temp->properties =
{
{0, {"Status: ", 1, 0}},
{1, {"Destination address: ", 2, 0}},
{2, {"Destination endpoint: ", 1, 0}},
{3, {"Cluster ID :", 2, 0}}
};
temp->manager = &defaultManager;
temp = responseListIndex["8012"];
temp->code = QByteArray::fromHex("8012");
temp->description = "DATA_CONFIRM";
temp->properties =
{
{0, {"Status: ", 1, 0}},
{1, {"Source Endpoint: ", 1, 0}},
{2, {"Destination endpoint: ", 1, 0}},
{3, {"Destination Address mode:", 1, 0}},
{4, {"Destination IEEE address: ", 8, 0}},
{5, {"APS Sequence number: ", 1, 0}}
};
temp->manager = &defaultManager;
temp = responseListIndex["8014"];
temp->code = QByteArray::fromHex("8014");
temp->description = "Permit join status response";
temp->properties =
{
{0, {"Status", 1, 2}} // bool_t
};
temp->manager = &defaultManager;
temp->propertyDetail[0] =
{
{0, "Off"},
{1, "On"}
};
temp = responseListIndex["8015"];
temp->code = QByteArray::fromHex("8015");
temp->description = "Device list";
temp->properties =
{
{0, {"Device List", 1, 4}} // bool_t
};
temp->manager = &deviceListManager;
temp = responseListIndex["8017"];
temp->code = QByteArray::fromHex("8017");
temp->description = "Time server";
temp->properties =
{
{0, {"UTC Time: ", 1, 0}} // <Timestamp UTC: uint32_t> from 2000-01-01 00:00:00
};
temp->manager = &defaultManager;
temp = responseListIndex["8024"];
temp->code = QByteArray::fromHex("8024");
temp->description = "Network joined/formed";
temp->properties =
{
{0, {"Status", 1, 2}}, // uint8_t
{1, {"Short address", 2, 0}}, // uint16_t
{2, {"Extended address", 4, 0}}, // uint64_t
{3, {"Channel", 1, 0}} // uint8_t
};
temp->manager = &defaultManager;
temp->propertyDetail[0] =
{
{0, "Joined"},
{1, "Formed new network"},
{-1, "Failed"}
};
temp = responseListIndex["8028"];
temp->code = QByteArray::fromHex("8028");
temp->description = "Authenticate response";
temp->properties =
{
{0, {"IEEE address of the Gateway: ", 8, 0}},
{1, {"Encrypted Key: ", 16, 0}},
{2, {"MIC: ", 4, 0}},
{3, {"IEEE address of the initiating node: ", 8, 0}},
{4, {"Active Key Sequence number: ", 1, 0}},
{5, {"Channel: ", 1, 0}},
{6, {"Short PAN Id: ", 2, 0}},
{7, {"Extended PAN ID: ", 8, 0}},
};
temp->manager = &defaultManager;
temp = responseListIndex["802B"];
temp->code = QByteArray::fromHex("802B");
temp->description = "User Descriptor Notify";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uin8_t
{1, {"Status", 1, 0}}, // uint8_t
{2, {"Network address of interest", 2, 0}} // uint16_t
};
temp->manager = &defaultManager;
temp = responseListIndex["802C"];
temp->code = QByteArray::fromHex("802C");
temp->description = "User Descriptor Response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uin8_t
{1, {"Status", 1, 0}}, // uint8_t
{2, {"Network address of interest", 2, 0}}, // uint16_6
{3, {"Length", 1, 0}}, // uint8_t
{4, {"Data", -1, 0}} // uint8_t stream
};
temp->manager = &defaultManager;
temp = responseListIndex["8030"];
temp->code = QByteArray::fromHex("8030");
temp->description = "Bind response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uint8_t
{1, {"Status", 1, 0}}, // uint8_t
{2, {"Source address mode: ", 1, 0}}, // uint8_t> (only from v3.1a)
{3, {"Source Address: ", 2, 0}} // uint16_t> (only from v3.1a)
};
temp->manager = &defaultManager;
temp = responseListIndex["8031"];
temp->code = QByteArray::fromHex("8031");
temp->description = "Unbind response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uint8_t
{1, {"Status", 1, 0}}, // uint8_t
{2, {"Source address mode: ", 1, 0}}, // uint8_t (only from v3.1a)
{3, {"Source Address: ", 2, 0}} // uint16_t (only from v3.1a)
};
temp->manager = &defaultManager;
temp = responseListIndex["8035"];
temp->code = QByteArray::fromHex("8035");
temp->description = "PDM event";
temp->properties =
{
{0, {"Event status: ", 1, 2}}, // uint8_t
{1, {"record ID: ", 4, 0}} // uint8_t
};
temp->manager = &defaultManager;
temp->propertyDetail[0] =
{
{0, "E_PDM_SYSTEM_EVENT_WEAR_COUNT_TRIGGER_VALUE_REACHED"},
{1, "E_PDM_SYSTEM_EVENT_DESCRIPTOR_SAVE_FAILED"},
{1, "E_PDM_SYSTEM_EVENT_PDM_NOT_ENOUGH_SPACE"},
{1, "E_PDM_SYSTEM_EVENT_LARGEST_RECORD_FULL_SAVE_NO_LONGER_POSSIBLE"},
{1, "E_PDM_SYSTEM_EVENT_SEGMENT_DATA_CHECKSUM_FAIL"},
{1, "E_PDM_SYSTEM_EVENT_SEGMENT_SAVE_OK"},
{1, "E_PDM_SYSTEM_EVENT_EEPROM_SEGMENT_HEADER_REPAIRED"},
{1, "E_PDM_SYSTEM_EVENT_SYSTEM_INTERNAL_BUFFER_WEAR_COUNT_SWAP"},
{1, "E_PDM_SYSTEM_EVENT_SYSTEM_DUPLICATE_FILE_SEGMENT_DETECTED"},
{1, "E_PDM_SYSTEM_EVENT_SYSTEM_ERROR"},
{1, "E_PDM_SYSTEM_EVENT_SEGMENT_PREWRITE"},
{1, "E_PDM_SYSTEM_EVENT_SEGMENT_POSTWRITE"},
{1, "E_PDM_SYSTEM_EVENT_SEQUENCE_DUPLICATE_DETECTED"},
{1, "E_PDM_SYSTEM_EVENT_SEQUENCE_VERIFY_FAIL"},
{1, "E_PDM_SYSTEM_EVENT_PDM_SMART_SAVE"},
{1, "E_PDM_SYSTEM_EVENT_PDM_FULL_SAVE"}
};
temp = responseListIndex["8040"];
temp->code = QByteArray::fromHex("8040");
temp->description = "Network Address response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uin8_t
{1, {"Status", 1, 0}}, // uint8_t
{2, {"IEEE address", 4, 0}}, // uint64_t
{3, {"Short address", 2, 0}}, // uint16_t
{4, {"Number of associated devices", 1, 0}}, // uint8_t
{5, {"Start index", 1, 0}}, // uint8_t
{6, {"Device list", -1, 4}} // data each entry is uint16_t>
};
temp->manager = &networkAddressManager;
temp = responseListIndex["8041"];
temp->code = QByteArray::fromHex("8041");
temp->description = "IEEE Address response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uin8_t
{1, {"Status", 1, 0}}, // uint8_t
{2, {"IEEE address", 4, 0}}, // uint64_t
{3, {"Short address", 2, 0}}, // uint16_t
{4, {"Number of associated devices", 1, 0}}, // uint8_t
{5, {"Start index", 1, 0}}, // uint8_t
{6, {"Device list", -1, 4}} // data each entry is uint16_t
};
temp->manager = &iEEEAddressManager;
temp = responseListIndex["8042"];
temp->code = QByteArray::fromHex("8042");
temp->description = "Node Descriptor response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uint8_t
{1, {"Network address", 2, 0}}, // uint16_t
{2, {"Manufacturer code", 2, 0}}, // uint16_t
{3, {"Max Rx Size", 2, 0}}, // uint16_t
{4, {"Max Tx Size", 2, 0}}, // uint16_t
{5, {"Server mask", 2, 0}}, // uint16_t
{6, {"Descriptor capability", 1, 0}}, // uint8_t
{7, {"Mac flags", 1, 0}}, // uint8_t
{8, {"Max buffer size", 1, 0}}, // uint8_t
{9, {"Bit fields", 2, -1}} // uint16_t
};
temp->manager = &nodeDescriptorManager;
temp = responseListIndex["8043"];
temp->code = QByteArray::fromHex("8043");
temp->description = "Simple Descriptor response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uint8_t
{1, {"Status", 1, 0}}, // uint8_t
{2, {"NwkAddress", 2, 0}}, // uint16_t
{3, {"Length", 1, 0}}, // uint8_t
{4, {"Endpoint", 1, 0}}, // uint8_t
{5, {"Profile", 2, 0}}, // uint16_t
{6, {"Device id", 2, 0}}, // uint16_t
{7, {"Bit fields", 1, 0}}, // uint8_t
{8, {"InClusterCount", 1, 0}}, // uint8_t
{9, {"In cluster list", 0, 0}}, // data each entry is uint16_t>
{10, {"Out Cluster Count", 1, 0}}, // uint8_t
{11, {"Out cluster list", -1, 0}} // data each entry is uint16_t
};
temp->manager = &defaultManager; //TODO
temp = responseListIndex["8044"];
temp->code = QByteArray::fromHex("8044");
temp->description = "Power Descriptor response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uin8_t
{1, {"Status", 1, 0}}, // uint8_t
{2, {"bit field", 2, 0}} // uint16_t
};
temp->manager = &defaultManager;
// ******************************************
// 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
// ******************************************
temp = responseListIndex["8045"];
temp->code = QByteArray::fromHex("8045");
temp->description = "Active Endpoint response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uint8_t
{1, {"Status", 1, 0}}, // uint8_t
{2, {"Address", 2, 0}}, // uint16_t
{3, {"Endpoint count", 1, 0}}, // uint8_t
{4, {"Active endpoint list", -1, 0}} // each data element of the type uint8_t
};
temp->manager = &defaultManager;
temp = responseListIndex["8046"];
temp->code = QByteArray::fromHex("8046");
temp->description = "Match Descriptor response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uint8_t
{1, {"Status", 1, 0}}, // uint8_t
{2, {"Network address", 2, 0}}, // uint16_t
{3, {"Length of list", 1, 0}}, // uint8_t
{4, {"Match list", -1, 0}} // data each entry is uint8_t
};
temp->manager = &defaultManager;
temp = responseListIndex["8047"];
temp->code = QByteArray::fromHex("8047");
temp->description = "Management Leave response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uint8_t
{1, {"Status", 1, 0}} // uint8_t
};
temp->manager = &defaultManager;
temp = responseListIndex["8048"];
temp->code = QByteArray::fromHex("8048");
temp->description = "Leave indication";
temp->properties =
{
{0, {"Extended address", 4, 0}}, // uint64_t
{1, {"Rejoin status", 1, 0}} // uint8_t
};
temp->manager = &defaultManager;
temp = responseListIndex["8049"];
temp->code = QByteArray::fromHex("8049");
temp->description = "PDM child table size";
temp->properties =
{
{0, {"Number of child: ", 1, 0}} // data each entry is uint8_t
};
temp->manager = &defaultManager;
temp = responseListIndex["804A"];
temp->code = QByteArray::fromHex("804A");
temp->description = "Management Network Update response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uint8_t
{1, {"Status", 1, 0}}, // uint8_t
{2, {"Total transmission", 2, 0}}, // uint16_t
{3, {"Transmission failures", 2, 0}}, // uint16_t
{4, {"Scanned channels", 4, 0}}, // uint32_t
{5, {"Scanned channel list count", 1, 0}}, // uint8_t
{6, {"Channel list", -1, 0}} // list each element is uint8_t
};
temp->manager = &defaultManager;
temp = responseListIndex["804B"];
temp->code = QByteArray::fromHex("804B");
temp->description = "System Server Discovery response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uint8_t
{1, {"status", 1, 0}}, // uint8_t
{2, {"Server mask", 2, 0}} // uint16_t
};
temp->manager = &defaultManager;
temp = responseListIndex["804E"];
temp->code = QByteArray::fromHex("804E");
temp->description = "Management LQI response";
temp->properties =
{
{0, {"Sequence number", 1, 0}}, // uint8_t
{1, {"status", 1, 0}}, // uint8_t
{2, {"Neighbour Table Entries ", 1, 0}}, // uint8_t
{3, {"Neighbour Table List Count ", 1, 0}}, // uint8_t
{4, {"Start Index ", 1, 0}}, // uint8_t
{5, {"List of Entries elements described below", -1, 0}}
};
temp->manager = &defaultManager;
temp = responseListIndex["8060"];
temp->code = QByteArray::fromHex("8060");
temp->description = "Add group";
temp->properties =
{
{0, {"Sequence number: ", 1, 0}},
{1, {"Endpoint: ", 1, 0}},
{2, {"Cluster id: ", 2, 0}},
{3, {"Status: ", 1, 0}}, //(added only from 3.0f version)
{4, {"Group id :", 2, 0}}, //(added only from 3.0f version)
{5, {"Source Address: ", 2, 0}}, //(added only from 3.0f version)
{6, {"Number of child: ", 1, 0}} // data each entry is uint8_t
};
temp->manager = &defaultManager;
temp = responseListIndex["8061"];
temp->code = QByteArray::fromHex("8061");
temp->description = "View group";
temp->properties =
{
{0, {"Sequence number: ", 1, 0}},
{1, {"Endpoint: ", 1, 0}},
{2, {"Cluster id: ", 2, 0}},
{3, {"Status: ", 1, 0}}, //(added only from 3.0f version)
{4, {"Group id :", 2, 0}}, //(added only from 3.0f version)
{5, {"Source Address: ", 2, 0}} //(added only from 3.0f version)
};
temp->manager = &defaultManager;
temp = responseListIndex["8062"];
temp->code = QByteArray::fromHex("8062");
temp->description = "Group membership";
temp->properties =
{
{0, {"Sequence number: ", 1, 0}},
{1, {"Endpoint: ", 1, 0}},
{2, {"Cluster id: ", 2, 0}},
{3, {"Source Address:", 2, 0}}, //(added only from 3.0d version)
{4, {"Capacity: ", 1, 0}},
{5, {"Group count: ", 1, 0}},
{6, {"List of Group id: ", 2, 0}}, //list each data item uint16_t>
{7, {"Source Addr: ", 2, 0}} //(added only from 3.0f version)
};
temp->manager = &defaultManager;
temp = responseListIndex["8063"];
temp->code = QByteArray::fromHex("8063");
temp->description = "Remove group";
temp->properties =
{
{0, {"Sequence number: ", 1, 0}},
{1, {"Endpoint: ", 1, 0}},
{2, {"Cluster id: ", 2, 0}},
{3, {"Source Address:", 2, 0}}, //(added only from 3.0d version)
{4, {"Status: ", 1, 0}},
{5, {"Group ID: ", 2, 0}}
};
temp->manager = &defaultManager;
temp = responseListIndex["8085"];
temp->code = QByteArray::fromHex("8085");
temp->description = "Level update";
temp->properties =
{
{0, {"Sequence number: ", 1, 0}},
{1, {"Endpoint: ", 1, 0}},
{2, {"Cluster id: ", 2, 0}},
{3, {"Source Address mode:", 1, 0}}, //(added only from 3.0d version)
{4, {"Source Address:", 2, 0}}, //(added only from 3.0d version)
{5, {"Status: ", 1, 0}}
};
temp->manager = &defaultManager;
temp = responseListIndex["8095"];
temp->code = QByteArray::fromHex("8095");
temp->description = "On/Off";
temp->properties =
{
{0, {"Sequence number: ", 1, 0}},
{1, {"Endpoint: ", 1, 0}},
{2, {"Cluster id: ", 2, 0}},
{3, {"Source Address mode:", 1, 0}}, //(added only from 3.0d version)
{4, {"Source Address:", 2, 0}}, //(added only from 3.0d version)
{5, {"Status: ", 1, 0}}
};
temp->manager = &defaultManager;
temp = responseListIndex["8140"];
temp->code = QByteArray::fromHex("8140");
temp->description = "Attribute Discovery response";
temp->properties =
{
{0, {"Complete", 1, 0}}, // uint8_t
{1, {"Attribute type", 1, 0}}, // uint8_t
{2, {"Attribute id", 2, 0}} // uint16_t
};
temp->manager = &defaultManager;
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();
getVersion();
return returnCode;
}
void infoOutput(ResponseProperties *object)
{
cout << object->code.toHex().toStdString() << " : " << object->description.toStdString() << endl;
}