Skip to content

Commit 226751d

Browse files
apio manual data complete
1 parent a2ed3d5 commit 226751d

File tree

8 files changed

+184
-3
lines changed

8 files changed

+184
-3
lines changed

app.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ var aboutRouter = require('./routes/about');
1313
var apiRouter = require('./routes/api');
1414
var logsRouter = require('./routes/logs');
1515
var analysisRouter = require('./routes/analysis');
16+
var viewRouter = require('./routes/view');
1617

1718
var mongoose = require('mongoose');
1819

@@ -37,7 +38,7 @@ app.use('/about', aboutRouter);
3738
app.use('/api', apiRouter);
3839
app.use('/logs', logsRouter);
3940
app.use('/analysis', analysisRouter);
40-
41+
app.use('/view', viewRouter);
4142
// catch 404 and forward to error handler
4243
app.use(function (req, res, next) {
4344
next(createError(404));

controllers/api_controller.js

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
var Data_Data = require('../models/data_data');
2+
var Manual_Data = require('../models/manual_data');
23
var Sensor_Data = require('../models/sensor_data');
34
var User_Data = require('../models/user_data');
45

56
var asysc = require('async');
67

8+
exports.login = function (req, res) {
9+
res.send('Success');
10+
}
11+
712
exports.data_save = function (req, res) {
813
res.send('data received');
914
};
@@ -65,4 +70,62 @@ exports.sensor_data_save_post = function (req, res) {
6570
res.send('data saved');
6671
}
6772
});
73+
}
74+
75+
exports.manual_data_save_post = function (req, res) {
76+
var manual_data = new Manual_Data({
77+
timestamp: req.body.timestamp,
78+
sourceName: req.body.sourceName,
79+
value: req.body.value
80+
});
81+
82+
manual_data.save(function (err) {
83+
if (err) {
84+
res.send('data not saved');
85+
} else {
86+
res.send('data saved');
87+
}
88+
});
89+
}
90+
91+
exports.get_sensor_data = function (req, res) {
92+
Sensor_Data.find({}, { 'value': 1 })
93+
.exec(function (err, sensor_values) {
94+
if (err) {
95+
res.send(err);
96+
} else {
97+
res.send(JSON.stringify(sensor_values));
98+
}
99+
});
100+
}
101+
102+
exports.get_manual_data = function (req, res) {
103+
Manual_Data.find({}, { 'value': 1 })
104+
.exec(function (err, manual_values) {
105+
if (err) {
106+
res.send(err);
107+
} else {
108+
res.send(JSON.stringify(manual_values));
109+
}
110+
});
111+
}
112+
113+
exports.delete_sensor_data = function (req, res) {
114+
Sensor_Data.deleteMany({}, function (err) {
115+
if (err) {
116+
res.send(err);
117+
} else {
118+
res.send('all sensor data delete');
119+
}
120+
});
121+
}
122+
123+
exports.delete_manual_data = function (req, res) {
124+
Manual_Data.deleteMany({}, function (err) {
125+
if (err) {
126+
res.send(err);
127+
} else {
128+
res.send('all manual data delete');
129+
}
130+
});
68131
}

controllers/view_controller.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ var Sensor_Data = require('../models/sensor_data');
22

33
var async = require('async');
44

5-
exports.showSensorGraph = function(req, res){
6-
res.send('showing sensor data');
5+
exports.showSensorGraph = function (req, res) {
6+
res.render('sensor');
7+
};
8+
9+
exports.showManualGraph = function (req, res) {
10+
res.render('manual');
711
};

models/manual_data.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
var mongoose = require('mongoose');
2+
3+
var Schema = mongoose.Schema;
4+
5+
var ManualDataSchema = new Schema({
6+
timestamp: Date,
7+
sourceName: String,
8+
value: Number
9+
});
10+
11+
module.exports = mongoose.model('ManualDataModel', ManualDataSchema);

routes/api.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,26 @@ var router = express.Router();
33

44
var api_contoller = require('../controllers/api_controller');
55

6+
router.post('/login', api_contoller.login);
7+
68
router.get('/save', api_contoller.data_save);
79

810
router.post('/save', api_contoller.data_save_post);
911

1012
router.post('/postSensor', api_contoller.sensor_data_save_post);
1113

14+
router.post('/postManual', api_contoller.manual_data_save_post);
15+
1216
router.get('/getallusers', api_contoller.get_all_users);
1317

1418
router.get('/getServiceTime', api_contoller.get_service_time);
1519

20+
router.get('/getSensorData', api_contoller.get_sensor_data);
21+
22+
router.get('/getManualData', api_contoller.get_manual_data);
23+
24+
router.get('/deleteSensorData', api_contoller.delete_sensor_data);
25+
26+
router.get('/deleteManualData', api_contoller.delete_manual_data);
27+
1628
module.exports = router;

routes/view.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,6 @@ var view_controller = require('../controllers/view_controller');
55

66
router.get('/sensor', view_controller.showSensorGraph);
77

8+
router.get('/manual', view_controller.showManualGraph);
9+
810
module.exports = router;

views/manual.pug

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
html
2+
head
3+
script(type='text/javascript', src='https://www.gstatic.com/charts/loader.js')
4+
script(type='text/javascript').
5+
google.charts.load('current', {'packages':['corechart']});
6+
google.charts.setOnLoadCallback(repeatFetch);
7+
8+
function repeatFetch(){
9+
getData();
10+
window.setInterval(function(){
11+
getData();}, 6000);
12+
}
13+
14+
function getData(){
15+
var xmlhttp = new XMLHttpRequest();
16+
xmlhttp.onreadystatechange = function() {
17+
if (this.readyState == 4 && this.status == 200) {
18+
var myArr = JSON.parse(this.responseText);
19+
drawChart(myArr);
20+
}
21+
};
22+
xmlhttp.open("GET", "/api/getManualData", true);
23+
xmlhttp.send()
24+
}
25+
26+
27+
function drawChart(arr) {
28+
var dataExtFinal = [['index', 'value']];
29+
30+
for(i = 0; i < arr.length; i++){
31+
dataExtFinal.push(['', arr[i].value]);
32+
}
33+
34+
var data = google.visualization.arrayToDataTable(dataExtFinal);
35+
var options = {
36+
title: 'Manual Value',
37+
curveType: 'function',
38+
legend: { position: 'bottom' }
39+
};
40+
var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
41+
chart.draw(data, options);
42+
}
43+
body
44+
#curve_chart(style='width: 900px; height: 500px')

views/sensor.pug

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
html
2+
head
3+
script(type='text/javascript', src='https://www.gstatic.com/charts/loader.js')
4+
script(type='text/javascript').
5+
google.charts.load('current', {'packages':['corechart']});
6+
google.charts.setOnLoadCallback(repeatFetch);
7+
8+
function repeatFetch(){
9+
getData();
10+
window.setInterval(function(){
11+
getData();}, 6000);
12+
}
13+
14+
function getData(){
15+
var xmlhttp = new XMLHttpRequest();
16+
xmlhttp.onreadystatechange = function() {
17+
if (this.readyState == 4 && this.status == 200) {
18+
var myArr = JSON.parse(this.responseText);
19+
drawChart(myArr);
20+
}
21+
};
22+
xmlhttp.open("GET", "/api/getSensorData", true);
23+
xmlhttp.send()
24+
}
25+
26+
27+
function drawChart(arr) {
28+
var dataExtFinal = [['index', 'value']];
29+
30+
for(i = 0; i < arr.length; i++){
31+
dataExtFinal.push(['', arr[i].value]);
32+
}
33+
34+
var data = google.visualization.arrayToDataTable(dataExtFinal);
35+
var options = {
36+
title: 'Sensor Value',
37+
curveType: 'function',
38+
legend: { position: 'bottom' }
39+
};
40+
var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
41+
chart.draw(data, options);
42+
}
43+
body
44+
#curve_chart(style='width: 900px; height: 500px')

0 commit comments

Comments
 (0)