##やろうとしていること
CSVファイルにデータが追加されたことを判定したい。
データが更新されない限り、LEDの点滅を続けるプログラムを作成したい。
csvファイルの更新は別プログラムで1分おきに行います。
⇒この別プログラム内で、更新の判定を行うことはしません。
##判定の考え方
csvファイルは、100個のデータが保存されています。
①最初にcsvファイルを作成すると、最下行(100行目)にデータが記録されます。
※1~99行目までは、0が入力されるようにしています。
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
(省略)
2019, 11, 25, 11, 11, 26.5,
②データが0の個数を数えて、前後の個数を比較することで、判定しようと考えています。
##今のプログラム
0の個数をカウントし、1つ前の個数をprev_y_sum
現在の個数をy_sumとして、
同じ個数であれば、データは更新されていないと判定し、LEDを点滅
という考えで作成しています。
python
1def setup_led(): 2 GPIO.setmode(GPIO.BCM) 3 GPIO.setup(19, GPIO.OUT) 4 GPIO.output(19, GPIO.LOW) 5 6def read_temp(): 7 global prev_y_sum 8 prev_y_sum = y_bool.sum() 9 10 11def LED(): 12 print (y_sum) 13 print (prev_y_sum) 14 15if __name__ == '__main__': 16 try: 17 setup_led() 18 read_temp() 19 LED() 20 except KeyboardInterrupt: 21 pass 22 GPIO.cleanup()
##困っていること
↑のプログラムを実行すると、
次のエラーが発生してしまいます。
prev_y_sumをどのように設定すれば良いのかが分からず困っています。
test
1 if prev_y_sum == y_sum: 2UnboundLocalError: local variable 'prev_y_sum' referenced before assignment
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。