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

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> Ich würde mit inbuffercount() prüfen, ob noch "verschluckte" Zeichen im Puffer sind und die ggf. > aus dem Puffer holen, bevor wieder neu gesendet/weitergeleitet wird. > RS232 ist eben asynchron, weshalb man meist Protokolle verwendet, um solche Fehler zu vermeiden. > > > > > Ich wollte noch zusätzliche Daten hinzufügen. > > > > Ich benutze die aktuelleste OS Version aus OSOPT_V3.1b1_64kConst.zip > > mit sys0002.hex. > > > > Auch die aktuellsten User und System Libraries. > > > > Im gegebenen Beispiel hatte mit verschiedenen Puffergrößen ausprobiert, > > aber das Verschiebt das Problem nur auf Zeit. > > > > Also je größer der Buffer umso später passiert es. > > > > Übrigens: nach einem FLUSH sieht alles wieder OK aus, aber ich kann nicht eben FLUSH benutzen > > in Kritische Anwendungen wo ständig Daten geschickt werden. Das wäre nur so ein Workaround für spezielle Fälle > > aber eine Lösung ist das nicht. > > > > Hier die Puffergrößen zum Test. > > speed 9600B. > > > > byte pufferH[200]; > > hwcom.setbuf(pufferH,200); > > > > byte pufferS[1024]; //Nur übertrieben damit der Fehler später auftritt, sonst puffer soll auch 200 sein > > swcom.setbuf(pufferS, 1024); > > > > Mit dieser Einstellungen und mit HyperTerminal am Laufen wie in der letzen Nachricht beschrieben: > > > > Habe in Notepad bereit Datenblöcke vorbereitet > > > > 0000000\n\r > > 1111111\n\r > > 2222222\n\r > > 3333333\n\r > > 4444444\n\r > > 5555555\n\r > > 6666666\n\r > > 7777777\n\r > > 8888888\n\r > > 9999999\n\r > > > > insgesamt 100 bytes. > > > > ich sende dieses Block, über COM2, also wird von swcom empfangen und weiter geleitet an HWCOM und anschließend > > sehe ich es auf dem Terminal von COM1. > > > > Nach jedem Block sieht die Antwort am Hyperterminal so aus > > > > 00000000 > > 11111111 > > 22222222 > > 33333333 > > 44444444 > > 55555555 > > 66666666 > > 77777777 > > 88888888 > > 99999999 > > > > ich mache eine Pause von Paar Sekunden und wiederhole der Versand. > > So etwa nach dem 14. Versuch, sieht aber die antwort so aus: > > > > > > 00000000 > > 11111111 > > 22222222 > > 33333333 > > 44444444 > > 55555555 > > 66666666 > > 77777777 > > 88888888 > > 9999999 > > > > hier fehlt schon das letzte Zeichen. Aber ok, das Zeichen ist nicht verloren gegangen, wird später geschickt sobald > > die C-Control weitere Daten empfängt. So z.B. ich sende einfach das Zeichen "X". > > Dann kommt nicht "X" raus, sondern zuerst die fehlende "9" > > > > ich schicke weitere 2x "X", also "XX", und es sind noch keine X zu sehen auf COM1, sonder wie im letzten Muster schon > > angebeben, es kommt "\n\r", also 13 und 10 Decimal vom letzten Datenblock. > > ich schicke ein 4.tes "X", und dann endlich sehe ich ein X auf dem Bildschirm. > > > > So, jetzt kann ich irgendetwas schicken, ich werde zuerst die alten "X" empfangen. > > > > Sollte ich einfach weitere 100Byte Blöcke schicken, so werde ich feststellen, das nach ein Paar wiederholungen noch mehr fehlende > > Zeichen festzustellen sind. Und es werden mehr und mehr, > > > > Das Problem wie bereits erklärt, die Daten sind nicht verloren, C-Control aber denkt es gibt keine weiter Zeichen im > > Puffer zum auslesen, sonst würde ja rxd() was positives liefern. Wenn das Verhalten so bleibt, wird aber irgendwann > > der Puffer doch VOLL werden ohne das C-Control es merkt, und dann kann ich schon mit Datenverluste rechnen. > > > > Ideen???? Soll ich die Puffergröße anders Wählen?? Ich werde inzwischen gleich einfach mit dem Standard Puffern testen und sehen > > wie er sich verhält. > >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB