-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathserver.js
More file actions
50 lines (49 loc) · 1.08 KB
/
server.js
File metadata and controls
50 lines (49 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/**
* @author Julian Gautier
*/
/**
* Module Dependencies
*/
var dnode = require('dnode'),
SerialPort = require("serialport").SerialPort;
/**
*@class serialportify
*@param server connect or express server to listen on.
*/
module.exports = function(server) {
var serialConnections = {};
var serialportify = dnode(function(client) {
/*
* Opens a serial port
* @param port path to device
* @param options options object that is passed to serialport
*/
this.open = function(port, options) {
if(!serialConnections[port]){
serialConnections[port] = new SerialPort(port, options);
}
};
/*
* write data to port
* @param port path to device
* @data data to send to device
*/
this.write = function(port, data) {
serialConnections[port].write(data);
};
/**
*
* @param port path to device
* @param cb callback to be executed on data
*/
this.onData = function(port, cb) {
serialConnections[port].on('data', function(data) {
cb(data);
});
};
});
/**
* make serialportify listen on server
*/
serialportify.listen(server);
};