Serielle Schnittstelle lesen (verständnis Problem)

Anfängerfragen zum Programmieren mit PureBasic.
christophe
Beiträge: 14
Registriert: 25.08.2011 11:14

Serielle Schnittstelle lesen (verständnis Problem)

Beitrag von christophe »

Guten Abend

Ich habe ein verständnis Problem zur ReadSerialData() funktion:

Result = ReadSerialPortData(#SerialPort, *Buffer, Length)
"The number of bytes which are actually read are returned in 'Result'."

Bedeutet das nun die Anzahl der Bytes im Serial Buffer, oder der gesammte String definiert durch lenght?

AnzComByte = AvailableSerialPortInput(0)
Result = ReadSerialPortData(1, *Antwort, AnzComByte)

Ich im Moment keine Hardware, wo ich das Probieren kann.

Danke
Christophe
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Serielle Schnittstelle lesen (verständnis Problem)

Beitrag von HeX0R »

christophe hat geschrieben:Bedeutet das nun die Anzahl der Bytes im Serial Buffer, oder der gesammte String definiert durch lenght?
Wenn wir schon bei Verständnisproblem sind: Von welchem String redest du denn? Ich seh keinen.
Ausserdem ist das eigentlich ziemlich eindeutig, der Rückgabewert sagt dir wieviele Bytes denn nun in deinen angegebenen Puffer geschrieben wurden.
Benutzeravatar
Falko
Admin
Beiträge: 3535
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.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Re: Serielle Schnittstelle lesen (verständnis Problem)

Beitrag von Falko »

christophe hat geschrieben:....
Ich im Moment keine Hardware, wo ich das Probieren kann.

Danke
Christophe
Das ist kein Problem, da nimmst du eben die virtuelle Comschnittstelle und paarst zwei Com's miteinander.
Wenn dein Programm senden und empfangen kannt, starte es zweimal und gib jedem gestarteten
Programm seine zugeordnete COM-Adresse von com0com. Damit solltest du dein Programm testen können.

Hier der Link aus der PB - Suche:

http://www.purebasic.fr/german/viewtopi ... 71#p286171

Gruß,
Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
christophe
Beiträge: 14
Registriert: 25.08.2011 11:14

Re: Serielle Schnittstelle lesen (verständnis Problem)

Beitrag von christophe »

Danke für die schnellen Antworten.

Mit String meine ich alle Bytes die von der Schnittstelle empfangen wurden (es wird ein String gesendet, darum diese Bezeichnung).

Wenn ich das richtig verstehe, dann werden alle Zeichen des Schnitstellen-Puffers an *Puffer übergeben und das Result hat dann die Anzahl der Zeichen die *Puffer enthält.

D.h. folgendes gibt mir den empfangen String:

String.S = peeks(*Puffer,result)

Sorry wegen meiner Dummy Frage, ich will einfach verstehen was ich mache. Beispiele kopieren ist nicht so mein Ding.

Christophe
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Serielle Schnittstelle lesen (verständnis Problem)

Beitrag von HeX0R »

christophe hat geschrieben:D.h. folgendes gibt mir den empfangen String:

Code: Alles auswählen

String.S = PeekS(*Puffer, result)
Exakt!
(Allerdings nur, wenn du einen Ascii-String bekommst, bei Unicode musst du die Bytes erst noch in Chars umrechnen)
christophe hat geschrieben:Sorry wegen meiner Dummy Frage, ich will einfach verstehen was ich mache. Beispiele kopieren ist nicht so mein Ding.
Nah.. das war keine Dummy Frage, bast scho!
Antworten