Test software for SatChat prototype hardware Platform - MAX32630FTHR
Dependencies: USBDevice max32630fthr
BLACKCODE.txt@16:c5634210628d, 2017-09-21 (annotated)
- Committer:
- koziniec
- Date:
- Thu Sep 21 01:24:44 2017 +0000
- Revision:
- 16:c5634210628d
- Parent:
- 15:7d75ecaeabdb
Test software for SatChat prototype hardware
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
koziniec | 15:7d75ecaeabdb | 1 | An EPIRB is a crucial piece of safety equipment. Someone's life could be placed at risk if it fails or behaves in an unpredictable manner. |
koziniec | 15:7d75ecaeabdb | 2 | An open EPIRB encourages development and feature enhancement which is a good thing but is potentially at odds with safety. What if you |
koziniec | 15:7d75ecaeabdb | 3 | change the user interface and the user can't figure out how to send an SOS? What if you introduce a bug and unit crashes? |
koziniec | 15:7d75ecaeabdb | 4 | |
koziniec | 15:7d75ecaeabdb | 5 | To address this issue, open EPIRB uses a two phase start up. When you initially power on the device it enters a minimum functionality mode |
koziniec | 15:7d75ecaeabdb | 6 | during which one of two messages can be sent. A routine positional update which logs the operator's current GPS location via the Iridium |
koziniec | 15:7d75ecaeabdb | 7 | Satellite constellation or an SOS message. After a brief period the minimum functionality phase ends and the full functionality begins. |
koziniec | 15:7d75ecaeabdb | 8 | In the full functionality phase it is possible to do everything that can be done in the minimum functionality mode as well as sending and |
koziniec | 15:7d75ecaeabdb | 9 | receiving short text messages, regularly logging position and any other functions that are yet to be thought of. |
koziniec | 15:7d75ecaeabdb | 10 | |
koziniec | 15:7d75ecaeabdb | 11 | Every piece of configuration and code necessary to achieve minimum functionality is known as BLACK CODE. To achieve reliability BLACK CODE |
koziniec | 15:7d75ecaeabdb | 12 | changes are not made trivially. They should be limited to bug fixes, usability and perhaps improving readibility and understanding of the code. |
koziniec | 15:7d75ecaeabdb | 13 | Before making a change to BLACK CODE, ask yourself how this enhances the reliability of the unit. This is an area of minimum functionality and |
koziniec | 15:7d75ecaeabdb | 14 | not a place to add new features. Adding a new feature increases the chance of failure and consequently increases the risk that a needed SOS |
koziniec | 15:7d75ecaeabdb | 15 | won't be sent. When it is necessary to make BLACK CODE changes it is essential the changes are thoroughly thought through, tested and approved |
koziniec | 15:7d75ecaeabdb | 16 | by the client. Any additional libraries, functions or variables must be labelled as BLACK if any BLACK CODE relies on it. |
koziniec | 15:7d75ecaeabdb | 17 | |
koziniec | 15:7d75ecaeabdb | 18 | Only BLACK CODE should run until the end of the minimum functionality period. In fact, a good test of the code base is to delete everything that |
koziniec | 15:7d75ecaeabdb | 19 | isn't BLACK and show that an SOS can still be sent. |
koziniec | 15:7d75ecaeabdb | 20 | |
koziniec | 15:7d75ecaeabdb | 21 | After the minimum functionality period expires, functionality is deliverd by regular code (non BLACK). Here careful coding and rigourous testing |
koziniec | 15:7d75ecaeabdb | 22 | should also occur but development and functionality are encouraged. |
koziniec | 15:7d75ecaeabdb | 23 | |
koziniec | 15:7d75ecaeabdb | 24 | REUSE OF BLACK CODE |
koziniec | 15:7d75ecaeabdb | 25 | The full functionality program space is encouraged to reuse BLACK code as this serves to further exercise and test these crucial components. If there is a |
koziniec | 15:7d75ecaeabdb | 26 | proposal for substantial changes to be made to BLACK CODE functions, it is recommended that the BLACK CODE functions be replicated in their new form |
koziniec | 15:7d75ecaeabdb | 27 | and labelled as RED CODE. The full functionality code should then call on the experimental RED CODE to allow debugging and field evaluation to |
koziniec | 15:7d75ecaeabdb | 28 | occur without jeapordising the stability of the BLACK CODE code base. Once the RED CODE is thouroughly debugged, tested and documented it can |
koziniec | 15:7d75ecaeabdb | 29 | be considered for inclusion as BLACK CODE. Thus the full functionality code becomes a testing environment for the minimum functionality code base. |