1#ifndef HARDWARE_RESOURCE_H
2#define HARDWARE_RESOURCE_H
48 DEBUG_PRINTLN(
"[HardwareResource] Resetting hardware resource of type " + String((
int)
getType()));
61 ERROR_PRINTLN(
"[HardwareResource] Hardware resource of type " + String((
int)
getType()) +
" already used by maximum number of modules (" + String(
getMaxUsages()) +
").");
Logging and debug macro definitions for CANTramCore.
#define DEBUG_PRINTLN(x)
Print a debug message with newline.
Definition Debug.h:63
#define ERROR_PRINTLN(x)
Print an error-level message with newline.
Definition Debug.h:161
uint8_t getUsages()
Get the current number of usages of this resource.
Definition HardwareResource.h:74
bool requestUsage()
Request a usage slot for this resource.
Definition HardwareResource.h:59
virtual uint8_t getRemainingUsages()
Get remaining usage capacity for this resource.
Definition HardwareResource.h:88
bool isUsed()
Check if the resource is currently used.
Definition HardwareResource.h:81
virtual uint8_t getMaxUsages()
Get the maximum simultaneous usages allowed for this resource.
Definition HardwareResource.h:111
virtual bool reset()
Reset the hardware resource to a known default state.
Definition HardwareResource.h:47
uint8_t usages
Current usage counter.
Definition HardwareResource.h:98
HardwareResource()=default
Default constructor.
virtual Type getType()=0
Get the hardware resource type.
Type
Enumeration of hardware resource types.
Definition HardwareResource.h:26
@ CAN
CAN type.
Definition HardwareResource.h:31
@ SPI
SPI type.
Definition HardwareResource.h:28
@ PWM
PWM type.
Definition HardwareResource.h:30
@ UART
UART type.
Definition HardwareResource.h:27
@ I2C
I2C type.
Definition HardwareResource.h:29