Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pickle
- import os.path
- class IrrigationProgram:
- program = 0
- units = 0
- water_before_1 = 0
- water_before_2 = 0
- water_after_1 = 0
- water_after_2 = 0
- water_total_1 = 0
- water_total_2 = 0
- kicks = 0
- fertilization_program = 0
- condition_program = 0
- time_start_1 = 0
- time_start_2 = 0
- time_between_1 = 0
- time_between_2 = 0
- valves = ""
- class FertilizationProgram:
- program = 0
- values_1 = 0.0
- values_2 = 0.0
- values_3 = 0.0
- values_4 = 0.0
- values_5 = 0.0
- values_6 = 0.0
- values_7 = 0.0
- values_8 = 0.0
- ec = 0.0
- ph = 0.0
- class InyectionProgram:
- program = 1
- flow = 600
- time_on = 10
- litres_pulse = 100
- max_deviation = 70
- simulator = True
- class ControllerState:
- last_update = 0
- allIrrigation = dict()
- allFertilization = dict()
- allInyection = dict()
- username = None
- password = None
- def load_from_file(path):
- if os.path.isfile(path):
- with open(path, 'rb') as in_file:
- return(pickle.load(in_file))
- def load_from_json(self, json):
- self.last_update = int(json['update'])
- for fert in json["fertilizer_prog"]:
- fertProg = FertilizationProgram()
- fertProg.program = fert["program"]
- fertProg.ec = fert["ec"]
- fertProg.ph = fert["ph"]
- fertProg.values_1 = fert["value_1"]
- fertProg.values_2 = fert["value_2"]
- fertProg.values_3 = fert["value_3"]
- fertProg.values_4 = fert["value_4"]
- fertProg.values_5 = fert["value_5"]
- fertProg.values_6 = fert["value_6"]
- fertProg.values_7 = fert["value_7"]
- fertProg.values_8 = fert["value_8"]
- self.allFertilization[fertProg.program] = fertProg
- for irr in json["irrigation_prog"]:
- irrProg = IrrigationProgram()
- irrProg.program = irr["program"]
- irrProg.units = irr["units"]
- irrProg.water_before_1 = irr["water_before_1"]
- irrProg.water_before_2 = irr["water_before_2"]
- irrProg.water_after_1 = irr["water_after_1"]
- irrProg.water_after_2 = irr["water_after_2"]
- irrProg.water_total_1 = irr["water_total_1"]
- irrProg.water_total_2 = irr["water_total_2"]
- irrProg.kicks = irr["kicks"]
- irrProg.fertilization_program = irr["fertilization_program"]
- irrProg.condition_program = irr["condition_program"]
- irrProg.time_start_1 = irr["time_start_1"]
- irrProg.time_start_2 = irr["time_start_2"]
- irrProg.time_between_1 = irr["time_between_1"]
- irrProg.time_between_2 = irr["time_between_2"]
- irrProg.valves = irr["valves"]
- self.allIrrigation[irrProg.program] = irrProg
- # TODO valves
- for iny in json["inyection_prog"]:
- inyProg = InyectionProgram()
- inyProg.program = iny["program"]
- inyProg.flow = iny["flow"]
- inyProg.time_on = iny["time_on"]
- inyProg.litres_pulse = iny["litres_pulse"]
- inyProg.max_deviation = iny["max_deviation"]
- inyProg.simulator = iny["simulator"]
- self.allInyection[inyProg.program] = inyProg
- def save_to_file(self, filename):
- pickle.dumps(self)
- with open(filename, 'wb') as out_file:
- pickle.dump(self, out_file)
- def __eq__(self, other):
- if self.last_update == other.last_update and\
- self.allInyection == other.allInyection and\
- self.allFertilization == other.allFertilization and\
- self.allIrrigation == other.allIrrigation:
- return True
- else:
- return False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement