Abfrage vom seriellen Port

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
TobiasR
Beiträge: 19
Registriert: 16.08.2008 08:58
Wohnort: Nidda
Kontaktdaten:

Abfrage vom seriellen Port

Beitrag von TobiasR »

Hi,

habe gleich noch eine Frage.
Ich erhalte Daten von der seriellen Schnittstelle (COM 2).
Nun möchte ich vor diese Daten immer die Uhrzeit stellen.

Mit dem angehängten Codeausschnitt habe ich dies versucht, leider ohne Erfolg.
Die Uhrzeit ist in der Ausgabe nicht vorhanden.

Kann mir jemand sagen wo der Fehler liegt?

Code: Alles auswählen

    If GadgetNR=#Gadget_ButtonReceive
      Readed=SR_ReadComPort(MyRS232) ; Read Incoming
      If Readed
       Debug "Characters readed="+Str(Readed)
       ;FormatDate("%hh:%ii:%ss", Date())  ; zeigt die aktuelle Zeit mittels dem 00:00:00 Format
       Buffer.s=Buffer.s+PeekS(MyRS232\ReceiveBuffer,MyRS232\ReceiveBufferlength)
       Buffer.s=FormatDate("%hh:%ii:%ss", Date())+Buffer.s
       SetGadgetText(#Gadget_TextReceive, Buffer.s)
       MyRS232\ReceiveBufferlength=0 ;Shorten buffer now
      EndIf
     EndIf
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Die Uhrzeit ist in der Ausgabe nicht vorhanden.

dann war sie auch nicht in der Übertragung enthalten.
schließlich gibst du ja die empfangene zahl aus Str(Readed)

btw. "read" ist ein unregelmäßiges Verb.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
TobiasR
Beiträge: 19
Registriert: 16.08.2008 08:58
Wohnort: Nidda
Kontaktdaten:

Beitrag von TobiasR »

ja, aber ich dachte mit
Buffer.s=FormatDate("%hh:%ii:%ss", Date())+Buffer.s
wird die Systemzeit des PC's dargestellt und dann die empfangenen Daten angehängt
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Manchmal gibts Probleme bei direkter Stringzuordnung, versuchs mit einer
Zwischenvariablen:

Code: Alles auswählen

If GadgetNR=#Gadget_ButtonReceive
  Readed=SR_ReadComPort(MyRS232) ; Read Incoming
  If Readed
   Debug "Characters readed="+Str(Readed)
   ;FormatDate("%hh:%ii:%ss", Date())  ; zeigt die aktuelle Zeit mittels dem 00:00:00 Format
   Buffer.s=Buffer.s+PeekS(MyRS232\ReceiveBuffer,MyRS232\ReceiveBufferlength)
   date.s = FormatDate("%hh:%ii:%ss", Date())
   Buffer = date + Buffer.s
   SetGadgetText(#Gadget_TextReceive, Buffer.s)
   MyRS232\ReceiveBufferlength=0 ;Shorten buffer now
  EndIf
 EndIf
Ungetestet!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
TobiasR
Beiträge: 19
Registriert: 16.08.2008 08:58
Wohnort: Nidda
Kontaktdaten:

Beitrag von TobiasR »

Nein,

hat leider nicht funktioniert.
Dachte du hast in deinem Code etwas vergessen und habe es noch einmal etwas angepasst. Leider immer noch ohne Erfolg:

Code: Alles auswählen

If GadgetNR=#Gadget_ButtonReceive
      Readed=SR_ReadComPort(MyRS232) ; Read Incoming
      If Readed
      Debug "Characters readed="+Str(Readed)
      ;FormatDate("%hh:%ii:%ss", Date())  ; zeigt die aktuelle Zeit mittels dem 00:00:00 Format
      Buffer.s=Buffer.s+PeekS(MyRS232\ReceiveBuffer,MyRS232\ReceiveBufferlength)
      date.s = FormatDate("%hh:%ii:%ss", Date())
      Buffer.s=date.s + Buffer.s
      SetGadgetText(#Gadget_TextReceive, Buffer.s)
      MyRS232\ReceiveBufferlength=0 ;Shorten buffer now
      EndIf
    EndIf
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Testen kann ich da leider nichts, weiß noch nichtmal welche Lib Du da verwendest.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
heiko
Beiträge: 6
Registriert: 15.08.2008 09:47

vielleicht hilft Dir das

Beitrag von heiko »

Code: Alles auswählen

tag$ = Str(Day(Date())) 
monat$ = Str(Month(Date())) 
jahr$ = Str(Year(Date())) 
stunde$ = Str(Hour(Date())) 
minute$ = (FormatDate("%ii", Date()))
sekunde$ = (FormatDate("%ss", Date()))

Debug sekunde$
Debug minute$
Debug stunde$
Debug jahr$
Debug monat$
Debug tag$
Du musst dann nur die Sachen nehmen die Du brauchst

Heiko

Code-Tags ergänzt. Nächstes mal bitte selber dran denken - Kaeru fecit
Antworten