статус с резервуара теперь берется из бд сайта

This commit is contained in:
2024-01-23 13:48:05 +03:00
parent f7dbad696a
commit 71e9fc37e9
8 changed files with 93 additions and 69 deletions

View File

@@ -14,7 +14,7 @@ class MbClearHistoryService(Thread):
def run(self):
while True:
self.model.objects.filter(dt__lt=(timezone.now() - timezone.timedelta(days=60))).delete()
self.model.objects.filter(dt__lt=(datetime.now() - timedelta(days=60))).delete()
time.sleep(10)
@@ -79,21 +79,10 @@ class MbService(Thread):
else:
last_query = datetime.now()
def to_json(self):
return {}
class MbTankService(MbService):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.registers = {}
# {
# 'last_update': None, # последнее обновление, unix time
# 'level': None, # текущее показание, пересчитанное в %
# 'radar': None, # текущее показание с радара
# 'status': None, # статусный регистр
# 'last_radar_values': [] # последние показания за 15 минут
# }
self._curr_state = None
# {
@@ -102,23 +91,8 @@ class MbTankService(MbService):
# "radar": int
# }
# для фильтрации уровня, чтобы его в бд писать
self.level_filter = []
def _update_last_radar_values(self):
res = [[item.dt.timestamp(), item.radar_raw]
for item in MbTankRecord.objects.filter(dt__gt=(datetime.now() - timedelta(minutes=15))).order_by('-dt')]
self.registers['last_radar_values'] = res
def _init_state(self):
self.last_save = MbTankRecord.objects.order_by('-dt').first()
print(f"Initializing MbTankService: last_save={self.last_save}")
if self.last_save is not None:
self.registers['last_update'] = self.last_save.dt
self.registers['level'] = self.last_save.level
self.registers['radar'] = self.last_save.radar_raw
self.registers['status'] = self.last_save.status
self._update_last_radar_values()
pass
def _push_current_state(self):
record = MbTankRecord(radar_raw=self._curr_state['radar'],
@@ -137,14 +111,10 @@ class MbTankService(MbService):
"status": values[5],
"radar": (values[1] << 16) | values[2]
}
self.registers['last_update'] = datetime.now()
def _check_need_save(self):
return True
def to_json(self):
return self.registers
class MbPumpService(MbService):
_config = {