diff options
author | zheng_wenlong <wenlong_zheng@nexty-ele.com> | 2019-04-09 10:38:35 +0900 |
---|---|---|
committer | zheng_wenlong <wenlong_zheng@nexty-ele.com> | 2019-04-10 10:02:52 +0900 |
commit | 2b54cb6f5797df36d14df55cd685a0d61ccd7001 (patch) | |
tree | b1b816b03f29cbf4675da5d3812eff8682238c4c /app/Tacho.qml |
Add demo3 tachometer source codeicefish_8.99.5icefish_8.99.4icefish_8.99.3icefish_8.99.2icefish_8.99.1icefish/8.99.5icefish/8.99.4icefish/8.99.3icefish/8.99.2icefish/8.99.1halibut_8.0.6halibut_8.0.5halibut_8.0.4halibut_8.0.3halibut_8.0.2halibut_8.0.1halibut_8.0.0halibut_7.99.3halibut_7.99.2halibut_7.99.1halibut/8.0.6halibut/8.0.5halibut/8.0.4halibut/8.0.3halibut/8.0.2halibut/8.0.1halibut/8.0.0halibut/7.99.3halibut/7.99.2halibut/7.99.18.99.58.99.48.99.38.99.28.99.18.0.68.0.58.0.48.0.38.0.28.0.18.0.07.99.37.99.27.99.1halibut
Add demo3 tachometer source code for cluster mode.
[Patch Set 2] Update LICENSE file.
Change-Id: Icac1ec8a08056988b519982d77d15a1eb5da8169
BUG-AGL: SPEC-2261
Signed-off-by: zheng_wenlong <wenlong_zheng@nexty-ele.com>
Diffstat (limited to 'app/Tacho.qml')
-rw-r--r-- | app/Tacho.qml | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/app/Tacho.qml b/app/Tacho.qml new file mode 100644 index 0000000..a345de9 --- /dev/null +++ b/app/Tacho.qml @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2017-2019 TOYOTA MOTOR CORPORATION + * + * 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 QtWebSockets 1.0 + +Item { + property real imgwidth: 500 + property real imgheight: 500 + + property real tacho: enginespeed === undefined ? 0 : (enginespeed > 9000 ? 9 : enginespeed*9/9000) + + Image { + width: imgwidth + height: imgheight + fillMode: Image.PreserveAspectFit + smooth: true + asynchronous: true + source: "images/meters/tacho_center.svg" + } + Image { + width: imgwidth + height: imgheight + fillMode: Image.PreserveAspectFit + smooth: true + asynchronous: true + source: "images/meters/tacho_frame.svg" + } + Image { + width: imgwidth + height: imgheight + fillMode: Image.PreserveAspectFit + smooth: true + asynchronous: true + source: "images/meters/tacho_scale.svg" + } + Shift { + percent: imgwidth/480 + anchors.right: parent.right + anchors.rightMargin: (wshift == "N" || wshift == "P" ||wshift == "R" )? (imgwidth-width)/2+25 : (imgwidth-width)/2-5 + anchors.bottom: parent.bottom + anchors.bottomMargin: 100 + spacing: -10 + } + Canvas { + id: canvas + property real engleoffset: Math.PI*3/2.04 + property int linewidth: 90 + anchors.centerIn: parent + width: 420 + height: 420 + visible: tacho >= 0.05 + rotation: 135 + opacity: 0.5 + onPaint: { + var ctx = getContext("2d") + var gradient = ctx.createLinearGradient(0, 0, canvas.width, canvas.height) + gradient.addColorStop(0.0, Qt.rgba(1.0, 1.0, 1.0, 1.0)) + gradient.addColorStop(1.0, Qt.rgba(1.0, 1.0, 1.0, 0.0)) + + ctx.clearRect(0, 0, canvas.width, canvas.height); + ctx.beginPath(); + ctx.lineWidth = linewidth; + ctx.strokeStyle = gradient + ctx.arc(canvas.width/2, + canvas.height/2, + (canvas.width-ctx.lineWidth)/2, + 0.1, + engleoffset*(tacho/9) + (tacho < 3 ? 0.1 : (tacho < 7 ? 0.05 : 0.0)), + false) + ctx.stroke() + ctx.closePath() + } + } + Image { + width: imgwidth + height: imgheight + fillMode: Image.PreserveAspectFit + smooth: true + asynchronous: true + rotation: 28.8*tacho + source: "images/meters/tacho_hand.svg" + } + + onTachoChanged: { + canvas.requestPaint() + } +} |