Skip to content

Commit 28c75c4

Browse files
committed
print serial number
1 parent 19d208e commit 28c75c4

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

sdpsensor.cpp

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ esp_err_t SDPSensor::initI2C(int pinSDA, int pinSCL) {
8787
i2c_master_rx_buf_disable, i2c_master_tx_buf_disable,
8888
intr_flag_disable);
8989
if (err != ESP_OK) {
90-
ESP_LOGE(TAG_SDPSENSOR, "Could not initialize the I2C: %s", esp_err_to_name(err));
90+
ESP_LOGE(TAG_SDPSENSOR, "Failed to initialize the I2C: %s", esp_err_to_name(err));
9191
return err;
9292
}
9393
ESP_LOGI(TAG_SDPSENSOR, "I2C%d line initialized", i2c_port);
@@ -97,9 +97,7 @@ esp_err_t SDPSensor::initI2C(int pinSDA, int pinSCL) {
9797

9898

9999
void logInitFailed(esp_err_t err) {
100-
ESP_LOGE(TAG_SDPSENSOR,
101-
"Could not initialize and setup the SDP sensor: %s",
102-
esp_err_to_name(err));
100+
ESP_LOGE(TAG_SDPSENSOR, "SDPSensor::begin failed: %s", esp_err_to_name(err));
103101
}
104102

105103

@@ -129,7 +127,7 @@ esp_err_t SDPSensor::begin() {
129127
/*
130128
Read product id and serial number.
131129
Data Format:
132-
| Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6...18 |
130+
| Byte | 0 | 1 | 2 | 3 | 4 | 5 | 6...17 |
133131
| Value | pid1 |CRC| pid2 |CRC| serial |
134132
*/
135133
err = i2c_master_read_from_device(i2c_port, i2c_addr, read_buffer, 18, ticks_to_wait_long);
@@ -141,6 +139,14 @@ esp_err_t SDPSensor::begin() {
141139
const uint32_t pid = (read_buffer[0] << 24) | (read_buffer[1] << 16)
142140
| (read_buffer[3] << 8) | (read_buffer[4] << 0);
143141

142+
uint64_t serial_num = 0;
143+
uint64_t *pserial = &serial_num;
144+
for (int i = 6; i < 18; i++) {
145+
if ((i + 1) % 3 == 0) continue; // CRC
146+
*pserial <<= 8;
147+
*pserial |= (uint64_t) read_buffer[i];
148+
}
149+
144150
uint32_t model_number, range_pa;
145151
switch (pid & 0xFFFFFF00) {
146152
case SPD31_500_PID:
@@ -177,7 +183,7 @@ esp_err_t SDPSensor::begin() {
177183
break;
178184
}
179185

180-
ESP_LOGI(TAG_SDPSENSOR, "Initialized SDP%d %dPa sensor (PID=0x%08X)", model_number, range_pa, pid);
186+
ESP_LOGI(TAG_SDPSENSOR, "Initialized SDP%d %dPa sensor (PID=0x%08X), serial=0x%016llX", model_number, range_pa, pid, serial_num);
181187

182188
err = i2c_master_write_to_device(i2c_port, i2c_addr, cmd_measure, SDPSENSOR_I2C_CMD_LEN, ticks_to_wait_long);
183189
if (err != ESP_OK) {

0 commit comments

Comments
 (0)