Hello Spark Core community –
I mentioned previously that I was working on a desktop Smart Config setup client.
It’s now ready - above you can see how it looks on Mac OS X, Windows 8 and Ubuntu 12.04. You can find all the details here:
I’d really appreciate any feedback on how you got along using either the ready to go binary distribution or compiling things up yourself and running from source.
Before people get too excited only the UI is open source, it still depends on a closed source library from TI.
However over the next week or so I will discuss how to create an open source replacement for the TI logic.
I have already written such a replacement but do not currently plan to release it.
Why? Because I’ve looked at the bytecode for TI’s implementation and I think it would be nicer to create a completely clean room implementation.
This is way simpler than it may initially sound - there is nothing very complex going on in the library.
You need less than 300 lines of very simple logic to handle the encoding and transmission of the SSID etc. and to handle listening out for the connection of a CC3000 enabled device to the network.
Then you need less than 100 lines per platform, i.e. Linux, Mac OS X and Windows, of platform specific logic to retrieve the SSID and other values that cannot easily be retrieved through pure Java calls.
In the post mentioned above I discuss this in more detail.
I’ve also put together blog posts on:
-
How a CC3000 enabled device announces its presence once it has successfully connected to a network:
http://depletionregion.blogspot.ch/2013/10/cc3000-advertises-presence-on-network.html -
How to tell what 802.11 protocol you are currently using to connect to your wifi access point and how to force the use of a particular protocol:
http://depletionregion.blogspot.ch/2013/09/determining-80211-protocol-b-g-or-n.html
The second of these two posts is needed as my desktop Smart Config setup client may not work if run from a machine that is connected to the AP using 802.11n (rather than b or g). This is due to issues with the underlying TI library that have yet to be determined (and which also affect my rewrite of the TI logic).
I apologize in advance for my TL;DR style - the DNS-SD/mDNS related post in particular is way too long for what it covers.
Usually I hate seeing comments elsewhere that point out spelling or grammar mistakes but please feel free to add niggles about anything in my posts as I hate it when I see things like “your” used instead of “you’re” in other people’s posts yet find myself making these kinds of slips all the time in my own posts!
Regards - and again any feedback is much welcome,
/George