-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclient.js
More file actions
85 lines (68 loc) · 2.12 KB
/
client.js
File metadata and controls
85 lines (68 loc) · 2.12 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
var request = require('request');
var fs = require('fs');
var logger = require('winston');
var CronJob = require('cron').CronJob
// Every x minute
const cronPattern = '0 0/10 * 1/1 * ? *'
var
var job = new CronJob(cronPattern, function() {
// Do request
fireRequest()
}, function() {
// Job stopped
const date = new Date()
logger.log("error", "Job stopped: " + date.toString())
}, true);
logger.add(logger.transports.File, { filename: 'logfile.log' });
logger.remove(logger.transports.Console);
var baseUrl = "http://138.68.175.78:3000/"
var pathNorth = "upload/north"
var pathWest = "upload/west"
var pathStatus = "status"
const timeInterval = 2700 * 1000;
const imageName = "lastImage.jpg"
const cmd0 = 'fswebcam -d /dev/video0 -r 1280x720 --jpeg 90 -D 3 -S 13 ' + imageName;
const cmd1 = 'fswebcam -d /dev/video1 -r 1280x720 --jpeg 90 -D 3 -S 13 ' + imageName;
const camera1 = "north";
const camera2 = "west";
function fireRequest() {
request(
{ method: 'GET'
, uri: baseUrl + pathStatus
}
, function (error, response, body) {
if(!error) {
if(body == "ON") {
logger.log("info", "Received upload status: ON");
snapPicture(cmd0, camera1, baseUrl+pathNorth);
}
} else {
logger.log("error", "Error on status request");
}
});
}
var exec = require('child_process').exec;
function snapPicture(cmd, camera, url) {
exec(cmd, function(error, stfout, stderr) {
logger.log("info", "Picture taken. CMD: " + cmd);
postImage(__dirname + "/" + imageName, camera, url);
});
}
function postImage(imagePath, camera, url) {
var formData = {
// Pass a simple key-value pair
name: camera,
file: fs.createReadStream(imagePath)
};
request.post({url: url, formData: formData}, function optionalCallback(err, httpResponse, body) {
if (err) {
logger.log("error", "Error occured while uploading: " + err);
} else {
logger.log('info', 'Upload successful! Server responded with:', body);
}
if(camera == camera1) {
logger.log("info", "Snapping from camera 2");
snapPicture(cmd1, camera2, baseUrl+pathWest);
}
});
}