Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
27.04.2010, 20:08 (Dieser Beitrag wurde zuletzt bearbeitet: 27.04.2010 20:08 von sirld.)
Folgende Situation: ich habe mehrere Geräte, die mit RS232 kommunizieren. Da ich Linux verwende, scheidet VISA als Schnittstelle aus. Daher habe ich ein kleines C-Programm, welches mir einen seriellen Port (/dev/ttySX) öffnet, die Parameter setzt undsoweiter. Dies kann ich als Shared Library kompilieren und in LabVIEW einbinden.
Ich habe noch ein USB-Oszilloskop, mit dem ich über Pipes kommuniziere.
Hat jemand eine Idee, wie ich mit dem seriellen Port auch über Pipes - also ohne das C-Programm - kommunizieren kann?
Danke schonmal,
sirld
Anzeige
27.04.2010, 20:11 (Dieser Beitrag wurde zuletzt bearbeitet: 27.04.2010 20:12 von eg.)
Genau die Pipes benutze ich für die USB Schnittstelle (ist USBTMC das zu einem Tektronix spricht).
Anbei die VI, mit der ich USB-Kommunikation betreibe (die hat Pipes und braucht kein weiteres Programm mehr, Kernel Treiber genügen), sowie die VI, mit der ich RS232 ansteuere. Die benötigt noch dieses kleine Programm, das ich am Ende loswerden möchte.
' schrieb:Naja, VISA funktioniert mit Linux nur mit Kerneln vor 2.6.27...
Ist das grundsätzlich so? Ich dachte das gilt nur für die Komponenten die Kernel Treiber beinhalten, wie etwa der NI-488.2 Treiber den VISA benötigt um GPIB Kommunikation zu machen. Für Serial und Ethernet sollte er ganz einfach das User API ansprechen.
VISA benötigt offenbar immer Kernel Treiber. Das Problematische ist dabei NI-KAL welches auf init_mm (ist ein exportiertes struct alter Kernel) zu basieren scheint. Leider gibts seit eineinhalt Jahren kein init_mm mehr. Und NI bringt keine Version ohne init_mm heraus.
D.h. ohne NI-KAL kein VISA und ohne VISA kein... naja, kein VISA im LabVIEW.
Und USBTMC ist bereits im Kernel drin, funktioniert also "out of the box", da muss man nix mehr installieren. Das mit der seriellen Schnittstelle ist dabei ein wenig komplizierter; aber ich hab eine Idee, muss ich nur nochmal ausprobieren:
mit setserial die serielle Schnittstelle einstellen. Vielleicht kann man dann agetty oder sogar ne Pipe auf das Gerät selbst benutzen... ich werde berichten, wenn ich fertig bin.
02.05.2010, 10:08 (Dieser Beitrag wurde zuletzt bearbeitet: 02.05.2010 10:17 von rolfk.)
Ohne jetzt NI voll in Schutz nehmen zu wollen, habe ich das Gefühl dass sie ein wenig das Schlachtopfer im Streit der Linux Kernel Bauer gegen proprietäre (closed source) Videokartentreiber geworden sind. Dabei wurde auch noch gleich die Möglichkeit genützt alle closed source Treiber generell aus dem Kernel zu kippen.
Sinnvoll? Ich wage es etwas zu bezweifeln. Gut für die Community? Eventuel, aber nicht für alle User!
Es stimmt das GPL grundsätzlich nicht mit Closed Source kompatibel ist. Darum bestand ja früher auch eine entsprechende Exception clause dass man nicht nur Closed Source Applikationen auf Linux laufen lassen darf sondern auch Closed Source Treiber laden darf. Wenn das von Beginn an verboten worden wäre, wäre Linux lange Zeit auf Mainstream-Hardware jeweils erst zum Laufen zu bringen gewesen wenn die Hardware schon lange nicht mehr verkauft wurde. Damit wäre Linux auch nicht das geworden was es heute ist, sondern ein Nischenprodukt geblieben worum sich eine verschworene Entwicklergemeinde schart, und der Rest der Welt hät's schon lang vergessen.
Ich spreche den Kernelbauern nicht das Recht ab so eine Entscheidung zu treffen aber ich finde es trotzdem keine uneingeschränkt gute Idee.
Es ist auch nicht so dass dieser Export nicht mehr vorhanden ist, aber ein nicht GPL Treiber darf und kann keinen Gebrauch mehr davon machen.