mirror of
https://github.com/jwetzell/osc-js.git
synced 2026-08-13 11:13:42 +00:00
add slip decoding to readosc
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@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
|
||||
|
||||
const { program } = require('commander');
|
||||
const { program, Option } = require('commander');
|
||||
const osc = require('@jwetzell/osc');
|
||||
const packageInfo = require('../package.json');
|
||||
const slip = require('slip');
|
||||
|
||||
program.name(packageInfo.name);
|
||||
program.version(packageInfo.version);
|
||||
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) => {
|
||||
try {
|
||||
let remainingBytes = data;
|
||||
while (remainingBytes.length > 0) {
|
||||
try {
|
||||
const [message, bytesAfterMessage] = osc.messageFromBuffer(remainingBytes);
|
||||
remainingBytes = bytesAfterMessage;
|
||||
console.log(JSON.stringify(message));
|
||||
} catch (error) {
|
||||
console.error({ error: error.toString() });
|
||||
if (options.slip){
|
||||
slipDecoder.decode(data)
|
||||
} else {
|
||||
let remainingBytes = data;
|
||||
while (remainingBytes.length > 0) {
|
||||
try {
|
||||
const [message, bytesAfterMessage] = osc.messageFromBuffer(remainingBytes);
|
||||
remainingBytes = bytesAfterMessage;
|
||||
printOSCMessage(message)
|
||||
} catch (error) {
|
||||
console.error({ error: error.toString() });
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
@@ -26,3 +40,7 @@ program.action(() => {
|
||||
});
|
||||
});
|
||||
program.parse();
|
||||
|
||||
function printOSCMessage(oscMessage) {
|
||||
console.log(JSON.stringify(oscMessage));
|
||||
}
|
||||
|
||||
Generated
+6
-13
@@ -25,7 +25,7 @@
|
||||
"version": "0.1.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@jwetzell/osc": "0.2.2",
|
||||
"@jwetzell/osc": "1.6.0",
|
||||
"commander": "^14.0.0",
|
||||
"slip": "^1.0.2"
|
||||
},
|
||||
@@ -33,27 +33,18 @@
|
||||
"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": {
|
||||
"version": "0.2.0",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@jwetzell/osc": "1.0.0",
|
||||
"commander": "^14.0.0"
|
||||
"@jwetzell/osc": "1.6.0",
|
||||
"commander": "^14.0.0",
|
||||
"slip": "1.0.2"
|
||||
},
|
||||
"bin": {
|
||||
"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": {
|
||||
"version": "1.0.1",
|
||||
"license": "MIT",
|
||||
@@ -1860,6 +1851,8 @@
|
||||
},
|
||||
"node_modules/slip": {
|
||||
"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)"
|
||||
},
|
||||
"node_modules/string-width": {
|
||||
|
||||
Reference in New Issue
Block a user