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 Ju, > > ist eigentlich relativ einfach. Ich weiß allerdings nicht mehr genau was ich gemacht habe und warum, > aber es funzt seit einem halben Jahr. > > <code> > //-----------------------Serverkommunikation--------------------------------- > thread xport > { > byte fifo; > hwcom.setbuf(fifo,128); > hwcom.ret(); > int i, minute; > > loop > { > wait system.minute()%2==0; > minute=system.minute(); > for i=0...1 > { > string s, send_String; > hwcom.flush(); > hwcom.put(0x0D); //startbedingung für den xport ? bin mir nicht mehr sicher > hwcom.put(0x0A); //startbedingung für den xport ? bin mir nicht mehr sicher > hwcom.print(" "); > hwcom.print("!"); > hwcom.print("Messwerte"); > hwcom.put(0x3b); > wait hwcom.ready(); > // Verbindung zum Server herstellen > hwcom.num(system.year()); > hwcom.put(0x2d); > hwcom.num(system.month()); > hwcom.put(0x2d); > hwcom.num(system.day()); > hwcom.put(0x20); > wait hwcom.ready(); > hwcom.num(system.hour()); > hwcom.put(0x3a); > hwcom.num(system.minute()); > hwcom.put(0x3a); > hwcom.num(system.second()); > hwcom.put(0x3b); > wait hwcom.ready(); > ... > u.s.w. > ... > hwcom.num(terratempboden1); > hwcom.put(0x3b); > hwcom.num(terratempboden2); > hwcom.put(0x3b); > hwcom.num(terraluft); > wait hwcom.ready(); > sleep 1000; > } > sleep 5000; > wait minute!=system.minute(); > } > } > > //-----------------------Serverkommunikation Ende---------------------------- > > </code> > > und auf dem Webserver (Linux) läuft ein Perl-Script: > (auch das ist nicht "sauber" programmiert, funzt aber) > > > #!/usr/bin/perl > > use strict; > use Socket; > use IO::Handle; > use constant MY_ECHO_PORT =>10001; > use DBI; > > > my ($bytes_out,$bytes_in) = (0,0); > > my $string; > my @array; > > my $port =shift || MY_ECHO_PORT; > my $protocol = getprotobyname('tcp'); > > my $dbname="name der Datenbank"; > my $username="Benutzername für die Datenbank"; > my $pw="Passwort"; > > my $data1 = "DBI:mysql:$dbname"; > my $data2 = DBI->connect($data1, $username, $pw); > > my $zwischenwert; > my $ipadresse; > > $SIG{'INT'} = sub > { > print STDERR "$bytes_in Bytes empfangen\n"; > exit 0; > }; > > socket(SOCK, AF_INET, SOCK_STREAM, $protocol) or > die "socket() fehlgeschlagen: $!"; > setsockopt(SOCK, SOL_SOCKET, SO_REUSEADDR,1) or > die "Kann SO_REUSEADDR nicht setztem: $!"; > > my $my_addr = sockaddr_in($port,INADDR_ANY); > bind(SOCK,$my_addr) or > die "bind() fehlgeschlagen: $!"; > > listen(SOCK,SOMAXCONN) or > die "listen() fehlgeschlagen: $!"; > > # warn "Warte auf ankommende Verbindung auf Port $port...\n"; > > while (1) > { > next unless > my $remote_addr = accept(SESSION,SOCK); > my ($port,$hisaddr) = sockaddr_in($remote_addr); > # warn "Verbindung von [",inet_ntoa($hisaddr),",$port]\n"; > > SESSION->autoflush(1); > while (<SESSION>) > { > open (FH,">empfang.txt") or die "Kann Datei nicht oeffnen: $!"; > $bytes_in += length($_); > @array = split /!/,$_; > $zwischenwert = $array[1]; > print FH $zwischenwert; > print FH inet_ntoa($hisaddr); > $ipadresse = inet_ntoa($hisaddr); > close FH; > chomp; > > } > # warn "Verbindung von [",inet_ntoa($hisaddr),",$port] beendet.\n"; > close SESSION; > @array = split /;/,$zwischenwert; > my $datum_zeit = $array[1]; > > my $sql = "INSERT INTO terrarium_daten (Datum_Zeit, Temp_Boden_1, Temp_Boden_2, > Temp_Luft, Temp_Wasser, Feuchte, Temp_Spot, Helligkeit, IP_Adresse) > VALUES ('$datum_zeit', '$array[2]', '$array[3]', '$array[4]', '$array[6]', '$array[5]', '$array[7]', > '$array[8]', '$ipadresse')"; > > my $abfr1=$data2->prepare($sql); > $abfr1->execute; > > > unlink('empfang.txt'); > > > }; > close SOCK; > > Gruß Mark >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB