Files

38 lines
1.1 KiB
C

#pragma once
#include <Arduino.h>
struct Vector3State {
float x = 0, y = 0, z = 0;
uint8_t accuracy = 0;
unsigned long lastUpdateMs = 0;
};
struct ImuState {
bool online = false, valid = false;
uint8_t accuracy = 0;
float i = 0, j = 0, k = 0, real = 1;
float yawDegrees = 0, pitchDegrees = 0, rollDegrees = 0;
unsigned long lastUpdateMs = 0;
Vector3State linearAcceleration, angularVelocity, gravity;
uint8_t stabilityCode = 0;
String stability = "unknown";
unsigned long stabilityLastUpdateMs = 0;
};
struct GpsState {
bool online = false, fix = false;
uint32_t satellites = 0;
double latitude = 0, longitude = 0, altitudeMeters = 0;
double speedKph = 0, courseDegrees = 0;
uint16_t year = 0;
uint8_t month = 0, day = 0, hour = 0, minute = 0, second = 0;
uint32_t charactersProcessed = 0;
uint32_t sentencesPassed = 0;
uint32_t sentencesFailed = 0;
uint32_t baud = 0;
bool hdopValid = false;
double hdop = 0;
unsigned long locationAgeMs = ULONG_MAX, timeAgeMs = ULONG_MAX;
unsigned long lastByteMs = 0;
};