summaryrefslogtreecommitdiffstats
path: root/navigation/navigation.h
diff options
context:
space:
mode:
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>2019-11-14 17:09:13 +0000
committerGerrit Code Review <gerrit@automotivelinux.org>2019-11-14 17:09:13 +0000
commitdaecb6694b920295b0d942e70eec53ed96d43c4e (patch)
tree7d159c92b881f4100ecc00b1e59e3b757cb29efe /navigation/navigation.h
parentea825202af319188c9b9acbd8330eb65fa230f7b (diff)
parent00fa3eefa5f961ac60d9ae6bc6d732cccbce76db (diff)
Merge "libqtappfw: add initial navigation support" into halibut
Diffstat (limited to 'navigation/navigation.h')
-rw-r--r--navigation/navigation.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/navigation/navigation.h b/navigation/navigation.h
new file mode 100644
index 0000000..09fae3f
--- /dev/null
+++ b/navigation/navigation.h
@@ -0,0 +1,65 @@
+ /*
+ * Copyright (C) 2019 Konsulko Group
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef NAVIGATION_H
+#define NAVIGATION_H
+
+#include <QDebug>
+#include <QObject>
+#include <QJsonArray>
+#include <QtQml/QQmlListProperty>
+
+#include "messageengine.h"
+#include "navigationmessage.h"
+#include "responsemessage.h"
+
+class Navigation : public QObject
+{
+ Q_OBJECT
+
+ public:
+ explicit Navigation(QUrl &url, 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);
+ Q_INVOKABLE void broadcastWaypoints(QJsonObject waypoints);
+
+ // 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:
+ MessageEngine *m_mloop;
+
+ // slots
+ void onMessageReceived(MessageType, Message*);
+ void onConnected();
+ void onDisconnected();
+
+ const QStringList events {
+ "status",
+ "position",
+ "waypoints",
+ };
+};
+
+#endif // NAVIGATION_H