-
Notifications
You must be signed in to change notification settings - Fork 24
App Structure and How does it work
RileyLinkAAPS is small application intended only for testing of commands. It has implemented RileyLink framework, and in branch dev_medtronic, there is almost complete Medtronic implementation. In branch dev_omnipod, there are just base files needed for application to be able run, but there is no Omnipod implementation at this time.
For new developers to be able to work on this, here are few notes.
The whole application uses Broadcast messages - a lot. It does messages both ways: towards BT/RL and towards UI. In AAPS we will keep messages toward BT/RileyLink, but remove the ones towards UI.
I will make example here with dev_omnipod branch, because that branch is empty (it contains whole Medtronic implementation too, but only so that someone can look at it as example). Communication with RileyLink is already implemented in MedtronicCommunicationManager, which you can look at as example.
In UI there is one class that is important. Its called ShowAAPS2Activity.java Here you can call commands and display their result on screen. When you start App there is button Show APS, which brings you to next page, where you can run the commands. Everything else you can leave as it is, as it is of no relevance for testing the commands.
RileyLink service implementation for each of target devices is done in file extended from RileyLinkService. So we have one for Medtronic (RileyLinkMedtronicService) and one for Omnipod (RileyLinkOmnipodService). Both classes are implemented and "probably" won't require any changes. This files start RileyLink Service, initialize it and prepare it for communication.
This is the class where all the magic happens. So this is where we will put the methods that will be called from UI. Everything that needs to be "visible" to UI needs to be here. As you can see in OmnipodCommunicationManager, there is one method that communicated with RL called protected PodMessage sendAndListen(RLMessage msg, int timeout_ms) all other methods actually talk through this method. For this to work PodMessage will need to be correctly implemented, together with OmnipodCommandType.
In Medtronic there is similar structure, so we have class MedtronicCommunicationManager, and method
Getting Started:
Medtronic
- Roadmap for Medtronic development
- Medtronic development tasks
- Test instructions - Medtronic
- Test Cases - Medtronic (AAPS)
- Test Cases - Medtronic (RileyLinkAAPS)
Medtronic for release
Omnipod