From bbd15fa174f0f772a1a1481bc89b319c2975f814 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Wed, 23 Sep 2020 17:13:10 +0200 Subject: [PATCH] Fix Status13 shutter exception 9 --- tasmota/support.ino | 14 +++++++++++++- tasmota/support_command.ino | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/tasmota/support.ino b/tasmota/support.ino index 0c6ab80d3..18c5469ae 100644 --- a/tasmota/support.ino +++ b/tasmota/support.ino @@ -117,7 +117,7 @@ String GetResetReason(void) /*********************************************************************************************\ * Miscellaneous \*********************************************************************************************/ - +/* String GetBinary(const void* ptr, size_t count) { uint32_t value = *(uint32_t*)ptr; value <<= (32 - count); @@ -129,6 +129,18 @@ String GetBinary(const void* ptr, size_t count) { } return result; } +*/ +String GetBinary8(uint8_t value, size_t count) { + if (count > 8) { count = 8; } + value <<= (8 - count); + String result; + result.reserve(count + 1); + for (uint32_t i = 0; i < count; i++) { + result += (value &0x80) ? '1' : '0'; + value <<= 1; + } + return result; +} // Get span until single character in string size_t strchrspn(const char *str1, int character) diff --git a/tasmota/support_command.ino b/tasmota/support_command.ino index 9701826fd..67fa2d07f 100644 --- a/tasmota/support_command.ino +++ b/tasmota/support_command.ino @@ -586,7 +586,7 @@ void CmndStatus(void) "\"Calib\":\"%d:%d:%d:%d:%d\"," "\"Mode\":\"%d\"}}"), i, Settings.shutter_startrelay[i], Settings.shutter_startrelay[i] +1, Settings.shutter_opentime[i], Settings.shutter_closetime[i], - Settings.shutter_set50percent[i], Settings.shutter_motordelay[i], GetBinary(&Settings.shutter_options + (i * sizeof(Settings.shutter_options)), 4).c_str(), + Settings.shutter_set50percent[i], Settings.shutter_motordelay[i], GetBinary8(Settings.shutter_options[i], 4).c_str(), Settings.shuttercoeff[0][i], Settings.shuttercoeff[1][i], Settings.shuttercoeff[2][i], Settings.shuttercoeff[3][i], Settings.shuttercoeff[4][i], Settings.shutter_mode); }