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,
"length": 60,
"length": 3,
"brightness": 64,
"updateInterval": 150,
"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-topic="pixels/hue"
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 class="form-row ParamColor"
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));
app.mediator.on('pixels/hue', (payload) => {
let colors = payload.split(',');
let msg = JSON.stringify({
topic: 'pixels/state',
payload: JSON.stringify({
brightness: 32,
color: parseInt(hues[payload][0].replace('#', '0x'), 16),
color2: parseInt(hues[payload][1].replace('#', '0x'), 16),
brightness: 64,
color: parseInt(colors[0].replace('#', '0x'), 16),
color2: parseInt(colors[1].replace('#', '0x'), 16),
totalSteps: 32,
pattern: 5
})
});
app.mediator.trigger('pixels/totalSteps', 32);
app.mediator.trigger('pixels/pattern', 5);
app.mediator.trigger('pixels/color', hues[payload][0]);
app.mediator.trigger('pixels/color2', hues[payload][1]);
console.log('pixels/hue: ' + msg);
app.mediator.trigger('pixels/color', colors[0]);
app.mediator.trigger('pixels/color2', colors[1]);
//console.log('pixels/hue: ' + msg);
app.ws.send(msg);
});
@@ -11989,14 +11990,12 @@ class ParamSlider extends __WEBPACK_IMPORTED_MODULE_1__base_Slider_Slider__["a"
onChange(evt) {
this.ctx.ws.send(JSON.stringify({
topic: this.config.topic,
payload: evt.target.value
payload: evt.target.value + "" // FIXME stupid string conversion
}));
}
subscribe(){
this.ctx.mediator.on(this.config.topic, (payload) => {
//console.log(this.config.topic + ":" + 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'))
};
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) {
super(ctx, node);
this.render({
let viewData = {
label: this.config.label,
name: this.config.name,
entries: this.config.entries
});
name: this.config.name
};
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.ctx.mediator.on(this.config.topic, (payload) => {
this.selectEntry(payload);

View File

@@ -26,7 +26,7 @@ class NeoPattern : public Adafruit_NeoPixel
public:
// Member Variables:
pattern ActivePattern; // which pattern is running
pattern ActivePattern = RAINBOW_CYCLE; // which pattern is running
direction Direction = FORWARD; // direction to run the pattern
unsigned long Interval = 150; // milliseconds between updates
@@ -34,7 +34,7 @@ class NeoPattern : public Adafruit_NeoPixel
uint32_t Color1 = 0;
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 completed = 0;