* gap: fix comment
* gap: expose ServiceData() in AdvertisementFields
* macos: include ServiceData in AdvertisementFields
* gap/linux: include ServiceData in AdvertisementFields
* gap: add unimplemented ServiceData() to raw advertisement
* added ServiceData advertising element also to the sending pieces
* more explicitly use the ad element type ids
* added a test case for ServiceData
* linux: added ServiceData advertising element
* sd: fix: handle no servicedata present
* linux: bluez uses string uuids for service data
* linux: fix: correct datatype for advertise with ServiceData
* uuid: add 32-Bit functions
* ServiceData now also uses a slice instead of a map as in #244
* Revert unnessesary changes
* formatting
* remove extra check
---------
Co-authored-by: William Johansson <radar@radhuset.org>
This is a breaking change, but I believe it is necessary for
correctness. Because maps have an undefined iteration order, the actual
advertised packet could change each time which I think is a bad thing.
In addition to that, using a slice should be much more lightweight than
using a map.
I've also added some tests (that should have been there in the first
place) and added some manufacturer data to the advertisement example.
Furthermore, I've optimized the code that constructs manufacturer data
for raw advertisement payloads, it should now be entirely free of heap
allocations.
Remove the Addresser type. It isn't really necessary (the Address type
can change between OSes) and makes it difficult to fix a heap allocation
in interrupts (on the Nordic SoftDevices).
This is a backwards incompatible change, but only programs that use
SetConnectHandler should notice this.