summaryrefslogtreecommitdiffstats
path: root/navigation/navigation.h
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2022-06-07 14:40:57 -0400
committerScott Murray <scott.murray@konsulko.com>2022-07-04 21:23:16 +0000
commitfc9399e54dfd05a4307f954549ae58afbf57fb5e (patch)
tree22ea8bb39aac75e56bcf8ee2c44b8e9f354b07d2 /navigation/navigation.h
parent607f2b680891c25b51917d5b7f20bc3a3ffc6a65 (diff)
Reimplement navigation API with VIS signals
Reimplement the navigation interface with use of VIS signals. There is some impedance mismatching done between VIS signal notifications and the API Qt signals to avoid changing the clients signficantly for now. If the Qt demo lifetime is extended, this may be revisited to either switch to directly using the VehicleSignals interface or doing a more granular mapping that works better with the VSS schema / VIS. Bug-AGL: SPEC-4408 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ieab42daddadca60de634f414171a133af53938f5 (cherry picked from commit 4ce04ff30e753556cf9cb371780f2a873f6fedaa)
Diffstat (limited to 'navigation/navigation.h')
-rw-r--r--navigation/navigation.h68
1 files changed, 37 insertions, 31 deletions
diff --git a/navigation/navigation.h b/navigation/navigation.h
index 0606d1e..2c8a8ff 100644
--- a/navigation/navigation.h
+++ b/navigation/navigation.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019-2021 Konsulko Group
+ * Copyright (C) 2019-2022 Konsulko Group
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,40 +17,46 @@
#ifndef NAVIGATION_H
#define NAVIGATION_H
-#include <memory>
#include <QObject>
-#include <QtQml/QQmlListProperty>
+#include <QVariant>
+
+class VehicleSignals;
class Navigation : public QObject
{
- Q_OBJECT
-
- public:
- explicit Navigation(QObject * parent = Q_NULLPTR);
- virtual ~Navigation();
-
- Q_INVOKABLE void broadcastPosition(double lat, double lon, double drc, double dst);
- Q_INVOKABLE void broadcastRouteInfo(double lat, double lon, double route_lat, double route_lon);
- Q_INVOKABLE void broadcastStatus(QString state);
-
- // only support one waypoint for now
- Q_INVOKABLE void sendWaypoint(double lat, double lon);
-
- signals:
- void statusEvent(QVariantMap data);
- void positionEvent(QVariantMap data);
- void waypointsEvent(QVariantMap data);
-
- private:
- // slots
- void onConnected();
- void onDisconnected();
-
- const QStringList events {
- "status",
- "position",
- "waypoints",
- };
+ Q_OBJECT
+
+public:
+ explicit Navigation(VehicleSignals *vs, QObject *parent = Q_NULLPTR);
+ virtual ~Navigation();
+
+ Q_INVOKABLE void broadcastPosition(double lat, double lon, double drc, double dst);
+ Q_INVOKABLE void broadcastRouteInfo(double lat, double lon, double route_lat, double route_lon);
+ Q_INVOKABLE void broadcastStatus(QString state);
+
+ // only support one waypoint for now
+ Q_INVOKABLE void sendWaypoint(double lat, double lon);
+
+signals:
+ void statusEvent(QVariantMap data);
+ void positionEvent(QVariantMap data);
+ void waypointsEvent(QVariantMap data);
+
+private slots:
+ void onConnected();
+ void onAuthorized();
+ void onDisconnected();
+ void onSignalNotification(QString path, QString value, QString timestamp);
+
+private:
+ VehicleSignals *m_vs;
+ bool m_connected;
+ double m_latitude;
+ double m_longitude;
+ double m_heading;
+ double m_distance;
+ double m_dest_latitude;
+ double m_dest_longitude;
};
#endif // NAVIGATION_H