Richtige Syntax in der Main für den Verbindungsaufbau zur Seriellen Schnittstelle - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Richtige Syntax in der Main für den Verbindungsaufbau zur Seriellen Schnittstelle (/Thread-Richtige-Syntax-in-der-Main-fuer-den-Verbindungsaufbau-zur-Seriellen-Schnittstelle) |
Richtige Syntax in der Main für den Verbindungsaufbau zur Seriellen Schnittstelle - Atilla - 28.11.2012 16:03 Hi, Ok ich weiß mein Titel ist etwas lang, aber ich wusste nicht wie ich ihn besser formulieren soll. Es geht um die Syntax meiner Main.vi Hier funktioniert erstmal nur eine Einstellung und das ist die Manuelle Steuerung. Also ich habe über meine Erzeuger-Verbraucher Struktur eine Sequenzstrutkur gelegt. Außerhalb dieser Struktur verbinde ich mit meiner Schnittstelle und beende sie, falls ich aus der Struktur rausgehe. Kurz gesagt, ist das so sinnvoll wie ich das gemacht habe? Es funktioniert. Also ich kann, wie gewollt, einzelne LED ein und ausschalten. Und ich hättenoch eine Frage und zwar wie kann ich meine Datenübergabe so gestalten, das ich die Daten sende auf knopfdruck? Weil momentan muss ich die Bedingung zum senden an die Queue erfüllen, aber er sendet erst wenn ich zwischen der Auswahl hin und her switche. Das ist nicht schön. [attachment=42400] [attachment=42401] [attachment=42402] Danke Gruß Atilla P RE: Richtige Syntax in der Main für den Verbindungsaufbau zur Seriellen Schnittstelle - eb - 28.11.2012 16:58 Hallo, erstmal: Cool das mal ein VI gezeigt wird, dass (sauber) das Producer/Consumer-Pattern benutzt. Prima ist auch, dass keine überflüssigen lokalen Variablen zu sehen sind! Ich finde es muss auch mal gelobt werden Ich habe mir dein VI mal angeschaut und ein paar kleine Änderungen eingebaut. Andere Sachen erwähne ich nur, die könntest du ja noch nachpflegen:
[attachment=42405] Hab es nicht getestet; funktioniert es weiterhin bei dir? ps.: Du weißt, dass du ein Snippet (das angehängte Bild) direkt in das Blockdiagramm ziehen kannst? Dann wird es direkt zu Quellcode. pps.: Ich sehe grade das im Snippet das Event vom Tab-Control losgelöst wurde. Das ist keine Absicht. Bitte stelle als Event wieder ' "Tab Auswahl": Value Change' ein. Gruß eb RE: Richtige Syntax in der Main für den Verbindungsaufbau zur Seriellen Schnittstelle - Atilla - 30.11.2012 09:54 (28.11.2012 16:58 )eb schrieb: Hallo, Hey eb, Danke für deine Antwort und deinen Lob. Das schön wenn man mal etwas richtig gemacht hat Das mit dem Snippet wusste ich nicht, aber jetzt, auch danke dafür Zitat:[*] Ich würde die Datenerzeugung direkt in die Eventstruktur machen. Die Status-Abfrage(ist es doch, oder?) könnte erstmal in den TimeOut-Case. Warum ist es sinnvoll da die Daten zu erzeugen? Ja es ist eine Status-Abfrage und es klingt sinnvoll die da zu platzieren. Aber wird ddann der status durchgehen abgefragt bzw regelmäßig? Doch den Ok-Button brauche ich. Wie soll der Benutzer wissen, ob die daten gesendet wurden? Und ich darf ja nur eins von den Menüpunkten nutzen und übergeben und so lange die Messung läuft, darf der Benutzer nichts anderes machen. Zitat:[*] Unbedingt aus dem enum eine Typ-Definition machen!Verstehe ich nicht. ich glaube, dass könnte dann auch der Grund sein warum er bei mir keine Daten sendet :/ Also es tut nicht das was es tuen soll. Wenn du mir sagen könntest du ich das mit der Typ-Definition und der Typumwandlung vernüftig nachlesen kann, dann würde es bestimmt anders aussehen. p.s. Die anderen menüPunkte kommen nach der Zeit. Ich möchte erstmal eins nach dem anderen sauber zu laufen bekommen. Gruß Atilla RE: Richtige Syntax in der Main für den Verbindungsaufbau zur Seriellen Schnittstelle - eb - 30.11.2012 10:18 Moin,
Gruß eb RE: Richtige Syntax in der Main für den Verbindungsaufbau zur Seriellen Schnittstelle - Atilla - 30.11.2012 10:41 Morgen, also das mit der Typendefinition, ist dafür da, dass ich eine dynamische Struktur habe, habe ich dich richtig verstanden? zu3. Das Ding ist, das die Daten gesendet werden, bevor ich irgendetwas ausgeben kann. Also wenn ich einen Tap auswähle, sendet er sofort. Das darf ja nicht. Außerdem sendet er immer nur einen leeren Fall. Ich habe beim Verbraucher einen Fall, falls es nichts sendet und erhalte einfach nur eine Bestätigung dieser Leersendung. Und das erhalte ich jetzt jedesmal bei jedem Tab. Theoretisch brauche ich diesen Fall nicht mehr mit dieser Struktur. Ich habe bis jetzt noch nichts verändert. Also an deiner Version, weil ich das mit der Typ Defintion nicht verstanden habe. P.S. Du kannst es auch selbst testen mit dem Menü "Ratensteuerung". Es soll nur zwei Werte übergeben. Aber dies Funktioniert nicht. Ich habe nun versuch einen OK-Button einzubauen und das mit der Typdefintion umzusetzen, aber iwie hängt sich das Programm total auf, nicht mal Ratensteuerung funktioniert. P.P.S. Jetzt sollte Ratensteuerung funktionierne. [attachment=42441] RE: Richtige Syntax in der Main für den Verbindungsaufbau zur Seriellen Schnittstelle - eb - 30.11.2012 13:35 Hallo nochmal, Also wenn du den OK-Button unbedingt brauchst, dann würde ich das Senden des Commands davon abhängig machen. so zum Beispiel: [attachment=42447] Achtung: Die Reihenfolge der Tabs und der Bedienelemente beim Anschließen beachten! Achtung: Irgendwie zerschließt er bei den Snippets immer die EventZuordnung, bitte stelle das gezeigte Event auf die Wertänderung des OK Buttons Gruß eb RE: Richtige Syntax in der Main für den Verbindungsaufbau zur Seriellen Schnittstelle - Atilla - 05.12.2012 14:17 Danke, es funktioniert nun genauso wie es soll. Also das mit dem OK-Button. So kann ich nun nämlich die Werte ändern und dann erst losschicken. Danke. Aber ich bekomme es irgendwie noch nicht in den Kopf, was es mit der TypDef auf sich hat. Ich habe bei mir die Auswahl in der EReignisstruktur zu einer Typ def umgewandelt. Dafür habe ich dann ein VI erhalten in dem nur ein Enum enthalten ist und dieses hat die von mir gewünschten Menüs. Nun habe ich noch dieses VI in die Elementdatentyp geladen. Aber das blöde ist ja nun, dass er mnun jedes mal die Manuelle Steuerung auswählt, egal was ich mache. Also so weit ich es verstanden habe hast du das eingefügt damit mein VI dynamisch bleibt. Also wenn ich etwas in meiner Auswahl ändere, brauche ich dafür nur ein enum zu ändern statt z.b. 3 oder so. Richtig? Kennst du vll ein gutes Beispiel, zur typDef. Ich würde es gerne verstehen, falls es dir keine Umstände bereitet. Danke gruß Atilla. RE: Richtige Syntax in der Main für den Verbindungsaufbau zur Seriellen Schnittstelle - eb - 27.02.2013 13:09 Zitat:Tut mir leid, ich meine es geht um Typumwandlung. Hallo Atilla, Also die TypUmwandlung (TypeCast) dient dazu die Tab-Auswahl (Registerkarten-Element) auf die Enum-Konstante zu übertragen. Wenn also z.B. der 2. Reiter ausgewählt ist, dann "wählt" die Typumwandlung den 2. Wert aus der Enum-Auflistung aus, und gibt diesen dann weiter. Der Vorteil dabei ist, dass der blaue enum-Draht nach der Typumwandlung eben ein enum ist; dieser kann z.B. einfach an einen Case-Struktur-Selektor angeschlossen werden und die Cases sind dann benannt, statt einfach nur Nummern zu tragen. Um diesen Vorteil durch die Typumwandlung zu nutzen muss aber die Reihenfolge im enum gleich der Reihenfolge der Tabs im Registerkarten-Element sein! Hab ich das soweit besser beschrieben? Gruß RE: Richtige Syntax in der Main für den Verbindungsaufbau zur Seriellen Schnittstelle - Atilla - 18.03.2013 10:11 (27.02.2013 13:09 )eb schrieb: Hab ich das soweit besser beschrieben? Ja das hast du. Vielen Dank. Aber ich sehe nun auch das ich es richtig verstanden habe, das Problem lag eher an der Darstellung, also um welches format es sich hier handelt und deshlab kam es die ganze zeit nur zu Fehlern. Aber ich danke dir trotzdem für diesen Beitrag, vll hilft er noch jmd anderem Gruß Atilla |