#pragma once #define DEBUGLOG_DEFAULT_LOG_LEVEL_DEBUG // Serial debug flag //#define DEBUG // Arduino Libraries #include #include #include "utils.h" // ISR #include "isr.h" // DEVICES #include "devices.h" // Global Variables and Flags const uint8_t spark_timeout_max = 1; // in milliseconds // Debug Variables #ifdef DEBUG static const std::map names = { {TRIG_FLAG_12P, "TRIG_FLAG_12P"}, {TRIG_FLAG_12N, "TRIG_FLAG_12N"}, {TRIG_FLAG_34P, "TRIG_FLAG_34P"}, {TRIG_FLAG_34N, "TRIG_FLAG_34N"}, {SPARK_FLAG_12, "SPARK_FLAG_12"}, {SPARK_FLAG_34, "SPARK_FLAG_34"}, }; #endif // RT task Interrupt parameters struct rtTaskInterrupts { void (*isr_ptr)(void *); const uint8_t trig_pin_12p; const uint8_t trig_pin_12n; const uint8_t trig_pin_34p; const uint8_t trig_pin_34n; const uint8_t spark_pin_12; const uint8_t spark_pin_34; }; // RT Task Peak Detector Reset pins struct rtTaskResets { const uint8_t rst_io_12p; const uint8_t rst_io_12n; const uint8_t rst_io_34p; const uint8_t rst_io_34n; }; // RT task parameters struct rtTaskParams { bool rt_running; // run flag, false to terminate Devices *dev; TaskHandle_t* rt_handle_ptr; const QueueHandle_t rt_queue; const rtTaskInterrupts rt_int; // interrupt pins to attach const rtTaskResets rt_resets; // reset ping for peak detectors }; void rtIgnitionTask(void *pvParameters);