Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
43 lines (35 sloc) 1.35 KB
/* NI-cRio NetConsole on node js -- Evin Ugur */
var TEAM = 1073; //set to your team number to send data down to NetConsole
var dgram = require("dgram");
var readline = require("readline");
var listener = dgram.createSocket("udp4");
var scanner = readline.createInterface(process.stdin, process.stdout);
scanner.setPrompt("->"); //to emulate a VxWorks prompt
scanner.prompt();
var sender = dgram.createSocket("udp4");
//ports used for NetConsole - it uses two: one for in and out, probably to avoid a race condition
var NETCONSOLE_PORT_IN = 6666;
var NETCONSOLE_PORT_OUT = 6668;
//Server to listen for data on NetConsole
listener.on("message", function(msg, rinfo) {
process.stdout.write(msg.toString());
});
listener.bind(NETCONSOLE_PORT_IN);
//Client code to send data to VxWorks
scanner.on("line", function(cmd){
if(cmd !== ""){
var buffer = new Buffer(cmd + "\r\n"); //thanks to github.com/gluxon for pointing out the need for rollback and carriage return chars on ChiefDelhi :)
sender.send(buffer, 0, buffer.length, NETCONSOLE_PORT_OUT, getIP(TEAM));
}
});
//generates your teams IP number
function getIP (teamnumber) {
var str = "" + teamnumber;
while(str.length < 4) {
str = "0" + str;
}
if(str.length > 4 ){
throw new Error("Team Numbers must be 4 digits long: " + teamnumber);
}
return "10." + str.substring(0,2) + "." + str.substring(2) + ".2";
}