Cannot use HardwareSerial pointers or references in the Lib for Arduino AVR

arduinoclibrary

I wrote a wrapper class for a serial lcd screen for 4dulcd – and i want to be able to pass which serial i am using to communicate with it

I have these in my code
myClass.h

#include <HardwareSerial.h>

public:
uint8_t Init(long BaudRate, HardwareSerial *serial);

private:
HardwareSerial *_HardSerial;

in myClass.cpp

uint8_t myClass::Init(long BaudRate, HardwareSerial *serial){
_HardSerial(serial);
...
}

In my sketch

#include <myClass.h>  
myClass lcd;  


void setup()
{
  Serial1.begin(9600);  // <- Error here?!
  //lcd.Init(115000,&Serial1);
...

So the error is

sketch_sep17a.cpp: In function 'void setup()': sketch_sep17a:16:
error: 'Serial1' was not declared in this scope

If i remove the myClass.h header than the Serial1 works… i Include it and it throws this error that makes no sense to-

I tried to include the hardwareserial in my sketch and make an instance of it but it requires all sorts of construction properties that i have no idea what they mean. And i would not even want to release my lib to do this as it is inconvenient for the normal end user.

I tried both references and pointers- same error.

Can any body help?

Best Answer

I might be missing something here, but where is Serial1 instantiated?

If there is no Serial1 object created then unless the begin function is static it won't work.