migrate callbacks from std::vector to std::map
This commit is contained in:
parent
c635427d64
commit
5f6e586945
11 changed files with 143 additions and 178 deletions
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
#include <IoTComponent.hpp>
|
||||
#include <AnalogCard.hpp>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
#define DAC_SET_STATE_TOPIC "/set/state"
|
||||
#define DAC_SET_VALUE_TOPIC "/set/value"
|
||||
|
@ -26,7 +26,7 @@ class AnalogIoT : public IoTComponent {
|
|||
void setADCsPublishInterval(uint32_t interval);
|
||||
void setADCsPublishEnabled(bool enabled);
|
||||
void registerADCConversionCallback(std::function<void(uint8_t, uint16_t)> callback);
|
||||
// void deregisterADCConversionCallback(std::function<void(uint8_t, uint16_t)> callback);
|
||||
void deregisterADCConversionCallback(uint8_t handler);
|
||||
void setADCConversionInterval(uint8_t pin, uint16_t interval);
|
||||
void setADCConversionEnabled(uint8_t pin, bool enabled);
|
||||
bool processADCSetConversionIntervalMessage(char *topic, char *payload, uint8_t topic_length);
|
||||
|
@ -39,6 +39,7 @@ class AnalogIoT : public IoTComponent {
|
|||
void loop();
|
||||
uint8_t getType();
|
||||
private:
|
||||
uint8_t adc_conversion_callback_index = 0;
|
||||
uint8_t dac_set_state_length;
|
||||
uint8_t dac_set_value_length;
|
||||
uint8_t dac_state_length;
|
||||
|
@ -50,5 +51,5 @@ class AnalogIoT : public IoTComponent {
|
|||
bool adc_publish_enabled[8];
|
||||
uint16_t adc_conversion_interval[8];
|
||||
uint32_t last_adc_conversion[8];
|
||||
std::vector<std::function<void(uint8_t, uint16_t)>> adc_conversion_callbacks;
|
||||
std::map<uint8_t, std::function<void(uint8_t, uint16_t)>> adc_conversion_callbacks;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue