Compare commits

...

6 Commits

Author SHA1 Message Date
peterlu14 54f3cdbffa [update] check spi routine 2022-04-08 18:23:20 +08:00
peterlu14 718e7c3245 [update] print message 2022-04-08 18:23:20 +08:00
peterlu14 6427c5ecdb [update] add info of no data time 2022-04-08 18:23:20 +08:00
peterlu14 ff305819df [update] change delta time 2022-04-08 18:23:20 +08:00
peterlu14 f4ac79093d [update] add check spi data 2022-04-08 18:23:20 +08:00
peterlu14 1a688b3585 [update] change queue log 2022-04-08 18:23:20 +08:00
3 changed files with 26 additions and 13 deletions
+18 -5
View File
@@ -126,6 +126,9 @@ class DataServer(SocketServer, DataAPI):
self.database_process = DataBaseProcess('data_server', self.log_verbose, self._queue_db, self._queue_ds_dict, self._queue_db_error)
self.database_process.start()
self._no_data_total_duration = 0
self._recv_memory_cost_time = 0
@logging_info
def setup(self):
self._available_channel.clear()
@@ -669,7 +672,13 @@ class DataServer(SocketServer, DataAPI):
print("q size= ", self._configurations[device]._queue_rec.qsize())
self._configurations[device].put_rec_queue(data)
self._no_data_total_duration = 0
ret = True
else:
time_diff = time() - self._recv_memory_cost_time
self._no_data_total_duration += time_diff
print('data is None', device, datetime.now(), self._no_data_total_duration)
self._recv_memory_cost_time = time()
return ret
@@ -909,7 +918,7 @@ class DeviceDataRuntime(DataRuntime):
__slots__ = ( '_start_time', '_data_counter', '_last_data_counter', '_data_ch',
'_data_ch_time', '_mqtt_send_data_ch_level', '_timer', '_timer_of_not_send',
'_get_rec_data', '_cycle_start_time', '_time_stamp_list', '_prev_data', '_prev_delta_time', '_prev_time_stamp', '_task_fininsh')
'_get_rec_data', '_cycle_start_time', '_time_stamp_list', '_prev_data', '_prev_delta_time', '_prev_time_stamp', '_task_fininsh', '_check_spi_routine_timer')
def __init__(self, server: DataServer, device: int, meta_file: RecordingMetaFile, data_format: AnyStr):
super().__init__(server, device, meta_file, data_format)
@@ -922,6 +931,7 @@ class DeviceDataRuntime(DataRuntime):
self._mqtt_send_data_ch_level = {}
self._timer = None #int(time() * 10)
self._check_spi_routine_timer = None #int(time() * 10)
self._timer_of_not_send = None
self._get_rec_data = False
@@ -1147,6 +1157,7 @@ class SpiRuntimeThread(ServerThread):
self._time_stamp = 0.0
self._interval = 0.045
self._timer = time()
self._check_spi_routine_timer = time()
self._read_memory_board_idx = 0
def setup(self) -> None:
@@ -1163,7 +1174,6 @@ class SpiRuntimeThread(ServerThread):
def routine(self, event = None) -> None: # routine 50 ms
server = self._server
self._timer = time()
sync = server.get_spi_obj()
# select channel
@@ -1179,14 +1189,17 @@ class SpiRuntimeThread(ServerThread):
run_time = time() - self._timer
real_run_time = run_time
if run_time > 0.045:
# print('time, recv_data_form_spi_routine_time', time(), run_time)
run_time = 0.045
if run_time >= 0.030:
print('time, recv_data_form_spi_routine_time >= 0.030', 'device:', c, datetime.now(), time(), real_run_time)
print('time, recv_data_form_spi_routine_time >= 0.030', 'device:', c, datetime.now(), time(), run_time)
spi_routine_run_time = time() - self._check_spi_routine_timer
if spi_routine_run_time > 1:
print('spi_routine_time > 1', 'device:', c, datetime.now(), spi_routine_run_time)
self._check_spi_routine_timer = time()
event.wait(self._interval - run_time)
sync.set_pin_mem_sel(True)
+4 -4
View File
@@ -160,7 +160,7 @@ class DataBaseProcess(Process):
getattr(self, do)(*args)
return None
# @calculate_time(1)
@calculate_time(1)
def data_meta_write(self, _data: JSON_OBJECT, device_id, _uuid = None, _id = None):
if _id > 0:
sql_str = 'UPDATE "public"."recording_data_metas" SET '
@@ -376,7 +376,7 @@ class DataBaseProcess(Process):
print('recording error', e)
return None
# @calculate_time(1)
@calculate_time(1)
def data_raw_recording_new(self, _id_dict, _channel_list, _data_dict, _end_time_dict, _size_dict):
try:
para_list = []
@@ -446,7 +446,7 @@ class DataBaseProcess(Process):
return True
# @calculate_time(1)
@calculate_time(1)
def data_mini_recording_new(self, _id_dict, _channel_list, _data_mean_dict):
try:
para_list = []
@@ -508,7 +508,7 @@ class DataBaseProcess(Process):
return True
# @calculate_time()
@calculate_time(1)
def data_meta_update_all_channel_raw_id(self, meta_id:str, raw_id_dict:dict):
try:
sql_str = "UPDATE recording_data_metas SET raw_data = jsonb_insert(raw_data, '{%s, -1}', '%s', TRUE) WHERE id = %s;"
+4 -4
View File
@@ -165,11 +165,11 @@ class RecordingProcess(Process):
"""
q = None
try:
# now = time()
now = time()
q = self._queue_rec.get()
# get_queue_time_cost = time() - now
# if get_queue_time_cost > 2:
# print('get queue cost time', get_queue_time_cost)
get_queue_time_cost = time() - now
if get_queue_time_cost > 1.1:
print('get queue cost time', get_queue_time_cost, 'q_size', self._queue_rec.qsize())
except:
return False
finally: