change signature of propertyRead/Write

This commit is contained in:
Thomas Kunze 2019-12-10 23:42:27 +01:00
parent 10b83b46bc
commit c64b7f6a01
28 changed files with 131 additions and 90 deletions

View File

@ -111,7 +111,7 @@
<ImportedPropertySheets />
<CodeSense>
<Enabled>True</Enabled>
<CXXFLAGS>-DMEDIUM_TYPE=5</CXXFLAGS>
<CXXFLAGS>-DMEDIUM_TYPE=5 -DUSE_CEMI_SERVER</CXXFLAGS>
<ExtraSettings>
<HideErrorsInSystemHeaders>true</HideErrorsInSystemHeaders>
<SupportLightweightReferenceAnalysis>true</SupportLightweightReferenceAnalysis>

View File

@ -83,6 +83,9 @@
<ClInclude Include="..\src\knx\bau_systemB.h" />
<ClInclude Include="..\src\knx\bits.h" />
<ClInclude Include="..\src\knx\cemi_frame.h" />
<ClInclude Include="..\src\knx\cemi_server.h" />
<ClInclude Include="..\src\knx\cemi_server_object.h" />
<ClInclude Include="..\src\knx\datapoint_types.h" />
<ClInclude Include="..\src\knx\data_link_layer.h" />
<ClInclude Include="..\src\knx\device_object.h" />
<ClInclude Include="..\src\knx\dpt.h" />
@ -99,7 +102,7 @@
<ClInclude Include="..\src\knx\network_layer.h" />
<ClInclude Include="..\src\knx\npdu.h" />
<ClInclude Include="..\src\knx\platform.h" />
<ClInclude Include="..\src\knx\property_types.h" />
<ClInclude Include="..\src\knx\property.h" />
<ClInclude Include="..\src\knx\rf_data_link_layer.h" />
<ClInclude Include="..\src\knx\rf_medium_object.h" />
<ClInclude Include="..\src\knx\rf_physical_layer.h" />
@ -108,6 +111,7 @@
<ClInclude Include="..\src\knx\tpdu.h" />
<ClInclude Include="..\src\knx\tpuart_data_link_layer.h" />
<ClInclude Include="..\src\knx\transport_layer.h" />
<ClInclude Include="..\src\knx\usb_tunnel_interface.h" />
<ClInclude Include="..\src\knx_facade.h" />
<ClInclude Include="..\src\linux_platform.h" />
</ItemGroup>
@ -131,6 +135,9 @@
<ClCompile Include="..\src\knx\bau_systemB.cpp" />
<ClCompile Include="..\src\knx\bits.cpp" />
<ClCompile Include="..\src\knx\cemi_frame.cpp" />
<ClCompile Include="..\src\knx\cemi_server.cpp" />
<ClCompile Include="..\src\knx\cemi_server_object.cpp" />
<ClCompile Include="..\src\knx\datapoint_types.cpp" />
<ClCompile Include="..\src\knx\data_link_layer.cpp" />
<ClCompile Include="..\src\knx\device_object.cpp" />
<ClCompile Include="..\src\knx\dpt.cpp" />
@ -153,6 +160,7 @@
<ClCompile Include="..\src\knx\tpdu.cpp" />
<ClCompile Include="..\src\knx\tpuart_data_link_layer.cpp" />
<ClCompile Include="..\src\knx\transport_layer.cpp" />
<ClCompile Include="..\src\knx\usb_tunnel_interface.cpp" />
<ClCompile Include="..\src\knx_facade.cpp" />
<ClCompile Include="..\src\linux_platform.cpp" />
<ClCompile Include="main.cpp" />

View File

@ -104,9 +104,6 @@
<ClInclude Include="..\src\knx\platform.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\property_types.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\save_restore.h">
<Filter>Header files\knx</Filter>
</ClInclude>
@ -152,6 +149,21 @@
<ClInclude Include="..\src\knx\rf_physical_layer.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\property.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\cemi_server.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\cemi_server_object.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\datapoint_types.h">
<Filter>Header files\knx</Filter>
</ClInclude>
<ClInclude Include="..\src\knx\usb_tunnel_interface.h">
<Filter>Header files\knx</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\src\knx\address_table_object.cpp">
@ -265,5 +277,17 @@
<ClCompile Include="..\src\knx\platform.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\cemi_server.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\cemi_server_object.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\datapoint_types.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
<ClCompile Include="..\src\knx\usb_tunnel_interface.cpp">
<Filter>Source files\knx</Filter>
</ClCompile>
</ItemGroup>
</Project>

View File

@ -11,7 +11,7 @@ AddressTableObject::AddressTableObject(Memory& memory)
}
void AddressTableObject::readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data)
void AddressTableObject::readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data)
{
switch (id)
{

View File

@ -18,9 +18,9 @@ class AddressTableObject : public TableObject
* @param memory This parameter is only passed to the custructor of TableObject an not used by this class.
*/
AddressTableObject(Memory& memory);
void readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data);
uint8_t* restore(uint8_t* buffer);
ObjectType objectType() { return OT_ADDR_TABLE; }
void readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data) override;
uint8_t* restore(uint8_t* buffer) override;
ObjectType objectType() override { return OT_ADDR_TABLE; }
/**
* returns the number of group addresses of the object.

View File

@ -7,7 +7,7 @@ ApplicationProgramObject::ApplicationProgramObject(Memory& memory)
}
void ApplicationProgramObject::readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data)
void ApplicationProgramObject::readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data)
{
switch (id)
{
@ -25,7 +25,7 @@ void ApplicationProgramObject::readProperty(PropertyID id, uint32_t start, uint3
}
}
void ApplicationProgramObject::writeProperty(PropertyID id, uint32_t start, uint8_t* data, uint32_t& count)
void ApplicationProgramObject::writeProperty(PropertyID id, uint16_t start, uint8_t* data, uint8_t& count)
{
switch (id)
{

View File

@ -6,8 +6,8 @@ class ApplicationProgramObject : public TableObject
{
public:
ApplicationProgramObject(Memory& memory);
void readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data);
void writeProperty(PropertyID id, uint32_t start, uint8_t* data, uint32_t& count);
void readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data);
void writeProperty(PropertyID id, uint16_t start, uint8_t* data, uint8_t& count);
uint8_t propertySize(PropertyID id);
ObjectType objectType() { return OT_APPLICATION_PROG; }
uint8_t* data(uint32_t addr);

View File

@ -11,7 +11,7 @@ AssociationTableObject::AssociationTableObject(Memory& memory)
}
void AssociationTableObject::readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data)
void AssociationTableObject::readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data)
{
switch (id)
{

View File

@ -6,7 +6,7 @@ class AssociationTableObject : public TableObject
{
public:
AssociationTableObject(Memory& memory);
void readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data);
void readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data);
ObjectType objectType() { return OT_ASSOC_TABLE; }
uint8_t* restore(uint8_t* buffer);

View File

@ -8,19 +8,19 @@ void BusAccessUnit::groupValueReadIndication(uint16_t asap, Priority priority, H
{
}
void BusAccessUnit::groupValueReadResponseConfirm(AckType ack, uint16_t asap, Priority priority, HopCountType hopTtype, uint8_t * data, uint8_t dataLength, bool status)
void BusAccessUnit::groupValueReadResponseConfirm(AckType ack, uint16_t asap, Priority priority, HopCountType hopTtype, uint8_t* data, uint8_t dataLength, bool status)
{
}
void BusAccessUnit::groupValueReadAppLayerConfirm(uint16_t asap, Priority priority, HopCountType hopType, uint8_t * data, uint8_t dataLength)
void BusAccessUnit::groupValueReadAppLayerConfirm(uint16_t asap, Priority priority, HopCountType hopType, uint8_t* data, uint8_t dataLength)
{
}
void BusAccessUnit::groupValueWriteLocalConfirm(AckType ack, uint16_t asap, Priority priority, HopCountType hopType, uint8_t * data, uint8_t dataLength, bool status)
void BusAccessUnit::groupValueWriteLocalConfirm(AckType ack, uint16_t asap, Priority priority, HopCountType hopType, uint8_t* data, uint8_t dataLength, bool status)
{
}
void BusAccessUnit::groupValueWriteIndication(uint16_t asap, Priority priority, HopCountType hopType, uint8_t * data, uint8_t dataLength)
void BusAccessUnit::groupValueWriteIndication(uint16_t asap, Priority priority, HopCountType hopType, uint8_t* data, uint8_t dataLength)
{
}
@ -48,7 +48,7 @@ void BusAccessUnit::individualAddressReadAppLayerConfirm(HopCountType hopType, u
{
}
void BusAccessUnit::individualAddressSerialNumberReadLocalConfirm(AckType ack, HopCountType hopType, uint8_t * serialNumber, bool status)
void BusAccessUnit::individualAddressSerialNumberReadLocalConfirm(AckType ack, HopCountType hopType, uint8_t* serialNumber, bool status)
{
}
@ -56,11 +56,11 @@ void BusAccessUnit::individualAddressSerialNumberReadIndication(Priority priorit
{
}
void BusAccessUnit::individualAddressSerialNumberReadResponseConfirm(AckType ack, HopCountType hopType, uint8_t * serialNumber, uint16_t domainAddress, bool status)
void BusAccessUnit::individualAddressSerialNumberReadResponseConfirm(AckType ack, HopCountType hopType, uint8_t* serialNumber, uint16_t domainAddress, bool status)
{
}
void BusAccessUnit::individualAddressSerialNumberReadAppLayerConfirm(HopCountType hopType, uint8_t * serialNumber, uint16_t individualAddress, uint16_t domainAddress)
void BusAccessUnit::individualAddressSerialNumberReadAppLayerConfirm(HopCountType hopType, uint8_t* serialNumber, uint16_t individualAddress, uint16_t domainAddress)
{
}
@ -81,12 +81,12 @@ void BusAccessUnit::deviceDescriptorReadIndication(Priority priority, HopCountTy
{
}
void BusAccessUnit::deviceDescriptorReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t descriptor_type,
uint8_t * device_descriptor, bool status)
void BusAccessUnit::deviceDescriptorReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t descriptor_type,
uint8_t* device_descriptor, bool status)
{
}
void BusAccessUnit::deviceDescriptorReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, uint8_t descriptortype, uint8_t * deviceDescriptor)
void BusAccessUnit::deviceDescriptorReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, uint8_t descriptortype, uint8_t* deviceDescriptor)
{
}
@ -106,19 +106,19 @@ void BusAccessUnit::propertyValueReadIndication(Priority priority, HopCountType
{
}
void BusAccessUnit::propertyValueReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t * data, uint8_t length, bool status)
void BusAccessUnit::propertyValueReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length, bool status)
{
}
void BusAccessUnit::propertyValueReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t * data, uint8_t length)
void BusAccessUnit::propertyValueReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length)
{
}
void BusAccessUnit::propertyValueWriteLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t * data, uint8_t length, bool status)
void BusAccessUnit::propertyValueWriteLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length, bool status)
{
}
void BusAccessUnit::propertyValueWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t * data, uint8_t length)
void BusAccessUnit::propertyValueWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex, uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length)
{
}
@ -150,19 +150,19 @@ void BusAccessUnit::memoryReadIndication(Priority priority, HopCountType hopType
{
}
void BusAccessUnit::memoryReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint16_t memoryAddress, uint8_t * data, bool status)
void BusAccessUnit::memoryReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint16_t memoryAddress, uint8_t* data, bool status)
{
}
void BusAccessUnit::memoryReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint16_t memoryAddress, uint8_t * data)
void BusAccessUnit::memoryReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint16_t memoryAddress, uint8_t* data)
{
}
void BusAccessUnit::memoryWriteLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint16_t memoryAddress, uint8_t * data, bool status)
void BusAccessUnit::memoryWriteLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint16_t memoryAddress, uint8_t* data, bool status)
{
}
void BusAccessUnit::memoryWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint16_t memoryAddress, uint8_t * data)
void BusAccessUnit::memoryWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint16_t memoryAddress, uint8_t* data)
{
}
@ -174,19 +174,19 @@ void BusAccessUnit::userMemoryReadIndication(Priority priority, HopCountType hop
{
}
void BusAccessUnit::userMemoryReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint32_t memoryAddress, uint8_t * memoryData, bool status)
void BusAccessUnit::userMemoryReadResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint32_t memoryAddress, uint8_t* memoryData, bool status)
{
}
void BusAccessUnit::userMemoryReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint32_t memoryAddress, uint8_t * memoryData)
void BusAccessUnit::userMemoryReadAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint32_t memoryAddress, uint8_t* memoryData)
{
}
void BusAccessUnit::userMemoryWriteLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint32_t memoryAddress, uint8_t * memoryData, bool status)
void BusAccessUnit::userMemoryWriteLocalConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint32_t memoryAddress, uint8_t* memoryData, bool status)
{
}
void BusAccessUnit::userMemoryWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint32_t memoryAddress, uint8_t * memoryData)
void BusAccessUnit::userMemoryWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t number, uint32_t memoryAddress, uint8_t* memoryData)
{
}
@ -198,11 +198,11 @@ void BusAccessUnit::userManufacturerInfoIndication(Priority priority, HopCountTy
{
}
void BusAccessUnit::userManufacturerInfoResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t * info, bool status)
void BusAccessUnit::userManufacturerInfoResponseConfirm(AckType ack, Priority priority, HopCountType hopType, uint16_t asap, uint8_t* info, bool status)
{
}
void BusAccessUnit::userManufacturerInfoAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, uint8_t * info)
void BusAccessUnit::userManufacturerInfoAppLayerConfirm(Priority priority, HopCountType hopType, uint16_t asap, uint8_t* info)
{
}
@ -243,12 +243,12 @@ void BusAccessUnit::connectConfirm(uint16_t destination)
}
void BusAccessUnit::systemNetworkParameterReadIndication(Priority priority, HopCountType hopType, uint16_t objectType,
uint16_t propertyId, uint8_t* testInfo, uint16_t testInfoLength)
uint16_t propertyId, uint8_t* testInfo, uint16_t testInfoLength)
{
}
void BusAccessUnit::domainAddressSerialNumberWriteIndication(Priority priority, HopCountType hopType, uint8_t* rfDoA,
uint8_t* knxSerialNumber)
uint8_t* knxSerialNumber)
{
}
@ -257,15 +257,13 @@ void BusAccessUnit::domainAddressSerialNumberReadIndication(Priority priority, H
}
void BusAccessUnit::propertyValueRead(ObjectType objectType, uint8_t objectInstance, uint8_t propertyId,
uint32_t &numberOfElements, uint16_t startIndex,
uint8_t **data, uint32_t &length)
uint8_t& numberOfElements, uint16_t startIndex,
uint8_t** data, uint32_t& length)
{
}
void BusAccessUnit::propertyValueWrite(ObjectType objectType, uint8_t objectInstance, uint8_t propertyId,
uint32_t &numberOfElements, uint16_t startIndex,
uint8_t* data, uint32_t length)
uint8_t& numberOfElements, uint16_t startIndex,
uint8_t* data, uint32_t length)
{
}

View File

@ -120,10 +120,10 @@ class BusAccessUnit
virtual void domainAddressSerialNumberReadIndication(Priority priority, HopCountType hopType, uint8_t* knxSerialNumber);
virtual void propertyValueRead(ObjectType objectType, uint8_t objectInstance, uint8_t propertyId,
uint32_t &numberOfElements, uint16_t startIndex,
uint8_t **data, uint32_t &length);
uint8_t& numberOfElements, uint16_t startIndex,
uint8_t** data, uint32_t& length);
virtual void propertyValueWrite(ObjectType objectType, uint8_t objectInstance, uint8_t propertyId,
uint32_t &numberOfElements, uint16_t startIndex,
uint8_t& numberOfElements, uint16_t startIndex,
uint8_t* data, uint32_t length);
};

View File

@ -207,18 +207,17 @@ void BauSystemB::propertyDescriptionReadIndication(Priority priority, HopCountTy
void BauSystemB::propertyValueWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex,
uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length)
{
uint32_t elementCount = numberOfElements;
InterfaceObject* obj = getInterfaceObject(objectIndex);
if(obj)
obj->writeProperty((PropertyID)propertyId, startIndex, data, elementCount);
propertyValueReadIndication(priority, hopType, asap, objectIndex, propertyId, elementCount, startIndex);
obj->writeProperty((PropertyID)propertyId, startIndex, data, numberOfElements);
propertyValueReadIndication(priority, hopType, asap, objectIndex, propertyId, numberOfElements, startIndex);
}
void BauSystemB::propertyValueReadIndication(Priority priority, HopCountType hopType, uint16_t asap, uint8_t objectIndex,
uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex)
{
uint8_t size = 0;
uint32_t elementCount = numberOfElements;
uint8_t elementCount = numberOfElements;
InterfaceObject* obj = getInterfaceObject(objectIndex);
if (obj)
{
@ -389,11 +388,11 @@ void BauSystemB::systemNetworkParameterReadIndication(Priority priority, HopCoun
}
void BauSystemB::propertyValueRead(ObjectType objectType, uint8_t objectInstance, uint8_t propertyId,
uint32_t &numberOfElements, uint16_t startIndex,
uint8_t &numberOfElements, uint16_t startIndex,
uint8_t **data, uint32_t &length)
{
uint32_t size = 0;
uint32_t elementCount = numberOfElements;
uint8_t elementCount = numberOfElements;
InterfaceObject* obj = getInterfaceObject(objectType, objectInstance);
@ -415,7 +414,7 @@ void BauSystemB::propertyValueRead(ObjectType objectType, uint8_t objectInstance
}
void BauSystemB::propertyValueWrite(ObjectType objectType, uint8_t objectInstance, uint8_t propertyId,
uint32_t &numberOfElements, uint16_t startIndex,
uint8_t &numberOfElements, uint16_t startIndex,
uint8_t* data, uint32_t length)
{
InterfaceObject* obj = getInterfaceObject(objectType, objectInstance);

View File

@ -29,12 +29,12 @@ class BauSystemB : protected BusAccessUnit
void writeMemory();
void addSaveRestore(SaveRestore* obj);
bool restartRequest(uint16_t asap);
void propertyValueRead(ObjectType objectType, uint8_t objectInstance, uint8_t propertyId,
uint32_t &numberOfElements, uint16_t startIndex,
uint8_t& numberOfElements, uint16_t startIndex,
uint8_t **data, uint32_t &length) override;
void propertyValueWrite(ObjectType objectType, uint8_t objectInstance, uint8_t propertyId,
uint32_t &numberOfElements, uint16_t startIndex,
uint8_t& numberOfElements, uint16_t startIndex,
uint8_t* data, uint32_t length) override;
protected:

View File

@ -4,7 +4,7 @@
#include "cemi_server_object.h"
#include "bits.h"
void CemiServerObject::readProperty(PropertyID propertyId, uint32_t start, uint32_t& count, uint8_t* data)
void CemiServerObject::readProperty(PropertyID propertyId, uint16_t start, uint8_t& count, uint8_t* data)
{
switch (propertyId)
{
@ -47,7 +47,7 @@ void CemiServerObject::readProperty(PropertyID propertyId, uint32_t start, uint3
}
}
void CemiServerObject::writeProperty(PropertyID id, uint32_t start, uint8_t* data, uint32_t& count)
void CemiServerObject::writeProperty(PropertyID id, uint16_t start, uint8_t* data, uint8_t& count)
{
switch (id)
{

View File

@ -5,8 +5,8 @@
class CemiServerObject: public InterfaceObject
{
public:
void readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data) override;
void writeProperty(PropertyID id, uint32_t start, uint8_t* data, uint32_t& count) override;
void readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data) override;
void writeProperty(PropertyID id, uint16_t start, uint8_t* data, uint8_t& count) override;
uint8_t propertySize(PropertyID id) override;
uint8_t* save(uint8_t* buffer);
uint8_t* restore(uint8_t* buffer);

View File

@ -2,7 +2,7 @@
#include "device_object.h"
#include "bits.h"
void DeviceObject::readProperty(PropertyID propertyId, uint32_t start, uint32_t& count, uint8_t* data)
void DeviceObject::readProperty(PropertyID propertyId, uint16_t start, uint8_t& count, uint8_t* data)
{
switch (propertyId)
{
@ -59,7 +59,7 @@ void DeviceObject::readProperty(PropertyID propertyId, uint32_t start, uint32_t&
}
}
void DeviceObject::writeProperty(PropertyID id, uint32_t start, uint8_t* data, uint32_t& count)
void DeviceObject::writeProperty(PropertyID id, uint16_t start, uint8_t* data, uint8_t& count)
{
switch (id)
{

View File

@ -7,8 +7,8 @@
class DeviceObject: public InterfaceObject
{
public:
void readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data);
void writeProperty(PropertyID id, uint32_t start, uint8_t* data, uint32_t& count);
void readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data);
void writeProperty(PropertyID id, uint16_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);

View File

@ -14,7 +14,7 @@ GroupObjectTableObject::~GroupObjectTableObject()
freeGroupObjects();
}
void GroupObjectTableObject::readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data)
void GroupObjectTableObject::readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data)
{
switch (id)
{

View File

@ -10,7 +10,7 @@ class GroupObjectTableObject : public TableObject
public:
GroupObjectTableObject(Memory& memory);
virtual ~GroupObjectTableObject();
void readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data);
void readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data);
ObjectType objectType() { return OT_GRP_OBJ_TABLE; }
uint16_t entryCount();
GroupObject& get(uint16_t asap);

View File

@ -46,14 +46,14 @@ void InterfaceObject::readPropertyDescription(uint8_t& propertyId, uint8_t& prop
}
}
void InterfaceObject::readProperty(PropertyID id, uint32_t start, uint32_t &count, uint8_t *data)
void InterfaceObject::readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data)
{
// Set number of elements to zero as we are in the end of the call chain
// Nobody processed the property before.
count = 0;
}
void InterfaceObject::writeProperty(PropertyID id, uint32_t start, uint8_t *data, uint32_t &count)
void InterfaceObject::writeProperty(PropertyID id, uint16_t start, uint8_t* data, uint8_t& count)
{
// Set number of elements to zero as we are in the end of the call chain
// Nobody processed the property before.

View File

@ -1,7 +1,7 @@
#pragma once
#include <stddef.h>
#include "property_types.h"
#include "property.h"
#include "save_restore.h"
/** Enum for the type of an interface object. See Section 2.2 of knx:3/7/3 */
@ -75,7 +75,7 @@ class InterfaceObject : public SaveRestore
*
* @param[out] data The requested data of the property.
*/
virtual void readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data);
virtual void readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data);
/**
* Write property of the interface object. If the interface object does not have the property this
* method does nothing. See section 4.8.4.4 of @cite knx:3/4/1.
@ -89,7 +89,7 @@ class InterfaceObject : public SaveRestore
*
* @param[in] data The data that should be written.
*/
virtual void writeProperty(PropertyID id, uint32_t start, uint8_t *data, uint32_t &count);
virtual void writeProperty(PropertyID id, uint16_t start, uint8_t* data, uint8_t& count);
/**
* Gets the size of of property in bytes.
*

View File

@ -10,7 +10,7 @@ IpParameterObject::IpParameterObject(DeviceObject& deviceObject, Platform& platf
_platform(platform)
{}
void IpParameterObject::readProperty(PropertyID propertyId, uint32_t start, uint32_t& count, uint8_t* data)
void IpParameterObject::readProperty(PropertyID propertyId, uint16_t start, uint8_t& count, uint8_t* data)
{
switch (propertyId)
{
@ -79,7 +79,7 @@ void IpParameterObject::readProperty(PropertyID propertyId, uint32_t start, uint
}
}
void IpParameterObject::writeProperty(PropertyID id, uint32_t start, uint8_t* data, uint32_t& count)
void IpParameterObject::writeProperty(PropertyID id, uint16_t start, uint8_t* data, uint8_t& count)
{
switch (id)
{

View File

@ -8,8 +8,8 @@ class IpParameterObject : public InterfaceObject
{
public:
IpParameterObject(DeviceObject& deviceObject, Platform& platform);
void readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data);
void writeProperty(PropertyID id, uint32_t start, uint8_t* data, uint32_t& count);
void readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data);
void writeProperty(PropertyID id, uint16_t start, uint8_t* data, uint8_t& count);
uint8_t propertySize(PropertyID id);
ObjectType objectType() { return OT_IP_PARAMETER; }

View File

@ -215,12 +215,24 @@ enum AccessLevel
WriteLv3 = 0x03,
};
class PropertyDescription
struct PropertyDescription
{
public:
PropertyID Id;
bool WriteEnable;
PropertyDataType Type;
uint16_t MaxElements;
uint8_t Access;
};
class Property
{
public:
PropertyID Id();
bool WriteEnable();
PropertyDataType Type();
uint16_t MaxElements();
uint8_t Access();
uint16_t CurrentElements();
uint8_t ElementSize();
void read(uint32_t start, uint32_t& count, uint8_t* data);
};

View File

@ -2,7 +2,7 @@
#include "rf_medium_object.h"
#include "bits.h"
void RfMediumObject::readProperty(PropertyID propertyId, uint32_t start, uint32_t& count, uint8_t* data)
void RfMediumObject::readProperty(PropertyID propertyId, uint16_t start, uint8_t& count, uint8_t* data)
{
switch (propertyId)
{
@ -37,7 +37,7 @@ void RfMediumObject::readProperty(PropertyID propertyId, uint32_t start, uint32_
}
}
void RfMediumObject::writeProperty(PropertyID id, uint32_t start, uint8_t* data, uint32_t& count)
void RfMediumObject::writeProperty(PropertyID id, uint16_t start, uint8_t* data, uint8_t& count)
{
switch (id)
{

View File

@ -5,8 +5,8 @@
class RfMediumObject: public InterfaceObject
{
public:
void readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data);
void writeProperty(PropertyID id, uint32_t start, uint8_t* data, uint32_t& count);
void readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data);
void writeProperty(PropertyID id, uint16_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);

View File

@ -9,7 +9,7 @@ TableObject::TableObject(Memory& memory): _memory(memory)
}
void TableObject::readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data)
void TableObject::readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data)
{
switch (id)
{
@ -30,7 +30,7 @@ void TableObject::readProperty(PropertyID id, uint32_t start, uint32_t& count, u
}
}
void TableObject::writeProperty(PropertyID id, uint32_t start, uint8_t* data, uint32_t &count)
void TableObject::writeProperty(PropertyID id, uint16_t start, uint8_t* data, uint8_t& count)
{
switch (id)
{

View File

@ -16,8 +16,8 @@ class TableObject: public InterfaceObject
* @param memory The instance of the memory management class to use.
*/
TableObject(Memory& memory);
virtual void readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data);
virtual void writeProperty(PropertyID id, uint32_t start, uint8_t* data, uint32_t& count);
virtual void readProperty(PropertyID id, uint16_t start, uint8_t& count, uint8_t* data);
virtual void writeProperty(PropertyID id, uint16_t start, uint8_t* data, uint8_t& count);
virtual uint8_t propertySize(PropertyID id);
/**
* The destructor.