Hallo Leute,
ich habe mir einen GPS Empfänger gebaut, der im Moment über USB mit
einem LabVIEW Programm konfiguriert und ausgelesen wird.
Als Kommunikationschip verwende ich den FTDI 245RL, den ich in LabVIEW
über die D2xx DLL anspreche. Klappt soweit wunderbar.
Jetzt habe ich mir für die mobile Datenaufzeichnungen ein Netbook mit
Intel Atom CPU und Ubuntu 8.04 bestellt. Von der Programmierung von
Treibern & Applikationen unter Linux habe ich leider keinen Plan, würde
mich aber in das Thema einfinden, um auch mal was neues zu machen.
Vorab habe ich erstmal ein paar Fragen um die Machbarkeit und den
Aufwand abzuschätzen:
1.) Ist es möglich, die D2xx Treiber auf dem System zu installieren? Ich
meine gehört zu haben, daß Treiber/Kernel Module immer auch vom
OS-Derivat und von der CPU abhängig sind.
2.) Wie aufwändig schätzt Ihr die Entwicklung einer kleinen DLL (unter
Linux shared library), die auf der einen Seite auf den FTDI Treiber
zugreift und dem Anwender Funktionen wie "OpenGps(..), ConfigGps(..)"
bereitstellt? Im Prinzip muss die Library nur Bytes über den FTDI
Treiber hoch- und runterschaufeln.
3.) Ich würde die Library gerne mit einer kleinen 3-Tasten GUI/Anwendung
bedienen. Welche IDE/Sprache bietet sich dafür an?
4.) Optimal wäre eine möglichst weit unten angesetzte Portabilität. D.h.
die Library sollte als DLL f. Windows uind als Shared Library f.Linux
kompilierbar sein. Ähnliches gilt für die Anwendung, auch sie sollte
unter Windows & Linux laufen.
Bin gespannt auf eure Antworten!
Viele Grüße,
Peter
Hallo Peter,
die D2xxx-lib unter Ubuntu funktioniert. Ich habe sie mit der
zugehörigen Wrapper-Unit unter Lazarus für den MiniLA benutzt.
Der einzige Unterschied zur Windowsversion war soweit ich mich
erinnere der andere Lib-Name, der einfach geändert werden kann.
Wenn das mit Lazarus geht, sollte es mit C keine Probleme geben.
Gruß, Guido
Hallo Guido,
funktioniert die Library auch mit INTEL Atom CPUs, oder bin ich da auf
dem falschen Dampfer, was die Systemabhängigkeit von Linux shared
libraries angeht?
Gruß,
Peter
Ausserdem wird ein FT245 (sofern man nicht im EEPROM herumgewuetet hat)
standardmaessig vom Kernel erkannt und ein ttyUSB* device angelegt. stty
+raw -f /device und du kannst den FT245 mehr oder weniger ueber die
shell ansprechen.
Ok, Punkt 1.) ist also schon mal geklärt, sollte klappen.
Wie sieht das mit den Fragen 2.) und 3.) aus? Welche
Entwicklungsumgebungen Compiler Sprachen würdet ihr mir empfehlen?
Aus dem Bauch heraus hätte ich jetzt Java für die Anwendung gesagt und
die Shared Library in C geschrieben und mit GCC erzeugt.
Kommt drauf an was du genau machen willst. Viele Aufgaben lassen sich
unter Linux bereits mit einem "einfachen" Bash-Skript lösen!
Schnittstelle unter Linux ansprechen ist idr einfacher wie mit Windows.
Du arbeitest im Prinzip nur mit einer Datei (in deinem Fall wie schon
oben einer geschrieben hat irgendwas mit /dev/USBttyS0 )
Wenns komplizierter ist würde ich dir aufjedenfall raten mit C bzw C++
zu programmieren und die QT-libs zu verwenden dann kannst du dein
Programm auch leicht auf andere Plattformen wie Windows oder MacOS
portieren.
Entwicklungsumgebung kann ich dir jetz keine Spezielle nennen.
lg
Für eine "DLL" kommst du schlecht um C herum.
Aber wenn es um die erwähnte einfache 3-Tasten-Anwendung geht, dann tut
es als "Entwicklungsumgebung" jeder Editor und raus kommt einfachstes
Scripting mit TclTk (oder ebenso Tk via Python,Perl,PHP,,...). Stammt
zwar noch aus der Broncezeit, aber dafür langt es und ist schön einfach.
> Wenns komplizierter ist würde ich dir aufjedenfall raten mit C bzw C++> zu programmieren und die QT-libs zu verwenden dann kannst du dein> Programm auch leicht auf andere Plattformen wie Windows oder MacOS> portieren.
Ok, QT wäre eine Lösung um Portierbarkeit zu gewährleisten.
Was wäre mit Java, könnte an das nicht auch einsetzten? Ein Freund hat
mir Java wärmstens empfohlen.
> Für eine "DLL" kommst du schlecht um C herum.
Macht doch nix ;-) C ist kein Problem, habe bereits diverse kleinere
DLLs geschrieben und mit MinGW kompiliert. Aber halt alles unter
Windows.
Editor muss ich mal schaun, aber so wie ich die Linux-Welt einschätze
gibts da nicht viel. Seitdem mir ein Kollege mal den "super" Editor VI
vorgeführt hat und allen ernstes meinte dieser wäre besser als alles
Vergleichbare bin ich da wenig optimistisch. :D
peterguy schrieb:
> Editor muss ich mal schaun, aber so wie ich die Linux-Welt einschätze> gibts da nicht viel.
Ach nee. Gute Editoren und ggf. darauf aufbauende IDEs gibt es wie Sand
am Meer. Code::Blocks, jEdit, ...
> Seitdem mir ein Kollege mal den "super" Editor VI> vorgeführt hat und allen ernstes meinte dieser wäre besser als alles> Vergleichbare bin ich da wenig optimistisch. :D
Glück gehabt. Ein anderer hätte dir Emacs empfohlen.
peterguy schrieb:
> Was wäre mit Java, könnte an das nicht auch einsetzten? Ein Freund hat> mir Java wärmstens empfohlen.
Eine einfache GUI-Anwendung geht mit so ziemlich allem worin man
programmieren kann, ausser mit der Shell selber. Such dir aus was dir
besser passt.
Eine eigene Frage?
Dieser Thread ist über 17 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.