Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extension for receiving WMBus messages #360

Merged
merged 6 commits into from
Dec 23, 2024
Merged

Extension for receiving WMBus messages #360

merged 6 commits into from
Dec 23, 2024

Conversation

elektron-bbs
Copy link
Contributor

Extension of the SIGNALduino firmware for the reception of WMBus messages (mode C, T and S). Reception is only possible with microprocessors of the type ESP8266 and ESP32.

@elektron-bbs
Copy link
Contributor Author

Im Verzeichnis /SIGNALDuino/src/arduino-ide/SIGNALDuino fehlen noch die Verknüpfungen auf die beiden Dateien mbus.h und mbus.cpp. Ich weiß nicht, wie ich diese erstellen kann.

Wenn ich das bei mir unter PlatformIO kompiliere wird als Version immer 3.5.1 angezeigt. Eigentlich sollte es ja 4.0.0 werden. Keine Ahnung, woher PlatformIO diese alte Versionsnummer herholt.

@elektron-bbs elektron-bbs requested a review from sidey79 November 10, 2024 19:59
remove warnings from CodeFactor:
Redundant blank line at the start of a code block should be deleted. (whitespace/blank_line)
@sidey79
Copy link
Contributor

sidey79 commented Dec 15, 2024

Das ist ein symbolischer Link der mittels git erstellt wurde und die Version kommt aus einer header Datei.

Was den Code selbst angeht, kann ich wenig dazu sagen. Es sind viele Zeilen und die wmbus.cpp scheint auch für codefactor komplex zu sein.
Die hast Du ja vermutlich im großen und ganzen von jemand anderem übernommen, also machts auch kein Sinn das zu refactoren denke ich.

@elektron-bbs
Copy link
Contributor Author

Das ist ein symbolischer Link der mittels git erstellt wurde und die Version kommt aus einer header Datei.

Kannst du bitte die Links erstellen? In Github Desktop finde ich dafür keine Funktion.
Nach der Version habe ich in PlatformIO gesucht, bin aber nicht fündig geworden.

Was den Code selbst angeht, kann ich wenig dazu sagen. Es sind viele Zeilen und die wmbus.cpp scheint auch für codefactor komplex zu sein. Die hast Du ja vermutlich im großen und ganzen von jemand anderem übernommen, also machts auch kein Sinn das zu refactoren denke ich.

Die WMBus-Routinen stammen ursprünglich vom CUL und wurden von Ralf9 und mir etwas modifiziert. Die von CodeFactor bemängelte void zu zerpflücken, nur um so einen Test zu bestehen, halte ich persönlich für wenig zielführend. Für mich ist der Code schlechter lesbar, wenn ich laufend von einer Routine in die nächste springen muss um den Ablauf nachzuvollziehen.

@HomeAutoUser
Copy link
Contributor

@elektron-bbs

Im Verzeichnis /SIGNALDuino/src/arduino-ide/SIGNALDuino fehlen noch die Verknüpfungen auf die beiden Dateien mbus.h und mbus.cpp. Ich weiß nicht, wie ich diese erstellen kann.

Versuche es mal damit | Windows Eingabeaufforderung

-> < VERZEICHNIS >\src\arduino-ide\SIGNALDuino>mklink mbus.h \..\..\mbus.h
symbolische Verknüpfung erstellt für mbus.h <<===>> \..\..\mbus.h

-> < VERZEICHNIS >\src\arduino-ide\SIGNALDuino>mklink mbus.cpp \..\..\mbus.cpp
symbolische Verknüpfung erstellt für mbus.cpp <<===>> \..\..\mbus.cpp

Der Branch ist "protected" daher kann ich nicht direkt in ihm Änderungen vornehmen. Einen zusätzlichen PR auf diesen Branch mit den fehlenden Links spare ich mir um keine Unübersichtlichkeit zu erzeugen.

@sidey79
Copy link
Contributor

sidey79 commented Dec 17, 2024

Mit mklink geht das meiner Erinnerung nach nicht, es gibt im git einen Befehl dafür.

@elektron-bbs
Copy link
Contributor Author

Es scheint aber zu funktionieren. Ich musste aber den führenden Backslash bei den Links jeweils weglassen.
Ich habe anschließend mit unserer gitclone.bat den Branch herunter geladen und mit der Arduino-IDE kompiliert - funktioniert.

@sidey79
Copy link
Contributor

sidey79 commented Dec 23, 2024

Ja, sieht bei mir auch gut aus, würde sagen, wir können es so lassen.

Die Version wird über diesen Python code extrahiert.

Zunächst wird das aktuellste Tag extrahiert:

reftype = os.environ.get('GITHUB_REF_TYPE','local')
basetag = (
    subprocess.check_output(["git", "describe", "--tags", "--first-parent", "--abbrev=1"])
    .strip()
    .decode("utf-8")
)

Und dann je nachdem, ob innerhalb eines branches oder eines tags der compile job läuft die build_versoin zusammen gesetzt:

if (reftype == 'branch') :
    build_version = basetag+os.environ.get('GITHUB_REF_SLUG')+"+"+date
elif (reftype == 'tag') :
    build_version = os.environ.get('GITHUB_REF_SLUG',basetag+"+"+date)
else:
    build_version = basetag+"+"+date


Am Ende wird dann das ganze passend in PROGNAME und PROGVERSE einegsetzt:

# write project hex, bin, elf to nano_bootl_old_CC1101_v350_dev_20200811.hex
env.Replace(PROGNAME="%s" % build_name + "_" + "%s" % build_version)

env.Append(CPPDEFINES=[
    ("PROGVERS",env.StringifyMacro(build_version)),
])

Wenn Das ganze als Version 4 erzeugt werden soll, dann müssen wir nur ein tag setzen und dann sollte es auch als v4 compiliert werden

@elektron-bbs
Copy link
Contributor Author

OK
Ich kann aber nicht mergen, weil CodeFactor mäkelt.

@sidey79 sidey79 merged commit d3bb2c9 into master Dec 23, 2024
18 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants