@@ -87,7 +87,7 @@ void SDPSensor::initI2C(int pinSDA, int pinSCL) {
8787}
8888
8989
90- void SDPSensor::initSensor () {
90+ esp_err_t SDPSensor::begin () {
9191 SDPSensor::reset (); // stop continuous mode
9292
9393 // commands to read product id
@@ -100,20 +100,20 @@ void SDPSensor::initSensor() {
100100 uint8_t read_buffer[18 ] = { 0 };
101101
102102 const TickType_t ticks_to_wait_long = pdMS_TO_TICKS (100 );
103- ESP_ERROR_CHECK (
104- i2c_master_write_to_device (i2c_port, i2c_addr, cmd0, SDPSENSOR_I2C_CMD_LEN, ticks_to_wait_long));
105- ESP_ERROR_CHECK (
106- i2c_master_write_to_device (i2c_port, i2c_addr, cmd1, SDPSENSOR_I2C_CMD_LEN, ticks_to_wait_long));
103+ esp_err_t err;
104+ err = i2c_master_write_to_device (i2c_port, i2c_addr, cmd0, SDPSENSOR_I2C_CMD_LEN, ticks_to_wait_long);
105+ if (err != ESP_OK) return err;
106+ err = i2c_master_write_to_device (i2c_port, i2c_addr, cmd1, SDPSENSOR_I2C_CMD_LEN, ticks_to_wait_long);
107+ if (err != ESP_OK) return err;
107108
108109 /*
109110 Read product id and serial number.
110111 Data Format:
111112 | Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6...18 |
112113 | Value | pid1 |CRC| pid2 |CRC| serial |
113114 */
114- ESP_ERROR_CHECK (
115- i2c_master_read_from_device (i2c_port, i2c_addr, read_buffer, 18 ,
116- ticks_to_wait_long));
115+ err = i2c_master_read_from_device (i2c_port, i2c_addr, read_buffer, 18 , ticks_to_wait_long);
116+ if (err != ESP_OK) return err;
117117
118118 const uint32_t pid = (read_buffer[0 ] << 24 ) | (read_buffer[1 ] << 16 )
119119 | (read_buffer[3 ] << 8 ) | (read_buffer[4 ] << 0 );
@@ -156,17 +156,19 @@ void SDPSensor::initSensor() {
156156
157157 ESP_LOGI (TAG_SDPSENSOR, " Initialized SDP%d %dPa sensor (PID=0x%08X)" , model_number, range_pa, pid);
158158
159- ESP_ERROR_CHECK (
160- i2c_master_write_to_device (i2c_port, i2c_addr, cmd_measure, SDPSENSOR_I2C_CMD_LEN, ticks_to_wait_long)) ;
159+ err = i2c_master_write_to_device (i2c_port, i2c_addr, cmd_measure, SDPSENSOR_I2C_CMD_LEN, ticks_to_wait_long);
160+ if (err != ESP_OK) return err ;
161161
162162 vTaskDelay (pdMS_TO_TICKS (90 )); // theoretically 45 ms
163163
164- ESP_ERROR_CHECK (
165- i2c_master_read_from_device (i2c_port, i2c_addr, read_buffer, 9 , ticks_to_wait_long)) ;
164+ err = i2c_master_read_from_device (i2c_port, i2c_addr, read_buffer, 9 , ticks_to_wait_long);
165+ if (err != ESP_OK) return err ;
166166
167167 this ->pressureScale = ((int16_t ) read_buffer[6 ]) << 8 | read_buffer[7 ];
168168
169169 ESP_LOGI (TAG_SDPSENSOR, " SDP%d pressure scale: %d" , model_number, this ->pressureScale );
170+
171+ return err;
170172}
171173
172174uint16_t SDPSensor::getPressureScale () {
0 commit comments