From 459008d372b998ded12a37367a3e881115c3af6d Mon Sep 17 00:00:00 2001 From: Skylar Grant Date: Tue, 20 Aug 2024 18:54:34 -0400 Subject: [PATCH] Added more logic flow stuff. --- src/custom_modules/VoidGPIO.js | 12 +++++++----- src/custom_modules/functions.js | 27 ++++++++++++++++----------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/custom_modules/VoidGPIO.js b/src/custom_modules/VoidGPIO.js index 5c50031..baa4cdc 100644 --- a/src/custom_modules/VoidGPIO.js +++ b/src/custom_modules/VoidGPIO.js @@ -14,11 +14,13 @@ module.exports = { }); }, // Calls the GPIO Interface script to read a pin's state - readPin(pin, callback) { - exec(`python3 src/python/gpio_interface.py read ${pin}`, (error, stdout, stderr) => { - if (error) callback(error); - if (stderr) callback(new Error(stderr)); - callback(null, stdout.trim()); + readPin(pin) { + return new Promise((resolve, reject) => { + exec(`python3 src/python/gpio_interface.py read ${pin}`, (error, stdout, stderr) => { + if (error) reject(error); + if (stderr) reject(new Error(stderr)); + resolve(stdout.trim()); + }); }); }, // Calls the GPIO Interface script to set a pin's state regardless of its current state diff --git a/src/custom_modules/functions.js b/src/custom_modules/functions.js index 09f9a8b..908287b 100644 --- a/src/custom_modules/functions.js +++ b/src/custom_modules/functions.js @@ -1,5 +1,6 @@ const dotenv = require('dotenv').config(); const debug = process.env.DEBUG === "TRUE"; +const config = require('./config.json'); const { pins } = require('./config.json'); const gpio = require('./VoidGPIO.js'); const pinMap = new Map(); @@ -71,25 +72,29 @@ module.exports = { power: { start: { init() { - return new Promise((resolve, reject) => { - // Check pin states + return new Promise(async (resolve, reject) => { + // TODO: Check pin states? - // Set pins to default states + // T_DONE: Set pins to default states module.exports.gpio.setDefaults().then(changes => { module.exports.log(changes); }).catch(e => console.error(e)); - // Power on igniter - gpio.setPin(pinMap.igniter.board, 1, (err) => { - if (err) reject(err); - }) - // Wait for igniter preheat - - // Start exhaust - // Finish igniter preheat + // T_DONE: Power on igniter + gpio.setPin(pinMap.igniter.board, 1).then(async () => { + // T_DONE: Wait for igniter preheat + await module.exports.sleep(config.power.start.exhaustDelay); + }).catch(e => console.error(e)); + + // T_DONE: Start exhaust + gpio.setPin(pinMap.exhaust.board, 1).then(async () => { + // T_DONE: Finish igniter preheat + await module.exports.sleep(config.power.start.augerDelay); + }).catch(e => console.error(e)); // Check for vacuum + // Start auger // Wait for fire