-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRotorExperimentalRig.html
96 lines (85 loc) · 3.9 KB
/
RotorExperimentalRig.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>球杆模型控制实验</title>
<link rel="stylesheet" href="css/main.css">
</head>
<body>
<div class="main-div">
<canvas id="mainCanvas" width="1000" height="500"></canvas>
<br>
<div class="rowFlex-div">
<canvas id="knobCanvas" width="128" height="128"></canvas>
<canvas id="roundPanelCanvas" width="128" height="128"></canvas>
<select id="signalSelect" class="normal-select" onchange="setSignalType(this);openWaveWindow()">
<option value="1">转速信号</option>
<option value="2">加速度信号</option>
<option value="3">轴心位移X信号</option>
<option value="4">轴心位移Y信号</option>
</select>
<input type="button" class="normal-btn" value="打开波形面板" onclick="openWaveWindow()">
</div>
<div id="loadingDiv" class="loading-div">
<img class="loading-img" src="img/loading.gif" alt="loading">
</div>
</div>
<script src="js/VILibrary.js"></script>
<script src="js/jquery-3.1.1.min.js"></script>
<script src="js/layui/lay/dest/layui.all.js"></script>
<script src="js/three/three.js"></script>
<script src="js/three/MTLLoader.js"></script>
<script src="js/three/OBJLoader.js"></script>
<script src="js/three/controls/OrbitControls.js"></script>
<script src="js/three/ObjectControls.js"></script>
<script>
'use strict';
let layerOpenFlag = false;
let knobVI = new VILibrary.VI.KnobVI($('#knobCanvas'));
let roundPanelVI = new VILibrary.VI.RoundPanelVI($('#roundPanelCanvas'));
let RotorExperimentalRigVI = new VILibrary.VI.RotorExperimentalRigVI($('#mainCanvas'), true);
VILibrary.InnerObjects.bindDataLine(knobVI.id, RotorExperimentalRigVI.id, 0, 0);
VILibrary.InnerObjects.bindDataLine(RotorExperimentalRigVI.id, roundPanelVI.id, 4, 0);
knobVI.setDataRange(0, 6000, 2399); //转速表,调节转子试验台转速
roundPanelVI.setRange(0, 100, 'Hz', '频率');
function setSignalType (select) {
RotorExperimentalRigVI.signalType = Number(select.value);
}
function openWaveWindow () {
if (layerOpenFlag) {
return
}
layer.open({
type: 1,
title: '相关数据波形图',
area: ['auto', 'auto'],
shade: 0,
maxmin: true,
moveOut: true,
offset: 'lt',
closeBtn: false,
zIndex: layer.zIndex,
content: '<div class="rowFlex-div"><div class="columnFlex-div">' +
'<span>信号波形</span><canvas id="signalCanvas" width="500" height="200"></canvas>' +
'<span>信号频谱</span><canvas id="frequencyCanvas" width="500" height="200"></canvas>' +
'</div><div class="columnFlex-div">' +
'<span>轴心轨迹</span><canvas id="orbitCanvas" width="430" height="430"></canvas></div></div>',
success: function (layero) {
layer.setTop(layero);
layerOpenFlag = true;
let signalWaveVI = new VILibrary.VI.WaveVI($('#signalCanvas'));
let frequencyWaveVI = new VILibrary.VI.WaveVI($('#frequencyCanvas'));
let orbitWaveVI = new VILibrary.VI.OrbitWaveVI($('#orbitCanvas'));
signalWaveVI.setAxisRangX(0, RotorExperimentalRigVI.dataLength / 8192);//采样频率为8192
signalWaveVI.setLabel('时间/s', '幅值');
frequencyWaveVI.setAxisRangX(0, 4096);
frequencyWaveVI.setLabel('频率/Hz', '幅值');
VILibrary.InnerObjects.bindDataLine(RotorExperimentalRigVI.id, signalWaveVI.id, 1, 0);
VILibrary.InnerObjects.bindDataLine(RotorExperimentalRigVI.id, frequencyWaveVI.id, 2, 0);
VILibrary.InnerObjects.bindDataLine(RotorExperimentalRigVI.id, orbitWaveVI.id, 3, 0);
}
});
}
</script>
</body>
</html>