From e39a7da06242010bbb6771532c4ac17b3ec73834 Mon Sep 17 00:00:00 2001 From: Will Tatam Date: Mon, 18 May 2026 18:33:48 +0100 Subject: [PATCH] fix: resolve ESP32 compile errors and duplicate define - Add 'volatile' qualifier to edata parameter in _man_sample() and _man_decode() declarations (qqqDALI.h) and implementations (qqqDALI.cpp) to fix invalid implicit conversion from 'volatile uint8_t*' to 'uint8_t*' on ESP32/Arduino framework - Rename duplicate #define DALI_QUERY_OPERATING_MODE 252 (IEC62386-207) to DALI_QUERY_OPERATING_MODE_207 to eliminate compiler redefinition warning --- qqqDALI.cpp | 4 ++-- qqqDALI.h | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/qqqDALI.cpp b/qqqDALI.cpp index 00be78e..d79c3b4 100644 --- a/qqqDALI.cpp +++ b/qqqDALI.cpp @@ -262,7 +262,7 @@ uint8_t Dali::_man_weight(uint8_t i) { } //call with bitpos <= DALI_RX_BUF_SIZE*8-8; -uint8_t Dali::_man_sample(uint8_t *edata, uint16_t bitpos, uint8_t *stop_coll) { +uint8_t Dali::_man_sample(volatile uint8_t *edata, uint16_t bitpos, uint8_t *stop_coll) { uint8_t pos = bitpos>>3; uint8_t shift = bitpos & 0x7; uint8_t sample = (edata[pos] << shift) | (edata[pos+1] >> (8-shift)); @@ -279,7 +279,7 @@ uint8_t Dali::_man_sample(uint8_t *edata, uint16_t bitpos, uint8_t *stop_coll) { //decode 8 times oversampled encoded data //returns bitlen of decoded data, or 0 on collision -uint8_t Dali::_man_decode(uint8_t *edata, uint8_t ebitlen, uint8_t *ddata) { +uint8_t Dali::_man_decode(volatile uint8_t *edata, uint8_t ebitlen, uint8_t *ddata) { uint8_t dbitlen = 0; uint16_t ebitpos = 1; while(ebitpos+1