mirror of
https://github.com/jwetzell/osc-js.git
synced 2026-09-03 21:28:59 +00:00
add slip decoding to readosc
This commit is contained in:
@@ -21,6 +21,7 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jwetzell/osc": "1.6.0",
|
"@jwetzell/osc": "1.6.0",
|
||||||
"commander": "^14.0.0"
|
"commander": "^14.0.0",
|
||||||
|
"slip": "1.0.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+28
-10
@@ -1,23 +1,37 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
|
|
||||||
const { program } = require('commander');
|
const { program, Option } = require('commander');
|
||||||
const osc = require('@jwetzell/osc');
|
const osc = require('@jwetzell/osc');
|
||||||
const packageInfo = require('../package.json');
|
const packageInfo = require('../package.json');
|
||||||
|
const slip = require('slip');
|
||||||
|
|
||||||
program.name(packageInfo.name);
|
program.name(packageInfo.name);
|
||||||
program.version(packageInfo.version);
|
program.version(packageInfo.version);
|
||||||
program.description('simple util to read osc packets from stdin');
|
program.description('simple util to read osc packets from stdin');
|
||||||
program.action(() => {
|
program.addOption(new Option('--slip', 'slip encode message').default(false));
|
||||||
|
program.action((options) => {
|
||||||
|
const slipDecoder = new slip.Decoder({
|
||||||
|
onMessage: (msg) =>{
|
||||||
|
const [message, bytesAfterMessage] = osc.messageFromBuffer(msg);
|
||||||
|
printOSCMessage(message)
|
||||||
|
},
|
||||||
|
maxMessageSize: 209715200,
|
||||||
|
bufferSize: 2048
|
||||||
|
});
|
||||||
process.stdin.on('data', (data) => {
|
process.stdin.on('data', (data) => {
|
||||||
try {
|
try {
|
||||||
let remainingBytes = data;
|
if (options.slip){
|
||||||
while (remainingBytes.length > 0) {
|
slipDecoder.decode(data)
|
||||||
try {
|
} else {
|
||||||
const [message, bytesAfterMessage] = osc.messageFromBuffer(remainingBytes);
|
let remainingBytes = data;
|
||||||
remainingBytes = bytesAfterMessage;
|
while (remainingBytes.length > 0) {
|
||||||
console.log(JSON.stringify(message));
|
try {
|
||||||
} catch (error) {
|
const [message, bytesAfterMessage] = osc.messageFromBuffer(remainingBytes);
|
||||||
console.error({ error: error.toString() });
|
remainingBytes = bytesAfterMessage;
|
||||||
|
printOSCMessage(message)
|
||||||
|
} catch (error) {
|
||||||
|
console.error({ error: error.toString() });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -26,3 +40,7 @@ program.action(() => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
program.parse();
|
program.parse();
|
||||||
|
|
||||||
|
function printOSCMessage(oscMessage) {
|
||||||
|
console.log(JSON.stringify(oscMessage));
|
||||||
|
}
|
||||||
|
|||||||
Generated
+6
-13
@@ -25,7 +25,7 @@
|
|||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jwetzell/osc": "0.2.2",
|
"@jwetzell/osc": "1.6.0",
|
||||||
"commander": "^14.0.0",
|
"commander": "^14.0.0",
|
||||||
"slip": "^1.0.2"
|
"slip": "^1.0.2"
|
||||||
},
|
},
|
||||||
@@ -33,27 +33,18 @@
|
|||||||
"makeosc": "src/main.js"
|
"makeosc": "src/main.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"apps/makeosc/node_modules/@jwetzell/osc": {
|
|
||||||
"version": "0.2.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@jwetzell/osc/-/osc-0.2.2.tgz",
|
|
||||||
"integrity": "sha512-HobCAMnDDSrKfrMBrF5ySA8fKO8Qjkn2HDKysuV51sHrpXABKJFQt5OemIQgbnSMNWU0kZ0+FF9xRrivHHaDTg=="
|
|
||||||
},
|
|
||||||
"apps/readosc": {
|
"apps/readosc": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jwetzell/osc": "1.0.0",
|
"@jwetzell/osc": "1.6.0",
|
||||||
"commander": "^14.0.0"
|
"commander": "^14.0.0",
|
||||||
|
"slip": "1.0.2"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"readosc": "src/main.js"
|
"readosc": "src/main.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"apps/readosc/node_modules/@jwetzell/osc": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@jwetzell/osc/-/osc-1.0.0.tgz",
|
|
||||||
"integrity": "sha512-242gA8R4k9vBbRJydqoKAG1WiQ9BUO6tFoemuC3eywRt5ns5qrlzIBEIwX0poQyMZdZB7XyzvR5rtbFC5tadKg=="
|
|
||||||
},
|
|
||||||
"apps/sendosc": {
|
"apps/sendosc": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@@ -1860,6 +1851,8 @@
|
|||||||
},
|
},
|
||||||
"node_modules/slip": {
|
"node_modules/slip": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/slip/-/slip-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-XrcHe3NAcyD3wO+O4I13RcS4/3AF+S9RvGNj9JhJeS02HyImwD2E3QWLrmn9hBfL+fB6yapagwxRkeyYzhk98g==",
|
||||||
"license": "(MIT OR GPL-2.0)"
|
"license": "(MIT OR GPL-2.0)"
|
||||||
},
|
},
|
||||||
"node_modules/string-width": {
|
"node_modules/string-width": {
|
||||||
|
|||||||
Reference in New Issue
Block a user