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

Issue compiling newest release after you implememented the new functionality in screensave.c #95

Open
magixxx66 opened this issue Dec 22, 2024 · 12 comments

Comments

@magixxx66
Copy link

pi@raspberrypi:~/E3dcGui $ make
rm copyPara
cc -O1 copyPara.c -o copyPara
rm watchdog
g++ -O1 Watchdog.cpp -o watchdog
rm screenSave
rm: cannot remove 'screenSave': No such file or directory
make: [Makefile:54: cleanSS] Error 1 (ignored)
cc -O1 screenSave.c -o screenSave
screenSave.c: In function ‘main’:
screenSave.c:190:37: error: ‘WBHALTX’ undeclared (first use in this function)
190 | int buttonCordsWbHalt[4] = {WBHALTX,WBHALTY,82,30};
| ^~~~~~~
screenSave.c:190:37: note: each undeclared identifier is reported only once for each function it appears in
screenSave.c:190:45: error: ‘WBHALTY’ undeclared (first use in this function)
190 | int buttonCordsWbHalt[4] = {WBHALTX,WBHALTY,82,30};
| ^~~~~~~
screenSave.c:192:39: error: ‘WBWEITERX’ undeclared (first use in this function)
192 | int buttonCordsWbWeiter[4] = {WBWEITERX,WBWEITERY,82,30};
| ^~~~~~~~~
screenSave.c:192:49: error: ‘WBWEITERY’ undeclared (first use in this function)
192 | int buttonCordsWbWeiter[4] = {WBWEITERX,WBWEITERY,82,30};
| ^~~~~~~~~
make: *** [Makefile:25: screenSave] Error 1

nischram added a commit that referenced this issue Dec 22, 2024
@nischram
Copy link
Owner

Hallo "magxx66",

da sind mir Parameter in der "define.h" durch die Lappen gegangen.
Ich teste an meinem Raspberry und muss dann alle Änderungen von Hand in das Github-Original übertragen. So habe ich leider was vergessen. Ist nun mit Version 2.25 hochgeladen.

Gruß Nico

@magixxx66
Copy link
Author

Hi Nico - Danke Dir schonmal.
hmm - da fehlt aber trotzdem noch was

rm GuiMain
rm: cannot remove 'GuiMain': No such file or directory
make: [Makefile:58: cleanGM] Error 1 (ignored)
cc -O1 GuiMain.c -lcurl -o GuiMain -lwiringPi
In file included from External/WetterGui.h:9,
from GuiMain.c:33:
External/weather/get_weather_data.h:8:10: fatal error: curl/curl.h: No such file or directory
8 | #include <curl/curl.h>
| ^~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:29: GuiMain] Error 1

Curl ist installiert. Das kann also eigentlich nicht das prob sein.

@nischram
Copy link
Owner

Hey,

das hat nicht mit dem letzten Update zu tun, da musst du auf deinem Raspberry noch die library für CURL installieren. Das ist im Kapitel zum Wetter ganz am Ende beschrieben.
https://github.com/nischram/E3dcGui?tab=readme-ov-file#2-wetteranzeige

Ich habe zwar einen "Schalter" mit #define wetterGui 1 eingebaut ob man das Wetter nutzen will oder nicht, aber die Grundfunktionen dazu habe ich nicht mit diesem "Schalter" versehen, so muss man CURL in jedem Fall installieren.

Du schreibst zwar, dass es installiert sei, aber vielleicht ist die Installation nicht im Ordner "curl/curl.h" zu finden.
Wenn du "Wetter" nicht nutzen möchtest könntest du versuchen in der "GuiMain.c" die Zeile 33 Auszukommentieren also nachher so:
// #include "External/WetterGui.h"
(ich kann aber auf die schnelle nicht testen welche anderen folgen dies haben könnte.

Gruß Nico

@magixxx66
Copy link
Author

magixxx66 commented Dec 23, 2024

Also Curl ist echt ein Thema. Nachdem ich

// #include "External/WetterGui.h"

auskommentiert habe läuft er zumindest weiter. Endet aber trotzdem in einem Error und verlangt nach cURL.

funktion.h:737:6: note: referencing argument 1 of type ‘char[20]’
funktion.h:717:5: note: in a call to function ‘pidCheck’
717 | int pidCheck(char process[20])
| ^~~~~~~~
/usr/bin/ld: cannot find -lcurl: No such file or directory
collect2: error: ld returned 1 exit status
make: *** [Makefile:29: GuiMain] Error 1

pi@raspberrypi:~/E3dcGui $ sudo apt-get install curl

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
curl is already the newest version (7.88.1-10+rpi1+deb12u8).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@raspberrypi:~/E3dcGui $

@magixxx66
Copy link
Author

magixxx66 commented Dec 23, 2024

sudo apt-get install libcurl4-openssl-dev

hat das Problem des Kompilierens gelöst. Allerdings bekomme ich E3dcgui nicht mehr zum laufen. War vorher eigentlich nie ein Problem. Ich musste den Raspberry schon x mal neu aufsetzen da er immer wieder SD Karten frisst.

Aber so zickig habe ich E3dcgui noch nicht erlebt. Habe die SD Karte mit dem PI Imager mit 32Bit Desktop Variante vorbereitet für meinen Raspi 3B+ mit Display.

Kann ich mir irgendwie die alte Version noch installieren? Geht das? Die lief zumindest.
Ich brauche nur die Anzeige des Hauptscreens - mehr nicht.

@magixxx66
Copy link
Author

magixxx66 commented Dec 23, 2024

Ich vermute eher es liegt am neuen PI Image was aktuell zur Verfügung gestellt wird. Hier haben sich einige Befehle geändert "sudo apt update" zum Beispiel. rc.local gibt es gar nicht mehr und muss manuell erstellt und eingebunden werden. /boot/config.txt heißt nun /boot/firmware/config.txt und die Display rotation klappt auch nicht mehr.

Ich habe noch andere Effekte die früher mit Deiner App sauber liefen aber nun mit dem neuen PI Image Probleme machen.
Kompilen kann ich nun wie gesagt - zwar mit einigen Fehlermeldungen - aber es klappt.
Ich bekomme auch den E3DC screen angezeigt mit den Anlagenwerten. Der Touchscreen hat aber keine Funktion und der Bildschirm wird weiß nach einigen Minuten und bleibt auch so. Nur ein Neustart hilft dann.
Wäre cool wenn Du das auch so bei Dir reproduzieren könntest.

@nischram
Copy link
Owner

Frohe Weihnachten,
eine kurze Antwort, für mehr reicht die Zeit nicht...
schau mal in den Issue#94 da besteht zum Teil ein gleiches Problem.

Welches Image hast du denn genutzt? Dann kann ich das vielleicht mal testen.

Groß Nico

@magixxx66
Copy link
Author

Hi Nico - zunächst mal alles Gute für 2025!

Ich habe mich nochmal mit dem E3dcgui beschäftigt und nochmal frisch von vorne angefangen. Nun habe ich ein ganz anderes Fehlerbild.
IMG_7686

RPI Image

Mit dem Raspberry PI Imager (3B+) als legacy 32Bit deployed. Deine Vorgehensweise befolgt (Scritt für Schritt incl. Deaktivierung Cursor, Bildschrimschoner und Desktop.

Nun lande ich bei "make Rscp/RscpSet" in folgendem Fehler

pi@raspberrypi:~/E3dcGui $ make Rscp/RscpSet
rm Rscp/RscpSet
rm: cannot remove 'Rscp/RscpSet': No such file or directory
make: [Makefile:68: cleanRSet] Error 1 (ignored)
g++ -O3 Rscp/RscpSet.cpp Rscp/RscpProtocol.cpp Rscp/AES.cpp Rscp/SocketConnection.cpp -o Rscp/RscpSet
Rscp/RscpSet.cpp:22:20: error: expected initializer before ‘x’
22 | static int iSocket x= -1;
| ^
Rscp/RscpSet.cpp: In function ‘void receiveLoop(bool&)’:
Rscp/RscpSet.cpp:494:38: error: ‘iSocket’ was not declared in this scope
494 | int iResult = SocketRecvData(iSocket, &vecDynamicBuffer[0] + iReceivedBytes, vecDynamicBuffer.size() - iReceivedBytes);
| ^~~~~~~
Rscp/RscpSet.cpp: In function ‘void mainLoop()’:
Rscp/RscpSet.cpp:605:42: error: ‘iSocket’ was not declared in this scope
605 | int iResult = SocketSendData(iSocket, &encryptionBuffer[0], encryptionBuffer.size());
| ^~~~~~~
Rscp/RscpSet.cpp: In function ‘int main(int, char**)’:
Rscp/RscpSet.cpp:1018:9: error: ‘iSocket’ was not declared in this scope
1018 | iSocket = SocketConnect(SERVER_IP, SERVER_PORT);
| ^~~~~~~
make: *** [Makefile:39: Rscp/RscpSet] Error 1

Bei ./start öffnet sich zwar die Anzeige, allerdings ohne entsprechende Werte anzuzeigen. Datum und SN von der E3DC werden auch nicht angezeigt. (Siehe angehängtes Bild)

Touchscreen funktioniert auch nicht.

Die Daten der E3DC zeigt er aber im console output des Raspberry an. Er scheint nur irgendwo zu hängen denn normalerweise aktualisiert er sich ja ständig.

Hast Du eine Idee?

nischram added a commit that referenced this issue Jan 2, 2025
- Fehlerkorrektur für Issue #95
@nischram
Copy link
Owner

nischram commented Jan 2, 2025

Hey, Frohes neues Jahr!

ja ich habe eine Idee 😕 Da hat sich durch "Wurstfinger" oder sowas ein "x" im Code verirrt. Die Datei habe ich angepasst und gerade neue mit V2.26 hochgeladen.
Ich hoffe es klappt jetzt...?

Viele Grüße Nico

@magixxx66
Copy link
Author

Läuft - Du bist der Beste!

@magixxx66 magixxx66 reopened this Jan 3, 2025
@magixxx66
Copy link
Author

Nee leider noch nicht final gefixt. Das Compilieren läuft sauber durch aber und im Log sieht man auch dass alle Werte per RSCP ausgelesen werden aus der E3DC.
Leider stoppt die permanente Werteabfrage aber und der Watchdog meldet sich.

Ich hatte aber einen alternativen Weg gefunden die App wieder gängig zu machen (alte Version). Ich switche wieder

Screenshot 2025-01-03 133221

@nischram
Copy link
Owner

nischram commented Jan 3, 2025

Hi,
die Information reicht für eine Hilfe nicht aus.
Teste die Rscp Funktion mal alleine. Also kein Autostart der Software und nicht mit "./start" sondern RSCP mit folgendem Befehl testen:
./RscpMain
Achte darauf warum und wann die Applikation abbricht, wie lange es dauert oder bei welchem Schritt in der Software, ggf. startest du mehrfach um zu sehen ob der Abbruch immer am gleichen Punkt eintritt.

Gruß

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

No branches or pull requests

2 participants