LoRaFEMControl.h 787 B

123456789101112131415161718192021222324252627282930
  1. #pragma once
  2. #include <stdint.h>
  3. typedef enum {
  4. GC1109_PA,
  5. KCT8103L_PA,
  6. OTHER_FEM_TYPES
  7. } LoRaFEMType;
  8. class LoRaFEMControl
  9. {
  10. public:
  11. LoRaFEMControl(){ }
  12. virtual ~LoRaFEMControl(){ }
  13. void init(void);
  14. void setSleepModeEnable(void);
  15. void setTxModeEnable(void);
  16. void setRxModeEnable(void);
  17. void setRxModeEnableWhenMCUSleep(void);
  18. void setLNAEnable(bool enabled);
  19. bool isLnaCanControl(void) const { return lna_can_control; }
  20. void setLnaCanControl(bool can_control) { lna_can_control = can_control; }
  21. bool isLNAEnabled(void) const { return lna_enabled; }
  22. LoRaFEMType getFEMType(void) const { return fem_type; }
  23. private:
  24. LoRaFEMType fem_type=OTHER_FEM_TYPES;
  25. bool lna_enabled=false;
  26. bool lna_can_control=false;
  27. };