This commit is contained in:
tillraab 2023-02-10 09:50:20 +01:00
parent 71d8400bca
commit 9980658ade

View File

@ -18,7 +18,7 @@ except:
pass pass
class Configuration(): class Configuration():
def __init__(self): def __init__(self, recording_duration = None):
# recording setup # recording setup
self.channels = None self.channels = None
self.samplerate = None self.samplerate = None
@ -34,8 +34,18 @@ class Configuration():
# timestamps # timestamps
self.now = datetime.datetime.now() self.now = datetime.datetime.now()
self.start_clock = [datetime.datetime.now().hour, datetime.datetime.now().minute] self.start_clock = [datetime.datetime.now().hour, datetime.datetime.now().minute]
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 self.end_clock = None
# paths # paths
self.path = './' self.path = './'
self.path_format = '%04Y-%02m-%02d-%02H_%02M' self.path_format = '%04Y-%02m-%02d-%02H_%02M'
@ -302,6 +312,17 @@ class Recorder():
last_idx = 0 last_idx = 0
buffer_no = 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: while GPIO.input(self.Button1_pin) == GPIO.LOW:
if GPIO.input(self.Button2_pin) == GPIO.HIGH: if GPIO.input(self.Button2_pin) == GPIO.HIGH:
@ -382,7 +403,7 @@ class Recorder():
else: else:
(np.array(data[last_idx:], dtype=np.float32) / self.config.gain).tofile(self.f) (np.array(data[last_idx:], dtype=np.float32) / self.config.gain).tofile(self.f)
if hasattr(self.config.end_clock, '__len__'): 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() self.f.flush()
GPIO.output(self.LED1_pin, GPIO.LOW) GPIO.output(self.LED1_pin, GPIO.LOW)
GPIO.output(self.LED_out_pin, GPIO.LOW) GPIO.output(self.LED_out_pin, GPIO.LOW)
@ -393,6 +414,8 @@ class Recorder():
buffer_no += 1 buffer_no += 1
last_idx = index last_idx = index
else:
self.terminate = True
print('\nDone!') print('\nDone!')
self.f.close() self.f.close()
@ -425,7 +448,8 @@ class Recorder():
GPIO.cleanup() GPIO.cleanup()
def main(): def main():
config = Configuration() while True:
config = Configuration(recording_duration=[12, 0])
if len(sys.argv) > 1: if len(sys.argv) > 1:
rec_duration = int(sys.argv[1]) rec_duration = int(sys.argv[1])
config.start_clock = [config.now.hour, config.now.minute] config.start_clock = [config.now.hour, config.now.minute]
@ -438,5 +462,8 @@ def main():
rc.run() rc.run()
if rc.terminate == True:
break
if __name__ == '__main__': if __name__ == '__main__':
main() main()