I hope that someone gets my
Message in a bottle
On Tuesday, I finished to refactor the LedButton example code. This way, I had reliable foundations on which I could start developing new custom services. Before that, I tested the refactored version with gatttool, and it was working as well as the original one!
The next step was to develop the Message Service. I presented a first architecture to my group:
We implemented this architecture on Wednesday. I wrote the code for the Bluetooth service, while Adele was handling the persistent storage in RAM. In the end, we had a working prototype and we successfully managed to test it with gatttool.
However we discovered several drawbacks:
- when we want to write a value, its content is notified even if we don’t want to need it;
- the maximal length of a notification is 20 characters, so we may need an additional step to read the full message;
- above all, there are too many exchanges in both read and write operations!!
So yesterday, we argued a lot about the best way to solve this problem. We had many ideas:
- remove the notification and always perform an additional read request;
- give with the id characteristic a special bit indicating whether we want to be notified;
- remove some ACK if we really need to save battery;
- have two services (ReadMessage and WriteMessage) with different behaviours;
- have one service with one characteristic and parse the written command in order to infer the operation to perform.
We finally agreed on the last solution. Lauriane will implement it this week end (so that she can put her hands in the code). Personally, I will work on the Android app which is not yet fully functional. I have already read some slides about Android development and browsed the Android developers website. I still have to learn Scala, and then read the code Lauriane has already written.
May the force be with you!
P.S. : yes our logo is official now!!