Guest User

Untitled

a guest
Jan 10th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #include "RadioDriver.h"
  2. #include "RadioDriver95.h"
  3. #include "RadioDriver69.h"
  4.  
  5. void setup()
  6. {
  7.     RadioDriver *radioDriver;
  8.  
  9.     if(whatever)
  10.         radioDriver = new RadioDriver95(4, 5);
  11.     else
  12.         radioDriver = new RadioDriver69(4, 5);
  13.    
  14.     //Do stuff..
  15.  
  16.     uint8_t stuff[] = {1, 2, 3, 4, 5};
  17.  
  18.     //Now you address them the same way, and not care which was selected...
  19.     radioDriver->send(stuff, 5);
  20.  
  21.     return 0;
  22. }
  23.  
  24.  
  25. /*
  26. RadioDriver.h
  27. */
  28. class RadioDriver
  29. {
  30. protected:
  31.     uint8_t chipSelectPin{};
  32.     uint8_t intPin{};
  33. public:
  34.     RadioDriver(uint8_t chipSelectPin, uint8_t intPin){}
  35.     virtual void send(uint8_t *radioPacket, uint8_t radioPacketSize)=0;
  36. };
  37.  
  38.  
  39. /*
  40. RadioDriver95.h
  41. */
  42. #import "RadioDriver.h"
  43.  
  44. class RadioDriver95 : public RadioDriver
  45. {
  46. public:
  47.     RadioDriver95(uint8_t chipSelectPin, uint8_t intPin) : RadioDriver(chipSelectPin, intPin);
  48.     void send(uint8_t *radioPacket, uint8_t radioPacketSize);
  49. };
  50.  
  51. void RadioDriver95::send(uint8_t *radioPacket, uint8_t radioPacketSize)
  52. {
  53.     //Send data to 95 driver...
  54. }
  55.  
  56.  
  57. /*
  58. RadioDriver69.h
  59. */
  60.  
  61. #import "RadioDriver.h"
  62.  
  63. class RadioDriver69 : public RadioDriver
  64. {
  65. public:
  66.     RadioDriver69(uint8_t chipSelectPin, uint8_t intPin) : RadioDriver(chipSelectPin, intPin);
  67.     void send(uint8_t *radioPacket, uint8_t radioPacketSize);
  68. };
  69.  
  70. void RadioDriver69::send(uint8_t *radioPacket, uint8_t radioPacketSize)
  71. {
  72.     //Send data to 69 driver...
  73. }
Advertisement
Add Comment
Please, Sign In to add comment