Commit Graph
149 Commits
Author SHA1 Message Date
Maciej-Mudita f9b9967b0e [EGD-4694] Add CPU frequency shift mechanism
The CPU frequency changes automatically which saves energy
2020-12-22 18:00:57 +01:00
Wojtek Rzepecki df37008c66 [EGD-4952] Fixes for rt1051 2020-12-21 10:12:05 +01:00
Wojtek Rzepecki 243deec8d5 [EGD-4952] Added critical level check + messages 2020-12-21 10:12:05 +01:00
Piotr Tanski 4e0f72e70a [EGD-4696] Several stabilization patches. (#1192) 2020-12-15 15:30:13 +01:00
Hubert Chrzaniuk 8a3eb64662 [EGD-4899] Worker class design improvements and fixes (#1190)
* allow workers to run independently from service
* change worker to use FreeRTOS wrapper Queue class instead of
  freeRTOS native queues
* fix bug disallowing to destruct worker that have never ran
* fixed worker bad state transition to Running state
2020-12-14 11:56:29 +01:00
Maciej Gibowicz 9c9e921ab4 [EGD-4693] PowerManagement: CPU load measurement (#1156)
Add FreeRTOS idle tasks Run Time Statistics

This will allow to measure the CPU load
2020-12-10 17:27:54 +01:00
Maciej Gibowicz 0cc2af0850 [EGD-4472] PowerManagement: Separation of CPU clock into separate clock domain (#1125)
Change CPU clock into separate clock domain

We can control the CPU frequency independently of the peripherals.
2020-12-03 12:04:53 +01:00
Mateusz Grzegorzek 9d35def14d [EGD-4477] Dump logs to a file for linux (#1081)
[EGD-4477] Implement dumping logs to a file for linux
2020-11-27 11:26:02 +01:00
b4814861b0 [EGD-4318] enable service desktop (#973)
* [EGD-3688] Relax retries count for send
enable ServiceDesktop

* [EGD-3688] Relax retries count for send
enable ServiceDesktop

* [EGD-4318] enable service desktop and USB communication
CDC for serial port (communication with Mudita Center)
MTP for file transfer

* [EGD-4318] include path fix

* [egd-4318] constexpr brought back

* [EGD-4318]: review changes
- all BSP specific code moved to bsp files
- added a device listener class for USB
- simplified WorkerDesktop

* [EGD-4318] more reivew fixes mostly include paths and enums

* [EGD-4319] review fixes for SP2FET

* [EGD-4318] updates for large messages sent from phone

* [EGD-4318] more review fixes
- error checks on linux (ptms open and ptsname)
- removed all vfs
- service-desktop won't start if worker init fails

* [EGD-4318] updated return values for usbInit

* Update module-services/service-desktop/WorkerDesktop.cpp

Co-authored-by: Piotr Tanski <piotr.tanski@mudita.com>

* Update module-services/service-desktop/endpoints/update/UpdateMuditaOS.hpp

Co-authored-by: Piotr Tanski <piotr.tanski@mudita.com>

* [EGD-4318] review fixes
- removed #define
- return values for usbInit

* Update module-bsp/board/linux/usb_cdc/usb_cdc.cpp

Co-authored-by: Piotr Tanski <piotr.tanski@mudita.com>

* [EGD-4318] updated taglib

* [EGD-4318] style fixes

* Update module-bsp/board/linux/usb_cdc/usb_cdc.cpp

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

* [EGD-4318] switches from freertos Timer class to sys::Timer

* Update module-services/service-desktop/WorkerDesktop.cpp

Co-authored-by: Piotr Tanski <piotr.tanski@mudita.com>

* Update module-services/service-desktop/WorkerDesktop.cpp

Co-authored-by: Piotr Tanski <piotr.tanski@mudita.com>

* [EGD-4318] added mutex/lock during raw data transfers

* [EGD-4318] if the TAR file is zero size or invalid
mtar_close causes HF. This is a workaround

* [EGD-4318] timer should not start on constructor

* [EGD-4318] getRawMode is const noecept

Co-authored-by: unknown <atom@prostate.local>
Co-authored-by: Piotr Tanski <piotr.tanski@mudita.com>
Co-authored-by: Alek Rudnik <54846206+alekrudnik@users.noreply.github.com>
2020-11-19 17:44:23 +01:00
Radoslaw Wicik b117704345 [EGD-4219] Convert service-evtmgr and service-lwip to library 2020-11-18 10:09:02 +01:00
Piotr Tanski 22102c4ba5 [EGD-4200] Message handling refactored. (#974) 2020-11-06 15:24:59 +01:00
Marcin Smoczyński 486d21af0e [EGD-4288] refactor global data (#959)
Reduce firmware size by refactoring global data defined in public
headers.

Each global variable which require runtime initialization adds
initialization code to every translation unit which includes the header
where the variable is defined and declared.
2020-11-04 18:24:39 +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
Przemyslaw Brudny e131dae68f [EGD-3743] Removed old doxygen copyright statements from project. 2020-10-20 12:55:10 +02:00
Radoslaw Wicik 2276ceed67 [EGD-3743] Update copyrights in fies 2020-10-20 12:55:10 +02:00
Roman Kubiak e340788045 [EGD-3763]: mac fixes. include paths (#804)
* [EGD-3763]: mac fixes. include paths

* [EGD-3763]: genupdate modified, sed -i needs sed -i -e for mac
include path fixes for common.hpp
2020-10-19 13:33:31 +02:00
KacperLewandowski ba4640c4af [EGD-3469] ServiceTime - start 2020-10-15 20:58:45 +02:00
Piotr Tanski f5aec0444a [EGD-3838] Introduced a meditation progress bar with simple implementation of meditation application. (#783) 2020-10-09 14:14:40 +02:00
Hubert Chrzaniuk 9c7e4139db [EGD-3784] Add service audio non blocking API (#789) 2020-10-08 10:15:46 +02:00
Lucjan BryndzaandLucjan Bryndza 0014dae259 [EGD-3854] Removing goto's from the code (#797)
It is generic cleanup task for removing all goto files

Co-authored-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
2020-10-08 08:58:49 +02:00
kkleczkowskiandKuba Kleczkowski 330c57e1d0 Egd 3259 (#781)
* [EGD-3259] Updating RTC time from network time.

* [EGD-3259] Updated changelog.

* [EGD-3259] Missing files.

* [EGD-3259] Time updaten notification.

* [EGD3259] Fixed SET_TIME_ZONE_REPORTING command.

* [EGD3259] SET_TIME_ZONE_REPORTING fixed properly.

* [EGD-3259] Commands added to factory.

* [EGD-3259] Fixes after rebase.

* [EGD-3259] Style fix.

* [EGD-3259] PR applied.

* [EGD-3259] PR applied again.

Co-authored-by: Kuba Kleczkowski <dd>
2020-10-07 15:33:46 +02:00
Marcin Smoczyński fa471405d1 [EGD-3461] sys: update service header comments (#774)
Remove TODOs, update Deinit/Close handlers doxygen comments.

Make CloseHandler final - it must not be overloaded.
2020-10-06 11:36:50 +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 af85469c26 [EGD-3864] main file cleanup (#761)
Remove dead code; cleanup and sort include list. Introduce config file.
2020-10-01 14:47:53 +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
alek f146723e04 some style and spelling fixes 2020-07-23 23:02:05 +02:00
kkleczkowskiandKuba Kleczkowski e46d2a2829 Egd 3244 antenna manager (#490)
* [EGD-3244] Service antenna + utils State.

* [EGD-3244] CellularAPI + at::response.

* [EGD-3244-antenna-manager] Changes in application Antenna.

* [EGD-3244-antenna-manager] Changes in antenna app ( antenna switch multicast ).

* [EGD-3244-antenna-manager] Changed Antenna app GUI.

* [EGD-3244-antenna-manager] Basic algorithm.

* [EGD-3244-antenna-manager] Fixes in algorithm.

* [EGD-3244-antenna-manager] Small fixes + service blocking.

* [EGD-3244-antenna-manager] Little cleanup.

* [EGD-3244-antenna-manager] Restored Cellular call in Application Antenna.

* [EGD-3244-antenna-manager] Style fix.

* [EGD-3244-antenna-manager] Sewrvice antenna disabled.

* [EGD-3244-antenna-manager] PR suggestions + linux buil fixed.

* [EGD-3244-antenna-manager] Updated changelog

* [EGD-3244-antenna-manager] Style fix.

* [EGD-3244-antenna-manager] Fixed submodule.

* [EGD-3244-antenna-manager] PR suggestions + toNumeric UT.

* [EGD-3244-antenna-manager] PR suggstions again.

Co-authored-by: Kuba Kleczkowski <dd>
2020-07-07 10:54:47 +02:00
Marcin Smoczyński 9eef50c75e test: remote outdated module-sys tests
These tests are for outdated code, the amount of work to revive them is
greater than the value they add to the project QA.

Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
2020-06-26 16:12:21 +02:00
Szymon Mroczek 24a8107168 [WIP] [EGD-3290] Add database backup feature with sqlite's VACUUM command. 2020-06-24 11:14:00 +02:00
Radoslaw Wicik af47be76fd [EGD-3245] Add Fota Service 2020-06-10 14:38:25 +02:00
Radoslaw Wicik 60c3edafeb [EGD-3233] Add sys:bus debug messages 2020-05-28 17:23:52 +02:00
Radoslaw Wicik 733a7c8d6b [EGD-3230] Increase Total HEAP_SIZE so Linux implementatio of CelularService fit memory 2020-05-26 11:46:49 +02:00
Marcin Smoczyński a91365b421 fix building with gcc8 2020-04-17 14:16:48 +02:00
Adam Dobrowolski 2c982b3daa FIX - PowerManager not enough stack 2020-04-16 09:12:25 +02:00
Adam Dobrowolski 352074cea6 EGD-3056 Renamed subscribe to connect (following signal -> slot nomenclature) 2020-04-15 16:50:19 +02:00
Adam Dobrowolski 32f51fd796 EGD-3056 PR review applied 2020-04-15 16:50:19 +02:00
Adam Dobrowolski 5b162efbd0 EGD-3056 ./config/pre-commit-check-only.hook --branch-fix applied 2020-04-15 16:50:19 +02:00
Adam Dobrowolski ee8dbc4e7f EGD-3056 Handle reboot with watchdog, TODO's removed/updated 2020-04-15 16:50:19 +02:00
Adam Dobrowolski b7db6a57ed EGD-3056 Added message to continue system shutdown on power plug ejection 2020-04-15 16:50:19 +02:00
Adam Dobrowolski 62d8f4c094 EGD-3056 Improved events logs 2020-04-15 16:50:19 +02:00
Adam Dobrowolski 2561f265a1 EGD-3056 EventManager split to files
1. So that including message for EventManager would work wihtout include
   paths for module-gui for SystemManager
2. Faster compilation
3. Removed redundant code (DataReceivedHandler) it was the same
   implementation just copied
2020-04-15 16:50:19 +02:00
Adam Dobrowolski f529f836cf EGD-3056 Added name for SystemManager in similar way to EventManager 2020-04-15 16:50:19 +02:00
Adam Dobrowolski 82793cf84f EGD-3056 Added c_str() to Keys and std::string operator for messages
* c_str() needed for pretty debug logs (to not log integers which means nothing)
* std::string operator needed to log not only message, ale it's content
  if provided (similar to __repr__ from pytohon
2020-04-15 16:50:19 +02:00
Adam Dobrowolski 19c1f66733 EGD-3056 Messages debugging print edbug.hpp option added 2020-04-15 16:50:19 +02:00
Adam Dobrowolski 2cee195e09 EGD-3056 subscribtion based execution (on typeid) added and works fine
Till now there was no clear way to register hanlder for message in
Service, with this approach one can register function/lambda handler
for Message which encurages handling messages in functions rather than
in hudge switch cases.
With aproach like this our Messages resembe something between Command
and State pattern. In state pattern `Message` would be `Event` send,
whereas Service would be `Context`.
2020-04-15 16:50:19 +02:00
Adam Dobrowolski 3862f10e43 EGD-3056 SystemManager - added RebootReady state and some documentation 2020-04-15 16:50:19 +02:00
Adam Dobrowolski 714b3c1e18 EGD-3056 Removed LogOutput to use LOG_... instead
LogOutput was not needed, confusing and didn't work on target
Therefore it was removed
2020-04-15 16:50:19 +02:00
Adam Dobrowolski 0d75d6ec5b EGD-3056 SystemManager - initial work on delaying reboot
* updated docs
* added PreShutdownLoop
* added c_str() for SystemManager inner state for debug
2020-04-15 16:50:19 +02:00
Adam Dobrowolski f655c581ea EGD-3056 module-sys documentation fixed code parts 2020-04-15 16:50:19 +02:00
Alek Rudnik 09cf520c12 Egd 558 adjust volume during a call (#283)
* [EGD-558][fix] change error to info

* [EGD-558] added volume control of currently active audio operation

* [EGD-558] added ringing on incoming call

* [EGD-558] mini clean up in callwindow

* [EGD-558] removed reinterpret_casts and added some logging

* [EGD-558] rewritten methods to increment/decrement volume

* [EGD-558] clean up

* [EGD-558] moved volume control to application class
added nullptr checks

* [EGD-558] fixed types

* [EGD-558] added some audio debug logs

* [EGD-558] left a comment why ringing sound is currently disabled

* [EGD-558] PR fixes

* [EGD-558] PR fix

* [EGD-558] added propper error codes on pointer checking in Audio.cpp
2020-04-10 11:00:17 +02:00