Peritoneal Dialysis Capstone
Controlling catheter for peritoneal dialysis
Loading...
Searching...
No Matches
IHAL.h
Go to the documentation of this file.
1
4
5#ifndef IHAL_H
6#define IHAL_H
7
8#include <stddef.h>
9
10using AnalogValue = int;
11
16
17enum PinMode {
20};
21
29class IHAL {
30public:
31 virtual ~IHAL() = default;
32
33 // Analog I/O
34
44 virtual AnalogValue analogRead(int pin) = 0;
45
56 virtual void analogWrite(int pin, AnalogValue value) = 0;
57
65
73
74 // Digital I/O
75
82 virtual void configurePin(int pin, PinMode mode) = 0;
83
92 virtual DigitalValue digitalRead(int pin) = 0;
93
102 virtual void digitalWrite(int pin, DigitalValue value) = 0;
103
104 // Serial
105
111 virtual void beginSerial() = 0;
112
119 virtual size_t print(const char *s) = 0;
120
130 virtual size_t println(const char *s) = 0;
131
132 // Timing
133
139 virtual void delayMs(unsigned long durationMs) = 0;
140
145 virtual unsigned long getTimeMs() = 0;
146};
147
148#endif // IHAL_H
PinMode
Definition IHAL.h:17
@ OutputMode
Definition IHAL.h:19
@ InputMode
Definition IHAL.h:18
int AnalogValue
Definition IHAL.h:10
DigitalValue
Definition IHAL.h:12
@ DigitalHigh
Definition IHAL.h:14
@ DigitalLow
Definition IHAL.h:13
A hardware abstraction layer interface.
Definition IHAL.h:29
virtual AnalogValue analogRead(int pin)=0
Samples an analog input pin.
virtual void delayMs(unsigned long durationMs)=0
Suspends execution for a specified duration in milliseconds.
virtual unsigned long getTimeMs()=0
Returns the number of milliseconds elapsed since the start of execution, modulo ULONG_MAX-1.
virtual size_t println(const char *s)=0
Transmits an ASCII string with trailing newline over serial.
virtual DigitalValue digitalRead(int pin)=0
Samples a digital input pin.
virtual size_t print(const char *s)=0
Transmits an ASCII string over serial.
virtual void configurePin(int pin, PinMode mode)=0
Configures a pin for use as an input or output.
virtual void beginSerial()=0
Initializes the serial interface.
virtual AnalogValue getMaxAnalogReadQuant() const =0
Returns the maximum quantized value of an analog read.
virtual ~IHAL()=default
virtual void analogWrite(int pin, AnalogValue value)=0
Drives an analog output pin.
virtual void digitalWrite(int pin, DigitalValue value)=0
Drives a digital output pin.
virtual AnalogValue getMaxAnalogWriteQuant() const =0
Returns the maximum quantized value of an analog write.