Sida 1 av 1

Logga seriedata i Win-DOS

Postat: 22 juli 2020, 10:34:34
av Sado
Hejsan,

Inte direkt programmeringsrelaterat men jag provar ändå.

Tänkte att på enklaste sätt logga vad som kommer in på com-porten (i detta fall NMEA från en GPS-puck). Nedanstående fungerar utmärkt för att logga till skärmen (con).

Kod: Markera allt

copy com6 con
För att istället skriva till fil gör man normalt följande:

Kod: Markera allt

copy com6 filnamn.gga
Detta fungerar och jag ser hur filen växer i storlek. Men hur i hela friden avslutar jag? ^Z är ju det normala sättet att avsluta en fil men det fungerar inte. ^C avbryter det hela och filen raderas av systemet.

Kod: Markera allt

I/O-åtgärden har avbrutits därför att en tråd har avslutats eller för att ett program har begärt det.
        0 file(s) copied.
Rycka ur sladden fungerar inte heller för då raderas filen. Att göra en kopia av filen mitt i skrivningen fungerar som nödlösning men det känns inte helt rätt. Några andra idéer?

/S

Re: Logga seriedata i Win-DOS

Postat: 22 juli 2020, 11:15:34
av Mr Andersson
Testa type com6 > filnamn

Re: Logga seriedata i Win-DOS

Postat: 22 juli 2020, 12:26:48
av Sado
Jösses, satte mig vid en annan dator nu där porten blev COM10. Hur jag än betedde mig så fick jag "Incorrect function" eller "The system cannot find the file specified.", även om jag körde med syntaxen \\.\COM10. Jag måste ha förträngt vitala detaljer kring detta.

Nåja, jag rattade om till COM4 och då fungerade din type-variant utmärkt. Tackar!

Re: Logga seriedata i Win-DOS

Postat: 22 juli 2020, 13:14:32
av sodjan
Då DOS funktionerna skrevs så kanske det var ovanligt med 2-siffriga COM portar (?).

Re: Logga seriedata i Win-DOS

Postat: 22 juli 2020, 22:51:27
av Sado
Så klart. Jag trodde \\.\-sökvägen var för att DOS skulle komma åt COM10 men det är ju tydligen nån Win32-grej. Tidiga DOS hanterade bara 4 portar och dagens Win-DOS verkar alltså klara COM1..COM9.

Re: Logga seriedata i Win-DOS

Postat: 22 juli 2020, 23:06:28
av TomasL
Nja, maximalt antal är väl troligen fortfarande 256 st, Utan specialdrivisar.

Re: Logga seriedata i Win-DOS

Postat: 22 juli 2020, 23:07:16
av TomasL
Men för att återgå till ursprunget, varför inte logga med ett terminalprogram i stället.

Re: Logga seriedata i Win-DOS

Postat: 23 juli 2020, 00:04:50
av sodjan
Precis! Ladda ner Putty, anslut mot COM porten och kolla datat på skärmen.
Slå på loggning till fil eller markera och copiera direkt från skärmen...

Re: Logga seriedata i Win-DOS

Postat: 23 juli 2020, 01:40:53
av Maalobs
Om du säger vilket faktiskt operativsystem du använder, så kan du få relevanta lösningsförslag.
Hur många decennier gammalt är det; är det MS-DOS 6.x med Windows 3.x, eller Windows 9x?
Det låter på din senaste kommentar som att det är där någonstans du ligger, men jag kanske har fel.

Re: Logga seriedata i Win-DOS

Postat: 23 juli 2020, 18:39:25
av Sado
Här pratar vi Windows 10. PuTTY har jag redan men nu ville jag lösa detta på enklaste sätt. Mr Andersson presenterade den enklaste lösningen i inlägg #2 :tumupp:

Re: Logga seriedata i Win-DOS

Postat: 24 juli 2020, 00:56:10
av Maalobs
Du har verkligen inte "pratat Windows 10" förrän nu, snarare det motsatta. :)

UNC-sökväg är mycket riktigt en "Win32-grej" och det i sin tur är en kärnfunktion i Windows 10.
Den här delen i artikeln förklarar varför du inte kan använda COM10:
COM1–COM9 are part of the reserved names in the NT namespace, although using the "\\.\" prefix will also work with these device names. By comparison, if you have a 100 port serial expansion board installed and want to open COM56, you cannot open it using "COM56" because there is no predefined NT namespace for COM56. You will need to open it using "\\.\COM56" because "\\.\" goes directly to the device namespace without attempting to locate a predefined alias.
Angående användandet av UNC mot COM-portar från kommandotolken; du har rätt i att det här fungerar:

Kod: Markera allt

type COM1 > test.txt
Medan det här inte fungerar:

Kod: Markera allt

type \\.\COM1 > test.txt
The filename, directory name, or volume label syntax is incorrect.
Jag undrar varför, type är ett inbyggt kommando i cmd.exe.
Det fungerar ju att både skriva och kopiera filer in i COM-porten, även det med inbyggda kommandon:

Kod: Markera allt

echo test > \\.\COM1
copy test.txt \\.\COM1
        1 file(s) copied.
Och det går att manipulera filer via UNC:

Kod: Markera allt

del \\.\C:\test.txt
Märkligt inkonsekvent. :humm: