29 lines
828 B
MySQL
29 lines
828 B
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`buffer_readPhotocell`(vSelf INT, vNumber INT)
|
||
|
BEGIN
|
||
|
/**
|
||
|
* Establece el estado de un buffer en función del número de fotocélulas activas
|
||
|
*
|
||
|
* @param vSelf Identificador de srt.buffer
|
||
|
* @param vNumber Número de fotocélulas activas
|
||
|
*/
|
||
|
DECLARE vIsFull BOOL;
|
||
|
DECLARE vBoxes INT;
|
||
|
DECLARE vMotors INT;
|
||
|
DECLARE vMargin INT;
|
||
|
|
||
|
SELECT ((COUNT(*) + vNumber + c.motorsMargin) >= b.motors AND b.motors > 1), COUNT(*), b.motors, c.motorsMargin
|
||
|
INTO vIsFull, vBoxes, vMotors, vMargin
|
||
|
FROM srt.buffer b
|
||
|
LEFT JOIN srt.moving m ON m.bufferToFk = b.id
|
||
|
JOIN srt.config c
|
||
|
WHERE b.id = vSelf;
|
||
|
|
||
|
IF vIsFull THEN
|
||
|
CALL srt.buffer_setStateType(vSelf, 'FULL', NULL);
|
||
|
ELSE
|
||
|
CALL srt.buffer_setStateType(vSelf, 'FREE', NULL);
|
||
|
END IF;
|
||
|
END$$
|
||
|
DELIMITER ;
|