diff --git a/danijela.js b/danijela.js index 3bbfbbc..f8a5d14 100644 --- a/danijela.js +++ b/danijela.js @@ -2,11 +2,6 @@ const osc = require('osc') const midi = require('midi') const Quat = require('quaternion'); -// Stevilke senzorjev -const INDEX_GLAVA = 1 -const INDEX_ROKA = 2 -const INDEX_BEKAP = 3 - // CC kanali za midi mapping (kanal, CC kanal) const midiKanal = 176; @@ -40,6 +35,11 @@ const DEBUG = { osc: false } +const batMin = 0.09 +const batMax = 0.133 + +const procentBaterije = baterija => Math.round((baterija - batMin) / (batMax - batMin) * 100) + // Kalibracijsko izhodisce const izhodisceQ = { 1: new Quat(), @@ -135,19 +135,17 @@ const oscWS = new osc.WebSocketPort({ oscWS.on('ready', () => { console.log(`Povezan sem na ${ip}`) - /* - PING test! - setInterval(() => { - console.log('ping') - oscWS.send({ address: '/ping', args: [true]}) - }, 500) - */ + // PING test! + if (DEBUG.ping) { + setInterval(() => { + console.log('ping') + oscWS.send({ address: '/ping', args: [true]}) + }, 500) + } }) function posljiMidi(kanal, vrednost, jakost) { - if (DEBUG.midi) { - console.log('MIDI', kanal, vrednost, jakost) - } + DEBUG.midi && console.log('MIDI', kanal, vrednost, jakost) oscWS.send({ address: '/midi', @@ -173,6 +171,14 @@ const abs = Math.abs; let cakaj = false; +const izpisiStanje = (vrtenje, baterija) => { + const vrstica = `| vrtenje: ${String(vrtenje).padStart(3, ' ')} | baterija: ${String(procentBaterije(baterija)).padStart(3, ' ')}% |` + + process.stdout.write(`${vrstica}\r`); + //process.stdout.moveCursor(vrstica.length + 1) + //process.stdout.clearLine(1) +} + oscWS.on('message', ({ address, args }) => { DEBUG.osc && console.log('MSG OSC', address, args.map(x => x.toFixed(4))) @@ -225,19 +231,12 @@ oscWS.on('message', ({ address, args }) => { // Roka dol/gor const vrtenjeY = Math.abs(Math.sin(eulerRotacija[index][1])); //posljiMidi(180, 20, Math.round(vrtenjeY * 127)); - //posljiMidi(181, 20, Math.round(vrtenjeY * 127)); - // Vrtenje levo/desno (stegnjena roka) - //console.log(eulerRotacijaGlave) const vrtenjeZ = normSin(eulerRotacija[index][2]) - //console.log(vrtenjeZ) const vrtenjeZmidi = Math.round(vrtenjeZ * 127) - //console.log('vrtenjeZ', vrtenjeZmidi) - //console.log('cmp', vrtenjeZmidi, staroVrtenjeZmidi); - //console.log(vrtenjeZmidi); if (vrtenjeZmidi !== staroVrtenjeZMidi[index] && !muteMidi[index]) { posljiMidi(182, midiKanalSenzor[index], vrtenjeZmidi) @@ -250,11 +249,11 @@ oscWS.on('message', ({ address, args }) => { cas = Date.now() stPaketovNaSekundo = stPaketov; stPaketov = 0; - // 0.086 prazna baterija + // 0.086 - 0.133 je razpon baterije + } - console.log('st paketov na sekundo: ', stPaketovNaSekundo); - console.log('baterija: ', bat); + izpisiStanje(vrtenjeZmidi, baterija) } } })