From fb74931bec618c32db48f7b2732a558e083fab16 Mon Sep 17 00:00:00 2001 From: Domos <41550963+Domos-Snips@users.noreply.github.com> Date: Thu, 23 Dec 2021 20:04:34 +0100 Subject: [PATCH] Add 2 new methods: paramSignedByte and paramBit. Comments and usage inside code (#159) --- src/knx_facade.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/knx_facade.h b/src/knx_facade.h index f2830a3..b1ccb1b 100644 --- a/src/knx_facade.h +++ b/src/knx_facade.h @@ -294,6 +294,40 @@ template class KnxFacade : private SaveRestore return _bau.parameters().data(addr); } + // paramBit(address, shift) + // get state of a parameter as a boolean like "enable/disable", ... + // Declaration in XML file: + // ... + // + // + // + // + // + // + // ... + // + // + // + // + // + // + // + // + // + // ... + // Usage in code : + // if ( knx.paramBit(1,1)) + // { + // //do somthings .... + // } + bool paramBit(uint32_t addr, uint8_t shift) + { + if (!_bau.configured()) + return 0; + + return (bool) ((_bau.parameters().getByte(addr) >> (7-shift)) & 0x01); + } + uint8_t paramByte(uint32_t addr) { if (!_bau.configured()) @@ -301,7 +335,20 @@ template class KnxFacade : private SaveRestore return _bau.parameters().getByte(addr); } + + // Same usage than paramByte(addresse) for signed parameters + // Declaration in XML file + // + // + // + int8_t paramSignedByte(uint32_t addr) + { + if (!_bau.configured()) + return 0; + return (int8_t) _bau.parameters().getByte(addr); + } + uint16_t paramWord(uint32_t addr) { if (!_bau.configured())