Sat Chat
Dependencies: 4DGL-uLCD-SE USBDevice max32630fthr
BLACKCODE.txt@0:7f19ba74283d, 2017-10-09 (annotated)
- Committer:
- Phyu
- Date:
- Mon Oct 09 15:21:33 2017 +0000
- Revision:
- 0:7f19ba74283d
-
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Phyu | 0:7f19ba74283d | 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. |
Phyu | 0:7f19ba74283d | 2 | An open EPIRB encourages development and feature enhancement which is a good thing but is potentially at odds with safety. What if you |
Phyu | 0:7f19ba74283d | 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? |
Phyu | 0:7f19ba74283d | 4 | |
Phyu | 0:7f19ba74283d | 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 |
Phyu | 0:7f19ba74283d | 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 |
Phyu | 0:7f19ba74283d | 7 | Satellite constellation or an SOS message. After a brief period the minimum functionality phase ends and the full functionality begins. |
Phyu | 0:7f19ba74283d | 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 |
Phyu | 0:7f19ba74283d | 9 | receiving short text messages, regularly logging position and any other functions that are yet to be thought of. |
Phyu | 0:7f19ba74283d | 10 | |
Phyu | 0:7f19ba74283d | 11 | Every piece of configuration and code necessary to achieve minimum functionality is known as BLACK CODE. To achieve reliability BLACK CODE |
Phyu | 0:7f19ba74283d | 12 | changes are not made trivially. They should be limited to bug fixes, usability and perhaps improving readibility and understanding of the code. |
Phyu | 0:7f19ba74283d | 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 |
Phyu | 0:7f19ba74283d | 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 |
Phyu | 0:7f19ba74283d | 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 |
Phyu | 0:7f19ba74283d | 16 | by the client. Any additional libraries, functions or variables must be labelled as BLACK if any BLACK CODE relies on it. |
Phyu | 0:7f19ba74283d | 17 | |
Phyu | 0:7f19ba74283d | 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 |
Phyu | 0:7f19ba74283d | 19 | isn't BLACK and show that an SOS can still be sent. |
Phyu | 0:7f19ba74283d | 20 | |
Phyu | 0:7f19ba74283d | 21 | After the minimum functionality period expires, functionality is deliverd by regular code (non BLACK). Here careful coding and rigourous testing |
Phyu | 0:7f19ba74283d | 22 | should also occur but development and functionality are encouraged. |
Phyu | 0:7f19ba74283d | 23 | |
Phyu | 0:7f19ba74283d | 24 | REUSE OF BLACK CODE |
Phyu | 0:7f19ba74283d | 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 |
Phyu | 0:7f19ba74283d | 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 |
Phyu | 0:7f19ba74283d | 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 |
Phyu | 0:7f19ba74283d | 28 | occur without jeapordising the stability of the BLACK CODE code base. Once the RED CODE is thouroughly debugged, tested and documented it can |
Phyu | 0:7f19ba74283d | 29 | be considered for inclusion as BLACK CODE. Thus the full functionality code becomes a testing environment for the minimum functionality code base. |