Allows to set pin modes more than one
This commit is contained in:
parent
b176f6108e
commit
9470845bad
@ -3,7 +3,7 @@ import { board } from "../../setup";
|
||||
import * as Promises from "../../promises";
|
||||
|
||||
interface AnalogState {
|
||||
pin: number | string,
|
||||
pin: string,
|
||||
value: number
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@ export function analogWrite (req: Request, res: Response): Response<string | any
|
||||
const { pin, value }: AnalogState = req.body;
|
||||
|
||||
try {
|
||||
board.analogWrite(pin, value);
|
||||
board.analogWrite(pin[0] == "A" ? pin.slice(1, pin.length) : pin, value);
|
||||
|
||||
return res.status(200).json({
|
||||
status: 200,
|
||||
|
@ -3,7 +3,7 @@ import { board, suBoard } from "../../setup";
|
||||
import { sPinModes } from "..";
|
||||
import { Pin } from "johnny-five";
|
||||
|
||||
export function readPin (req: Request, res: Response) {
|
||||
export function readPin (req: Request, res: Response): Response<string | any> {
|
||||
const pin: string = req.params.p;
|
||||
|
||||
const { mode } = board.pins[pin];
|
||||
@ -20,7 +20,25 @@ export function readPin (req: Request, res: Response) {
|
||||
});
|
||||
}
|
||||
|
||||
export function setPin (req: Request, res: Response) {
|
||||
export function readPins (req: Request, res: Response): Response<string | any> {
|
||||
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 pin: string = req.params.p;
|
||||
const mode: sPinModes | string = req.params.m.toUpperCase();
|
||||
|
||||
@ -40,3 +58,25 @@ export function setPin (req: Request, res: Response) {
|
||||
message: `Pin ${pin} setted as ${mode}`
|
||||
});
|
||||
}
|
||||
|
||||
export function setPins (req: Request, res: Response): Response<string | any> {
|
||||
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.pwm.push(pin);
|
||||
suBoard.sort();
|
||||
});
|
||||
|
||||
return res.status(200).json({
|
||||
status: 200,
|
||||
pins: [ ...pinModes ]
|
||||
});
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
import { Response } from "express";
|
||||
import { Router } from "express";
|
||||
|
||||
import { readPin, setPin } from "../controller/basic/pin";
|
||||
import { readPin, readPins, setPin, setPins } from "../controller/basic/pin";
|
||||
import { digitalRead, digitalWrite } from "../controller/basic/digital";
|
||||
import { analogRead, analogWrite } from "../controller/basic/analog";
|
||||
|
||||
@ -20,7 +20,9 @@ router.get('/hello', (req, res: Response): Response<string> => {
|
||||
|
||||
// PinMode
|
||||
router.get('/pin/:p', readPin);
|
||||
router.get('/pins', readPins);
|
||||
router.patch('/pin/:p/:m', setPin);
|
||||
router.patch('/pins', setPins);
|
||||
|
||||
// Digital read/write
|
||||
router.get('/digital/:pin', digitalRead);
|
||||
@ -42,8 +44,8 @@ router.patch('/rgb-led/', writeRgbLed);
|
||||
// Piezo
|
||||
router.patch('/piezo/:p/:f', isPinNumeric, piezoTone);
|
||||
router.patch('/piezo/note', piezoNote);
|
||||
router.patch('/piezo/music/', piezoPlayNotes);
|
||||
router.patch('/piezo/stop/', piezoNoTone);
|
||||
router.patch('/piezo/music', piezoPlayNotes);
|
||||
router.patch('/piezo/stop', piezoNoTone);
|
||||
|
||||
// for real-time communication is deprecated and not recommended
|
||||
// use other protocol like websocket instead, we're using socket.io
|
||||
|
Loading…
x
Reference in New Issue
Block a user