Lepsi izpis
parent
e70e70a728
commit
7ef8c77a42
49
danijela.js
49
danijela.js
|
@ -2,11 +2,6 @@ const osc = require('osc')
|
||||||
const midi = require('midi')
|
const midi = require('midi')
|
||||||
const Quat = require('quaternion');
|
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)
|
// CC kanali za midi mapping (kanal, CC kanal)
|
||||||
const midiKanal = 176;
|
const midiKanal = 176;
|
||||||
|
|
||||||
|
@ -40,6 +35,11 @@ const DEBUG = {
|
||||||
osc: false
|
osc: false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const batMin = 0.09
|
||||||
|
const batMax = 0.133
|
||||||
|
|
||||||
|
const procentBaterije = baterija => Math.round((baterija - batMin) / (batMax - batMin) * 100)
|
||||||
|
|
||||||
// Kalibracijsko izhodisce
|
// Kalibracijsko izhodisce
|
||||||
const izhodisceQ = {
|
const izhodisceQ = {
|
||||||
1: new Quat(),
|
1: new Quat(),
|
||||||
|
@ -135,19 +135,17 @@ const oscWS = new osc.WebSocketPort({
|
||||||
oscWS.on('ready', () => {
|
oscWS.on('ready', () => {
|
||||||
console.log(`Povezan sem na ${ip}`)
|
console.log(`Povezan sem na ${ip}`)
|
||||||
|
|
||||||
/*
|
// PING test!
|
||||||
PING test!
|
if (DEBUG.ping) {
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
console.log('ping')
|
console.log('ping')
|
||||||
oscWS.send({ address: '/ping', args: [true]})
|
oscWS.send({ address: '/ping', args: [true]})
|
||||||
}, 500)
|
}, 500)
|
||||||
*/
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
function posljiMidi(kanal, vrednost, jakost) {
|
function posljiMidi(kanal, vrednost, jakost) {
|
||||||
if (DEBUG.midi) {
|
DEBUG.midi && console.log('MIDI', kanal, vrednost, jakost)
|
||||||
console.log('MIDI', kanal, vrednost, jakost)
|
|
||||||
}
|
|
||||||
|
|
||||||
oscWS.send({
|
oscWS.send({
|
||||||
address: '/midi',
|
address: '/midi',
|
||||||
|
@ -173,6 +171,14 @@ const abs = Math.abs;
|
||||||
|
|
||||||
let cakaj = false;
|
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 }) => {
|
oscWS.on('message', ({ address, args }) => {
|
||||||
DEBUG.osc && console.log('MSG OSC', address, args.map(x => x.toFixed(4)))
|
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
|
// Roka dol/gor
|
||||||
const vrtenjeY = Math.abs(Math.sin(eulerRotacija[index][1]));
|
const vrtenjeY = Math.abs(Math.sin(eulerRotacija[index][1]));
|
||||||
//posljiMidi(180, 20, Math.round(vrtenjeY * 127));
|
//posljiMidi(180, 20, Math.round(vrtenjeY * 127));
|
||||||
|
|
||||||
//posljiMidi(181, 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])
|
const vrtenjeZ = normSin(eulerRotacija[index][2])
|
||||||
//console.log(vrtenjeZ)
|
|
||||||
const vrtenjeZmidi = Math.round(vrtenjeZ * 127)
|
const vrtenjeZmidi = Math.round(vrtenjeZ * 127)
|
||||||
|
|
||||||
//console.log('vrtenjeZ', vrtenjeZmidi)
|
|
||||||
//console.log('cmp', vrtenjeZmidi, staroVrtenjeZmidi);
|
|
||||||
//console.log(vrtenjeZmidi);
|
|
||||||
if (vrtenjeZmidi !== staroVrtenjeZMidi[index]
|
if (vrtenjeZmidi !== staroVrtenjeZMidi[index]
|
||||||
&& !muteMidi[index]) {
|
&& !muteMidi[index]) {
|
||||||
posljiMidi(182, midiKanalSenzor[index], vrtenjeZmidi)
|
posljiMidi(182, midiKanalSenzor[index], vrtenjeZmidi)
|
||||||
|
@ -250,11 +249,11 @@ oscWS.on('message', ({ address, args }) => {
|
||||||
cas = Date.now()
|
cas = Date.now()
|
||||||
stPaketovNaSekundo = stPaketov;
|
stPaketovNaSekundo = stPaketov;
|
||||||
stPaketov = 0;
|
stPaketov = 0;
|
||||||
// 0.086 prazna baterija
|
// 0.086 - 0.133 je razpon baterije
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('st paketov na sekundo: ', stPaketovNaSekundo);
|
izpisiStanje(vrtenjeZmidi, baterija)
|
||||||
console.log('baterija: ', bat);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue