mirror of
https://github.com/meshtastic/firmware.git
synced 2026-01-20 00:37:36 +00:00
* Preliminary Thinknode M4 Support * oops * Fix RF switch TX configuration * trunk'd * GPS fix for M4 * Battery handling and LED for M4 * Trunk * Drop debug warnings * Make Red LED notification * Merge cleanup * Make white LEDs flash during charge --------- Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz>
53 lines
1.6 KiB
C++
53 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include "BluetoothStatus.h"
|
|
#include "MeshModule.h"
|
|
#include "PowerStatus.h"
|
|
#include "concurrency/OSThread.h"
|
|
#include "configuration.h"
|
|
#include "input/InputBroker.h"
|
|
#include <Arduino.h>
|
|
#include <functional>
|
|
|
|
class StatusLEDModule : private concurrency::OSThread
|
|
{
|
|
bool slowTrack = false;
|
|
|
|
public:
|
|
StatusLEDModule();
|
|
|
|
int handleStatusUpdate(const meshtastic::Status *);
|
|
|
|
int handleInputEvent(const InputEvent *arg);
|
|
|
|
protected:
|
|
unsigned int my_interval = 1000; // interval in millisconds
|
|
virtual int32_t runOnce() override;
|
|
|
|
CallbackObserver<StatusLEDModule, const meshtastic::Status *> bluetoothStatusObserver =
|
|
CallbackObserver<StatusLEDModule, const meshtastic::Status *>(this, &StatusLEDModule::handleStatusUpdate);
|
|
CallbackObserver<StatusLEDModule, const meshtastic::Status *> powerStatusObserver =
|
|
CallbackObserver<StatusLEDModule, const meshtastic::Status *>(this, &StatusLEDModule::handleStatusUpdate);
|
|
CallbackObserver<StatusLEDModule, const InputEvent *> inputObserver =
|
|
CallbackObserver<StatusLEDModule, const InputEvent *>(this, &StatusLEDModule::handleInputEvent);
|
|
|
|
private:
|
|
bool CHARGE_LED_state = LED_STATE_OFF;
|
|
bool PAIRING_LED_state = LED_STATE_OFF;
|
|
|
|
uint32_t PAIRING_LED_starttime = 0;
|
|
uint32_t lastUserbuttonTime = 0;
|
|
uint32_t POWER_LED_starttime = 0;
|
|
bool doing_fast_blink = false;
|
|
|
|
enum PowerState { discharging, charging, charged, critical };
|
|
|
|
PowerState power_state = discharging;
|
|
|
|
enum BLEState { unpaired, pairing, connected };
|
|
|
|
BLEState ble_state = unpaired;
|
|
};
|
|
|
|
extern StatusLEDModule *statusLEDModule;
|