Hallo Besucher, der Thread wurde 4,9k mal aufgerufen und enthält 31 Antworten

letzter Beitrag von MIG am

Daten über serielles Kabel übertragen

  • Hallo,
    das ist mein erster Post und ich hoffe jemand kann mir helfen. Ich habe Probleme beim Übertragen von Daten über die serielle Schnittstelle. Genau genommen beschäftigt mich das nun schon das dritte Wochenende und ich hab mir sogar eine neues Nullmodem Kabel gekauft...


    Kurz: die übertragene Datei ist am Amiga immer kleiner als am PC bzw. Raspberry Pi. Bei meiner Beispieldatei sind das 74 Bytes die fehlen. Da es ein.lha Archiv ist klappt das entpacken mit "lha a ram:dateiname.lha" nicht. Was kann ich da falsch machen?


    Lang: zuerst habe ich das Problem an der Übertragung vermutet. Also hab ich vom receiver.bas auf direkt "type Ser: to Ram:dateiname.lha" gewechselt...selber effekt. Dann hab ich recherchiert man muss es mit dem Rtscrt Handshake übertragen. Das ging mit meinem USB Seriell Adapter nicht. Daraufhin bin ich vom Raspberry Pi als Sender auf einen Uralt WinXP Laptop mit Serieller Schnittstelle gewechselt. Da gings mit Handshake, leider gleiches Ergebnis. Jetzt habe ich auch noch ein neues USB-Seriell Kabel und da gibts am Pi auch das selbe Problem...ich denke ich suche an der falschen Stelle. Die Datei ist immer gleich groß (klein) egal wie übertragen wird. Selbst mit ParityBit was ja eigentlich Übertragungsfehler verhindern sollte.


    Ich dokumentiere übrigens alles so genau wie möglich in meine Blog...will da aber mal keine Werbung machen.


    Hilfe :(

  • Kurz: die übertragene Datei ist am Amiga immer kleiner als am PC bzw. Raspberry Pi. Bei meiner Beispieldatei sind das 74 Bytes die fehlen.
    [...]
    Die Datei ist immer gleich groß (klein) egal wie übertragen wird.

    Wieviele Byte kommen denn an? Falls die Zahl ohne Rest durch 256, 512, 1024 oder eine ähnliche Zweierpotenz teilbar ist, spuckt Dir wohl irgendwo ein Buffer in die Suppe: Soll heißen, erst wenn der Buffer wieder gefüllt wäre, würde der Inhalt ausgeliefert.
    Du kannst zum Testen mal versuchen, die Datei künstlich um ein KByte oder so zu verlängern.

  • Wenn das Ergebnis immer das gleich ist, dann sind übertragungsfehler unwahrscheinlich.


    Ich vermute stark, dass beim Senden bestimmte Sonderzeichen rausgefiltert werden (vermutlich auf der Amiga-Seite).
    Kann man dort explizit angeben, dass man Binärdaten übertragen will?
    Ich kenne den Amiga-Type-Befehl nicht, aber unter CP/M und MS-DOS war der zum Anzeigen von Textdateien gedacht.


    Versuch doch mal testweise eine reine Textdatei zu übertragen.

  • Die letzten bytes sind warscheinlich noch im puffer von SER:. Mach mal CTRL+C am Amiga nach dem ubertragung, dan starte ein zweite upload vom PC aus. Das kann der selbe datei sein, macht nicht aus den die Amiga wird abrechen und puffer vollstandig leeren. Dan download dir ADF Sender Terminal oder Amiga Explorer fuer weitere ubertragungen auf gleicher weise.

  • hey zusammen...erstmal herzlichen Dank! Da waren ja gleich ein paar Ansätze dabei die ich probieren kann.


    Die Ratschläge für andere Software sind gut gemeint, leider ist das ja gerade das Problem. Ich will ja Software übertragen und auf Floppy schreiben. Zur Not muss ich meinen A1200 mit der CF Karte verwenden...aber mich würde das sonst keine Ruhe lassen...


    @nhoijtink klingt logisch...leider mach ich genau das. Wenn am Quellrechner der Prompt zurück kommt drücke ich CTRL+C am Amiga und starte die Übertragung neu. Danach steht auf der Amiga Konsole *Break* glaub ich... sollte eigentlich so gehen.


    Ich probiere es jedenfalls wieder und schreib euch dann Rückmeldung

  • juhu, Erfolg!


    Es war tatsächlich noch ein Rest der Datei im Buffer. Ich habs mit dem neuen Kabel nochmal mit dem receive.bas bei aktiviertem RTS/CRT probiert. Das ging ja mit dem alten Adapter nicht und die Datei hat dir korrekte Größe! Das lha Archiv konnte ich nun problemlos öffnen.


    Danke an alle!
    :thumbsup:

  • juhu, Erfolg!


    Es war tatsächlich noch ein Rest der Datei im Buffer. Ich habs mit dem neuen Kabel nochmal mit dem receive.bas bei aktiviertem RTS/CRT probiert. Das ging ja mit dem alten Adapter nicht und die Datei hat dir korrekte Größe! Das lha Archiv konnte ich nun problemlos öffnen.


    Danke an alle!
    :thumbsup:

    Und jetzt (eines) die erwahnte programme herunterladen damit du das nicht mehr zu tun brauchst ;)

  • Also, dass ganze mit dem Amiga BASIC brachtst du nicht unbedingt.


    Code
    1. type SER: >RAM:datei

    Dass ganze hab ich schon im jahre 2010 beschrieben auf lemon: http://www.lemonamiga.com/foru…ullmodem+ser+ram&start=75


    Wichtig ist das null-modem kabel, soll RTS/CTS unterstuetzen, die transfer paramater '9600 baud 8 n 1' oder '14400 8 n 1', manchmal geht '19200 8 n 1' auch, und die procedur ist anders auf WB2.0+ als auf WB1.2 & WB1.3. Nturlich sollen die ubertragungsparameter auf sender un empfanger gleich sein.

  • und nun das ganze parallel :)

    -----> https://joy.sophics.cz/parcp/parcp-usb.html


    Am ST funktioniert das schon hervorragend. Warum sollte das der Amiga nicht können? Die Software ist Open-Source, kann also für den Amiga portiert werden.

  • Wenn man denn mal ein richtiges Terminalprogramm auf seinem Amiga hat(NComm z.B.) dann bietet es sich an, sich an seinem raspberry pi auf die serielle Konsole ein zu loggen in dann Dateien per zmodem zu übertragen. Dann braucht man auch keinen zweiten Bildschirm/Tastatur.

  • Da ist aber ein riesen Unterschied! Übertrage mal mit einem Gotek eine mehrere MB große Ordnerstruktur... Mit ParCP-USB geht das in einem Rutsch.

    Also... du willst mir sagen dass ParCP-USB mit 105 kB/s (officieller andeutung fur Falcon+CT60 66MHz ubertragungsrate) schneller ist als einfach mit 9 MB/s auf USB stick zu setzen und dan simpel in der Amiga/Atari Gotek ein zu stecken? Diese summe engeht mir aber....


    Aber es ist toll wenn es mehere wegen gibt um ein problem zu losen. Nettes ding ists schon.

  • Beim Gotek oder HXC gibts zwei limitierende Faktoren:
    1. Die Diskimage-Größe ist auf 720-860 kB limitiert, du musst also ständig das Diskimage wechseln und den Kopiervorgang neu starten, wenn du mal mehrere MB auf einmal rüberschaufeln willst. Darüber hinaus musst du das Zeugs erstmal am PC in Diskimages reinschreiben, um es am ST/Amiga als Disk lesen zu können.
    2. Du kannst zwar das Diskimage meinetwegen mit 10000000GB/s auf einen hyperultrasuperduperschnellen USB-Version-471142 Stick drauf schreiben, der ST/Amiga ließt das Zeug aber aus dem Diskimage nur mit Floppygeschwindigleit aus.


    Bei ParCP-USB gehts viel einfacher, ich machs so:
    1. ST mit PC verbinden, am ST parallel, am PC USB
    2. Auf dem ST den "Server" starten
    3. Auf dem PC den "Client" starten, der aussieht wie Norton-Commander/DCC/Turbo-Commander/Free-Commander/Directory-Opus/..., Quelle auf der einen Seite wählen, auf der anderen Seite das Ziel, die Funktion "Kopieren" auswählen und den ganzen Krempel auf diie Platte des Zielrechners rumpeln lassen.


    Anmerkungen:
    1. Man kann auch auf dem ST den Client starten, und auf dem PC den Server, geht auch, der Client ist aber auf einem Standard-ST recht lahm. Diese Variante hat aber einen Vorteil: Der Server auf dem PC kann gleichzeitig mehrere Clients bedienen.
    2. Mit "PC" meine ich übrigens Windows-PC, Mac OS-X, Linux und Raspi mit Linux. Statt des ST kann es auch ein MS-DOS-PC (ab 386SX) sein, und vielleicht hoffentlich irgendwann auch mal ein Amiga.
    3. ParCP-USB kann man übriigens auch scripten, z.B. kann man damit automatisierte Backups aller Laufwerke des Retrosystems auf den PC sichern.

  • Per Netzwerk am einfachsten ist wahrscheinlich das FTP-Protokoll. Diese Netzwerksache ist aber wesentlich schwerer zu installieren als ParCP-USB. Und die Netzwerkkarten für den PCMCIA (und Atari-ROM-Port) sind allesamt nicht gerade flott, sprich kaum schneller als ParCP-USB. Ich fände es toll, wenn das mal jemand auf den Amiga portieren würde.