summaryrefslogtreecommitdiff
path: root/src/DisplayApp/Screens/FirmwareUpdate.h
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2020-06-01 07:22:54 (GMT)
committerJF <jf@codingfield.com>2020-06-01 07:22:54 (GMT)
commitdca559aad5a5020ae0d5c1bec08bbf5030e0d718 (patch)
treedf449fb41a14bb321e69f19f646109c2fb79d093 /src/DisplayApp/Screens/FirmwareUpdate.h
parent4717cf0a1d6c210a362e8bdf63265c4910e2c8cc (diff)
Improve DFU procedure :
- correctly write all bytes to flash - check CRC - Fix bug in notification : they cannot be sent from the control point handler (because it seems you cannot send a notification and a write acknowledge at the same time) using a timer (quick'n'dirty implementation to be improved) - Improve dfu screen - Reset if dfu image is correctly copied into flash and crc is ok.
Diffstat (limited to 'src/DisplayApp/Screens/FirmwareUpdate.h')
-rw-r--r--src/DisplayApp/Screens/FirmwareUpdate.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/DisplayApp/Screens/FirmwareUpdate.h b/src/DisplayApp/Screens/FirmwareUpdate.h
index a4cbec6..87e9395 100644
--- a/src/DisplayApp/Screens/FirmwareUpdate.h
+++ b/src/DisplayApp/Screens/FirmwareUpdate.h
@@ -26,13 +26,22 @@ namespace Pinetime {
bool OnButtonPushed() override;
private:
+ enum class States { Idle, Running, Validated, Error };
Pinetime::Controllers::Ble& bleController;
- lv_obj_t * bar1;
- lv_obj_t * percentLabel;
- lv_obj_t * titleLabel;
- char percentStr[10];
+ lv_obj_t* bar1;
+ lv_obj_t* percentLabel;
+ lv_obj_t* titleLabel;
+ lv_obj_t* labelBtn;
+ lv_obj_t* button;
+ mutable char percentStr[10];
bool running = true;
+ States state;
+ bool DisplayProgression() const;
+
+ void UpdateValidated();
+
+ void UpdateError();
};
}
}