Batch-Datei für DOSBOX schreiben / TDS4XX, Binärdaten --> CSV automatisch konvertieren

Gast #5774318
Hallo zusammen,

ich möchte einem TDS420 gerne Daten im CSV-Format entlocken.

Dabei gibt es verschiedene Hürden:
1. Bei direkter aufzeichnung im CSV-Format auf Diskette braucht dies 
schon mal gute 10Minuten, am Ende kann eine Meldung kommen, nach der die 
Diskette voll ist.

Werden die Daten im Oszi-Internen Format auf die Disk gespeichert geht 
dies sehr viel schneller, und für 120000Punkte kommen auch nur 235KB 
zusammen. Das aufzeichnungsformat .WFM kann mit der Datei CNVRTWFM.exe 
mit dem Aufruf:
1
CNVRTWFM -i -l TEK00000.WFM
in CSV umgewandelt werden.

Dabei werden die Daten der Auzzeichnungsparameter Kanals mit '-i' 
ausgegeben und eine Datei .DAT '-l' erstellt welche die Messdaten als 
CSV enthält.

Jedoch läuft die CNVRTWFM.exe nur in der DOSBOX.

Nun möchte ich eine Batch-Datei erstellen welche folgendes tut:
1. DosBox Starten
2. In der Dosbox das Arbeitsverzeichniss Mounten
3. Diskettenlaufwerk Mounten
4. Kompletten Disk-Inhalt nach Arbeitsverzeichniss kopieren
5. Disketteninhalt löschen
6. Für jede .WFM-Datei die CNVRTWFM.exe -i -l TEKXXXXX.WFM ausführen
1
DOSBOX
2
mount C:\TDS4XX C:
3
mount A:\ A:
4
copy C:\ A:\*.*
5
del A:\*.*
6
...
7
CNVRTWFM.exe -i -l TEKXXXXX.WFM
8
...

Dabei sehe ich momentan 2 Probleme,
1. Wie schreibt man eine Batch-Datei welche die DosBox startet und dann 
noch in der BosBox weiter geht?

2. Wie kann Schritt 6 in der Datei realisiert werden?
Da hier ja von TEK00000.WFM bis TEKXXXXX.WFM durchgegangen werden soll?

Kann mir da vielleicht jemand einen TIP geben?

Grüße und schonmal vielen Dank,
Matthias
Persönliche Seite
Matthias schrieb:
> 1. Wie schreibt man eine Batch-Datei welche die DosBox startet und dann
> noch in der BosBox weiter geht?

Zwei Batchdateien verwenden, die eine ruft Dosbox auf, die andere heißt 
autoexec.bat und steckt in der Dosbox drin.

> 2. Wie kann Schritt 6 in der Datei realisiert werden?

Sieh Dir die Dokumentation des "for"-Befehls von DOS an.


Du kennst das hier?

https://de.tek.com/oscilloscope/tds7054-software/tektronix-windows-oscilloscope-wfm-converter
Gast
Matthias schrieb:

> Jedoch läuft die CNVRTWFM.exe nur in der DOSBOX.

Dann ist die beste und zukunftsfähigste Lösung: Man disassembliert 
diesen Kram, schaut, was es tut und schreibt es neu. Das kann man dann 
für jedes relevante Ziel-OS neu übersetzen.
Gast
Rufus Τ. F. schrieb:
> Du kennst das hier?
>
> 
https://de.tek.com/oscilloscope/tds7054-software/tektronix-windows-oscilloscope-wfm-converter

Ja, aber dass geht mit den Binärdateien von 4XXer Oszis nicht, ist nur 
für 5xxx/6xxx/7xxx-Modelle.

c-hater schrieb:
> Matthias schrieb:
>
>> Jedoch läuft die CNVRTWFM.exe nur in der DOSBOX.
>
> Dann ist die beste und zukunftsfähigste Lösung: Man disassembliert
> diesen Kram, schaut, was es tut und schreibt es neu. Das kann man dann
> für jedes relevante Ziel-OS neu übersetzen.

Recht hast du, aber da kenn ich mich kaum aus...


Bert3 schrieb:
> Das kannst du in der dosbox.conf in der autoexec section machen

Danke :)
genau danach habe ich gesucht, da man die Autoexec in der Box ja auch 
nicht einfach editieren kann, da ja kein Editor so standardmäßig 
vorhanden ist...

Nun habe ich schonmal dieses:
1
mount C: C:\TDS4XX_Tools\
2
mount A: A:\
3
copy A:\*.* C:\
4
A:
5
del *.*
6
C:
7
for %%i IN (*.WFM) do CNVRTWFM.exe -i -l %%G

Problem ist hier noch die FOR-Schleife, denn die DOSBOX sagt:
1
Illegal command: for.

Wäre wirklich toll wenn jemand noch wüsste wie man eine FOR-Schleife in 
der Dosbox lauffähig macht.
Ich finde dazu leider keine funktionierenden Beispiele...

Ich verwenden die DosBox 0.74-2.

Vielen Dank schonmal :)
Gast
Matthias schrieb:

> for %%i IN (*.WFM) do CNVRTWFM.exe -i -l %%G
>
> Problem ist hier noch die FOR-Schleife, denn die DOSBOX sagt:
>
1
Illegal command: for.

Das standardmäßig in der DOSBOX laufende DOS ist ein stark abgespecktes 
DOS. Das kann vieles nicht, was ein echtes DOS kann. Was es kann, kannst 
du dir mit help /all anzeigen lassen.

Allerdings: Die Zeile hätte auch mit einem richtigen DOS nicht 
funktioniert. Wenn du vorne "%%i" als Laufvariable benutzt, kannst du 
nicht hinten irgendein "%%G" verwenden...
Gast
c-hater schrieb:
> Das standardmäßig in der DOSBOX laufende DOS ist ein stark abgespecktes
> DOS. Das kann vieles nicht, was ein echtes DOS kann. Was es kann, kannst
> du dir mit help /all anzeigen lassen.

Ok, dann ist ein FOR nicht drinn.
Kann ich es irgendwie rein bringen?

Wenn nicht dann reicht es mir auch so:
1
mount C: C:\TDS4XX_Tools\
2
mount A: A:\
3
copy A:\*.* C:\
4
A:
5
del *.*
6
C:
7
CNVRTWFM.exe -i -l TEK00000.WFM
8
CNVRTWFM.exe -i -l TEK00001.WFM
9
CNVRTWFM.exe -i -l TEK00002.WFM
10
CNVRTWFM.exe -i -l TEK00003.WFM
11
CNVRTWFM.exe -i -l TEK00004.WFM
12
CNVRTWFM.exe -i -l TEK00005.WFM

> Allerdings: Die Zeile hätte auch mit einem richtigen DOS nicht
> funktioniert. Wenn du vorne "%%i" als Laufvariable benutzt, kannst du
> nicht hinten irgendein "%%G" verwenden...

Hast recht :)
Gast
Mach die schleife doch ausserhalb von dosbox

In dosbox nimmst du immer den selben dateinamen fuer die eingabe und 
immer den selben fuer die ausgabe, in der schleife ausserhalb 
kopierst/umbenennst du die entsprechenden dateien

Das mit freedos in dosbox kannst du dir dann sparen
Gast
Nun funktioniert es :)

Ich habe die folgende Konfiguration:
DOSBOX.conf
1
[autoexec]
2
mount A: A:\
3

4
mount C C:\DOSBOX\C -freesize 1024
5

6
if exist C:\DOSBOX.BAT CALL C:\DOSBOX.BAT
7
if exist C:\AUTOEXEC.BAT CALL C:\AUTOEXEC.BAT

AUTOEXEC.BAT
1
...
2
...
3
:END
4

5
A:
6
copy *.* C:\TDS4XX\
7
del *.WFM
8
C:
9
cd TDS4XX
10
FOR %%A IN (*.WFM) do CNVRTWFM.exe -i -l %%A

DOSBOX.BAT (nur zur Installation)
1
@echo off
2

3
SET TZ=EDT
4

5
C:
6
mount E: C:\DOSBOX\E

Bert3 schrieb:
> Mach die schleife doch ausserhalb von dosbox
>
> In dosbox nimmst du immer den selben dateinamen fuer die eingabe und
> immer den selben fuer die ausgabe, in der schleife ausserhalb
> kopierst/umbenennst du die entsprechenden dateien
>
> Das mit freedos in dosbox kannst du dir dann sparen

Stimmt aber da müsste ich die DosBox immer neu starten.

Jedenfalls vielen Dank euch :)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.