diff options
Diffstat (limited to 'navigation')
-rw-r--r-- | navigation/CMakeLists.txt | 2 | ||||
-rw-r--r-- | navigation/navigation.cpp | 113 | ||||
-rw-r--r-- | navigation/navigation.h | 11 |
3 files changed, 5 insertions, 121 deletions
diff --git a/navigation/CMakeLists.txt b/navigation/CMakeLists.txt index bb972e0..6264623 100644 --- a/navigation/CMakeLists.txt +++ b/navigation/CMakeLists.txt @@ -8,7 +8,7 @@ add_library(qtappfw-navigation SHARED navigation.cpp) target_include_directories(qtappfw-navigation PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") target_include_directories(qtappfw-navigation PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}") -target_link_libraries(qtappfw-navigation qtappfw-core) +target_link_libraries(qtappfw-navigation Qt5::Qml) set_target_properties(qtappfw-navigation PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION 1 diff --git a/navigation/navigation.cpp b/navigation/navigation.cpp index e24df1a..6116637 100644 --- a/navigation/navigation.cpp +++ b/navigation/navigation.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019, 2020 Konsulko Group + * Copyright (C) 2019-2021 Konsulko Group * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,21 +16,12 @@ #include <QDebug> -#include "callmessage.h" -#include "eventmessage.h" -#include "messagefactory.h" -#include "messageengine.h" -#include "messageenginefactory.h" #include "navigation.h" -Navigation::Navigation (QUrl &url, QObject * parent) : +Navigation::Navigation (QObject * parent) : QObject(parent) { - m_mloop = MessageEngineFactory::getInstance().getMessageEngine(url); - QObject::connect(m_mloop.get(), &MessageEngine::connected, this, &Navigation::onConnected); - QObject::connect(m_mloop.get(), &MessageEngine::disconnected, this, &Navigation::onDisconnected); - QObject::connect(m_mloop.get(), &MessageEngine::messageReceived, this, &Navigation::onMessageReceived); } Navigation::~Navigation() @@ -39,124 +30,24 @@ Navigation::~Navigation() void Navigation::sendWaypoint(double lat, double lon) { - std::unique_ptr<Message> msg = MessageFactory::getInstance().createOutboundMessage(MessageId::Call); - if (!msg) - return; - - CallMessage* nmsg = static_cast<CallMessage*>(msg.get()); - QJsonObject parameter, point; - QJsonArray points; - point.insert("latitude", lat); - point.insert("longitude", lon); - points.append(point); - parameter.insert("points", points); - nmsg->createRequest("navigation", "broadcast_waypoints", parameter); - m_mloop->sendMessage(std::move(msg)); } void Navigation::broadcastPosition(double lat, double lon, double drc, double dst) { - std::unique_ptr<Message> msg = MessageFactory::getInstance().createOutboundMessage(MessageId::Call); - if (!msg) - return; - - CallMessage* nmsg = static_cast<CallMessage*>(msg.get()); - QJsonObject parameter; - - parameter.insert("position", "car"); - parameter.insert("latitude", lat); - parameter.insert("longitude", lon); - parameter.insert("direction", drc); - parameter.insert("distance", dst); - - nmsg->createRequest("navigation", "broadcast_position", parameter); - m_mloop->sendMessage(std::move(msg)); } void Navigation::broadcastRouteInfo(double lat, double lon, double route_lat, double route_lon) { - std::unique_ptr<Message> msg = MessageFactory::getInstance().createOutboundMessage(MessageId::Call); - if (!msg) - return; - - CallMessage* nmsg = static_cast<CallMessage*>(msg.get()); - QJsonObject parameter; - - parameter.insert("position", "route"); - parameter.insert("latitude", lat); - parameter.insert("longitude", lon); - parameter.insert("route_latitude", route_lat); - parameter.insert("route_longitude", route_lon); - - nmsg->createRequest("navigation", "broadcast_position", parameter); - m_mloop->sendMessage(std::move(msg)); } void Navigation::broadcastStatus(QString state) { - std::unique_ptr<Message> msg = MessageFactory::getInstance().createOutboundMessage(MessageId::Call); - if (!msg) - return; - - CallMessage* nmsg = static_cast<CallMessage*>(msg.get()); - QJsonObject parameter; - parameter.insert("state", state); - nmsg->createRequest("navigation", "broadcast_status", parameter); - m_mloop->sendMessage(std::move(msg)); } void Navigation::onConnected() { - QStringListIterator eventIterator(events); - - while (eventIterator.hasNext()) { - std::unique_ptr<Message> msg = MessageFactory::getInstance().createOutboundMessage(MessageId::Call); - if (!msg) - return; - - CallMessage* nmsg = static_cast<CallMessage*>(msg.get()); - QJsonObject parameter; - parameter.insert("value", eventIterator.next()); - nmsg->createRequest("navigation", "subscribe", parameter); - m_mloop->sendMessage(std::move(msg)); - } } void Navigation::onDisconnected() { - QStringListIterator eventIterator(events); - - while (eventIterator.hasNext()) { - std::unique_ptr<Message> msg = MessageFactory::getInstance().createOutboundMessage(MessageId::Call); - if (!msg) - return; - - CallMessage* nmsg = static_cast<CallMessage*>(msg.get()); - QJsonObject parameter; - parameter.insert("value", eventIterator.next()); - nmsg->createRequest("navigation", "unsubscribe", parameter); - m_mloop->sendMessage(std::move(msg)); - } -} - -void Navigation::onMessageReceived(std::shared_ptr<Message> msg) -{ - if (!msg) - return; - - if (msg->isEvent()) { - std::shared_ptr<EventMessage> emsg = std::static_pointer_cast<EventMessage>(msg); - if (emsg->eventApi() != "navigation") - return; - - if (emsg->eventName() == "position") { - emit positionEvent(emsg->eventData().toVariantMap()); - } - else if (emsg->eventName() == "status") { - emit statusEvent(emsg->eventData().toVariantMap()); - } - else if (emsg->eventName() == "waypoints") { - emit waypointsEvent(emsg->eventData().toVariantMap()); - } - } } diff --git a/navigation/navigation.h b/navigation/navigation.h index b1c0412..0606d1e 100644 --- a/navigation/navigation.h +++ b/navigation/navigation.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019, 2020 Konsulko Group + * Copyright (C) 2019-2021 Konsulko Group * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,18 +19,14 @@ #include <memory> #include <QObject> -#include <QJsonArray> #include <QtQml/QQmlListProperty> -class MessageEngine; -class Message; - class Navigation : public QObject { Q_OBJECT public: - explicit Navigation(QUrl &url, QObject * parent = Q_NULLPTR); + explicit Navigation(QObject * parent = Q_NULLPTR); virtual ~Navigation(); Q_INVOKABLE void broadcastPosition(double lat, double lon, double drc, double dst); @@ -46,10 +42,7 @@ class Navigation : public QObject void waypointsEvent(QVariantMap data); private: - std::shared_ptr<MessageEngine> m_mloop; - // slots - void onMessageReceived(std::shared_ptr<Message> msg); void onConnected(); void onDisconnected(); |