knx/device_object.h
Thomas Kunze 39edb63caf add support for propertyDescriptionRead
(descriptions are still missing)
2018-04-13 22:08:10 +02:00

51 lines
1.6 KiB
C++

#pragma once
#include "interface_object.h"
class DeviceObject: public InterfaceObject
{
public:
void readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data);
void writeProperty(PropertyID id, uint8_t start, uint8_t* data, uint8_t count);
uint8_t propertySize(PropertyID id);
uint8_t* save(uint8_t* buffer);
uint8_t* restore(uint8_t* buffer);
void readPropertyDescription(uint8_t propertyId, uint8_t& propertyIndex, bool& writeEnable, uint8_t& type, uint16_t& numberOfElements, uint8_t& access);
uint16_t induvidualAddress();
void induvidualAddress(uint16_t value);
bool userStopped();
void userStopped(bool value);
bool induvidualAddressDuplication();
void induvidualAddressDuplication(bool value);
bool verifyMode();
void verifyMode(bool value);
bool safeState();
void safeState(bool value);
bool progMode();
void progMode(bool value);
uint16_t manufacturerId();
void manufacturerId(uint16_t value);
uint32_t bauNumber();
void bauNumber(uint32_t value);
const char* orderNumber();
void orderNumber(const char* value);
const uint8_t* hardwareType();
void hardwareType(const uint8_t* value);
uint16_t version();
void version(uint16_t value);
protected:
uint8_t propertyCount();
PropertyDescription* propertyDescriptions();
private:
uint8_t _deviceControl;
uint8_t _routingCount;
uint8_t _prgMode;
uint16_t _ownAddress;
uint16_t _manufacturerId;
uint32_t _bauNumber;
char _orderNumber[10];
uint8_t _hardwareType[6];
uint16_t _version;
};