Diplomarbeit: Implementierung RFID-Empfangsgerät unter Suse Linux
-
Hallo zusammen,
ich studiere Elektrotechnik und beginne Ende Oktober eine Diplomarbeit, die sich mit RFID-Anwendungen (Radio Frequency IDentification) beschäftigt. Dabei soll ein RFID-Empfangsgerät in ein medizinisches Gerät integriert werden, welches Linux als Betriebssystem nutzt. Das Empfangsgerät soll dann Transponder auslesen und beschreiben, die sich z.B. an Verbrauchsmaterialien befinden. Das medizinische Gerät weiß dann also immer, was gerade angeschlossen ist und kann Programmspezifikationen daraufhin festlegen. Für die Kommunikation zwischen Empfangsgerät und Transponder existiert angeblich bereits ein Tool vom Hersteller.
Zu Demonstrationszwecken soll zunächst ein "leeres" Medizingerät mit Mainboard, Festplatte und Monitor verwendet werden, an welches die Hardware angeschlossen wird.
**
Die Aufgaben sehen also wie folgt aus:**(1) Hardware- und Softwaretechnische Anbindung des Empfangsgerätes
(2) Realisierung des Lese- und Schreibprozesses zw. Empfangsgerät und Transponder
(3) Gestaltung einer grafischen Benutzeroberfläche zur Visualisierung des ProzessesWährend meines Studiums habe ich mich schon einigermaßen mit C++ beschäftigt und schon das ein oder andere unter Windows mit Visual C++ programmiert. Ich bin aber auf jeden Fall noch ein Anfänger. Mit Linux habe ich noch keine großen Erfahrungen gemacht.
Nun zu meinen Fragen:
(a) Wie tief muss ich in Linux einsteigen um beispielsweise das Empfangsgerät Hard- und Softwaretechnisch anzubinden?
(b) Wie tief muss ich in C++ einsteigen um beispielsweise das Empfangsgerät Hard- und Softwaretechnisch anzubinden?
(c) Welche Entwicklungsumgebung für C++ lässt sich am Besten unter Linux nutzen (auch im Hinblick auf die Gestaltung der grafischen Benutzeroberfläche)?Wäre schön, wenn ihr mir sagen könntet, was da genau auf mich zukommt
Vielen Dank,
Krommi
-
Krommi2 schrieb:
(a) Wie tief muss ich in Linux einsteigen um beispielsweise das Empfangsgerät Hard- und Softwaretechnisch anzubinden?
Ich nehme mal ganz frech an, dass die Kommunikation mit dem RFID-Leser über die serielle Schnittstelle geschieht.
Dann musst Du dich mit den device-Files auseinandersetzen und wissen, wie man deren parameter ändert Tipp: /dev/ttyS* und ioctl()Krommi2 schrieb:
(b) Wie tief muss ich in C++ einsteigen um beispielsweise das Empfangsgerät Hard- und Softwaretechnisch anzubinden?
In diesem Fall weiß ich nicht, was genau gemacht werden muss.
Und die Antwort "nicht so tief" wäre auch relativ ...Krommi2 schrieb:
(c) Welche Entwicklungsumgebung für C++ lässt sich am Besten unter Linux nutzen (auch im Hinblick auf die Gestaltung der grafischen Benutzeroberfläche)?
Ich verwende seit kurzem Ultimate++ mit theIDE, mit dem Du die Oberfläche wie mit Visual Studio "malen" kannst. Allerdings ist die Library "Ultimate++" nicht so gut für Anfänger geeignet, ausser Du willst nur ein paar Basisaufgaben erledigen, da sehr wenig Dokumentation vorhnaden ist und man sich die Infos entweder im Forum erfragen oder im Source ersuchen muss.
Einen Blick ist sie jedoch auf jeden Fall wert: http://upp.sf.netFall Du noch weitere Fragen hast bzw. deine Aufgaben genauer spezifizierst kann ich dir auch gerne bessere/genauere Antworten geben.
Gruß
-
Erstmal danke für deine Antwort XZ59.
(a)
Mit der seriellen Schnittstelle hast du recht. Kannst du mir vielleicht einen Link oder Literaturhinweis geben, der sich genauer mit solchen "Schnittstellengeschichten" unter Linux befasst?(b)
Damit meine ich, wie weit ich mich in C++ noch einarbeiten muss. Mit den Grundlagen und objektorientierter Programmiereung bin ich soweit fit, aber ich hab noch nicht sehr viel mit der Standardbibliothek usw. gemacht. Bin mir halt noch nicht so sicher, ob das reicht, um direkt in die grafische Programmierung oder wie in (a) Schnittstellenprogrammierung einzusteigen.(c)
Hat sich unter Linux noch keine Entwicklungs-Umgebung durchgesetzt, wie unter Windows Visual C++? Mir ist vor allem wichtig, dass ich genuegend Literatur zum einarbeiten finde und die Umgebung so gut ist, dass ich nach meiner Aebeit noch darauf aufbauen kann.
Was hälst du von Qt zur grafischen gestaltung? Ist Qt direkt in eine Entwicklungsumg. eingebettet, oder wie kann ich mir das vorstellen? Wenn ja, welche?Krommi2
-
(a)
Dort findest du Links, Literaturhinweise und Beispielcode http://www.c-plusplus.net/forum/viewtopic.php?t=39504(c)
Unter Unix/Linux benutzen viele Programmierer keine IDE im Windows Sinne. Die meisten Programmierer arbeiten mit vi(m) oder Emacs. Auf den ersten blick sind diese nicht ganz leicht zu durchschauen, da sie sich anders verhalten als übliche Window Applikationen.Aber es gibt auch zahlreiche IDEs, die denen unter Windows ähnlich sind.
KDevelop, Anjuta, Code::Blocks, Eclipse sind glaube ich so die bekanntesten. Ansonsten siehe hier http://www.c-plusplus.net/forum/viewtopic.php?t=39513
Bei Qt musst du deine Software auch unter die GPL stellen. Ansonsten ist es aber eine komplette Software API, die dir glaube ich auch Dinge wie Serielleschnitstellen abstrahiert. Durch den QtBuilder (oä) erhält man auch eine Integration in IDEs, wobei für Qt wohl KDevelop das beste ist.
Mir persönlich gefällt GTKmm oder fltk besser. Wobei diese wirklich nur eine GUI anbieten und du die Serielle Schnitstelle mit Systemfunktionen ansprechen musst.
Wenn das alles auf einem medizinischen Gerät laufen soll, solltest du dir aber mal die Specs angucken. Vermutlich hat das Gerät bereits eine GUI Lib und soetwas wie Qt wäre vermutlich eh zu groß dafür.
-
Zu (a) und (c) ist soweit alles gesagt und
zu (b):
Ich denke, dass es für die serielle Schnitstelle und eine einfache lib anzusprechen wie zB FLTK reichen sollte, wenn nicht:
"Man wird alt wie eine Kuh und lernt immer noch dazu"
-
Schönen Dank nochmal, falls ich noch Fragen habe, werde ich wieder was von mir hören lassen