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 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)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue