[LED] Refactor LED handling (#2051)

Refactor LED handling into a library
Use a task instead of relying on the loop for precise timing

Co-authored-by: Florian <1technophile@users.noreply.github.com>
This commit is contained in:
FlorianandFlorian authored and GitHub committed 2024-09-13 09:55:56 -05:00
1 parent 20af9ccf11
commit 435b8ca3d9
14 files changed
+932 -437

No files matched your search

+90 -86
View File
@@ -62,8 +62,8 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DLED_SEND_RECEIVE=2'
'-DLED_SEND_RECEIVE_ON=0'
'-DLED_PIN=2'
'-DLED_PIN_ON=0'
'-DESP32_ETHERNET=true'
'-DETH_PHY_TYPE=ETH_PHY_LAN8720'
'-DETH_PHY_ADDR=0'
@@ -71,13 +71,13 @@ build_flags =
'-DETH_PHY_MDC=23'
'-DETH_PHY_MDIO=18'
'-DETH_CLK_MODE=ETH_CLOCK_GPIO16_OUT'
'-DANEOPIX_IND_DATA_GPIO=32'
'-DANEOPIX_IND_NUM_LEDS=4'
'-DANEOPIX_INFO_LED=0'
'-DANEOPIX_SEND_RECEIVE_LED=1'
'-DANEOPIX_ERROR_LED=1'
'-DANEOPIX_BRIGHTNESS=10'
'-DRGB_INDICATORS=true'
'-DLED_ADDRESSABLE_PIN1=32'
'-DLED_ADDRESSABLE_NUM=4'
'-DLED_BROKER=0'
'-DLED_PROCESSING=1'
'-DLED_ERROR=1'
'-DDEFAULT_ADJ_BRIGHTNESS=10'
'-DLED_ADDRESSABLE=true'
'-DAttemptBLEConnect=false'
'-DUSE_MAC_AS_GATEWAY_NAME'
'-DGATEWAY_MANUFACTURER="Theengs"'
@@ -100,8 +100,6 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DLED_SEND_RECEIVE=2'
'-DLED_SEND_RECEIVE_ON=0'
'-DESP32_ETHERNET=true'
'-DETH_PHY_TYPE=ETH_PHY_LAN8720'
'-DETH_PHY_ADDR=0'
@@ -109,13 +107,14 @@ build_flags =
'-DETH_PHY_MDC=23'
'-DETH_PHY_MDIO=18'
'-DETH_CLK_MODE=ETH_CLOCK_GPIO16_OUT'
'-DANEOPIX_IND_DATA_GPIO=32'
'-DANEOPIX_IND_NUM_LEDS=4'
'-DANEOPIX_INFO_LED=0'
'-DANEOPIX_SEND_RECEIVE_LED=1'
'-DANEOPIX_ERROR_LED=1'
'-DANEOPIX_BRIGHTNESS=100'
'-DRGB_INDICATORS=true'
'-DLED_ADDRESSABLE=true'
'-DLED_ADDRESSABLE_PIN1=32'
'-DLED_ADDRESSABLE_NUM=4'
'-DLED_ERROR=3'
'-DLED_PROCESSING=3'
'-DLED_BROKER=2'
'-DLED_NETWORK=1'
'-DLED_POWER=0'
'-DAttemptBLEConnect=false'
'-DTRIGGER_GPIO=4'
'-DUSE_MAC_AS_GATEWAY_NAME'
@@ -331,8 +330,8 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DLED_SEND_RECEIVE=2'
'-DLED_SEND_RECEIVE_ON=0'
'-DLED_PIN=2'
'-DLED_PIN_ON=0'
'-DGateway_Name="OMG_ESP32_BLE"'
custom_description = Regular BLE gateway with adaptive scanning activated, automatically adapts the scan parameters depending on your devices
@@ -348,8 +347,8 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DLED_SEND_RECEIVE=2'
'-DLED_SEND_RECEIVE_ON=0'
'-DLED_PIN=2'
'-DLED_PIN_ON=0'
'-DGateway_Name="OMG_ESP32_BLE"'
'-DMQTT_BROKER_MODE=true'
custom_description = MQTT Broker with BLE gateway with adaptive scanning activated, automatically adapts the scan parameters depending on your devices
@@ -366,8 +365,8 @@ build_flags =
${com-esp32.build_flags}
'-DBLEDecoder=false'
'-DZgatewayBT="BT"'
'-DLED_SEND_RECEIVE=2'
'-DLED_SEND_RECEIVE_ON=0'
'-DLED_PIN=2'
'-DLED_PIN_ON=0'
'-DGateway_Name="OMG_ESP32_BLE"'
'-DMQTTDecodeTopic="undecoded"'
custom_description = BLE gateway with the decoding offloaded to Theengs Gateway
@@ -385,8 +384,8 @@ build_flags =
${com-esp32.build_flags}
'-UZmqttDiscovery="HADiscovery"'
'-DZgatewayBT="BT"'
'-DLED_SEND_RECEIVE=2'
'-DLED_SEND_RECEIVE_ON=0'
'-DLED_PIN=2'
'-DLED_PIN_ON=0'
'-DARDUINO_LOOP_STACK_SIZE=17500'
'-DMQTT_SECURE_DEFAULT=true'
'-DMQTT_CERT_VALIDATE_DEFAULT=true'
@@ -410,8 +409,8 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DLED_SEND_RECEIVE=13'
'-DLED_SEND_RECEIVE_ON=0'
'-DLED_PIN=13'
'-DLED_PIN_ON=0'
'-DGateway_Name="OMG_ESP32_FTH_BLE"'
custom_description = BLE Gateway
custom_hardware = ESP32 Feather Adafruit
@@ -428,8 +427,8 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DLED_SEND_RECEIVE=22'
'-DLED_SEND_RECEIVE_ON=0'
'-DLED_PIN=22'
'-DLED_PIN_ON=0'
'-DGateway_Name="OMG_LOLIN32LITE_BLE"'
;; Low power parameters, uncomment and fill credentials
'-DDEFAULT_LOW_POWER_MODE=INTERVAL'
@@ -458,8 +457,8 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DLED_SEND_RECEIVE=33'
'-DLED_SEND_RECEIVE_ON=1'
'-DLED_PIN=33'
'-DLED_PIN_ON=1'
'-DTRIGGER_GPIO=34'
'-DESP32_ETHERNET=true'
'-DGateway_Name="OMG_ESP32_OLM_GTWE"'
@@ -553,8 +552,8 @@ build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DZgatewayIR="IR"'
'-DLED_SEND_RECEIVE=19'
'-DLED_SEND_RECEIVE_ON=1'
'-DLED_PIN=19'
'-DLED_PIN_ON=1'
'-DTRIGGER_GPIO=35'
'-DIR_EMITTER_GPIO=17'
'-DDEFAULT_LOW_POWER_MODE=ALWAYS_ON'
@@ -578,7 +577,7 @@ build_flags =
'-DZgatewayBT="BT"'
'-DZsensorGPIOInput="GPIOInput"'
'-DZboardM5STACK="M5Stack"'
'-DLED_SEND_RECEIVE=15'
'-DLED_PIN=15'
'-DTRIGGER_GPIO=37'
'-DSLEEP_BUTTON=38'
'-DINPUT_GPIO=39'
@@ -626,8 +625,8 @@ build_flags =
'-DZboardM5STICKC="M5StickC"'
'-DACTUATOR_ONOFF_GPIO=10'
'-DINPUT_GPIO=37'
'-DLED_SEND_RECEIVE=10'
'-DLED_SEND_RECEIVE_ON=0'
'-DLED_PIN=10'
'-DLED_PIN_ON=0'
'-DSLEEP_BUTTON=39'
'-DTRIGGER_GPIO=39'
'-DIR_EMITTER_INVERTED=true'
@@ -657,8 +656,8 @@ build_flags =
'-DZboardM5STICKCP="M5StickCP"'
'-DACTUATOR_ONOFF_GPIO=10'
'-DINPUT_GPIO=37'
'-DLED_SEND_RECEIVE=10'
'-DLED_SEND_RECEIVE_ON=0'
'-DLED_PIN=10'
'-DLED_PIN_ON=0'
'-DSLEEP_BUTTON=39'
'-DTRIGGER_GPIO=39'
'-DIR_EMITTER_INVERTED=true'
@@ -687,9 +686,14 @@ build_flags =
'-DTRIGGER_GPIO=39'
'-DSLEEP_BUTTON=39'
'-DIR_EMITTER_GPIO=12'
'-DANEOPIX_IND_DATA_GPIO=27'
'-DANEOPIX_IND_NUM_LEDS=25'
'-DRGB_INDICATORS=true'
'-DLED_ADDRESSABLE_PIN1=27'
'-DLED_ADDRESSABLE_NUM=25'
'-DLED_ADDRESSABLE=true'
'-DLED_ERROR=4'
'-DLED_PROCESSING=3'
'-DLED_BROKER=2'
'-DLED_NETWORK=1'
'-DLED_POWER=0'
'-DGateway_Name="OMG_ATOM_M"'
board_upload.speed = 1500000
custom_description = Compact enclosure ESP32 with BLE gateway
@@ -713,9 +717,9 @@ build_flags =
'-DTRIGGER_GPIO=39'
'-DSLEEP_BUTTON=39'
'-DIR_EMITTER_GPIO=12'
'-DANEOPIX_IND_DATA_GPIO=27'
'-DANEOPIX_IND_NUM_LEDS=1'
'-DRGB_INDICATORS=true'
'-DLED_ADDRESSABLE_PIN1=27'
'-DLED_ADDRESSABLE_NUM=1'
'-DLED_ADDRESSABLE=true'
'-DGateway_Name="OMG_ATOM_L"'
board_upload.speed = 1500000
custom_description = Compact enclosure ESP32 with BLE gateway
@@ -1145,11 +1149,11 @@ build_flags =
'-DZgatewayLORA="LORA"'
'-DZgatewayBT="BT"'
'-DGateway_Name="OMG_ESP32_BLE_LORA"'
'-DLED_SEND_RECEIVE=21' # T-BEAM board V0.5
# '-DLED_SEND_RECEIVE=14' # T-BEAM board V0.7
# '-DLED_SEND_RECEIVE=4' # T-BEAM board V1.0+
'-DLED_PIN=21' # T-BEAM board V0.5
# '-DLED_PIN=14' # T-BEAM board V0.7
# '-DLED_PIN=4' # T-BEAM board V1.0+
'-DTimeLedON=0.05'
'-DLED_SEND_RECEIVE_ON=1' # Set 0 for board V1.0+
'-DLED_PIN_ON=1' # Set 0 for board V1.0+
# for V0.5 and V0.7 ONLY (V1.0+ as onboard AXP202 dedicated chip, need driver)
# it's a 100K/100K divider (so 2 divider) and connected to GPIO35
'-DZsensorADC="ADC"'
@@ -1173,9 +1177,9 @@ build_flags =
'-DZgatewayLORA="LORA"'
'-DLORA_BAND=868E6'
'-DGateway_Name="OMG_ESP32_LORA"'
'-DLED_SEND_RECEIVE=25'
'-DLED_PIN=25'
'-DTimeLedON=0.1'
'-DLED_SEND_RECEIVE_ON=1'
'-DLED_PIN_ON=1'
; *** ssd1306 Display Options ***
'-DZdisplaySSD1306="HELTEC_SSD1306"'
; '-DLOG_TO_OLED=true' ; Enable log to OLED
@@ -1352,7 +1356,7 @@ build_flags =
${com-esp.build_flags}
'-DZgatewayIR="IR"'
'-DTRIGGER_GPIO=13'
'-DLED_SEND_RECEIVE=4'
'-DLED_PIN=4'
'-DIR_EMITTER_GPIO=14'
'-DIR_RECEIVER_GPIO=5'
'-UMQTTsetMQTT' ;We remove this function to have sufficient FLASH available for OTA, you should also use ESPWifiManualSetup and 'board_build.ldscript = eagle.flash.1m64.ld' to save flash memory and have OTA working
@@ -1565,8 +1569,8 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DLED_SEND_RECEIVE=2'
'-DLED_SEND_RECEIVE_ON=0'
'-DLED_PIN=2'
'-DLED_PIN_ON=0'
'-DTimeBtwRead=0'
'-DScan_duration=3000'
'-DAttemptBLEConnect=false'
@@ -1585,9 +1589,9 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DANEOPIX_IND_DATA_GPIO=48'
'-DANEOPIX_IND_NUM_LEDS=1'
'-DRGB_INDICATORS=true'
'-DLED_ADDRESSABLE_PIN1=48'
'-DLED_ADDRESSABLE_NUM=1'
'-DLED_ADDRESSABLE=true'
'-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
'-DGateway_Name="OMG_ESP32_BLE"'
custom_description = BLE gateway on the S3
@@ -1605,9 +1609,9 @@ build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DZgatewayIR="IR"'
'-DANEOPIX_IND_DATA_GPIO=35'
'-DANEOPIX_IND_NUM_LEDS=1'
'-DRGB_INDICATORS=true'
'-DLED_ADDRESSABLE_PIN1=35'
'-DLED_ADDRESSABLE_NUM=1'
'-DLED_ADDRESSABLE=true'
'-DTRIGGER_GPIO=41'
'-DIR_EMITTER_GPIO=12'
'-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
@@ -1628,9 +1632,9 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DANEOPIX_IND_DATA_GPIO=8'
'-DANEOPIX_IND_NUM_LEDS=1'
'-DRGB_INDICATORS=true'
'-DLED_ADDRESSABLE_PIN1=8'
'-DLED_ADDRESSABLE_NUM=1'
'-DLED_ADDRESSABLE=true'
'-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
'-DGateway_Name="OMG_ESP32_BLE"'
custom_description = BLE gateway on the C3
@@ -1647,7 +1651,7 @@ build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DLED_INFO=19'
'-DLED_SEND_RECEIVE=20'
'-DLED_PIN=20'
'-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
'-DGateway_Name="OMG_AirM2M_Core_ESP32C3"'
custom_description = BLE gateway on the C3
@@ -1666,11 +1670,11 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DANEOPIX_IND_DATA_GPIO=8'
'-DANEOPIX_IND_NUM_LEDS=1'
; '-DANEOPIX_BRIGHTNESS=10' ; 0 - 255, default 20
'-DLED_ADDRESSABLE_PIN1=8'
'-DLED_ADDRESSABLE_NUM=1'
; '-DDEFAULT_ADJ_BRIGHTNESS=10' ; 0 - 255, default 20
'-DANEOPIX_COLOR_SCHEME=2' ; blue based signalling colors
'-DRGB_INDICATORS=true'
'-DLED_ADDRESSABLE=true'
'-DNO_INT_TEMP_READING=true' ; No internal temperature reading on ESP32 C3 or S3
'-DTRIGGER_GPIO=7'
'-DGateway_Name="OpenMQTTGateway_ESP32C3_DKC02"'
@@ -1698,11 +1702,11 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DANEOPIX_IND_DATA_GPIO=7'
'-DANEOPIX_IND_NUM_LEDS=1'
; '-DANEOPIX_BRIGHTNESS=10' ; 0 - 255, default 20
'-DLED_ADDRESSABLE_PIN1=7'
'-DLED_ADDRESSABLE_NUM=1'
; '-DDEFAULT_ADJ_BRIGHTNESS=10' ; 0 - 255, default 20
'-DANEOPIX_COLOR_SCHEME=1' ; Alternative LED colour scheme: 2 = blue/gold. 1 = green/gold
'-DRGB_INDICATORS=true'
'-DLED_ADDRESSABLE=true'
; The momentary switch on the board is connected to GPIO9
'-DTRIGGER_GPIO=9'
'-DNO_INT_TEMP_READING=true' ; No internal temperature on ESP32 C3 or S3
@@ -1738,9 +1742,9 @@ build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DTRIGGER_GPIO=3'
'-DANEOPIX_IND_DATA_GPIO=2'
'-DANEOPIX_IND_NUM_LEDS=1'
'-DRGB_INDICATORS=true'
'-DLED_ADDRESSABLE_PIN1=2'
'-DLED_ADDRESSABLE_NUM=1'
'-DLED_ADDRESSABLE=true'
'-DNO_INT_TEMP_READING=true' ; Internal temperature reading not building on ESP32 C3 or S3
'-DUSE_MAC_AS_GATEWAY_NAME'
custom_description = BLE gateway on ESP32C3
@@ -1759,8 +1763,8 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DLED_SEND_RECEIVE=2'
'-DLED_SEND_RECEIVE_ON=0'
'-DLED_PIN=2'
'-DLED_PIN_ON=0'
'-DGateway_Name="OMG_THINGPULSE_ETH_BLE"'
'-DESP32_ETHERNET=true'
'-DETH_PHY_TYPE=ETH_PHY_LAN8720'
@@ -1769,13 +1773,13 @@ build_flags =
'-DETH_PHY_MDC=23'
'-DETH_PHY_MDIO=18'
'-DETH_CLK_MODE=ETH_CLOCK_GPIO16_OUT'
'-DANEOPIX_IND_DATA_GPIO=32'
'-DANEOPIX_IND_NUM_LEDS=4'
'-DANEOPIX_INFO_LED=0'
'-DANEOPIX_SEND_RECEIVE_LED=1'
'-DANEOPIX_ERROR_LED=2'
'-DANEOPIX_BRIGHTNESS=255'
'-DRGB_INDICATORS=true'
'-DLED_ADDRESSABLE_PIN1=32'
'-DLED_ADDRESSABLE_NUM=4'
'-DLED_BROKER=0'
'-DLED_PROCESSING=1'
'-DLED_ERROR=2'
'-DDEFAULT_ADJ_BRIGHTNESS=255'
'-DLED_ADDRESSABLE=true'
; '-DsimplePublishing=true'
custom_description = BLE Gateway using ethernet or wifi with external antenna
custom_hardware = ThingPulse gateway single ESP32
@@ -1793,8 +1797,8 @@ lib_deps =
build_flags =
${com-esp32.build_flags}
'-DZgatewayBT="BT"'
'-DLED_SEND_RECEIVE=2'
'-DLED_SEND_RECEIVE_ON=0'
'-DLED_PIN=2'
'-DLED_PIN_ON=0'
'-DGateway_Name="OMG_ESP32_BLE"'
'-DUSE_BLUFI=1'
'-DARDUINO_LOOP_STACK_SIZE=17500'