use logger
This commit is contained in:
parent
562d4572c7
commit
0fab34c3b3
2 changed files with 60 additions and 7 deletions
16
lights.js
16
lights.js
|
@ -1,7 +1,9 @@
|
||||||
import ws281x from 'rpi-ws281x'
|
import ws281x from 'rpi-ws281x'
|
||||||
import * as fs from 'fs'
|
import * as fs from 'fs'
|
||||||
|
import { Logger, levels } from './logger'
|
||||||
|
|
||||||
const cfg = JSON.parse(fs.readFileSync('./config.json'));
|
const cfg = JSON.parse(fs.readFileSync('./config.json'));
|
||||||
|
const log = new Logger("lights", cfg.log_level ? levels[cfg.log_level] : levels.INFO);
|
||||||
|
|
||||||
const fade_ticks = cfg.fade_ticks || 20;
|
const fade_ticks = cfg.fade_ticks || 20;
|
||||||
var pixels = new Uint32Array(cfg.leds);
|
var pixels = new Uint32Array(cfg.leds);
|
||||||
|
@ -35,7 +37,7 @@ export function set_pattern(pat) {
|
||||||
|
|
||||||
function tick_pattern() {
|
function tick_pattern() {
|
||||||
// do the parsing stuff here
|
// do the parsing stuff here
|
||||||
console.log("TICKING PATTERN")
|
log.debug("TICKING PATTERN")
|
||||||
|
|
||||||
for (let i = 0; i < cfg.leds; i++) {
|
for (let i = 0; i < cfg.leds; i++) {
|
||||||
var r = Math.floor(Math.random() * 256)
|
var r = Math.floor(Math.random() * 256)
|
||||||
|
@ -50,7 +52,7 @@ export function tick() {
|
||||||
for (let i = 0; i < cfg.leds; i++) {
|
for (let i = 0; i < cfg.leds; i++) {
|
||||||
if (next_pattern[i] != pixels[i]) {
|
if (next_pattern[i] != pixels[i]) {
|
||||||
if (next_pattern[i] == pixel_cache[i]) {
|
if (next_pattern[i] == pixel_cache[i]) {
|
||||||
console.log("INCONGRUENCE WITH " + i);
|
log.debug("INCONGRUENCE WITH " + i);
|
||||||
pixels[i] = next_pattern[i];
|
pixels[i] = next_pattern[i];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -59,7 +61,7 @@ export function tick() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (pixel_cache[i] != pixels[i]) {
|
else if (pixel_cache[i] != pixels[i]) {
|
||||||
console.log("PATTERN NOT STORED " + i);
|
log.debug("PATTERN NOT STORED " + i);
|
||||||
pixel_cache[i] = pixels[i];
|
pixel_cache[i] = pixels[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -85,11 +87,11 @@ function fade(index) {
|
||||||
var sign_r = diff_r === Math.abs(diff_r) ? 1 : -1;
|
var sign_r = diff_r === Math.abs(diff_r) ? 1 : -1;
|
||||||
var sign_g = diff_g === Math.abs(diff_g) ? 1 : -1;
|
var sign_g = diff_g === Math.abs(diff_g) ? 1 : -1;
|
||||||
var sign_b = diff_b === Math.abs(diff_b) ? 1 : -1;
|
var sign_b = diff_b === Math.abs(diff_b) ? 1 : -1;
|
||||||
console.log(`${diff_r} ${sign_r} ${diff_g} ${sign_g} ${diff_b} ${sign_b}`);
|
log.debug(`${diff_r} ${sign_r} ${diff_g} ${sign_g} ${diff_b} ${sign_b}`);
|
||||||
var interval_r = sign_r * Math.ceil(Math.abs(diff_r) / fade_ticks);
|
var interval_r = sign_r * Math.ceil(Math.abs(diff_r) / fade_ticks);
|
||||||
var interval_g = sign_g * Math.ceil(Math.abs(diff_g) / fade_ticks);
|
var interval_g = sign_g * Math.ceil(Math.abs(diff_g) / fade_ticks);
|
||||||
var interval_b = sign_b * Math.ceil(Math.abs(diff_b) / fade_ticks);
|
var interval_b = sign_b * Math.ceil(Math.abs(diff_b) / fade_ticks);
|
||||||
console.log(`r${Math.abs(diff_r) / fade_ticks} ${Math.ceil(Math.abs(diff_r) / fade_ticks)}` +
|
log.debug(`r${Math.abs(diff_r) / fade_ticks} ${Math.ceil(Math.abs(diff_r) / fade_ticks)}` +
|
||||||
`g${Math.abs(diff_g) / fade_ticks} ${Math.ceil(Math.abs(diff_g) / fade_ticks)}` +
|
`g${Math.abs(diff_g) / fade_ticks} ${Math.ceil(Math.abs(diff_g) / fade_ticks)}` +
|
||||||
`b${Math.abs(diff_b) / fade_ticks} ${Math.ceil(Math.abs(diff_b) / fade_ticks)}`);
|
`b${Math.abs(diff_b) / fade_ticks} ${Math.ceil(Math.abs(diff_b) / fade_ticks)}`);
|
||||||
|
|
||||||
|
@ -124,7 +126,7 @@ function fade(index) {
|
||||||
if (current_tick_r + 1 >= fade_ticks &&
|
if (current_tick_r + 1 >= fade_ticks &&
|
||||||
current_tick_g + 1 >= fade_ticks &&
|
current_tick_g + 1 >= fade_ticks &&
|
||||||
current_tick_b + 1 >= fade_ticks) {
|
current_tick_b + 1 >= fade_ticks) {
|
||||||
console.log("FINISHED");
|
log.debug("FINISHED");
|
||||||
pixel_cache[index] = next_pattern[index];
|
pixel_cache[index] = next_pattern[index];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -132,7 +134,7 @@ function fade(index) {
|
||||||
current.g + interval_g,
|
current.g + interval_g,
|
||||||
current.b + interval_b);
|
current.b + interval_b);
|
||||||
let prev = int_to_rgb(pixel_cache[index]);
|
let prev = int_to_rgb(pixel_cache[index]);
|
||||||
console.log(`${current_tick_r} ${current_tick_g} ${current_tick_b}: `
|
log.debug(`${current_tick_r} ${current_tick_g} ${current_tick_b}: `
|
||||||
+ `CURRENT COLOR: ${current.r} ${current.g} ${current.b} NEW COLOR: ${current.r + interval_r} ${current.g + interval_g} ${current.b + interval_b} ` +
|
+ `CURRENT COLOR: ${current.r} ${current.g} ${current.b} NEW COLOR: ${current.r + interval_r} ${current.g + interval_g} ${current.b + interval_b} ` +
|
||||||
`FINAL: ${final.r} ${final.g} ${final.b} ` +
|
`FINAL: ${final.r} ${final.g} ${final.b} ` +
|
||||||
`\nINTERVAL: ${interval_r} ${interval_g} ${interval_b} ` +
|
`\nINTERVAL: ${interval_r} ${interval_g} ${interval_b} ` +
|
||||||
|
|
51
logger.js
Normal file
51
logger.js
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
export const levels = {
|
||||||
|
DEBUG: 4,
|
||||||
|
INFO: 3,
|
||||||
|
WARN: 2,
|
||||||
|
ERROR: 1,
|
||||||
|
PANIC: 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
export default class Logger {
|
||||||
|
constructor(name, level) {
|
||||||
|
console.log(`created new logger for ${name} with level ${level}`);
|
||||||
|
this.sn(name);
|
||||||
|
this.s(level);
|
||||||
|
}
|
||||||
|
n = 'DEFAULT';
|
||||||
|
l = 0;
|
||||||
|
sn(n) {
|
||||||
|
this.n = n;
|
||||||
|
}
|
||||||
|
s(l) {
|
||||||
|
if (l && l.constructor === Number) {
|
||||||
|
this.l = l;
|
||||||
|
} else {
|
||||||
|
this.l = levels[l];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lo(l, m) {
|
||||||
|
if (l <= this.l) {
|
||||||
|
let level = Object.keys(levels).find((key) => levels[key] === l);
|
||||||
|
let ms = typeof m == 'object' ? JSON.stringify(m) : m;
|
||||||
|
console.log(`${level} [${this.n}]: ${ms}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
debug(msg) {
|
||||||
|
this.lo(levels.DEBUG, msg);
|
||||||
|
}
|
||||||
|
info(msg) {
|
||||||
|
this.lo(levels.INFO, msg);
|
||||||
|
}
|
||||||
|
warn(msg) {
|
||||||
|
this.lo(levels.WARN, msg);
|
||||||
|
}
|
||||||
|
error(msg) {
|
||||||
|
this.lo(levels.ERROR, msg);
|
||||||
|
}
|
||||||
|
panic(msg) {
|
||||||
|
this.lo(levels.PANIC, msg);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue