добавил модуль сервиса для мониторинга

This commit is contained in:
2024-01-17 18:14:18 +03:00
parent 96acd59ff1
commit 222d87d220
7 changed files with 67 additions and 14 deletions

0
logs_service/__init__.py Normal file
View File

14
logs_service/apps.py Normal file
View File

@@ -0,0 +1,14 @@
from django.apps import AppConfig
from .services import MbTankService, MbPumpService
class LogsServiceConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'logs_service'
mb_tank_service = MbTankService('10.105.0.3')
mb_pump_service = MbPumpService('10.105.0.2')
def ready(self):
LogsServiceConfig.mb_tank_service.start()
LogsServiceConfig.mb_pump_service.start()

28
logs_service/models.py Normal file
View File

@@ -0,0 +1,28 @@
from django.db import models
from django.utils import timezone
# select UNIX_TIMESTAMP(datetime), level_percentage, radar_low_reg, status_reg from tcs
class MbTankRecord(models.Model):
dt = models.DateTimeField(verbose_name="Время записи", default=timezone.now)
radar_raw = models.PositiveIntegerField(verbose_name="Уровень воды по радару радара")
level = models.PositiveSmallIntegerField(verbose_name="Уровень воды в % (пересчитан ПЛК)")
def __str__(self):
return f"({self.id}) {self.dt}: radar={self.radar_raw}, level={self.level}"
class MbPumpRecord(models.Model):
dt = models.DateTimeField(verbose_name="Время записи", default=timezone.now)
# состояния насосной
pump_stage = models.SmallIntegerField(verbose_name="Состояние КА")
flow_meter = models.DecimalField(max_digits=4, decimal_places=1, verbose_name="Показания расходометра")
alarm = models.PositiveSmallIntegerField(verbose_name="Авария насосной станции")
# состояния ПЧ
vfd_alarm = models.PositiveSmallIntegerField(verbose_name="Авария ПЧ")
vfd_current = models.DecimalField(max_digits=5, decimal_places=2, verbose_name="Ток ПЧ")
vfd_freq = models.DecimalField(max_digits=5, decimal_places=2, verbose_name="Частота ПЧ")

21
logs_service/services.py Normal file
View File

@@ -0,0 +1,21 @@
from .models import *
from threading import Thread
class MbService(Thread):
def __init__(self, ip_addr):
super().__init__()
self._ip_addr = ip_addr
def to_json(self):
return {}
class MbTankService(MbService):
def run(self):
pass
class MbPumpService(MbService):
def run(self):
pass