File: pinmon.h

package info (click to toggle)
simulavr 1.0.0%2Bgit20160221.e53413b-1
  • links: PTS
  • area: main
  • in suites: buster
  • size: 5,748 kB
  • sloc: cpp: 35,491; python: 6,991; ansic: 3,567; makefile: 1,072; sh: 653; asm: 414; tcl: 320
file content (32 lines) | stat: -rw-r--r-- 907 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef _pinmonh_
#define _pinmonh_
#include "avrdevice.h"
#include "pin.h"
#include "pinnotify.h"
#include "net.h"

// This class monitors a single pin and prints
// changes in the pin state to stdout.
class PinMonitor : public HasPinNotifyFunction {
	private:
		// This string printed as a prefix on stdout with each pin change.
		const char*	_pinDescStr;
		// String printed when the pin is HIGH.
		const char*	_pinHighStr;
		// String printed when the pin is LOW.
		const char*	_pinLowStr;
		// Previous state of pin since change callback doesn't *really*
		// mean "change"!
		bool		_prevState;
	public:
		PinMonitor(	AvrDevice&	avr,
					const char*	pinNameStr, // AVR pin name.  (e.g. "B1","C2", etc.)
					const char*	pinDescStr	= 0,
					const char*	pinHighStr	= 0,
					const char*	pinLowStr	= 0
					) throw();
	private:	// HasPinNotifyFunction
        void PinStateHasChanged(Pin*);
	};

#endif