Seite 1 von 1

Abfrage vom seriellen Port

Verfasst: 16.08.2008 21:20
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

Verfasst: 16.08.2008 21:24
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.

Verfasst: 16.08.2008 21:28
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

Verfasst: 16.08.2008 21:33
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!

Verfasst: 16.08.2008 21:38
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

Verfasst: 16.08.2008 21:48
von ts-soft
Testen kann ich da leider nichts, weiß noch nichtmal welche Lib Du da verwendest.

vielleicht hilft Dir das

Verfasst: 19.08.2008 13:54
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