added gps support

added compass support
added ui elements for gps and compass
added support for writing sensor data
This commit is contained in:
2017-03-21 16:27:14 +01:00
parent c7c94cbebe
commit b0712ec005
24 changed files with 586 additions and 30 deletions

View File

@@ -17,7 +17,16 @@ PlotTurns::PlotTurns(QWidget *parent) : QWidget(parent) {
void PlotTurns::add(const Timestamp ts, const TurnData& data) {
(void) ts;
this->data = data;
this->turnData = data;
static int i = 0;
if (++i % 4 == 0) {
QMetaObject::invokeMethod(this, "update", Qt::QueuedConnection);
}
}
void PlotTurns::add(const Timestamp ts, const CompassData& data) {
(void) ts;
this->compassData = data;
static int i = 0;
if (++i % 4 == 0) {
QMetaObject::invokeMethod(this, "update", Qt::QueuedConnection);
@@ -35,17 +44,26 @@ void PlotTurns::paintEvent(QPaintEvent* evt) {
const float cx = width() / 2;
const float cy = height() / 2;
const float x1 = cx + std::cos(data.radSinceStart-M_PI_2) * s1;
const float y1 = cy + std::sin(data.radSinceStart-M_PI_2) * s1;
p.fillRect(0,0,width(),height(),QColor(255,255,255,192));
p.setPen(Qt::black);
p.drawRect(0,0,width()-1,height()-1);
const QPen pen(Qt::black, 2);
p.setPen(pen);
// turn [relative]
const float x1 = cx + std::cos(turnData.radSinceStart-M_PI_2) * s1;
const float y1 = cy + std::sin(turnData.radSinceStart-M_PI_2) * s1;
const QPen pen1(Qt::black, 2);
p.setPen(pen1);
p.drawLine(cx, cy, x1, y1);
// compass [absolute]
if (compassData.isValid()) {
const float x2 = cx + std::cos(compassData.azimuth) * s1;
const float y2 = cy + std::sin(compassData.azimuth) * s1;
const QPen pen2(Qt::gray, 2);
p.setPen(pen2);
p.drawLine(cx, cy, x2, y2);
}
p.end();
}