Hide assigned temp probes from scan results
This commit is contained in:
@@ -52,6 +52,26 @@ bool addressMatches(DeviceAddress address, const String& expected) {
|
||||
return actual == normalizedExpected;
|
||||
}
|
||||
|
||||
bool isTempAddressAssigned(const String& address) {
|
||||
if (address.length() == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
String normalizedAddress = address;
|
||||
normalizedAddress.toUpperCase();
|
||||
|
||||
for (int i = 0; i < MAX_TEMP_SENSORS; i++) {
|
||||
String assigned = appConfig.tempSensors[i].address;
|
||||
assigned.toUpperCase();
|
||||
|
||||
if (assigned == normalizedAddress) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void clearSensorRuntimeData() {
|
||||
for (int i = 0; i < MAX_TEMP_SENSORS; i++) {
|
||||
sensors.tempsF[i] = -127.0;
|
||||
@@ -72,12 +92,28 @@ int scanTempSensors() {
|
||||
sensorAddressStrings[i] = "";
|
||||
}
|
||||
|
||||
int availableCount = 0;
|
||||
|
||||
for (int i = 0; i < sensorCount; i++) {
|
||||
if (ds18b20.getAddress(sensorAddresses[i], i)) {
|
||||
sensorAddressStrings[i] = addressToString(sensorAddresses[i]);
|
||||
DeviceAddress address;
|
||||
|
||||
if (!ds18b20.getAddress(address, i)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String addressString = addressToString(address);
|
||||
|
||||
if (isTempAddressAssigned(addressString)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
memcpy(sensorAddresses[availableCount], address, 8);
|
||||
sensorAddressStrings[availableCount] = addressString;
|
||||
availableCount++;
|
||||
}
|
||||
|
||||
sensorCount = availableCount;
|
||||
|
||||
return sensorCount;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user