erste Schritte in Spin
- drohne235
- Administrator
- Beiträge: 2284
- Registriert: So 24. Mai 2009, 10:35
- Wohnort: Lutherstadt Wittenberg
- Kontaktdaten:
Re: erste Schritte in Spin
XModem ist schon ziemlich urtümlich, hat aber Spaß gemacht den Code anzupassen und zu untersuchen und ist sicher auch ein guter Einstieg in die Problematik der Datenübertragung. Ich kenne das Protokoll noch aus Mailboxzeiten. Das mit den vermurksten Daten in der Textdatei kann man sicher beheben wenn man vor der Übertragung oder beim Schreiben den Puffer gleich löscht, aber die Skalierung auf 128 Byte ist eine Eigenart des Protokolls.
http://de.wikipedia.org/wiki/XModem
http://de.wikipedia.org/wiki/XModem
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Re: erste Schritte in Spin
Aber es muss doch die Möglichkeit geben das Problem zu lösen. Es gibt zwar ios.startram aber es nevt einfach immer die SD umzustecken. XLoad ist da einfach praktischer.
- drohne235
- Administrator
- Beiträge: 2284
- Registriert: So 24. Mai 2009, 10:35
- Wohnort: Lutherstadt Wittenberg
- Kontaktdaten:
Re: erste Schritte in Spin
So eine richtige Lösung wäre wohl nur Y- oder Z-Modem-Protokoll (Dateinamen werden übertragen) und ein Hive-Commander, welchen man statt mit "nc" mit "hc" starte! 

"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Re: erste Schritte in Spin
Naja aber das hat ja früher wohl auch funktioniert ohne das irgendwelcher Junk in die Daten geschrieben wurde. Man muss ja "nur" beim letzten Package nach dem EOF aufhören zu schreiben. Das Zeichen das übrigens "zu viel" geschrieben wird hat den HexCode 1A.
- drohne235
- Administrator
- Beiträge: 2284
- Registriert: So 24. Mai 2009, 10:35
- Wohnort: Lutherstadt Wittenberg
- Kontaktdaten:
Re: erste Schritte in Spin
Hm, da hab ich jetzt einen Knoten im Hirn. Nach meiner Meinung geht es nur mit einer initilaen Übetragung der Dateilänge, denn ein bestimmter Hex-Code wie $1A kann ja nicht maßgeblich sein - solch ein Code kann ja in jeder Datei als integraler Bestandteil der Daten auftreten.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Re: erste Schritte in Spin
So ich hab mal (mit meinen geringen Kenntnissen) einen Q'n'D Patch geschrieben. Das Problem ist natürlich, wenn sich in den letzten 128Byte der Datei ein 1A befindet. Wenn jemand ne besser Idee oder Verbesserungen hat bitte posten.
- Dateianhänge
-
- xload.zip
- Xload mit Q'n'D Patch.
- (5.94 KiB) 560-mal heruntergeladen
Re: erste Schritte in Spin
Habe einen Y-Modem Spin-Source gefunden. Der ist zwar nur gedacht zum Upload vom Propeller, aber sollte kein Problem sein das anzupassen.
"Here's a version of my Ymodem code that lets you upload recorded data as a file.
There are two test proceedures, one uploads data as a text file and the other uploads as a binary file..."
Im Source steht auch, das $1A wohl "DOS EOF" ist.
Ich hänge den Source mal an ... wer Lust hat kann sich ja mal damit beschäftigen .. ich habe im Moment keine Zeit dafür.
Gruß.
Rainer
"Here's a version of my Ymodem code that lets you upload recorded data as a file.
There are two test proceedures, one uploads data as a text file and the other uploads as a binary file..."
Im Source steht auch, das $1A wohl "DOS EOF" ist.
Ich hänge den Source mal an ... wer Lust hat kann sich ja mal damit beschäftigen .. ich habe im Moment keine Zeit dafür.
Gruß.
Rainer
- Dateianhänge
-
- YModemData_Test.zip
- (28.73 KiB) 548-mal heruntergeladen
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Re: erste Schritte in Spin
Danke für den Code. Ich habe eh nix zu tun. Der Code is zwar zum senden aber der Xmodem code ist ja schon funktionsfähig. Ich habe mal COM1 mit COM2 mit nem Nullmodem-Kabel verbunden und einfach mal Daten per ymodem versendet und geloggt. Das werde ich jetzt mal Analysieren und schaun ob ich den Xmodem code anpassen kann.
Re: erste Schritte in Spin
Ok das ist doch nicht so einfach wie ich gedacht hab. Ich bin deshalb gerade dabei das ganze erstmal in Python zu schreiben. Zum einen weils einfacher zu debuggen ist und zum anderen weil ich das besser kann. Jedoch verstehe ich die CRC Routine nicht. Könnte die mir jemand erklären?
PS: Der C Code auf der Seite hilft mir auch nicht, da ich C noch weniger kann.
Code: Alles auswählen
PRI UpdateCRC(data,crc):newcrc|i,icrc
'look here:http://web.mit.edu/6.115/www/miscfiles/amulet/amulet-help/xmodem.htm
crc:=crc^(data<<8)
repeat i from 0 to 7
if crc&$8000
crc:=((crc<<1)&$FFFF)^$1021
else
crc:=(crc<<=1)&$FFFF
return crc&$FFFF
Re: erste Schritte in Spin
Was verstehst Du denn an dem C code nicht?
Ist es vielleicht "^" das bedeutet XOR und sollte in Python auch "^" sein wenn ich mich nicht irre.
Vielleicht kannst Du ja etwas genauer sagen wo der Schuh drückt.
Grüsse Joshy
Ist es vielleicht "^" das bedeutet XOR und sollte in Python auch "^" sein wenn ich mich nicht irre.
Vielleicht kannst Du ja etwas genauer sagen wo der Schuh drückt.
Grüsse Joshy