87 lines
2.0 KiB
TypeScript
87 lines
2.0 KiB
TypeScript
import { Request, Response } from "express";
|
|
import { suBoard } from "../../setup";
|
|
import { sPinModes } from "..";
|
|
import { Pin } from "johnny-five";
|
|
|
|
|
|
export function readPin (req: Request, res: Response): Response<string | any> {
|
|
const { board } = suBoard;
|
|
const pin: string = req.params.p;
|
|
|
|
const { mode } = board.pins[pin];
|
|
|
|
return res.status(200).json({
|
|
status: 200,
|
|
pins: [
|
|
{
|
|
pin: pin,
|
|
mode: mode
|
|
}
|
|
],
|
|
message: `Pin ${pin} is ${mode}`
|
|
});
|
|
}
|
|
|
|
export function readPins (req: Request, res: Response): Response<string | any> {
|
|
const { board } = suBoard;
|
|
const pins: string[] = req.body.p;
|
|
const pinModes = [];
|
|
|
|
pins.forEach((pin) => {
|
|
const { mode } = board.pins[pin];
|
|
pinModes.push({
|
|
pin: pin,
|
|
mode: mode
|
|
});
|
|
})
|
|
|
|
return res.status(200).json({
|
|
status: 200,
|
|
pins: [ ...pinModes ]
|
|
});
|
|
}
|
|
|
|
export function setPin (req: Request, res: Response): Response<string | any> {
|
|
const { board } = suBoard;
|
|
const pin: string = req.params.p;
|
|
const mode: sPinModes | string = req.params.m.toUpperCase();
|
|
|
|
board.pinMode(pin, Pin[mode]);
|
|
|
|
suBoard.PINS.digital.push(pin);
|
|
suBoard.sort();
|
|
|
|
return res.status(200).json({
|
|
status: 200,
|
|
pins: [
|
|
{
|
|
pin: pin,
|
|
mode: mode
|
|
}
|
|
],
|
|
message: `Pin ${pin} setted as ${mode}`
|
|
});
|
|
}
|
|
|
|
export function setPins (req: Request, res: Response): Response<string | any> {
|
|
const { board } = suBoard;
|
|
type PinModes = {
|
|
pin: string,
|
|
mode: sPinModes | string
|
|
}
|
|
|
|
const { pinModes }: { pinModes: PinModes[] } = req.body;
|
|
|
|
pinModes.forEach((p) => {
|
|
const { pin, mode } = p;
|
|
board.pinMode(pin, Pin[mode]);
|
|
|
|
suBoard.PINS.digital.push(pin);
|
|
suBoard.sort();
|
|
});
|
|
|
|
return res.status(200).json({
|
|
status: 200,
|
|
pins: [ ...pinModes ]
|
|
});
|
|
} |