bitte hilfe kann kaum programmieren

hey allerseits. also ich interessiere mich sehr für arduino und alles was damit zu ermöglichen ist.
ich möchte alles lernen und habe auch schon fast jeden board usw bestellt was man brauchen kann.

aber als erstes habe ich mir etwas zur aufgabe gemacht, dem ich nicht gewachsen bin ^^
habe es von einer seite und habe es 1:1 kopiert. sehr interessantes projekt . habe mir das teil welches ich dazu brauche sogar doppelt aus USA bestellt :wink:

hier der link Welcome colligomentis.com - Justhost.com

auf dieser seite ist auch der link zu den code der vorgegeben war und der autor hat auch geschrieben das der code chaotisch ist und er selbst nicht der programmierprofi ist…

naja ich hab den code probiert, habe etliche sachen geändert und trotzdem haut es nicht hin… es harpert immer am sattz “sdfat sd;” der befindet sich gleich am beginn in der 8en zeile .

ich muss den code auf 3 posts aufteilen da ich ja nur 9500 zeichen schreiben kann :confused:

könnt ihr mir eventuell helfen???
wäre sehr nett wenn ihr mir ein paar infos geben könntet und vielleicht sogar etwas erklären was am code nicht passen könnte.
über das projekt braucht ihr mir keine infos geben da weiß ich sehr wohl worum es geht :wink:

#include <SoftwareSerial.h>
#include <SdFat.h>

// Da das LCD nicht sendet Daten zurück an den Arduino, sollten wir erst definieren die txPin
#define txPin 4 // Weiß Draht von Serien-LCD-Bildschirm
const int LCDdelay = 10; // konservativ, 2 tatsächlich funktioniert

// SD-Karte variables
const uint8_t chipSelect = 10; // CS from SD to Pin 10 on ArduinoSdFat sd;
SdFat sd; // file system object for SD card    SdFat32D;
SDFile File; // file object      
char dataFile[] = "cards.txt"; // file to save card ids to

unsigned long bitHolder1 = 0;
unsigned long bitHolder2 = 0;
unsigned int bitcount = 0;
unsigned long cardChunk1 = 0;
unsigned long cardChunk2 = 0;
int parity = 0;
long previousMillis = 0; // wird letzte Mal aktualisiert wurde LCD speichern
long Intervall = 3000; // Intervall für die Anzeige zurückzusetzen (Millisekunden)

// Start-Code für DATA0 und DATA1 Interrupts, um die binären Daten von der Karte zu bekommen
// Aus welchem ??Grund, wenn der Mikro DATA1 und DATA0 Kabel müssen rückgängig gemacht werden
void DATA1(void);
    bitcount + +;
    if(bitCount < 23) {
      bitHolder1 = bitHolder1 << 1;
    }
    else{
      bitHolder2 = bitHolder2 << 1;
    }
}

void DATA0(void) {
   bitcount + +;
   if(bitcount <23){
      bitHolder1 = bitHolder1 << 1;
      bitHolder1 |= 1;
   }
   else{
     bitHolder2 = bitHolder2 << 1;
     bitHolder2 |= 1;
   }
}

// End Code for DATA0 und DATA1

// beginn Code for LCD

SoftwareSerial LCD(0, txPin);
//
void ClearLCD(){
LCD.write(0xFE); // Befehl Flagge
LCD.write(0x01); // clear Befehl.
delay(LCDdelay);
}

// End-Code für LCD

// Start-Code für SD-Karte

void writeSD(){
  
    // Die Datei öffnen. beachten Sie, dass nur eine Datei kann zu einer Zeit offen,
    // So müssen Sie diese vor dem Öffnen einer anderen schließen.
    ofstream file(dataFile, ios :: out | ios :: app);
  
    // Wenn die Datei vorhanden ist, es zu schreiben:
    if(file){
      file << bitCount;
      file << "bit card:";
      file << hex << cardChunk1;
      file << hex << cardChunk2;
      file << ", BIN:";
      for(int i = 19; i> = 0; i -){
        Datei << bitRead(cardChunk1, i);
      }
      for(int i = 23; i> = 0; i -){
        file << bitRead(cardChunk2, i);
      }
      file << endl;
      
      // Print an die serielle Schnittstelle zu
       Serial.println("Schrieb Daten auf SD-Karte");
    }
else{
ClearLCD();
Lcd.print("Error writing to file");
}
}

// End-Code für SD-Karte

void setup(){
  
Serial.begin(57600);
  
  clearinterrupts();
  
  attachInterrupt(0, DATA0, RISING); // DATA0 (grün) auf HID Leser, Pin 2 auf Arduino
  attachInterrupt(1, DATA1, RISING); // DATA1 (weiß) auf HID Leser, Pin 3 auf Arduino
  delay(10);
  // Initialisieren LCD-Bildschirm
/ / pinMode(txPin, OUTPUT);
/ / LCD.begin(9600);
  
  // Stellen Sie sicher, dass die Standard-Chip-Select-Pin 10 eingestellt ist
  // Ausgabe, auch wenn Sie sie nicht benutzen:
  // Setup Ausgangs-Pin auf SD-Karte
  pinMode(10, OUTPUT);
  pinMode(ChipSelect, OUTPUT);
  
  // Initialisierung SD-Karte
  while(!sd.begin(ChipSelect, SPI_HALF_SPEED)) {
    Serial.println("No SD Card!");
  }
  // Auskommentiert ohne LCD
if(!sd.begin(ChipSelect, SPI_HALF_SPEED)) {
clearLCD();
LCD.print("Problem mit SD-Karte");
  }
else{
clearLCD();
LCD.print("SD-Karte initialisiert.");
  }

  // Schalten Sie onboard LED Betriebsbereitschaft anzuzeigen
  digitalWrite(17, LOW);
    
Serial.println("READER_0001");
  
  // Reset und machen Sie sich bereit für eine Karte
  bitCount = 0; bitHolder1 = 0; bitHolder2 = 0;
}


void loop(){
    if (millis() - previousMillis> interval) {
      bitCount = 0; bitHolder1 = 0; bitHolder2 = 0; // falls etwas schief gelaufen ist, klar die Puffer
      previousMillis = millis(); // erinnern, das letzte Mal, dass wir blinzelte die LED
clearLCD();
LCD.print("Present Card or Enter Pin");
      
    }
    
    // Prüfen, ob ein gültiger empfangenen Bits Länge eine Karte sein, sind
    if(bitcount> = 26){
        delay(100);
        
        // Aufruf Funktion für unsere beiden Brocken Karte Werte zu erhalten
        getCardValues();
        // Debug stuff
Serial.print("bitHolders: ");
Serial.print(bitHolder1, BIN);
Serial.print(", ");
Serial.println(bitHolder2, BIN);
Serial.print("cardChunk1: ");
Serial.println(cardChunk1, BIN);
Serial.print("cardChunk2: ");
Serial.println(cardChunk2, BIN);
Serial.print("Card Value (BIN): ");
Serial.print(cardChunk1, BIN);
Serial.println(cardChunk2, BIN);
Serial.print("Card Value (HEX): ");
Serial.print(cardChunk1, HEX);
Serial.println(cardChunk2, HEX);
        
        // Drucken Sie die Karte Werte auf den LCD-Bildschirm
clearLCD();
LCD.print(bitCount);
LCD.print(" bit Card:    ");
LCD.print(cardChunk1, HEX);
LCD.print(cardChunk2, HEX);
        
        //Schreibe die Karte Werte auf die SD-Karte
        writeSD();
        
        // Flash-Onboard-LED, um anzuzeigen, Karte lesen
        digitalWrite(17, HIGH);
        delay(100);
        digitalWrite(17, LOW);
        
        // Reset und machen Sie sich bereit für eine andere Karte
        bitCount = 0; bitHolder1 = 0; bitHolder2 = 0;
        previousMillis = millis();
        delay(100); // Verlängern Sie dies, wenn Sie die Karte Wert auf dem LCD-Bildschirm mehr sehen wollen
    }
}

// Funktion, um Interrupts zu löschen und bereiten sie für den Einsatz
void clearinterrupts(){
  // Die Unterbrechung in den Atmel Prozessor vermasselt die ersten negativen Impuls wie die Eingänge sind bereits hoch,
  // So das gibt einen Impuls an jedem Leser Eingabezeile, um die Interrupts richtig funktioniert.
  // Dann räumen die Leser Variablen.
  // Die Leser sind offener Kollektor sitzen normalerweise in einer ein, so ist dies OK
  for(int i = 2; i <4; i + +){
    pinMode(i, OUTPUT);
    digitalWrite(i, HIGH); // enable interner Pull up was einen ein
    digitalWrite(i, LOW); // Deaktivieren interner Pull up verursacht Null und damit einen Interrupt
    pinMode(i, INPUT);
    digitalWrite(i, HIGH); // enable interne Pull-up
  }
  delay(10);
}

// Funktion, um die Karte Wert (bitHolder1 und bitHolder2) auf die notwendige Array angehängt werden dann tranlate dass zu
// Die beiden Stücke für die Karte Wert ausgegeben
void getCardValues(){
  switch (bitCount) {
    case 26:
        // Example of full card value
        / / |> preamble <| |> Actual card value <|
        //  000000100000000001 11 111000100000100100111000
        / / |> write to chunk1 <| |> write to chunk2 <|
        
       for(int i = 19; i> = 0; i--) {
          if(i == 13 | | i == 2){
            bitWrite(cardChunk1, i, 1); // Schreiben der Präambel 1. bis 13. und 2. Bits
          }
          else if(i> 2){
            bitWrite(cardChunk1, i, 0); // Schreiben der Präambel 0 für alle anderen Bits über 1
          }
          else{
            bitWrite(cardChunk1, i, bitRead(bitHolder1, i + 20)); // Schreiben restlichen Bits cardChunk1 von bitHolder1
          }
          if(i <20) {
            bitWrite(cardChunk2, i + 4, bitRead(bitHolder1, i)); // Schreibe die restlichen Bits bitHolder1 zu cardChunk2
          }
          if(i <4){
            bitWrite(cardChunk2, i, bitRead(bitHolder2, i)); // Schreiben Sie die verbleibenden bisschen cardChunk2 mit bitHolder2 Bits
          }
        }
        break;

    case 27:
       for(int i = 19; i>= 0; i--){
          if(i == 13 | | i == 3){
            bitWrite(cardChunk1, i, 1);
          }
          else if(i> 3) {
            bitWrite(cardChunk1, i, 0);
          }
          else{
            bitWrite(cardChunk1, i, bitRead(bitHolder1, i + 19));
          }
          if(i <19) {
            bitWrite(cardChunk2, i + 5, bitRead(bitHolder1, i));
          }
          if(i <5) {
            bitWrite(cardChunk2, i, bitRead(bitHolder2, i));
          }
        }
        break;

    case 28:
       for(int i = 19; i>= 0; i--) {
          if(i == 13 | | i == 4){
            bitWrite(cardChunk1, i, 1);
          }
          else if(i> 4) {
            bitWrite(cardChunk1, i, 0);
          }
          else{
            bitWrite(cardChunk1, i, bitRead(bitHolder1, i + 18));
          }
          if(i <18) {
            bitWrite(cardChunk2, i + 6, bitRead(bitHolder1, i));
          }
          if(i <6) {
            bitWrite(cardChunk2, i, bitRead(bitHolder2, i));
          }
        }
        break;

    case 29:
       for(int i = 19; i>= 0; i--) {
          if (i == 13 | | i == 5) {
            bitWrite(cardChunk1, i, 1);
          }
          else if(i> 5) {
            bitWrite(cardChunk1, i, 0);
          }
          else {
            bitWrite(cardChunk1, i, bitRead(bitHolder1, i + 17));
          }
          if(i <17) {
            bitWrite(cardChunk2, i + 7, bitRead(bitHolder1, i));
          }
          if(i <7) {
            bitWrite(cardChunk2, i, bitRead(bitHolder2, i));
          }
        }
        break;

    case 30:
       for(int i = 19; i>= 0; i--) {
          if(i == 13 | | i == 6) {
            bitWrite(cardChunk1, i, 1);
          }
          else if(i> 6) {
            bitWrite(cardChunk1, i, 0);
          }
          else {
            bitWrite(cardChunk1, i, bitRead(bitHolder1, i + 16));
          }
          if(i <16) {
            bitWrite(cardChunk2, i + 8, bitRead(bitHolder1, i));
          }
          if(i <8) {
            bitWrite(cardChunk2, i, bitRead(bitHolder2, i));
          }
        }
        break;

    case 31:
       for(int i = 19; i>= 0; i--) {
          if(i == 13 | | i == 7) {
            bitWrite(cardChunk1, i, 1);
          }
          else if(i> 7) {
            bitWrite(cardChunk1, i, 0);
          }
          else {
            bitWrite(cardChunk1, i, bitRead(bitHolder1, i + 15));
          }
          if(i <15) {
            bitWrite(cardChunk2, i + 9, bitRead(bitHolder1, i));
          }
          if(i <9) {
            bitWrite(cardChunk2, i, bitRead(bitHolder2, i));
          }
        }
        break;

    case 32:
       for(int i = 19; i>= 0; i--) {
          if(i == 13 | | i == 8) {
            bitWrite(cardChunk1, i, 1);
          }
          else if(i> 8) {
            bitWrite(cardChunk1, i, 0);
          }
          else {
            bitWrite(cardChunk1, i, bitRea(bitHolder1, i + 14));
          }
          if(i <14) {
            bitWrite(cardChunk2, i + 10, bitRead(bitHolder1, i));
          }
          if(i <10) {
            bitWrite(cardChunk2, i, bitRead(bitHolder2, i));
          }
        }
        break;

    case 33:
       for(int i = 19; i>= 0; i--) {
          if(i == 13 | | i == 9) {
            bitWrite(cardChunk1, i, 1);
          }
          else if(i> 9) {
            bitWrite(cardChunk1, i, 0);
          }
          else {
            bitWrite(cardChunk1, i, bitRead(bitHolder1, i + 13));
          }
          if(i <13) {
            bitWrite(cardChunk2, i + 11, bitRead(bitHolder1, i));
          }
          if(i <11) {
            bitWrite(cardChunk2, i, bitRead(bitHolder2, i));
          }
        }
        break;

     case 34:
       for(int i = 19; i>= 0; i--) {
          if(i == 13 | | i == 10) {
            bitWrite(cardChunk1, i, 1);
          }
          else if(i> 10) {
            bitWrite(cardChunk1, i, 0);
          }
          else {
            bitWrite(cardChunk1, i, bitRead(bitHolder1, i + 12));
          }
          if(i <12) {
            bitWrite(cardChunk2, i + 12, bitRead(bitHolder1, i));
          }
          if(i <12) {
            bitWrite(cardChunk2, i, bitRead(bitHolder2, i));
          }
        }
        break;

    case 35:
       for(int i = 19; i>= 0; i--) {
          if(i == 13 | | i == 11) {
            bitWrite(cardChunk1, i, 1);
          }
          else if(i> 11) {
            bitWrite(cardChunk1, i, 0);
          }
          else {
            bitWrite(cardChunk1, i, bitRead(bitHolder1, i + 11));
          }
          if(i <11) {
            bitWrite(cardChunk2, i + 13, bitRead(bitHolder1, i));
          }
          if(i <13) {
            bitWrite(cardChunk2, i, bitRead(bitHolder2, i));
          }
        }
        break;

    case 36:
       for(int i = 19; i> = 0; i--) {
          if(i == 13 | | i == 12){
            bitWrite(cardChunk1, i, 1);
          }
          else if (i> 12) {
            bitWrite(cardChunk1, i, 0);
          }
          else {
            bitWrite(cardChunk1, i, bitRead(bitHolder1, i + 10));
          }
          if (i <10) {
            bitWrite(cardChunk2, i + 14, bitRead(bitHolder1, i));
          }
          if (i <14) {
            bitWrite(cardChunk2, i, bitRead(bitHolder2, i));
          }
        }
        break;

    case 37:
       for(int i = 19; i>= 0; i--) {
          if (i == 13) {
            bitWrite(cardChunk1, i, 0);
          }
          else {
            bitWrite(cardChunk1, i, bitRead(bitHolder1, i + 9));
          }
          if(i <9) {
            bitWrite(cardChunk2, i + 15, bitRead(bitHolder1, i));
          }
          if(i <15) {
            bitWrite(cardChunk2, i, bitRead(bitHolder2, i));
          }
        }
        break;
  }
  return;
}

ok ist sich auf 2 mal ausgegangen ;)

bitte bitte help . danke

mfg smithsen

Bitte nicht mehrer Threads zum gleichen Thema aufmachen, sondern lieber auf die bisheruigen Antworten reagieren!

http://forum.arduino.cc/index.php?topic=170540.msg1268011

smithsen: habe es von einer seite und habe es 1:1 kopiert. sehr interessantes projekt . habe mir das teil welches ich dazu brauche sogar doppelt aus USA bestellt

Doppelt hält bei Dir wohl immer besser, auch was die Anzahl der neuen Threads zum selben Thema betrifft, oder?

smithsen: hab den code probiert, habe etliche sachen geändert und trotzdem haut es nicht hin..

Kennst Du eigentlich §202a StGB? http://dejure.org/gesetze/StGB/202a.html

Dein mobiles Gerät zur Zugangsdaten-Ausspähung sieht mir ganz danach aus, als wenn es hauptsächlich für Verstöße gegen 202a StGB verwendet werden kann und scheint sonst keine einzige sinnvolle Funktion aufzuweisen, die man nicht besser stationär im Zugangssystem selbst realisieren würde.

die nicht für ihn bestimmt [u]und die gegen unberechtigten Zugang besonders gesichert sind[/u]

Wie sind denn RFID Karten besonders gesichert? Ich sehe den 202 nicht verletzt. Auch deswegen, weil skimming den 202 ebenso wenig verletzt.

sth77: Bitte nicht mehrer Threads zum gleichen Thema aufmachen, sondern lieber auf die bisheruigen Antworten reagieren!

Genau. Also kann man schließen.

smithsen bitte erkläre uns zu was Du das bauen und benutzen willst. Ansonsten lösche ich beide Treads.

Viele Grüße Uwe Federer Moderator.

Respekt muss man sich erarbeiten, Mitleid bekommt man geschenkt. Wie hast du dir denn als Newbie den Respekt erarbeitet? Dass du gleich ein Moderator geworden bist bei 8 Posts?! XD

skorpi08: Respekt muss man sich erarbeiten, Mitleid bekommt man geschenkt. Wie hast du dir denn als Newbie den Respekt erarbeitet? Dass du gleich ein Moderator geworden bist bei 8 Posts?! XD

Mach mal halblang. Du verkennst die Lage

Ich habe 2 User, einer ist Moderator im deutschen Teil des Forums und der andere ist Global Moderator. Ich verwende vor allem den ersten User Mit dem einen User habe ich 15970 posts bei 11.700 pro Tag und Karma 168 http://forum.arduino.cc/index.php?action=profile;u=14713 und http://forum.arduino.cc/index.php?action=mlist;sort=posts;start=0 mit dem anderen User habe ich 103 posts und Karma 12 (die Zählung 8 Posts ist falsch da Weiterleitungen nicht als Post gezählt werden, deren Löschung aber schon.) http://forum.arduino.cc/index.php?action=profile;u=42018;sa=showPosts;start=90

skorpi08, habe ich jetzt Deine hochgeschätzte Erlaubnis den geschriebenen Post so zu schreiben wie ich ihn geschrieben habe?

Mit freundlichen Grüßen Uwe aka uwefed aka UweFederer

skorpi08, habe ich jetzt Deine hochgeschätzte Erlaubnis den geschriebenen Post so zu schreiben wie ich ihn geschrieben habe?

Mit freundlichen Grüßen
Uwe aka uwefed aka UweFederer

Respekt muss man sich erarbeiten, Mitleid bekommt man geschenkt.

Dies war nur ein Spruch, den ich mal gehört hatte und hier nicht so angewandt müsste.

Mir ist nur aufgefallen, 8 Post als Newbie und Moderator, da wollt ich halt nur etwas scherzen. Da ich ja den uwefed Nik kenne, war es mir auch gleich klar wer es ist.

Sorry für die Missverständnisse.

Entschuldigung angenommen. Verwende bei Scherzen aber bitte ;) ;) ;) ;) ;) ;) Grüße Uwe

mde110: Ich sehe den 202 nicht verletzt.

OK, es wird nicht §202a StGB ist verletzt, sondern wenn Du mit einem "RFID Catcher" fremde RFID-Zugangssysteme belauschst und die RFID-Aussendungen abgreifst, ist es wohl tatsächlich nur ein Verstoß gegen § 202b. http://dejure.org/gesetze/StGB/202b.html Der Unterschied: Nur zwei Jahre Knast statt drei Jahre Knast als Höchststrafe. Jedenfalls ist bei 202b ist nicht gefordert, dass die abgegriffenen Daten besonders gesichert sind, sondern nur, dass sie nicht für den Lauscher bestimmt und auch nicht öffentlich sind.

Unabhängig von der Frage, ob das RFID-Catchen nun mit maximal drei oder nur mit zwei Jahren Knast als Höchststrafe bedroht ist, frage ich mich trotzdem, wieso jemand unbedingt ein solches technisches Lausch- und Spähgerät haben möchte, wenn nicht zum Einsatz für kriminelle Zwecke?

Für den legalen Einsatz eines RFID Catchers, der die Daten schön auf SD loggt, fällt mir nichts ein. Deswegen kann der Fred wg mir gelöscht werden...

Der b wird tatsächlich ein Problem. Jetzt frage ich mich aber, ob das Verwenden der Temp_Außensender meiner Nachbarn auch strafbar wäre?

...oder aus der elektromagnetischen Abstrahlung einer Datenverarbeitungsanlage verschafft,...

Ich hoffe nur, dass die 433er Sender nicht zu einer Datenverarbeitungsanlage zählen.

mde110:

...oder aus der elektromagnetischen Abstrahlung einer Datenverarbeitungsanlage verschafft,...

Ich hoffe nur, dass die 433er Sender nicht zu einer Datenverarbeitungsanlage zählen.

Ich bin zwar kein Rechtsanwalt, aber deswegen mußt Du wohl keine Befürchtungen haben, denn §202b schützt nur die "nichtöffentlichen Datenübermittlung", und ob eine Aussendung "privat" oder "öffentlich" ist, hängt vom Ort der Aussendung auf privatem oder öffentlichem Grund und auch von der Reichweite ab.

Beispiele: Du sprichst in Deiner eigenen Wohnung mit Leuten ==> private Unterredung ("nichtöffentlich") Du stellst Dich mit einem Megafon ans Fenster und beschallst die Strasse ==> öffentliche Rede

Sobald das Funksignal des Temperatursensors vom Nachbarn auf öffentlichem Grund empfangbar ist, also beispielsweise auf dem Bürgersteig vor dem Haus, entfällt der Schutz von §202b, weil dann keine "nichtöffentlichen Datenübermittlung" mehr vorliegt, sondern im Gegenteil eine "öffentliche Datenübermittlung", weil das Signal auf öffentlichem Grund empfangbar ist.

Sobald das Funksignal des Temperatursensors vom Nachbarn auf öffentlichem Grund empfangbar ist, also beispielsweise auf dem Bürgersteig vor dem Haus, entfällt der Schutz von §202b, weil dann keine "nichtöffentlichen Datenübermittlung" mehr vorliegt, sondern im Gegenteil eine "öffentliche Datenübermittlung", weil das Signal auf öffentlichem Grund empfangbar ist.

Also ist jede mail in einem unzureichend gesicherten WLAN eine öffentliche Datenübermittlung für den draussen vorbeifahrenden google streetview Wagen ? Was soll dann das Geschrei ?

Und "empfangbar" ist doch sehr relativ, und stark von der Technik des Empfängers abhängig, oder ?

Ich glaube eher, du machst es die etwas zu leicht, jurs. Wenn du Rechtsanwalt wärst, wüsstest du, dass solche Fragen nicht so leicht und eindeutig zu beantworten sind. (Das ist eher die Geschäftsgrundlage dieses Berufs)

michael_x: Also ist jede mail in einem unzureichend gesicherten WLAN eine öffentliche Datenübermittlung für den draussen vorbeifahrenden google streetview Wagen ?

Ja. WLAN reicht über die Grundstücksgrenze hinaus in öffentlichen Raum, unverschlüsseltes WLAN zu senden ist eine öffentliche Datenübermittlung. Daher ist Google ja auch nicht wegen Straftaten drangenommen worden, als sie WLAN mitgeschnitten haben.

Google ist mit Bezug auf die WLAN-Mitschnitte seiner Streetview-Fahrzeuge NICHT wegen einer Straftat nach STGB drangenommen worden. Wenn das so wäre, dann wäre womöglich irgendjemand von Google Deutschland in den Knast eingefahren.

Google ist "nur" wegen einer Ordnungswidrigkeit drangenommen worden, und zwar weil sie die öffentlich ausgesendeten Daten "gespeichert" haben und dabei die Datenschutzgesetze verletzt haben. Daher haben sie auch mit den abgedrückten 145.000 Euro wegen der WLAN-Mitschnitte der Streetview-Fahrzeuge auch keine "Geldstrafe" bezahlt, sondern nur ein "Bußgeld" wegen einer Ordnungswidrigkeit unter Verstoß gegen Datenschutzgesetze.

Wenn man es vermeidet, gegen Strafgesetze zu verstoßen, dann heißt das im Umkehrschluss noch lange nicht, dass alles legal ist, was vom Strafgesetzbuch nicht mit Strafe bedroht ist.

Denn ein bestimmtes Handeln kann immer noch wegen anderer Gesetze eine Ordnungswidrigkeit sein und als solche auch mit einer Sanktion bedroht sein. Die Strafe beim Begehen einer Ordnungswidrigkeit lautet dann aber eben nicht "Gefängnis oder Geldstrafe", sondern "Bußgeld oder Ermahnung". Wobei im Einzelfall ein Bußgeld wegen einer Ordnungswidrigkeit von der verhängten Höhe her durchaus so manch eine Geldstrafe nach einem Strafgesetz in den Schatten stellen kann.