erste Schritte in Spin

Fragen zu Programmiersprachen und Software für den Hive und die Propellerchips
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: erste Schritte in Spin

Beitrag von drohne235 »

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
"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
Julian
Beiträge: 136
Registriert: Mo 1. Jun 2009, 19:33

Re: erste Schritte in Spin

Beitrag von Julian »

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.
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: erste Schritte in Spin

Beitrag von drohne235 »

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
Julian
Beiträge: 136
Registriert: Mo 1. Jun 2009, 19:33

Re: erste Schritte in Spin

Beitrag von Julian »

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.
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: erste Schritte in Spin

Beitrag von drohne235 »

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
Julian
Beiträge: 136
Registriert: Mo 1. Jun 2009, 19:33

Re: erste Schritte in Spin

Beitrag von Julian »

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) 469-mal heruntergeladen
Benutzeravatar
Rainer
Beiträge: 510
Registriert: Fr 29. Mai 2009, 16:11

Re: erste Schritte in Spin

Beitrag von Rainer »

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
Dateianhänge
YModemData_Test.zip
(28.73 KiB) 468-mal heruntergeladen
"Wer andauernd begreift, was er tut, bleibt unter seinem Niveau."
Julian
Beiträge: 136
Registriert: Mo 1. Jun 2009, 19:33

Re: erste Schritte in Spin

Beitrag von Julian »

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.
Julian
Beiträge: 136
Registriert: Mo 1. Jun 2009, 19:33

Re: erste Schritte in Spin

Beitrag von Julian »

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?

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
PS: Der C Code auf der Seite hilft mir auch nicht, da ich C noch weniger kann.
DJLinux

Re: erste Schritte in Spin

Beitrag von DJLinux »

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
Antworten