Forum: PC-Programmierung COM, serielle Schnittstelle auslesen, befehle senden per batch


von gmt (Gast)


Lesenswert?

Hi, ich möchte (am liebsten) per Batch Messwerte eine Messgeräts an COM3 
auslesen. Per HyperTerminal hat alles geklappt aber nun würde ich gerne 
noch ein bischen mehr machen.

Ein Benutzer soll Name, Teilenummer, Messdauer etc. eingeben und dann 
soll über die Messdauer jede Sekunde der befehl A an COM3 geschickt 
werden. Geschieht das gibt das Messgerät die Messwerte zurück die ich 
dann mit den Nutzerdaten gerne in eine Datei schreiben würde. Der 
Abfrage teil klappt wohl der COM teil leider nicht. Kann jmd helfen?


@ECHO OFF
@echo Messwerterfassung
type com3>messwerte.txt
:Ja
echo Bitte Benutzernamen eingeben
set /p Benutzer=
echo Bitte Teilenummer eingeben
set /p Teil=
echo Bitte Messdauer in Sekunden eingeben
set /p Messdauer=
echo Bitte Art der Messung eingeben (T2-A, etc..)
set /p Messung=

echo a>com3


ECHO Möchten Sie noch eine Messung durchführen ? (j / n)
SET /p wahl=
if '%wahl%' == 'n' goto Nein
if '%wahl%' == 'j' goto Ja
Goto Ende

:Nein
Messung abgeschlossen
goto Ende

:Ende
pause

von gmt (Gast)


Lesenswert?

eine weitere möglichkeit wäre das messgerät permanent messwerte schicken 
zu lassen (kann man am gerät einstellen und sie jede sekunde zu 
schreiben. weiss nicht wie das einfacher ist.

von Blackbird (Gast)


Lesenswert?

Da fehlen die COM3-Einstellungen per mode command

Syntax
   Serial port:
      MODE COMm[:] [BAUD=b] [PARITY=p] [DATA=d] [STOP=s]
                                [to=on|off] [xon=on|off] [odsr=on|off]
                                [octs=on|off] [dtr=on|off|hs]
                                [rts=on|off|hs|tg] [idsr=on|off]

Abfrage der derzeitigen Einstellungen: Einfach 'mode' im cmd-Fenster 
eingeben


Blackbird

von gmt (Gast)


Lesenswert?

ok der code sieht jetzt so aus. mit der schleife sagt er das er das "i" 
an dieser stelle nicht verarbeiten kann. lösche ich die schleife sagt er 
"Der E/A-Vorgang wurde wegen eines Threadendes oder einer 
Anwendungsaufforderung abgebrochen"




@ECHO OFF
@echo Messwerterfassung
:Ja
echo Bitte Benutzernamen eingeben
set /p Benutzer=
echo Bitte Teilenummer eingeben
set /p Teil=
echo Bitte Messdauer in Sekunden eingeben
set /p Messdauer=
echo Bitte Art der Messung eingeben (T2-A, etc..)
set /p Messung=
mode com3:19200,n,8,1
for /l %i in (1,1,messung) do (
type com3>messwerte.txt
timeout /T 1
) %i

ECHO Moechten Sie noch eine Messung durchfuehren ? (j / n)
SET /p wahl=
if '%wahl%' == 'n' goto Nein
if '%wahl%' == 'j' goto Ja
Goto Ende

:Nein
Messung abgeschlossen
goto Ende

:Ende
pause

von Georg (Gast)


Lesenswert?

gmt schrieb:
> type com3>messwerte.txt

Du willst doch die Messwerte ausgeben - also type messwerte.txt. Oder

copy /b messwerte.txt com3

Georg

von gmt (Gast)


Lesenswert?

Georg schrieb:
> gmt schrieb:
>> type com3>messwerte.txt
>
> Du willst doch die Messwerte ausgeben - also type messwerte.txt. Oder
>
> copy /b messwerte.txt com3
>
> Georg

ausgeben oder in den file schreiben. da ich sowieso alle ausgaben im 
batch fenster mit in die datei schreiben möchte ist egal, oder?

von Georg (Gast)


Lesenswert?

gmt schrieb:
> da ich sowieso alle ausgaben im
> batch fenster mit in die datei schreiben möchte ist egal, oder?

?? Das steht doch sowieso schon alles in messwerte.txt.

Probiers doch einfach aus. In einer Minute weisst du mehr.

Georg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.