add visa card, start websocket inplementation
authorPhilippe Lelong <lelong.ph@meltemus.com>
Wed, 14 Dec 2016 15:56:14 +0000 (16:56 +0100)
committerJosé Bollo <jose.bollo@iot.bzh>
Fri, 16 Dec 2016 09:05:20 +0000 (10:05 +0100)
HomeScreen/HomeScreen.pro
HomeScreen/qml/Home.qml
HomeScreen/qml/images/Home/home.qrc
HomeScreen/qml/images/Home/visa.png [new file with mode: 0755]
HomeScreen/src2/usermanagement.cpp
HomeScreen/src2/usermanagement.h

index ac4f2d2..2f08a0f 100644 (file)
@@ -14,7 +14,7 @@
 
 TEMPLATE = app
 TARGET = HomeScreen
-QT = qml quick dbus
+QT = qml quick widgets dbus websockets
 CONFIG += c++11
 
 include(../interfaces/interfaces.pri)
index c4951fe..aadf6df 100644 (file)
@@ -41,6 +41,17 @@ Item {
         source: './images/B14-90.png'
         visible: false
     }
+    Image {
+        id: visa
+        width: 200
+        height: 124
+        anchors.right: parent.right
+        anchors.rightMargin: 20
+        anchors.top: parent.top
+        anchors.topMargin: 20
+        source: './images/visa.png'
+        visible: false
+    }
     Item {
         id: hello
         anchors.horizontalCenter: parent.horizontalCenter
@@ -84,6 +95,9 @@ Item {
         sign90.visible = show
     }
 
+    function showVisa(show) {
+        visa.visible = show
+    }
     GridView {
         anchors.centerIn: parent
         width: cellHeight * 3
index 4a112ce..14e2828 100644 (file)
@@ -20,5 +20,6 @@
         <file>HMI_AppLauncher_Settings_Active-01.png</file>
         <file>HMI_AppLauncher_Settings_Inactive-01.png</file>
         <file>B14-90.png</file>
+        <file>visa.png</file>
     </qresource>
 </RCC>
diff --git a/HomeScreen/qml/images/Home/visa.png b/HomeScreen/qml/images/Home/visa.png
new file mode 100755 (executable)
index 0000000..1c854bc
Binary files /dev/null and b/HomeScreen/qml/images/Home/visa.png differ
index bbbbac1..f973001 100644 (file)
@@ -11,6 +11,7 @@ UserManagement::UserManagement(QObject *home, QObject *shortcutArea, QObject *st
     connect(&timerTest, SIGNAL(timeout()), this, SLOT(slot_timerTest()));
     timerTest.setSingleShot(false);
     timerTest.start(5000);
+    connectWebsockets(QStringLiteral("wss://echo.websocket.org"));
 }
 void UserManagement::slot_timerTest()
 {
@@ -25,10 +26,37 @@ void UserManagement::slot_timerTest()
     if(currentLanguage == "fr") {
         QLocale::setDefault(QLocale("fr_FR"));
         QMetaObject::invokeMethod(home, "showSign90", Q_ARG(QVariant, true));
+        QMetaObject::invokeMethod(home, "showVisa", Q_ARG(QVariant, false));
         QMetaObject::invokeMethod(home, "showHello", Q_ARG(QVariant, "Bonjour José!"));
     } else {
         QLocale::setDefault(QLocale("en_US"));
         QMetaObject::invokeMethod(home, "showSign90", Q_ARG(QVariant, false));
+        QMetaObject::invokeMethod(home, "showVisa", Q_ARG(QVariant, true));
         QMetaObject::invokeMethod(home, "showHello", Q_ARG(QVariant, "Hello José!"));
     }
 }
+void UserManagement::connectWebsockets(const QUrl &url)
+{
+    QSslConfiguration config = QSslConfiguration::defaultConfiguration();
+    config.setProtocol(QSsl::SecureProtocols);
+    webSocket.setSslConfiguration(config);
+    connect(&webSocket, &QWebSocket::connected, this, &UserManagement::onConnected);
+    connect(&webSocket, &QWebSocket::disconnected, this, &UserManagement::onClosed);
+    webSocket.open(QUrl(url));
+}
+void UserManagement::onConnected()
+{
+    connect(&webSocket, &QWebSocket::textMessageReceived,
+            this, &UserManagement::onTextMessageReceived);
+    webSocket.sendTextMessage(QStringLiteral("Hello, world!"));
+
+}
+void UserManagement::onTextMessageReceived(QString message)
+{
+    qWarning()<<"message received:"<<message;
+}
+
+void UserManagement::onClosed()
+{
+    qWarning()<<"webSocket closed";
+}
index 804df22..099c991 100644 (file)
@@ -4,6 +4,7 @@
 #include <QObject>
 #include "applicationmodel.h"
 #include <QTimer>
+#include <QtWebSockets/QWebSocket>
 class UserManagement : public QObject
 {
     Q_OBJECT
@@ -14,6 +15,9 @@ signals:
 
 public slots:
     void slot_timerTest();
+    void onConnected();
+    void onClosed();
+    void onTextMessageReceived(QString message);
 private:
     QObject *home;
     QObject *shortcutArea;
@@ -21,6 +25,8 @@ private:
     ApplicationModel *appModel;
     QTimer timerTest;
     QString currentLanguage;
+    QWebSocket webSocket;
+    void connectWebsockets(const QUrl &url);
 };
 
 #endif // USERMANAGEMENT_H