src-vorago-common merge requestshttps://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests2024-03-15T15:14:27Zhttps://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/36apply auto-formatter2024-03-15T15:14:27ZRobin Muellerapply auto-formatterhttps://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/35Use constants in LED driver2024-03-15T14:29:29ZRobin MuellerUse constants in LED driverhttps://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/34remove float code, not required (and possibly expensive)2024-03-15T15:13:32ZRobin Muellerremove float code, not required (and possibly expensive)https://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/33improved rs485 handler2023-06-09T09:24:40ZRobin Muellerimproved rs485 handlerhttps://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/32Added queue class2023-06-06T09:56:02ZTim HalachAdded queue classThe queue class is actually a double ended queue (deque) enabling pushing and popping to and from the back and front of it.
Its aim is to do so in a minimal fashion to avoid code bloat.
The queue has a constant size to avoid it eating u...The queue class is actually a double ended queue (deque) enabling pushing and popping to and from the back and front of it.
Its aim is to do so in a minimal fashion to avoid code bloat.
The queue has a constant size to avoid it eating up more and more RAM.
This size can be set upon creation, other wise the default size of 10 is used and it can later never be changed.
This helps with static analysis of RAM requirements.
The copy and move constructors exist.
Putting items into the queue is done with `PushFront/Back()`; removing items with `PopFront/Back()`; inspecting items without removing them from the queue with `PeekFront/Back()`.
When the queue is full no more elements can be inserted, meaning new elements are dropped.
Peeking and popping on an empty queue returns an undefined value but importantly does not break the queue.
Pushing to a queue which has been moved does nothing, peeking and popping returns undefined values.
`Clear()` empties the queue and resets the internal front and back pointers (important if you want to write tests).
---
I have noticed that the etl repo also has a queue implementation.
Therefore this implementation is a sort of minimal backup which should be a bit smaller and faster than that implementation, should we need it.https://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/31Added 'extern C' to fix compile errors.2023-03-09T19:18:47ZTim HalachAdded 'extern C' to fix compile errors.Since we are using C++, C code has to be marked as 'extern C' for it to compile.
This is now also done for I2C.Since we are using C++, C code has to be marked as 'extern C' for it to compile.
This is now also done for I2C.https://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/30update uart test task2022-08-11T06:57:33ZKajetan Weinmannupdate uart test taskhttps://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/29UART and general Task Refactoring2022-08-11T06:58:51ZRobin MuellerUART and general Task Refactoring- Simplify task classes to simply take a `const char*` instead of `std::string`, more embedded friendly
- New `SimpleTaskWrapper` which is a lot simpler then the previous task object
- New `UslpTaskWrapper` which wraps common logic to li...- Simplify task classes to simply take a `const char*` instead of `std::string`, more embedded friendly
- New `SimpleTaskWrapper` which is a lot simpler then the previous task object
- New `UslpTaskWrapper` which wraps common logic to listen to UART IRQ interrupts and perform USLP frame parsing
after a short delay.https://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/28ADC continuous read fix2022-01-20T16:27:35ZRobin MuellerADC continuous read fix- Very minor fix which allows reading the last channel as well- Very minor fix which allows reading the last channel as wellv1.4.0https://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/27UART Fix & Some ADC minor changes2022-01-20T16:26:17ZRobin MuellerUART Fix & Some ADC minor changes- Important change for UART event handler. This works a lot more reliably for communication with the Syrlinks- Important change for UART event handler. This works a lot more reliably for communication with the Syrlinksv1.4.0https://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/26updated op divider2022-01-17T12:36:17ZRobin Muellerupdated op dividerv1.4.0https://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/25Several improvements and fixes2022-01-13T13:54:37ZRobin MuellerSeveral improvements and fixes- UartHandler parity is now setable
- Removed unused code
- Made UART driver CLK scale calculation more correct
- Added Ascii Converter Code
- Added and tweaked code to test REB1 potentiometer
- Only setup debug UART if necessary- UartHandler parity is now setable
- Removed unused code
- Made UART driver CLK scale calculation more correct
- Added Ascii Converter Code
- Added and tweaked code to test REB1 potentiometer
- Only setup debug UART if necessaryhttps://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/24added weak attribute to all IRQ handlers2021-12-13T13:08:09ZRobin Muelleradded weak attribute to all IRQ handlersI was investigating the bloated code size even when the main function was empty and found another way to reduce the code size
The Vorago IRQ handlers were not declared `weak` so they were always loaded even if they were not used with no...I was investigating the bloated code size even when the main function was empty and found another way to reduce the code size
The Vorago IRQ handlers were not declared `weak` so they were always loaded even if they were not used with no way for the user to override these functions.
I declared them weak now which allows users to override them with a custom function or make them empty to save code size. I was able to save around 5-6kB by doing this.https://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/23Added TIM library2021-11-27T16:53:44ZRobin MuellerAdded TIM library- TIM library hidden in the bootloader sources added to the main library- TIM library hidden in the bootloader sources added to the main libraryhttps://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/22added pwm addition2021-11-27T16:31:49ZIrini Kosmidouadded pwm additionhttps://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/21Update to 1.4.02021-11-27T16:48:33ZRobin MuellerUpdate to 1.4.0- Add SVD file, useful for debugging
- Fixes for ADC code
- Arrayprinter format updates- Add SVD file, useful for debugging
- Fixes for ADC code
- Arrayprinter format updatesv1.4.0https://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/20v1.3.12021-10-20T10:46:48ZRobin Muellerv1.3.1 - Bumped release - Bumped releasehttps://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/19Update to v1.3.02021-10-20T10:42:32ZRobin MuellerUpdate to v1.3.0- Updates structure of common folder
- Better logger printouts
- New SPI Handler helper class
- New ADC class for Max127xx devices
- Top view of REB1 board with SPI pinouts marked
- Cleaned up UART components, there is one `UartHandler` ...- Updates structure of common folder
- Better logger printouts
- New SPI Handler helper class
- New ADC class for Max127xx devices
- Top view of REB1 board with SPI pinouts marked
- Cleaned up UART components, there is one `UartHandler` now which is now more configurable
- Made parts of Vorago UART driver const correct
- Changed UART interrupt handler of UART driver so support full-duplex operation, worked in tests so far
- `UartTestTask` moved to Vorago Commonv1.3.0https://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/18uart handler fixes2021-10-20T10:36:59ZRobin Muelleruart handler fixes- Cleaned up and improved UART handler, improved code documentation as well- Cleaned up and improved UART handler, improved code documentation as wellv1.3.0https://git.ksat-stuttgart.de/source/src-vorago-common/-/merge_requests/17Refactoring driver assignment and UART Test Task fixes2021-10-20T10:04:28ZRobin MuellerRefactoring driver assignment and UART Test Task fixes- UART pin assignment was hardcoded but a lot more combinations are possible
- The pin assigment is now passed in form of a user callback instead
- Bugfixes in UART Test Task callback- UART pin assignment was hardcoded but a lot more combinations are possible
- The pin assigment is now passed in form of a user callback instead
- Bugfixes in UART Test Task callbackv1.3.0