//Client file LDR_Signals_RAG_Class.ino (Red Amber Green)#include "LDR_Signals_RAG_Class.h"
LDR_Signals_RAG_Class signal0(A0,2,3,4);LDR_Signals_RAG_Class signal1(A1,5,6,7);LDR_Signals_RAG_Class signal2(A2,8,9,10);LDR_Signals_RAG_Class signal3(A3,11,12,13);
#define POLARITY 1void setup() { signal0.begin(POLARITY); signal1.begin(POLARITY); signal2.begin(POLARITY); signal3.begin(POLARITY);}void loop() { int s0 = signal0.train_over_sensor( ); int s1 = signal1.train_over_sensor( ); int s2 = signal2.train_over_sensor( ); int s3 = signal3.train_over_sensor( ); if (s0) signal0.drive_signals(1,0,0); else signal0.drive_signals(0,0,1); if (s1) signal1.drive_signals(1,0,0); else signal1.drive_signals(0,0,1); if (s2) signal2.drive_signals(1,0,0); else signal2.drive_signals(0,0,1); if (s3) signal3.drive_signals(1,0,0); else signal3.drive_signals(0,0,1); }
//Implementation file LDR_Signals_RAG_Class.cpp (Red Amber Green)#include "LDR_Signals_RAG_Class.h"
LDR_Signals_RAG_Class::LDR_Signals_RAG_Class(int sen1, int red, int amber, int green) : LDR_Sensor_Class(sen1){ _sen1= sen1; _red=red; _amber=amber; _green= green;};
void LDR_Signals_RAG_Class::begin(int pol ){ LDR_Sensor_Class::begin( ); pinMode(_red,OUTPUT); digitalWrite(_red,HIGH); //turn on for testing pinMode(_amber,OUTPUT); digitalWrite(_amber,HIGH); //turn on for testing pinMode(_green,OUTPUT); digitalWrite(_green,HIGH); //turn on for testing _pol = pol; };
void LDR_Signals_RAG_Class::drive_signals(int red,int amber,int green){ if (!_pol) { red ^= 1; amber ^= 1; green ^=1;} digitalWrite(_red,red); digitalWrite(_amber,amber); digitalWrite(_green,green); }
//Header file LDR_Signals_RAG_Class.h (Red Amber Green)#include <LDR_Sensor_Class.h>#ifndef LDR_SIGNALS_RAG_CLASS_H#define LDR_SIGNALS_RAG_CLASS_H#include "Arduino.h"class LDR_Signals_RAG _Class: public LDR_Sensor_Class { public : LDR_Signals_RAG_Class(int sen1, int red, int amber, int green); void begin(int pol); //polarity of signals void drive_signals(int red,int amber,int green); private : int _sen1; int _red; int _amber; int _green; int _pol;};#endif