Compiler

Status
Für weitere Antworten geschlossen.

Barthiboy

Benutzer
Mitglied seit
28. Jun 2009
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Hallo,
mein erster Eintrag :)

Ich habe eine Diskstation 109. Hier habe ich jetzt schon IPKG installiert und dieses 3rd Party ding.
Habe auch schon das Mega PDF gelsen. Wirklich gut gemacht.
Itari´s Homepage habe ich auch schon auswendig drauf.
Aber ich habe immer noch Probleme und Fragen.

Also ich habe jetzt einfach zum test hello world.c auf der diskstation kopiert und konnte es über ssh mit putty dann zum kompilieren bewegen.
Hat soweit auch funktioniert.
Allerdings programmiere ich normalerweise mit Delphi XE unter Windows. Bin also eine Benutzeroberfläche, Hilfe usw. gewohnt.
Habe mit auf meinem Notebook jetzt Ubuntu installiert und würde die Programme gerne hier kompilieren und auch schreiben.
Gibt es für die Diskstation sowas wie in C Headerfiles oder in Delphi Komponenten?
Welchen Kompiler installiere ich am besten?
Ich habe hier http://sourceforge.net/projects/dsgpl/files/
mal DSM 3.2 ToolChains heruntergeladen.
Allerdings bin ich nicht in der lage dies auf meinem Notebook zu installieren. ( Ich weis, ist peinlich, aber ich habe bis jetzt nur Windowsprogramme geschrieben. Erstkontakt)

Itari hat z.B. bei seinem AdminTool auch eine Graphische Oberfläche. Wo sind diese grafischen Objekte her? Wie werden sie kompiliert?

Mein eigentliches Vorhaben:
Ich möchte auf einen Wechselrichter zugreifen, welcher eine RS485 Schnittstelle besitzt.
Diesen dann mit einem RS485 tzu Ethernetkonverter verbinden.
Das Protokoll usw. gibt es schon. Hier hat der Hersteller schon Vorarbeit geleistet. Es gibt also auch schon header datein und ist gut Dokumentiert.

Jetzt müsste ich eine TCP/IP Verbindung zu dem Konverter aufbauen.
Hier wird wohl der Konverter der Server sein und in diesem Fall die Diskstation der Client.
In Delphi gibt es für die Ethernetkommunikation eine Komponente die recht flott konfiguriert ist.
Gibt es eine Headerdatei für die Diskstation?

Viele Fragen, ich hoffe auch ein paar Antworten. Vorallem zum Kompiler. Danke schon mal.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Die graphische Oberfläche des AdminTool ist HTML, CSS und JavaScript, also einfach nur das, was ein Webserver in Richtung Browser pusten kann. Im Hintergrund arbeiten dann meist PHP- oder Shell-Skkripe. Dafür braucht man kein C oder Sonstiges zum Kompilieren ... ich mache das mit einem einfachen Editor (PSPad) auf einem Windows-PC und speichere die Skripte dann direkt auf der DS (Share) und ja, ich verwende die gleiche JavaScript/AJAX-Bibliothek wie Synology (ExtJS), das spart eine Menge Entwicklungszeit, kostet aber ein paar Wochen Einarbeitung.

Für deine Idee könnte es sinnvoll sein, ein GUI-Gerüst aus PHP, HTML, CSS und JavaScript zu verwenden und die eigentlich Hintergrundarbeit per C-Programm als .cgi (common-gateway-interface) abzuwickeln ... ab man das auf einem PC komplett alles vorbereiten und dann Cross-Kompilieren kann, mag ich nicht abschätzen. Mein Tipp wäre, dass du dir meinen Shell-Workshop (sind 12 Teile) hier im Forum anschaust, insbesondere den Teil 12, und dabei lernst, wie man seine Programme web-fähig machen kannst.

Eines sollte dir bei allem klar sein, die DS ist kein PC mit einer graphischen Schnittstelle, so dass dir alle Ansätze, es wie auf einem PC zu proggen nicht weiter helfen. Eine DS muss zwingend (wenn sie nicht auf die Linux-Konsole als Oberfläche zugreifen will), als Client-Server-Programmkomplex aufgebaut werden. Wobei ich die Vermittlung über einen Web-Server empfehlen würde - eher zumindest als über eine X11-Geschichte, wie sie auf Linux-PCs ja hauptsächlich üblich ist.

Noch eine Geschichte ... das Linux auf einem PC ist für Intel-Prozessoren gebaut worden. Deine DiskStation hat einen anderen Prozessortyp und kann nicht viel mit den Bibliotheken und C/C++-Programmen und Schnittstellen (Header) deines Linux-PCs anfangen (nur Skripte sind meist portabel, also Shell-Skripte, Perl, Python usw.) ... du musst also schauen, wenn du so etwas nutzen willst, was bereits alles, z.B. per IPKG, für deine DiskStation gibt.

Itari
 

Barthiboy

Benutzer
Mitglied seit
28. Jun 2009
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Vielen Dank für deine Antwort.
Also mir ist klar geworden dass ich keine C++ Exe erzeugen kann, da ich keine graphische Schnittstelle habe.
Soweit klar.
Das heißt ich muss (erst einemal allgemein formuliert) ein programm schreiben, welches im Hintergrund daten über die Schnittstelle anfordert und dann ablegt.
Der zweite Teil (Visualiserung), erfolgt dann wie ganz "normale" webprogrammierung über PHP oder dergleichen.
OK
Verstanden.

Jetzt die Fragen.
Ich habe im AdminTool bei Development die Beispiele gesehen. Ich kann auch kompilieren. Aber wo wird das hinkompiliert.
Unter welchem Namen. Wo müssen die Headerdatein hinterlegt sein um sie verwenden zu können. Giebt es einen Debugger?
Und wie kann ich die erzeugte Datei ausführen?

Wenn ich das jetzt richtig verstanden habe, wird dein shell script beim öffnen der seite aktiviert und arbeitet den c code ab.
Das wäre in meinem fall aber nicht nötig, weil die daten immer abgerufen werden sollen und das webprogramm nur als plotter oder sowas dienen soll.

Jetzt wollte ich noch wissen, wie ich in dem C Programm dann die Schnittstelle anspreche.
Du hast von JavaScript/AJAX-Bibliothek gesprochen. Wo bekomme ich diese her?

Danke für die Hilfe
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ich habe im AdminTool bei Development die Beispiele gesehen. Ich kann auch kompilieren. Aber wo wird das hinkompiliert.
Unter welchem Namen. Wo müssen die Headerdatein hinterlegt sein um sie verwenden zu können. Giebt es einen Debugger?
Und wie kann ich die erzeugte Datei ausführen?

im AdminTool wird in ein Unterverzeichnis (da wo das Modul für diese AdminTool-Funktion liegt) hineinkompiliert und halt mit dem Namen 'a.out' (das ist ja so der Standard bei C-Programmen unter Unix/Linux, wenn man nichts groß angibt)

die Header-Dateien kannst im Grund hinlegen, wo du magst; du musst halt dann den kompletten Pfad angeben

die Geschichte im AdminTool ist keine richtige Entwicklungsumgebung, sondern lediglich eine Editor, Kompileraufruf und Ausführungsgeschichte ... ich hatte das seinerzeit aus 2 Gründen geschrieben: (1) um eventuell jemanden heiß zu machen, sich mal mit einem kleinen C-Programm zu beschäftigen und (2) hatte ich für die AdminTool-Funktion, wie defragmentiert die Systempartition ist, ein 'schnelles' Auswertungstool gebraucht ... der Source dafür ist ja auch dabei ... um damit allen die Möglichkeit zu geben, es für ihren Prozessor zu kompilieren

zu der Frage, nach einem Debugger muss ich passen ... ich hab nicht im IPKG nachgeforscht, ob es einen und welchen es für den gcc gibt

Die JavaScript/AJAX-Bibliothek gibt es hier: http://www.sencha.com

Deine anderen Überlegungen/Fragen habe ich nicht ganz verstanden ...

Itari
 

Barthiboy

Benutzer
Mitglied seit
28. Jun 2009
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
im AdminTool wird in ein Unterverzeichnis (da wo das Modul für diese AdminTool-Funktion liegt) hineinkompiliert und halt mit dem Namen 'a.out' (das ist ja so der Standard bei C-Programmen unter Unix/Linux, wenn man nichts groß angibt)
Itari

OK. Ist soweit klar. Und wie kann ich die dann starten?
habe es im putty mit ./hello probiert. funktionierte aber dann nicht.
ich war auch im verzeichnis.

die Geschichte im AdminTool ist keine richtige Entwicklungsumgebung, sondern lediglich eine Editor, Kompileraufruf und Ausführungsgeschichte ... ich hatte das seinerzeit aus 2 Gründen geschrieben:
was für Entwicklungsumgebungen gibt es? Bzw. wie machst du das genau?

Die JavaScript/AJAX-Bibliothek gibt es hier: http://www.sencha.com
Danke hierfür. Wenn ich das aber richtig gesehen habe, ist dies "nur" Graphik.

Ist irgendwo dokumentiert wie man die Hardware der Diskstation anspricht/verwaltet?

Danke
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
OK. Ist soweit klar. Und wie kann ich die dann starten?
habe es im putty mit ./hello probiert. funktionierte aber dann nicht.
ich war auch im verzeichnis.

Hast denn auch kompiliert? und auch mal mit a.out probiert?

was für Entwicklungsumgebungen gibt es? Bzw. wie machst du das genau?

kenne keine für die DS

Danke hierfür. Wenn ich das aber richtig gesehen habe, ist dies "nur" Graphik.

Ist irgendwo dokumentiert wie man die Hardware der Diskstation anspricht/verwaltet?

Ist nicht nur Graphik, sondern einfach alles, was mit der GUI zu tun hat. Und nein, es ist nirgends vollständig dokumentiert, wie man die Hardware anspricht. Es ist auch nicht dokumentiert, wie das Betriebssystem und der DiskStation-Manager zusammenspielen - das meiste in dieser Richtung ist einfach ausprobiert.

Itari
 

Barthiboy

Benutzer
Mitglied seit
28. Jun 2009
Beiträge
12
Punkte für Reaktionen
0
Punkte
1
Guten Morgen.
Programm funktioniert jetzt. Aber wie kann man den im Editor editierten Quellcode speichern? Er übernimmt meine Änderungen nicht.

noch einfe Frage zu den Sockets.
Wie wird Hardware unter Linux normaler Weise angesprochen? Unter Windows gibt es die API und diese stellt die Hardwareroutinen zu verfügung.
Gibt es so etwas ähnliches unter Linux auch?
Ich habe hier:
http://www.linuxhowtos.org/C_C++/socket.htm
könnte es mit diesen header-Dateien auf der Diskstation auch funktionieren?
Oder kennt jemand etwas besseres. Etwas lauffähiges oder hat überhaupt Erfahrung mit der Diskstation in der Richtung.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat