Commit Graph

87 Commits

Author SHA1 Message Date
Lukasz Mastalerz
d9a1194e6f [BH-1688] Create a standard for logs
* Adding document describing how to use logger
* Adjusting logs to follow a new guide
* Change order in log header:
  line number is now before function name
2023-10-23 15:17:44 +02:00
Lukasz Mastalerz
684ecb7a78 [BH-1767] Fix the pre-revert issue inside ServiceGUI
Introducing states to ServiceGUI instead of using bool variables as
flagss.
2023-09-15 11:13:26 +02:00
Lukasz Mastalerz
88c7f8df14 [MOS-1016] Long files list loading time
Revert changes in Service GUI.
2023-08-18 10:13:54 +02:00
Lukasz Mastalerz
462a7393d9 [BH-1412] Fix system shutdown procedure
Changed startup services order.
Prevent handling multiple "close ready" messages from one service while closing
system.
Introduced a new state in ServiceGUI.
Fixed a problem with turning on Harmony with a connected USB cable.
2023-08-08 09:35:54 +02:00
Lukasz Mastalerz
f7ad63c951 [BH-1412] Fix services dependencies
Changes in dependecy managment
Replacing state flags with states in ServiceGUI
Unifying some parts of code
2023-08-01 17:22:48 +02:00
Lukasz Mastalerz
21171bb474 [BH-1714] Eink refactor and error handling
Cleanup and refactor for eink code.
Changed turning on/off procedure.
Add error handling.
2023-07-14 10:23:42 +02:00
Lukasz Mastalerz
b792bd7735 [BH-1625] The shutdown window doesn't appear while closing the system
Fixed the problem with the not appearing system closing window in some cases
2023-06-14 12:07:55 +02:00
Lefucjusz
afd7e7bc2c [MOS-783] Working Pure simulator after partition changes
Fixed iosyscalls so that Pure simulator
works after directory structure changes.
2023-01-19 16:41:56 +01:00
Bartosz
fab9068a52 [MOS-786] Added A/B booting support in OS
Added basic support for A/B booting
2023-01-19 16:41:56 +01:00
Lefucjusz
178fba165e [MOS-783] First part of new dir structure implementation
Works:
    - generating .img for Pure;
    - Pure boots after flashing new image and
    seems to be working fine;

    Not yet:
    - generating update package;
    - generating image for Harmony;
    - simulator;
    - path-related unit tests fail
    due to paths being hardcoded
    in test scenarios.
2023-01-19 16:41:56 +01:00
Adam Wulkiewicz
49bbaf51a0 [MOS-550] Improve refresh of the display
1. Implement partial refresh.
2. Implement refresh canceling mechanism.
3. Refactor some parts of the gui and display code.

ad 1.
- Detect parts of the screen changed since last update and merge them
  into bigger regions. These regions defines parts of the context sent
  to the display.
- Refresh the region covering all of the parts since this is the most
  time consuming part and the size of the refreshed region doesn't
  change the time much.
- Refresh the whole screen if deep refresh is requested and previously
  fast refresh was used. This is needed to prevent unwanted artifacts
  in some cases.

ad 2.
- Separate display update and refresh logic.
- Divide image display message handling into two handlers, one updating
  and other one refreshing the screen.
- Add cancel refresh message and use it to cancel refresh during update.
- Store sum of refresh regions gathered during updates to refresh them
  all at once at the end.
2022-10-11 20:00:33 +02:00
Mateusz Piesta
97e9d7b79f [BH-1449] Fix gui/eink dependencies
* Dependencies between service-gui and service-eink
have been correctly defined.
* System close routine was replaced with the sequential one
which should solve many bell issues.
* It also fixes BH-1406 and BH-1442.
* Fixed some weird CMake issues in module-audio and
several other modules.
* Fixed service-gui closing routine
* Removed unneeded messages/states from service-gui/eink.
* Enhanced app-mgr closing routine. Fixed closing action handling.
2022-04-26 13:47:12 +02:00
Paweł Joński
3ad2e0f7da [BH-1442] Eliminate race on shutdown screen
There is another race still possible, but far less likely
2022-04-14 12:48:03 +02:00
Marcin Smoczyński
bd90e57516 [BH-907] Split utils module into components
Split module-utils into smaller components for better dependency
management. Fix many dependencies throughout the project.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2021-09-23 15:14:40 +02:00
Mateusz Grzegorzek
2bdc4fbee6 [BH-740] Split SystemManager - part I
Rename SystemManager to SystemManagerCommon
2021-08-19 16:34:50 +02:00
Lukasz Skrzypczak
7fee0d9cfb [BH-378] Utils move log to library
Moved log to separate library
2021-06-08 12:24:29 +02:00
Paweł Joński
5ad878c6c4 [BH-371] Replace gsl with mainline submodule and move to third-party
Replacing loose gsl files with gsl mainline project as submodule
and moving it to third-party
2021-06-07 09:30:04 +02:00
Piotr Tański
37e2e33be5 [EGD-6553] ServiceGUI stack depth extended
ServiceGUI stack depth extended from 1024 to 1536 words.
2021-04-16 11:02:29 +02:00
Piotr Tański
90c4a0a39f [EGD-6529] Fixed issues with gray colors
The issue occurred on multiple refreshes in the short period of time.
Sometimes, fast refresh was performed instead of the cached deep one.
2021-04-16 09:51:46 +02:00
Piotr Tański
efef7dcf7f [EGD-6111] Timers refactored
Deep refactor of system timers.
2021-03-19 14:09:35 +01:00
Piotr Tański
4de9970108 [EGD-5952] Changed service stack depths acc. to real usage
Stack depth changed for:
- Application Manager
- Service Bluetooth
- Bluetooth Worker
- Service Eink
- Service GUI
- Application Special Input
2021-03-11 11:15:29 +01:00
Wojtek Rzepecki
ef63ee267c [EGD-5304] Add new way of system close
Unified method of closing
the system orchestrated by
system manager
2021-03-04 15:55:55 +01:00
Mateusz Grzywacz
d98e789a8d [EGD-5193] Eink - Power off the display
The eink has to be powered off sometimes. Implement a
timer of arbitrary timeout (3,8s) to power off the
display if it's not used.
2021-02-10 23:16:51 +01:00
Piotr Tański
bc4d32c7d8 [EGD-5158] Change access to the bus methods
The bus is now accessible only via Service object.
2021-02-08 16:56:42 +01:00
Maciej Janicki
bb59805a8e [EGD-4822] Add color test window to settings app
Add new window to allow convenient display and globally
change used color intensities  for design and testing purposes.
Changes were introduced to Renderer as well as GUI service
to allow global change of used color scheme.
When using list, screen is deep refreshed each
time the color is changed.
Known issues:
Item focus borders (top,bottom) with changed black intensity
may not render properly, however it doesn't obscure the
target functionality.
2021-02-04 13:34:04 +01:00
Mateusz Grzywacz
65023ca120 [EGD-5256] Eink display - speed up in some scenarios
Causes slight speed-up in specific scenarios
(changing windows, also: then rapid navigation)
also: on a regular basis (shaky temperature measumt.)
2021-01-22 20:03:26 +01:00
Piotr Tański
3f29c30bed [EGD-4968] Change GUI service to optimize flow and memory management
Gui and Eink services refactor.
Displaying frames performance optimization.
Critical resources management.
2021-01-08 16:36:12 +01:00
jimmorrisson
14918dc4f9 [EGD-4925] Change new filesystem handling implementation in module-gui. (#1193)
Due to vfs deprecation there is need to remove all vfs calls from code. This PR covers module gui. There are some modifications in other modules included which are necessary because of build system issues.
2020-12-16 15:23:11 +01:00
Piotr Tanski
4e0f72e70a [EGD-4696] Several stabilization patches. (#1192) 2020-12-15 15:30:13 +01:00
Piotr Tanski
22102c4ba5 [EGD-4200] Message handling refactored. (#974) 2020-11-06 15:24:59 +01:00
Adam
8bab7f0031 EGD-3585 ServiceGUI and ServiceEink initial cleanup (#953)
* EGD-3585 SerwiceGUI and ServiceEink initial cleanup

* moved code to one function per message handling
* removed dead code from comments
* added Service.cpp demangling to debug messages for clear output
* added Response value to return messages to `connect()`
2020-11-03 17:27:00 +01:00
Adam
64db7d8327 EDG-3585 Small fixup for refresh & cleanup in buildDrawLists (#916)
* EGD-3585 Minor refresh fixup&  Normalised buildDrawList everywhere
2020-10-30 10:13:47 +01:00
Radosław Wicik
b1736f63ca [EGD-3852] convert to libs services: gui, eink (#933) 2020-10-29 13:06:32 +01:00
Radosław Wicik
d5de12f7ce [EGD-3852] clean include in service (#928) 2020-10-28 15:19:24 +01:00
Piotr Tanski
dd50838789 [EGD-4051] Based application manager app switching on application stack. (#858)
* [EGD-4051] Based application manager app switching on application stack.

* [EGD-4051] Application manager thorough refactor.
2020-10-23 15:45:58 +02:00
Radoslaw Wicik
2276ceed67 [EGD-3743] Update copyrights in fies 2020-10-20 12:55:10 +02:00
Adam
f5f27d642f EGD-2955 EGD-3588 Timers fully refactored & updated (#721)
* Timers now are Application thread safe
* Timers now have consistent API independend of Application (no more c style timers)
* Timers can have either: callback or override onTimer() method - this
  way we can create more complicated timers or just use existing ones
* gui::Timer added via adapter class GuiTimer to decouple sys::Timer
  with gui::Timer
* Fixed race in wrapper
* Updated docs
* fixed using std and cpp_freertos and DataReceivedHandler hidden in Application.hpp
2020-10-02 14:04:57 +02:00
Marcin Smoczyński
c74e7577c7 [EGD-3457] sys: improve workers destroying (#753)
Implement termination of worker threads. To achieve the goal so called
control queue has been introduced which is handled in Worker base class.
Once worker thread receives stop message it tries to kill itself. It is
possible to join a worker thread before deinit know thanks to a
semaphore given before thread termination.

Some improvements to the interface and implementation has been made
including state sanity checks. It is assumed that only service that owns
the worker is allowed to stop it, which allows not to consider code
reentrancy.

Worker destroying procedure has been updated in services that already
own workers.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2020-09-30 15:24:57 +02:00
pholat
50a1f97643 [feature] Font handling feature (#527)
* Font renamed to RawFont
* Added gui::Font adapter
2020-07-15 12:15:14 +02:00
Przemyslaw Brudny
07166614be [EGD-3214] Heap-use-after-free on system close. 2020-05-19 16:01:48 +02:00
rkubiak01
7cac882c7a [2306] VFS: support .boot.ini and "current" and "previous" os types (#315)
* VFS: support .boot.ini and "current" and "previous" os types

* fixes for first batch of comments
- moved crc32 functions to a seperate file
- changed naming of constant with _
- removed one magic number
- crc methods now cross platform

* using smart pointer for buffer management

* created a simple USER_FILE macro for database names

* removed commented-out code

* style fixes

* Updated crc32 version

* Update module-vfs/vfs-utils.cpp

Co-Authored-By: Alek Rudnik <54846206+alekrudnik@users.noreply.github.com>

* Update module-vfs/vfs-utils.cpp

Co-Authored-By: Alek Rudnik <54846206+alekrudnik@users.noreply.github.com>

* renamed USER_FILE to USER_PATH macro, this was also
bromen and was returning incorrect paths, std::filesystem::path
behavior is causing these issues.

* VFS: remove method changed

* fixed path for assets copy

* UNITTEST: vfs test fixed

* VFS: changed computeCRC32 return type to void

* Max supported partition to 2 (was 1)

* EOL in vfs.cpp

* nullptr check in computeCRC32
include for log.hpp fixed

* flash_eMMC merged properly

* CRC32 commit update

* testBuild

* fix newline at start of smsdb.cpp
removed test from cmake

* no user/ folder on the root of emmc causes sqlite3 to fault
this adds a create empty user call for rt1051

* flash script fixes
- do not use build-*/sys
- common.sh contains a static list of iles that land on the flash

Co-authored-by: Alek Rudnik <54846206+alekrudnik@users.noreply.github.com>
2020-05-08 10:27:17 +02:00
Adam Dobrowolski
4a61f400e7 EGD-3055 Fixed printf issues 2020-04-08 12:23:53 +02:00
Przemyslaw Brudny
c0822b6658 [EDG-3019] Moved log.hpp and debug.hpp into main PurePhone repo 2020-03-24 15:55:32 +01:00
Przemyslaw Brudny
8f92715951 [EDG-3019] Segger utils moved to git submodule 2020-03-23 18:37:37 +01:00
Radoslaw Wicik
a8573a404c Apply new style 2020-03-17 10:03:16 +01:00
Adam Dobrowolski
ae915f3512 [EGD-2571] Clenup: removed MessageType static_casts, fixed debug.h defines. Added GPIO event 2020-02-12 13:31:13 +00:00
Alek-Mudita
8b167d1809 Fix for calling (#91)
* fix for not switching to active call

* Added missing icons during unaswered outgoing call + some error logging

* Added additional logging to AT commands
defult timeout set to 300 ms.
Set different timeouts per each AT command.
Minor code refactoring.

* Added some logging, fixed some timeouts and number of returned tockens.

* commented out not needed log

* Added LOG_CUSTOM logging support. Remove unnecessary LOG_ERRORS.

* set ATA cmd timeout to 90 sec

* PR fixes
2019-11-29 11:18:57 +01:00
Adam Dobrowolski
e1bde27d79 [EDG-2335] WIP: Application.cpp handling is just sad 2019-11-27 11:09:52 +01:00
Robert Borzecki
a1201b8ccc Fix for dropping render frames. 2019-09-25 13:19:05 +02:00
Robert Borzecki
6e4bf06046 Power off screen handling, contact verification functions. 2019-09-23 12:51:07 +02:00