Merge PR #55: Make push button active high/low configurable
This commit is contained in:
commit
43fd436161
@ -91,9 +91,10 @@ void Core::setAdvertisingTimeout(int advertisingTimeout)
|
|||||||
m_advertisingTimeout = advertisingTimeout;
|
m_advertisingTimeout = advertisingTimeout;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Core::addGPioButton(int buttonGpio)
|
void Core::addGPioButton(int buttonGpio, bool activeLow)
|
||||||
{
|
{
|
||||||
GpioButton *button = new GpioButton(buttonGpio, this);
|
GpioButton *button = new GpioButton(buttonGpio, this);
|
||||||
|
button->setActiveLow(activeLow);
|
||||||
button->setLongPressedTimeout(2000);
|
button->setLongPressedTimeout(2000);
|
||||||
connect(button, &GpioButton::longPressed, this, &Core::startService);
|
connect(button, &GpioButton::longPressed, this, &Core::startService);
|
||||||
m_buttons.append(button);
|
m_buttons.append(button);
|
||||||
|
|||||||
@ -73,7 +73,7 @@ public:
|
|||||||
int advertisingTimeout() const;
|
int advertisingTimeout() const;
|
||||||
void setAdvertisingTimeout(int advertisingTimeout);
|
void setAdvertisingTimeout(int advertisingTimeout);
|
||||||
|
|
||||||
void addGPioButton(int buttonGpio);
|
void addGPioButton(int buttonGpio, bool activeLow = false);
|
||||||
void enableDBusInterface(QDBusConnection::BusType busType);
|
void enableDBusInterface(QDBusConnection::BusType busType);
|
||||||
|
|
||||||
void run();
|
void run();
|
||||||
|
|||||||
@ -93,6 +93,7 @@ int main(int argc, char *argv[])
|
|||||||
Core::Mode mode = Core::ModeOffline;
|
Core::Mode mode = Core::ModeOffline;
|
||||||
int timeout = 60;
|
int timeout = 60;
|
||||||
int buttonGpio = -1;
|
int buttonGpio = -1;
|
||||||
|
bool buttonActiveLow = false;
|
||||||
QString advertiseName = "BT-WiFi";
|
QString advertiseName = "BT-WiFi";
|
||||||
bool forceFullName = false;
|
bool forceFullName = false;
|
||||||
QString platformName = "nymea";
|
QString platformName = "nymea";
|
||||||
@ -189,6 +190,9 @@ int main(int argc, char *argv[])
|
|||||||
if (settings.contains("ButtonGpio")) {
|
if (settings.contains("ButtonGpio")) {
|
||||||
buttonGpio = settings.value("ButtonGpio", -1).toInt(&gpioValueOk);
|
buttonGpio = settings.value("ButtonGpio", -1).toInt(&gpioValueOk);
|
||||||
}
|
}
|
||||||
|
if (settings.contains("ButtonActiveLow")) {
|
||||||
|
buttonActiveLow = settings.value("ButtonActiveLow", false).toBool();
|
||||||
|
}
|
||||||
if (settings.contains("Timeout")) {
|
if (settings.contains("Timeout")) {
|
||||||
timeout = settings.value("Timeout").toInt(&timeoutValueOk);
|
timeout = settings.value("Timeout").toInt(&timeoutValueOk);
|
||||||
}
|
}
|
||||||
@ -274,7 +278,7 @@ int main(int argc, char *argv[])
|
|||||||
qCDebug(dcApplication()) << "Mode:" << mode;
|
qCDebug(dcApplication()) << "Mode:" << mode;
|
||||||
qCDebug(dcApplication()) << "Timeout:" << timeout;
|
qCDebug(dcApplication()) << "Timeout:" << timeout;
|
||||||
if (mode == Core::ModeButton && buttonGpio > 0) {
|
if (mode == Core::ModeButton && buttonGpio > 0) {
|
||||||
qCDebug(dcApplication()) << "Button GPIO:" << buttonGpio;
|
qCDebug(dcApplication()) << QString("Button GPIO: %1 (Active %2)").arg(buttonGpio).arg(buttonActiveLow ? "low" : "high");
|
||||||
}
|
}
|
||||||
if (!dbusBusType.isEmpty() && dbusBusType != "none") {
|
if (!dbusBusType.isEmpty() && dbusBusType != "none") {
|
||||||
qCDebug(dcApplication()) << "DBus interface:" << dbusBusType;
|
qCDebug(dcApplication()) << "DBus interface:" << dbusBusType;
|
||||||
@ -286,7 +290,7 @@ int main(int argc, char *argv[])
|
|||||||
core.setAdvertisingTimeout(timeout);
|
core.setAdvertisingTimeout(timeout);
|
||||||
core.setAdvertiseName(advertiseName, forceFullName);
|
core.setAdvertiseName(advertiseName, forceFullName);
|
||||||
core.setPlatformName(platformName);
|
core.setPlatformName(platformName);
|
||||||
core.addGPioButton(buttonGpio);
|
core.addGPioButton(buttonGpio, buttonActiveLow);
|
||||||
if (dbusBusType == "system") {
|
if (dbusBusType == "system") {
|
||||||
core.enableDBusInterface(QDBusConnection::SystemBus);
|
core.enableDBusInterface(QDBusConnection::SystemBus);
|
||||||
} else if (dbusBusType == "session") {
|
} else if (dbusBusType == "session") {
|
||||||
|
|||||||
Reference in New Issue
Block a user