mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-11-23 20:22:51 +01:00
8c23e178f3
* Rework timer_queue and monotonic architecture Goals: * make Monotonic purely internal * make Monotonic purely tick passed, no fugit involved * create a wrapper struct in the user's code via a macro that then converts the "now" from the tick based monotonic to a fugit based timestamp We need to proxy the delay functions of the timer queue anyway, so we could simply perform the conversion in those proxy functions. * Update cargo.lock * Update readme of rtic-time * CI: ESP32: Redact esp_image: Too volatile * Fixup: Changelog double entry rebase mistake --------- Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
57 lines
1.9 KiB
Markdown
57 lines
1.9 KiB
Markdown
# Change Log
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
|
|
|
For each category, *Added*, *Changed*, *Fixed* add new entries at the top!
|
|
|
|
## Unreleased - v2.0.0
|
|
|
|
|
|
### Added
|
|
|
|
### Changed
|
|
- Full rewrite of the `Monotonic` API.
|
|
- Now split into multiple traits:
|
|
- `Monotonic` - A user-facing trait that defines what the functionality of a monotonic is.
|
|
- `TimerQueueBackend` - The set of functionality a backend must provide in order to be used with the `TimerQueue`.
|
|
- `TimerQueue` is now purely based on ticks and has no concept of real time.
|
|
- The `TimerQueueBasedMonotonic` trait implements a `Monotonic` based on a `TimerQueueBackend`, translating ticks into `Instant` and `Duration`.
|
|
|
|
### Fixed
|
|
|
|
- Docs: Rename `DelayUs` to `DelayNs` in docs.
|
|
|
|
## v1.3.0 - 2024-01-10
|
|
|
|
### Changed
|
|
|
|
- Using `embedded-hal` 1.0.
|
|
|
|
## v1.2.0 - 2023-12-06
|
|
|
|
### Changed
|
|
|
|
- Docs: Add sanity check to `half_period_counter` code example
|
|
- Deprecate `Monotonic::should_dequeue_check` as it was erroneous
|
|
|
|
### Fixed
|
|
|
|
- Fix race condition in `half_period_counter::calculate_now`.
|
|
This sadly required a minor API change.
|
|
|
|
## v1.1.0 - 2023-12-04
|
|
|
|
### Added
|
|
|
|
- `half_period_counter` containing utilities for implementing a half-period-counter based monotonic.
|
|
- `should_dequeue_check` to the `Monotonic` trait to handle bugged timers.
|
|
|
|
### Changed
|
|
|
|
### Fixed
|
|
|
|
- **Soundness fix:** `TimerQueue` did not wait long enough in `Duration` based delays. Fixing this sadly required adding a `const TICK_PERIOD` to the `Monotonic` trait, which requires updating all existing implementations.
|
|
- If the queue was non-empty and a new instant was added that was earlier than `head`, then the queue would no pend the monotonic handler. This would cause the new `head` to be dequeued at the wrong time.
|
|
|
|
## v1.0.0 - 2023-05-31
|