From 1fde999bd88868844974770d8e120bb1e3910d1a Mon Sep 17 00:00:00 2001 From: Nanosonde <2073569+nanosonde@users.noreply.github.com> Date: Mon, 6 Jul 2020 15:21:21 +0200 Subject: [PATCH] Only reset TOOL kkey to FDSK on factory reset --- examples/knx-demo/.vscode/extensions.json | 12 ++++++------ src/knx/bau57B0.cpp | 3 ++- src/knx/security_interface_object.cpp | 11 +++++++---- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/examples/knx-demo/.vscode/extensions.json b/examples/knx-demo/.vscode/extensions.json index 272828b..e80666b 100644 --- a/examples/knx-demo/.vscode/extensions.json +++ b/examples/knx-demo/.vscode/extensions.json @@ -1,7 +1,7 @@ { - // See http://go.microsoft.com/fwlink/?LinkId=827846 - // for the documentation about the extensions.json format - "recommendations": [ - "platformio.platformio-ide" - ] -} \ No newline at end of file + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "platformio.platformio-ide" + ] +} diff --git a/src/knx/bau57B0.cpp b/src/knx/bau57B0.cpp index eee3cc2..cf2cf53 100644 --- a/src/knx/bau57B0.cpp +++ b/src/knx/bau57B0.cpp @@ -26,7 +26,8 @@ Bau57B0::Bau57B0(Platform& platform) _memory.addSaveRestore(&_ipParameters); // Set Mask Version in Device Object depending on the BAU - _deviceObj.maskVersion(0x57B0); + //_deviceObj.maskVersion(0x57B0); + _deviceObj.maskVersion(0x07B0); // FAKE TP device that is connected over IP/TP router // Set which interface objects are available in the device object // This differs from BAU to BAU with different medium types. diff --git a/src/knx/security_interface_object.cpp b/src/knx/security_interface_object.cpp index cf8bbf8..92b67c4 100644 --- a/src/knx/security_interface_object.cpp +++ b/src/knx/security_interface_object.cpp @@ -333,10 +333,13 @@ void SecurityInterfaceObject::errorCode(ErrorCode errorCode) void SecurityInterfaceObject::masterReset(EraseCode eraseCode, uint8_t channel) { - // TODO handle different erase codes - println("Factory reset of security interface object requested."); - setSecurityMode(false); - property(PID_TOOL_KEY)->write(1, 1, _fdsk); + if (eraseCode == FactoryReset) + { + // TODO handle different erase codes + println("Factory reset of security interface object requested."); + setSecurityMode(false); + property(PID_TOOL_KEY)->write(1, 1, _fdsk); + } } const uint8_t* SecurityInterfaceObject::toolKey()