diff options
author | Scott Murray <scott.murray@konsulko.com> | 2021-12-16 15:07:44 -0500 |
---|---|---|
committer | Scott Murray <scott.murray@konsulko.com> | 2021-12-16 16:03:51 -0500 |
commit | fad93b42c285ffb463e9494070f40d3b339d732f (patch) | |
tree | 6ae60914c578bd34b8ebbde9b271859e8b87ab65 /signal-composer | |
parent | fe20f1b029f67dee1f790ade7a9114086f2abd38 (diff) |
Initial rework to replace app framework usage
Changes:
- Remove "core" code related to WebSocket messaging for the app
framework.
- Stub out hvac, navigation, network, and weather interfaces. This
allows building several of the demo applications without modification
for now. The network interface will definitely be reused to plumb
in a new connman-glib library derived from the previous network
binding. The others may potentially be reused to plumb in other
new backend implementations.
- Update the Network interface object constructor arguments to add a
agent registration flag. This prepares for the connman-glib
switch and means users will not need to be updated twice.
- Update the Bluetooth interface to use a new bluez-glib library that
is derived from the previous Bluetooth binding. This has been
successfully tested with a the Settings application.
- Remove signal-composer and voice API interface code as there are no
direct replacements planned. The signal-composer interface was
effectively exposing the binding events, so has little reuse
potential with a new backend. For the voice interface, if some form
of Alexa support becomes desirable, it can potentially be brought
back for adaptation if required.
- Disable compilation of the remaining interfaces for now. Some like
map, pbap, and mediaplayer are very likely to be used as the basis
for updating their associated applications, so keeping the code for
the planned iterative development seems easier.
- Updated copyright lines in all touched files.
Bug-AGL: SPEC-4182
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: Ib717ac8ac68ec457eaee74755dcf9d4f36b79d12
Diffstat (limited to 'signal-composer')
-rw-r--r-- | signal-composer/CMakeLists.txt | 19 | ||||
-rw-r--r-- | signal-composer/qtappfw-signal-composer.pc.in | 12 | ||||
-rw-r--r-- | signal-composer/signalcomposer.cpp | 102 | ||||
-rw-r--r-- | signal-composer/signalcomposer.h | 60 |
4 files changed, 0 insertions, 193 deletions
diff --git a/signal-composer/CMakeLists.txt b/signal-composer/CMakeLists.txt deleted file mode 100644 index e8c51e3..0000000 --- a/signal-composer/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ - -CONFIGURE_FILE("qtappfw-signal-composer.pc.in" "qtappfw-signal-composer.pc" @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-signal-composer.pc - DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig) - -add_library(qtappfw-signal-composer SHARED signalcomposer.cpp) - -target_include_directories(qtappfw-signal-composer PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") -target_include_directories(qtappfw-signal-composer PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}") - -target_link_libraries(qtappfw-signal-composer qtappfw-core) -set_target_properties(qtappfw-signal-composer PROPERTIES - VERSION ${PROJECT_VERSION} - SOVERSION 1 - PUBLIC_HEADER signalcomposer.h) - -install(TARGETS qtappfw-signal-composer - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-signal-composer) diff --git a/signal-composer/qtappfw-signal-composer.pc.in b/signal-composer/qtappfw-signal-composer.pc.in deleted file mode 100644 index f00ba19..0000000 --- a/signal-composer/qtappfw-signal-composer.pc.in +++ /dev/null @@ -1,12 +0,0 @@ -prefix=@DEST_DIR@ -exec_prefix=${prefix} -libdir=${prefix}/lib -includedir=${prefix}/include - -Name: qtappfw-signal-composer -Description: Library wrapping AGL AppFW signal composer data in Qt objects -Version: 1.0.0 - -Requires: Qt5Qml -Libs: -L${libdir} -lqtappfw-signal-composer -Cflags: -I${includedir}/qtappfw-signal-composer diff --git a/signal-composer/signalcomposer.cpp b/signal-composer/signalcomposer.cpp deleted file mode 100644 index d10bcc1..0000000 --- a/signal-composer/signalcomposer.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 2018-2020 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. - */ - -#include <QDebug> - -#include "callmessage.h" -#include "eventmessage.h" -#include "messagefactory.h" -#include "messageengine.h" -#include "messageenginefactory.h" -#include "signalcomposer.h" - - -SignalComposer::SignalComposer (QUrl &url, QObject * parent) : - QObject(parent) -{ - m_mloop = MessageEngineFactory::getInstance().getMessageEngine(url); - QObject::connect(m_mloop.get(), &MessageEngine::connected, this, &SignalComposer::onConnected); - QObject::connect(m_mloop.get(), &MessageEngine::disconnected, this, &SignalComposer::onDisconnected); - QObject::connect(m_mloop.get(), &MessageEngine::messageReceived, this, &SignalComposer::onMessageReceived); -} - -SignalComposer::~SignalComposer() -{ -} - -void SignalComposer::onConnected() -{ - QStringListIterator eventIterator(events); - - while (eventIterator.hasNext()) { - std::unique_ptr<Message> msg = MessageFactory::getInstance().createOutboundMessage(MessageId::Call); - if (!msg) - return; - - CallMessage* tmsg = static_cast<CallMessage*>(msg.get()); - QJsonObject parameter; - parameter.insert("signal", eventIterator.next()); - tmsg->createRequest("signal-composer", "subscribe", parameter); - m_mloop->sendMessage(std::move(msg)); - } -} - -void SignalComposer::onDisconnected() -{ - QStringListIterator eventIterator(events); - - while (eventIterator.hasNext()) { - std::unique_ptr<Message> msg = MessageFactory::getInstance().createOutboundMessage(MessageId::Call); - if (!msg) - return; - - CallMessage* tmsg = static_cast<CallMessage*>(msg.get()); - QJsonObject parameter; - parameter.insert("signal", eventIterator.next()); - tmsg->createRequest("signal-composer", "unsubscribe", parameter); - m_mloop->sendMessage(std::move(msg)); - } -} - -void SignalComposer::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() != "signal-composer") - return; - - QJsonObject data = emsg->eventData(); - QString uid = data.value("uid").toString(); - QVariant v = data.value("value").toVariant(); - QString value; - if(v.canConvert(QMetaType::QString)) - value = v.toString(); - else - qWarning() << "Unconvertible value type for uid " << uid; - QString units = data.value("unit").toString(); - v = data.value("timestamp").toVariant(); - quint64 timestamp = 0; - if(v.canConvert(QMetaType::ULongLong)) - timestamp = v.toULongLong(); - else - qWarning() << "Unconvertible timestamp type for uid " << uid; - - emit signalEvent(uid, value, units, timestamp); - } -} diff --git a/signal-composer/signalcomposer.h b/signal-composer/signalcomposer.h deleted file mode 100644 index a18f5a8..0000000 --- a/signal-composer/signalcomposer.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2019, 2020 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 SIGNALCOMPOSER_H -#define SIGNALCOMPOSER_H - -#include <memory> -#include <QObject> -#include <QJsonArray> - -class MessageEngine; -class Message; - -class SignalComposer : public QObject -{ - Q_OBJECT - - public: - explicit SignalComposer(QUrl &url, QObject * parent = Q_NULLPTR); - virtual ~SignalComposer(); - - signals: - void signalEvent(QString uid, QString value, QString units, quint64 timestamp); - - private: - std::shared_ptr<MessageEngine> m_mloop; - - void onConnected(); - void onDisconnected(); - void onMessageReceived(std::shared_ptr<Message>); - - const QStringList events { - "event.vehicle.speed", - "event.engine.speed", - "event.cruise.enable", - "event.cruise.resume", - "event.cruise.set", - "event.cruise.cancel", - "event.cruise.limit", - "event.cruise.distance", - "event.lane_departure_warning.enable", - "event.info", - "event.horn" - }; -}; - -#endif // SIGNALCOMPOSER_H |