回答編集履歴
4
説明文の修正
test
CHANGED
@@ -108,7 +108,7 @@
|
|
108
108
|
|
109
109
|
# ここで終了処理
|
110
110
|
|
111
|
-
#
|
111
|
+
# GPIO関連の入出力を全てこのスレッドで実行すれば、別スレッドからの同時アクセスの心配がない
|
112
112
|
|
113
113
|
GPIO.cleanup()
|
114
114
|
|
3
追記、終了時の処理の他の方法について
test
CHANGED
@@ -119,3 +119,13 @@
|
|
119
119
|
GPIO.cleanup()
|
120
120
|
|
121
121
|
```
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
追記:
|
126
|
+
|
127
|
+
他には、QThread.finished シグナルで終了時に呼び出す方法もありますが、
|
128
|
+
|
129
|
+
その場合も、メインスレッドでの実行になるので、
|
130
|
+
|
131
|
+
出来れば GPIO 関連の入出力はスレッド側で完結した方が良いです。
|
2
コメント修正
test
CHANGED
@@ -106,7 +106,9 @@
|
|
106
106
|
|
107
107
|
|
108
108
|
|
109
|
-
# ここで終了処理
|
109
|
+
# ここで終了処理
|
110
|
+
|
111
|
+
# サブスレッド側で実行すれば、別スレッドからの同時アクセスの心配がない
|
110
112
|
|
111
113
|
GPIO.cleanup()
|
112
114
|
|
1
コードの場所を追記>run()メソッド内
test
CHANGED
@@ -96,20 +96,24 @@
|
|
96
96
|
|
97
97
|
```python
|
98
98
|
|
99
|
-
|
99
|
+
def run(self):
|
100
|
-
|
101
|
-
... 省略 (ネストしたループの中断方法は別途考える)
|
102
100
|
|
103
101
|
|
104
102
|
|
105
|
-
|
103
|
+
while not self.isInterruptionRequested():
|
106
104
|
|
107
|
-
|
105
|
+
... 省略 (ネストしたループの中断方法は別途考える)
|
108
106
|
|
109
|
-
Motor_Stop()
|
110
107
|
|
111
|
-
time.sleep(1)
|
112
108
|
|
109
|
+
# ここで終了処理をする
|
110
|
+
|
113
|
-
GPIO.cleanup()
|
111
|
+
GPIO.cleanup()
|
112
|
+
|
113
|
+
Motor_Stop()
|
114
|
+
|
115
|
+
time.sleep(1)
|
116
|
+
|
117
|
+
GPIO.cleanup()
|
114
118
|
|
115
119
|
```
|