Skip to content

Commit 675c632

Browse files
committed
Added handleAdminMessage function for VL53L0XSensor.
1 parent d5cd274 commit 675c632

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

src/modules/Telemetry/Sensor/VL53L0XSensor.cpp

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,4 +125,47 @@ bool VL53L0XSensor::getMetrics(meshtastic_Telemetry *measurement)
125125

126126
return true;
127127
}
128+
129+
AdminMessageHandleResult VL53L0XSensor::handleAdminMessage(const meshtastic_MeshPacket &mp, meshtastic_AdminMessage *request,
130+
meshtastic_AdminMessage *response)
131+
{
132+
AdminMessageHandleResult result;
133+
result = AdminMessageHandleResult::NOT_HANDLED;
134+
135+
switch (request->which_payload_variant) {
136+
case meshtastic_AdminMessage_sensor_config_tag:
137+
if (!request->sensor_config.has_vl53l0x_config) {
138+
result = AdminMessageHandleResult::NOT_HANDLED;
139+
break;
140+
}
141+
142+
// Check for sensor accuracy setting
143+
if (request->sensor_config.vl53l0x_config.has_ranging_mode) {
144+
Adafruit_VL53L0X::VL53L0X_Sense_config_t newMode;
145+
if (request->sensor_config.vl53l0x_config.ranging_mode == 0) {
146+
newMode = Adafruit_VL53L0X::VL53L0X_SENSE_DEFAULT;
147+
} else if (request->sensor_config.vl53l0x_config.ranging_mode == 1) {
148+
newMode = Adafruit_VL53L0X::VL53L0X_SENSE_LONG_RANGE;
149+
} else if (request->sensor_config.vl53l0x_config.ranging_mode == 2) {
150+
newMode = Adafruit_VL53L0X::VL53L0X_SENSE_HIGH_SPEED;
151+
} else if (request->sensor_config.vl53l0x_config.ranging_mode == 3) {
152+
newMode = Adafruit_VL53L0X::VL53L0X_SENSE_HIGH_ACCURACY;
153+
} else {
154+
LOG_ERROR("%s: incorrect mode setting", sensorName);
155+
result = AdminMessageHandleResult::HANDLED;
156+
break;
157+
}
158+
this->setMode(newMode);
159+
}
160+
161+
result = AdminMessageHandleResult::HANDLED;
162+
break;
163+
164+
default:
165+
result = AdminMessageHandleResult::NOT_HANDLED;
166+
}
167+
168+
return result;
169+
}
170+
128171
#endif

src/modules/Telemetry/Sensor/VL53L0XSensor.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,7 @@ class VL53L0XSensor : public TelemetrySensor
2727
VL53L0XSensor();
2828
virtual bool getMetrics(meshtastic_Telemetry *measurement) override;
2929
virtual bool initDevice(TwoWire *bus, ScanI2C::FoundDevice *dev) override;
30+
AdminMessageHandleResult handleAdminMessage(const meshtastic_MeshPacket &mp, meshtastic_AdminMessage *request,
31+
meshtastic_AdminMessage *response) override;
3032
};
3133
#endif

0 commit comments

Comments
 (0)