rover/receiver/receiver.js
2023-06-27 23:37:11 +09:00

57 lines
1.5 KiB
JavaScript

const args = process.argv.slice(2);
var host = args[0];
if (!host) host = 'http://localhost:8080';
console.log(
"connecting to the host... : \n" +
"\t --> " + host + "\n"
);
var socket = require('socket.io-client')(host);
var osc = require("osc");
var udp = new osc.UDPPort({
localAddress: '0.0.0.0',
//NOTE: '127.0.0.1' doesn't work!! for comm. between different machines
localPort: 57001,
remoteAddress: '0.0.0.0',
remotePort: 57000,
metadata: true
});
Promise.all([
new Promise(function(resolve, reject) {
udp.on("ready", function() {
resolve(0);
console.log('udp ready..');
});
})
]).then(function(results) {
socket.on('connect', () => console.log("[osc-receiver] i'm connected."));
socket.on('disconnect', () => console.log("[osc-receiver] i'm disconnected."));
socket.on('rover', function(rover) {
udp.send({
address: "/rover",
args: [
{ type: "f", value: rover.px },
{ type: "f", value: rover.py },
{ type: "f", value: rover.pz },
{ type: "f", value: rover.pan },
{ type: "f", value: rover.tilt },
{ type: "f", value: rover.rot },
{ type: "f", value: rover.grounded }
]
});
});
});
udp.open();
udp.on("ready", function() {
console.log(
"[udp] ready (udp) : \n" +
"\tlistening on --> " + udp.options.localAddress + ":" + udp.options.localPort + "\n" +
"\tspeaking to -> " + udp.options.remoteAddress + ":" + udp.options.remotePort + "\n"
);
});