www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BASCOM einfache Prüfsumme und PHP


Autor: Christian Z. (christian_z)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

folgendes Problem. Ich übermittle Daten von einem PHP-Socketserver, auf 
anfrage meines µC, an den µC und sollte sicherstellen das die Daten 
einigermaßen richtig ankommen.

Konkret frägt der µC mit dem String:

2-5-gettime (2 = Nummer des Terminals in dem der µC steckt, 5 = Die 
gewünschte Aktion in dem Fall "schick mal die aktuelle Zeit rüber", 
gettime = lesbarer Text ohne weitere Funktion)

beim PHP Socketserver nach der Uhrzeit und bekommt dann soetwas zurück:

12:33:17_03-04-11_3 (Uhrzeit_Datum_TagderWoche)

Da is ein wenig mit der Seriellen Übertragung auf dem Kriegsfuss stehe 
will ich mit einer einfachen Prüfsumme schaun obs ungefair hinhaut.

Meine Idee:

Ich gehe auf der PHP-Seite hin und zerlege den String in seine 
"Zeichen", multipliziere diese mit einem Wert (ka. 1234) und summiere 
alles auf. Die Summe hänge ich dann einfach noch an den String an.

Gleiches das auf der µC-Seite, Wert vergleichen und ggf. Daten neu 
anfordern.

Denke ich da gerade in eine falsche Richtung ? hat wer sowas schonmal 
gemacht ? oder eine viel bessere Idee ?

Stichwort CRC, ich weis aber nicht ob die BASCOM implementation mit 
einer in PHP übereinstimmt, wenn das wer weis nehme ich auch gern diese 
Funktion ;-).

Danke

PS: Das gibt ne Zeiterfassung, läuft soweit auch ganz gut nur immer 
wieder kommts vor das die Daten irgendwo untergehen. Aufbau im Prinzip 
ein µC -> RS232 -> DeviceServer (RS232->LAN) -> eigenen PHP-Sockeserver 
-> Datenbank und Daten an den µC zurück.

Christian

Autor: Manuel M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit Bascom kannste ziemlich leicht eine CRC-Prüfsumme von nem String 
berechnen. Und in PHP hängste einfach an den Zeit-String (durch ein 
Komma getrennt) die CRC-Prüfsumme der Zeit an. Auf dem AVR einfach den 
ankommenden String wieder zerlegen -> schauen ob Prüfsummer der 
Empfangenen Zeit = mitgelieferte Prüfsumme.

Hoffe das hilft dir!
Manuel

Autor: Christian Z. (christian_z)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Prinzip ist mir klar (hatte ich versucht zu beschreiben) nur das wie 
berechne ich auc beiden seiten das gleiche. Ich muss in der PHP-Welt 
einen nenne wir es "Algorithmus" bauen den ich in Bascom nachvollziehen 
kann (gleiches Ergebnis). Die Checksum Funktion wir wohl kaum einer aus 
PHP ebtsprechen. Diese CRC8/16/32 Funktionen sind selbs auch noch 
unterschiedlich wie ich lesen musste.

Danke soweit, noch wer eine IDEE ?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.