UNPKG

jarvisnode

Version:

A library written in Node.js used to communicate with my Jarvis project

88 lines (57 loc) 1.78 kB
var fs = require('fs'); var types = require('../types'); module.exports = { connectionResponse: function(data, cb) { if (data[0] === 0x01) { var hash = data.readDoubleBE(1); require('../config').get().HASH = hash; return cb(null); } else if (data[0] === 0x00) return cb('Invalid hash'); }, registerRequestResponse: function(data, cb) { var config = require('../config').get(); if (data[0] === 0x01) { config.HASH = data.readDoubleBE(1); require('../config').save(function(err) { return cb(err); }); } else if (data[0] === 0x00) return cb('Unauthorized'); }, registerRequest: function(cb) { var segment = new Buffer(1); segment[0] = types.messages.TCP.S.REGISTER_REQUEST; return cb(null, segment); }, register: function(cb) { var config = require('../config').get(); if (!config.J_IP) return cb(0xE0, null); if (config.HASH) { fs.readFile(config.SATELLITE_CONFIGURATION_FILE_PATH, function(err, data) { if (err) return cb(err, null); var segment = new Buffer(1 + 8); segment[0] = types.messages.TCP.S.REGISTER; segment.writeDoubleBE(config.HASH, 1); segment = Buffer.concat([segment, data], segment.length + data.length); return cb(null, segment); }); } }, registerResponse: function(data, cb) { }, connect: function(cb) { var config = require('../config').get(); if (!config.J_IP) return cb(0xE0, null); if (config.HASH) { var segment = new Buffer(9); segment[0] = types.messages.TCP.S.CONN_REQUEST; segment.writeDoubleBE(config.HASH, 1); return cb(null, segment); } return cb(0xE1, null); } };