RoboidControl-cpp/DistanceSensor.cpp
2024-11-29 12:56:59 +01:00

36 lines
822 B
C++

#include "DistanceSensor.h"
// #include "NetworkPerception.h"
#include "Messages.h"
#include <math.h>
DistanceSensor::DistanceSensor() {
this->type = Thing::DistanceSensorType;
this->distance = INFINITY;
this->triggerDistance = 1.0F;
}
DistanceSensor::DistanceSensor(float triggerDistance) : DistanceSensor() {
this->triggerDistance = triggerDistance;
}
float DistanceSensor::GetDistance() {
if (distance < minRange || distance > maxRange)
return -1; // invalid distance
return distance;
};
bool DistanceSensor::ObjectNearby() {
if (distance < minRange || distance > maxRange)
return false;
bool isOn = distance <= triggerDistance;
return isOn;
}
void DistanceSensor::ProcessBytes(unsigned char *bytes) {
unsigned char ix = 0;
this->distance = Messages::ReceiveFloat16(bytes, &ix);
}