lot_manager/db/models/lot_data_model.py

53 lines
3.7 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from pydantic import BaseModel, Field
from sqlalchemy import *
from db.base import Base
class LOT_DATA(BaseModel):
device_name: str = Field(None, description='设备编号')
create_time: int = Field(None, description='创建时间(时间戳) ')
wind_speed: float = Field(None, description='风速:(0到30)m/s ')
wind_direction: float = Field(None, description='风向:0360°')
ambient_temperature: float = Field(None, description='环境温度:℃')
ambient_humidity: float = Field(None, description='环境湿度:%RH')
carbon_dioxide: float = Field(None, description='二氧化碳0~5000ppm')
ambient_air_pressure: float = Field(None, description='环境气压0~120KPa')
rainfall: float = Field(None, description='雨量mm')
ambient_lighting: float = Field(None, description='环境光照0-65535Lux0-20万Lux')
soil_temperature: float = Field(None, description='土壤温度:-40~80℃')
soil_moisture: float = Field(None, description='土壤湿度0-100%RH')
soil_conductivity: float = Field(None, description='土壤电导率0-20000μS/cm')
soil_PH: float = Field(None, description='土壤PH:3~9PH')
soil_potassium_phosphate_nitrogen: float = Field(None, description='土壤磷酸钾氮的标准值在140-225mg/kg')
soil_potassium_phosphate_phosphorus: float = Field(None, description='土壤磷酸钾磷的标准值在57-100mg/kg,')
soil_potassium_phosphate_potassium: float = Field(None, description='土壤磷酸钾钾的标准值在106-150mg/kg')
class LOT_DATA_MODEL(Base):
"""
物联网数据模型
"""
__tablename__ = 'LOT_DATA_MODEL'
id = Column(Integer, primary_key=True, autoincrement=True, comment='ID')
device_name = Column(String(50), comment="设备编号")
create_time = Column(Integer, comment="创建时间")
wind_speed = Column(Float, comment='风速:(0到30)m/s ')
wind_direction = Column(Float, comment='风向:0360°')
ambient_temperature = Column(Float, comment='环境温度:℃')
ambient_humidity = Column(Float, comment='环境湿度:%RH')
carbon_dioxide = Column(Float, comment='二氧化碳0~5000ppm')
ambient_air_pressure = Column(Float, comment='环境气压0~120KPa')
rainfall = Column(Float, comment='雨量mm')
ambient_lighting = Column(Float, comment='环境光照0-65535Lux0-20万Lux')
soil_temperature = Column(Float, comment='土壤温度:-40~80℃')
soil_moisture = Column(Float, comment='土壤湿度0-100%RH')
soil_conductivity = Column(Float, comment='土壤电导率0-20000μS/cm')
soil_PH = Column(Float, comment='土壤PH:3~9PH')
soil_potassium_phosphate_nitrogen = Column(Float, comment='土壤磷酸钾氮的标准值在140-225mg/kg')
soil_potassium_phosphate_phosphorus = Column(Float, comment='土壤磷酸钾磷的标准值在57-100mg/kg,')
soil_potassium_phosphate_potassium = Column(Float, comment='土壤磷酸钾钾的标准值在106-150mg/kg')
def __repr__(self):
return f"LOT_DATA_MODEL(id={self.id}, wind_speed={self.wind_speed}, wind_direction={self.wind_direction}, ambient_temperature={self.ambient_temperature}, ambient_humidity={self.ambient_humidity}, carbon_dioxide={self.carbon_dioxide}, ambient_air_pressure={self.ambient_air_pressure}, rainfall={self.rainfall}, ambient_lighting={self.ambient_lighting}, soil_temperature={self.soil_temperature}, soil_moisture={self.soil_moisture}, soil_conductivity={self.soil_conductivity}, Soil_PH={self.soil_PH}, soil_potassium_phosphate_nitrogen={self.soil_potassium_phosphate_nitrogen}, soil_potassium_phosphate_phosphorus={self.soil_potassium_phosphate_phosphorus}, soil_potassium_phosphate_potassium={self.soil_potassium_phosphate_potassium})"