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

Add callback to allow Static IP per SSID in WiFiMulti #9232

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Sojourneer
Copy link

Callback before WiFi.begin allows user to configure selected SSID.

Callback before WiFi.begin allows user to configure selected SSID
@mcspr
Copy link
Collaborator

mcspr commented Feb 27, 2025

Wouldn't extending 'add' method arguments be more a appropriate solution? Internally, only ssid & pass are stored. No reason not to keep 'IPAddress'es for static config as well

@Sojourneer
Copy link
Author

Wouldn't extending 'add' method arguments be more a appropriate solution? Internally, only ssid & pass are stored. No reason not to keep 'IPAddress'es for static config as well

That is the more obvious solution. But it has a higher impact on existing API and is less flexible. This solution adds two lines to the code (and two lines of declaration), and zero impact on existing API.

@mcspr
Copy link
Collaborator

mcspr commented Feb 28, 2025

Meaning, there are other use-cases besides config() call?

fwiw, default arguments passed at the end of the method can be omitted and .add() call stays the same. IPAddress has default constructor, ::isSet() would notify whether IPAddress was set by the user or not.

@Sojourneer
Copy link
Author

Sojourneer commented Mar 1, 2025

Meaning, there are other use-cases besides config() call?

In my use-case, I am setting the config parameters based on the MAC address (because of various router issues). Yes, that could be done upfront rather than when the SSID is decided.
But it seems cleaner, as well as more efficient, to have the config calculated when needed rather than preemptively. I have a library that takes a JSON config (IP, as well as optionally MQTT etc.) and applies it in the callback to call config per the found SSID. Again, decoupling that from the code for the physical connection is beneficial.

@mcspr
Copy link
Collaborator

mcspr commented Mar 1, 2025

Ok, agreed

Style suggestion then - use onSsidSelected(...) as one word without underscores. This is also the style used for other event-related things in the WiFi class.
Can you also update the example .ino (sketch) and documentation, or do you want me to do it?

@Sojourneer
Copy link
Author

Ok, I'll do it, and change the name as you recommend. Do I need to redo the pull (I'm a noobie at this process)?

@mcspr
Copy link
Collaborator

mcspr commented Mar 2, 2025

Just push more commits to Sojourneer:master

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

Successfully merging this pull request may close these issues.

2 participants