* 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
Changed of the algorithm used to initialize
settings database with values read from EEPROM,
previously first insertion failure resulted
in stopping the whole process, now next values
are inserted even if previous has failed.
Additionally minor cleanup.
Fixed case, when there's only one thread unread and
there's no info about the thread, only a generic message
Tests are deleted because the fix would require rewritting ALL
of those tests - those will be written with new implementation
of notification table
* Switched to DB initialization at compile time
* Organized and cleaned up db files directories(not finished completely)
* Fixed DB related unit tests
* Minor improvements to CMake
* Small fixes for GCC12 build
- Forward arguments
- Remove unused code
- Remove auto return type when it's not needed
- Add const to member functions
- Use startsWith and endsWith from utils
- Allow instantiation of operators only for specific types
- Caluclate key mask in compile time
Backup had some issues when filesystem was not clearly closed.
After that, sqlite was not commiting the transaction while
doing VACUUM INTO query, which caused fail on the next
query. Fixed by commiting the transaction when there's
any ongoing one during backup.
Workaround for loading changed/new sql
after update.
Currently, updated moves sql files to wrong direction,
therefore to support both update and flashing
we have to check both directories.
Increasd io stream buffers:
- 64kB for big files with short lifetime scope
- 16kB for big files with long lifetime scope
- 1kB - dont changes default forr the rest
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>
During every power on Database initialization, each DB is populated
with mock data. Used PRAGMA application_id to indicate that DB is
initialized at first run.
QueryResult iterator nextRow() may get into infinite loop.
Additionally, fixed handling of the case when each row of result
could have a different count of fields.
Wall mechanism is not needed due to the littlefs
fail proofs safety. It causes a lot of troubles
in the frame recovery and unnessesry increases
io bandwidth
Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
VFAT partition should be mounted in RO mode by default
because writing to FAT filesystem is unsafe.
Writing is allowed only in the LFS filesystem.
If upgrade is needed FAT partition can be temporary
switched to RW mode using mount() syscall with REMOUNT flag
but it should be switched to RO mode again after upgrade.
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.
Fix for unexcepted power failure by adding new implemented
function ff_fflush.
Improve write interface to complies with Linux lseek syscall.
Linux lseek syscall allows to lseek outsite the file size.
When write if lseek is out of range, write syscall write data to new
offset and fill the gap with zeros.
Free RTOS-FAT behaviour doesn't support sparse files, so we need
to implement this functionality manually on the sqlite3 vfs inteface
layer.
Co-authored-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>