mirror of
https://github.com/lora-aprs/LoRa_APRS_iGate.git
synced 2026-01-10 10:40:11 +01:00
Uses GPIO to power OLED display
defined in is-cfg.json as display -> pin_vcc display -> pin_gnd currently configured on main thread. Should probably be moved to display initialization.
This commit is contained in:
parent
657cfd7e39
commit
93324c64cf
|
|
@ -100,6 +100,15 @@ void setup() {
|
|||
|
||||
LoRaSystem.setBoardConfig(boardConfig);
|
||||
LoRaSystem.setUserConfig(&userConfig);
|
||||
|
||||
if (userConfig.display.vccPin != 0 && userConfig.display.gndPin != 0) {
|
||||
pinMode(userConfig.display.vccPin, OUTPUT);
|
||||
digitalWrite(userConfig.display.vccPin, HIGH);
|
||||
pinMode(userConfig.display.gndPin, OUTPUT);
|
||||
digitalWrite(userConfig.display.gndPin, LOW);
|
||||
LoRaSystem.getLogger().log(logging::LoggerLevel::LOGGER_LEVEL_DEBUG, MODULE_NAME, "Using GPIO to power display: VCC %d , GND %d", userConfig.display.vccPin, userConfig.display.gndPin);
|
||||
}
|
||||
|
||||
LoRaSystem.getTaskManager().addTask(&displayTask);
|
||||
LoRaSystem.getTaskManager().addTask(&modemTask);
|
||||
LoRaSystem.getTaskManager().addTask(&routerTask);
|
||||
|
|
@ -145,6 +154,14 @@ void setup() {
|
|||
pinMode(userConfig.display.overwritePin, INPUT_PULLUP);
|
||||
}
|
||||
|
||||
if (userConfig.display.vccPin != 0 && userConfig.display.gndPin != 0) {
|
||||
pinMode(userConfig.display.vccPin, OUTPUT);
|
||||
digitalWrite(userConfig.display.vccPin, HIGH);
|
||||
pinMode(userConfig.display.gndPin, OUTPUT);
|
||||
digitalWrite(userConfig.display.gndPin, LOW);
|
||||
LoRaSystem.getLogger().log(logging::LoggerLevel::LOGGER_LEVEL_DEBUG, MODULE_NAME, "Using GPIO to power display: VCC %d , GND %d", userConfig.display.vccPin, userConfig.display.gndPin);
|
||||
}
|
||||
|
||||
delay(5000);
|
||||
LoRaSystem.getLogger().log(logging::LoggerLevel::LOGGER_LEVEL_INFO, MODULE_NAME, "setup done...");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,6 +62,8 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen
|
|||
conf.display.alwaysOn = data["display"]["always_on"] | true;
|
||||
conf.display.timeout = data["display"]["timeout"] | 10;
|
||||
conf.display.overwritePin = data["display"]["overwrite_pin"] | 0;
|
||||
conf.display.vccPin = data["display"]["pin_vcc"] | 0;
|
||||
conf.display.gndPin = data["display"]["pin_gnd"] | 0;
|
||||
conf.display.turn180 = data["display"]["turn180"] | true;
|
||||
|
||||
conf.ftp.active = data["ftp"]["active"] | false;
|
||||
|
|
@ -140,6 +142,8 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co
|
|||
data["display"]["always_on"] = conf.display.alwaysOn;
|
||||
data["display"]["timeout"] = conf.display.timeout;
|
||||
data["display"]["overwrite_pin"] = conf.display.overwritePin;
|
||||
data["display"]["pin_vcc"] = conf.display.vccPin;
|
||||
data["display"]["pin_gnd"] = conf.display.gndPin;
|
||||
data["display"]["turn180"] = conf.display.turn180;
|
||||
data["ftp"]["active"] = conf.ftp.active;
|
||||
JsonArray users = data["ftp"].createNestedArray("user");
|
||||
|
|
|
|||
|
|
@ -94,12 +94,14 @@ public:
|
|||
|
||||
class Display {
|
||||
public:
|
||||
Display() : alwaysOn(true), timeout(10), overwritePin(0), turn180(true) {
|
||||
Display() : alwaysOn(true), timeout(10), overwritePin(0), vccPin(0), gndPin(0), turn180(true) {
|
||||
}
|
||||
|
||||
bool alwaysOn;
|
||||
int timeout;
|
||||
int overwritePin;
|
||||
int vccPin;
|
||||
int gndPin;
|
||||
bool turn180;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue