質問編集履歴
3
図の添付
test
CHANGED
File without changes
|
test
CHANGED
@@ -11,6 +11,8 @@
|
|
11
11
|
|
12
12
|
|
13
13
|
一番初めにjudgeの部分で取得したold_mDATAZ()の値よりも下の値が取得された際は前後のデータを比較し、閾値よりも差が大きければ前の値を補間することに成功しましたが、データの値が上昇に転じると上昇直前の値が常に出力されてしまいます。
|
14
|
+
|
15
|
+
![イメージ説明](2992727f2aa189c47575ab694c8262c7.jpeg)
|
14
16
|
|
15
17
|
|
16
18
|
|
2
文法修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
一番初めにjudgeの部分で取得したold_mDATAZ()の値よりも下の値が取得された際は前後のデータを比較し、閾値よりも差が大きければ前の値を補間することに成功しましたが、
|
13
|
+
一番初めにjudgeの部分で取得したold_mDATAZ()の値よりも下の値が取得された際は前後のデータを比較し、閾値よりも差が大きければ前の値を補間することに成功しましたが、データの値が上昇に転じると上昇直前の値が常に出力されてしまいます。
|
14
14
|
|
15
15
|
|
16
16
|
|
1
改善後の問題
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
|
13
|
+
一番初めにjudgeの部分で取得したold_mDATAZ()の値よりも下の値が取得された際は前後のデータを比較し、閾値よりも差が大きければ前の値を補間することに成功しましたが、old_mDATAZ()の値よりも少し上の値が取得されると比較を行わず、常に同じ値が出力されてしまいます。
|
14
14
|
|
15
15
|
|
16
16
|
|
@@ -20,9 +20,17 @@
|
|
20
20
|
|
21
21
|
```ここに言語名を入力
|
22
22
|
|
23
|
+
Dim judge as integer = 0//グローバル変数
|
24
|
+
|
25
|
+
|
26
|
+
|
23
27
|
Private Sub AddData(ByVal str As String)
|
24
28
|
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
|
25
|
-
'///取得データ処理関数
|
33
|
+
'///取得データ処理関数
|
26
34
|
|
27
35
|
STX = Asc(Strings.Mid(str, 2, 1)) 'STX
|
28
36
|
|
@@ -30,7 +38,7 @@
|
|
30
38
|
|
31
39
|
'データ入力
|
32
40
|
|
33
|
-
For i = 1 To chlength * 6 Step 1
|
41
|
+
For i = 1 To chlength * 6 Step 1
|
34
42
|
|
35
43
|
rDATA(i) = Asc(Strings.Mid(str, i + 2, 1))
|
36
44
|
|
@@ -44,46 +52,66 @@
|
|
44
52
|
|
45
53
|
Index = 1
|
46
54
|
|
47
|
-
|
48
|
-
|
49
|
-
'アスキーデータを数値に変換
|
55
|
+
'アスキーデータを数値に変換
|
50
56
|
|
51
57
|
For i = 1 To chlength * 6 Step 6
|
52
58
|
|
59
|
+
|
60
|
+
|
53
61
|
mDATAZ(Index) = (rDATA(i) - &H41) * 256 + (rDATA(i + 1) - &H41) * 16 + (rDATA(i + 2) - &H41)
|
54
62
|
|
63
|
+
|
64
|
+
|
55
|
-
Index = Index + 1
|
65
|
+
Index = Index + 1
|
56
66
|
|
57
67
|
Next
|
58
68
|
|
59
69
|
|
60
70
|
|
61
|
-
|
71
|
+
If judge = 0 Then '///スタート時だけ別途取得の必要あり(初回のみ動作)
|
62
72
|
|
73
|
+
For s = 1 To chlength Step 1
|
74
|
+
|
63
|
-
|
75
|
+
old_mDATAZ(s) = mDATAZ(s)
|
76
|
+
|
77
|
+
Next
|
78
|
+
|
79
|
+
judge = 1
|
80
|
+
|
81
|
+
End If
|
64
82
|
|
65
83
|
|
66
84
|
|
67
|
-
mDATAZ(q) = old_mDATAZ(q)
|
68
85
|
|
69
|
-
End If
|
70
86
|
|
71
|
-
|
87
|
+
For q = 1 To chlength Step 1
|
72
88
|
|
73
89
|
|
74
90
|
|
75
|
-
|
91
|
+
hikaku1(q) = mDATAZ(q) - old_mDATAZ(q)
|
76
92
|
|
93
|
+
|
94
|
+
|
95
|
+
If hikaku1(q) > TrackBar1.Value Then//前後のデータを比較
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
mDATAZ(q) = old_mDATAZ(q)//閾値以上の差があれば前のデータを補間
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
End If
|
104
|
+
|
105
|
+
|
106
|
+
|
77
|
-
old_mDATAZ(
|
107
|
+
old_mDATAZ(q) = mDATAZ(q)
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
|
78
114
|
|
79
115
|
Next
|
80
116
|
|
81
117
|
```
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
### 試したこと
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
計測第一個目の値がないため比較できていないとは思いますが、どのように記述すればよいかわかりません。
|