Addition mit leben füllen und im HS rechnen

Der Generator hat jetzt das Grundgerüst erstellt und wie in der Hilfe zu lesen ist, muss man jetzt „nur“ noch seinen Python Code im Verzeichnis „src“ einfügen:
„Anfänglich wird der Generator einmal aufgerufen, um die o.g. Dateien zu generieren. Nachdem der Entwickler seinen eigenen Python-Code im Script im Verzeichnis src eingefügt hat, kann der Generator erneut, und zwar beliebig oft, aufgerufen werden. Er generiert dann die „.hsl“- und „.py“-Dateien in den Verzeichnissen release und debug erneut unter Berücksichtigung der zwischenzeitlich durchgeführten Modifikationen (Python-Code Injektion).
Außerdem wird auch der generierte Teil der „.py“-Dateien im Verzeichnis src neu erstellt.“

Das Ziel ist jetzt, den Baustein in den Homeserver zu bekommen und anschließend mit ihm zu rechnen und anders als der Homeserver eigene Baustein, mit mehr als nur 2 Zahlen.

Ihr merkt evtl. schon, dass zwischen diesem Beitrag und den vorherigen Beiträgen etwas Zeit vergangen ist. Dies hatte den Grund, dass ich einfach nicht weiter gekommen bin. Egal wie viele Beispiele ich mir angeschaut habe, nie habe ich kapiert was dort gemacht wurde. Also habe ich etwas herum geraten und es kam immer der Tipp „Lerne Python!“. Da soll nochmal einer sagen, nur Elektriker sind überhebliche Ar…er, das können Programmierer auch sein. Aber sie hatten recht! Also äh alle! 🙂

Also habe ich mir die 24 Videos von hier angeschaut und bei Video 23 bekam ich eine Ahnung und bei Video 24 und etwas Übungen (2-3 Tage) hat es endlich klick gemacht! Besonders wichtig ist Video 23/24, in welchem die Funktionen und Referenzen erklärt werden.

Dadurch wird folgendes klar:
JA WIE ZUM HIMMEL KOMMEN JETZT DIE WERTE IN UND AUS DEM SCH… BAUSTEIN?

Ich habe unzählige Versuche gebraucht, damit mein Baustein so aussah, die Erklärungen dazu findet ihr als Kommentare:

# coding: utf-8
##!!!!##################################################################################################
#### Own written code can be placed above this commentblock . Do not change or delete commentblock! ####
########################################################################################################
##** Code created by generator - DO NOT CHANGE! **##

class AdditionsUEbung19111(hsl20_4.BaseModule):

    def __init__(self, homeserver_context):
        hsl20_4.BaseModule.__init__(self, homeserver_context, "addition")
        self.FRAMEWORK = self._get_framework()
        self.LOGGER = self._get_logger(hsl20_4.LOGGING_NONE,())
        self.PIN_I_INPUT_A=1
        self.PIN_I_INPUT_B=2
        self.PIN_I_INPUT_C=3
        self.PIN_I_INPUT_D=4
        self.PIN_O_ERGEBNIS=1
        self.REM_VALUE_1=1
        self.REM_VALUE_2=2
        self.REM_VALUE_3=3
        self.REM_VALUE_4=4

########################################################################################################
#### Own written code can be placed after this commentblock . Do not change or delete commentblock! ####
###################################################################################################!!!##

## setzt die Variable "Summe" auf den Inhalt 0
    Summe = 0

## Setzt die remanenten Variablen alle auf 0. Ihr könnt das auch weg lassen, dann merkt sich der Baustein bei jedem
## booten den zuletzt empfangen Wert.
    def on_init(self):
        self.REM_VALUE_1 = 0.0
        self.REM_VALUE_2 = 0.0
        self.REM_VALUE_3 = 0.0
        self.REM_VALUE_4 = 0.0

## Jetzt kommt der eigentliche Teil.  Bzw das Programm. Da Gira/Dacom uns das Framework zur Verfügung stellt
## sind die Eingänge und Ausgänge selbst Funktionen, diese werden oben in hsl20_4.BaseModule definiert.
    def on_input_value(self, index, value):
## Diese Zeile bedeutet, wenn der index 1 etwas empfängt, dann setze die Variable 1 auf den Wert (value) des
## Eingang 1 und dann rechne 1+2+3+4 und schreibe das in die eigene Funktion auf den Ausgangs Pin 1, hier Ergebnis.
        if index == 1:
            self.REM_VALUE_1 = value
            Summe = self.REM_VALUE_1 + self.REM_VALUE_2 + self.REM_VALUE_3 + self.REM_VALUE_4
            self._set_output_value(self.PIN_O_ERGEBNIS, Summe)
## Diese Zeile bedeutet, wenn der index 2 etwas empfängt, dann setze die Variable 2 auf den Wert (value) des
## Eingang 2 und dann rechne 1+2+3+4 und schreibe das in die eigene Funktion auf den Ausgangs Pin 1, hier Ergebnis.
        elif index == 2:
            self.REM_VALUE_2 = value
            Summe = self.REM_VALUE_1 + self.REM_VALUE_2 + self.REM_VALUE_3 + self.REM_VALUE_4
            self._set_output_value(self.PIN_O_ERGEBNIS, Summe)
        elif index == 3:
            self.REM_VALUE_3 = value
            Summe = self.REM_VALUE_1 + self.REM_VALUE_2 + self.REM_VALUE_3 + self.REM_VALUE_4
            self._set_output_value(self.PIN_O_ERGEBNIS, Summe)
        elif index == 4:
            self.REM_VALUE_4 = value
            Summe = self.REM_VALUE_1 + self.REM_VALUE_2 + self.REM_VALUE_3 + self.REM_VALUE_4
            self._set_output_value(self.PIN_O_ERGEBNIS, Summe)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert