42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
// server/routes/serialUtils.js
|
|
const router = require('express').Router();
|
|
const { listSerialPorts, connectSerial, getLatestPacket } = require('../serial');
|
|
|
|
router.get('/serialports', async (req, res) => {
|
|
try {
|
|
const ports = await listSerialPorts();
|
|
res.json(ports);
|
|
} catch (err) {
|
|
console.error('Error listing ports:', err);
|
|
res.status(500).json({ error: 'Could not list serial ports' });
|
|
}
|
|
});
|
|
|
|
router.get('/latest', (req, res) => {
|
|
const payload = getLatestPacket();
|
|
if (!payload) {
|
|
return res.status(204).end(); // No Content
|
|
}
|
|
res.json(payload);
|
|
});
|
|
|
|
router.post('/connect', (req, res) => {
|
|
const { path } = req.body;
|
|
if (!path) {
|
|
return res.status(400).json({ error: 'Path is required' });
|
|
}
|
|
|
|
try {
|
|
connectSerial(path);
|
|
res.json({
|
|
ok: true,
|
|
connectedTo: path,
|
|
baudRate: 115200
|
|
});
|
|
} catch (err) {
|
|
console.error('Failed to connect:', err);
|
|
res.status(500).json({ error: 'Could not open serial port' });
|
|
}
|
|
});
|
|
|
|
module.exports = router; |