Add defmt support behind the feature flag defmt. (#14)

* Add defmt support behind the feature flag defmt.

* Update rtcc dependency

* Updated changelog to reflect defmt support.

* Update CHANGELOG.md

* Update CHANGELOG.md

---------

Co-authored-by: Diego Barrios Romero <eldruin@gmail.com>
master
Paul Bender 2025-10-11 04:40:24 -07:00 committed by GitHub
parent e2b576edf3
commit 775f3288b1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 26 additions and 2 deletions

View File

@ -8,6 +8,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
<!-- next-header --> <!-- next-header -->
## [Unreleased] - ReleaseDate ## [Unreleased] - ReleaseDate
### Added
- Added `defmt` support behind a feature flag.
### Changed
- Updated `rtcc` to version 0.4.0, which has `defmt` support.
## [0.6.0] - 2025-01-02 ## [0.6.0] - 2025-01-02
### Changed ### Changed
@ -99,4 +107,4 @@ this CHANGELOG.
[0.3.2]: https://github.com/eldruin/ds323x-rs/compare/v0.3.1...v0.3.2 [0.3.2]: https://github.com/eldruin/ds323x-rs/compare/v0.3.1...v0.3.2
[0.3.1]: https://github.com/eldruin/ds323x-rs/compare/v0.3.0...v0.3.1 [0.3.1]: https://github.com/eldruin/ds323x-rs/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/eldruin/ds323x-rs/compare/v0.2.0...v0.3.0 [0.3.0]: https://github.com/eldruin/ds323x-rs/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/eldruin/ds323x-rs/compare/v0.1.0...v0.2.0 [0.2.0]: https://github.com/eldruin/ds323x-rs/compare/v0.1.0...v0.2.0

View File

@ -20,9 +20,13 @@ include = [
] ]
edition = "2018" edition = "2018"
[features]
defmt = ["dep:defmt", "rtcc/defmt"]
[dependencies] [dependencies]
embedded-hal = "1.0.0" embedded-hal = "1.0.0"
rtcc = "0.3" rtcc = "0.4"
defmt = { version = "1.0.1", optional = true }
[dev-dependencies] [dev-dependencies]
embedded-hal-mock = { version = "0.11.1", features = ["eh1"] } embedded-hal-mock = { version = "0.11.1", features = ["eh1"] }

View File

@ -15,6 +15,7 @@ use crate::{
/// - Second, minute and hour: 0 /// - Second, minute and hour: 0
/// - Day: 1 /// - Day: 1
#[derive(Debug, Clone, Copy, PartialEq)] #[derive(Debug, Clone, Copy, PartialEq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct DayAlarm1 { pub struct DayAlarm1 {
/// Day of the month [1-31] /// Day of the month [1-31]
pub day: u8, pub day: u8,
@ -34,6 +35,7 @@ pub struct DayAlarm1 {
/// - Second, minute and hour: 0 /// - Second, minute and hour: 0
/// - Weekday: 1 /// - Weekday: 1
#[derive(Debug, Clone, Copy, PartialEq)] #[derive(Debug, Clone, Copy, PartialEq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct WeekdayAlarm1 { pub struct WeekdayAlarm1 {
/// Weekday [1-7] /// Weekday [1-7]
pub weekday: u8, pub weekday: u8,
@ -47,6 +49,7 @@ pub struct WeekdayAlarm1 {
/// Alarm1 trigger rate /// Alarm1 trigger rate
#[derive(Debug, Clone, Copy, PartialEq)] #[derive(Debug, Clone, Copy, PartialEq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum Alarm1Matching { pub enum Alarm1Matching {
/// Alarm once per second. /// Alarm once per second.
OncePerSecond, OncePerSecond,
@ -68,6 +71,7 @@ pub enum Alarm1Matching {
/// - Minute and hour: 0 /// - Minute and hour: 0
/// - Day: 1 /// - Day: 1
#[derive(Debug, Clone, Copy, PartialEq)] #[derive(Debug, Clone, Copy, PartialEq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct DayAlarm2 { pub struct DayAlarm2 {
/// Day of month [1-31] /// Day of month [1-31]
pub day: u8, pub day: u8,
@ -85,6 +89,7 @@ pub struct DayAlarm2 {
/// - Minute and hour: 0 /// - Minute and hour: 0
/// - Weekday: 1 /// - Weekday: 1
#[derive(Debug, Clone, Copy, PartialEq)] #[derive(Debug, Clone, Copy, PartialEq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct WeekdayAlarm2 { pub struct WeekdayAlarm2 {
/// Weekday [1-7] /// Weekday [1-7]
pub weekday: u8, pub weekday: u8,
@ -96,6 +101,7 @@ pub struct WeekdayAlarm2 {
/// Alarm2 trigger rate /// Alarm2 trigger rate
#[derive(Debug, Clone, Copy, PartialEq)] #[derive(Debug, Clone, Copy, PartialEq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum Alarm2Matching { pub enum Alarm2Matching {
/// Alarm once per minute. (00 seconds of every minute) /// Alarm once per minute. (00 seconds of every minute)
OncePerMinute, OncePerMinute,

View File

@ -5,12 +5,14 @@ use embedded_hal::{i2c, spi};
/// I2C interface /// I2C interface
#[derive(Debug, Default)] #[derive(Debug, Default)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct I2cInterface<I2C> { pub struct I2cInterface<I2C> {
pub(crate) i2c: I2C, pub(crate) i2c: I2C,
} }
/// SPI interface /// SPI interface
#[derive(Debug, Default)] #[derive(Debug, Default)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct SpiInterface<SPI> { pub struct SpiInterface<SPI> {
pub(crate) spi: SPI, pub(crate) spi: SPI,
} }

View File

@ -377,6 +377,7 @@ pub const SPI_MODE_3: Mode = MODE_3;
/// All possible errors in this crate /// All possible errors in this crate
#[derive(Debug)] #[derive(Debug)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum Error<E> { pub enum Error<E> {
/// I²C/SPI bus error /// I²C/SPI bus error
Comm(E), Comm(E),
@ -391,6 +392,7 @@ pub enum Error<E> {
/// Square-wave output frequency /// Square-wave output frequency
#[derive(Debug, Clone, Copy, PartialEq)] #[derive(Debug, Clone, Copy, PartialEq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum SqWFreq { pub enum SqWFreq {
/// 1 Hz (default) /// 1 Hz (default)
_1Hz, _1Hz,
@ -406,6 +408,7 @@ pub enum SqWFreq {
/// ///
/// This is only available on the DS3232 and DS3234 devices. /// This is only available on the DS3232 and DS3234 devices.
#[derive(Debug, Clone, Copy, PartialEq)] #[derive(Debug, Clone, Copy, PartialEq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum TempConvRate { pub enum TempConvRate {
/// Once every 64 seconds (default) /// Once every 64 seconds (default)
_64s, _64s,
@ -478,6 +481,7 @@ pub mod ic {
/// DS3231, DS3232 and DS3234 RTC driver /// DS3231, DS3232 and DS3234 RTC driver
#[derive(Debug, Default)] #[derive(Debug, Default)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub struct Ds323x<DI, IC> { pub struct Ds323x<DI, IC> {
iface: DI, iface: DI,
control: u8, control: u8,