From ce5f8895a92fda1d8d22a38d54d30cd74a326496 Mon Sep 17 00:00:00 2001 From: zheng_wenlong Date: Fri, 14 Jun 2019 14:07:03 +0900 Subject: add hudspeed --- app/Hudspeed.qml | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 app/Hudspeed.qml (limited to 'app/Hudspeed.qml') diff --git a/app/Hudspeed.qml b/app/Hudspeed.qml new file mode 100644 index 0000000..2b72e21 --- /dev/null +++ b/app/Hudspeed.qml @@ -0,0 +1,105 @@ +/* + * 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 Speed Demo" + width: 480 + height: 180 + visible: true + + property string api_str: "low-can" + property string verb_str: "subscribe" + property var msgid_enu: { "call":2, "retok":3, "reterr":4, "event":5 } + property string request_str: "" + property string status_str: "" + + property double speed_val: 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() + }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){ + + //get speed from low-can app + var property_name = message_json[2].event.split("/")[1] + if(property_name === "messages.vehicle.average.speed") { + speed_val = message_json[2].data.value + console.log ("speed_val: " + speed_val) + } + } + else{ + if (message_json[0] !== msgid_enu.retok) { + console.log ("Return value is not ok !") + return + } + } + /* refresh happen */ + } + active: true + } + //subscribe + function do_subscribe() { + request_str ='[' + msgid_enu.call + ',"99998","' + api_str +'/'+ verb_str +'",{ \"event\" : \"vehicle.average.speed\" } ]'; + websocket.sendTextMessage (request_str) + } + + Rectangle { + color: '#111111' + anchors.fill: parent + Label { + id: speed + anchors.left: parent.left + anchors.top: parent.top + text: speed_val.toFixed(0) + font.pixelSize: parent.height*4/5 + color: "white" + } + Label { + id: unit + anchors.right: parent.right + anchors.bottom: parent.bottom + text: 'MPH' + font.pixelSize: parent.height/5 + } + } +} + -- cgit 1.2.3-korg