diff --git a/ml/dt_factory.py b/ml/dt_factory.py index bc6a74591746b7629bd85dd02eb7a1dd4e0f0ff7..d521cb619087795aaa95711a55a785ed36ecfd77 100644 --- a/ml/dt_factory.py +++ b/ml/dt_factory.py @@ -8,7 +8,8 @@ from ml.parameters import Parameters from ml.entry import Entry from ml.thing import Thing -from ml.ml40.roles.servives.service import Service +from ml.ml40.roles.services.service import Service +from ml.ml40.roles.services.openweather_service import OpenWeatherService from ml.ml40.roles.hmis.app import App from ml.ml40.roles.hmis.dashboard import Dashboard from ml.ml40.roles.hmis.machine_ui import MachineUI @@ -65,6 +66,15 @@ from ml.mml40.roles.dts.parts.cantilever import Cantilever from ml.mml40.roles.dts.sensors.strain_gauge import StrainGauge +from ml.wml40.roles.dts.sensors.waterlevelflowsensor import WaterLevelFlowSensor +from ml.wml40.roles.dts.sites.damwall import DamWall +from ml.wml40.roles.dts.sites.waterqualitymeasuringpoint import WaterQualityMeasuringPoint +from ml.wml40.roles.dts.sites.waterretainingstructure import WaterRetainingStructure +from ml.wml40.roles.dts.water.inflow import Inflow +from ml.wml40.roles.dts.water.outflow import Outflow +from ml.wml40.roles.dts.water.water import Water +from ml.wml40.roles.dts.water.waterreservoir import WaterReservoir + from ml.ml40.features.properties.associations.association import Association from ml.ml40.features.properties.associations.composite import Composite from ml.ml40.features.properties.property import Property @@ -74,11 +84,14 @@ from ml.ml40.features.properties.values.dimensions import Dimensions from ml.ml40.features.properties.values.distance import Distance from ml.ml40.features.properties.values.expansion_length import ExpansionLength +from ml.ml40.features.properties.values.financialvalue import FinancialValue from ml.ml40.features.properties.values.force import Force from ml.ml40.features.properties.values.generic_property import GenericProperty from ml.ml40.features.properties.values.last_service_check import LastServiceCheck from ml.ml40.features.properties.values.lot import Lot from ml.ml40.features.properties.values.lift import Lift +from ml.ml40.features.properties.values.linestring import LineString +from ml.ml40.features.properties.values.linestring_wkt import LineStringWKT from ml.ml40.features.properties.values.liquid_filling_level import LiquidFillingLevel from ml.ml40.features.properties.values.location import Location from ml.ml40.features.properties.values.moisture import Moisture @@ -87,9 +100,13 @@ from ml.ml40.features.properties.values.personal_name import PersonalName from ml.ml40.features.properties.values.rotational_speed import RotationalSpeed from ml.ml40.features.properties.values.route import Route +from ml.ml40.features.properties.values.srid import SRID +from ml.ml40.features.properties.values.surface import Surface +from ml.ml40.features.properties.values.surface_wkt import SurfaceWKT from ml.ml40.features.properties.values.switching_stage import SwitchingStage from ml.ml40.features.properties.values.temperature import Temperature from ml.ml40.features.properties.values.time_slot import TimeSlot +from ml.ml40.features.properties.values.weatherdata import WeatherData from ml.ml40.features.properties.values.weight import Weight from ml.ml40.features.properties.values.documents.jobs.generic_job import GenericJob from ml.ml40.features.properties.values.documents.jobs.job import Job @@ -103,6 +120,7 @@ from ml.fml40.features.properties.values.dbh import DBH from ml.fml40.features.properties.values.fell_indicator import FellIndicator from ml.fml40.features.properties.values.felling_period import FellingPeriod +from ml.fml40.features.properties.values.groundclassificationmap import GroundClassificationMap from ml.fml40.features.properties.values.harvesting_parameter import HarvestingParameters from ml.fml40.features.properties.values.harvested_volume import HarvestedVolume from ml.fml40.features.properties.values.interfering_branches import InterferingBranches @@ -115,6 +133,7 @@ from ml.fml40.features.properties.values.tilt import Tilt from ml.fml40.features.properties.values.tree_data import TreeData from ml.fml40.features.properties.values.tree_type import TreeType +from ml.fml40.features.properties.values.vegetationindexmap import VegetationIndexMap from ml.fml40.features.properties.values.vitality_status import VitalityStatus from ml.fml40.features.properties.values.wood_quality import WoodQuality @@ -138,6 +157,10 @@ from ml.mml40.features.properties.values.MaterialProperties import MaterialProperties from ml.mml40.features.properties.values.Stretch import Stretch +from ml.wml40.features.properties.values.waterflow import WaterFlow +from ml.wml40.features.properties.values.waterlevel import WaterLevel +from ml.wml40.features.properties.values.waterquality import WaterQuality + from ml.ml40.features.functionalities.accepts_jobs import AcceptsJobs from ml.ml40.features.functionalities.accepts_reports import AcceptsReports @@ -147,6 +170,7 @@ from ml.ml40.features.functionalities.plans_routes import PlansRoutes from ml.ml40.features.functionalities.provides_map_data import ProvidesMapData from ml.ml40.features.functionalities.provides_operational_data import ProvidesOperationalData +from ml.ml40.features.functionalities.provides_weather_data import ProvidesWeatherData from ml.ml40.features.functionalities.renders import Renders from ml.fml40.features.functionalities.accepts_felling_jobs import AcceptsFellingJobs @@ -178,6 +202,7 @@ from ml.fml40.features.functionalities.provides_moisture_prediction import ProvidesMoisturePrediction from ml.fml40.features.functionalities.provides_passability_information import ProvidesPassabilityInformation from ml.fml40.features.functionalities.provides_production_data import ProvidesProductionData +from ml.fml40.features.functionalities.provides_soil_data import ProvidesSoilData from ml.fml40.features.functionalities.provides_tree_data import ProvidesTreeData from ml.fml40.features.functionalities.provides_weather_data import ProvidesWeatherData from ml.fml40.features.functionalities.simulates_tree_growth import SimulatesTreeGrowth @@ -188,6 +213,10 @@ from ml.mml40.features.functionalities.ProvidesDisplacementData import ProvidesDisplacementData from ml.mml40.features.functionalities.ProvidesForceData import ProvidesForceData from ml.mml40.features.functionalities.ProvidesStretchData import ProvidesStretchData + +from ml.wml40.features.functionalities.provides_water_data import ProvidesWaterData +from ml.wml40.features.functionalities.provides_water_quality_data import ProvidesWaterQualityData + # TODO: Get rid of this global variable # TODO: automatically get all classes in module DT_FACTORY = {} @@ -413,9 +442,9 @@ def create_thing( def _create_thing(model, grant_type="password", secret="", username=None, password=None, - is_broker_rest=False, - is_broker=False, - is_repo=False): + is_broker_rest=False, + is_broker=False, + is_repo=False): """ Creates and launches a thing which connects to the S3I @@ -458,7 +487,7 @@ def _create_thing(model, grant_type="password", password=password, is_broker_rest=is_broker_rest, is_broker=is_broker, - is_repo=is_repo + is_repo=is_repo ) build(thing_ref, model) diff --git a/ml/fml40/features/functionalities/provides_soil_data.py b/ml/fml40/features/functionalities/provides_soil_data.py new file mode 100644 index 0000000000000000000000000000000000000000..dcdda9ca141c5fc028ba24c6ee5691d3f7cd2baf --- /dev/null +++ b/ml/fml40/features/functionalities/provides_soil_data.py @@ -0,0 +1,28 @@ +from ml.ml40.features.functionalities.functionality import Functionality +from ml.ml40.features.properties.values.moisture import Moisture +from ml.ml40.features.properties.values.temperature import Temperature + + +class ProvidesSoilData(Functionality): + def __init__(self, namespace="fml40", name="", identifier="", parent=None): + """Initializes the object. + + :param name: Object name + :param identifier: Identifier + + """ + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) + + def getLatestMoisture(self) -> Moisture: + pass + + def getMoistureDataSeries(self, startTime, endTime) -> [Moisture]: + pass + + def getLatestTemperature(self) -> Temperature: + pass + + def getTemperatureDataSeries(self, startTime, endTime) -> [Temperature]: + pass diff --git a/ml/ml40/features/functionalities/provides_weather_data.py b/ml/ml40/features/functionalities/provides_weather_data.py new file mode 100644 index 0000000000000000000000000000000000000000..50f7f3f25a347619d4762885c9da3e93865e4c88 --- /dev/null +++ b/ml/ml40/features/functionalities/provides_weather_data.py @@ -0,0 +1,21 @@ +from ml.ml40.features.functionalities.functionality import Functionality +from ml.ml40.features.properties.values.weatherdata import WeatherData + + +class ProvidesWeatherData(Functionality): + def __init__(self, namespace="ml40", name="", identifier="", parent=None): + """Initializes the object. + + :param name: Object name + :param identifier: Identifier + + """ + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) + + def getLatestWeatherData(self) -> WeatherData: + pass + + def getWeatherDataSeries(self, startTime, endTime) -> [WeatherData]: + pass diff --git a/ml/ml40/features/properties/values/linestring.py b/ml/ml40/features/properties/values/linestring.py new file mode 100644 index 0000000000000000000000000000000000000000..ca01eafdc8e0a2bf3e634b7b0f51c0c1b5c711bf --- /dev/null +++ b/ml/ml40/features/properties/values/linestring.py @@ -0,0 +1,15 @@ +from ml.ml40.features.properties.values.value import Value + + +class LineString(Value): + def __init__(self, namespace="ml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) + + self.__json_out = dict() + + + def to_json(self): + self.__json_out = super().to_json() + return self.__json_out diff --git a/ml/ml40/features/properties/values/linestring_wkt.py b/ml/ml40/features/properties/values/linestring_wkt.py new file mode 100644 index 0000000000000000000000000000000000000000..0f878ae9ea7d891ea9ce6aa58c583bfeba4201e2 --- /dev/null +++ b/ml/ml40/features/properties/values/linestring_wkt.py @@ -0,0 +1,26 @@ +from ml.ml40.features.properties.values.linestring import LineString + + +class LineStringWKT(LineString): + def __init__(self, namespace="ml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) + self.__wkt = None + self.__json_out = dict() + + + @propertiy + def wkt(self): + return self.__wkt + + @wkt.setter + def wkt(self, value): + self.__wkt = value + + def to_json(self): + self.__json_out = super().to_json() + if self.__wkt is not None: + self.__json_out["wkt"] = self.__wkt + return self.__json_out + diff --git a/ml/ml40/features/properties/values/moisture.py b/ml/ml40/features/properties/values/moisture.py index e94fb109ece474408c5bd52d1f5fd081711d33ca..7d3e5a2d017139e9db785a8d9b7565342c0a9d3f 100644 --- a/ml/ml40/features/properties/values/moisture.py +++ b/ml/ml40/features/properties/values/moisture.py @@ -7,7 +7,8 @@ def __init__(self, namespace="ml40", name="", identifier="", parent=None): namespace=namespace, name=name, identifier=identifier, parent=parent ) self.__humidity = None - self.__join_out = dict() + self.__latestTime = None + self.__json_out = dict() @property def humidity(self): @@ -17,8 +18,18 @@ def humidity(self): def humidity(self, value): self.__humidity = value + @property + def latestTime(self): + return self.__latestTime + + @latestTime.setter + def latestTime(self, value): + self.__latestTime = value + def to_json(self): - self.__join_out = super().to_json() + self.__json_out = super().to_json() if self.humidity is not None: - self.__join_out["humidity"] = self.humidity - return self.__join_out + self.__json_out["humidity"] = self.humidity + if self.latestTime is not None: + self.__json_out["latestTime"] = self.latestTime + return self.__json_out diff --git a/ml/ml40/features/properties/values/temperature.py b/ml/ml40/features/properties/values/temperature.py index 15e35163100c1c9bd5d231829eeaf666d3c5fcfd..2b5b3e3bfdbbef55a29020fa69acb3a340665842 100644 --- a/ml/ml40/features/properties/values/temperature.py +++ b/ml/ml40/features/properties/values/temperature.py @@ -7,6 +7,7 @@ def __init__(self, namespace="ml40", name="", identifier="", parent=None): namespace=namespace, name=name, identifier=identifier, parent=parent ) self.__temperature = None + self.__latestTime = None self.__json_out = dict() @property @@ -19,9 +20,19 @@ def temperature(self, value): self.__temperature = value else: raise TypeError + + @property + def latestTime(self): + return self.__latestTime + + @latestTime.setter + def latestTime(self, value): + self.__latestTime = value def to_json(self): self.__json_out = super().to_json() if self.temperature is not None: self.__json_out["temperature"] = self.temperature + if self.latestTime is not None: + self.__json_out["latestTime"] = self.latestTime return self.__json_out diff --git a/ml/ml40/features/properties/values/weatherdata.py b/ml/ml40/features/properties/values/weatherdata.py new file mode 100644 index 0000000000000000000000000000000000000000..d9fa52d7d664eab16a5014d0c9c04543f7deeb90 --- /dev/null +++ b/ml/ml40/features/properties/values/weatherdata.py @@ -0,0 +1,90 @@ +from ml.ml40.features.properties.values.value import Value + + +class WeatherData(Value): + def __init__(self, namespace="ml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) + self.__latestTime = None + self.__latestClouds = None + self.__latestDetailedStatus = None + self.__latestHumidity = None + self.__latestRain = None + self.__latestStatus = None + self.__latestTemperature = None + self.__json_out = {} + + @property + def latestTime(self): + return self.__latestTime + + @latestTime.setter + def latestTime(self, value): + self.__latestTime = value + + @property + def latestClouds(self): + return self.__latestClouds + + @latestClouds.setter + def latestClouds(self, value): + self.__latestClouds = value + + @property + def latestDetailedStatus(self): + return self.__latestDetailedStatus + + @latestDetailedStatus.setter + def latestDetailedStatus(self, value): + self.__latestDetailedStatus = value + + @property + def latestHumidity(self): + return self.__latestHumidity + + @latestHumidity.setter + def latestHumidity(self, value): + self.__latestHumidity = value + + @property + def latestRain(self): + return self.__latestRain + + @latestRain.setter + def latestRain(self, value): + self.__latestRain = value + + @property + def latestStatus(self): + return self.__latestStatus + + @latestStatus.setter + def latestStatus(self, value): + self.__latestStatus = value + + @property + def latestTemperature(self): + return self.__latestTemperature + + @latestTemperature.setter + def latestTemperature(self, value): + self.__latestTemperature = value + + def to_json(self): + self.__json_out = super().to_json() + if self.latestTime is not None: + self.__json_out["latestTime"] = self.latestTime + if self.latestClouds is not None: + self.__json_out["latestClouds"] = self.latestClouds + if self.latestDetailedStatus is not None: + self.__json_out["latestDetailedStatus"] = self.latestDetailedStatus + if self.latestHumidity is not None: + self.__json_out["latestHumidity"] = self.latestHumidity + if self.latestRain is not None: + self.__json_out["latestRain"] = self.latestRain + if self.latestStatus is not None: + self.__json_out["latestStatus"] = self.latestStatus + if self.latestTemperature is not None: + self.__json_out["latestTemperature"] = self.latestTemperature + return self.__json_out \ No newline at end of file diff --git a/ml/ml40/roles/servives/__init__.py b/ml/ml40/roles/services/__init__.py similarity index 100% rename from ml/ml40/roles/servives/__init__.py rename to ml/ml40/roles/services/__init__.py diff --git a/ml/ml40/roles/services/openweather_service.py b/ml/ml40/roles/services/openweather_service.py new file mode 100644 index 0000000000000000000000000000000000000000..c83085defde1e029dd85f744baa81dfae7a0f6fa --- /dev/null +++ b/ml/ml40/roles/services/openweather_service.py @@ -0,0 +1,13 @@ +from ml.ml40.roles.services.service import Service + + +class OpenWeatherService(Service): + def __init__(self, namespace="ml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) + + + + + diff --git a/ml/ml40/roles/servives/service.py b/ml/ml40/roles/services/service.py similarity index 100% rename from ml/ml40/roles/servives/service.py rename to ml/ml40/roles/services/service.py diff --git a/ml/tools.py b/ml/tools.py index 28e7c71c783fce321e9e8303bdc6fcf3b1b0b936..7a5030b050ba79882d820bc91329c346c91ca067 100644 --- a/ml/tools.py +++ b/ml/tools.py @@ -162,7 +162,7 @@ def remove_namespace(input_str): :rtype: str """ - return input_str.replace("mml40::", "").replace("fml40::", "").replace("ml40::", "") + return input_str.replace("wml40::", "").replace("mml40::", "").replace("fml40::", "").replace("ml40::", "") def check_var_conflict(var): diff --git a/ml/wml40/__init__.py b/ml/wml40/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ml/wml40/features/__init__.py b/ml/wml40/features/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ml/wml40/features/functionalities/__init__.py b/ml/wml40/features/functionalities/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ml/wml40/features/functionalities/provides_water_data.py b/ml/wml40/features/functionalities/provides_water_data.py new file mode 100644 index 0000000000000000000000000000000000000000..607868935e9b2365b58e5c88f789fd2e5e07868e --- /dev/null +++ b/ml/wml40/features/functionalities/provides_water_data.py @@ -0,0 +1,29 @@ +from ml.ml40.features.functionalities.functionality import Functionality +from ml.wml40.features.properties.values.waterlevel import WaterLevel +from ml.wml40.features.properties.values.waterflow import WaterFlow + + +class ProvidesWaterData(Functionality): + def __init__(self, namespace="wml40", name="", identifier="", parent=None): + """Initializes the object. + + :param name: Object name + :param identifier: Identifier + + """ + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) + + def getLatestLevel(self) -> WaterLevel: + pass + + def getLevelDataSeries(self, startTime, endTime) -> [WaterLevel]: + return "Dataseries Data is huge" + + + def getLatestFlow(self) -> WaterFlow: + pass + + def getFlowDataSeries(self, startTime, endTime) -> [WaterFlow]: + pass diff --git a/ml/wml40/features/functionalities/provides_water_quality_data.py b/ml/wml40/features/functionalities/provides_water_quality_data.py new file mode 100644 index 0000000000000000000000000000000000000000..856d0a0bd2e473223d317899799af0733721bc13 --- /dev/null +++ b/ml/wml40/features/functionalities/provides_water_quality_data.py @@ -0,0 +1,20 @@ +from ml.ml40.features.functionalities.functionality import Functionality +from ml.wml40.features.properties.values.waterquality import WaterQuality + + +class ProvidesWaterQualityData(Functionality): + def __init__(self, namespace="wml40", name="", identifier="", parent=None): + """Initializes the object. + + :param name: Object name + :param identifier: Identifier + + """ + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) + + def getQualityTimeSeries(self, startTime, endTime) -> [WaterQuality]: + pass + + diff --git a/ml/wml40/features/properties/__init__.py b/ml/wml40/features/properties/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ml/wml40/features/properties/values/__init__.py b/ml/wml40/features/properties/values/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ml/wml40/features/properties/values/waterflow.py b/ml/wml40/features/properties/values/waterflow.py new file mode 100644 index 0000000000000000000000000000000000000000..1eed94db2be64f691397ddadc1020385e34cea07 --- /dev/null +++ b/ml/wml40/features/properties/values/waterflow.py @@ -0,0 +1,35 @@ +from ml.ml40.features.properties.values.value import Value + + +class WaterFlow(Value): + def __init__(self, namespace="wml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) + self.__latestTime = None + self.__latestValue = None + self.__json_out = {} + + @property + def latestTime(self): + return self.__latestTime + + @latestTime.setter + def latestTime(self, value): + self.__latestTime = value + + @property + def latestValue(self): + return self.__latestValue + + @latestValue.setter + def latestValue(self, value): + self.__latestValue = value + + def to_json(self): + self.__json_out = super().to_json() + if self.latestTime is not None: + self.__json_out["latestTime"] = self.latestTime + if self.latestValue is not None: + self.__json_out["latestValue"] = self.latestValue + return self.__json_out diff --git a/ml/wml40/features/properties/values/waterlevel.py b/ml/wml40/features/properties/values/waterlevel.py new file mode 100644 index 0000000000000000000000000000000000000000..1f54a6d213cb9180eb954a008899244b0ecf4588 --- /dev/null +++ b/ml/wml40/features/properties/values/waterlevel.py @@ -0,0 +1,47 @@ +from ml.ml40.features.properties.values.value import Value + + +class WaterLevel(Value): + def __init__(self, namespace="wml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) + self.__latestTime = None + self.__latestValue = None + self.__upperLimit = None + self.__json_out = {} + + @property + def latestTime(self): + return self.__latestTime + + @latestTime.setter + def latestTime(self, value): + self.__latestTime = value + + @property + def latestValue(self): + return self.__latestValue + + @latestValue.setter + def latestValue(self, value): + self.__latestValue = value + + @property + def upperLimit(self): + return self.__upperLimit + + @upperLimit.setter + def upperLimit(self, value): + self.__upperLimit = value + + def to_json(self): + self.__json_out = super().to_json() + if self.latestTime is not None: + self.__json_out["latestTime"] = self.latestTime + if self.latestValue is not None: + self.__json_out["latestValue"] = self.latestValue + if self.upperLimit is not None: + self.__json_out["upperLimit"] = self.upperLimit + return self.__json_out + diff --git a/ml/wml40/features/properties/values/waterquality.py b/ml/wml40/features/properties/values/waterquality.py new file mode 100644 index 0000000000000000000000000000000000000000..3fa8c6466c67d9e824e616c391a8c345965a0a6c --- /dev/null +++ b/ml/wml40/features/properties/values/waterquality.py @@ -0,0 +1,101 @@ +from ml.ml40.features.properties.values.value import Value + + +class WaterQuality(Value): + def __init__(self, namespace="wml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) + self.__latestInorgN = None + self.__latestNH4N = None + self.__latestNO2N = None + self.__latestNO3N = None + self.__latestPHValue = None + self.__latestTime = None + self.__latestTOC = None + self.__latestTP = None + self.__json_out = {} + + @property + def latestInorgN(self): + return self.__latestInorgN + + @latestInorgN.setter + def latestInorgN(self, value): + self.__latestInorgN = value + + @property + def latestNH4N(self): + return self.__latestValue + + @latestNH4N.setter + def latestNH4N(self, value): + self.__latestValue = value + + @property + def latestNO2N(self): + return self.__latestNO2 + + @latestNO2N.setter + def latestNO2N(self, value): + self.__latestNO2 = value + + @property + def latestNO3N(self): + return self.__latestNO3 + + @latestNO3N.setter + def latestNO3N(self, value): + self.__latestNO3 = value + + @property + def latestPHValue(self): + return self.__latestPHValue + + @latestPHValue.setter + def latestPHValue(self, value): + self.__latestPHValue = value + + @property + def latestTime(self): + return self.__latestTime + + @latestTime.setter + def latestTime(self, value): + self.__latestTime = value + + @property + def latestTOC(self): + return self.__latestTOC + + @latestTOC.setter + def latestTOC(self, value): + self.__latestTOC = value + + @property + def latestTP(self): + return self.__latestTP + + @latestTP.setter + def latestTP(self, value): + self.__latestTP = value + + def to_json(self): + self.__json_out = super().to_json() + if self.latestInorgN is not None: + self.__json_out["latestInorgN"] = self.latestInorgN + if self.latestNH4N is not None: + self.__json_out["latestNH4N"] = self.latestNH4N + if self.latestNO2N is not None: + self.__json_out["latestNO2N"] = self.latestNO2N + if self.latestNO3N is not None: + self.__json_out["latestNO3N"] = self.latestNO3N + if self.latestPHValue is not None: + self.__json_out["latestPHValue"] = self.latestPHValue + if self.latestTime is not None: + self.__json_out["latestTime"] = self.latestTime + if self.latestTOC is not None: + self.__json_out["latestTOC"] = self.latestTOC + if self.latestTP is not None: + self.__json_out["latestTP"] = self.latestTP + return self.__json_out diff --git a/ml/wml40/roles/__init__.py b/ml/wml40/roles/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ml/wml40/roles/dts/__init__.py b/ml/wml40/roles/dts/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ml/wml40/roles/dts/sensors/__init__.py b/ml/wml40/roles/dts/sensors/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ml/wml40/roles/dts/sensors/waterlevelflowsensor.py b/ml/wml40/roles/dts/sensors/waterlevelflowsensor.py new file mode 100644 index 0000000000000000000000000000000000000000..75bfd40f557e620f08f33b40b6d781d71fa8f0b1 --- /dev/null +++ b/ml/wml40/roles/dts/sensors/waterlevelflowsensor.py @@ -0,0 +1,8 @@ +from ml.ml40.roles.dts.sensors.sensor import Sensor + + +class WaterLevelFlowSensor(Sensor): + def __init__(self, namespace="wml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) diff --git a/ml/wml40/roles/dts/sites/__init__.py b/ml/wml40/roles/dts/sites/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ml/wml40/roles/dts/sites/damwall.py b/ml/wml40/roles/dts/sites/damwall.py new file mode 100644 index 0000000000000000000000000000000000000000..2452e1d672f85fb3c47efa4e47930f043e072c41 --- /dev/null +++ b/ml/wml40/roles/dts/sites/damwall.py @@ -0,0 +1,8 @@ +from ml.ml40.roles.dts.sites.site import Site + + +class DamWall(Site): + def __init__(self, namespace="wml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) diff --git a/ml/wml40/roles/dts/sites/waterqualitymeasuringpoint.py b/ml/wml40/roles/dts/sites/waterqualitymeasuringpoint.py new file mode 100644 index 0000000000000000000000000000000000000000..e2f98df6ebbc205dc6b5933d8de51de0949f3805 --- /dev/null +++ b/ml/wml40/roles/dts/sites/waterqualitymeasuringpoint.py @@ -0,0 +1,8 @@ +from ml.ml40.roles.dts.sites.site import Site + + +class WaterQualityMeasuringPoint(Site): + def __init__(self, namespace="wml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) diff --git a/ml/wml40/roles/dts/sites/waterretainingstructure.py b/ml/wml40/roles/dts/sites/waterretainingstructure.py new file mode 100644 index 0000000000000000000000000000000000000000..c8c32c40bfafe0cdce01dab5eed850899a208b29 --- /dev/null +++ b/ml/wml40/roles/dts/sites/waterretainingstructure.py @@ -0,0 +1,8 @@ +from ml.ml40.roles.dts.sites.site import Site + + +class WaterRetainingStructure(Site): + def __init__(self, namespace="wml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) diff --git a/ml/wml40/roles/dts/water/inflow.py b/ml/wml40/roles/dts/water/inflow.py new file mode 100644 index 0000000000000000000000000000000000000000..af0ac3fbe1e08dd5380b30e501bd70fececff44a --- /dev/null +++ b/ml/wml40/roles/dts/water/inflow.py @@ -0,0 +1,8 @@ +from ml.wml40.roles.dts.water.water import Water + + +class Inflow(Water): + def __init__(self, namespace="wml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) diff --git a/ml/wml40/roles/dts/water/outflow.py b/ml/wml40/roles/dts/water/outflow.py new file mode 100644 index 0000000000000000000000000000000000000000..e7ca26ceda056db38a7496e9d35bfd22c23da407 --- /dev/null +++ b/ml/wml40/roles/dts/water/outflow.py @@ -0,0 +1,8 @@ +from ml.wml40.roles.dts.water.water import Water + + +class Outflow(Water): + def __init__(self, namespace="wml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) diff --git a/ml/wml40/roles/dts/water/water.py b/ml/wml40/roles/dts/water/water.py new file mode 100644 index 0000000000000000000000000000000000000000..803819262a5b5896c4420c4b788dd282ac2dfa84 --- /dev/null +++ b/ml/wml40/roles/dts/water/water.py @@ -0,0 +1,8 @@ +from ml.ml40.roles.dts.dt import DT + + +class Water(DT): + def __init__(self, namespace="wml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) diff --git a/ml/wml40/roles/dts/water/waterreservoir.py b/ml/wml40/roles/dts/water/waterreservoir.py new file mode 100644 index 0000000000000000000000000000000000000000..a04123e86c8ea3a2b4d436867fad03b46f0c6335 --- /dev/null +++ b/ml/wml40/roles/dts/water/waterreservoir.py @@ -0,0 +1,8 @@ +from ml.wml40.roles.dts.water.water import Water + + +class WaterReservoir(Water): + def __init__(self, namespace="wml40", name="", identifier="", parent=None): + super().__init__( + namespace=namespace, name=name, identifier=identifier, parent=parent + ) diff --git a/ml/wml40/roles/hmis/__init__.py b/ml/wml40/roles/hmis/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ml/wml40/roles/services/__init__.py b/ml/wml40/roles/services/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391