diff options
Diffstat (limited to 'vehicle-signals/vehiclesignals.h')
-rw-r--r-- | vehicle-signals/vehiclesignals.h | 87 |
1 files changed, 26 insertions, 61 deletions
diff --git a/vehicle-signals/vehiclesignals.h b/vehicle-signals/vehiclesignals.h index fd5fe9c..734cb27 100644 --- a/vehicle-signals/vehiclesignals.h +++ b/vehicle-signals/vehiclesignals.h @@ -1,63 +1,19 @@ /* - * Copyright (C) 2022 Konsulko Group + * Copyright (C) 2022,2023 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. + * SPDX-License-Identifier: Apache-2.0 */ #ifndef VEHICLESIGNALS_H #define VEHICLESIGNALS_H #include <QObject> -#include <QWebSocket> -// Class to read/hold VIS server configuration +#include "VehicleSignalsConfig.h" -class VehicleSignalsConfig -{ -public: - explicit VehicleSignalsConfig(const QString &hostname, - const unsigned port, - const QByteArray &clientKey, - const QByteArray &clientCert, - const QByteArray &caCert, - const QString &authToken, - bool verifyPeer = true); - explicit VehicleSignalsConfig(const QString &appname); - ~VehicleSignalsConfig() {}; - - QString hostname() { return m_hostname; }; - unsigned port() { return m_port; }; - QByteArray clientKey() { return m_clientKey; }; - QByteArray clientCert() { return m_clientCert; }; - QByteArray caCert() { return m_caCert; }; - QString authToken() { return m_authToken; }; - bool verifyPeer() { return m_verifyPeer; }; - bool valid() { return m_valid; }; - unsigned verbose() { return m_verbose; }; +class QtKuksaClient; -private: - QString m_hostname; - unsigned m_port; - QByteArray m_clientKey; - QByteArray m_clientCert; - QByteArray m_caCert; - QString m_authToken; - bool m_verifyPeer; - bool m_valid; - unsigned m_verbose; -}; - -// VIS signaling interface class +// VSS signal interface class class VehicleSignals : public QObject { @@ -70,30 +26,39 @@ public: Q_INVOKABLE void connect(); Q_INVOKABLE void authorize(); - Q_INVOKABLE void get(const QString &path); - Q_INVOKABLE void set(const QString &path, const QString &value); - Q_INVOKABLE void subscribe(const QString &path); + Q_INVOKABLE void get(const QString &path, const bool actuator = false); + + Q_INVOKABLE void set(const QString &path, const QString &value, const bool actuator = false); + Q_INVOKABLE void set(const QString &path, const qint32 value, const bool actuator = false); + Q_INVOKABLE void set(const QString &path, const qint64 value, const bool actuator = false); + Q_INVOKABLE void set(const QString &path, const quint32 value, const bool actuator = false); + Q_INVOKABLE void set(const QString &path, const quint64 value, const bool actuator = false); + Q_INVOKABLE void set(const QString &path, const float value, const bool actuator = false); + Q_INVOKABLE void set(const QString &path, const double value, const bool actuator = false); + + Q_INVOKABLE void subscribe(const QString &path, const bool actuator = false); + Q_INVOKABLE void subscribe(const QMap<QString, bool> &signals_); signals: void connected(); void authorized(); - void getSuccessResponse(QString path, QString value, QString timestamp); - void signalNotification(QString path, QString value, QString timestamp); void disconnected(); + void getSuccessResponse(QString path, QString value, QString timestamp); + void setErrorResponse(QString path, QString error); + void signalNotification(QString path, QString value, QString timestamp); private slots: void onConnected(); - void onError(QAbstractSocket::SocketError error); - void reconnect(); - void onDisconnected(); - void onTextMessageReceived(QString message); + void onGetResponse(QString path, QString value, QString timestamp); + void onSetResponse(QString path, QString error); + void onSubscribeResponse(QString path, QString value, QString timestamp); + void onSubscribeDone(const QMap<QString, bool> &signals_, bool canceled); private: VehicleSignalsConfig m_config; - QWebSocket m_websocket; - std::atomic<unsigned int> m_request_id; + QtKuksaClient *m_broker; - bool parseData(const QJsonObject &response, QString &path, QString &value, QString ×tamp); + void resubscribe(const QMap<QString, bool> &signals_); }; #endif // VEHICLESIGNALS_H |