Implanter une librairie dans une autre librairie

Bonjour à tous,

J'essaye de créer une classe dans laquelle je créer une instance d'une autre classe ! Cependant j'ai des erreurs de compilation :s En gros j'ai une classe Relay qui permet de commander 1 relai. Puis j'ai une classe Shutter qui permet de de contrôler un volet qui est commandé par 2 relais. Voici mes classes :

Relay.h :

#ifndef RELAY_h
#define RELAY_h

#if defined(__AVR__)
	#include "Arduino.h"
#elif defined(__PIC32MX__)
	#include "WProgram.h"
#elif defined(__arm__)
	#include "Arduino.h"
#endif


class Relay // Objet Relay
{
    private:
        int _pin;               		//Acceuil la définition du Pin sur la carte arduino
        boolean _isOFF;           		//Définie l'état actuel du relais
 
    public:
        Relay(int pin);              	//Le constructeur attend un entier lui définisant le Pin sur la carte arduino auquel est associé le relais
		void begin() const;				//Initialisation des  pines 
        void off();              		//Met en position NC
        void on();               		//Met en position NO
        bool isStateOFF() const;    	//Renvoie TRUE si l'etat du relais indique NC
        void switchState();      		//Inverse l'état actuel du relais
};
 
#endif

Relay.cpp :

#include "Relay.h"
 
 
Relay::Relay(int pin)
{
    _pin = pin;
    _isOFF = true;
}

void Relay::begin() const
{
    pinMode(_pin, OUTPUT);
}

bool Relay::isStateOFF() const
{
    return (_isOFF);
}

void Relay::on()
{
    digitalWrite(_pin,HIGH);
    _isOFF = false;
}

void Relay::off()
{
    digitalWrite(_pin,LOW);
    _isOFF = true;
}

void Relay::switchState()
{
    if(_isOFF)
    {
        on();
    }
    else
    {
        off();
    }
}

Shutter.h :

#ifndef SHUTTER_h
#define SHUTTER_h

#if defined(__AVR__)
	#include "Arduino.h"
#elif defined(__PIC32MX__)
	#include "WProgram.h"
#elif defined(__arm__)
	#include "Arduino.h"
#endif

#include "..\Relay\Relay.h"

class Shutter // Object Shutter 
{

	public :
		//Shutter();
		Shutter(int pinRelay1, int pinRelay2, int pinButtonUp, int pinButtonDown);
		//Shutter(Shutter const& ShutterACopier);
		void begin() const;
		void open();												//open the shutter
		void close();												//close the shutter
		bool isPushedUp() const;									//Is the button of the shutter pushed ? 1 if yes 0 if no
		bool isPushedDown() const;									// Up and Down
		bool isActivated() const;									//Is the button of the shutter activated ? 1 if yes 0 if no
		void setActivated(boolean a);								//Change the value of _activated
		void stopAction();											//Some time after using the open or close method, you should use this method.
		
    private :
		boolean _activated;
		int _pinButtonUp;
		int _pinButtonDown;
		Relay _relay1;
		Relay _relay2;
 
		
};
 
#endif

Shutter.cpp :

#include "Shutter.h"
	
	Shutter::Shutter(int pinRelay1, int pinRelay2, int pinButtonUp, int pinButtonDown) : _pinButtonUp(pinButtonUp), _pinButtonDown(pinButtonDown), _activated(1)
	{
		
		_relay1 = Relay(pinRelay1);
		_relay2 = Relay(pinRelay2);
	}
	
	void Shutter::begin() const
	{
		_relay1.begin();
		_relay2.begin();
	}

	void Shutter::open()
	{
		_relay2.off();
		_relay1.on();
		_relay2.on();
	}

	void Shutter::close()
	{
		_relay2.off();
		_relay1.off();
		_relay2.on();
	}
	
	bool Shutter::isPushedUp() const
	{
		return digitalRead(_pinButtonUp);
	}
	
	bool Shutter::isPushedDown() const
	{
		return digitalRead(_pinButtonDown);
	}
	
	bool Shutter::isActivated() const
	{
		return _activated;
	}

	void Shutter::setActivated(boolean a)
	{
		if(a)
		{
			_activated = 1;
		}
		else
		{
			_activated = 0;
		}
	}	
	
	void Shutter::stopAction()
	{
		_relay2.off();
	}

Enfin, voici le message d'erreur du compilateur :

C:\Program Files (x86)\Arduino\libraries\Shutter\Shutter.cpp: In constructor 'Shutter::Shutter(int, int, int, int)':
C:\Program Files (x86)\Arduino\libraries\Shutter\Shutter.cpp:16:157: error: no matching function for call to 'Relay::Relay()'
  Shutter::Shutter(int pinRelay1, int pinRelay2, int pinButtonUp, int pinButtonDown) : _pinButtonUp(pinButtonUp), _pinButtonDown(pinButtonDown), _activated(1)
                                                                                                                                                             ^
C:\Program Files (x86)\Arduino\libraries\Shutter\Shutter.cpp:16:157: note: candidates are:
In file included from C:\Program Files (x86)\Arduino\libraries\Shutter\Shutter.h:12:0,
                 from C:\Program Files (x86)\Arduino\libraries\Shutter\Shutter.cpp:9:
C:\Program Files (x86)\Arduino\libraries\Shutter\..\Relay\Relay.h:20:9: note: Relay::Relay(int)
         Relay(int pin);               //Le constructeur attend un entier lui définisant le Pin sur la carte arduino auquel est associé le relais
         ^
C:\Program Files (x86)\Arduino\libraries\Shutter\..\Relay\Relay.h:20:9: note:   candidate expects 1 argument, 0 provided
C:\Program Files (x86)\Arduino\libraries\Shutter\..\Relay\Relay.h:13:7: note: Relay::Relay(const Relay&)
 class Relay // Objet Relay
       ^
C:\Program Files (x86)\Arduino\libraries\Shutter\..\Relay\Relay.h:13:7: note:   candidate expects 1 argument, 0 provided
C:\Program Files (x86)\Arduino\libraries\Shutter\Shutter.cpp:16:157: error: no matching function for call to 'Relay::Relay()'
  Shutter::Shutter(int pinRelay1, int pinRelay2, int pinButtonUp, int pinButtonDown) : _pinButtonUp(pinButtonUp), _pinButtonDown(pinButtonDown), _activated(1)
                                                                                                                                                             ^
C:\Program Files (x86)\Arduino\libraries\Shutter\Shutter.cpp:16:157: note: candidates are:
In file included from C:\Program Files (x86)\Arduino\libraries\Shutter\Shutter.h:12:0,
                 from C:\Program Files (x86)\Arduino\libraries\Shutter\Shutter.cpp:9:
C:\Program Files (x86)\Arduino\libraries\Shutter\..\Relay\Relay.h:20:9: note: Relay::Relay(int)
         Relay(int pin);               //Le constructeur attend un entier lui définisant le Pin sur la carte arduino auquel est associé le relais
         ^
C:\Program Files (x86)\Arduino\libraries\Shutter\..\Relay\Relay.h:20:9: note:   candidate expects 1 argument, 0 provided
C:\Program Files (x86)\Arduino\libraries\Shutter\..\Relay\Relay.h:13:7: note: Relay::Relay(const Relay&)
 class Relay // Objet Relay
       ^
C:\Program Files (x86)\Arduino\libraries\Shutter\..\Relay\Relay.h:13:7: note:   candidate expects 1 argument, 0 provided
Erreur lors de la compilation.

Je pense donc que l'erreur vient de la façon dont j'implante les 2 relais dans la bibliothèque Shutter... Si vous avez des idées je suis preneur !

Merci d'avance pour votre aide !

fjcf2