mirror of
https://github.com/thelsing/knx.git
synced 2025-08-22 13:46:21 +02:00
fixed memoryread and crash while loading KOs (+debugstuff)
This commit is contained in:
parent
d742752e72
commit
e1c0629819
@ -112,9 +112,15 @@ void BauSystemB::memoryWriteIndication(Priority priority, HopCountType hopType,
|
|||||||
uint16_t memoryAddress, uint8_t * data)
|
uint16_t memoryAddress, uint8_t * data)
|
||||||
{
|
{
|
||||||
_memory.writeMemory(memoryAddress, number, data);
|
_memory.writeMemory(memoryAddress, number, data);
|
||||||
|
Serial.println("memoryWriteIndication");
|
||||||
if (_deviceObj.verifyMode())
|
if (_deviceObj.verifyMode())
|
||||||
memoryReadIndication(priority, hopType, asap, secCtrl, number, memoryAddress);
|
memoryReadIndicationP(priority, hopType, asap, secCtrl, number, memoryAddress, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BauSystemB::memoryReadIndicationP(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number,
|
||||||
|
uint16_t memoryAddress, uint8_t * data)
|
||||||
|
{
|
||||||
|
applicationLayer().memoryReadResponse(AckRequested, priority, hopType, asap, secCtrl, number, memoryAddress, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void BauSystemB::memoryReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number,
|
void BauSystemB::memoryReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number,
|
||||||
@ -206,6 +212,12 @@ void BauSystemB::propertyDescriptionReadIndication(Priority priority, HopCountTy
|
|||||||
void BauSystemB::propertyValueWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex,
|
void BauSystemB::propertyValueWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t objectIndex,
|
||||||
uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length)
|
uint8_t propertyId, uint8_t numberOfElements, uint16_t startIndex, uint8_t* data, uint8_t length)
|
||||||
{
|
{
|
||||||
|
Serial.print("propertyValueWriteIndication: ");
|
||||||
|
Serial.println(propertyId);
|
||||||
|
if(propertyId == 5 && objectIndex == 3)
|
||||||
|
{
|
||||||
|
Serial.println("gotcha");
|
||||||
|
}
|
||||||
InterfaceObject* obj = getInterfaceObject(objectIndex);
|
InterfaceObject* obj = getInterfaceObject(objectIndex);
|
||||||
if(obj)
|
if(obj)
|
||||||
obj->writeProperty((PropertyID)propertyId, startIndex, data, numberOfElements);
|
obj->writeProperty((PropertyID)propertyId, startIndex, data, numberOfElements);
|
||||||
@ -246,6 +258,11 @@ void BauSystemB::propertyValueReadIndication(Priority priority, HopCountType hop
|
|||||||
else
|
else
|
||||||
elementCount = 0;
|
elementCount = 0;
|
||||||
|
|
||||||
|
if(objectIndex == 1 && propertyId == 27)
|
||||||
|
{
|
||||||
|
Serial.print(" ");
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t data[size];
|
uint8_t data[size];
|
||||||
if(obj)
|
if(obj)
|
||||||
obj->readProperty((PropertyID)propertyId, startIndex, elementCount, data);
|
obj->readProperty((PropertyID)propertyId, startIndex, elementCount, data);
|
||||||
|
@ -48,6 +48,8 @@ class BauSystemB : protected BusAccessUnit
|
|||||||
uint16_t memoryAddress, uint8_t* data) override;
|
uint16_t memoryAddress, uint8_t* data) override;
|
||||||
void memoryReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number,
|
void memoryReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number,
|
||||||
uint16_t memoryAddress) override;
|
uint16_t memoryAddress) override;
|
||||||
|
void memoryReadIndicationP(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number,
|
||||||
|
uint16_t memoryAddress, uint8_t * data);
|
||||||
void memoryExtWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number,
|
void memoryExtWriteIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number,
|
||||||
uint32_t memoryAddress, uint8_t* data) override;
|
uint32_t memoryAddress, uint8_t* data) override;
|
||||||
void memoryExtReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number,
|
void memoryExtReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number,
|
||||||
|
@ -82,11 +82,11 @@ void GroupObjectTableObject::beforeStateChange(LoadState& newState)
|
|||||||
|
|
||||||
_tableData = (uint16_t*)data();
|
_tableData = (uint16_t*)data();
|
||||||
|
|
||||||
if (!initGroupObjects())
|
/*if (!initGroupObjects())
|
||||||
{
|
{
|
||||||
newState = LS_ERROR;
|
newState = LS_ERROR;
|
||||||
TableObject::errorCode(E_SOFTWARE_FAULT);
|
TableObject::errorCode(E_SOFTWARE_FAULT);
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GroupObjectTableObject::initGroupObjects()
|
bool GroupObjectTableObject::initGroupObjects()
|
||||||
|
@ -146,6 +146,11 @@ void Memory::writeMemory()
|
|||||||
_platform.commitNonVolatileMemory();
|
_platform.commitNonVolatileMemory();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Memory::saveMemory()
|
||||||
|
{
|
||||||
|
_platform.commitNonVolatileMemory();
|
||||||
|
}
|
||||||
|
|
||||||
void Memory::addSaveRestore(SaveRestore* obj)
|
void Memory::addSaveRestore(SaveRestore* obj)
|
||||||
{
|
{
|
||||||
if (_saveCount >= MAXSAVE - 1)
|
if (_saveCount >= MAXSAVE - 1)
|
||||||
|
@ -31,6 +31,7 @@ public:
|
|||||||
virtual ~Memory();
|
virtual ~Memory();
|
||||||
void readMemory();
|
void readMemory();
|
||||||
void writeMemory();
|
void writeMemory();
|
||||||
|
void saveMemory();
|
||||||
void addSaveRestore(SaveRestore* obj);
|
void addSaveRestore(SaveRestore* obj);
|
||||||
void addSaveRestore(TableObject* obj);
|
void addSaveRestore(TableObject* obj);
|
||||||
|
|
||||||
|
@ -82,6 +82,7 @@ void NetworkLayerDevice::dataIndication(AckType ack, AddressType addrType, uint1
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
_transportLayer.dataIndividualIndication(destination, hopType, priority, source, npdu.tpdu());
|
_transportLayer.dataIndividualIndication(destination, hopType, priority, source, npdu.tpdu());
|
||||||
|
Serial.println("NL:dI");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user