2 #ifndef __portexpander_H__ 3 #define __portexpander_H__ 12 #define EXPANDER_PIN(expid, pin) (((expid) * 1000) + pin) 14 #define EXPANDER_PORT_PIN(pinnb) ((pinnb) % 1000) 16 #define EXPANDER_PORT_EXPID(pinnb) ((pinnb) / 1000) 27 inline void SetNextExpander(
PortExpander *inExpander) { this->pNextExpander = inExpander; }
28 inline PortExpander *GetNextExpander()
const {
return this->pNextExpander; }
40 inline virtual byte
begin() {
return 0; }
45 virtual void beginPin(
int inPin, PIN_TYPE inType) = 0;
55 virtual void analogWrite(
int inPin,
int inValue) = 0;
70 static void beginPin(
int inPin,
int inExpId, PIN_TYPE inType);
76 static void digitalWrite(
int inPin,
int inExpId,
int inValue);
82 static void analogWrite(
int inPin,
int inExpId,
int inValue);
85 #ifdef ACCESSORIES_DEBUG_MODE 86 static void CheckAllExpanderPins();
87 static void CheckExpanderId(
int inId);
virtual byte GetPinsNumber()
virtual void analogWrite(int inPin, int inValue) = 0
virtual void digitalWrite(int inPin, int inValue) = 0
virtual void beginPin(int inPin, PIN_TYPE inType) = 0