From 9980658adeb0f8c397bf089d4cafb447621537df Mon Sep 17 00:00:00 2001
From: tillraab <till.raab@student.uni-tuebingen.de>
Date: Fri, 10 Feb 2023 09:50:20 +0100
Subject: [PATCH] ???

---
 grid_recorder.py | 59 +++++++++++++++++++++++++++++++++++-------------
 1 file changed, 43 insertions(+), 16 deletions(-)

diff --git a/grid_recorder.py b/grid_recorder.py
index 541628e..ac35116 100644
--- a/grid_recorder.py
+++ b/grid_recorder.py
@@ -18,7 +18,7 @@ except:
     pass
 
 class Configuration():
-    def __init__(self):
+    def __init__(self, recording_duration = None):
         # recording setup
         self.channels = None
         self.samplerate = None
@@ -34,7 +34,17 @@ class Configuration():
         # timestamps
         self.now = datetime.datetime.now()
         self.start_clock = [datetime.datetime.now().hour, datetime.datetime.now().minute]
-        self.end_clock = None
+        if not recording_duration == None:
+            self.end_clock = [datetime.datetime.now().hour + recording_duration[0], datetime.datetime.now().minute + recording_duration[1]]
+            if self.end_clock[1] >= 60:
+                self.end_clock[0] += 1
+                self.end_clock[1] -= 60
+            if self.end_clock[0] >= 24:
+                self.end_clock[0] -= 24
+        else:
+            self.end_clock = None
+
+
 
         # paths
         self.path = './'
@@ -302,6 +312,17 @@ class Recorder():
         last_idx = 0
         buffer_no = 0
 
+        self.terminate = False
+
+        if True: # close access
+            subprocess.run(['tvservice', '-o'])
+            subprocess.run(['vcgencmd', 'display_power', '0'])  #
+
+            subprocess.run(['sudo', 'ip', 'link', 'set', 'eth0', 'down'])
+            GPIO.output(self.LED2_pin, GPIO.LOW)
+            disp_eth_power = False
+            self.last_button_2_t = time()
+
         while GPIO.input(self.Button1_pin) == GPIO.LOW:
 
             if GPIO.input(self.Button2_pin) == GPIO.HIGH:
@@ -382,7 +403,7 @@ class Recorder():
             else:
                 (np.array(data[last_idx:], dtype=np.float32) / self.config.gain).tofile(self.f)
                 if hasattr(self.config.end_clock, '__len__'):
-                    if datetime.datetime.now().hour * 60 + datetime.datetime.now().minute >= self.config.end_clock[0] * 60 + self.config.end_clock[1]:
+                    if datetime.datetime.now().hour * 60 + datetime.datetime.now().minute == self.config.end_clock[0] * 60 + self.config.end_clock[1]:
                         self.f.flush()
                         GPIO.output(self.LED1_pin, GPIO.LOW)
                         GPIO.output(self.LED_out_pin, GPIO.LOW)
@@ -393,7 +414,9 @@ class Recorder():
 
                 buffer_no += 1
             last_idx = index
-        print('\nDone!')
+        else:
+            self.terminate = True
+            print('\nDone!')
 
         self.f.close()
         if self.config.record_temp == True:
@@ -425,18 +448,22 @@ class Recorder():
         GPIO.cleanup()
 
 def main():
-    config = Configuration()
-    if len(sys.argv) > 1:
-        rec_duration = int(sys.argv[1])
-        config.start_clock = [config.now.hour, config.now.minute]
-        config.end_clock = [config.now.hour, config.now.minute + rec_duration]
-        if config.end_clock[1] >= 60:
-            config.end_clock[0] += 1
-            config.end_clock[1] -= 60
-
-    rc = Recorder(config)
-
-    rc.run()
+    while True:
+        config = Configuration(recording_duration=[12, 0])
+        if len(sys.argv) > 1:
+            rec_duration = int(sys.argv[1])
+            config.start_clock = [config.now.hour, config.now.minute]
+            config.end_clock = [config.now.hour, config.now.minute + rec_duration]
+            if config.end_clock[1] >= 60:
+                config.end_clock[0] += 1
+                config.end_clock[1] -= 60
+
+        rc = Recorder(config)
+
+        rc.run()
+
+        if rc.terminate == True:
+            break
 
 if __name__ == '__main__':
     main()
\ No newline at end of file