[phpBB Debug] PHP Warning: in file /includes/functions.php on line 4559: Invalid argument supplied for foreach()
Dampfradioforum • Thema anzeigen - Reico Europa Reste - Konvertieren in Internetradio

Dampfradioforum

Röhrenradioforum: Das Forum für alle Freunde alter Röhrenradios, Kofferradios und Röhrentechnik!
Aktuelle Zeit: Do Mär 28, 2024 11:31

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
BeitragVerfasst: So Jul 14, 2019 14:10 
Offline
Benutzeravatar

Registriert: Sa Feb 26, 2011 19:44
Beiträge: 2451
Wohnort: NRW
Kenntnisstand: Elektrotechnischer Beruf/ Studium
Guten Tag,

von einer Aktion des Radiostammtisches (Müsste mittlerweile fast 2 Jahre her sein) konnte ich ein Hochkantradio aus den 30ern günstig erwerben. Der Grund für den günstigen Preis war relativ einfach:

Dateianhang:
20180915_163128.jpg
20180915_163128.jpg [ 126.97 KiB | 11223-mal betrachtet ]


Dateianhang:
20180915_163158.jpg
20180915_163158.jpg [ 136.15 KiB | 11223-mal betrachtet ]


Wie man sieht, war nicht all zu viel davon übrig. Nach näherer Betrachtung waren zumindest die Röhren funktionsfähig und hatten eine gute Emission.
Das Chassis war schon mehrfach repariert und der Fassung der Gleichrichterröhre war verkohlt. Das hat wohl auch den Netztrafo erledigt (Hochspannungswickel kein Durchgang).

Das Radio ist ein Reico Europa und die Firma Reico gab es wohl nicht all zu lange. Deshalb ist das Radio wohl relativ selten was die Beschaffung von Teilen wohl nicht gerade vereinfacht. Ich beschloss also, den Netztrafo zu reparieren. Da es das erste Mal war habe ich dafür eine Spulenwickelmaschine gebaut. Wer sich dafür interessiert, kann sich das in Youtube anschauen:



Nachdem nun der Netzrafo repariert war und eine Schallwand mit einem elektrodynamischer Lautsprecher in das Radio eingebaut wurde, geht es nun darum das Radio mittels Raspberry Pi in ein Internetradio zu verwandeln. Ich habe das hin und her überlegt, da ich eigentlich versuche solche Geräte nicht groß zu verändern. Da aber schon viele Teile fehlten habe ich also beschlossen diesen Weg zu gehen. Der Reico wird umgebaut - und zwar ohne bleibende Schäden durch zusätzliche Löcher oder ähnlich zu erzeugen. Falls also irgendwann jemand das Ding wieder aufbauen will und passende Teile hat wäre das möglich.

Der aktuelle Stand ist dieser hier:
Dateianhang:
Bildschirmfoto vom 2019-07-14 14-48-34.jpg
Bildschirmfoto vom 2019-07-14 14-48-34.jpg [ 137.23 KiB | 11223-mal betrachtet ]


Hier sieht man links den Drehencoder für Lautstärke und Bandwahl, in der Mitte ist ein kleines Display eingebaut und der Drehencoder für die Senderwahl angekoppelt. Lose dafor liegt eine kleine Platine mit einem Adruino. Der nimmt die Signale der Drehencoder, wertet sie aus und gibt sie an den Raspberry Pi für die Steuerung des Radios. Der Haupgrund für diese Lösung liegt darin, dass man im Arduino die aktuellen Stellungen der Drehncoder abspeichern kann, wenn das Radio ausgeschaltet wird. Die Spannung am Arduino wird gemessen und beim Unterscheiten einer bestimmten Spannung werden die Werte schnell noch in ein internen Flashspeicher geschrieben. Beim Einschalten werden die Werte gelesen und das Radio spielt den Sender ab, der beim Ausschalten eingestellt war.

Der Rapsberry Pi liegt hier noch lose oben auf dem Chassis. Da kommt noch eine Halterung für die Platine und den Raspberry Pi.

Den Aufbau sieht man hier in Aktion (ab ca. 11:30):



Was bleibt noch zu tun ? - Halterungen, Knöpfe, Frontplatte herstellen, Chassis komplett überholen usw.

Die Software basiert auf einem Raspbian stretch mit dem Paket iRadio. Das Paket iRadio bietet eine prima Grundlage und hilft auch Leuten wie mir ohne tiefgreifende Programmierkenntnisse so ein Internetradio zu bauen - man braucht nur die Hardware, etwas Geduld und eine Suchmaschine seiner Wahl (-;

Hier kann man es laden:
https://github.com/BM45/iRadio

Viele Grüße
Oliver

_________________
Nette Grüsse aus dem Ruhrgebiet.

ollisTubes bei Youtube
ollisTubes bei odysee


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Jul 15, 2019 14:07 
Offline

Registriert: So Nov 01, 2015 13:24
Beiträge: 625
Kenntnisstand: Weitergehende Kenntnisse (Hobby)
Hallo Oliver,

das war eine gute Entscheidung!
Bei der waagerecht liegenden Spule gibt es nur 2 Möglichkeiten:
1.: Die Spule hat Durchgang auf allen Wicklungen, -> Glück gehabt.
2.: Die Spule hat mindestens eine defekte Wicklung -> weit wegschmeissen !
Der Draht ist nachträglich nicht lötbar, so zumindest meine Erfahrung
mit so einer Spule, ich wusste allerdings bis gerade eben nicht das Diese
vom Reico stammt. Davon habe ich nur den Spulenkörper weiterverwendet,
den Rest abgewickelt und den Draht schnell weggeschmissen. Die Litze wird
beim Versuch des Verzinnens unglaublich brüchig, da traue ich dem Draht nicht
zu, das ich alle Einzeldrähte verzinnt habe oder nicht doch eine Leiche dabei ist.

Ich bin mal gespannt, wie es weiter geht.


Gruß,
RE 084

_________________
RE 084 heisst Hans und kommt aus 41844 Wegberg :mauge:


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 23, 2019 9:07 
Offline
Benutzeravatar

Registriert: Mi Jul 22, 2009 17:27
Beiträge: 5932
Wohnort: 66763 Dillingen
Kenntnisstand: Weitergehende Kenntnisse (Hobby)
olli0371 hat geschrieben:
..Hier sieht man links den Drehencoder für Lautstärke und Bandwahl, in der Mitte ist ein kleines Display eingebaut und der Drehencoder für die Senderwahl angekoppelt. Lose dafor liegt eine kleine Platine mit einem Adruino. Der nimmt die Signale der Drehencoder, wertet sie aus und gibt sie an den Raspberry Pi für die Steuerung des Radios. Der Haupgrund für diese Lösung liegt darin, dass man im Arduino die aktuellen Stellungen der Drehncoder abspeichern kann, wenn das Radio ausgeschaltet wird. Die Spannung am Arduino wird gemessen und beim Unterscheiten einer bestimmten Spannung werden die Werte schnell noch in ein internen Flashspeicher geschrieben. Beim Einschalten werden die Werte gelesen und das Radio spielt den Sender ab, der beim Ausschalten eingestellt war.


Hallo Oliver,
Welche Werte werden denn da gespeichert? iRadio arbeitet nicht mit Abstimmspannung oder Frequenzangaben, sondern mit einer playlist, von der nach dem Einschalten immer der erste Eintrag startet. Kannst du das Zusammenspiel von Arduino und Raspberry noch etwas erläutern?

_________________
Gruß,
Jupp
------------------------------
Der Sammler "an sich" wird einfach nie ethisch oder moralisch sein. Liegt in der Sache der Natur... Sonst wären wir ja keine "Sammler & Jäger", sondern biedere Heimchen (Marek)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Aug 24, 2019 15:55 
Offline
Benutzeravatar

Registriert: Sa Feb 26, 2011 19:44
Beiträge: 2451
Wohnort: NRW
Kenntnisstand: Elektrotechnischer Beruf/ Studium
Hallo Jupp,

du hast Recht. Der Arduino speichert eigentlich nur zwei Zahlen.

Man stellt zum Beispiel die Lautstärke mit dem Drehencoder auf z.B. 10 ein. Diese 10 wird im Arduino gespeichert und per I2C an den VLCD übergeben. Zieht man nun den Stecker und die Betriebsspannung am Arduino unterschreitet z.B. 2,5V - dann wird die Zahl in den internen Flashspeicher des Arduino geschrieben. Das geht so schnell, dass ein Kondensator für die Spannungsversorgung ausreicht um den Schreibvorgang zuende zu bringen.

Identische Vorgehensweise beim Sender. Am Drehencoder stelllt man den Sender 5 ein. Der Arduino gibt dann über den I2C Bus eine 5 an den VLCD und erspielt die 5.Position in der Playliste. Beim Abschalten der Spannung passiert das Gleiche wie oben.

Zur Erläuterung der Signalfluss:

Lautstärke:
Drehencoder -> Impulse an Arduino (direkt angeschlossen)
Arduino zählt die Impulse -> Ergebnis als ganze Zahl an Raspberry Pi (per I2C)
Die Zahl wird an VLCD gegeben und stellt dort die Lautstärke ein.

Für die Senderwahl funktioniert es genau so.

Gruß
Oliver

_________________
Nette Grüsse aus dem Ruhrgebiet.

ollisTubes bei Youtube
ollisTubes bei odysee


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Aug 28, 2019 11:43 
Offline
Benutzeravatar

Registriert: Mi Jul 22, 2009 17:27
Beiträge: 5932
Wohnort: 66763 Dillingen
Kenntnisstand: Weitergehende Kenntnisse (Hobby)
danke für deine Erklärung! Das ist ein klasse Lösung. VLCD wird ja eigentlich nur per netcat über einen port des webinterfaces gesteuert. Z.B.

system("echo \"next\" | nc 127.0.0.1 9294 -N");

so ersparst du dem Arduino eine eigene LAN-Anbindung. Hast du dann einen daemon für den raspberry geschrieben welcher die Anweisungen, die er per I2C erhält, an den localhost weitergibt?

_________________
Gruß,
Jupp
------------------------------
Der Sammler "an sich" wird einfach nie ethisch oder moralisch sein. Liegt in der Sache der Natur... Sonst wären wir ja keine "Sammler & Jäger", sondern biedere Heimchen (Marek)


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Aug 28, 2019 14:36 
Offline

Registriert: Mi Mai 03, 2017 12:55
Beiträge: 15
Kenntnisstand: Elektrotechnischer Beruf/ Studium
Da hast Du ja ein schönes Internetradio mit meinem iRadio gebaut! :D

Eine Vereinfachung wäre möglich! Der Arduino und die Niederspannungserkennung kann wegfallen, wenn man direkt nach dem Umschalten von Programm und/oder Lautstärke die aktuellen Werte vom Raspberry auf die SD-Karte wegschreibt. Das kann der gpiod gleich mitmachen! So gesichert, kann das Internetradio ohne Probleme vom Strom genommen werden. Beim nächsten Neustart liest das vlcd-Skript dann die Werte ein und setzt das aktuelle Programm und die Lautstärke vor dem cvlc-Start.

Ein paar Zeilen Code im gpiod und vlcd würden den Arduino also obsolet machen.

Gruß Bernhard


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Fr Aug 30, 2019 19:06 
Offline
Benutzeravatar

Registriert: Sa Feb 26, 2011 19:44
Beiträge: 2451
Wohnort: NRW
Kenntnisstand: Elektrotechnischer Beruf/ Studium
Hallo Jupp,

der Arduino hat keine eigene LAN-Verbindung. Er kommuniziert mittels I2C mit dem Pi. Auf die Ansteuerung des VLCD erfolgt sowohl für Lautstärke als auch Playlistenplatz über diese Netcat Befehle.
Zu Verdeutlichung habe ich dir mal die encoder.c angehängt das ist der Quellcode für die Abfragen auf dem I2C Bus.

Hallo Bernhard,

erstmal vielen Dank für die Vorarbeit mit dem iRadio. Das hat bei mir wirklich den Anstoß gegeben sich mit dem Thema zu beschäftigen. Selbst für micht als geduldiger Ausprobierer und NICHT Programmierer war das gut nutzbar.
Deine Möglichkeit funktioniert natürlich auch. Ich habe mich damals bewusst für den Arduino entschieden, weil mein lieber Sohn den liegen hatte (-; Weiterhin reduziert das die Schreibzugriffe auf die SD Karte und die Möglichkeit dass das Dateisystem defekt geht, wenn der Stecker gezogen wird. Ich habe auch Skripte auf dem Raspi laufen, die die Logfiles in eine RAM Disk schreibt.

Viele Grüße
Oliver

P.S. der gerade mit dem Display kämpft um dort etwas mehr Information unter zu bringen.


Dateianhänge:
encoder.c [4.23 KiB]
453-mal heruntergeladen

_________________
Nette Grüsse aus dem Ruhrgebiet.

ollisTubes bei Youtube
ollisTubes bei odysee
Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Sep 02, 2019 16:53 
Offline

Registriert: Mi Mai 03, 2017 12:55
Beiträge: 15
Kenntnisstand: Elektrotechnischer Beruf/ Studium
olli0371 hat geschrieben:
Weiterhin reduziert das die Schreibzugriffe auf die SD Karte und die Möglichkeit dass das Dateisystem defekt geht, wenn der Stecker gezogen wird.
Ich habe auch Skripte auf dem Raspi laufen, die die Logfiles in eine RAM Disk schreibt.


RAM Disk != SD-Speicher
Da kann ich Dich beruhigen. Erstmal wird beim iRadio praktisch nur Lesezugriff gemacht und wenn Du mal nach dem Umschalten ein paar Byte auf das Dateisystem wegschreibst, dann wird:

1. das Schreiben vom OS gut über die gesamte Größe des Speichers verteilt,
2. jede Speicherzelle einer halbwegs brauchbaren SD-Karte weit mehr Speicherzugriffe aushalten, als der Drehencoder an zuverlässigen Schaltzyklen abgibt (du wirst also eher den Encoder ein paar mal tauschen müssen, bevor Du wegen "seinen" Schreibzugriffen die Karte ruinierst,
3. die SD-Karte mit Sicherheit länger durchhält als der Speicher deines Arduinos,
4. das OS beim Hochfahren korrupte Dateisystem selbst reparieren kann,
5. du den Stecker sicher nicht so schnell rausbekommst, wie der Pi nach dem Programmumschalten den Programmplatz weggeschrieben hat.

Die Gefahr eines SD-Kartenschadens ist beim Internetradio also minimalst. Klar liest man beim Pi auch von defekten Karten, dann aber nur wenn die Anwendung intensiv das Dateisystem aktiv oder durch loggen nutzt. Webserver mit aktiven loggen des Zugriffs, ... Ist beim iRadio und reiner Nutzung als Internetradio alles nicht gegeben.


olli0371 hat geschrieben:
P.S. der gerade mit dem Display kämpft um dort etwas mehr Information unter zu bringen.


Macht mich neugrierig! Lass uns wissen, wenn Du Hilfe oder Codeanpassungen zum Beispiel beim displayd brauchst!

Gruß Bernhard

PS: Bei deinem Code oben: sender +=3; // VLC Senderliste fängt immmer bie 4 an und Audrino sendet eine 1 für den 1. Sender

Das ist nicht immer gegeben und geht schnell schief! Siehe dazu meine Berichte im RBF, zum Beispiel hier: (https://www.radio-bastler.de/forum/show ... #pid137819) ! Das Einstellen der Sender am iRadio bzw. bei vlc darf beim Remoteinterface nur über <next> <prev> oder über einen eindeutigen Primärschlüssel (URL des Senders) erfolgen, niemals per goto oder gotoitem! Dann funktioniert das Einstellen immer richtig. Beim Senden eines Indizes wird es irgendwann wegen Bugs in der Playersoftware zu Fehlschaltungen und Crashes kommen! Die Fehler sind nach wie vor im Code von vlc vorhanden.
Einfachstes Fixen in deinem Fall Olli: Da vlc nach dem Neustart automatisch mit der ersten Station in der Liste anfängt, einfach x mal per Schleife ein "next" per Netcat absetzen.
Wenn also der 7. Sender in der Liste der Sender eingestellt war, dann einfach einmalig beim Start sechs Programmplätze über Schleife per netcat mittels "next" umschalten.


Zuletzt geändert von Bernhard45 am Mo Sep 02, 2019 17:43, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Sep 02, 2019 17:25 
Offline
Benutzeravatar

Registriert: Sa Feb 26, 2011 19:44
Beiträge: 2451
Wohnort: NRW
Kenntnisstand: Elektrotechnischer Beruf/ Studium
Hallo Bernhard,

was das Display angeht habe ich folgende Konfiguration gewählt:

Display ST 7735
Das Display habe ich zuerst so verbaut wie im iRadio vorgeschlagen. Anbindung über SPI und eben die Bibliothek für das Display. So richtig glücklich bin ich damit nicht geworden, da ich langen Text durchscrollen wollte. Diese Bibliothek ist dafür einfach zu langsam gewesen (Oder ich war zu blöde das richtig zu programmieren).
Nach viel Bastelei ist habe ich am Ende dann das Display als Frambufferdevice mit einem entsprechenden Treiber angebunden. Damit ist es möglich, einen Desktop unter x11 auf das kleine Display auszugeben.
Das mit dem Desktop habe ich aber gespart und so wird der X-server über xinit aufgerufen.
Auf X11 läuft nun ein kleines Programm mit den FLTK Bilbiiotheken (ich hoffe, ich gebe das so richtig wieder - mein Sohn hat mir nämlich auch dabei geholfen).

Hier werden aktuell einfach 4 Fenster angezeigt.
- Titel
- Sendername gescrollt
- Zusatzzeile mit Text
- Zusatzinfos
Was ich noch gerne sehen möchte, ist die IP-Adresse und die Feldstärke des WLAN Signals. Eigentlich nix dolles. Aber als nicht Programmierer ist das schon eine Herausforderung (-;

Schöne Grüße
Oliver

_________________
Nette Grüsse aus dem Ruhrgebiet.

ollisTubes bei Youtube
ollisTubes bei odysee


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Sep 02, 2019 18:06 
Offline

Registriert: Mi Mai 03, 2017 12:55
Beiträge: 15
Kenntnisstand: Elektrotechnischer Beruf/ Studium
olli0371 hat geschrieben:
Hallo Bernhard,

was das Display angeht habe ich folgende Konfiguration gewählt:

Display ST 7735
Das Display habe ich zuerst so verbaut wie im iRadio vorgeschlagen. Anbindung über SPI und eben die Bibliothek für das Display. So richtig glücklich bin ich damit nicht geworden, da ich langen Text durchscrollen wollte. Diese Bibliothek ist dafür einfach zu langsam gewesen (Oder ich war zu blöde das richtig zu programmieren).


Der HolgerK aus dem RBF hat für das ST7735 mal einen interessanten Displayd geschrieben und den Code als iRadio-Patch veröffentlicht, siehe Beitrag #112 https://radio-bastler.de/forum/showthre ... #pid141444
Ich glaube dort wird der Text gescrollt.


olli0371 hat geschrieben:
Nach viel Bastelei ist habe ich am Ende dann das Display als Frambufferdevice mit einem entsprechenden Treiber angebunden. Damit ist es möglich, einen Desktop unter x11 auf das kleine Display auszugeben.
Das mit dem Desktop habe ich aber gespart und so wird der X-server über xinit aufgerufen.
Auf X11 läuft nun ein kleines Programm mit den FLTK Bilbiiotheken (ich hoffe, ich gebe das so richtig wieder - mein Sohn hat mir nämlich auch dabei geholfen).



Aber Hallo! Das ist der Königsweg, damit wird das Display ja schon für eine Skalensimulation tauglich gemacht und natürlich kann
dann auch der displayd highlevel-mäßig mittels FLTK (wie Ihr es gemacht habt) oder SDL2 programmiert werden!


olli0371 hat geschrieben:
Hier werden aktuell einfach 4 Fenster angezeigt.
- Titel
- Sendername gescrollt
- Zusatzzeile mit Text
- Zusatzinfos
Was ich noch gerne sehen möchte, ist die IP-Adresse und die Feldstärke des WLAN Signals. Eigentlich nix dolles. Aber als nicht Programmierer ist das schon eine Herausforderung (-;


Ja das geht und da gibt es mehrere Wege das zu realisieren.

Ein Weg wäre analog der Datenbesorgung im displayd in diesem Teil:

Code:
// Daemonbetrieb
     while (1) {

                text = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep title:", "r");
      text_now_playing = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep now_playing:", "r");
          text_genre = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep genre:", "r");
          text_bitrate = popen("echo \"info\" | nc 127.0.0.1 9294 -N | grep Bitrate:", "r");

          fgets(title, 64, text);
          fgets(now, 64, text_now_playing);
          fgets(genre, 64, text_genre);
          fgets(bitrate, 64, text_bitrate);

          rmSubstr(title,"| title:");
          rmSubstr(title,"\r");

          rmSubstr(now,"| now_playing:");
          rmSubstr(now,"\r");

          rmSubstr(genre,"| genre:");
          rmSubstr(genre,"\r");

          rmSubstr(bitrate,"| Bitrate:");
          rmSubstr(bitrate,"\r");

                usw....




Die IP bekommt man zum Beispiel über ipconfig -a wobei man sich alle Daten die man haben will per |grep rausziehen kann.
Die Signalstärke des aktuell eingestellten WLAN bekommt man mit iwlist scan , den Namen des eingeloggten WLAN kennt man ja.

Man könnte also ein text_ip oder text_signalstaerke definieren und die Daten (IP + Signalstärke) per popen und Konsolenbefehl ins Programm holen.
Das ganze wieder zyklisch, dann bekommt man immer die aktuelle Signalstärke angezeigt und wenn der Router ein neues DHCP-Request
mit anderer IP beantwortet, auch den Wechsel der IP-Adresse. Bekommt Ihr es mit dem Code im displayd als Vorlage hin? Direkt für FLTK steht
der Code in gui.cxx im Basisinstallationsverzeichnis vom iRadio, in Form einer Handler- bzw. Callbackfunktion für einen Timer.


Ich sehe schon, Du und dein Sohn, Ihr seid keine Anfänger, sondern schon deutlich Fortgeschrittene wenn Ihr Euch bis hierher durchkämpfen konntet! Ich ziehe meinen Hut vor Euch!
Macht bitte weiter so mit dem Forscherdrang, Ihr könnt mir auch Code zusenden, um Meinung oder Änderung bitten, Fragen stellen, ... ich bin stolz solche iRadio-Anwender zu haben!

Gruß Bernhard


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Sep 03, 2019 17:14 
Offline
Benutzeravatar

Registriert: Sa Feb 26, 2011 19:44
Beiträge: 2451
Wohnort: NRW
Kenntnisstand: Elektrotechnischer Beruf/ Studium
Hallo,

momentan muss ich selber zurecht kommen. Aber ich habe etwas Zeit und deshalb konnte ich das ganze auflösen. Im Grunde hab ich das gemacht, was du oben geschrieben hast:

Code:
static void CB_Hole_sysinfo(void *data) {

Fl_Output *out = (Fl_Output*) data;


        // hole die Signalstärke
        FILE *iwconfig = popen(" iwconfig wlan0 |  grep Quality ", "r"); // Führe den Systembefehl 'echo ...' aus und schre$
                fgets(wifi,64,iwconfig); //Wandle den von der Console ausgegebenen text vom Typ File in einen char array 'wi$
        pclose(iwconfig);// der oben geöffnete FILE muss wieder geschlossen werden
        substring(wifi, wifistrength, 24, 5); //rufe Methode substring auf um die Istwerte aus dem String heraus zu holen.

        // hole IP Adresse
        FILE *ifconfig = popen(" ifconfig wlan0 | grep netmask ", "r"); // Führe den Systembefehl 'echo ...' aus und schrei$
                fgets(ipv4info,64,ifconfig); //Wandle den von der Console ausgegebenen text vom Typ File in einen char array$
        pclose(ifconfig);// der oben geöffnete FILE muss wieder geschlossen werden
        substring(ipv4info, ipadress, 13,14); //rufe Methode substring auf um die Istwerte aus dem String heraus zu holen.

        strcpy (sysinfo,wifistrength);
        strcat (sysinfo," - ");
        strcat (sysinfo,ipadress);

        out -> value(sysinfo); // nehmr die variable wifistrength und schreibe ihn in das objekt out -> also in das Fenster

Fl::repeat_timeout(wifiZeit,CB_Hole_sysinfo, data);
}

Falls die Kommentare fachlich nicht korrekt sind - nicht gleich in der Luft zerreissen (-;

Das Ergebnis sieht dann so aus:
Dateianhang:
IRS20190903_181608.jpg
IRS20190903_181608.jpg [ 16.22 KiB | 10378-mal betrachtet ]


Das ist erstmal so ok. Mal sehen, was noch so für Ideen kommen.

Gruß
Oliver

_________________
Nette Grüsse aus dem Ruhrgebiet.

ollisTubes bei Youtube
ollisTubes bei odysee


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mi Sep 18, 2019 16:04 
Offline
Benutzeravatar

Registriert: Sa Feb 26, 2011 19:44
Beiträge: 2451
Wohnort: NRW
Kenntnisstand: Elektrotechnischer Beruf/ Studium
Mahlzeit allerseits,

ich wollte mal fragen, ob jemand einen Scan einer Kinoskala hat ? (Ich spreche von der Kreisskala die von hinten beleuchtet wird).

Gruss
Oliver

_________________
Nette Grüsse aus dem Ruhrgebiet.

ollisTubes bei Youtube
ollisTubes bei odysee


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Sa Sep 21, 2019 16:19 
Offline
Benutzeravatar

Registriert: Sa Feb 26, 2011 19:44
Beiträge: 2451
Wohnort: NRW
Kenntnisstand: Elektrotechnischer Beruf/ Studium
Hi,

aktuell habe ich mal die Skale2 aus dem I-Radio an das kleine Display angepasst und so sieht das Ganze aus:

Dateianhang:
IRS20190921_165922.jpg
IRS20190921_165922.jpg [ 127.23 KiB | 9857-mal betrachtet ]


das funktioniert soweit ganz gut. Der Zeiger dreht sich entsprechend dem Platz in der Playlist.

Ich wuerde das Ganze gerne so umstricken, dass sich ein Effekt ergibt wie bei einer Kinoskala. Ob das klappt weiss ich gerade noch nicht.

Schritt 1 wäre allerdings, dass der Text mal zweizeilig angezeigt wird, damit nicht alles so abgeschnitten ist.

Meinem Verständnis nach ist die Textanzeige das hier:

Code:
       // Position und Dimension Programmanzeige
        int texW = 0; int texH = 0;
                SDL_QueryTexture(textur_prgtitel, NULL, NULL, &texW, &texH);
        SDL_Rect dstrect = { 20, 45, texW, texH };

        SDL_RenderCopy(renderer, textur_prgtitel, NULL, &dstrect);


Ich sehe dort ein Fenster an der Position 20 / 45 . Der Textinhalt ist in der Variablen 'textur_prgtitel' . Soweit ist das klar. Dann verließen sie ihn aber auch schon,

Wie kann ich den Text 2-Zeilig gestalten ?
Wo kann ich die Schriftgröße anpassen ?


Fragen über fragen.

Gruss
Oliver

_________________
Nette Grüsse aus dem Ruhrgebiet.

ollisTubes bei Youtube
ollisTubes bei odysee


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Mo Sep 23, 2019 1:43 
Offline

Registriert: Mi Mai 03, 2017 12:55
Beiträge: 15
Kenntnisstand: Elektrotechnischer Beruf/ Studium
Hallo Oliver,

textur_prgtitel ist nicht der Sendername, sondern eine Textur der Zeichenkette für den Sendernamen, welche wiederum einen Surface und einen Renderer enthält! Siehe Definition im Quelltext:

SDL_Surface * surface_prgtitel = NULL;
SDL_Texture * textur_prgtitel = NULL;

Die eigentliche Zeichenkette ist in den Variablen channel .
die Schriftgröße steckt ein paar Zeilen weiter oben in Font und mit der Zeile

if (strlen(channel)!=0) {
surface_prgtitel = TTF_RenderText_Solid(font, channel, color);

wird ein SDL_Surface aus der Variablen channel erzeugt.

Die Schriftgröße der Surface wird mit einem TTF_OpenFont Objekt festgelegt.

font = TTF_OpenFont("/usr/share/fonts/truetype/freefont/FreeSans.ttf", 20);
if(!font) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Fehler in TTF_OpenFont: %s", TTF_GetError());
return 3;
}

Es wird die Schriftart FreeSans.ttf geladen, mit der Schriftgröße 20!
Wenn eine kleinere Schriftgröße eingestellt wird, passt natürlich auch mehr aufs Display. Eine mehrzeilige Ausgabe sollte man mit mit \n an der Stelle im String ( channel[64] ) bekommen, wo umgebrochen werden soll. Beachte das \n ein(!) char im String ist und nicht zwei chars.

Gruß Bernhard.


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Sep 24, 2019 19:19 
Offline
Benutzeravatar

Registriert: Sa Feb 26, 2011 19:44
Beiträge: 2451
Wohnort: NRW
Kenntnisstand: Elektrotechnischer Beruf/ Studium
Hi,

danke Bernhard, das hat mich etwas weiter gebracht. Jetzt habe ich es soweit geändert, dass die Senderanzeige sich dreht. Allerdings fehlt suche ich gerade nach dem richtigen Drehpunkt. Das Teil soll sich um einen Punkt drehen, der bei ca. 160;64 liegt. Schwer zu erklären. zum Test habe ich den Code so geändert:

Code:
   
       // Position und Dimension Programmanzeige
        int texW = 0; int texH = 0;
                SDL_QueryTexture(textur_prgtitel, NULL, NULL, &texW, &texH);
        SDL_Rect dstrect = { -64, 60, texW, texH };


       // Drehen der Senderanzeige
        if (rotationswinkelAnzeige > (SENDERABSTAND*i) + ZEIGERANSCHLAG_LINKS ) {
              rotationswinkelAnzeige--;
        }

       if (rotationswinkelAnzeige < (SENDERABSTAND*i) + ZEIGERANSCHLAG_LINKS ) {
              rotationswinkelAnzeige++;
        }


        SDL_RenderCopyEx(renderer, textur_prgtitel, NULL, &dstrect,rotationswinkelAnzeige,NULL,SDL_FLIP_NONE);



Damit dreht sich der Text genau so wie der Zeiger. Das ändere ich später noch ab. Aktuell suche ich nur den richtigen Drehpunkt. Der liegt momentan irgendwo und ändert sich auch interessanterweise mit dem Drehwinkel. Da steckt irgendwo der Wurm drin.

Gruß
Oliver


Dateianhang:
IRS20190924_202115.jpg
IRS20190924_202115.jpg [ 81.68 KiB | 9680-mal betrachtet ]


Dateianhang:
IRS20190924_202044.jpg
IRS20190924_202044.jpg [ 75.34 KiB | 9680-mal betrachtet ]

_________________
Nette Grüsse aus dem Ruhrgebiet.

ollisTubes bei Youtube
ollisTubes bei odysee


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de

 
Impressum