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!
08.09.2009, 14:27 (Dieser Beitrag wurde zuletzt bearbeitet: 08.09.2009 20:02 von jg.)
ich habe gerade ein recht altes LabVIEW Programm rausgekramt da ich kleine Erweiterungen & Bugfixes einarbeiten wollte.
Nun stelle ich aber etwas für mich interessantes fest und werde aktuell auch nicht so richtig schlau draus.
Hintergrund:
Programm wird verwendet um eine serielle Verbindung zu einem Netzteil aufzubauen und dieses dann zu steuern -> sprich Visa Kontext.
Bis dato verwende ich dafür ein Dropdown-Element welches mich die Schnittstelle am Rechner definieren läßt.
Interessanterweise liefert dieses immer COM1 zurück - auch wenn ich COM-X ausgewählt habe.
Dazu ein Blick auf Bild 1 - siehe Anhang
Um dies zu prüfen habe ich dann einen Event hinzugefügt der nach Änderung der Schnittstelle diese Info abfrägt und via dialog ausgibt - einfach um zu sehen ob diese Schnittstellenänderung den überhaupt irgendwo ankommt ....außer in der GUI.
Es wirkt so - siehe Bild2 - als ob wirklich nur die GUI diese Auswahl aktuell mitbekommt.
Nun die eigentliche Frage:
Fällt euch irgendwie ein wie ich dies fabriziert haben könnte ?
Diesen Schnittstellenwahl Ansatz habe ich in diversen Programmen verwendet und das hat immer reibungslos funktioniert ..... irgendwas muss hier jetzt gänzlich in die Hose gegangen sein und ich tue mich etwas schwer in der lokalisierung.
Die werden bei LV doch nicht etwa die Betriebsystem-"Features" mit eingebaut haben? Dort gehen die COMs nämlich nur von COM1 bis COM9. COM11 und COM17 wird da schon mal als COM1 interpretiert. Will man auf COM17 zugreifen, muss es nicht "COM17" heißen, sondern "\.COM17".
Kann man in dem Pulldown die Anzeige nicht vom Format "COMx" auf "INSTR:ASLx" (oder so ähnlich ) umstellen?
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
@ichselbst:
interessante Idee mit den zweistelligen Com-Ports - werde ich mal durchspielen durch künstliches ändern.
EDIT:
also das abändern von z.b. COM17 auf COM7 und der erneute Test machte keinen Unterscheid. Auch diese wird mir als COM1 zurückgeliefert.
@Jens G:
naja ... ich versuch es bewusst runterzubrechen (drum auch vereinfacht mit dem Chang-eEvent) - frage mich aber was fürn Code du da sehen willst.
Letzlich ist es das Schnittstellendevice und ein Event der im Falle einer Wertänderung des Elementes ausgibt was das Item aktuell selektiert hat.
Ich kann davon gerne Screenshots abhängen - denke aber nicht das dies irgendwie hilft.
Weisst du was ich meine ?
Oder meinst du den kompletten "code" des Projektes - der großteilig auf eigenen VIs basiert und damit mehr oder weniger komplex & nachvollziehbar ist .... das würde wohl zuweit gehen - ohne dass man viel Zeit investiert.
Kurzum; mir ging es um ein minibeispiel - habe gehofft obiges umschreibt das im Ansatz. Wenn du mir genau sagst was du wissen / sehn willst werd ich das umgehend nachreichen.
Randnotiz: Der Magische-Kugel-Smily rockt.
Edit: habe jetzt mal noch den erwähnten Part als Bild angehängt.
' schrieb:Ich kann davon gerne Screenshots abhängen - denke aber nicht das dies irgendwie hilft.
Oh, das hilft ungemein. Weil: So geht das nicht. So wird immer COM1 angezeigt.
In diesesm Falle, falls du das genau so programmiert hast, wie im Bild dargestellt, greift das Datenflußprinzip. Noch bevor die While-Schleife verarbeitet wird, wird "Schnittstelle 2" ausgelesen. Und da steht eben mal COM1 drinn. Dieser Wert wird per DF in den EventCase geleitet. Zu jedem ChangeEvent wird also COM1 angezeigt. Wenn, dann musst du das Bedienelement "Schnittstelle 2" in den Case legen. Oder verwende gleich den Case-Parameter "Neuer Wert".
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).