Sat Chat

Dependencies:   4DGL-uLCD-SE USBDevice max32630fthr

Committer:
Phyu
Date:
Mon Oct 09 15:21:33 2017 +0000
Revision:
0:7f19ba74283d
-

Who changed what in which revision?

UserRevisionLine numberNew 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.