The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- [
changed
]sensirion_i2c_hal.h
change interface of count from uint16_t to uint8_t.
- [
added
]const
modifier to functions which process MOSI array data. - [
added
] tests to embedded-common. - [
added
] incremental frame construction to SHLDC. This includes a set of functions to create a frame step by step. For all used data types in a frame there is a method to add it on top of the already built frame. This saves memory by using a smaller number of buffers and is a useful way to build the frame with generated drivers. - [
added
] incremental frame construction to I2C. This includes a set of functions to create a frame step by step. For all used data types in a frame there is a method to add it on top of the already built frame. This saves memory by using a smaller number of buffers and is a useful way to build the frame with generated drivers. - [
renamed
] functions to match file name. All functions of embedded-common now have their file name as a prefix to the function name. Mostly this was already the case but now it's consistent. - [
renamed
]sensirion_i2c_release()
tosensirion_i2c_hal_free()
. - [
renamed
]sensirion_uart_open()
tosensirion_uart_hal_init()
. - [
renamed
]sensirion_uart_close()
tosensirion_uart_hal_free()
. - [
renamed
]sensirion_sleep_usec()
to in Sensirion I2C/UART HAL tosensirion_i2c/uart_hal_sleep_usec()
respectively. This is a necessary evil to make use of both the I2C and UART part at the same time possible and keep the files to edit minimal. It's true that those two functions are exactly the same and will be probably implemented the same if the I2C and UART part would be used together, but we also would have it implemented twice. This would result in a compiler error. Since we don't want to add another file which needs to be edited by the user we name them differently.
0.3.0 - 2021-02-01
- [
rework
] I2C and SHDLC specific READMEs. - [
fixed
] handling of execution errors when using the SHDLC protocol. Now execution errors reported in the state byte result in an error. - [
added
] README to explain the usage of the GPIO bit banging sample implementation. - [
added
] I2C and SHDLC specific READMEs to explain first steps to use a driver. - [
moved
] Software I2C implementation from it's own folder into a folder in sample implementations. The software I2C is now seen as a general sample implementation of the I2C HAL. It was also renamed to GPIO bit banging. Additionally functions were renamed to include the prefixsensirion_i2c_gpio
in the name. - [
renamed
] Rename sensirion_uart_implementation.c to sensirion_uart_hal.c to match the .h file. - [
added
] functionsensirion_common_copy_bytes()
tosensirion_common.[ch]
to copy bytes from one buffer to another one.
0.2.0 - 2020-11-11
- [
changed
]base_config.inc
to work with I2C and SHDLC at the same time. Changed HAL implemantation locations and moved the UART one from the Makefile of the test in the sensor repo to here. Also changed the way how mux sources are included so they are only needed by I2C tests. - [
added
] SHDLC implementation. This implementation was imported from theembedded-uart-sps
repository. Since it's general code which could be used by multiple sensors it makes more sense to interate it here. The SHDLC part also uses the files incommon/
. In addition to that it adds two.[ch]
file pairs. Firstsensirion_shdlc.[ch]
which contains the SHDLC implementation for Sensirion sensors. Sencondlysensirion_uart_hal.h
andsensirion_uart_implementation.c
which describe the hardware abstraction layer used bysensirion_shdlc.c
. This hal can be implemented insensirion_uart_implentation.c
for the platform the sensor will be used on. - [
renamed
]sensirion_arch_config.h
tosensirion_config.h
. The reason for this is that the arch part is not really needed since it's the only config in embedded-common. - [
changed
] Structure of embedded-common. File names should be more logical and the spliting of the different parts of the code as well. Embedded-common now splits the code into three.[ch]
file pairs and a configuration.h
file. First there are the three files incommon/
.sensirion_config.h
is similar tosensirion_arch_config.h
from before. It contains configurations for the code to be edited by the user. Then there is thesensirion_common.[ch]
pair which contains helper functions which are not protocol spesific, at the moment it's mostly type conversions. Secondly there are the two other file pairs ini2c/
. The pairsensirion_i2c.[ch]
contains all functions for the i2c implementation of Sensirion.sensirion_i2c_hal.h
describes the hardware abstraction layer used bysensirion_i2c.c
. This hal can be implemented insensirion_hw_i2c_implementation.c
which is located ini2c/hw
. If no HW controller for I2C is present one can also implement the GPIO SW-I2C implentation ini2c/sw/sensirion_sw_i2c_implementation.c
.
0.1.0 - 2020-11-04
- First release with support for I2C using a HW controller or SW bit-banging, with sample implementations for common platforms and helper functions.