Adafruit Library
ws_pixels.h
Go to the documentation of this file.
1 
18 #ifndef WS_PIXELS
19 #define WS_PIXELS
20 
21 #include "Wippersnapper.h"
22 
23 #define MAX_PIXEL_STRANDS \
24  5
25 
26 #define ERR_INVALID_STRAND -1
27 
28 
29 struct strand_s {
30  Adafruit_NeoPixel *neoPixelPtr;
31  Adafruit_DotStar *dotStarPtr;
32  wippersnapper_pixels_v1_PixelsType
33  type;
34  uint8_t brightness;
35  uint16_t numPixels;
36  wippersnapper_pixels_v1_PixelsOrder ordering;
37  int16_t pinNeoPixel;
38  int16_t pinDotStarData;
39  int16_t pinDotStarClock;
40 };
41 
42 class Wippersnapper;
43 /**************************************************************************/
48 /**************************************************************************/
49 class ws_pixels {
50 public:
51  ws_pixels();
52  ~ws_pixels();
53 
54  // Protobuf RPC
55  bool
56  addStrand(wippersnapper_pixels_v1_PixelsCreateRequest *pixelsCreateReqMsg);
57  void
58  deleteStrand(wippersnapper_pixels_v1_PixelsDeleteRequest *pixelsDeleteMsg);
59  void fillStrand(wippersnapper_pixels_v1_PixelsWriteRequest *pixelsWriteMsg);
60 
61  // Helpers
62  int16_t allocateStrand();
63  void deallocateStrand(int16_t strandIdx);
64  int getStrandIdx(int16_t pin, wippersnapper_pixels_v1_PixelsType type);
65  neoPixelType
66  getNeoPixelStrandOrder(wippersnapper_pixels_v1_PixelsOrder pixelOrder);
67  uint8_t getDotStarStrandOrder(wippersnapper_pixels_v1_PixelsOrder pixelOrder);
68  void publishAddStrandResponse(bool is_success, char *pixels_pin_data);
69  uint32_t getGammaCorrectedColor(uint32_t pixel_color, strand_s strand);
70 };
71 extern Wippersnapper WS;
72 #endif // WS_PIXELS
Adafruit_NeoPixel * neoPixelPtr
Ptr to a NeoPixel object.
Definition: ws_pixels.h:30
int16_t pinDotStarClock
DotStar strand clock pin.
Definition: ws_pixels.h:39
uint8_t brightness
Strand brightness (0 to 255)
Definition: ws_pixels.h:34
Definition: ws_pixels.h:29
int16_t pinDotStarData
DotStar strand data pin.
Definition: ws_pixels.h:38
int16_t pinNeoPixel
NeoPixel strand data pin.
Definition: ws_pixels.h:37
Class that provides storage and functions for the Adafruit IO Wippersnapper interface.
Definition: Wippersnapper.h:283
friend class
Definition: ws_pixels.h:49
wippersnapper_pixels_v1_PixelsType type
Type of strand (DotStar, NeoPixel)
Definition: ws_pixels.h:33
uint16_t numPixels
Number of pixels on strand.
Definition: ws_pixels.h:35
Wippersnapper WS
Definition: Wippersnapper.cpp:36
Adafruit_DotStar * dotStarPtr
Ptr to a DotStar object.
Definition: ws_pixels.h:31
wippersnapper_pixels_v1_PixelsOrder ordering
Color order of strand.
Definition: ws_pixels.h:36