Für dieses Forum muß Javascript im Browser aktiviert werden!
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 Frank, > > > Leider sind die Ports meiner Station alle belegt. So kam ich auf die Idee den xport an den i2ccom Baustein zuhängen. > > Beider Teile laufen einzeln problemlos. Eine Datenübertragung zwischen i2ccom und xport bekomme ich aber nicht hin. > > Mein Testaufbau ist folgender: > > 1.PC -(Lan)- Xport -(RS232)- i2ccom -(i2c)- Station -(hwcom)- 2.PC > > Mit dem Hyperterminal verschickte ich zum Test Textdokumente. > > Die Verbindung xport i2ccom erfolgt mit: 9600Baud 8n1 Handshake > > Auf dem Empfangspc kommt aber immer nur eine Art "ö" an. Die Richtung in der ich die Daten sende ist dabei gegal. > > Auf der C-Control läuft dabei das Programm i2ccom_TL16C750.c2p aus dem Modul i2ccom. > > Prinzipiell ist das möglich, wenn das HW-Handshake benutzt wird. > Allerdings sollte man nicht 9600 Baud benutzen. > Der I²C-Bus schaufelt die Daten schneller zum I2C-COM, als dieser sie senden kann. > Nutze bitte zusammen mit dem XPort eine Baudrate von 57.600 Baud, oder höher. > Um die sowieso schon großen Latenzzeiten im LAN (gegenüber RS232) nich noch weiter > unnötig zu vergrößern, sollte man zwischen XPort und RS232(CC2 bzw. I2C-COM) > eine möglichst hohe Baudrate wählen. > > Beachte auch, daß das I2C-COM "nur" einen FIFO von 64Byte hat. > Diesen kann man leider nicht, wie bei den Schnittstellen der CC2 selbst, vergrößern. > > Wenn beim Senden undefinierte Zeichen und auch eine falsche Anzahl angezeigt werden, > liegt das meist daran, daß die an der RS232 kommunizierenden Komponenten > nicht auf die gleiche Baudrate eingestellt sind. > > Anbei poste ich mal das Webserver-Testprogramm für das I2C-COM umgeschieben und getestet . > > > > Beim Start dieses Programms kommt der Vorspann "CCTools I2C-COM" usw. beim 1. PC an. > > Allerdings etwas verändert. z.B. Aus "André Helbig" wird "Andri Helbig" > > Benutzen i2ccom und xport einen verschiedenen Zeichencode? Ist eine Verbindung i2ccom xport überhaupt möglich? > > Diese benutzen keine "Zeichencodes". > Die Daten werden Transparent übertragen. > Wenn hier (Sonder-)Zeichen falsch dargestellt werden - das "é" ist ein Sonderzeichen - liegt das > meistens an einer falschen Schriftart oder Terminal-Emulation im verwendeten Terminalprogramm. > Verwende bitte die ANSI-Emulation und die Schriftart "Courier New" in Deinem Terminalprogramm. > > MfG André H. > > <code> > const edipAddr=32; > > byte /*fifo[512],*/dummy[64]; > type togglebuffer > { > byte buffer[256]; > } > > togglebuffer out[2]; > const tbuffersize=64; > > 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'); > i2ccom.print2(1,t); > out[tog].buffer[pos]='\n'; > i2ccom.send(1,out[tog].buffer,pos+1); > tog=(tog+1) and 1; > pos=0; > } > } > > function print2(byte s[]) > { > if pos+s[31]>tbuffersize > { > string t; > str.clear(t); > str.putintf(t,pos,-2); > str.putchar(t,'\n'); > i2ccom.print2(1,t); > out[tog].buffer[pos]='\n'; > i2ccom.send(1,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'); > i2ccom.print2(t); > i2ccom.print2(s); > i2ccom.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 i2ccom.rxd(1); > x=i2ccom.get(1); > if x==10 or x==13 break; > s[i]=x; > } > if x==13 i2ccom.get(1); > s[31]=i; > mem.fillpos(s,i,30-i,0); > return i; > } > > string s;byte x; > thread main > { > i2ccom.setDataPCF(7); > i2ccom.defineCOM(1,6,0); > i2ccom.initCOM(1,1,1); > i2ccom.setspeed(1,8); > // i2ccom.setbuf(fifo,512); > edip.FF(edipAddr); > loop > { > i2ccom.flush(1); > > 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") > { > i2ccom.print(1,"HTTP/1.1 200 OK\n"); > i2ccom.print(1,"Server: C-Control II\n"); > i2ccom.print(1,"Transfer-Encoding: chunked\n"); > i2ccom.print(1,"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(); > i2ccom.print(1,"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); > i2ccom.print(1,"HTTP/1.1 200 OK\n"); > i2ccom.print(1,"Server: C-Control II\n"); > i2ccom.print(1,"Transfer-Encoding: chunked\n"); > i2ccom.print(1,"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(); > i2ccom.print(1,"0\n\n"); > plm.beep(-1); > } > else > if strx.comp(s,"GET /host HTTP/1.1") > { > i2ccom.print(1,"HTTP/1.1 200 OK\n"); > i2ccom.print(1,"Server: C-Control II\n"); > i2ccom.print(1,"Transfer-Encoding: chunked\n"); > i2ccom.print(1,"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(); > i2ccom.print(1,"0\n\n"); > i2ccom.put(1,0); > sleep 1000; > while i2ccom.rxd(1) > { > i2ccom.receive(1,s,30,0); > sleep 10; > } > quit 2; > } > else > { > i2ccom.print(1,"HTTP/1.0 404 Not Found\n"); > i2ccom.print(1,"Server: C-Control II\n"); > i2ccom.print(1,"Content-Length: 10\n"); > i2ccom.print(1,"Content-Language: de\n"); > i2ccom.print(1,"Content-Type: text/html\n"); > i2ccom.print(1,"Connection: close\n\n"); > i2ccom.print(1,"404 Not Found\n"); > } > i2ccom.put(1,0); > while i2ccom.rxd(1) > { > i2ccom.receive(1,s,30,0); > // str.clear(s); > // slenset(s,i2ccom.receive(s,30,0)); > // edip.print(edipAddr,s); > // sleep 200; > } > } > } > </code>