This commit is contained in:
Thomas Kunze 2019-07-24 22:28:20 +02:00
commit b4c8671dbb
3 changed files with 17 additions and 9 deletions

View File

@ -35,6 +35,4 @@ Platform::Platform()
_memoryReference = (uint8_t*)malloc(1);
free(_memoryReference);
_memoryReference -= 1024;
print("MemRef: ");
println((long unsigned int)_memoryReference, HEX);
}

View File

@ -82,6 +82,7 @@
#define BYTE_TIMEOUT 3 //milli seconds
#define CONFIRM_TIMEOUT 500 //milli seconds
#define RESET_TIMEOUT 100 //milli seconds
void TpUartDataLinkLayer::loop()
{
@ -369,15 +370,18 @@ bool TpUartDataLinkLayer::sendFrame(CemiFrame& frame)
return true;
}
void TpUartDataLinkLayer::resetChip()
bool TpUartDataLinkLayer::resetChip()
{
uint8_t cmd = U_RESET_REQ;
_platform.writeUart(cmd);
_waitConfirmStartTime = _platform.millis();
while (true)
{
int resp = _platform.readUart();
if (resp == U_RESET_IND)
break;
return true;
else if (_platform.millis() - _waitConfirmStartTime > RESET_TIMEOUT)
return false;
}
}
@ -421,10 +425,16 @@ void TpUartDataLinkLayer::enabled(bool value)
if (value && !_enabled)
{
_platform.setupUart();
print("ownaddr ");
println(_deviceObject.induvidualAddress(), HEX);
resetChip();
_enabled = true;
if (resetChip()){
_enabled = true;
print("ownaddr ");
println(_deviceObject.induvidualAddress(), HEX);
}
else{
_enabled = false;
println("ERROR, TPUART not responding");
}
return;
}

View File

@ -56,6 +56,6 @@ class TpUartDataLinkLayer : public DataLinkLayer
bool sendFrame(CemiFrame& frame);
void frameBytesReceived(uint8_t* buffer, uint16_t length);
void dataConBytesReceived(uint8_t* buffer, uint16_t length, bool success);
void resetChip();
bool resetChip();
void stopChip();
};