Speeduino
Loading...
Searching...
No Matches
Functions | Variables
programmableIOControl.cpp File Reference
#include "programmableIOControl.h"
#include "logger.h"
#include "units.h"
#include "unit_testing.h"

Functions

void initialiseProgrammableIO (statuses &current, const config13 &page13)
 
TESTABLE_STATIC void checkProgrammableIO (statuses &current, const config13 &page13, int16_t(*getData)(uint16_t index))
 
void checkProgrammableIO (statuses &current, const config13 &page13)
 
TESTABLE_STATIC int16_t ProgrammableIOGetData (uint16_t index, byte(*pGetLogEntry)(uint16_t byteNum))
 
int16_t ProgrammableIOGetData (uint16_t index)
 

Variables

TESTABLE_STATIC uint8_t ioDelay [_countof(config13::outputPin)]
 
TESTABLE_STATIC uint8_t ioOutDelay [_countof(config13::outputPin)]
 
TESTABLE_STATIC uint8_t pinIsValid = 0
 
TESTABLE_STATIC uint8_t currentRuleStatus = 0
 
constexpr uint8_t COMPARATOR_EQUAL = 0
 
constexpr uint8_t COMPARATOR_NOT_EQUAL = 1
 
constexpr uint8_t COMPARATOR_GREATER = 2
 
constexpr uint8_t COMPARATOR_GREATER_EQUAL = 3
 
constexpr uint8_t COMPARATOR_LESS = 4
 
constexpr uint8_t COMPARATOR_LESS_EQUAL = 5
 
constexpr uint8_t COMPARATOR_AND = 6
 
constexpr uint8_t COMPARATOR_XOR = 7
 
constexpr uint8_t BITWISE_DISABLED = 0
 
constexpr uint8_t BITWISE_AND = 1
 
constexpr uint8_t BITWISE_OR = 2
 
constexpr uint8_t BITWISE_XOR = 3
 
constexpr uint8_t REUSE_RULES = 240
 

Detailed Description

Custom Programmable I/O. The config related to Programmable I/O is found on page13 (of type config13).

Function Documentation

◆ checkProgrammableIO() [1/2]

void checkProgrammableIO ( statuses current,
const config13 page13 
)
Here is the call graph for this function:

◆ checkProgrammableIO() [2/2]

TESTABLE_STATIC void checkProgrammableIO ( statuses current,
const config13 page13,
int16_t(*)(uint16_t index)  getData 
)

Check all (8) programmable I/O:s and carry out action on output pin as needed. Compare 2 (16 bit) vars in a way configured by cmpOperation (see also config13::operation). Use ProgrammableIOGetData() to get 2 vars to compare. Skip all programmable I/O:s where output pin is set 0 (meaning: not programmed).

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialiseProgrammableIO()

void initialiseProgrammableIO ( statuses current,
const config13 page13 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ProgrammableIOGetData() [1/2]

int16_t ProgrammableIOGetData ( uint16_t  index)
Here is the call graph for this function:

◆ ProgrammableIOGetData() [2/2]

TESTABLE_STATIC int16_t ProgrammableIOGetData ( uint16_t  index,
byte(*)(uint16_t byteNum pGetLogEntry 
)

Get single I/O data var (from current) for comparison.

Parameters
index- Field index/number (?)
Returns
16 bit (int) result
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ BITWISE_AND

constexpr uint8_t BITWISE_AND = 1
constexpr

◆ BITWISE_DISABLED

constexpr uint8_t BITWISE_DISABLED = 0
constexpr

◆ BITWISE_OR

constexpr uint8_t BITWISE_OR = 2
constexpr

◆ BITWISE_XOR

constexpr uint8_t BITWISE_XOR = 3
constexpr

◆ COMPARATOR_AND

constexpr uint8_t COMPARATOR_AND = 6
constexpr

◆ COMPARATOR_EQUAL

constexpr uint8_t COMPARATOR_EQUAL = 0
constexpr

◆ COMPARATOR_GREATER

constexpr uint8_t COMPARATOR_GREATER = 2
constexpr

◆ COMPARATOR_GREATER_EQUAL

constexpr uint8_t COMPARATOR_GREATER_EQUAL = 3
constexpr

◆ COMPARATOR_LESS

constexpr uint8_t COMPARATOR_LESS = 4
constexpr

◆ COMPARATOR_LESS_EQUAL

constexpr uint8_t COMPARATOR_LESS_EQUAL = 5
constexpr

◆ COMPARATOR_NOT_EQUAL

constexpr uint8_t COMPARATOR_NOT_EQUAL = 1
constexpr

◆ COMPARATOR_XOR

constexpr uint8_t COMPARATOR_XOR = 7
constexpr

◆ currentRuleStatus

TESTABLE_STATIC uint8_t currentRuleStatus = 0

◆ ioDelay

◆ ioOutDelay

◆ pinIsValid

TESTABLE_STATIC uint8_t pinIsValid = 0

◆ REUSE_RULES

constexpr uint8_t REUSE_RULES = 240
constexpr