| | |
| | | var config = require('./config'); |
| | | var method = require('./method'); |
| | | |
| | | mongoClient.connect(config.URL, function(err, db) { |
| | | if (err) return; |
| | | console.log('Connecting to Mongo DB at ' + config.URL); |
| | | var map = { |
| | | "5a0000010001": 32, |
| | | "5a0000010002": 102, |
| | | "5a0000010003": 162, |
| | | "5a0000010004": 32, |
| | | "5a0000010006": 122, |
| | | "5a0000010007": 32, |
| | | "5a000001000c": 20 |
| | | }; |
| | | |
| | | net.createServer(function(socket) { |
| | | console.log('CONNECTED: ' + socket.remoteAddress +':'+ socket.remotePort); |
| | | |
| | | socket.on('data', function(data) { |
| | | if(data == null) { |
| | | console.log("Error - invalid data - null or undefined"); |
| | | return; |
| | | } |
| | | |
| | | var value = data.toString('hex').toLowerCase(); |
| | | if(value.length < 12) { |
| | | console.log("Error - invalid data - less than 12 character long"); |
| | | return; |
| | | } |
| | | |
| | | console.log(moment().format('YYYY-MM-DD HH:mm:ss') + " => " + value); |
| | | |
| | | function handleData(value) { |
| | | //1.心跳命令行 |
| | | if(value.startsWith('5a0000010001')) { |
| | | var output = [ 0x6A, 0x00, 0x00, 0x01, 0x00, 0x01, 0xA1, 0x1A, 0xC7, 0x6B ]; |
| | |
| | | socket.write(new Buffer(config.OUTPUT_6)); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | function doWork(data) { |
| | | if(data == "") return; |
| | | var length = map[data.slice(0, 12)]; |
| | | if(length > 0) { |
| | | var value = data.slice(0, length); |
| | | console.log(moment().format('YYYY-MM-DD HH:mm:ss') + " => " + value); |
| | | handleData(value); |
| | | |
| | | doWork(data.slice(length)); |
| | | } |
| | | } |
| | | |
| | | mongoClient.connect(config.URL, function(err, db) { |
| | | if (err) return; |
| | | console.log('Connecting to Mongo DB at ' + config.URL); |
| | | |
| | | net.createServer().on('connection', function(socket){ |
| | | console.log('CONNECTED: ' + socket.remoteAddress +':'+ socket.remotePort); |
| | | |
| | | socket.on('data', function(data) { |
| | | if(data == null) { |
| | | console.log("Error - invalid data - null or undefined"); |
| | | return; |
| | | } |
| | | |
| | | var value = data.toString('hex').toLowerCase(); |
| | | if(value.length < 12) { |
| | | console.log("Error - invalid data - less than 12 character long"); |
| | | return; |
| | | } |
| | | |
| | | //console.log(moment().format('YYYY-MM-DD HH:mm:ss') + " => " + value); |
| | | |
| | | doWork(value); |
| | | }); |
| | | |
| | | socket.on('end', function(){ |
| | | console.log(count) |
| | | }); |
| | | |
| | | socket.on('error', function(error) { |
| | | console.log(error); |
| | | socket.end(); |
| | | }); |
| | | |
| | | socket.on('timeout',function(){ |
| | | socket.end(); |
| | | }); |
| | | |
| | | socket.on('close', function(data) { |
| | | console.log('Closed socket: ' + socket.remoteAddress +' '+ socket.remotePort); |
| | | }); |
| | | |
| | | socket.on('close', function(data) { |
| | | console.log('Closed socket: ' + socket.remoteAddress + ' ' + socket.remotePort); |
| | | }); |