Read display pinmapping from json file
This commit is contained in:
parent
bb3e12814d
commit
b96d87b933
@ -24,6 +24,11 @@ struct PinMapping_t {
|
||||
int eth_mdio;
|
||||
eth_phy_type_t eth_type;
|
||||
eth_clock_mode_t eth_clk_mode;
|
||||
uint8_t display_type;
|
||||
uint8_t display_data;
|
||||
uint8_t display_clk;
|
||||
uint8_t display_cs;
|
||||
uint8_t display_reset;
|
||||
};
|
||||
|
||||
class PinMappingClass {
|
||||
|
||||
@ -10,6 +10,26 @@
|
||||
|
||||
#define JSON_BUFFER_SIZE 6144
|
||||
|
||||
#ifndef DISPLAY_TYPE
|
||||
#define DISPLAY_TYPE 0
|
||||
#endif
|
||||
|
||||
#ifndef DISPLAY_DATA
|
||||
#define DISPLAY_DATA 255
|
||||
#endif
|
||||
|
||||
#ifndef DISPLAY_CLK
|
||||
#define DISPLAY_CLK 255
|
||||
#endif
|
||||
|
||||
#ifndef DISPLAY_CS
|
||||
#define DISPLAY_CS 255
|
||||
#endif
|
||||
|
||||
#ifndef DISPLAY_RESET
|
||||
#define DISPLAY_RESET 255
|
||||
#endif
|
||||
|
||||
PinMappingClass PinMapping;
|
||||
|
||||
PinMappingClass::PinMappingClass()
|
||||
@ -34,6 +54,13 @@ PinMappingClass::PinMappingClass()
|
||||
_pinMapping.eth_mdio = ETH_PHY_MDIO;
|
||||
_pinMapping.eth_type = ETH_PHY_TYPE;
|
||||
_pinMapping.eth_clk_mode = ETH_CLK_MODE;
|
||||
|
||||
_pinMapping.display_type = DISPLAY_TYPE;
|
||||
_pinMapping.display_data = DISPLAY_DATA;
|
||||
_pinMapping.display_clk = DISPLAY_CLK;
|
||||
_pinMapping.display_cs = DISPLAY_CS;
|
||||
_pinMapping.display_reset = DISPLAY_RESET;
|
||||
|
||||
}
|
||||
|
||||
PinMapping_t& PinMappingClass::get()
|
||||
@ -80,6 +107,12 @@ bool PinMappingClass::init(const String& deviceMapping)
|
||||
_pinMapping.eth_type = doc[i]["eth"]["type"] | ETH_PHY_TYPE;
|
||||
_pinMapping.eth_clk_mode = doc[i]["eth"]["clk_mode"] | ETH_CLK_MODE;
|
||||
|
||||
_pinMapping.display_type = doc[i]["display"]["type"] | DISPLAY_TYPE;
|
||||
_pinMapping.display_data = doc[i]["display"]["data"] | DISPLAY_DATA;
|
||||
_pinMapping.display_clk = doc[i]["display"]["clk"] | DISPLAY_CLK;
|
||||
_pinMapping.display_cs = doc[i]["display"]["cs"] | DISPLAY_CS;
|
||||
_pinMapping.display_reset = doc[i]["display"]["reset"] | DISPLAY_RESET;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -65,6 +65,7 @@ void setup()
|
||||
} else {
|
||||
MessageOutput.print(F("using default config "));
|
||||
}
|
||||
const PinMapping_t& pin = PinMapping.get();
|
||||
MessageOutput.println(F("done"));
|
||||
|
||||
// Initialize WiFi
|
||||
@ -93,7 +94,12 @@ void setup()
|
||||
|
||||
// Initialize Display
|
||||
MessageOutput.print(F("Initialize Display... "));
|
||||
Display.init(DisplayType_t::SSD1306, SDA, SCL, 255, 255);
|
||||
Display.init(
|
||||
static_cast<DisplayType_t>(pin.display_type),
|
||||
pin.display_data,
|
||||
pin.display_clk,
|
||||
pin.display_cs,
|
||||
pin.display_reset);
|
||||
MessageOutput.println(F("done"));
|
||||
|
||||
// Check for default DTU serial
|
||||
@ -114,7 +120,6 @@ void setup()
|
||||
MessageOutput.print(F("Initialize Hoymiles interface... "));
|
||||
if (PinMapping.isValidNrf24Config()) {
|
||||
SPIClass* spiClass = new SPIClass(HSPI);
|
||||
PinMapping_t& pin = PinMapping.get();
|
||||
spiClass->begin(pin.nrf24_clk, pin.nrf24_miso, pin.nrf24_mosi, pin.nrf24_cs);
|
||||
Hoymiles.setMessageOutput(&MessageOutput);
|
||||
Hoymiles.init(spiClass, pin.nrf24_en, pin.nrf24_irq);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user