Tweaks to Example 11
This commit is contained in:
parent
1fd493aa31
commit
cf91f2c265
|
|
@ -3,7 +3,9 @@
|
||||||
// DEVICE-SPECIFIC LED SERVICES //
|
// DEVICE-SPECIFIC LED SERVICES //
|
||||||
////////////////////////////////////
|
////////////////////////////////////
|
||||||
|
|
||||||
#include "extras/PwmPin.h" // allows PWM control of LED brightness
|
#include "extras/PwmPin.h" // library of various PWM functions
|
||||||
|
|
||||||
|
////////////////////////////////////
|
||||||
|
|
||||||
struct DEV_LED : Service::LightBulb { // ON/OFF LED
|
struct DEV_LED : Service::LightBulb { // ON/OFF LED
|
||||||
|
|
||||||
|
|
@ -44,7 +46,7 @@ struct DEV_LED : Service::LightBulb { // ON/OFF LED
|
||||||
struct DEV_DimmableLED : Service::LightBulb { // Dimmable LED
|
struct DEV_DimmableLED : Service::LightBulb { // Dimmable LED
|
||||||
|
|
||||||
PwmPin *pwmPin; // reference to PWM Pin
|
PwmPin *pwmPin; // reference to PWM Pin
|
||||||
int ledPin; // pin number defined for this LED <- NEW!!
|
int ledPin; // pin number defined for this LED
|
||||||
int channel; // PWM channel used for this LED (should be unique for each LED)
|
int channel; // PWM channel used for this LED (should be unique for each LED)
|
||||||
SpanCharacteristic *power; // reference to the On Characteristic
|
SpanCharacteristic *power; // reference to the On Characteristic
|
||||||
SpanCharacteristic *level; // reference to the Brightness Characteristic
|
SpanCharacteristic *level; // reference to the Brightness Characteristic
|
||||||
|
|
@ -100,12 +102,9 @@ struct DEV_DimmableLED : Service::LightBulb { // Dimmable LED
|
||||||
|
|
||||||
struct DEV_RgbLED : Service::LightBulb { // RGB LED (Command Cathode)
|
struct DEV_RgbLED : Service::LightBulb { // RGB LED (Command Cathode)
|
||||||
|
|
||||||
PwmPin *redPin;
|
PwmPin *redPin, *greenPin, *bluePin;
|
||||||
PwmPin *greenPin;
|
int redChannel, greenChannel, blueChannel;
|
||||||
PwmPin *bluePin;
|
|
||||||
int redChannel;
|
|
||||||
int greenChannel;
|
|
||||||
int blueChannel;
|
|
||||||
SpanCharacteristic *power; // reference to the On Characteristic
|
SpanCharacteristic *power; // reference to the On Characteristic
|
||||||
SpanCharacteristic *H; // reference to the Hue Characteristic
|
SpanCharacteristic *H; // reference to the Hue Characteristic
|
||||||
SpanCharacteristic *S; // reference to the Saturation Characteristic
|
SpanCharacteristic *S; // reference to the Saturation Characteristic
|
||||||
|
|
@ -120,12 +119,12 @@ struct DEV_RgbLED : Service::LightBulb { // RGB LED (Command Cathode)
|
||||||
new SpanRange(5,100,1); // sets the range of the Brightness to be from a min of 5%, to a max of 100%, in steps of 1%
|
new SpanRange(5,100,1); // sets the range of the Brightness to be from a min of 5%, to a max of 100%, in steps of 1%
|
||||||
|
|
||||||
this->redChannel=redChannel; // save the channel number (from 0-15)
|
this->redChannel=redChannel; // save the channel number (from 0-15)
|
||||||
this->greenChannel=greenChannel; // save the channel number (from 0-15)
|
this->greenChannel=greenChannel;
|
||||||
this->blueChannel=blueChannel; // save the channel number (from 0-15)
|
this->blueChannel=blueChannel;
|
||||||
|
|
||||||
this->redPin=new PwmPin(redChannel, redPin); // configure the PWM channel and attach the specified pin
|
this->redPin=new PwmPin(redChannel, redPin); // instantiate the PWM channel and attach the specified pin
|
||||||
this->greenPin=new PwmPin(greenChannel, greenPin); // configure the PWM channel and attach the specified pin
|
this->greenPin=new PwmPin(greenChannel, greenPin);
|
||||||
this->bluePin=new PwmPin(blueChannel, bluePin); // configure the PWM channel and attach the specified pin
|
this->bluePin=new PwmPin(blueChannel, bluePin);
|
||||||
|
|
||||||
char cBuf[128];
|
char cBuf[128];
|
||||||
sprintf(cBuf,"Configuring RGB LED: Pins=(%d,%d,%d) Channels=(%d,%d,%d)\n",redPin,greenPin,bluePin,redChannel,greenChannel,blueChannel);
|
sprintf(cBuf,"Configuring RGB LED: Pins=(%d,%d,%d) Channels=(%d,%d,%d)\n",redPin,greenPin,bluePin,redChannel,greenChannel,blueChannel);
|
||||||
|
|
@ -138,9 +137,9 @@ struct DEV_RgbLED : Service::LightBulb { // RGB LED (Command Cathode)
|
||||||
boolean p;
|
boolean p;
|
||||||
float v, h, s, r, g, b;
|
float v, h, s, r, g, b;
|
||||||
|
|
||||||
h=H->getVal<float>(); // get and store all current values
|
h=H->getVal<float>(); // get and store all current values. Note the use of the <float> template to properly read the values
|
||||||
s=S->getVal<float>();
|
s=S->getVal<float>();
|
||||||
v=V->getVal<float>();
|
v=V->getVal<float>(); // though H and S are defined as FLOAT in HAP, V (which is brightness) is defined as INT, but will be re-cast appropriately
|
||||||
p=power->getVal();
|
p=power->getVal();
|
||||||
|
|
||||||
char cBuf[128];
|
char cBuf[128];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue