добавил модуль сервиса для мониторинга
This commit is contained in:
parent
96acd59ff1
commit
222d87d220
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,6 +1,7 @@
|
|||||||
.idea/
|
.idea/
|
||||||
venv/
|
venv/
|
||||||
.env
|
.env
|
||||||
*.iml
|
ospaz-site.iml
|
||||||
index/migrations/
|
index/migrations/
|
||||||
users/migrations/
|
users/migrations/
|
||||||
|
logs_service/migrations/
|
||||||
|
0
logs_service/__init__.py
Normal file
0
logs_service/__init__.py
Normal file
14
logs_service/apps.py
Normal file
14
logs_service/apps.py
Normal 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
28
logs_service/models.py
Normal 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
21
logs_service/services.py
Normal 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
|
@ -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
2
users/forms.py
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
from django import forms
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user