LPT und RS232 Beispiele

Hardware- und Elektronikbasteleien, Ansteuerung von Schnittstellen und Peripherie.
Fragen zu "Consumer"-Problemen kommen in Offtopic.
Benutzeravatar
Falko
Admin
Beiträge: 3531
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.0
Kontaktdaten:

Beitrag von Falko »

Hallo Graffiti

Habe die aktuelle MVCOM mit dem Loopbackstecker verbunden und mit folgenden Source aus der MVCOM (etwas geändert) folgendes gemacht.

Code: Alles auswählen

;Open COM1 at 1200 Bds, no parity, 8 data bits and 1 stop bit
;Handshake mode set to None with RTS On 
Chaine.s = "Hallo hier Die Zahlen 0,1,2,3,4,5,6,7,8,9"
Car.s = " "
Port.s = "com1:1200,n,8,1"
Handshake.l = 1
Buffer.l = 1024

HCom.l = ComOpen(Port, Handshake,Buffer,Buffer)
If Hcom > 0                                 ; Communication port is open
    If ComOutput(HCom,Chaine)  ; Send data
        Delay(1000)                            ; Or other action
        While ComInputBufferCount(HCom) > 0
            If ComInput(HCom,Car)
                Ausgabe.s = Ausgabe + Car
            EndIf
         Wend
        ComClose(HCom)              ; Close the communication port
    Debug Ausgabe
    MessageRequester("TEST",Ausgabe)
    EndIf
EndIf
In der Ausgabe kommt die 0 auch im String. War das in etwa so gemeint?

Debugger hat geschrieben:Hallo hier Die Zahlen 0,1,2,3,4,5,6,7,8,9
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic
Graffiti
Beiträge: 173
Registriert: 30.08.2004 08:34
Wohnort: Thailand

Beitrag von Graffiti »

fast nicht

ich muß eine Steuersequenz senden

chr(27),chr(255),chr(64),chr(0),chr(0)

und die sollte dann im Terminalprogramm in der Dezimalansicht als

27
255
64
0
0

dargestellt sein, das MVCom scheiterte damals an den Nullen

habe dir übrigens ein klasse Freeware Terminalprogramm - Terminal v1.9b von Bray++ ca 290kB klein aber mit allen Extras

http://www.graffiti-pyrotechnik.de/ftp/ ... e/term.zip
Graffiti
Beiträge: 173
Registriert: 30.08.2004 08:34
Wohnort: Thailand

Beitrag von Graffiti »

Ich würde ja Byteweise senden aber mit meiner Funkübertragung verliere ich pro sendung 20 millisekunden
das sind dann 80 ms mehr als wie wenn ich Stringweise sende

gruß Graffiti
Benutzeravatar
Falko
Admin
Beiträge: 3531
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.0
Kontaktdaten:

Beitrag von Falko »

Feines Terminalprogramm. Habs mir gleich mal runtergeladen. Mit Loopback kann ich das dann so nicht testen, wenn ich das mit dem Terminal abfragen will. Ich werde morgen meinen 2. PC mal mit dem Nullmodemkabel verbinden und mal testen. Als String müßte man es senden können.

Gruss Falko
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic
Graffiti
Beiträge: 173
Registriert: 30.08.2004 08:34
Wohnort: Thailand

Beitrag von Graffiti »

geht mit Loopback, einfach das Terminalprogramm 2 mal starten und andere Schnittstellen einstellen
das mache ich mit meinen Funkmodulen auch immer.

gruß
Graffiti
Beiträge: 173
Registriert: 30.08.2004 08:34
Wohnort: Thailand

Beitrag von Graffiti »

auf der rechten Seite kannst du dann dec anklicken dann sieht man auch die gesendeten Zahlen
Benutzeravatar
Falko
Admin
Beiträge: 3531
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.0
Kontaktdaten:

Beitrag von Falko »

Hallo Graffiti

Ich hoffe ich habe das jetzt einigermassen richtig verstanden. In der MVCOM könnte man die Strings so wie du oben geschrieben hast ja senden und empfangen. Die Steuercodes sollen aber als Zahlen angezeigt werden. Bei einem Debugging mit Chr(0) und nachfolgenden strings, stürzt das programm ab. Wenn man diesen String filtert, lassen sich die Zahlen dann so auslesen. Hab mal das Codeschnipsel abgeändert, das es so rauskommt, wie du oben geschrieben hast. Ich hoffe, das nüzt was.
Das Terminalprogramm gibt aber alle Zeichen von "chr(0)" aus. Wenn das so gewünscht ist, ließe sich das auch auslesen.

Code: Alles auswählen

;Open COM1 at 1200 Bds, no parity, 8 data bits and 1 stop bit
;Handshake mode set to None with RTS On
Chaine.s = "chr(27),chr(255),chr(64),chr(0),chr(0)"
Car.s = " "
Port.s = "com1:1200,n,8,1"
Handshake.l = 1
Buffer.l = 1024

HCom.l = ComOpen(Port, Handshake,Buffer,Buffer)
If Hcom > 0                                 ; Communication port is open
    If ComOutput(HCom,Chaine)  ; Send data
        Delay(1000)                            ; Or other action
        While ComInputBufferCount(HCom) > 0
            If ComInput(HCom,Car)
                Ausgabe.s = Ausgabe + Car
            EndIf
         Wend
        ComClose(HCom)              ; Close the communication port
    Debug Ausgabe
    MessageRequester("TEST",Ausgabe)
    EndIf
EndIf 
;hier wird der String nach den Werten ausgefiltert.
Debug "----------------------------------------------------------------------------"
String$=Ausgabe 
Start=0
Repeat
Anfang = FindString(String$, "(", Start)+1
Ende= FindString(String$, ")", Anfang)
Debug Mid(String$,Anfang,Ende-Anfang)
Start=Ende
Until Ende = Len(String$)

Debugger hat geschrieben:chr(27),chr(255),chr(64),chr(0),chr(0)
----------------------------------------------------------------------------
27
255
64
0
0
Gruss Falko
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic
Antworten