diff --git a/app.js b/app.js
index 8393fd4..e0073d9 100644
--- a/app.js
+++ b/app.js
@@ -1,22 +1,32 @@
-console.log("hello world\r");
+var server = require("./server");
+var router = require("./route");
+var requestHandlers = require("./requestHandlers");
-var http = require("http");
-var server = http.createServer(function(request, response) {
- response.writeHead(200, {"Content-Type": "text/html"});
- response.write("");
- response.write("");
- response.write("
");
- response.write("Hello World Page");
- response.write("");
- response.write("");
- response.write("Hello World!");
- response.write("");
- response.write("");
- response.end();
+var debug = false;
+
+var handle = {}
+handle["/"] = requestHandlers.sendInterface;
+handle["/interface"] = requestHandlers.sendInterface;
+
+server.start(router.route,handle,debug);
+
+
+
+
+// old app.js
+/*
+console.log("hello world\r");
+var port = 3000;
+var express = require('express')
+var app = express()
+
+app.get('/', function (req, res) {
+ res.send('Hello World')
});
-server.listen(5000);
-console.log("Server is listening");
+app.listen(port, function () {
+ console.log('Example app listening on port '+port+'!');
+});
var serialport = require("serialport");
var SerialPort = serialport.SerialPort;
@@ -30,7 +40,12 @@ serialPort.on("open", function () {
console.log('open');
serialPort.on("data", function (data) {
console.log("here: "+data);
+
+ app.get('/', function (req, res) {
+ res.send(data)
+ })
});
serialPort.write("AT+CPIN?\r");
});
+*/
diff --git a/board.html b/board.html
new file mode 100644
index 0000000..79e1a4b
--- /dev/null
+++ b/board.html
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
Data from Arduino
+
+
+
+
Data to Arduino
+
+
+
+
LED Dimmer
+
+
+
+
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..cb6a4a8
--- /dev/null
+++ b/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "nodemessageboard",
+ "version": "1.0.0",
+ "description": "A SMS Messageboard built using node and express",
+ "main": "app.js",
+ "dependencies": {
+ "serialport": "^2.0.6",
+ "socket.io": "^1.4.5"
+ },
+ "devDependencies": {},
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "repository": {
+ "type": "git",
+ "url": "."
+ },
+ "author": "Lukas Bachschwell",
+ "license": "ISC"
+}
diff --git a/requestHandlers.js b/requestHandlers.js
new file mode 100644
index 0000000..a6cd7fe
--- /dev/null
+++ b/requestHandlers.js
@@ -0,0 +1,15 @@
+// functions that will be executed when
+// typeoff handle[pathname] === a function in requestHandlers.
+// the handle and function are discribed in index.js
+
+var fs = require('fs'),
+server = require('./server');
+
+function sendInterface(response) {
+ console.log("Request handler 'interface' was called.");
+ response.writeHead(200, {"Content-Type": "text/html"});
+ var html = fs.readFileSync(__dirname + "board.html")
+ response.end(html);
+}
+
+exports.sendInterface = sendInterface;
diff --git a/route.js b/route.js
new file mode 100644
index 0000000..fd97cfc
--- /dev/null
+++ b/route.js
@@ -0,0 +1,18 @@
+function route(handle, pathname,response,request,debug) {
+ console.log("About to route a request for " + pathname);
+ //typeof probes the data type of handle[pathname]. So if
+ //handle[pathname] is a function (in both type and value)
+ //,then run that function.
+ if (typeof handle[pathname] === 'function') {
+ return handle[pathname](response,request);
+ } else {
+ if(debug == true){
+ console.log("No request handler found for " + pathname);
+ }
+ response.writeHead(404, {"Content-Type": "text/plain"});
+ response.write("404 Not found");
+ response.end();
+ }
+}
+
+exports.route = route;
diff --git a/server.js b/server.js
new file mode 100644
index 0000000..03163dd
--- /dev/null
+++ b/server.js
@@ -0,0 +1,93 @@
+var fs = require('fs'),
+http = require('http'),
+socketio = require('socket.io'),
+url = require("url"),
+serialport = require("serialport");
+
+var SerialPort = serialport.SerialPort;
+
+var socketServer;
+var serialPort;
+var portName = '/dev/tty.usbmodemFD121'; //change this to your Arduino port
+var sendData = "";
+
+// handle contains locations to browse to (vote and poll); pathnames.
+function startServer(route,handle,debug)
+{
+ // on request event
+ function onRequest(request, response) {
+ // parse the requested url into pathname. pathname will be compared
+ // in route.js to handle (var content), if it matches the a page will
+ // come up. Otherwise a 404 will be given.
+ var pathname = url.parse(request.url).pathname;
+ console.log("Request for " + pathname + " received");
+ var content = route(handle,pathname,response,request,debug);
+ }
+
+ var httpServer = http.createServer(onRequest).listen(1337, function(){
+ console.log("Listening at: http://localhost:1337");
+ console.log("Server is up");
+ });
+ serialListener(debug);
+ initSocketIO(httpServer,debug);
+}
+
+function initSocketIO(httpServer,debug)
+{
+ socketServer = socketio.listen(httpServer);
+ if(debug == false){
+ socketServer.set('log level', 1); // socket IO debug off
+ }
+ socketServer.on('connection', function (socket) {
+ console.log("user connected");
+ socket.emit('onconnection', {pollOneValue:sendData});
+ socketServer.on('update', function(data) {
+ socket.emit('updateData',{pollOneValue:data});
+ });
+ socket.on('buttonval', function(data) {
+ serialPort.write('AT\r');
+ console.log('sending:..');
+ });
+ socket.on('sliderval', function(data) {
+ serialPort.write(data + 'P');
+ });
+
+ });
+}
+
+// Listen to serial port
+function serialListener(debug)
+{
+ var receivedData = "";
+ serialPort = new SerialPort(portName, {
+ baudrate: 19200,
+ parser: serialport.parsers.readline("\n")
+ });
+
+ serialPort.on("open", function () {
+ console.log('opened serial communication');
+
+ // Listens to incoming data
+ serialPort.on('data', function(data) {
+ //receivedData += data.toString();
+ //if (receivedData .indexOf('E') >= 0 && receivedData .indexOf('B') >= 0) {
+ sendData = '50'; //.substring(receivedData .indexOf('B') + 1, receivedData .indexOf('E'));
+ receivedData = '';
+ console.log('server event happening..' + data + '.\r');
+ //}
+ // send the incoming data to browser with websockets.
+ socketServer.emit('update', sendData);
+ });
+ //setTimeout(sendPin,500);
+ serialPort.write('AT+CPIN=3797\r');
+ console.log("Sent Pincode...");
+ });
+}
+
+function sendPin(){
+serialPort.write('AT+CPIN=3797\r');
+console.log("Sent Pincode...");
+}
+
+
+exports.start = startServer;