добавил модуль сервиса для мониторинга
This commit is contained in:
parent
96acd59ff1
commit
222d87d220
3
.gitignore
vendored
3
.gitignore
vendored
@ -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
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