38 lines
1.1 KiB
C
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;
|
|
};
|