/* * Copyright (c) 2018 TOYOTA MOTOR CORPORATION * Copyright (C) 2016 The Qt Company Ltd. * * 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. */ import QtQuick 2.6 import QtQuick.Layouts 1.1 import QtQuick.Controls 2.0 import QtWebSockets 1.0 ApplicationWindow { id: window title: "HUD Tbt Demo" width: 1920 height: 1080 visible: true property string api_str: "naviapi" property string verb_subscribe: "subscribe" property string event_getdestdir: "naviapi/navicore_getdestdir" property var msgid_enu: { "call":2, "retok":3, "reterr":4, "event":5 } property string request_str: "" property string status_str: "" property double state: 0 WebSocket { id: websocket url: bindingAddress onStatusChanged: { if (websocket.status === WebSocket.Error){ console.log ("Error: " + websocket.errorString) websocket.active = false }else if (websocket.status === WebSocket.Open){ console.log ("Socket Open") do_subscribe("getdestdir") }else if (websocket.status === WebSocket.Closed){ console.log ("Socket closed") } } onTextMessageReceived: { var message_json = JSON.parse(message) console.log ("Raw response: " + message) console.log ("JSON response: " + message_json) if (message_json[0] === msgid_enu.event){ if(message_json[2].event === event_getdestdir) { var state = message_json[2].data.state tbt_board.state = state console.log ("state is ok !") } } else{ if (message_json[0] !== msgid_enu.retok) { console.log ("Return value is not ok !") return } } /* refresh happen */ } active: true } //subscribe function do_subscribe( event ) { request_str = '[' + msgid_enu.call + ',"99999","' + api_str+'/'+verb_subscribe + '", {"value":"' + event + '"} ]' console.log (request_str) websocket.sendTextMessage (request_str) } TbtBoard { id: tbt_board z: 1 visible: true anchors.fill: parent } }