MiLightRadioFactory.cpp 887 B

123456789101112131415161718192021222324252627282930313233
  1. #include <MiLightRadioFactory.h>
  2. MiLightRadioFactory* MiLightRadioFactory::fromSettings(const Settings& settings) {
  3. switch (settings.radioInterfaceType) {
  4. case nRF24:
  5. return new NRF24Factory(settings.csnPin, settings.cePin);
  6. case LT8900:
  7. return new LT8900Factory(settings.csnPin, settings.resetPin, settings.cePin);
  8. default:
  9. return NULL;
  10. }
  11. }
  12. NRF24Factory::NRF24Factory(uint8_t csnPin, uint8_t cePin)
  13. : rf24(RF24(cePin, csnPin))
  14. { }
  15. MiLightRadio* NRF24Factory::create(const MiLightRadioConfig &config) {
  16. return new NRF24MiLightRadio(rf24, config);
  17. }
  18. LT8900Factory::LT8900Factory(uint8_t csPin, uint8_t resetPin, uint8_t pktFlag)
  19. : _csPin(csPin),
  20. _resetPin(resetPin),
  21. _pktFlag(pktFlag)
  22. { }
  23. MiLightRadio* LT8900Factory::create(const MiLightRadioConfig& config) {
  24. return new LT8900MiLightRadio(_csPin, _resetPin, _pktFlag, config);
  25. }