Hallo, Ziel ist es, auf einem Entwicklerboard einen schlanken Audio-Streaming-Client laufen zu lassen. Dieser empfängt das Signal per Ethernet und gibt dieses dann über die Audio-Ports aus. Des Weiteren soll auf dem Board ebenfalls ein Webserver laufen. Bei Linux ist meistens schon LightHTTPD vorkonfiguriert. Wie stehen die Chancen, mit WinCE einen Webserver aufzusetzen? Folgendes Board hätte ich vorgeschlagen: http://www.samicc.com/2010/0521/mbs-sam9261x.html Das Programmieren mit C/C++ unter einer Windows-Umgebung beherrsche ich sehr gut. Daher würde meine Wahl primär auf WinCE als OS fallen. Laut der Übersichtstabelle jedoch sind für Linux eine Menge Libraries aufgelistet (Dateisystem-Operationen, Netzwerk, usw.). Wie steht es um die Leistungsfähigkeit bei WinCE? Ist es theoretisch möglich, mit der Betriebssystem-API Zugriff auf den Audio-Port und die Netzwerk-Sockets zu bekommen? Vielen Dank!
WinCE? Gibts das überhaupt noch? Ich war der Meinung, das wäre schon lange ausgestorben...
Wenn Du selbst noch nicht Entwicklungserfahrungen mit Windows CE hast, dann mach einen Bogen um Windows CE. Das unterscheidet sich ausreichend deutlich von "normalem" Windows, daß der Aufwand, für ein komplett anderes OS entwickeln zu lernen, sich lohnt. Vor allem, wenn Du als Grundlage für Deine Arbeit eine plattformunabhängige Klassenbibliothek verwendest, wie z.B. Qt oder wxWidgets. Beide eignen sich sowohl für die Entwicklung für (und auf) Windows und für (und auf) Linux. http://qt.nokia.com/ http://www.wxwidgets.org/ Hinzu kommt, daß man Windows CE nicht mal eben so schnell auf irgendeinem System zum laufen bekommt, ähnlich wie bei Windows XP embedded (oder den neueren Embedded-Varianten) ist das System mit einem "plaform builder" aus einem Haufen von Komponenten und Devicetreibern an die gewünschte Hardware anzupassen. Dieser "platform builder" ist für einen Privatanwender ein nicht zu unterschätzender Kostenfaktor, zumindest der für XP kostet um die 1000 EUR und erfordert die Unterzeichnung eines dicken Lizenz-Vertragwerkes mit Microsoft. Du hast Entwicklungserfahrungen "in C/C++" unter Windows. Solltest Du damit echtes C++ mit z.B. der MFC gemeint haben, dann solltest Du Dir wxWidgets näher ansehen, das ist für Leute mit "MFC-Denke" keine absolut gigantische Umstellung. Qt ist etwas anders strukturiert und --nach meiner Einschätzung-- für Leute mit MFC-Erfahrung etwas schwieriger im Zugang. Wenn Du hingegen mit der .Net-Perversion "Managed C++" bzw. "C++/CLI" gearbeitet hast, dann kannst Du das theoretisch auch weiter machen, und die .Net-Resultate mit Mono unter Linux zum Laufen bekommen. Sowohl Qt als auch wxWidgets sind keine reinen GUI-Toolkits, sondern enthalten auch plattformunabhängige Abstraktionen von Dateizugriffen, Netzwerkaktivität etc. Daß Audio-Anwendungen mit wxWidgets entwickelt werden können, beweist der Audio-Editor Audacity. Das ist vielleicht auch ein ganz guter Ausgangspunkt für Forschungen, wie Audiowiedergabe etc. abzuwickeln ist. http://audacity.sourceforge.net/
Du brauchst für Windows CE den Visual C embedded Compiler und wenn du kein fertiges CE für das Board hast noch den Platform Builder. Bei Visual 2005 ist alles dabei, aber ohne Builder und nicht in der freien Version. Visual C 2005 professionell + Windows Windows Embedded CE 6.0 R2 mit dem Platformbuilder bekommst du für private Zwecke mit zusätzlicher ARM-Hardware für 149,94 Euronen hier: http://www.keith-koep.com/spark/spark.html Die Software kostet alleine normalerweose über 2000 Euronen.
Wenn du Audio von einem Rechner auf dein Board streamen willst (im Prinzip also ein Lautsprecher über Ethernet), dann schau dir mal PulseAudio an (http://pulseaudio.org/).
Warum willst du das machen, was ist das Ziel? Anforderungen hast du einige definiert. Lösungsansätze hast du auch. Einen zu Hardware und zwei zu Software. Aber das ZIEL ist unscharf. Bearbeitest du ein Einzelexemplar just aus Jux oder planst du was größeres? Wenn ersteres: So etwas ähnliches mache ich mit einem Second-Hand Linux PDA (Zaurus). Audiostream (Internetradio) über WLAN an den Z und Ausgabe über Audio-Out an die Stereoanlage. Geschrieben in Python. Es gibt Berichte wie man einen Webserver lighttpd auf den leistungsfähigeren Z (PXA255, 400 MHz, 128 MB Flashspeicher) einrichtet. Habe aber keine eigenen Erfahrungen dazu. Wenn letzteres: Komplett aussen vor ist bei dir noch das Thema Lizenzgebühren. Windows CE OS kostet pro Endgerät plus die Entwicklungsumgebung. "Audiostreaming" Decoder Lizenzen kosten u.U. (MP3, WMA) auch pro Endgerät. Wäre so etwas in der CE Lizenz schon drin? Wie-warme-Semmeln-gehende Alternativen wie Android oder iOS betrachtest du auch nicht.
Hallo rufus, vielen Dank für Deine sehr ausführliche Antwort. Die von Dir angesprochenen Libraries, insb. wxWidgets sind mir hinreichend vertraut, wir entwickeln damit zahlreiche Applikationen. Ich arbeite als Softwareentwickler in unserer Firma, welche das von mir angesprochene System nach der Entwicklungsphase kommerziell vertreiben wird. Die Idee mit wxWidgets als Bibliothek für Socket-, Audio- und Dateisystem-Operation ist sehr gut. (Bleibt nur noch das Lizenzproblem...) Angenommen also, ich baue auf das vorinstallierte Linux. Der Zugriff auf Linux würde nur per Kommandozeile stattfinden. Hier habe ich grundlegende Kenntnisse. Ist die Übertragung von wxWidgets auf das Board tatsächlich möglich? Und in welchem Umfang kann wxWidgets die Linux-API nutzen? Ich ging bisher davon aus, dass es sich bei Embedded-Linux-Versionen um sehr abgespeckte APIs handelt, an den Einsatz einer so umfangreichen Bibliothek wollte ich erst gar nicht denken, deshalb meine Skepsis... Danke im Voraus für Deine Hilfe!
Hallo Stefan, Ich gebe Dir voll und ganz Recht, wir müssen uns selbstverständlich auch mit den Lizenzbedingungen der einzelnen Komponenten auseinandersetzen. Anfallende Lizenzgebühren jedoch sind in unser Budget mit eingeplant und sind an dieser Stelle weniger das Problem.
Michael Müller schrieb: > Ich ging bisher davon aus, dass es sich bei Embedded-Linux-Versionen um > sehr abgespeckte APIs handelt, an den Einsatz einer so umfangreichen > Bibliothek wollte ich erst gar nicht denken, deshalb meine Skepsis... Das "embedded" im "Embedded-Linux" bezieht sich nur auf den Einsatzort. Die Kernel-APIs sind die gleichen wie beim "Desktop-Linux" und "Server-Linux". Gibt natürlich Unterschiede in den Verfügbaren bzw Vorinstallieren Bibliotheken und Programmen. Brauchst du überhaupt eine GUI auf dem Gerät, oder reicht das Webinterface? Ich würde das ganze zwei- bzw drei-teilen: Das reine Abspielen erledigt der MPD: http://de.wikipedia.org/wiki/Music_Player_Daemon http://mpd.wikia.com/wiki/What_MPD_Is_and_Is_Not Der MPD kriegt seine Kommandos vom Webserver, dort von (Binär-)CGI, eigenem modul, oder PHP/Perl. Je nach verfügbarer und benötigter Performance. Und wenn das Teil noch ne Gui/Tasten/Fernbedienung kriegt: Diese senden auch einfach Kommandos an den MPD.
Michael Müller schrieb: > (Bleibt nur noch das Lizenzproblem...) Exakt welches?
1 | The licence for wxWidgets means that anyone can use it, |
2 | for proprietary or open source (and GPL'ed) software. |
1 | The wxWindows Licence is essentially the L-GPL (Library General |
2 | Public Licence), with an exception stating that derived works |
3 | in binary form may be distributed on the user's own terms. |
4 | This is a solution that satisfies those who wish to produce |
5 | GPL'ed software using wxWidgets, and also those producing |
6 | proprietary software. |
(Quelle in beiden Fällen www.wxwidgets.org) Michael Müller schrieb: > Ich ging bisher davon aus, dass es sich bei Embedded-Linux-Versionen um > sehr abgespeckte APIs handelt Das ist die Frage, was Du unter "embedded linux" verstehst, und welche Anforderungen wxWidgets an das zugrundeliegende Linux stellt. So arg scheint es nicht zu sein, da wxWidgets auch auf kleineren Systemen als "full-fledged workstation" läuft: http://www.wxwidgets.org/docs/embedded.htm
Hallo Ernst, super, vielen Dank. MPD ist meiner Einschätzung nach eine sehr passende Option für uns. Damit würde der unnötige Overhead einer umfangreicheren Bibliothek entfallen. Eine GUI wird nicht benötigen, das alles läuft über's Webinterface. Der Systemzugriff erfolgt dann von PHP aus.
Sorry, rufus, bei der Lizenzfrage habe ich offensichtlich etwas durcheinander gebracht. Danke jedenfalls für den Tipp mit wxEmbedded, das würde den Einsatz von wxWidgets natürlich erheblich erleichtern.
> Dieser empfängt das Signal per Ethernet und gibt dieses dann über die > Audio-Ports aus. Vor ein paar Tagen habe ich ein billige Internet-Radio auseinandergenommen. Das machte im Grunde natürlich genau das. Das Betriebssystem war ein Embedded Linux mit mplayer zur Ausgabe. Alles auf einer billigen chinesischen MIPS-Plattform (Ingenic Xburst mit integriertem Media-Prozessor, http://en.ingenic DOT cn/ ). Das Radio ist im Handel für 89 Euro erhältlich. Bei solchen Preisen würde ich mir eine Eigenentwicklung überlegen und eventuell einfach auf ein billiges, fertiges Internet-Radio setzen.
Die Idee mit einem Internet-Radio haben wir auch bereits aufgegriffen. An sich eine super Sache, nur benötigen wir darauf auch noch einen Webserver. Denke nicht, dass es klappen würde, z.B. LightHttpd incl. PHP auf dem Radio laufen zu lassen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.