15template<
size_t Bits,
typename T>
inline T
sign_extend(
const T &v)
noexcept {
16 using S =
struct {
signed Val : Bits; };
17 return reinterpret_cast<const S *
>(&v)->Val;
40 this->
read_register16(a_register,
reinterpret_cast<uint8_t *
>(&in),
sizeof(in));
46 this->
read_register16(a_register,
reinterpret_cast<uint8_t *
>(&in),
sizeof(in));
53 this->
read_register16(a_register,
reinterpret_cast<uint8_t *
>(&in),
sizeof(in));
59 this->
read_register16(a_register,
reinterpret_cast<uint8_t *
>(&in),
sizeof(in));
65 this->
read_register16(a_register,
reinterpret_cast<uint8_t *
>(&in),
sizeof(in));
75 this->
write_register16(a_register,
reinterpret_cast<uint8_t *
>(&out),
sizeof(out));
80 this->
write_register16(a_register,
reinterpret_cast<uint8_t *
>(&out),
sizeof(out));
86 this->
write_register16(a_register,
reinterpret_cast<uint8_t *
>(&out),
sizeof(out));
91 this->
write_register16(a_register,
reinterpret_cast<uint8_t *
>(&out),
sizeof(out));
96 this->
write_register16(a_register,
reinterpret_cast<uint8_t *
>(&out),
sizeof(out));
int16_t read_s16_register16_(uint16_t a_register)
int32_t read_s32_register16_(uint16_t a_register)
void write_u8_register16_(uint16_t a_register, uint8_t value)
uint16_t read_u16_register16_(uint16_t a_register)
void write_s32_register16_(uint16_t a_register, int32_t value)
int32_t read_s24zp_register16_(uint16_t a_register)
void write_s24zpse_register16_(uint16_t a_register, int32_t value)
uint32_t read_u32_register16_(uint16_t a_register)
void write_s10zp_register16_(uint16_t a_register, int16_t value)
void write_u16_register16_(uint16_t a_register, uint16_t value)
uint8_t read_u8_register16_(uint16_t a_register)
void write_u32_register16_(uint16_t a_register, uint32_t value)
ErrorCode write_register16(uint16_t a_register, const uint8_t *data, size_t len) const
write an array of bytes to a specific register in the I²C device
ErrorCode read_register16(uint16_t a_register, uint8_t *data, size_t len)
reads an array of bytes from a specific register in the I²C device
T sign_extend(const T &v) noexcept
constexpr T convert_big_endian(T val)
Convert a value between host byte order and big endian (most significant byte first) order.