HeltecV4Board.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include <Arduino.h>
  3. #include <helpers/RefCountedDigitalPin.h>
  4. #include <helpers/ESP32Board.h>
  5. #include <driver/rtc_io.h>
  6. #include "LoRaFEMControl.h"
  7. #ifndef ADC_MULTIPLIER
  8. #define ADC_MULTIPLIER 5.42
  9. #endif
  10. class HeltecV4Board : public ESP32Board {
  11. protected:
  12. float adc_mult = ADC_MULTIPLIER;
  13. public:
  14. RefCountedDigitalPin periph_power;
  15. LoRaFEMControl loRaFEMControl;
  16. HeltecV4Board() : periph_power(PIN_VEXT_EN,PIN_VEXT_EN_ACTIVE) { }
  17. void begin();
  18. void onBeforeTransmit(void) override;
  19. void onAfterTransmit(void) override;
  20. void enterDeepSleep(uint32_t secs, int pin_wake_btn = -1);
  21. void powerOff() override;
  22. bool setLoRaFemLnaEnabled(bool enable) override;
  23. bool canControlLoRaFemLna() const override;
  24. bool isLoRaFemLnaEnabled() const override;
  25. uint16_t getBattMilliVolts() override;
  26. bool setAdcMultiplier(float multiplier) override {
  27. if (multiplier == 0.0f) {
  28. adc_mult = ADC_MULTIPLIER;
  29. } else {
  30. adc_mult = multiplier;
  31. }
  32. return true;
  33. }
  34. float getAdcMultiplier() const override { return adc_mult; }
  35. const char* getManufacturerName() const override;
  36. };