Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
user:kluong:refactoring_the_firmware [2020/10/06 17:16]
kluong
user:kluong:refactoring_the_firmware [2021/09/19 21:59] (current)
Line 24: Line 24:
  
 Definitions Definitions
-<​code>​+<​code ​cpp>
 class AbstractBoard { class AbstractBoard {
 public: public:
    ​virtual void sample(); ​    ​virtual void sample(); ​
    ​virtual void transmit(); ​    ​virtual void transmit(); ​
-}+};
  
 class AppleBoard : public AbstractBoard{ class AppleBoard : public AbstractBoard{
Line 35: Line 35:
    void sample(); ​    void sample(); ​
    void transmit(); ​    void transmit(); ​
-}+};
 </​code>​ </​code>​
  
 The main: The main:
  
-<​code>​+<​code ​cpp>
  
 loop(){ loop(){
Line 55: Line 55:
  
 ====== Implementation notes ====== ====== Implementation notes ======
 +
 +Normally, in professional software engineering environments - work is planned so that it is non-disruptive to the current production setup. We'll try to do the same here to not leave the current code in a half-working state. This is especially important if work takes longer than expected, and there needs to be a transition for the next semester/​year.
 +
 +Generally, here's how we can approach this:
 +
 +  - Review the current code and create the abstract base class
 +  - Implement a class for one board (apple?) that inherits from the abstract base class (essentially implementing it)
 +  - Test it
 +  - Finish migrating the other boards
 +
 +Two notes:
 +
 +  * Tasks should be committed and merged as soon as they'​re complete
 +  * At no period of time should the original firmware be unavailable (in case some teams need to deploy boxes)
 +
  
  
  • user/kluong/refactoring_the_firmware.1602004606.txt.gz
  • Last modified: 2021/09/19 21:59
  • (external edit)