simulavr  1.1.0
pinmon.cpp
Go to the documentation of this file.
1 #include <iostream>
2 #include "pinmon.h"
3 
4 using namespace std;
5 
7  const char* pinNameStr, // AVR pin name. (e.g. "B1","C2", etc.)
8  const char* pinDescStr,
9  const char* pinHighStr,
10  const char* pinLowStr
11  ) throw():
12  _prevState(true)
13  {
14  Pin* pin = avr.GetPin(pinNameStr);
15  pin->RegisterCallback(this);
16  _pinDescStr = pinDescStr?pinDescStr:pinNameStr;
17  _pinHighStr = pinHighStr?pinHighStr:"HIGH";
18  _pinLowStr = pinLowStr?pinLowStr:"LOW";
19  }
20 
22  const char* stateStr;
23  if((bool)*pin == _prevState){
24  return;
25  }
26  if((bool)*pin){
27  stateStr = _pinHighStr;
28  _prevState = true;
29  }
30  else {
31  stateStr = _pinLowStr;
32  _prevState = false;
33  }
34 
35  cout << _pinDescStr << ": " << stateStr << endl;
36  }
37 
Basic AVR device, contains the core functionality.
Definition: avrdevice.h:66
void PinStateHasChanged(Pin *)
Definition: pinmon.cpp:21
Pin class, handles input and output to external parts.
Definition: pin.h:98
virtual Pin GetPin(void)
"cast method" to get back a Pin instance
Definition: pin.h:147
STL namespace.
PinMonitor(AvrDevice &avr, const char *pinNameStr, const char *pinDescStr=0, const char *pinHighStr=0, const char *pinLowStr=0)
Definition: pinmon.cpp:6
void RegisterCallback(HasPinNotifyFunction *)
Definition: pin.cpp:60