var _u = require("underscore"); var express = require('express'), app = express(); var SnmpMac = require("./snmp-mac"); var IpPoll = require("./ip-poll"); var spaceanswer = { "api": "0.13", "space": "Chaostreff Dortmund", "logo": "http://www.chaostreff-dortmund.de/logo.jpg", "url": "http://www.chaostreff-dortmund.de/", "location": { "address": "Braunschweiger Str 22, 44145 Dortmund, Germany", "lon": 7.4649449, "lat": 51.527611, }, "contact": { "phone": "+49231 8 404 777", "irc": "irc://irc.hackint.eu/#ctdo", "ml": "ccc@chaostreff-dortmund.de", "twitter": "@ctdo", "issue_mail": "server-admin@chaostreff-dortmund.de" }, "issue_report_channels": [ "issue_email" ], "state": { "open": null, "lastchange": 0 } }; var simpleanswer = { "state": "unknown", "count": 0, "names": [], "lastchange": 0 }; function start() { var snmpMac = new SnmpMac("juni.ctdo.de", "ctdo23"); var ippoll = new IpPoll("switch2.raum.ctdo.de","195.160.169.20-62 195.160.169.70-126"); snmpMac.on('done', function(res) { console.log(res); simpleanswer.names = res; simpleanswer.lastchange = parseInt((new Date().getTime()) / 1000); }); ippoll.on('doneCount', function(num) { console.log("there are " + num + " hosts up"); simpleanswer.count = num; simpleanswer.lastchange = parseInt((new Date().getTime()) / 1000); }); ippoll.on('doneState', function(state) { console.log("room state is: " + state); simpleanswer.state = state; spaceanswer.state.open = state; spaceanswer.state.lastchange = parseInt((new Date().getTime()) / 1000); simpleanswer.lastchange = spaceanswer.state.lastchange; }); setInterval(function() { snmpMac.poll(); ippoll.pollCount(); ippoll.pollState(); }, 10000); app.get('/api/spaceapi/v13', function(req, res) { res.send(spaceanswer); }); app.get('/api/simple/v2', function(req, res) { res.send(simpleanswer); }); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.static(__dirname + '/public')) app.get('/', function (req, res) { res.render('index', { title : 'Home' } ) }); app.disable('x-powered-by'); app.listen(3000); snmpMac.poll(); ippoll.pollCount(); ippoll.pollState(); } exports.start = start;