MiLightRadioFactory.h 920 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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 <Settings.h>
  8. #ifndef _MILIGHT_RADIO_FACTORY_H
  9. #define _MILIGHT_RADIO_FACTORY_H
  10. class MiLightRadioFactory {
  11. public:
  12. virtual MiLightRadio* create(const MiLightRadioConfig& config) = 0;
  13. static MiLightRadioFactory* fromSettings(const Settings& settings);
  14. };
  15. class NRF24Factory : public MiLightRadioFactory {
  16. public:
  17. NRF24Factory(uint8_t cePin, uint8_t csnPin);
  18. virtual MiLightRadio* create(const MiLightRadioConfig& config);
  19. protected:
  20. RF24 rf24;
  21. };
  22. class LT8900Factory : public MiLightRadioFactory {
  23. public:
  24. LT8900Factory(uint8_t csPin, uint8_t resetPin, uint8_t pktFlag);
  25. virtual MiLightRadio* create(const MiLightRadioConfig& config);
  26. protected:
  27. uint8_t _csPin;
  28. uint8_t _resetPin;
  29. uint8_t _pktFlag;
  30. };
  31. #endif