Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Probleme mit capture... release Kategorie: Programmierung (von rüdi und kone - 2.05.2003 21:42)
Als Antwort auf Re: Probleme mit capture... release von André H. - 30.04.2003 12:05

Hallo Andre,

deine Tip war top. Unser Problem ist gelöst! Wir lassen es jetzt nur über einen Thread laufen, trotzdem
muss man höllisch aufpassen. Wär doch was für Deine FAQ`s.

bueno, muchas gracias hombre!!!
MfG
rüdi und kone


> Hallo Rüdi,
>
> Das Capture funzt einwandfrei. Jedoch muÃ? man bei bereits gecaptureten
> Funktionen, wie das z.B. bei hwcom der Fall ist, aufpassen.
>
> Wird von mehreren Threads jeweils eine Ausgabe gemacht, gibt's kein Problem.
> z.B. beiden senden einen String. (unterschiedliche Variablen !!)
> Wenn aber die Threads mehrere Ausgaben machen, z.B. mit put(), send() und/oder print(),
> ist nicht die gesamte Ausgabe gecaptured, sondern nur die einzelne Funktion.
> D.h. zwischen den Aufrufen kann der nächste Thread Laufzeit bekommen.
> Eine Lösung wäre hier ein verschachteltes Capture (siehe Modul cap.c2).
> Auch muÃ? beachtet werden, daÃ? das Senden im Hintergrund geschieht.
> > string s;
> ...
> s="Irgentetwas";
> hwcom.print(s);
> s="etwas anderes";
> hwcom.print(s); >
> Dies hier führt z.B. zu Fehlern, da die Ausgabe des Strings s noch nicht
> komplett gesendet wurde, als in s ein neuer String geschrieben wird.
> Hier muÃ? entweder auf hwcom.ready() gewartet oder abwechselnd eine
> zweite String-Variable benutzt werden.(Das selbe gilt auch für Arrays)
>
> Jedoch würde ich generell die serielle Kommunikation nur über einen einzigen
> Thread laufen lassen. Ich kann mir sonst nicht vorstellen, daÃ? diese
> sonst einwadfrei funzt und der Empfänger (z.B. PC) die Daten im richtigen Format
> bekommt.
> In meinen Projekten gibt es dafür immer einen eigenen Thread, der z.B. nur
> die Komunikation über hwcom übernimmt.
>
> MfG André H.
>
>
> > Hallo Leute,
> >
> > alles im grünen Bereich in der Entwicklergemeinde?!
> > Das hoff ich doch und Ihr könnt mir vielleicht weiterhelfen:-)
> >
> > Ich und mein Projektteam sind uns nicht ganz sicher, ob die Semaphor - Implementation:
> > capture...
> > release;
> > richtig funktioniert. Bei dem Versuch 2 Threads parallel laufen zu lassen, die jeweils beide
> > über hwcom.c2 Funtionen Ausgaben über die RS232 Schnittstelle Ausgaben auf dem
> > Hyperterminal des angeschlossenen Rechners erzeugen, ist folgender Fehler aufgetreten:
> >
> > Die Ausgabe ist korrupiert, d.h., das nict alle Zeichen auf dem Hyperterminal ankommen.
> > Wir haben 2 Theorien:
> >    1.Die capture-release Anweisung funktioniert nicht richtig und schützt die kritischen Bereiche
> >       nicht vollständig.
> >    2.Die Hardware Register der RS232 Schnittstelle werden von den Threads gegenseitig
> >       überschrieben, bevor der angeschl. Rechner die Register komplett abfragen kann.
> >
> > Wäre super, wenn einer von Euch weiss, was da vor sich geht. Wenn Punkt 2 der Fall sein sollte,
> > ist das vielleicht bei allen externen Einheiten so?
> >
> > Mit freundlichem GruÃ?
> > rüdi***
> >


    Antwort schreiben


Antworten: