BASCOM einfache Prüfsumme und PHP

OP #2115013
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
Gast #2115094
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
OP #2115105
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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.