0

I am creating a new class that is composed of two other classes. I am using initializing list in the constructor. When I call the constructor of this class I get the following message:

InfraRedReceiverVs1838b.cpp:9: undefined reference to `IRrecv::IRrecv(int)' Line 9 is the line that initializes IRrecv class.

Header file of my class

#include "Arduino.h"
#include "InfraRedReceiverVs1838b.h"
#include "IRremote.h"
#include "IRremoteInt.h"


//Constructor
VS1838B::VS1838B(int pinoReceptorIR)
:_receptorIR (pinoReceptorIR), _bufferSinalRecebido()
{
_pinoInput = pinoReceptorIR;
}

Source file of my class

#ifndef INFRAREDRECEIVERVS1838B_H
#define INFRAREDRECEIVERVS1838B_H

#include "Arduino.h"
#include "IRremote.h"
#include "IRremoteInt.h"

class VS1838B{

public:
    //Constructor
    VS1838B(int pinoReceptorIR);

    //Atributes
    IRrecv _receptorIR;                   
    decode_results _bufferSinalRecebido;
    int _pinoInput;

};

#endif  /* INFRAREDRECEIVERVS1838B_H */

IRremote.h file that keeps the IRrecv class

// main class for receiving IR

class IRrecv
{
public:
  IRrecv(int recvpin);
  void blink13(int blinkflag);
  int decode(decode_results *results);
  void enableIRIn();
  void resume();
private:
  // These are called by decode
  int getRClevel(decode_results *results, int *offset, int *used, int t1);
  long decodeNEC(decode_results *results);
  long decodeSony(decode_results *results);
  long decodeSanyo(decode_results *results);
  long decodeMitsubishi(decode_results *results);
  long decodeRC5(decode_results *results);
  long decodeRC6(decode_results *results);
  long decodePanasonic(decode_results *results);
  long decodeLG(decode_results *results);
  long decodeJVC(decode_results *results);
  long decodeSAMSUNG(decode_results *results);
  long decodeHash(decode_results *results);
  int compare(unsigned int oldval, unsigned int newval);

} 
;

IRremote.cpp file that keeps the IRrecv class

    #include "IRremote.h"
    #include "IRremoteInt.h"

    // Provides ISR
    #include <avr/interrupt.h>

IRrecv::IRrecv(int recvpin)
{
  irparams.recvpin = recvpin;
  irparams.blinkflag = 0;
}

I am pretty sure that is not a include problem. Is there something wrong with my initialize list? Thanks in advance.

Ihidan
  • 558
  • 1
  • 7
  • 25

0 Answers0