mirror of
				https://github.com/thelsing/knx.git
				synced 2025-10-26 10:26:25 +01: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) | ||||
| { | ||||
|     _memory.writeMemory(memoryAddress, number, data); | ||||
| 
 | ||||
|     Serial.println("memoryWriteIndication"); | ||||
|     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, | ||||
| @ -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, | ||||
|     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); | ||||
|     if(obj) | ||||
|         obj->writeProperty((PropertyID)propertyId, startIndex, data, numberOfElements); | ||||
| @ -246,6 +258,11 @@ void BauSystemB::propertyValueReadIndication(Priority priority, HopCountType hop | ||||
|     else | ||||
|         elementCount = 0; | ||||
| 
 | ||||
|     if(objectIndex == 1 && propertyId == 27) | ||||
|     { | ||||
|         Serial.print(" "); | ||||
|     } | ||||
| 
 | ||||
|     uint8_t data[size]; | ||||
|     if(obj) | ||||
|         obj->readProperty((PropertyID)propertyId, startIndex, elementCount, data); | ||||
|  | ||||
| @ -48,6 +48,8 @@ class BauSystemB : protected BusAccessUnit | ||||
|                                uint16_t memoryAddress, uint8_t* data) override; | ||||
|     void memoryReadIndication(Priority priority, HopCountType hopType, uint16_t asap, const SecurityControl &secCtrl, uint8_t number, | ||||
|                               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, | ||||
|                                   uint32_t memoryAddress, uint8_t* data) override; | ||||
|     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(); | ||||
| 
 | ||||
|     if (!initGroupObjects()) | ||||
|     /*if (!initGroupObjects())
 | ||||
|     { | ||||
|         newState = LS_ERROR; | ||||
|         TableObject::errorCode(E_SOFTWARE_FAULT); | ||||
|     } | ||||
|     }*/ | ||||
| } | ||||
| 
 | ||||
| bool GroupObjectTableObject::initGroupObjects() | ||||
|  | ||||
| @ -146,6 +146,11 @@ void Memory::writeMemory() | ||||
|     _platform.commitNonVolatileMemory(); | ||||
| } | ||||
| 
 | ||||
| void Memory::saveMemory() | ||||
| { | ||||
|     _platform.commitNonVolatileMemory(); | ||||
| } | ||||
| 
 | ||||
| void Memory::addSaveRestore(SaveRestore* obj) | ||||
| { | ||||
|     if (_saveCount >= MAXSAVE - 1) | ||||
|  | ||||
| @ -31,6 +31,7 @@ public: | ||||
|     virtual ~Memory(); | ||||
|     void readMemory(); | ||||
|     void writeMemory(); | ||||
|     void saveMemory(); | ||||
|     void addSaveRestore(SaveRestore* obj); | ||||
|     void addSaveRestore(TableObject* obj); | ||||
| 
 | ||||
|  | ||||
| @ -82,6 +82,7 @@ void NetworkLayerDevice::dataIndication(AckType ack, AddressType addrType, uint1 | ||||
|             return; | ||||
| 
 | ||||
|         _transportLayer.dataIndividualIndication(destination, hopType, priority, source, npdu.tpdu()); | ||||
|         Serial.println("NL:dI"); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user