def start(self): beekeeper = DbAccess.find_beekeeper() if beekeeper is None: self._loginHandler.open() self._loginHandler.add_observer(self.on_bk_found) print('Öffne das Fenster um das Service um einen Token zu bitten.') else: self.on_bk_found(beekeeper) self._window.mainloop()
def _on_ok(self): self._errorLabel.grid_remove() self._frame.update() try: mail = self._emailField.get() token = RestClient.request_token(mail, self._pwdField.get()) if token is not None: DbAccess.persist_token(mail, token) bk = DbAccess.find_beekeeper() for observer in self._observers: observer(bk) else: self._error.set('Ups, das ist ein Fehler passiert.') self._errorLabel.grid(columnspan=4, row=4) except ConnectionError as err: print('error: ', err) self._error.set('Es konnte keine Verbindung zum Server hergestellt werden.') self._errorLabel.grid(columnspan=4, row=4)
def _update_hive(self, hive: Hive, name: str, temp_in, temp_in_prod, temp_out, temp_out_prod, hum_in, hum_in_prod, hum_out, hum_out_prod, weight, weight_prod, update_button: Button, delete_button: Button, calibrate_button: Button, row_num): hive.set_name(name) hive.get_temperature_inside().set_bcm(temp_in) hive.get_temperature_inside().set_product(temp_in_prod) hive.get_temperature_outside().set_bcm(temp_out) hive.get_temperature_outside().set_product(temp_out_prod) hive.get_humidity_inside().set_bcm(hum_in) hive.get_humidity_inside().set_product(hum_in_prod) hive.get_humidity_outside().set_bcm(hum_out) hive.get_humidity_outside().set_product(hum_out_prod) hive.get_weight().set_bcm(weight) hive.get_weight().set_product(weight_prod) DbAccess.update_hive(hive) update_button.grid_remove() #delete_button.grid(row=row_num, column=6) #calibrate_button.grid(row=row_num, column=6) delete_button.grid(row=0, column=0, padx=5) calibrate_button.grid(row=1, column=0, padx=5, pady=2)
def open(self): for widget in self._frame.winfo_children(): widget.destroy() tk.Frame(self._frame, height=30).grid(row=1) self._add_new_hive_component(0) headers = [ '\n Stock-Name', ' GPIO-BCM\n Temp. Innen', ' GPIO-BCM\n Temp. Außen', " GPIO-BCM\n Feucht. Innen", " GPIO-BCM \nFeucht. Außen", " Data,CLK \n Gewicht" ] self._append_headers(headers, headers_row=3) for hive in DbAccess.find_hives(): self._add_to_frame(hive) self._frame.pack(pady=40)
def clean(): print("Cleaning...") GPIO.cleanup() print("Cleaned!") def read_temp(temp_sensor): if temp_sensor.get_product() == 'DHT22': return dht.read_retry(dht.DHT22, int(temp_sensor.get_bcm())) elif temp_sensor.get_product() == 'DHT11': return dht.read_retry(dht.DHT11, int(temp_sensor.get_bcm())) else: print('Unsupported product ', temp_sensor.get_product()) hives = DbAccess.find_hives() beekeeper = DbAccess.find_beekeeper() if beekeeper is not None: for hive in hives: curr_time = dt.now() hive_data = HiveData() hive_data.set_id_beehive(hive.get_id()) hive_data.set_hive_bezeichnung(hive.get_name()) hive_data.set_sored_at(curr_time) if hive.get_calibrated() and hive.get_weight().get_bcm() is not None: try: calibration = DbAccess.find_hive_calibration(hive.get_name()) pins = hive.get_weight().get_bcm().split(",") data_pin = pins[0] clk_pin = pins[1]
def _add_hive(self, svar: StringVar): hive = DbAccess.add_hive(svar.get()) self._add_to_frame(hive) svar.set('')
def _delete_hive(self, hive: Hive, row_buttons_container, widgets): DbAccess.delete_hive(hive) row_buttons_container.destroy() for widget in widgets: widget.destroy()
from at.tama.beechecker.dbaccess import DbAccess from at.tama.beechecker.configuration.main_handler import MainHandler DbAccess.prepare_db() mainHandler = MainHandler() mainHandler.start()
def _satisfied(self): DbAccess.update_hive_calibration(self._calibration) self._close_enabled = True self.cancel()