Skip to content

Commit 61cdb92

Browse files
committed
Fix onboard LSD sleep quality index logging
1 parent e8dc7e8 commit 61cdb92

1 file changed

Lines changed: 131 additions & 131 deletions

File tree

software/lsd.py

Lines changed: 131 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -1,131 +1,131 @@
1-
import ujson
2-
import utime
3-
import time
4-
import os
5-
6-
class lucid_scribe_data:
7-
def __init__(self, config):
8-
self.config = config
9-
10-
if self.config.get('CreateLogs'):
11-
self.create_lsd()
12-
13-
def create_lsd(self):
14-
self.lsd_hour = 0
15-
self.lsd_minute = 0
16-
self.lsd_start = utime.ticks_ms()
17-
self.lsd_minute_start = self.lsd_start
18-
19-
root_dir_exists = False
20-
entries = os.listdir()
21-
for entry in entries:
22-
if entry == "sessions":
23-
root_dir_exists = True
24-
25-
if not root_dir_exists:
26-
print("creating sessions")
27-
os.mkdir("sessions")
28-
29-
vision_index = 0
30-
entries = os.listdir("sessions")
31-
for entry in entries:
32-
if ("session_" in entry):
33-
directory_index = entry.replace("session_", "")
34-
if int(directory_index) >= vision_index:
35-
vision_index = int(directory_index) + 1
36-
37-
self.session_directory = "sessions/" + "session_" + str(vision_index)
38-
print("creating session " + str(vision_index))
39-
os.mkdir(self.session_directory)
40-
41-
config_file = open(self.session_directory + '/config.txt', 'w')
42-
config_file.write(ujson.dumps(self.config))
43-
config_file.close()
44-
45-
self.session_file = self.session_directory + "/session_" + str(vision_index) + ".LSD"
46-
self.lsd_file = open(self.session_file, 'w')
47-
self.lsd_file.write("INSPEC")
48-
self.lsd_file.write("\r\n" + "Researcher:" + self.config.get('Researcher'))
49-
self.lsd_file.close()
50-
self.lsd_values = "0"
51-
self.rem_values = "0"
52-
self.sqi_values = "0"
53-
54-
def log(self, variance, rem, sqi):
55-
if self.config.get('CreateLogs') != 1:
56-
return
57-
58-
now = utime.ticks_ms()
59-
60-
if (now - self.lsd_start > 1000 * 60 * 60):
61-
self.lsd_start = now
62-
self.lsd_minute_start = now
63-
self.lsd_hour = self.lsd_hour + 1
64-
self.lsd_minute = 0
65-
self.write_log()
66-
self.lsd_values = str(variance)
67-
self.rem_values = str(rem)
68-
self.sqi_values = str(rem)
69-
return
70-
71-
if (now - self.lsd_minute_start >= 1000 * 60):
72-
self.lsd_minute_start = now
73-
self.lsd_minute = self.lsd_minute + 1
74-
self.write_log()
75-
self.lsd_values = str(variance)
76-
self.rem_values = str(rem)
77-
self.sqi_values = str(rem)
78-
return
79-
80-
self.lsd_values = f'{self.lsd_values},{str(variance)}'
81-
self.rem_values = f'{self.rem_values},{str(rem)}'
82-
self.sqi_values = f'{self.sqi_values},{str(quality)}'
83-
84-
def write_log(self):
85-
self.lsd_file = open(self.session_file, 'a')
86-
formatted_time = self.format_time()
87-
self.lsd_file.write(f'\r\n{formatted_time}:lsd - {self.lsd_values}')
88-
self.lsd_file.write(f'\r\n{formatted_time}:rem - {self.rem_values}')
89-
self.lsd_file.write(f'\r\n{formatted_time}:sqi - {self.sqi_values}')
90-
self.lsd_file.close()
91-
92-
def add_image(self, image, eye_movements):
93-
if self.config.get('CreateLogs') != 1:
94-
return
95-
96-
now = utime.ticks_ms()
97-
second = time.localtime()[5]
98-
formatted_time = f'{self.format_time()}:{second}:{eye_movements}'
99-
formatted_time = formatted_time.replace(":", "-")
100-
file_name = self.session_directory + "/image_" + formatted_time + ".JPG"
101-
image.save(file_name)
102-
103-
def list_directories(self):
104-
entries = os.listdir("sessions")
105-
directories = ""
106-
for entry in entries:
107-
if ("vision_" in entry):
108-
if directories == "":
109-
directories = entry.replace("session_", "")
110-
else:
111-
directories = f'{directories},{entry.replace("session_", "")}'
112-
113-
return directories
114-
115-
def get_config(self, vision):
116-
file_name = "sessions/session_" + vision + "/config.txt"
117-
118-
with open(file_name, mode='rb') as file:
119-
content = bytearray(file.read())
120-
return content
121-
122-
def format_time(self):
123-
hour_string = str(self.lsd_hour)
124-
if self.lsd_hour < 10:
125-
hour_string = "0" + hour_string
126-
127-
minute_string = str(self.lsd_minute)
128-
if self.lsd_minute < 10:
129-
minute_string = "0" + minute_string
130-
131-
return hour_string + ":" + minute_string
1+
import ujson
2+
import utime
3+
import time
4+
import os
5+
6+
class lucid_scribe_data:
7+
def __init__(self, config):
8+
self.config = config
9+
10+
if self.config.get('CreateLogs'):
11+
self.create_lsd()
12+
13+
def create_lsd(self):
14+
self.lsd_hour = 0
15+
self.lsd_minute = 0
16+
self.lsd_start = utime.ticks_ms()
17+
self.lsd_minute_start = self.lsd_start
18+
19+
root_dir_exists = False
20+
entries = os.listdir()
21+
for entry in entries:
22+
if entry == "sessions":
23+
root_dir_exists = True
24+
25+
if not root_dir_exists:
26+
print("creating sessions")
27+
os.mkdir("sessions")
28+
29+
vision_index = 0
30+
entries = os.listdir("sessions")
31+
for entry in entries:
32+
if ("session_" in entry):
33+
directory_index = entry.replace("session_", "")
34+
if int(directory_index) >= vision_index:
35+
vision_index = int(directory_index) + 1
36+
37+
self.session_directory = "sessions/" + "session_" + str(vision_index)
38+
print("creating session " + str(vision_index))
39+
os.mkdir(self.session_directory)
40+
41+
config_file = open(self.session_directory + '/config.txt', 'w')
42+
config_file.write(ujson.dumps(self.config))
43+
config_file.close()
44+
45+
self.session_file = self.session_directory + "/session_" + str(vision_index) + ".LSD"
46+
self.lsd_file = open(self.session_file, 'w')
47+
self.lsd_file.write("INSPEC")
48+
self.lsd_file.write("\r\n" + "Researcher:" + self.config.get('Researcher'))
49+
self.lsd_file.close()
50+
self.lsd_values = "0"
51+
self.rem_values = "0"
52+
self.sqi_values = "0"
53+
54+
def log(self, variance, rem, sqi):
55+
if self.config.get('CreateLogs') != 1:
56+
return
57+
58+
now = utime.ticks_ms()
59+
60+
if (now - self.lsd_start > 1000 * 60 * 60):
61+
self.lsd_start = now
62+
self.lsd_minute_start = now
63+
self.lsd_hour = self.lsd_hour + 1
64+
self.lsd_minute = 0
65+
self.write_log()
66+
self.lsd_values = str(variance)
67+
self.rem_values = str(rem)
68+
self.sqi_values = str(sqi)
69+
return
70+
71+
if (now - self.lsd_minute_start >= 1000 * 60):
72+
self.lsd_minute_start = now
73+
self.lsd_minute = self.lsd_minute + 1
74+
self.write_log()
75+
self.lsd_values = str(variance)
76+
self.rem_values = str(rem)
77+
self.sqi_values = str(sqi)
78+
return
79+
80+
self.lsd_values = f'{self.lsd_values},{str(variance)}'
81+
self.rem_values = f'{self.rem_values},{str(rem)}'
82+
self.sqi_values = f'{self.sqi_values},{str(sqi)}'
83+
84+
def write_log(self):
85+
self.lsd_file = open(self.session_file, 'a')
86+
formatted_time = self.format_time()
87+
self.lsd_file.write(f'\r\n{formatted_time}:lsd - {self.lsd_values}')
88+
self.lsd_file.write(f'\r\n{formatted_time}:rem - {self.rem_values}')
89+
self.lsd_file.write(f'\r\n{formatted_time}:sqi - {self.sqi_values}')
90+
self.lsd_file.close()
91+
92+
def add_image(self, image, eye_movements):
93+
if self.config.get('CreateLogs') != 1:
94+
return
95+
96+
now = utime.ticks_ms()
97+
second = time.localtime()[5]
98+
formatted_time = f'{self.format_time()}:{second}:{eye_movements}'
99+
formatted_time = formatted_time.replace(":", "-")
100+
file_name = self.session_directory + "/image_" + formatted_time + ".JPG"
101+
image.save(file_name)
102+
103+
def list_directories(self):
104+
entries = os.listdir("sessions")
105+
directories = ""
106+
for entry in entries:
107+
if ("session_" in entry):
108+
if directories == "":
109+
directories = entry.replace("session_", "")
110+
else:
111+
directories = f'{directories},{entry.replace("session_", "")}'
112+
113+
return directories
114+
115+
def get_config(self, vision):
116+
file_name = "sessions/session_" + vision + "/config.txt"
117+
118+
with open(file_name, mode='rb') as file:
119+
content = bytearray(file.read())
120+
return content
121+
122+
def format_time(self):
123+
hour_string = str(self.lsd_hour)
124+
if self.lsd_hour < 10:
125+
hour_string = "0" + hour_string
126+
127+
minute_string = str(self.lsd_minute)
128+
if self.lsd_minute < 10:
129+
minute_string = "0" + minute_string
130+
131+
return hour_string + ":" + minute_string

0 commit comments

Comments
 (0)