Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFM69Base class #72

Open
wizard97 opened this issue Apr 14, 2017 · 1 comment
Open

RFM69Base class #72

wizard97 opened this issue Apr 14, 2017 · 1 comment

Comments

@wizard97
Copy link

wizard97 commented Apr 14, 2017

Hi, great library!

One problem though is that the base class (RFM69) already has a bunch of specific functionality built in. For example, the packet layout is fixed, and you have no direct control over address bytes, and there is no way to send raw data, the library repacks it into a specific way.

In many use cases, people may not necessarily want to use the RFM69 in the way it is currently implemented in the library. I think it would be awesome if there could be a simple RFM69Base class that is just a thin driver on top the radio, and provides a simple api for configuring and using the radio, such as sync address, payload length, sending raw data, handling radio interrupts, etc...

Then your RFM69 class can inherit from this base class, and implement all the implementation specific details needed for the way it handles sending packets, etc...

I needed just a simple radio driver for a project where I am reverse engineering a commerical product that already uses this radio. So I need methods to be able to configure every aspect of the radio. I ended up stripped all the use case specific details from the RFM69 class into a RFM69Base class. It can be seen here:
https://github.com/wizard97/BetterRFM69

I would be happy to put in the additional work of having the RFM69 class inherit from the RFM69Base class, as long as you can confirm this is a change you would accept a pull request from.

@EternityForest
Copy link

I would absolutely love to see this, I had to make a complete fork to get my protocol working, the existing protocol is a bit limited by legacy applications.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants