const express = require('express'); const cors = require('cors'); const app = express(); const child_process =require('child_process'); app.use(cors()); app.use(express.json()); const port = 8080; app.listen(port, () => { console.log(`Server is running at http://localhost:${port}`); }); // Set the pins 5,6,13,19 as output child_process.exec('pinctrl set 5 op'); child_process.exec('pinctrl set 6 op'); child_process.exec('pinctrl set 13 op'); child_process.exec('pinctrl set 19 op'); child_process.exec('pinctrl set 19 pn dh'); app.use('/on/:gpio', function (req, res) { const gpio = req.params.gpio; const command = `pinctrl set ${gpio} pn dh`; child_process.exec(command, function (error, stdout, stderr) { if (error) { console.log(error); return res.status(500).send('Error'); } else { console.log('LED ON', gpio); return res.status(200).send('LED ON'); } }); }); app.use('/off/:gpio', function (req, res) { const gpio = req.params.gpio; const command = `pinctrl set ${gpio} dl`; child_process.exec(command, function (error, stdout, stderr) { if (error) { console.log(error); return res.status(500).send('Error'); } else { console.log('LED OFF', gpio); return res.status(200).send('LED OFF'); } }); }); app.use('/status/:gpio', function (req, res) { const gpio = req.params.gpio; const command = `pinctrl get ${gpio}`; const regex = new RegExp(/.*\| (..) \/.*/); child_process.exec(command, function (error, stdout, stderr) { if (error) { console.log(error); return res.status(500).send('Error'); } else { const status = regex.exec(stdout)[1]; console.log(stdout); return res.status(200).send(status); } }); });