MiLightRadioFactory.h 979 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include <RF24.h>
  2. #include <PL1167_nRF24.h>
  3. #include <MiLightRadioConfig.h>
  4. #include <MiLightRadio.h>
  5. #include <NRF24MiLightRadio.h>
  6. #include <LT8900MiLightRadio.h>
  7. #include <RF24PowerLevel.h>
  8. #include <Settings.h>
  9. #ifndef _MILIGHT_RADIO_FACTORY_H
  10. #define _MILIGHT_RADIO_FACTORY_H
  11. class MiLightRadioFactory {
  12. public:
  13. virtual MiLightRadio* create(const MiLightRadioConfig& config) = 0;
  14. static MiLightRadioFactory* fromSettings(const Settings& settings);
  15. };
  16. class NRF24Factory : public MiLightRadioFactory {
  17. public:
  18. NRF24Factory(uint8_t cePin, uint8_t csnPin, RF24PowerLevel rF24PowerLevel);
  19. virtual MiLightRadio* create(const MiLightRadioConfig& config);
  20. protected:
  21. RF24 rf24;
  22. };
  23. class LT8900Factory : public MiLightRadioFactory {
  24. public:
  25. LT8900Factory(uint8_t csPin, uint8_t resetPin, uint8_t pktFlag);
  26. virtual MiLightRadio* create(const MiLightRadioConfig& config);
  27. protected:
  28. uint8_t _csPin;
  29. uint8_t _resetPin;
  30. uint8_t _pktFlag;
  31. };
  32. #endif