diff --git a/.gitignore b/.gitignore index dfe06e7..4bcf485 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .idea/ venv/ .env -*.iml +ospaz-site.iml index/migrations/ users/migrations/ +logs_service/migrations/ diff --git a/logs_service/__init__.py b/logs_service/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/logs_service/apps.py b/logs_service/apps.py new file mode 100644 index 0000000..9d5165c --- /dev/null +++ b/logs_service/apps.py @@ -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() diff --git a/logs_service/models.py b/logs_service/models.py new file mode 100644 index 0000000..4a6d6a9 --- /dev/null +++ b/logs_service/models.py @@ -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="Частота ПЧ") diff --git a/logs_service/services.py b/logs_service/services.py new file mode 100644 index 0000000..ad8e4c0 --- /dev/null +++ b/logs_service/services.py @@ -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 diff --git a/ospaz-site.iml b/ospaz-site.iml deleted file mode 100644 index d6cf261..0000000 --- a/ospaz-site.iml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/users/forms.py b/users/forms.py new file mode 100644 index 0000000..0afb906 --- /dev/null +++ b/users/forms.py @@ -0,0 +1,2 @@ +from django import forms +