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

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

3
.gitignore vendored
View File

@ -1,6 +1,7 @@
.idea/
venv/
.env
*.iml
ospaz-site.iml
index/migrations/
users/migrations/
logs_service/migrations/

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

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv/Include" />
<excludeFolder url="file://$MODULE_DIR$/venv/Lib" />
<excludeFolder url="file://$MODULE_DIR$/venv/Scripts" />
</content>
<orderEntry type="jdk" jdkName="Python 3.11 (ospaz-site)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

2
users/forms.py Normal file
View File

@ -0,0 +1,2 @@
from django import forms