Abend zusammen,
Ich wollte mit Labview eine W-Lan (TCP) verbindung zu einem µC (ATMega8) aufbauen. Für den Anfang soll nur eine Led gesteuert (an /aus) werden. Eine Verbindung konnte ich herstellen und der µC erhält auch etwas. Nur leider sieht es aus, als wäre es ein leerer String und die Nachricht von Labview ist nicht dabei.
Weiss jemand von euch woran das liegen kann?
Ich benutzt LB 2009.
mfg exkluski
Hallo exkluski,
Bist du dir sicher, dass dein Knopf "OK-Schaltfläche 2" auf TRUE steht, wenn du glaubst zu schreiben?
Das Stringelement wird ja vorher abgegriffen.
Im übrigen steht dein SchreibTimeout auf einigen ms, da du ihn mit der Stringlänge gekoppelt hast, das mag etwas wenig sein
Gruß, marko
Danke für die Hinweisse, aber am timeout liegt es nicht, hatte auf 100 hoch eingestellt aber der string kommt trotzdem nicht an.
Ich habe mal ein zweites Vi als client erstellt und auf einem zweitem rechner Laufen lassen, dass hatte auch geklappt.
Nur weiss ich nicht warum am µC nichts ankommt? Ich weiss nur das etwas ankommt. Merkwürdig finde ich, wenn am String der Wagenrücklauf und der Zeilenvorschub angehängt wird. Wird mir das auch angezeigt bzw. am Terminal ausgegeben.
Hat jemand noch ein Rat für mich.
mfg Exkluski
Wenn es mit LabVIEW "untereinander" klappt, dann solltest du vielleicht einmal bei deinem µC-Programm ansetzen und dort debuggen.
Aktuell weißt du laut eigener Aussage nicht einmal, was genau am µC ankommt.
Ich habe leider keine Ahnung, wie die TCP-Gegenstelle auf deinem µC aussieht und meine Hellseherkugel ist leider mal wieder kaputt.
Gruß, Jens
Danke für die Andwort, habe alles noch mal geprüft.
Zitat:Wenn es mit LabVIEW "untereinander" klappt,
Hatte es mal auf 2 PC's versucht und es hatte geklappt, die Nachricht kam auch an.
Zitat:
dann solltest du vielleicht einmal bei deinem µC-Programm ansetzen und dort debuggen.
Das Programm am µC habe ich überarbeitet und mit einem Konsolen Programm als Server gestestet.
Beide arbeiten mit Blocking-Funktion, die Programme arbeiten erst weiter wenn sie eine NAchricht vom Anderen erhalten haben.
Zitat:Aktuell weißt du laut eigener Aussage nicht einmal, was genau am µC ankommt.
OK da kann ich dir nur halb zustimmen. Das einzige was ich weiss ist, es kommt eine nachricht an.
Nur es wird die Stringlänge angegeben und der Inhalt des string ist leer.
Ich meine das so:
senden vom µC: printf("at_send=1,5,0,0,Hallo\r\n")//AT-Befehl(senden)=1(für TCP), 5 (Zeichen für hallo),0,0,(ist 0 bei TCP-Protokoll), String \r\n(Abschlusszeichen)
am Konsolen Programm erscheind dann "Hallo".
Dann sende ich vom PC z.B. OK (2 Zeichen) und der µC
erhält: (für die Lesbarkeit habe ich zwischen den Hex leerzeichen eingesetzt)
read 0x01 0x02 //read (wird bei jedem Empfangen String anghängt) 0x01 (TCP) 0x02 (2 Zeichen für OK)
es sollte aber so sein read 0x01 0x02 OK.
Hoffe jetzt ist es verständlicher.
MfG exkluski
Hallo exkluski,
Zitat:senden vom µC: printf("at_send=1,5,0,0,Hallo\r\n")//AT-Befehl(senden)=1(für TCP), 5 (Zeichen für hallo),0,0,(ist 0 bei TCP-Protokoll), String \r\n(Abschlusszeichen) am Konsolen Programm erscheind dann "Hallo".
Dann sende ich vom PC z.B. OK (2 Zeichen) und der µC erhält: (für die Lesbarkeit habe ich zwischen den Hex leerzeichen eingesetzt)
read 0x01 0x02 //read (wird bei jedem Empfangen String anghängt) 0x01 (TCP) 0x02 (2 Zeichen für OK), es sollte aber so sein read 0x01 0x02 OK.
Hoffe jetzt ist es verständlicher.
Nicht wirklich...
Wenn ich den String "at_send=1,5,0,0,Hallo\r\n" (alles zwischen den Anführungszeichen!) versende, will ich dies auch am Empfänger ankommen lassen. Wenn ich am PC den String "OK" verschicke, möchte ich genau diese zwei ASCII-Zeichen am µC empfangen. Alles, was du da sonst noch beschreibst, scheint irgendwelcher Protokollkram oder von der speziellen Implementierung abhängig zu sein - dies können wir ohne entsprechende Doku nicht nachvollziehen!
Wenn ich eine Postkarte verschicke, soll der Empfänger doch auch nicht plötzlich noch einen Briufumschlag drumherum bekommen. Genauso verhält es sich mit TCP: du verschickst ein Datenpaket, welches identisch beim Empfänger ankommen soll...
Also: Bitte kläre nochmal deinen TCP-Datenverkehr - oder liefere bessere Erläuterungen!
OK dnke für die "Kritiken", habe mir noch mal alles durch den Kopf gehen.
Ich weiss jetzt zwar woher der Fehler (vom µC) kommt, habe Ihn aber noch nicht behoben.
Drauf gekommen bin ich als. Ich heute das W-Lan Modul (rs9110-n-11-22) dirket über RS232 an PC angeschlossen haben und die Initialisierung per Hyperterminal durchgeführt habe. Ja und siehe da, dich Strings kommen in voller Länge an.
Habe das Ganze mal mit einem Oszi überprüft und vom W-Lan zum µC kommt der gesamte String an und aus dem µC zum Hyperterminal kommt der Standart string (read) + die Länge des Strings.
MfG exkluski