Lepsi izpis

master
Jurij Podgoršek 2024-07-25 21:29:02 +02:00
parent e70e70a728
commit 7ef8c77a42
1 changed files with 24 additions and 25 deletions

View File

@ -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)
}
}
})