# Version 0.9.1 - 2024-07-31 - [minor][add] Add missing `Error` impl for `InitializeError`. # Version 0.9.0 - 2024-06-17 - [minor][add] Allow direct access to the underlying serial port. - [minor][add] Allow changing the baud rate of the underlying serial port. - [minor][add] Automatically calculate the correct read timeout for instructions. - [minor][add] Add a `rs4xx` feature that enables the `rs4xx` support in the `serial2` crate. - [minor][fix] Set the read timeout of the underlying serial port to avoid blocking longer than intended. - [major][change] Change `bulk_write()` to take an iterator instead of a slice. - [major][change] Change `sync_read()` to accept any buffer type that implements `AsRef<[u8]>`. - [major][change] Remove the `read_timeout` parameter from `Bus` constructors. - [major][change] `Bus::new()` and `Buf::with_buffers()` can now return a `InitializeError` if it fails to determine the baud rate of the serial port. - [major][change] `Bus::read_status_response()` now takes the expected number of parameters to automatically calculate the read timeout. - [major][change] Replace the `PingResponse` struct with `Response`. # Version 0.8.0 - 2024-04-15 - [major][change] Remove `ReadBuffer` and `WriteBuffer` generic arguments from `StatusPacket`. - [major][add] Add `WriteError::BufferTooSmall` and `ReadError::BufferTooSmall` variants. - [minor][change] Report too small buffers as `BufferTooSmall` instead of panicking. - [minor][add] Allow using the broadcast ID with the `write()`, `write_u8()`, `write_u16` and `write_u32` functions. - [minor][add] Allow using the broadcast ID with the `reg_write()`, `reg_write_u8()`, `reg_write_u16` and `reg_write_u32` functions. - [minor][add] Allow using the broadcast ID with the `action()` function. - [minor][add] Allow using the broadcast ID with the `clear_revolution_counter()` function. - [minor][add] Allow using the broadcast ID with the `factory_reset()` function. - [minor][add] Allow using the broadcast ID with the `reboot()` function. # Version 0.7.2 - 2024-03-24 - [minor][add] Expose `ExpectedCount` publically. - [minor][add] Implement `Debug` for `Bus`. - [patch][doc] Add missing doc comments. # Version 0.7.1 - 2024-03-24 - [minor][add] Re-export the `serial2` crate to allow easier serial port configuration. - [minor][add] Derive `Debug`, `Clone`, `Eq` and `PartialEq` for many response types. # Version 0.7.0 - 2023-12-17 - [major][change] Pass `Response<&[u8]>` to read callbacks instead of `Response>`. # Version 0.6.1 - 2023-12-16 - [minor][add] Add `StatusPacket::error_number()`. - [minor][add] Add `MotorError::error_number()`. - [minor][add] Add `MotorError::alert()`. - [patch][change] Fix documentation fo `StatusPacket::alert()`. # Version 0.6.0 - 2023-12-16 - [major][change] Do not return `Err()` when the `alert` bit is set in a status packet from a motor. - [major][change] Report the `alert` bit in the returned values from commands in a new `Response` struct. - [major][change] Pass original `BulkReadData` command to user callback in `bulk_read_cb()`. - [minor][fix] Fix amount of data read in `sync_read_u16` and `sync_read_u16_cb`. # Version 0.5.1 - 2023-12-07 - [minor][fix] Parse all status messages when more than on has been read in a single `read()`. # Version 0.5.0 - 2023-12-02 - [major][change] Update `serial2` to `v0.2`. # Version 0.4.2 - 2023-12-02 - [minor][fix] Remove unused generic parameter from `sync_read_*` functions. # Version 0.4.1 - 2022-12-12 - [minor][fix] Fix the instruction ID used by the bulk read/write commands. # Version 0.4.0 - 2022-12-12 - [major][change] Use `Borrow` trait instead of `AsRef` in `Bus::bulk_write()`. # Version 0.3.1 - 2021-11-14 - [patch][change] Update documentation. # Version 0.3.0 - 2021-11-13 - [major][change] Switch to `serial2` for serial communication. - [major][remove] Remove `Bus::with_buffer_sizes()` constructor. - [minor][change] Discard input buffer right before writing instructions. # Version 0.2.3 - 2021-06-30 - [minor][change] Clear the read buffer when sending an instruction. - [minor][add] Add trace log for discarded partial messages after a timeout. # Version 0.2.2 - 2021-06-30 - [minor][add] Add debug and trace logs for skipped noise bytes. # Version 0.2.1 - 2021-05-08 - [minor][change] Change error type of sync write functions to reflect lack of read phase. - [minor][add] Add support for the bulk read and write instructions. # Version 0.2.0 - 2021-05-06 - [major][change] Rewrite API to a `Bus` struct with functions for the instructions. - [minor][change] Ignore noise before message headers. # Version 0.1.4 - 2021-04-22 - [minor][add] Fix visibility of `WriteData` struct for `SyncWrite` intstructions. # Version 0.1.3 - 2020-10-16 - [minor][add] Add support for the `reg_write` and `action` instructions. - [minor][add] Add support for the `factory_reset` instruction. - [minor][add] Add support for the `clear` instruction. - [minor][add] Add support for the `sync_read` and `sync_write` instructions. - [minor][add] Add support for custom raw instructions. - [patch][change] Include correct license file. # Version 0.1.2 - 2020-06-18 - [minor][fix] Fix `write_u32_le()` to actually write in little endian. # Version 0.1.1 - 2020-06-18 - [minor][fix] Fix encoding of `WriteU8` instruction parameters. # Version 0.1.0 - 2020-06-18 - [minor][add] Initial release. - [minor][add] Implemented instructions: `ping`, `read`, `write`, `reboot`. - [minor][add] Add function to write a single instruction. - [minor][add] Add function to read a single response. - [minor][add] Add function to execute unicast intstructions. - [minor][add] Add function to scan a bus for motors.