| 178 | |
| 179 | |
| 180 | bool SGP30::read() |
| 181 | { |
| 182 | if (_lastRequest == 0) return false; |
| 183 | if (millis() - _lastRequest < 13) return false; // Page 11 |
| 184 | _lastRequest = 0; |
| 185 | |
| 186 | if (_wire->requestFrom(_address, (uint8_t)6) != 6) |
| 187 | { |
| 188 | _error = SGP30_ERROR_I2C; |
| 189 | return false; |
| 190 | } |
| 191 | _co2 = _wire->read() << 8; |
| 192 | _co2 += _wire->read(); |
| 193 | uint8_t crc = _wire->read(); |
| 194 | if (_CRC8(_co2) != crc) |
| 195 | { |
| 196 | _error = SGP30_ERROR_CRC; |
| 197 | return false; |
| 198 | } |
| 199 | _tvoc = _wire->read() << 8; |
| 200 | _tvoc += _wire->read(); |
| 201 | crc = _wire->read(); |
| 202 | if (_CRC8(_tvoc) != crc) |
| 203 | { |
| 204 | _error = SGP30_ERROR_CRC; |
| 205 | return false; |
| 206 | } |
| 207 | _error = SGP30_OK; |
| 208 | return true; |
| 209 | } |
| 210 | |
| 211 | |
| 212 | void SGP30::requestRaw() |
no outgoing calls
no test coverage detected