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 !  

> Hallo Günni, > > > wie Du selbst im Oktober 2003 mal im Forum korrigiert hast, befindet sich nach wie vor ein Fehler > > in der o.g. Funktion im aktuellen Modul: die For-Schleife muß mit Null beginnen. > > Danke für den Hinweis. > Das hatte ich anscheinend ganz vergessen. Ich werde demnächst eine neue Version hochladen, > bei der das gefixt ist. > > > Außerdem ist die Lösung zur Bestimmung der Stringlänge zwar sehr elegant wenn es sich um > > echte Strings handelt die z.B. mit String-Manipulationsfunktionen erstellt wurde, aber wenn Du > > beispielsweise einen String mittels hwcom.receive empfängst liefert Deine Funktion stets 0 zurück. > > Ähh, wo steht denn bitte, daß man mit hw-/swcom.receive() zum Strings-Empfangen ist ??? > Diese Funktion dient einzig und allein zum Empfangen von Datenrahmen. Und ein Datenrahmen > ist hier ein Bytearray, kein String. Man kann lediglich ein String angeben, wie > ich es auch häufig mache, da ein String ein spezielles Bytearray mit 32 Byte Größe ist. > > Zum echten Empfangen von Zeichenfolgen gibt es die funtion inpustr() in den com-Modulen. > Diese müssen beim Übetragen natürlich mit CRLF abgeschlossen werden. > > Wenn man Dennoch receive() zusammen mit Strings einsetzen will, muß man nach > dem Empfangen die Stringlänge der Stringvariable setzen. > Das geht z.B. so: > <code> > function setStrlen(byte s[], byte len) > { > s[30]=0; // Dieses Byte muß normal immer den Wert 0 haben. > s[31]=len; > } > > string text; byte x; > ... > setStrLen(text, hwcom.receive(text,30,500)); > </code> > Alternativ kann man sich auch eine eigene Receive-Funktion für Strings bauen: > <code> > function receiveString(byte s[], byte maxlen, long timeout) > { > if maxlen>30 maxlen=30; > s[31]=hwcom.receive(s, maxlen, timeout); > }</code> > > > Deshalb schlage ich folgende Verbesserung vor: Übergabe von String <i>und</i> Stringlänge. Somit > > bietet sich mehr Flexibilität. > > Ich würde das eher als Rückschritt sehen. Denn das Modul strx.c2 ist in erster Linie > nur für Strings gedacht. Und bei Strings muß die Länge in Byte 31 stehen. > Wenn die Stringvariable nicht als String mit Daten gefüllt wird, muß man dieses Byte > eben anschließend seperat setzen. > > MfG André H.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB