Skip to content
Snippets Groups Projects
Commit cda66ecf authored by larsH's avatar larsH
Browse files

Added LED feature

parent d6afd82f
No related branches found
No related tags found
1 merge request!1Swagger improvements
...@@ -166,6 +166,15 @@ ...@@ -166,6 +166,15 @@
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"dev": true "dev": true
}, },
"bindings": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
"integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
"optional": true,
"requires": {
"file-uri-to-path": "1.0.0"
}
},
"body-parser": { "body-parser": {
"version": "1.19.0", "version": "1.19.0",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
...@@ -343,6 +352,24 @@ ...@@ -343,6 +352,24 @@
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
}, },
"epoll": {
"version": "2.0.10",
"resolved": "https://registry.npmjs.org/epoll/-/epoll-2.0.10.tgz",
"integrity": "sha512-kx5y1SxivN99HjXDZpE/A73FHJV/dzRQt+qoF88CEza3RcEKGqNfkXPPY/oqVBV5w6G2N6b8xd5s5zprgrUVnQ==",
"optional": true,
"requires": {
"bindings": "^1.5.0",
"nan": "^2.14.0"
},
"dependencies": {
"nan": {
"version": "2.14.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
"integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
"optional": true
}
}
},
"escape-html": { "escape-html": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
...@@ -418,6 +445,12 @@ ...@@ -418,6 +445,12 @@
"resolved": "https://registry.npmjs.org/feature-policy/-/feature-policy-0.3.0.tgz", "resolved": "https://registry.npmjs.org/feature-policy/-/feature-policy-0.3.0.tgz",
"integrity": "sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ==" "integrity": "sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ=="
}, },
"file-uri-to-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
"optional": true
},
"finalhandler": { "finalhandler": {
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
...@@ -604,6 +637,12 @@ ...@@ -604,6 +637,12 @@
"esprima": "^4.0.0" "esprima": "^4.0.0"
} }
}, },
"lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
"optional": true
},
"media-typer": { "media-typer": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
...@@ -666,6 +705,12 @@ ...@@ -666,6 +705,12 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}, },
"nan": {
"version": "2.13.2",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
"integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==",
"optional": true
},
"negotiator": { "negotiator": {
"version": "0.6.2", "version": "0.6.2",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
...@@ -676,6 +721,15 @@ ...@@ -676,6 +721,15 @@
"resolved": "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz", "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz",
"integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==" "integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q=="
}, },
"node-dht-sensor": {
"version": "0.0.36",
"resolved": "https://registry.npmjs.org/node-dht-sensor/-/node-dht-sensor-0.0.36.tgz",
"integrity": "sha512-jsnTAY6PbLWCoDkRTFU+ICjn+HTmoCTMkOCqfS6eHOvNHSgle0dzUkRssT8UdOAy+l4IYie2zCeMtlfycX5Ndg==",
"optional": true,
"requires": {
"nan": "2.13.2"
}
},
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
...@@ -698,6 +752,16 @@ ...@@ -698,6 +752,16 @@
"wrappy": "1" "wrappy": "1"
} }
}, },
"onoff": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/onoff/-/onoff-4.1.4.tgz",
"integrity": "sha512-donHmh40cVZuU4CKp6vTWi0y2QK7OXiOlMSeqXPV+iWi0EqLOV5ld0qVVO0rp7/f9GAeX21LgrOBfT2Bk2RVvQ==",
"optional": true,
"requires": {
"epoll": "^2.0.10",
"lodash.debounce": "^4.0.8"
}
},
"parseurl": { "parseurl": {
"version": "1.3.3", "version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
...@@ -720,6 +784,24 @@ ...@@ -720,6 +784,24 @@
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
}, },
"pigpio": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/pigpio/-/pigpio-1.2.3.tgz",
"integrity": "sha512-3ySsqR2Dxvl8p/vY1MMwF6dVYXTNnK4uuGaYy7gQvQ65GIOtiqpU4N4Ylq1MoKJbfXY9SJbW2PLhkprzQks3dA==",
"optional": true,
"requires": {
"bindings": "^1.5.0",
"nan": "^2.14.0"
},
"dependencies": {
"nan": {
"version": "2.14.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
"integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
"optional": true
}
}
},
"prettier": { "prettier": {
"version": "1.18.2", "version": "1.18.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz",
......
...@@ -7,6 +7,7 @@ import * as path from "path"; ...@@ -7,6 +7,7 @@ import * as path from "path";
// Routes // Routes
import gpioRoutes from "./routes/gpio.route"; import gpioRoutes from "./routes/gpio.route";
import sensorRoutes from "./routes/sensor.route"; import sensorRoutes from "./routes/sensor.route";
import actuatorRoutes from "./routes/actuator.route"
import { initialize } from "./services/gpio.service"; import { initialize } from "./services/gpio.service";
...@@ -37,8 +38,7 @@ app.use(express.static(__dirname + "/../dist")); ...@@ -37,8 +38,7 @@ app.use(express.static(__dirname + "/../dist"));
// Routes // Routes
app.use("/api/gpio", gpioRoutes); app.use("/api/gpio", gpioRoutes);
app.use("/api/sensor", sensorRoutes); app.use("/api/sensor", sensorRoutes);
// app.use("/api/energy", totalEnergyRoutes); app.use("/api/actuator", actuatorRoutes);
// app.use("/api/co2", co2Routes);
app.all("*", (req: any, res: any) => { app.all("*", (req: any, res: any) => {
res.sendFile(path.resolve(__dirname + "/../dist/index.html")); res.sendFile(path.resolve(__dirname + "/../dist/index.html"));
......
import { Request, Response, NextFunction } from "express";
import { setLEDservice, getLEDservice } from "../services/gpio.service";
export function setLED(req: Request, res: Response, next: NextFunction) {
//Get wanted LED and wished value
const id: string = req.params.id;
const value = req.body["value"];
if(id != "4"){
res.status(401).json({"msg" :"LED does not exist"})
}
if(value == null || !(value === 0 || value === 1)){
res.status(401).json({"msg" : "invalid input"})
}
setLEDservice(id, value);
res.status(201).json({});
}
export function getLED(req: Request, res: Response, next: NextFunction) {
const id: string = req.params.id;
const value = getLEDservice(id);
if (value) {
res.status(200).json({ "led": "on" })
}
else {
res.status(200).json({ "led": "off" });
}
}
\ No newline at end of file
import { Router } from "express";
import { setLED,getLED } from "../controllers/actuator.controller";
const router = Router();
router
.route("/led/:id")
.get(getLED)
.post(setLED);
export default router;
\ No newline at end of file
...@@ -13,6 +13,7 @@ try { ...@@ -13,6 +13,7 @@ try {
const MICROSECDONDS_PER_CM = 1e6/34321; const MICROSECDONDS_PER_CM = 1e6/34321;
var trigger = null; var trigger = null;
var echo = null; var echo = null;
var led = null;
export let distanceBuffer = null; export let distanceBuffer = null;
...@@ -93,4 +94,22 @@ export function retrieveUltrasonicValue(): Promise<any> { ...@@ -93,4 +94,22 @@ export function retrieveUltrasonicValue(): Promise<any> {
return getSingleHCSR04Value(); return getSingleHCSR04Value();
} }
return Promise.resolve(216.5); return Promise.resolve(216.5);
}
export function setLEDservice(lednr, value) {
if (isProduction()) {
led = new Gpio(lednr, { mode: Gpio.OUTPUT });
led.digitalWrite(value);
}
console.log("Led called")
}
export function getLEDservice(lednr) {
if (isProduction()) {
led = new Gpio(lednr, { mode: Gpio.OUTPUT });
return led.digitalRead()
}
return 0;
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment