add gradient fading animation

This commit is contained in:
2018-09-30 18:59:12 +02:00
parent 4cf0f0cc4d
commit 284d40d0b8
5 changed files with 1372 additions and 18 deletions

View File

@@ -1,6 +1,6 @@
{ {
"pin": 4, "pin": 4,
"length": 60, "length": 3,
"brightness": 64, "brightness": 64,
"updateInterval": 150, "updateInterval": 150,
"defaultColor": 100 "defaultColor": 100

1347
data/www/gradients.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -21,7 +21,7 @@
data-name="hue" data-name="hue"
data-topic="pixels/hue" data-topic="pixels/hue"
data-default="0" data-default="0"
data-entries='[{"text": "None", "value": "0"}, {"text": "Cool", "value": "1"}, {"text": "Warm", "value": "2"}, {"text": "Alien", "value": "5"}]' data-external="/gradients.json"
></li> ></li>
<li class="form-row ParamColor" <li class="form-row ParamColor"
data-name="color" data-name="color"

View File

@@ -10793,21 +10793,22 @@ __WEBPACK_IMPORTED_MODULE_0_jquery___default()(() => {
.websocket(new WebSocket(endpoint.indexOf('/') === 0 ? "ws://" + window.location.host + endpoint : endpoint)); .websocket(new WebSocket(endpoint.indexOf('/') === 0 ? "ws://" + window.location.host + endpoint : endpoint));
app.mediator.on('pixels/hue', (payload) => { app.mediator.on('pixels/hue', (payload) => {
let colors = payload.split(',');
let msg = JSON.stringify({ let msg = JSON.stringify({
topic: 'pixels/state', topic: 'pixels/state',
payload: JSON.stringify({ payload: JSON.stringify({
brightness: 32, brightness: 64,
color: parseInt(hues[payload][0].replace('#', '0x'), 16), color: parseInt(colors[0].replace('#', '0x'), 16),
color2: parseInt(hues[payload][1].replace('#', '0x'), 16), color2: parseInt(colors[1].replace('#', '0x'), 16),
totalSteps: 32, totalSteps: 32,
pattern: 5 pattern: 5
}) })
}); });
app.mediator.trigger('pixels/totalSteps', 32); app.mediator.trigger('pixels/totalSteps', 32);
app.mediator.trigger('pixels/pattern', 5); app.mediator.trigger('pixels/pattern', 5);
app.mediator.trigger('pixels/color', hues[payload][0]); app.mediator.trigger('pixels/color', colors[0]);
app.mediator.trigger('pixels/color2', hues[payload][1]); app.mediator.trigger('pixels/color2', colors[1]);
console.log('pixels/hue: ' + msg); //console.log('pixels/hue: ' + msg);
app.ws.send(msg); app.ws.send(msg);
}); });
@@ -11989,14 +11990,12 @@ class ParamSlider extends __WEBPACK_IMPORTED_MODULE_1__base_Slider_Slider__["a"
onChange(evt) { onChange(evt) {
this.ctx.ws.send(JSON.stringify({ this.ctx.ws.send(JSON.stringify({
topic: this.config.topic, topic: this.config.topic,
payload: evt.target.value payload: evt.target.value + "" // FIXME stupid string conversion
})); }));
} }
subscribe(){ subscribe(){
this.ctx.mediator.on(this.config.topic, (payload) => { this.ctx.mediator.on(this.config.topic, (payload) => {
//console.log(this.config.topic + ":" + payload);
this.node.find('input').val(payload); this.node.find('input').val(payload);
//this.notify(payload);
}); });
} }
} }
@@ -12064,7 +12063,6 @@ class ParamColor extends __WEBPACK_IMPORTED_MODULE_1__base_ColorPicker_ColorPick
payload: parseInt(val.replace('#', '0x')) payload: parseInt(val.replace('#', '0x'))
}; };
this.ctx.ws.send(JSON.stringify(obj)); this.ctx.ws.send(JSON.stringify(obj));
console.log(obj);
} }
} }
@@ -12139,11 +12137,20 @@ class ParamSelect extends __WEBPACK_IMPORTED_MODULE_1__base_Select_Select__["a"
constructor(ctx, node) { constructor(ctx, node) {
super(ctx, node); super(ctx, node);
this.render({ let viewData = {
label: this.config.label, label: this.config.label,
name: this.config.name, name: this.config.name
entries: this.config.entries };
}); if(this.config.external){
__WEBPACK_IMPORTED_MODULE_0_jquery___default.a.getJSON(this.config.external).done((data) => {
viewData.entries = data;
this.render(viewData);
})
} else {
viewData.entries = this.config.entries;
this.render(viewData);
}
this.selectEntry(this.config.default); this.selectEntry(this.config.default);
this.ctx.mediator.on(this.config.topic, (payload) => { this.ctx.mediator.on(this.config.topic, (payload) => {
this.selectEntry(payload); this.selectEntry(payload);

View File

@@ -26,7 +26,7 @@ class NeoPattern : public Adafruit_NeoPixel
public: public:
// Member Variables: // Member Variables:
pattern ActivePattern; // which pattern is running pattern ActivePattern = RAINBOW_CYCLE; // which pattern is running
direction Direction = FORWARD; // direction to run the pattern direction Direction = FORWARD; // direction to run the pattern
unsigned long Interval = 150; // milliseconds between updates unsigned long Interval = 150; // milliseconds between updates
@@ -34,7 +34,7 @@ class NeoPattern : public Adafruit_NeoPixel
uint32_t Color1 = 0; uint32_t Color1 = 0;
uint32_t Color2 = 0; // What colors are in use uint32_t Color2 = 0; // What colors are in use
uint16_t TotalSteps = 255; // total number of steps in the pattern uint16_t TotalSteps = 32; // total number of steps in the pattern
uint16_t Index; // current step within the pattern uint16_t Index; // current step within the pattern
uint16_t completed = 0; uint16_t completed = 0;