CANTram Framework 1.0.1
Dieses Framework ermöglicht die Nutzung der CANTram Hardware, einer Mikrocontroller basierten mdoularen Steuerung.
Loading...
Searching...
No Matches
HardwareResource.h
Go to the documentation of this file.
1#ifndef HARDWARE_RESOURCE_H
2#define HARDWARE_RESOURCE_H
3
4#include "Debug.h"
5
12
20 public:
21
33
39 virtual Type getType()=0;
40
47 virtual bool reset(){
48 DEBUG_PRINTLN("[HardwareResource] Resetting hardware resource of type " + String((int)getType()));
49 usages = 0;
50 return true;
51 }
52
60 if(usages >= getMaxUsages() && getMaxUsages() != 0){
61 ERROR_PRINTLN("[HardwareResource] Hardware resource of type " + String((int)getType()) + " already used by maximum number of modules (" + String(getMaxUsages()) + ").");
62 return false;
63 }
64 usages++;
65 DEBUG_PRINTLN("[HardwareResource] Hardware resource of type " + String((int)getType()) + " usage requested. Current usages: " + String(usages) + "/" + String(getMaxUsages()));
66 return true;
67 }
68
74 uint8_t getUsages(){return usages;}
75
81 bool isUsed(){ return usages > 0; }
82
88 virtual uint8_t getRemainingUsages(){ return getMaxUsages() - usages; }
89
90 private:
91
92
93 protected:
98 uint8_t usages=0;
99
104 HardwareResource() = default;
105
111 virtual uint8_t getMaxUsages(){ return 1; }
112
113};
114
115#endif
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