Merge pull request #472 from geeksville/dev

1.1.4
1.2-legacy 1.1.4
Kevin Hester 2020-10-11 18:39:02 -07:00 zatwierdzone przez GitHub
commit 40c63c0615
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
5 zmienionych plików z 45 dodań i 34 usunięć

Wyświetl plik

@ -1,3 +1,3 @@
export VERSION=1.1.3 export VERSION=1.1.4

Wyświetl plik

@ -138,38 +138,39 @@ int32_t Power::runOnce()
{ {
readPowerStatus(); readPowerStatus();
#ifdef PMU_IRQ #ifdef TBEAM_V10
if (pmu_irq) { // WE no longer use the IRQ line to wake the CPU (due to false wakes from sleep), but we do poll
pmu_irq = false; // the IRQ status by reading the registers over I2C
axp.readIRQ(); axp.readIRQ();
DEBUG_MSG("pmu irq!\n"); if (axp.isVbusRemoveIRQ()) {
DEBUG_MSG("USB unplugged\n");
if (axp.isChargingIRQ()) { powerFSM.trigger(EVENT_POWER_DISCONNECTED);
DEBUG_MSG("Battery start charging\n");
}
if (axp.isChargingDoneIRQ()) {
DEBUG_MSG("Battery fully charged\n");
}
if (axp.isVbusRemoveIRQ()) {
DEBUG_MSG("USB unplugged\n");
powerFSM.trigger(EVENT_POWER_DISCONNECTED);
}
if (axp.isVbusPlugInIRQ()) {
DEBUG_MSG("USB plugged In\n");
powerFSM.trigger(EVENT_POWER_CONNECTED);
}
if (axp.isBattPlugInIRQ()) {
DEBUG_MSG("Battery inserted\n");
}
if (axp.isBattRemoveIRQ()) {
DEBUG_MSG("Battery removed\n");
}
if (axp.isPEKShortPressIRQ()) {
DEBUG_MSG("PEK short button press\n");
}
axp.clearIRQ();
} }
if (axp.isVbusPlugInIRQ()) {
DEBUG_MSG("USB plugged In\n");
powerFSM.trigger(EVENT_POWER_CONNECTED);
}
/*
Other things we could check if we cared...
if (axp.isChargingIRQ()) {
DEBUG_MSG("Battery start charging\n");
}
if (axp.isChargingDoneIRQ()) {
DEBUG_MSG("Battery fully charged\n");
}
if (axp.isBattPlugInIRQ()) {
DEBUG_MSG("Battery inserted\n");
}
if (axp.isBattRemoveIRQ()) {
DEBUG_MSG("Battery removed\n");
}
if (axp.isPEKShortPressIRQ()) {
DEBUG_MSG("PEK short button press\n");
}
*/
axp.clearIRQ();
#endif #endif
// Only read once every 20 seconds once the power status for the app has been initialized // Only read once every 20 seconds once the power status for the app has been initialized

Wyświetl plik

@ -118,12 +118,21 @@ static void serialEnter()
{ {
setBluetoothEnable(false); setBluetoothEnable(false);
screen->setOn(true); screen->setOn(true);
screen->print("Using API...\n");
} }
static void powerEnter() static void powerEnter()
{ {
screen->setOn(true); screen->setOn(true);
setBluetoothEnable(true); setBluetoothEnable(true);
screen->print("Powered...\n");
}
static void powerExit()
{
screen->setOn(true);
setBluetoothEnable(true);
screen->print("Unpowered...\n");
} }
static void onEnter() static void onEnter()
@ -156,7 +165,7 @@ State stateDARK(darkEnter, NULL, NULL, "DARK");
State stateSERIAL(serialEnter, NULL, NULL, "SERIAL"); State stateSERIAL(serialEnter, NULL, NULL, "SERIAL");
State stateBOOT(bootEnter, NULL, NULL, "BOOT"); State stateBOOT(bootEnter, NULL, NULL, "BOOT");
State stateON(onEnter, NULL, NULL, "ON"); State stateON(onEnter, NULL, NULL, "ON");
State statePOWER(powerEnter, NULL, NULL, "POWER"); State statePOWER(powerEnter, NULL, powerExit, "POWER");
Fsm powerFSM(&stateBOOT); Fsm powerFSM(&stateBOOT);
void PowerFSM_setup() void PowerFSM_setup()

Wyświetl plik

@ -20,6 +20,6 @@
#define EVENT_POWER_DISCONNECTED 14 #define EVENT_POWER_DISCONNECTED 14
extern Fsm powerFSM; extern Fsm powerFSM;
extern State statePOWER; extern State statePOWER, stateSERIAL;
void PowerFSM_setup(); void PowerFSM_setup();

Wyświetl plik

@ -128,7 +128,8 @@ class PowerFSMThread : public OSThread
/// If we are in power state we force the CPU to wake every 10ms to check for serial characters (we don't yet wake /// If we are in power state we force the CPU to wake every 10ms to check for serial characters (we don't yet wake
/// cpu for serial rx - FIXME) /// cpu for serial rx - FIXME)
canSleep = (powerFSM.getState() != &statePOWER); auto state = powerFSM.getState();
canSleep = (state != &statePOWER) && (state != &stateSERIAL);
return 10; return 10;
} }