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 Mark, > > > Ich habe die Handshake-Leitungen am XPort gebrückt und > > in der XPort Config Handshake deaktiviert. > > > > Das ist nicht ganz die Lösung. > Die Kommunikation mit dem XPort muß auch mit Handshaking funktionieren. > Wenn Du das Appl.Board nutzt, ist es daher wichtig, daß dort die Jumper für > RTS und CTS gesetzt sind. > Beim XPort muß dann bei Flowcontrol "CTS/RTS (Hardware)" ausgwählt werden. > Da ich gerade bei den Einstellungen für den XPort bin, hier noch ein paar > Empfehlungen: > Unter "Serial Settings": > - Enable Packing aktivieren > - Flush Mode: > Input-Buffer: With Active Connect=yes, With Passive Connect=yes, At Time of Disconnect=no > Output-Buffer: With Active Connect=no, With Passive Connect=no, At Time of Disconnect=yes > Unter "Connection": > - Hard Disconnect=yes > - Inactivity Timeout: 1sec, wenn reiner Webserverbetrieb geplant ist. > Wenn das bald folgende CC2Net.de-DL-Tool V2.3 für den Programmdownload über > den XPort benutzt werden soll, dann 5sec bzw. 1 bis 2 sec höher, als > der Parameter WaitHost im DL-Tool. > Wenn Programmer über das Internet geladen werden sollen, sollte das Timeout noch höher sein. > Aber dieses "Unding" muß ich erst testen. Denn durch die hohen Latenzzeiten kann > das Laden über das Web relativ lange dauern, da nach einem Datenblock > auf das Echo gewartet werden muß. ;-) > > Hier noch mein letztes Testproggie für die CC2 als Webserver: > Es setzt HTTP1.1 voraus. > Der IE macht hier leider immense Probleme, so daß es nicht funktioniert. > Die Ursachen konnte ich noch nicht ganz ausmachen. (Eine scheint aber M$ zu sein. *g*) > Daher funktioniert das nur mit Firefox und andere alternative Browser, die HTTP1.1 beherschen. > Das Programm ist für Debuggingausgaben über ein eDIP240 "vorbereitet". > Daher die eDIP-Aufrufe. Diese können aber einfach entfernt werden, wenn kein eDIP vorhanden ist. > <code> > const edipAddr=32; > > byte fifo[512],dummy[64]; > type togglebuffer > { > byte buffer[256]; > } > > togglebuffer out[2]; > > system.TIME Zeit; > > int pos; > byte tog; > > function sendbuffer() > { > if pos > { > string t; > str.clear(t); > str.putintf(t,pos,-2); > str.putchar(t,'\n'); > hwcom.print2(t); > out[tog].buffer[pos]='\n'; > hwcom.send(out[tog].buffer,pos+1); > tog=(tog+1) and 1; > pos=0; > } > } > > function print2(byte s[]) > { > if pos+s[31]>256 > { > string t; > str.clear(t); > str.putintf(t,pos,-2); > str.putchar(t,'\n'); > hwcom.print2(t); > out[tog].buffer[pos]='\n'; > hwcom.send(out[tog].buffer,pos+1); > tog=(tog+1) and 1; > pos=0; > } > mem.copypos(out[tog].buffer,pos,s,0,s[31]); > pos=pos+s[31]; > } > > > function print(string s) > { > print2(s); > /* string t; > str.clear(t); > str.putintf(t,str.length(s),-2); > str.putchar(t,'\n'); > hwcom.print2(t); > hwcom.print2(s); > hwcom.put('\n'); > */ > } > > function slenset(byte s[], byte len) > { > s[31]=len; > } > > function table() > {string s; > print("<table>\n<tr><td>Zeit:</td>\n<td"); > system.gettime(Zeit); > str.clear(s); > str.putchar(s,'>'); > str.putintf(s,Zeit.hour,2); > str.putchar(s,':'); > str.putintf(s,Zeit.minute,2); > str.putchar(s,':'); > str.putintf(s,Zeit.second,2); > print2(s); > print("</td></tr>\n<tr><td>Datum:</td>"); > print("\n<td>"); > str.clear(s); > str.putintf(s,system.day(),2); > str.putchar(s,'.'); > str.putintf(s,system.month(),2); > str.putchar(s,':'); > str.putintf(s,system.year(),4); > print2(s); > print("</td></tr>\n</table>\n"); > } > > //---------------------------------------- > function inputstr(byte s[]) returns int > //---------------------------------------- > {byte i,x; > i=0; > x=255; > for i=0 ... 29 > { > wait hwcom.rxd(); > x=hwcom.get(); > if x==10 or x==13 break; > s[i]=x; > } > if x==13 hwcom.get(); > s[31]=i; > mem.fillpos(s,i,30-i,0); > return i; > } > > string s;byte x; > thread main > { > hwcom.setspeed(8); > hwcom.setbuf(fifo,512); > edip.FF(edipAddr); > loop > { > hwcom.flush(); > > x=inputstr(s); > // edip.FF(edipAddr); > // edip.println(edipAddr,s); > if strx.comp(s,"GET / HTTP/1.0") or strx.comp(s,"GET / HTTP/1.1") or strx.comp(s,"GET /index.html HTTP/1.1") > { > hwcom.print("HTTP/1.1 200 OK\n"); > hwcom.print("Server: C-Control II\n"); > hwcom.print("Transfer-Encoding: chunked\n"); > hwcom.print("Content-Type: text/html\n\n"); > print("<html>\n<body>\n"); > print("<b>C-Control II</b> im Web<br>"); > print("\n<font color=red>Es geht!!"); > print("</font><br><br><br>\n"); > table(); > print("<a href=\"/\">aktualisieren</a>\n"); > print("<br><a href=\"/beep\">beep</a>\n"); > print("</body>\n</html>\r\n"); > sendbuffer(); > hwcom.print("0\n\n"); > } > else > if strx.comp(s,"GET /beep HTTP/1.0") or strx.comp(s,"GET /beep HTTP/1.1") > { > plm.beep(8); > hwcom.print("HTTP/1.1 200 OK\n"); > hwcom.print("Server: C-Control II\n"); > hwcom.print("Transfer-Encoding: chunked\n"); > hwcom.print("Content-Type: text/html\n\n"); > print("<html>\n<body>\n"); > print("<b>C-Control II</b> im Web<br>"); > print("\n<font color=red>Es geht!!"); > print("</font><br><br><br>\n"); > print("Es piept ;-)<br><br>\n"); > print("<a href=\"/beep\">nochmal</a>\n"); > print("<a href=\"/\">zurück</a>\n"); > print("</body>\n</html>\n\r\n\r\n"); > sendbuffer(); > hwcom.print("0\n\n"); > plm.beep(-1); > } > else > if strx.comp(s,"GET /host HTTP/1.1") > { > hwcom.print("HTTP/1.1 200 OK\n"); > hwcom.print("Server: C-Control II\n"); > hwcom.print("Transfer-Encoding: chunked\n"); > hwcom.print("Content-Type: text/html\n\n"); > print("<html>\n<body>\n"); > print("<b>Hostmodus wird eingeleitet!"); > print("</b><br>\n<br><br><br>\n"); > print("</body>\n</html>\n\r\n\r\n"); > sendbuffer(); > hwcom.print("0\n\n"); > hwcom.put(0); > sleep 1000; > while hwcom.rxd() > { > hwcom.receive(s,30,0); > sleep 10; > } > quit 2; > } > else > { > hwcom.print("HTTP/1.0 404 Not Found\n"); > hwcom.print("Server: C-Control II\n"); > hwcom.print("Content-Length: 10\n"); > hwcom.print("Content-Language: de\n"); > hwcom.print("Content-Type: text/html\n"); > hwcom.print("Connection: close\n\n"); > hwcom.print("404 Not Found\n"); > } > hwcom.put(0); > while hwcom.rxd() > { > hwcom.receive(s,30,0); > // str.clear(s); > // slenset(s,hwcom.receive(s,30,0)); > // edip.print(edipAddr,s); > // sleep 200; > } > } > } > </code> > > Und hier noch eine Vorschau für die nötigen Routinen zum Hostmode-Einleiten > für das künftige Download-Tool: > <code> > > byte x[2]; > thread com > { > wait hwcom.rxd(); > x[0]=hwcom.get(); > if x[0]==254 > { > x[1]=hwcom.receive(x,1,1000); > if x[0]==254 and x[1]==1 quit 1;// Hostmode einleiten, normal > if x[0]==253 and x[1]==1 > {byte buf[1024]; //Erweiterter Empfangspuffer > hwcom.setbuf(buf,1024); // Hostmode einleiten XPort > quit 256; // Schnittstellenparameter beibehalten > } > } > > // Platz für eigene Schnittstellenroutinen ... > // hwcom.flush(); > } > > thread main > {byte second; > lcdext.init(); > hwcom.setspeed(8); > run com; > loop > { > lcdext.line(1); > lcdext.time(0); > lcdext.line(2); > lcdext.date(0); > wait second!=system.second(); > second=system.second(); > } > } > </code> > Hierfür ist dann OSOPT V3.1(b1) Voraussetzung, da erst ab dieser Version > die Möglichkeit besteht, die Schnittstellenparameter für den Hostmode beizubehalten. > Somit kann dann mit bis zu 1kB-Datenblöcken gearbeitet werden, was die Übertragung > wiederum beschleunigt, welche zur TCP/IP verlangsamt wurde. ;-) > > MfG André H.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB