jarvisnode
Version:
A library written in Node.js used to communicate with my Jarvis project
88 lines (57 loc) • 1.78 kB
JavaScript
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);
}
};