Files
esphome-dev/esphome/components/gps/gps.cpp
T
Otto Winter 2c995cf145 Fix GPS time source. (#704)
* Change ESP32 default power_save_mode to light

* Update
2019-08-27 22:11:50 +02:00

49 lines
1.4 KiB
C++

#include "gps.h"
#include "esphome/core/log.h"
namespace esphome {
namespace gps {
static const char *TAG = "gps";
TinyGPSPlus &GPSListener::get_tiny_gps() { return this->parent_->get_tiny_gps(); }
void GPS::loop() {
while (this->available() && !this->has_time_) {
if (this->tiny_gps_.encode(this->read())) {
if (tiny_gps_.location.isUpdated()) {
ESP_LOGD(TAG, "Location:");
ESP_LOGD(TAG, " Lat: %f", tiny_gps_.location.lat());
ESP_LOGD(TAG, " Lon: %f", tiny_gps_.location.lng());
}
if (tiny_gps_.speed.isUpdated()) {
ESP_LOGD(TAG, "Speed:");
ESP_LOGD(TAG, " %f km/h", tiny_gps_.speed.kmph());
}
if (tiny_gps_.course.isUpdated()) {
ESP_LOGD(TAG, "Course:");
ESP_LOGD(TAG, " %f °", tiny_gps_.course.deg());
}
if (tiny_gps_.altitude.isUpdated()) {
ESP_LOGD(TAG, "Altitude:");
ESP_LOGD(TAG, " %f m", tiny_gps_.altitude.meters());
}
if (tiny_gps_.satellites.isUpdated()) {
ESP_LOGD(TAG, "Satellites:");
ESP_LOGD(TAG, " %d", tiny_gps_.satellites.value());
}
if (tiny_gps_.satellites.isUpdated()) {
ESP_LOGD(TAG, "HDOP:");
ESP_LOGD(TAG, " %.2f", tiny_gps_.hdop.hdop());
}
for (auto *listener : this->listeners_)
listener->on_update(this->tiny_gps_);
}
}
}
} // namespace gps
} // namespace esphome