MCPcopy Create free account
hub / github.com/ARM-software/AVH / RecordManager

Class RecordManager

interface/sensor/python/vsi_sensor.py:32–178  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30logger = logging.getLogger(__name__)
31
32class RecordManager:
33 def __init__(self):
34 self.WINDOW_SIZE = 10000 #ms
35 self.SLIDE_INTERVAL = 1000 #ms
36 self.HEADER_SIZE = 8 #B
37 self.TIMESTAMP_SIZE = 4 #B
38 self.data_buff = bytearray()
39 self.timestamp = []
40 self.data_size = []
41 self.interval = 0
42 self.window = 0
43 self.cnt = 0
44 self.cnt_old = 0
45 self.elapsed_time = 0
46 self.timer_event_cnt = 0
47 self.initial_interval = 0
48 self.active_record_size = 0
49
50 # Flush variables
51 def flush(self):
52 logger.info("Flush Record Data")
53 self.data_buff = bytearray()
54 self.timestamp = []
55 self.data_size = []
56 self.interval = 0
57 self.window = 0
58 self.cnt = 0
59 self.cnt_old = 0
60 self.elapsed_time = 0
61 self.timer_event_cnt = 0
62 self.initial_interval = 0
63 self.active_record_size = 0
64
65 # Read one Record from data file and save acquired data in corresponding buffers
66 def __getRecord(self):
67 logger.info("Get Record Data")
68 data = readFile(self.HEADER_SIZE)
69 if len(data) == self.HEADER_SIZE:
70 self.timestamp.append(unpack("I", data[:self.TIMESTAMP_SIZE])[0])
71 self.data_size.append(unpack("I", data[self.TIMESTAMP_SIZE:])[0])
72 self.data_buff.extend(readFile(self.data_size[-1]))
73 logger.debug(f"Record Data size: {len(self.data_buff)}")
74 else:
75 logger.info("No Record")
76
77 # Extract requested number of bytes from data buffer
78 # If end of file is reached, return requested number of zeroes
79 def getData(self, size):
80 logger.info("Get Data from Record")
81
82 if len(self.data_buff) == 0:
83 self.__getRecord()
84
85 if len(self.data_buff) >= size:
86 data = self.data_buff[:size]
87 self.data_buff = self.data_buff[size:]
88 logger.debug(f"Requested Data size: {size}")
89

Callers 1

vsi_sensor.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected