oop output card display binding
This commit is contained in:
parent
59b1ade59d
commit
2d0d38ecf3
6 changed files with 355 additions and 124 deletions
|
@ -1,7 +1,9 @@
|
|||
#pragma once
|
||||
#include <Arduino.h>
|
||||
#include <map>
|
||||
|
||||
#define DISPLAY_FETCH_TIMEOUT 100 // ms
|
||||
#define DISPLAY_FETCH_RETRY_COUNT 5
|
||||
|
||||
class ESPMegaDisplay
|
||||
{
|
||||
|
@ -18,14 +20,11 @@ class ESPMegaDisplay
|
|||
const char* getString(const char* component);
|
||||
bool getStringToBuffer(const char* component, char* buffer, uint8_t buffer_size);
|
||||
uint32_t getNumber(const char* component);
|
||||
void handlePwmStateChange(uint8_t pin, uint16_t value);
|
||||
void handleInputStateChange(uint8_t pin, bool state);
|
||||
void registerPushCallback(std::function<void(uint8_t, uint8_t)> callback);
|
||||
void registerPopCallback(std::function<void(uint8_t, uint8_t)> callback);
|
||||
void registerPageChangeCallback(std::function<void(uint8_t)> callback);
|
||||
void unregisterPushCallback();
|
||||
void unregisterPopCallback();
|
||||
void unregisterPageChangeCallback();
|
||||
uint16_t registerTouchCallback(std::function<void(uint8_t, uint8_t, uint8_t)> callback);
|
||||
void deregisterTouchCallback(uint16_t handle);
|
||||
uint16_t registerPageChangeCallback(std::function<void(uint8_t)> callback);
|
||||
void deregisterPageChangeCallback(uint16_t handle);
|
||||
|
||||
protected:
|
||||
uint8_t currentPage;
|
||||
uint8_t rx_buffer_index;
|
||||
|
@ -41,7 +40,6 @@ class ESPMegaDisplay
|
|||
bool payloadIsValid();
|
||||
bool waitForValidPayload(uint32_t timeout);
|
||||
HardwareSerial *displayAdapter;
|
||||
std::function<void(uint8_t, uint8_t)> pushCallback;
|
||||
std::function<void(uint8_t, uint8_t)> popCallback;
|
||||
std::function<void(uint8_t)> pageChangeCallback;
|
||||
std::map<uint16_t, std::function<void(uint8_t, uint8_t, uint8_t)>> touch_callbacks;
|
||||
std::map<uint16_t, std::function<void(uint8_t)>> page_change_callbacks;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue