8 years, 5 months ago.

referencing a library from another library

I have 2 library's, 1 is the RA8875 and the other is one im creating. I have alot of code which I dont want in the main program (hense putting it into a library) But I need to access the RA8875 library from my library and the main program. This causes a problem as I dont want to initalise it from 2 areas as it could cause problems.

How do I send the reference of the RA8875 library which has been declared in the main program to the library im making so that I can call functions from both places?

I have seen this: https://developer.mbed.org/forum/mbed/topic/2854/

but I cant see how it applies to another library. I understand how it works in the same file but im trying to do it across files. I have tried it and it keeps asking me to put a declaration in like its a second lcd screen.

1 Answer

8 years, 5 months ago.

It works the same for libraries (the example there also shown the Serial library being passed around).

So probably in your constructor you add the requirement for a pointer to an RA8875 instantiation being included. And this you can use to call all your functions. One of your private/protected variable is a pointer to an RA8875, and in the actual constructor code you update this to point to the value passed in the constructor.

So something like (pseudo code):

class YourClass:
public:
  YourClass(RA8875* pointer) {
    _pointer = pointer;
  }
  
 void otherFunction(void) {
    _pointer->RA8875function();
  }


private:
RA8875* _pointer;
}

Accepted Answer

Thanks a lot for your help. I was on the right lines but I didnt use the pointer in the function, I left it as "RA8875 _pointer". I still have a bit to learn on pointers but I have it working.

posted by Nick Oliver 04 Nov 2015