|
|
|
|
@ -1,88 +1,47 @@
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace SmartAquaViewer.DataAnalisys
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
using System;
|
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
|
using System.Security.Policy;
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
|
|
|
|
|
[Table("WaterQuality")]
|
|
|
|
|
namespace SmartAquaViewer.DataAnalysis
|
|
|
|
|
{
|
|
|
|
|
[Table("water_quality")]
|
|
|
|
|
public class WaterQualityVO
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
[Key]
|
|
|
|
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] // 자동 증가
|
|
|
|
|
public int Id { get; set; } // PK, Auto Increment
|
|
|
|
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
|
|
|
|
public int Id { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 저수조
|
|
|
|
|
/// 측정 시각
|
|
|
|
|
/// </summary>
|
|
|
|
|
public WaterTank WaterTank { get; set; }
|
|
|
|
|
[Column("recorded_time")]
|
|
|
|
|
public DateTime RecordedTime { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 여과 시스템
|
|
|
|
|
/// 저수조
|
|
|
|
|
/// </summary>
|
|
|
|
|
public FilteringSystem FilteringSystem { get; set; }
|
|
|
|
|
|
|
|
|
|
public WaterTank Tank { get; set; } = new();
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 살균 시스템
|
|
|
|
|
/// 여과 시스템
|
|
|
|
|
/// </summary>
|
|
|
|
|
public SterilizingSystem SterilizingSystem { get; set; }
|
|
|
|
|
|
|
|
|
|
public FilteringSystem Filtering { get; set; } = new();
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 측정 시각
|
|
|
|
|
/// 살균 시스템
|
|
|
|
|
/// </summary>
|
|
|
|
|
public DateTime Timestamp { get; set; }
|
|
|
|
|
public SterilizingSystem Sterilizing { get; set; } = new();
|
|
|
|
|
|
|
|
|
|
public WaterQualityVO() { }
|
|
|
|
|
|
|
|
|
|
public WaterQualityVO(
|
|
|
|
|
int waterTankNum, double waterTankDOValue, double waterTankPh, double waterTankORP, double waterTankTemperature, double waterTankFlowRate,
|
|
|
|
|
bool sandFilterPower,
|
|
|
|
|
double sumpPH, double sumpORP, double sumpWaterLevel, double sumpFlowRate, double sumpTemperature,
|
|
|
|
|
bool circulationPumpPower, string? inverterControllerStatus, double flowRate,
|
|
|
|
|
bool heatPumpPower, double heatPumpTemperature, bool airBlowerPower,
|
|
|
|
|
bool ozoneGeneratorPower,
|
|
|
|
|
string uvSterilizerId, bool uvSterilizerPower,
|
|
|
|
|
bool ozoneDissolverPower, double ozoneDissolverPressure,
|
|
|
|
|
bool excessOzoneDestroyerPower,
|
|
|
|
|
DateTime timestamp)
|
|
|
|
|
{
|
|
|
|
|
WaterTank = new WaterTank(waterTankNum, waterTankDOValue, waterTankPh, waterTankORP, waterTankTemperature, waterTankFlowRate);
|
|
|
|
|
FilteringSystem = new FilteringSystem(sandFilterPower, sumpPH, sumpORP, sumpWaterLevel, sumpFlowRate, sumpTemperature,
|
|
|
|
|
circulationPumpPower, inverterControllerStatus, flowRate,
|
|
|
|
|
heatPumpPower, heatPumpTemperature, airBlowerPower);
|
|
|
|
|
SterilizingSystem = new SterilizingSystem(ozoneGeneratorPower, uvSterilizerId, uvSterilizerPower,
|
|
|
|
|
ozoneDissolverPower, ozoneDissolverPressure, excessOzoneDestroyerPower);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override string ToString()
|
|
|
|
|
public WaterQualityVO(DateTime RecordedTime, WaterTank tank, FilteringSystem filtering, SterilizingSystem sterilizing)
|
|
|
|
|
{
|
|
|
|
|
//return $"Tank#{WaterTankNum} [{Timestamp}] DO: {DO} mg/L, pH: {PH}, Temp: {Temperature}°C, " +
|
|
|
|
|
// $"Level: {WaterLevel} m, Flow: {FlowRate} m³/s, EC: {ElectricalConductivity} µS/cm, " +
|
|
|
|
|
// $"Turbidity: {Turbidity} NTU, Salinity: {Salinity} ppt, ORP: {ORP} mV, " +
|
|
|
|
|
// $"TSS: {TSS} mg/L, TN: {TotalNitrogen} mg/L, TP: {TotalPhosphorus} mg/L";
|
|
|
|
|
|
|
|
|
|
return $"[{Timestamp}] " +
|
|
|
|
|
$"[Tank#{WaterTank.WaterTankNum}, DO: {WaterTank.DO} mg/L, pH: {WaterTank.PH}, ORP: {WaterTank.ORP} mV, Temp: {WaterTank.Temperature}°C, FlowRate: {WaterTank.FlowRate} m³/s]" +
|
|
|
|
|
$"[SandFilter: {(FilteringSystem.SandFilterPower ? "ON" : "OFF")}, " +
|
|
|
|
|
$"(SumpTank) pH: {FilteringSystem.SumpPH}, ORP: {FilteringSystem.SumpORP} mV, WaterLevel: {FilteringSystem.SumpWaterLevel} m, FlowRate: {FilteringSystem.SumpFlowRate} m³/s, Temperature: {FilteringSystem.SumpTemperature}°C," +
|
|
|
|
|
$"HeatPump: {(FilteringSystem.HeatPumpPower ? "ON" : "OFF")}, HeatPumpTemperature: {FilteringSystem.HeatPumpTemperature}°C, AirBlower: {(FilteringSystem.AirBlowerPower ? "ON" : "OFF")}]" +
|
|
|
|
|
$"[OzoneGenerator: {(SterilizingSystem.OzoneGeneratorPower ? "ON" : "OFF")}," +
|
|
|
|
|
$"UVSterilizerId: {SterilizingSystem.UVSterilizerId}, UVSterilizer: {(SterilizingSystem.UVSterilizerPower ? "ON" : "OFF")}," +
|
|
|
|
|
$"OzoneDissolver: {SterilizingSystem.OzoneDissolverPower}, OzoneDissolverPressure: {SterilizingSystem.OzoneDissolverPressure} kPa," +
|
|
|
|
|
$"ExcessOzoneDestroyer: {(SterilizingSystem.ExcessOzoneDestroyerPower ? "ON" : "OFF")}]";
|
|
|
|
|
this.RecordedTime = RecordedTime;
|
|
|
|
|
Tank = tank;
|
|
|
|
|
Filtering = filtering;
|
|
|
|
|
Sterilizing = sterilizing;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 지정 기간 동안 임의의 수질 데이터를 생성합니다.
|
|
|
|
|
/// 샘플 데이터 리스트 생성
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static List<WaterQualityVO> GetSampleData(DateTime start, DateTime end, int totalRowsCount)
|
|
|
|
|
{
|
|
|
|
|
@ -95,8 +54,7 @@ namespace SmartAquaViewer.DataAnalisys
|
|
|
|
|
|
|
|
|
|
if (start == end)
|
|
|
|
|
{
|
|
|
|
|
// 같은 날짜면 하루(24시간) 기준으로 균등 분할
|
|
|
|
|
totalSeconds = 24 * 60 * 60; // 86,400초
|
|
|
|
|
totalSeconds = 24 * 60 * 60;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
@ -110,101 +68,89 @@ namespace SmartAquaViewer.DataAnalisys
|
|
|
|
|
{
|
|
|
|
|
DateTime ts = start.AddSeconds(stepSeconds * i);
|
|
|
|
|
|
|
|
|
|
//var vo = new WaterQualityVO
|
|
|
|
|
//{
|
|
|
|
|
// WaterTankNum = rand.Next(1, 6), // 1~5번 탱크
|
|
|
|
|
// DO = Math.Round(rand.NextDouble() * 5 + 5, 2), // 5~10 mg/L
|
|
|
|
|
// PH = Math.Round(rand.NextDouble() * 2 + 6, 2), // 6~8
|
|
|
|
|
// Temperature = Math.Round(rand.NextDouble() * 10 + 15, 2), // 15~25°C
|
|
|
|
|
// WaterLevel = Math.Round(rand.NextDouble() * 2 + 1, 2), // 1~3 m
|
|
|
|
|
// FlowRate = Math.Round(rand.NextDouble() * 5 + 1, 2), // 1~6 m³/s
|
|
|
|
|
// ElectricalConductivity = Math.Round(rand.NextDouble() * 500 + 200, 2), // 200~700 µS/cm
|
|
|
|
|
// Turbidity = Math.Round(rand.NextDouble() * 5 + 1, 2), // 1~6 NTU
|
|
|
|
|
// Salinity = Math.Round(rand.NextDouble() * 5, 2), // 0~5 ppt
|
|
|
|
|
// ORP = Math.Round(rand.NextDouble() * 200 + 100, 2), // 100~300 mV
|
|
|
|
|
// TSS = Math.Round(rand.NextDouble() * 20 + 5, 2), // 5~25 mg/L
|
|
|
|
|
// TotalNitrogen = Math.Round(rand.NextDouble() * 2 + 0.5, 2), // 0.5~2.5 mg/L
|
|
|
|
|
// TotalPhosphorus = Math.Round(rand.NextDouble() * 0.5 + 0.05, 3), // 0.05~0.55 mg/L
|
|
|
|
|
// Timestamp = ts
|
|
|
|
|
//};
|
|
|
|
|
|
|
|
|
|
var vo = new WaterQualityVO
|
|
|
|
|
{
|
|
|
|
|
WaterTank = new WaterTank(
|
|
|
|
|
waterTankNum: rand.Next(1, 6), // 1~5번 탱크
|
|
|
|
|
doValue: Math.Round(rand.NextDouble() * 5 + 5, 2), // 5~10 mg/L
|
|
|
|
|
ph: Math.Round(rand.NextDouble() * 2 + 6, 2), // 6~8
|
|
|
|
|
orp: Math.Round(rand.NextDouble() * 200 + 100, 2), // 100~300 mV
|
|
|
|
|
temperature: Math.Round(rand.NextDouble() * 10 + 15, 2), // 15~25°C
|
|
|
|
|
flowRate: Math.Round(rand.NextDouble() * 5 + 1, 2) // 1~6 m³/s
|
|
|
|
|
RecordedTime = ts,
|
|
|
|
|
Tank = new WaterTank(
|
|
|
|
|
number: rand.Next(1, 6),
|
|
|
|
|
doValue: Math.Round(rand.NextDouble() * 5 + 5, 2),
|
|
|
|
|
ph: Math.Round(rand.NextDouble() * 2 + 6, 2),
|
|
|
|
|
orp: Math.Round(rand.NextDouble() * 200 + 100, 2),
|
|
|
|
|
temperature: Math.Round(rand.NextDouble() * 10 + 15, 2),
|
|
|
|
|
flowRate: Math.Round(rand.NextDouble() * 5 + 1, 2)
|
|
|
|
|
),
|
|
|
|
|
FilteringSystem = new FilteringSystem(
|
|
|
|
|
sandFilterPower: rand.Next(0, 2) == 1, // true or false
|
|
|
|
|
sumpPH: Math.Round(rand.NextDouble() * 2 + 6, 2), // 6~8
|
|
|
|
|
sumpORP: Math.Round(rand.NextDouble() * 200 + 100, 2), // 100~300 mV
|
|
|
|
|
sumpWaterLevel: Math.Round(rand.NextDouble() * 2 + 1, 2), // 1~3 m
|
|
|
|
|
sumpFlowRate: Math.Round(rand.NextDouble() * 5 + 1, 2), // 1~6 m³/s
|
|
|
|
|
sumpTemperature: Math.Round(rand.NextDouble() * 10 + 15, 2), // 15~25°C
|
|
|
|
|
circulationPumpPower: rand.Next(0, 2) == 1, // true or false
|
|
|
|
|
inverterControllerStatus: rand.Next(0, 2) == 1 ? "Normal" : "Error", // "Normal" or "Error"
|
|
|
|
|
flowRate: Math.Round(rand.NextDouble() * 5 + 1, 2), // 1~6 m³/s
|
|
|
|
|
heatPumpPower: rand.Next(0, 2) == 1, // true or false
|
|
|
|
|
heatPumpTemperature: Math.Round(rand.NextDouble() * 10 + 15, 2), // 15~25°C
|
|
|
|
|
airBlowerPower: rand.Next(0, 2) == 1 // true or false
|
|
|
|
|
Filtering = new FilteringSystem(
|
|
|
|
|
sandFilterPower: rand.Next(0, 2) == 1,
|
|
|
|
|
sumpPH: Math.Round(rand.NextDouble() * 2 + 6, 2),
|
|
|
|
|
sumpORP: Math.Round(rand.NextDouble() * 200 + 100, 2),
|
|
|
|
|
sumpWaterLevel: Math.Round(rand.NextDouble() * 2 + 1, 2),
|
|
|
|
|
sumpFlowRate: Math.Round(rand.NextDouble() * 5 + 1, 2),
|
|
|
|
|
sumpTemperature: Math.Round(rand.NextDouble() * 10 + 15, 2),
|
|
|
|
|
circulationPumpPower: rand.Next(0, 2) == 1,
|
|
|
|
|
inverterControllerStatus: rand.Next(0, 2) == 1 ? "Normal" : "Error",
|
|
|
|
|
flowRate: Math.Round(rand.NextDouble() * 5 + 1, 2),
|
|
|
|
|
heatPumpPower: rand.Next(0, 2) == 1,
|
|
|
|
|
heatPumpTemperature: Math.Round(rand.NextDouble() * 10 + 15, 2),
|
|
|
|
|
airBlowerPower: rand.Next(0, 2) == 1
|
|
|
|
|
),
|
|
|
|
|
SterilizingSystem = new SterilizingSystem(
|
|
|
|
|
ozoneGeneratorPower: rand.Next(0, 2) == 1, // true or false
|
|
|
|
|
uvSterilizerId: "UV" + rand.Next(1, 100), // UV1, UV2, ...
|
|
|
|
|
uvSterilizerPower: rand.Next(0, 2) == 1, // true or false
|
|
|
|
|
ozoneDissolverPower: rand.Next(0, 2) == 1, // true or false
|
|
|
|
|
ozoneDissolverPressure: Math.Round(rand.NextDouble() * 100 + 50, 2), // 50~150 kPa
|
|
|
|
|
excessOzoneDestroyerPower: rand.Next(0, 2) == 1 // true or false
|
|
|
|
|
Sterilizing = new SterilizingSystem(
|
|
|
|
|
ozoneGeneratorPower: rand.Next(0, 2) == 1,
|
|
|
|
|
uvSterilizerId: "UV" + rand.Next(1, 100),
|
|
|
|
|
uvSterilizerPower: rand.Next(0, 2) == 1,
|
|
|
|
|
ozoneDissolverPower: rand.Next(0, 2) == 1,
|
|
|
|
|
ozoneDissolverPressure: Math.Round(rand.NextDouble() * 100 + 50, 2),
|
|
|
|
|
excessOzoneDestroyerPower: rand.Next(0, 2) == 1
|
|
|
|
|
)
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
list.Add(vo);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Owned]
|
|
|
|
|
public class WaterTank
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 저수조 번호
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int WaterTankNum { get; set; }
|
|
|
|
|
[Column("tank_number")]
|
|
|
|
|
public int Number { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Dissolved Oxygen (mg/L)
|
|
|
|
|
/// </summary>
|
|
|
|
|
public double DO { get; set; }
|
|
|
|
|
|
|
|
|
|
[Column("tank_do_value")]
|
|
|
|
|
public double DOValue { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// pH (산도)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("tank_ph")]
|
|
|
|
|
public double PH { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 산화환원전위 (mV)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("tank_orp")]
|
|
|
|
|
public double ORP { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 수온 (°C)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("tank_temperature")]
|
|
|
|
|
public double Temperature { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 유량 (m³/s)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("tank_flow_rate")]
|
|
|
|
|
public double FlowRate { get; set; }
|
|
|
|
|
|
|
|
|
|
public WaterTank(int waterTankNum, double doValue, double ph, double orp, double temperature, double flowRate)
|
|
|
|
|
public WaterTank() { }
|
|
|
|
|
|
|
|
|
|
public WaterTank(int number, double doValue, double ph, double orp, double temperature, double flowRate)
|
|
|
|
|
{
|
|
|
|
|
WaterTankNum = waterTankNum;
|
|
|
|
|
DO = doValue;
|
|
|
|
|
Number = number;
|
|
|
|
|
DOValue = doValue;
|
|
|
|
|
PH = ph;
|
|
|
|
|
ORP = orp;
|
|
|
|
|
Temperature = temperature;
|
|
|
|
|
@ -212,71 +158,85 @@ namespace SmartAquaViewer.DataAnalisys
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Owned]
|
|
|
|
|
public class FilteringSystem
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 모래여과기 전원 (true: ON, false: OFF)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("filter_sand_filter_power")]
|
|
|
|
|
public bool SandFilterPower { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 섬프탱크 pH (산도)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("filter_sump_ph")]
|
|
|
|
|
public double SumpPH { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 섬프탱크 산화환원전위 (mV)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("filter_sump_orp")]
|
|
|
|
|
public double SumpORP { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 섬프탱크 수위 (m)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("filter_sump_water_level")]
|
|
|
|
|
public double SumpWaterLevel { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 섬프탱크 유량 (m³/s)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("filter_sump_flow_rate")]
|
|
|
|
|
public double SumpFlowRate { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 섬프탱크 수온 (°C)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("filter_sump_temperature")]
|
|
|
|
|
public double SumpTemperature { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 순환펌프 전원 (true: ON, false: OFF)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("filter_circulation_pump_power")]
|
|
|
|
|
public bool CirculationPumpPower { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 인버터 제어기 상태
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("filter_inverter_controller_status")]
|
|
|
|
|
public string? InverterControllerStatus { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 순환펌프 유량 (m³/s)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("filter_flow_rate")]
|
|
|
|
|
public double FlowRate { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 히트펌프 전원 (true: ON, false: OFF)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("filter_heat_pump_power")]
|
|
|
|
|
public bool HeatPumpPower { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 히트펌프 온도 (°C)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("filter_heat_pump_temperature")]
|
|
|
|
|
public double HeatPumpTemperature { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 에어브로와 전원 (true: ON, false: OFF)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("filter_air_blower_power")]
|
|
|
|
|
public bool AirBlowerPower { get; set; }
|
|
|
|
|
|
|
|
|
|
public FilteringSystem(bool sandFilterPower,
|
|
|
|
|
double sumpPH, double sumpORP, double sumpWaterLevel, double sumpFlowRate, double sumpTemperature,
|
|
|
|
|
public FilteringSystem() { }
|
|
|
|
|
|
|
|
|
|
public FilteringSystem(
|
|
|
|
|
bool sandFilterPower, double sumpPH, double sumpORP, double sumpWaterLevel, double sumpFlowRate, double sumpTemperature,
|
|
|
|
|
bool circulationPumpPower, string? inverterControllerStatus, double flowRate,
|
|
|
|
|
bool heatPumpPower, double heatPumpTemperature, bool airBlowerPower)
|
|
|
|
|
{
|
|
|
|
|
@ -295,42 +255,50 @@ namespace SmartAquaViewer.DataAnalisys
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Owned]
|
|
|
|
|
public class SterilizingSystem
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 오존 발생기 전원 (true: ON, false: OFF)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("ster_ozone_generator_power")]
|
|
|
|
|
public bool OzoneGeneratorPower { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 자외선 살균기 ID
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("ster_uv_sterilizer_id")]
|
|
|
|
|
public string UVSterilizerId { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 자외선 살균기 전원 (true: ON, false: OFF)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("ster_uv_sterilizer_power")]
|
|
|
|
|
public bool UVSterilizerPower { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 오존용해장치 전원 (true: ON, false: OFF)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("ster_ozone_dissolver_power")]
|
|
|
|
|
public bool OzoneDissolverPower { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 오존용해장치 압력 (kPa)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("ster_ozone_dissolver_pressure")]
|
|
|
|
|
public double OzoneDissolverPressure { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 배오존장치 전원 (true: ON, false: OFF)
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Column("ster_excess_ozone_destroyer_power")]
|
|
|
|
|
public bool ExcessOzoneDestroyerPower { get; set; }
|
|
|
|
|
|
|
|
|
|
public SterilizingSystem(bool ozoneGeneratorPower,
|
|
|
|
|
string uvSterilizerId, bool uvSterilizerPower,
|
|
|
|
|
bool ozoneDissolverPower, double ozoneDissolverPressure,
|
|
|
|
|
bool excessOzoneDestroyerPower)
|
|
|
|
|
public SterilizingSystem() { }
|
|
|
|
|
|
|
|
|
|
public SterilizingSystem(
|
|
|
|
|
bool ozoneGeneratorPower, string uvSterilizerId, bool uvSterilizerPower,
|
|
|
|
|
bool ozoneDissolverPower, double ozoneDissolverPressure, bool excessOzoneDestroyerPower)
|
|
|
|
|
{
|
|
|
|
|
OzoneGeneratorPower = ozoneGeneratorPower;
|
|
|
|
|
UVSterilizerId = uvSterilizerId;
|
|
|
|
|
|