INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Serielle Kommunikation zwischen zwei Laptops



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!

03.09.2016, 20:32
Beitrag #1

Gerd Grote Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Feb 2012

2016
2012
DE


Deutschland
Serielle Kommunikation zwischen zwei Laptops
Hallo,

Ich hoffe ich bin hier richtig ..

Ich möchte auf zwei Laptops jeweils ein Vi (Sender und Empfänger) laufen lassen. Das Empfänger-Vi soll das Sender-Vi über Rs232 steuern und das Sender-Vi soll dann (später) Bilder über Rs232 an das Empfänger-Vi senden wo sie dann dargestellt werden.

Als erstes will ich die Steuerung testen und da scheitere ich schon. Bin mir auch nicht ganz sicher, ob das so klappen kann wie ich mir das vorstelle.
Ich habe im Empfänger-Vi eine Event Driven State Maschine gebaut. Über drei Tasten können die Zustände eingestellt werden. Das klappt.
Jetzt soll der jeweilige Zustand - in Form eines String ist meine Idee - über die serielle Schnittstelle an das Sender-Vi auf dem anderen Laptop geschickt werden und im Moment (später soll das noch erweitert werden..) nur als Text dargestellt werden (im Moment ist noch eine Case-Struktur dahinter..).
Allerdings erhalte ich dabei immer einen Fehler: The resource is valid, but Visa cannot currently access it.

Kann mir jemand sagen wo mein Fehler liegt?

Die Vis sind im Anhang

Vielen Dank im Vorraus

Gerd


Angehängte Datei(en)
15.0 .vi  Empfängerseite.vi (Größe: 15,04 KB / Downloads: 309)

15.0 .vi  Senderseite.vi (Größe: 10,27 KB / Downloads: 305)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.09.2016, 07:23 (Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2016 07:46 von Gerd Grote.)
Beitrag #2

Gerd Grote Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Feb 2012

2016
2012
DE


Deutschland
RE: Serielle Kommunikation zwischen zwei Laptops
Moin,

habe meinen Fehler gefunden.
Duschen ist in nicht nur gut für die Hygiene Big Grin

Die serielle Verarbeitung muß natürlich in die while-Schleife und nicht in dei Case-Struktur.

Gruß

Gerd

p.s. Ich bin aber trotzdem für Änderungen/Verbesserungen oder allgemeine Anregungen offen. Da ich noch am Lernen bin, ist jeder Kommentar willkommen.
Deswegen würde ich den Thread gerne noch offen lassen wenn es erlaubt ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.09.2016, 17:33
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Serielle Kommunikation zwischen zwei Laptops
Hallo Gerd,

Zitat:Ich bin aber trotzdem für Änderungen/Verbesserungen oder allgemeine Anregungen offen.
- Warum koppelst du die beiden Laptops nicht über ein LAN-Kabel, notfalls auch direkt? Und nutzt dann eben TCP/IP?
- Dein Empfänger hat überhaupt keine RS232-VISA-Zugriffe im VI…
- Dein Sender sendet liest nur einmal, wie du selbst herausgefunden hast. Aber warum muss man den gelesenen String unverändert durch eine Case-Struktur schleusen?
- Autocleanup / Ctrl-U kann man gefahrlos benutzen!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2016, 19:58
Beitrag #4

Gerd Grote Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Feb 2012

2016
2012
DE


Deutschland
RE: Serielle Kommunikation zwischen zwei Laptops
Hallo,

Zitat:- Warum koppelst du die beiden Laptops nicht über ein LAN-Kabel, notfalls auch direkt? Und nutzt dann eben TCP/IP?

Weil meine Vorgabe eine RS232 Schnittstelle ist.

Zitat:- Dein Empfänger hat überhaupt keine RS232-VISA-Zugriffe im VI…

Das ist richtig. Wie ich geschrieben habe, bin ich erst beim ersten Teil meiner Aufgabe, der Steuerung des Sender durch den Empfänger.
Im zweiten Teil wird dann der Sender ein Bild über die serielle Schnittstelle schicken und dieses wird dann im Empfänger dargestellt.

Zitat:- Dein Sender sendet liest nur einmal, wie du selbst herausgefunden hast. Aber warum muss man den gelesenen String unverändert durch eine Case-Struktur schleusen?

Weil auch dies ein Test ist. Ich habe ja drei unterschiedliche Tasten auf der Empfängerseite (Bilder senden, Einzelbildersenden und Stopp) und je nachdem welche Taste gedrückt wird , wird dann in der Casestruktur eine entsprechende Aufgabe ausgeführt... mir ist durchaus klar, daß sie im Moment unnötig ist.

Ich habe mein Konzept jetzt geändert, da sich die Vorgabe auch ein bißchen vereinfacht hat. Ich benutze nun nur noch zwei while-Schleifen sowohl auf der Empfänger- als auch auf der Senderseite. Am Sonntag werde ich meine neuen Programme hier hochladen (habe dieses Wochenende leider wenig zeit), dann können wir gerne weiter reden.

Gruß

Gerd
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.09.2016, 16:41 (Dieser Beitrag wurde zuletzt bearbeitet: 11.09.2016 17:35 von Gerd Grote.)
Beitrag #5

Gerd Grote Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Feb 2012

2016
2012
DE


Deutschland
RE: Serielle Kommunikation zwischen zwei Laptops
Moin,

Im Anhang meine neuen beiden Sender- und Empfänger-vis und ein Testbild das etwas größer ist als die maximale Bildgröße die ich am Ende versenden will.
Das Problem ist, daß ich das Bild auf der Emfängerseite nicht richtig darstellen kann. Manchmal kommt etwas an und manchmal nicht, aber nie das ganze Bild. Auf der Senderseite habe ich das Bild zu Testzwecken gleich wieder in eine Datei geschrieben. Das funzt...
Hat da jemand einen Idee was ich falsch mache?
Liegt es an der Größe des Bildes? Wird dass Bild vor dem seriellen Senden in mehrer Teil gestückelt und nicht wieder richtig zusammengesetzt?
Falls ja, kann ich dem Bild auf der Senderseite ein Bildendezeichen o.ä. verpassen und auf der Empfängerseite die seriellen Daten solange auslesen bis das Bildendezeichen kommt und es erst dann speichern und darstellen? Wenn ja wie geht das am besten?

Und dann noch das Problem des Darstellens.. Gibt es soetwas wie String zu Bild Konvertierung? Die auch nur mit der Baseversion funktioniert?

Fragen über Fragen Smile

Freue mich über jeden Tipp

Gruß

Gerd


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.09.2016, 17:15
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Serielle Kommunikation zwischen zwei Laptops
Hallo Gerd (der du den Account HorstW benutzt… Big Grin),

was sofort ins Auge fällt: die (unnötige bis falsche) Nutzung von BytesAtPort, obwohl du beim SerialPortInit das TermChar aktivierst!
Entweder TermChar oder BytesAtPort!

Dank BytesAtPort liest du die Zeichen, die zum Zeitpunkt der Abfrage von BytesAtPort schon im Buffer der seriellen Schnittstelle vorhanden sind. Und kombiniert mit dem aktiviertem TermChar kann es sein, dass du nicht einmal diese Zeichen ausliest! Das ganze hat nichts mit einem vollständigen JPG-Bild zu tun…

Außerdem:
- Referenzdrähte IMMER durchverdrahten und am besten Schieberegister verwenden!
- "C:\Users\HorstW\Desktop\von_Christoph\labjpeg7.dll" ist kein Standardablageort für eine DLL…
- Fehler immer behandeln und/oder durchverdrahten!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.09.2016, 17:53
Beitrag #7

Gerd Grote Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Feb 2012

2016
2012
DE


Deutschland
RE: Serielle Kommunikation zwischen zwei Laptops
Hallo,

Das eine Vi war falsch ... das war ein Experiment mit einem String to pic aus dem Inet was aber irgendwie nicht funtkioniert ...

Im Anhang die richtigen Dateien...

habe auch Deine Anmerkungen eingepflegt. Benutze aber immer noch BytesatPort aber diesmal ohne Termchar.

Zitat:- Referenzdrähte IMMER durchverdrahten

Habe ich doch gemacht oder wie genau meinst Du das?

Zitat:- Fehler immer behandeln und/oder durchverdrahten!

Hast Du dafür ein kleines Beispiel?

Gruß


Angehängte Datei(en)
12.0 .vi  Empfängerseite_neu_12.vi (Größe: 36,15 KB / Downloads: 271)

12.0 .vi  Senderseite_neu_12.vi (Größe: 36,42 KB / Downloads: 277)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.09.2016, 18:04
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Serielle Kommunikation zwischen zwei Laptops
Hallo Gerd,

BytesAtPort liest immer nur das, was gerade im Buffer der seriellen Schnittstelle vorhanden ist - das ist wahrscheinlich nicht das komplette Bild!

Ich empfehle dir eine Vorgehensweise in der Art von:
- Sender signalisiert ein neues Bild: "NEW JPEG"
- Sender sendet Anzahl der Bytes des Bildes: "12345"
- Sender sendet das Bild "FF D8 FF E0 …"

- Empfänger bemerkt: jetzt kommt ein neues Bild
- Empfänger liest die Anzahl der kommenden Bytes
- Empfänger liest die Bytes des Bildes…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.09.2016, 18:30
Beitrag #9

Gerd Grote Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Feb 2012

2016
2012
DE


Deutschland
RE: Serielle Kommunikation zwischen zwei Laptops
Hallo,

also quasi die Anzahl der Bytes des Bildes mit über die serielle Schnittstelle schicken und die Zahl als Schleifenzähler für eine For-Schleife benutzen und in der For-Schleife dann die serielle Schnittstelle auslesen.

Kann man das so machen?

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.09.2016, 20:40
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Serielle Kommunikation zwischen zwei Laptops
Hallo Gerd,

du musst ja nicht einzelne Bytes lesen - man kann ja auch in z.B. 512 Byte großen Blöcken einlesen (und den letzten Teilblock extra)!
Das wäre eine gute Balance zwischen Aufwand und Fehlerüberwachung…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Question Kommunikation Serielle Schnittstelle, System stürtzt ab Baron 1 3.736 13.12.2018 23:02
Letzter Beitrag: IchSelbst
  Kommunikation zwischen Programmen/SQL Appa 8 8.038 11.09.2017 08:56
Letzter Beitrag: Appa
  Schnellste Kommunikation zwischen CRio und PC zur Synchronisation MarkG 5 6.267 22.12.2016 18:04
Letzter Beitrag: MarkG
  Datenaustausch zwischen zwei Programmen Michael5 1 5.541 05.07.2016 20:13
Letzter Beitrag: GerdW
  Probleme mit TCP Kommunikation zwischen Server & Client ChiefChill 3 6.793 10.03.2014 09:02
Letzter Beitrag: cb
  Kommunikation S5-95U mit LabVIEW über serielle Schnittstelle Ham 4 7.700 10.11.2013 22:33
Letzter Beitrag: Lucki

Gehe zu: