Skip to content

Commit cd2f40d

Browse files
committed
NodeJS & packages updates
1 parent 39114ac commit cd2f40d

File tree

3 files changed

+57
-51
lines changed

3 files changed

+57
-51
lines changed

.setup/gatewaysetup.sh

Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ CYAN='\033[0;36m'
1111
NC='\033[0m' # No Color
1212

1313
APPSRVDIR='/home/pi/gateway/'
14-
NODEDIR='/opt/nodejs'
15-
NODEARCH=$(uname -m)
14+
#NODEDIR='/opt/nodejs'
15+
#NODEARCH=$(uname -m)
1616

1717
echo -e "${GRN}#########################################################################${NC}"
1818
echo -e "${GRN}# Low Power Lab Gateway App Setup #${NC}"
@@ -44,45 +44,47 @@ sudo apt-get -y install nginx
4444
sudo apt-get -y install php-common php-cli php-fpm
4545

4646
#install NodeJS
47-
echo -e "${CYAN}************* STEP: Install NodeJS *************${NC}"
48-
if [[ "$NODEARCH" == "armv6l" ]] ; then
49-
mkdir ~/tempnode -p
50-
cd ~/tempnode
51-
wget https://nodejs.org/dist/v4.6.2/node-v4.6.2-linux-armv6l.tar.gz
52-
tar -xzf node-v4.6.2-linux-armv6l.tar.gz
53-
sudo rm node-v4.6.2-linux-armv6l.tar.gz
54-
sudo rm -rf $NODEDIR
55-
mkdir -p $NODEDIR
56-
sudo mv node-v4.6.2-linux-armv6l/* $NODEDIR
57-
sudo rm -rf ~/tempnode;
58-
cd ~/
59-
# sudo unlink /usr/bin/node;
60-
# sudo unlink /usr/sbin/node;
61-
# sudo unlink /sbin/node;
62-
# sudo unlink /usr/local/bin/node;
63-
# sudo unlink /usr/bin/npm;
64-
# sudo unlink /usr/sbin/npm;
65-
# sudo unlink /sbin/npm;
66-
# sudo unlink /usr/local/bin/npm;
67-
# sudo ln -s /opt/node/bin/node /usr/bin/node;
68-
# sudo ln -s opt/node/bin/node /usr/sbin/node;
69-
# sudo ln -s /opt/node/bin/node /sbin/node;
70-
# sudo ln -s /opt/node/bin/node /usr/local/bin/node;
71-
# sudo ln -s /opt/node/bin/npm /usr/bin/npm;
72-
# sudo ln -s /opt/node/bin/npm /usr/sbin/npm;
73-
# sudo ln -s /opt/node/bin/npm /sbin/npm;
74-
# sudo ln -s /opt/node/bin/npm /usr/local/bin/npm;
75-
echo 'Creating symbolic link to node in /usr/bin/'
76-
sudo ln -sf $NODEDIR/bin/node /usr/bin/node
77-
echo 'Creating symbolic link to nodejs in /usr/bin/'
78-
sudo ln -sf $NODEDIR/bin/node /usr/bin/nodejs
79-
echo 'Creating symbolic link to npm in /usr/bin/'
80-
sudo ln -sf $NODEDIR/bin/npm /usr/bin/npm
81-
else
82-
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -;
83-
sudo apt-get -y install nodejs;
84-
fi
47+
# echo -e "${CYAN}************* STEP: Install NodeJS *************${NC}"
48+
# if [[ "$NODEARCH" == "armv6l" ]] ; then
49+
# mkdir ~/tempnode -p
50+
# cd ~/tempnode
51+
# wget https://nodejs.org/dist/v4.6.2/node-v4.6.2-linux-armv6l.tar.gz
52+
# tar -xzf node-v4.6.2-linux-armv6l.tar.gz
53+
# sudo rm node-v4.6.2-linux-armv6l.tar.gz
54+
# sudo rm -rf $NODEDIR
55+
# mkdir -p $NODEDIR
56+
# sudo mv node-v4.6.2-linux-armv6l/* $NODEDIR
57+
# sudo rm -rf ~/tempnode;
58+
# cd ~/
59+
# # sudo unlink /usr/bin/node;
60+
# # sudo unlink /usr/sbin/node;
61+
# # sudo unlink /sbin/node;
62+
# # sudo unlink /usr/local/bin/node;
63+
# # sudo unlink /usr/bin/npm;
64+
# # sudo unlink /usr/sbin/npm;
65+
# # sudo unlink /sbin/npm;
66+
# # sudo unlink /usr/local/bin/npm;
67+
# # sudo ln -s /opt/node/bin/node /usr/bin/node;
68+
# # sudo ln -s opt/node/bin/node /usr/sbin/node;
69+
# # sudo ln -s /opt/node/bin/node /sbin/node;
70+
# # sudo ln -s /opt/node/bin/node /usr/local/bin/node;
71+
# # sudo ln -s /opt/node/bin/npm /usr/bin/npm;
72+
# # sudo ln -s /opt/node/bin/npm /usr/sbin/npm;
73+
# # sudo ln -s /opt/node/bin/npm /sbin/npm;
74+
# # sudo ln -s /opt/node/bin/npm /usr/local/bin/npm;
75+
# echo 'Creating symbolic link to node in /usr/bin/'
76+
# sudo ln -sf $NODEDIR/bin/node /usr/bin/node
77+
# echo 'Creating symbolic link to nodejs in /usr/bin/'
78+
# sudo ln -sf $NODEDIR/bin/node /usr/bin/nodejs
79+
# echo 'Creating symbolic link to npm in /usr/bin/'
80+
# sudo ln -sf $NODEDIR/bin/npm /usr/bin/npm
81+
# else
82+
# curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -;
83+
# sudo apt-get -y install nodejs;
84+
# fi
8585

86+
#install latest NodeJS --- https://www.raspberrypi.org/forums/viewtopic.php?t=141770
87+
sudo wget -O - https://raw.githubusercontent.com/audstanley/NodeJs-Raspberry-Pi/master/Install-Node.sh | sudo bash
8688

8789
echo -e "${CYAN}************* STEP: Setup Gateway app & dependencies *************${NC}"
8890
sudo mkdir -p $APPSRVDIR #main dir where gateway app lives
@@ -93,7 +95,7 @@ git init
9395
git remote add origin https://github.com/LowPowerLab/RaspberryPi-Gateway.git
9496
git pull origin master
9597
sudo npm install --unsafe-perm --build-from-source
96-
sudo npm cache clean #clear any caches/incomplete installs
98+
sudo npm cache verify #clear any caches/incomplete installs
9799
sudo mkdir $APPSRVDIR/logs -p
98100

99101
#create db and empty placeholders so chown pi will override root permissions

gateway.js

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,27 +38,31 @@ nconf.argv().file({ file: path.resolve(__dirname, 'settings.json5'), format: JSO
3838
settings = nconf.get('settings');
3939
var dbLog = require(path.resolve(__dirname,'logUtil.js'));
4040
io = require('socket.io').listen(settings.general.socketPort.value);
41-
var serialport = require("serialport"); //https://github.com/voodootikigod/node-serialport
41+
var serialport = require("serialport"); //https://github.com/node-serialport/node-serialport
4242
var Datastore = require('nedb'); //https://github.com/louischatriot/nedb
4343
var nodemailer = require('nodemailer'); //https://github.com/andris9/Nodemailer
4444
var request = require('request');
4545
db = new Datastore({ filename: path.join(__dirname, dbDir, settings.database.name.value), autoload: true }); //used to keep all node/metric data
4646
var dbunmatched = new Datastore({ filename: path.join(__dirname, dbDir, settings.database.nonMatchesName.value), autoload: true });
47-
serial = new serialport.SerialPort(settings.serial.port.value, { baudrate : settings.serial.baud.value, parser: serialport.parsers.readline("\n") }, false);
4847

49-
serial.on('error', function serialErrorHandler(error) {
48+
//old: port = new serialport.SerialPort(settings.serial.port.value, { baudrate : settings.serial.baud.value, parser: serialport.parsers.readline("\n") }, false);
49+
var port = new serialport(settings.serial.port.value, {baudRate : settings.serial.baud.value});
50+
var Readline = serialport.parsers.Readline;
51+
var parser = new Readline();
52+
53+
port.on('error', function serialErrorHandler(error) {
5054
//Send serial error messages to console. Better error handling needs to be here in the future.
5155
console.error(error.message);
5256
});
5357

54-
serial.on('close', function serialCloseHandler(error) {
58+
port.on('close', function serialCloseHandler(error) {
5559
//Give user a sane error message and exit. Future possibilities could include sending message to front end via socket.io & setup timer to retry opening serial.
5660
console.error(error.message);
5761
process.exit(1);
5862
});
5963

60-
serial.on("data", function(data) { processSerialData(data); });
61-
serial.open();
64+
parser.on("data", function(data) { processSerialData(data); });
65+
port.open();
6266

6367
require("console-stamp")(console, settings.general.consoleLogDateFormat.value); //timestamp logs - https://github.com/starak/node-console-stamp
6468

@@ -139,18 +143,18 @@ global.sendSMS = function(SUBJECT, BODY) {
139143
global.sendMessageToNode = function(node) {
140144
if (metricsDef.isNumeric(node.nodeId) && node.action)
141145
{
142-
serial.write(node.nodeId + ':' + node.action + '\n', function () { serial.drain(); });
146+
port.write(node.nodeId + ':' + node.action + '\n', function () { port.drain(); });
143147
console.log('NODEACTION: ' + JSON.stringify(node));
144148
}
145149
else if (node.action)
146150
{
147-
serial.write(node.action + '\n', function () { serial.drain(); });
151+
port.write(node.action + '\n', function () { port.drain(); });
148152
console.log('NODEACTION: ' + JSON.stringify(node));
149153
}
150154
}
151155

152156
global.sendMessageToGateway = function(msg) {
153-
serial.write(msg + '\n', function () { serial.drain(); });
157+
port.write(msg + '\n', function () { port.drain(); });
154158
}
155159

156160
global.handleNodeEvents = function(node) {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"license": "GPL-3.0",
1313
"contributors": "Felix Rusu (https://github.com/LowPowerLab)",
1414
"dependencies": {
15-
"serialport": "~2.0",
15+
"serialport": "~6.2.1",
1616
"socket.io": "~1.5",
1717
"nedb": "~1.8",
1818
"json5": "~0.5.0",

0 commit comments

Comments
 (0)