Speeduino
Loading...
Searching...
No Matches
pinNumbers_t.h
Go to the documentation of this file.
1#pragma once
2
3#include <stdint.h>
4#include "../../board_definition.h"
5#include "../../config_pages.h"
6#include "../stdlib/array.h"
7
9template <uint8_t N, typename base_type = array<uint8_t, N>>
10struct pin_array_t : public base_type
11{
12 // LCOV_EXCL_START
13 // Default constructor test coverage isn't registered since it's only used in constexpr context.
14 constexpr pin_array_t()
15 {
17 }
18 // LCOV_EXCL_STOP
19
22 {
23 uint8_t index = 0;
24 while (index<N && pin!=this->operator[](index))
25 {
26 ++index;
27 }
28 return index<N;
29 }
30};
31
34
37
40{
42 {
43 if (index<injectorPins.size())
44 {
45 injectorPins[index] = pin;
46 }
47 }
49 {
50 if (index<coilPins.size())
51 {
52 coilPins[index] = pin;
53 }
54 }
57 uint8_t pinTrigger = NOT_A_PIN; //The CAS pin
58 uint8_t pinTrigger2 = NOT_A_PIN; //The Cam Sensor pin known as secondary input
59 uint8_t pinTrigger3 = NOT_A_PIN; //the 2nd cam sensor pin known as tertiary input
60 uint8_t pinTPS = NOT_A_PIN;//TPS input pin
61 uint8_t pinMAP = NOT_A_PIN; //MAP sensor pin
62 uint8_t pinEMAP = NOT_A_PIN; //EMAP sensor pin
63 uint8_t pinIAT = NOT_A_PIN; //IAT sensor pin
64 uint8_t pinCLT = NOT_A_PIN; //CLS sensor pin
65 uint8_t pinO2 = NOT_A_PIN; //O2 Sensor pin
66 uint8_t pinO2_2 = NOT_A_PIN; //second O2 pin
67 uint8_t pinBat = NOT_A_PIN; //Battery voltage pin
68 uint8_t pinTachOut = NOT_A_PIN; //Tacho output
69 uint8_t pinFuelPump = NOT_A_PIN; //Fuel pump on/off
70 uint8_t pinIdle1 = NOT_A_PIN; //Single wire idle control
71 uint8_t pinIdle2 = NOT_A_PIN; //2 wire idle control (Not currently used)
72 uint8_t pinIdleUp = NOT_A_PIN; //Input for triggering Idle Up
73 uint8_t pinIdleUpOutput = NOT_A_PIN; //Output that follows (normal or inverted) the idle up pin
74 uint8_t pinCTPS = NOT_A_PIN; //Input for triggering closed throttle state
75 uint8_t pinFuel2Input = NOT_A_PIN; //Input for switching to the 2nd fuel table
76 uint8_t pinSpark2Input = NOT_A_PIN; //Input for switching to the 2nd ignition table
78 uint8_t pinVVT_1 = NOT_A_PIN; // vvt output 1
79 uint8_t pinVVT_2 = NOT_A_PIN; // vvt output 2
80 uint8_t pinFan = NOT_A_PIN; // Cooling fan output
81 uint8_t pinStepperDir = NOT_A_PIN; //Direction pin for the stepper motor driver
82 uint8_t pinStepperStep = NOT_A_PIN; //Step pin for the stepper motor driver
83 uint8_t pinStepperEnable = NOT_A_PIN; //Turning the DRV8825 driver on/off
85 uint8_t pinIgnBypass = NOT_A_PIN; //The pin used for an ignition bypass (Optional)
86 uint8_t pinFlex = NOT_A_PIN; //Pin with the flex sensor attached
88 uint8_t pinBaro = NOT_A_PIN; //Pin that an external barometric pressure sensor is attached to (If used)
89 uint8_t pinResetControl = NOT_A_PIN; // Output pin used control resetting the Arduino
92 uint8_t pinWMIEmpty = NOT_A_PIN; // Water tank empty sensor
93 uint8_t pinWMIIndicator = NOT_A_PIN; // No water indicator bulb
94 uint8_t pinWMIEnabled = NOT_A_PIN; // ON-OFF output to relay/pump/solenoid
95#if defined(MC33810_SUPPORT)
100#endif
101#ifdef SD_LOGGING
102 uint8_t pinSDEnable = NOT_A_PIN; //Input for manually enabling SD logging
103#endif
104#ifdef USE_SPI_EEPROM
106#endif
107 uint8_t pinAirConComp = NOT_A_PIN; // Air conditioning compressor output
108 uint8_t pinAirConFan = NOT_A_PIN; // Stand-alone air conditioning fan output
109 uint8_t pinAirConRequest = NOT_A_PIN; // Air conditioning request input
110};
constexpr uint8_t NOT_A_PIN
Definition board_definition.h:92
Definition array.h:14
constexpr array()=default
constexpr size_type size() const noexcept
Definition array.h:63
constexpr void fill(const T &value)
Definition array.h:67
An array of pin numbers.
Definition pinNumbers_t.h:11
bool isPinUsed(uint8_t pin) const
Does the array contain pin?
Definition pinNumbers_t.h:21
constexpr pin_array_t()
Definition pinNumbers_t.h:14
Store the pin assignments, as defined by the board.
Definition pinNumbers_t.h:40
uint8_t pinIdleUpOutput
Definition pinNumbers_t.h:73
uint8_t pinStepperEnable
Definition pinNumbers_t.h:83
uint8_t pinVVT_2
Definition pinNumbers_t.h:79
uint8_t pinIdle2
Definition pinNumbers_t.h:71
uint8_t pinO2
Definition pinNumbers_t.h:65
uint8_t pinFan
Definition pinNumbers_t.h:80
uint8_t pinO2_2
Definition pinNumbers_t.h:66
uint8_t pinTrigger
Definition pinNumbers_t.h:57
uint8_t pinOilPressure
Definition pinNumbers_t.h:91
uint8_t pinCTPS
Definition pinNumbers_t.h:74
uint8_t pinBoost
Definition pinNumbers_t.h:77
uint8_t pinWMIEnabled
Definition pinNumbers_t.h:94
uint8_t pinTPS
Definition pinNumbers_t.h:60
uint8_t pinStepperDir
Definition pinNumbers_t.h:81
uint8_t pinIgnBypass
Definition pinNumbers_t.h:85
uint8_t pinMAP
Definition pinNumbers_t.h:61
uint8_t pinTrigger2
Definition pinNumbers_t.h:58
void setInjectorPin(uint8_t index, uint8_t pin)
Definition pinNumbers_t.h:41
uint8_t pinFuel2Input
Definition pinNumbers_t.h:75
uint8_t pinWMIEmpty
Definition pinNumbers_t.h:92
uint8_t pinEMAP
Definition pinNumbers_t.h:62
uint8_t pinWMIIndicator
Definition pinNumbers_t.h:93
uint8_t pinVVT_1
Definition pinNumbers_t.h:78
uint8_t pinIAT
Definition pinNumbers_t.h:63
uint8_t pinFuelPump
Definition pinNumbers_t.h:69
uint8_t pinResetControl
Definition pinNumbers_t.h:89
uint8_t pinStepperStep
Definition pinNumbers_t.h:82
uint8_t pinIdleUp
Definition pinNumbers_t.h:72
uint8_t pinFuelPressure
Definition pinNumbers_t.h:90
uint8_t pinVSS
Definition pinNumbers_t.h:87
uint8_t pinLaunch
Definition pinNumbers_t.h:84
uint8_t pinBaro
Definition pinNumbers_t.h:88
injector_pins_t injectorPins
Definition pinNumbers_t.h:55
uint8_t pinTachOut
Definition pinNumbers_t.h:68
uint8_t pinSpark2Input
Definition pinNumbers_t.h:76
coil_pins_t coilPins
Definition pinNumbers_t.h:56
uint8_t pinAirConFan
Definition pinNumbers_t.h:108
void setCoilPin(uint8_t index, uint8_t pin)
Definition pinNumbers_t.h:48
uint8_t pinCLT
Definition pinNumbers_t.h:64
uint8_t pinAirConRequest
Definition pinNumbers_t.h:109
uint8_t pinBat
Definition pinNumbers_t.h:67
uint8_t pinIdle1
Definition pinNumbers_t.h:70
uint8_t pinAirConComp
Definition pinNumbers_t.h:107
uint8_t pinFlex
Definition pinNumbers_t.h:86
uint8_t pinTrigger3
Definition pinNumbers_t.h:59