#pragma once #include #include #include #include "LoRaFEMControl.h" #ifndef ADC_MULTIPLIER #define ADC_MULTIPLIER 5.42 #endif class HeltecV4Board : public ESP32Board { KeyValueStore* _prefs = NULL; bool setLoRaFemLnaEnabled(bool enable); bool isLoRaFemLnaEnabled() const; protected: float adc_mult = ADC_MULTIPLIER; public: RefCountedDigitalPin periph_power; LoRaFEMControl loRaFEMControl; HeltecV4Board() : periph_power(PIN_VEXT_EN,PIN_VEXT_EN_ACTIVE) { } void begin(); void attachDynamicPrefs(KeyValueStore* prefs); bool handleCommand(const char* command, uint32_t sender_timestamp, char* reply) override; void onBeforeTransmit(void) override; void onAfterTransmit(void) override; void powerOff() override; uint16_t getBattMilliVolts() override; bool setAdcMultiplier(float multiplier) override { if (multiplier == 0.0f) { adc_mult = ADC_MULTIPLIER; } else { adc_mult = multiplier; } return true; } float getAdcMultiplier() const override { return adc_mult; } const char* getManufacturerName() const override; };