示例#1
0
 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()
示例#2
0
 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)
示例#3
0
 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)
示例#4
0
    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)
示例#5
0
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]
示例#6
0
 def _add_hive(self, svar: StringVar):
     hive = DbAccess.add_hive(svar.get())
     self._add_to_frame(hive)
     svar.set('')
示例#7
0
 def _delete_hive(self, hive: Hive, row_buttons_container, widgets):
     DbAccess.delete_hive(hive)
     row_buttons_container.destroy()
     for widget in widgets:
         widget.destroy()
示例#8
0
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()