diff --git a/Adafruit_I2CDevice.cpp b/Adafruit_I2CDevice.cpp index eea3187..f94b1ee 100644 --- a/Adafruit_I2CDevice.cpp +++ b/Adafruit_I2CDevice.cpp @@ -58,16 +58,19 @@ bool Adafruit_I2CDevice::detected(void) { /*! * @brief Write a buffer or two to the I2C device. Cannot be more than * maxBufferSize() bytes. - * @param buffer Pointer to buffer of data to write + * @param buffer Pointer to buffer of data to write. This is const to + * ensure the content of this buffer doesn't change. * @param len Number of bytes from buffer to write * @param prefix_buffer Pointer to optional array of data to write before - * buffer. Cannot be more than maxBufferSize() bytes. + * buffer. Cannot be more than maxBufferSize() bytes. This is const to + * ensure the content of this buffer doesn't change. * @param prefix_len Number of bytes from prefix buffer to write * @param stop Whether to send an I2C STOP signal on write * @return True if write was successful, otherwise false. */ -bool Adafruit_I2CDevice::write(uint8_t *buffer, size_t len, bool stop, - uint8_t *prefix_buffer, size_t prefix_len) { +bool Adafruit_I2CDevice::write(const uint8_t *buffer, size_t len, bool stop, + const uint8_t *prefix_buffer, + size_t prefix_len) { if ((len + prefix_len) > maxBufferSize()) { // currently not guaranteed to work if more than 32 bytes! // we will need to find out if some platforms have larger @@ -200,7 +203,7 @@ bool Adafruit_I2CDevice::read(uint8_t *buffer, size_t len, bool stop) { * @param stop Whether to send an I2C STOP signal between the write and read * @return True if write & read was successful, otherwise false. */ -bool Adafruit_I2CDevice::write_then_read(uint8_t *write_buffer, +bool Adafruit_I2CDevice::write_then_read(const uint8_t *write_buffer, size_t write_len, uint8_t *read_buffer, size_t read_len, bool stop) { if (!write(write_buffer, write_len, stop)) { diff --git a/Adafruit_I2CDevice.h b/Adafruit_I2CDevice.h index 0dcfc50..28468ea 100644 --- a/Adafruit_I2CDevice.h +++ b/Adafruit_I2CDevice.h @@ -12,9 +12,9 @@ public: bool detected(void); bool read(uint8_t *buffer, size_t len, bool stop = true); - bool write(uint8_t *buffer, size_t len, bool stop = true, - uint8_t *prefix_buffer = NULL, size_t prefix_len = 0); - bool write_then_read(uint8_t *write_buffer, size_t write_len, + bool write(const uint8_t *buffer, size_t len, bool stop = true, + const uint8_t *prefix_buffer = NULL, size_t prefix_len = 0); + bool write_then_read(const uint8_t *write_buffer, size_t write_len, uint8_t *read_buffer, size_t read_len, bool stop = false); bool setSpeed(uint32_t desiredclk);