SerialPort - wie Daten aufbereiten ?

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
sailor
Foriker
Beiträge: 38
Registriert: So 3. Mär 2013, 19:50
Kontaktdaten:

SerialPort - wie Daten aufbereiten ?

Beitrag von sailor » Di 26. Dez 2017, 20:11

Hallo zusammen, für ein kleines Projekt wollte ich Gambas einsetzen, allerdings versteh ich den SerialPort nicht.
Ich verwende die IDE3.10
Folgende Daten kommen über die Schnittstelle

$GPGGA,184132.000,5135.2193,N,00719.4437,E,1,07,1.1,64.1,M,47.4,M,,0000*62
$GPGSA,A,3,24,19,15,13,17,10,12,,,,,,2.0,1.1,1.7*3A
$GPRMC,184132.000,A,5135.2193,N,00719.4437,E,0.40,243.28,261217,,,A*69
$GPVTG,243.28,T,,M,0.40,N,0.7,K,A*01
$GPGGA,184133.000,5135.2194,N,00719.4435,E,1,07,1.1,63.2,M,47.4,M,,0000*62

Ich habe eine Form mit einer TextArea und folgenden Code erstellt

Private Gps_String As String

Public Sub Form_Open()
serGps = New SerialPort As "serGps"
serGps.PortName = "/dev/ttyUSB0"
serGps.Speed = "4800"
serGps.DataBits = "8"
serGps.StopBits = "1"
serGps.Parity = "0"
serGps.FlowControl = "0"
connect()
End

Public Sub Form_Close()
If serGps.Status = Net.Active Then
serGps.Close()
Endif
End

Function PortRead() As String
Dim s As String
If serGps.Status = Net.Active
serGps.Begin
serGps.EndOfLine = 1
serGps.Blocking = True
Try Read #serGps, s, Lof(serGps)
Gps_String = Gps_String & s
If Left(Gps_String, 1) = "$" And s = Chr(13)
Return Gps_String
Endif
Endif
End

Public Sub connect()
Try serGps.Open()
TextBox1.Text = serGps.Status
End

Public Sub serGps_Read()
PortRead()
WriteData(Gps_String)
End

Public Sub WriteData(msg As String)
If Left(msg, 1) = "$"
TextArea1.Text = TextArea1.Text & msg
Endif
End

In der TextArea werden die Daten angezeigt, wie aber komm ich einzelne Einträge wie zB oben unterstrichen.
Ich finde keinen für mich verständlichen Ansatz. Bitte um Hilfsanstoß
Gruß Detlef

Honsek
Foriker
Beiträge: 353
Registriert: Do 4. Okt 2007, 17:01
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von Honsek » Mi 27. Dez 2017, 19:28

sailor hat geschrieben:
Di 26. Dez 2017, 20:11
Hallo zusammen, für ein kleines Projekt wollte ich Gambas einsetzen, allerdings versteh ich den SerialPort nicht.
Hallo sailor,

dann wird es aber Zeit mit dem Verstehen. Offensichtlich bekommst Du doch die gewünschten Daten über die V24-Schnittstelle und kannst diese auch in einer TextArea anzeigen.
  • Kommen die Daten in einem Block - so wie in den 5 Zeilen?
  • Werden die Daten einmalig ausgelesen oder kontinuierlich?
Mit flotten Grüßen

Honsek
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!

sailor
Foriker
Beiträge: 38
Registriert: So 3. Mär 2013, 19:50
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von sailor » Do 28. Dez 2017, 10:04

Hallo Honsek, die Daten kommen kontinuirlich in diesem Fall von einer GPS-Maus.
Nach meinem Verständnis werden durch Try Read #serGps, s, Lof(serGps) die Bytes nacheinander gelesen.

Gps_String = Gps_String & s
If Left(Gps_String, 1) = "$" And s = Chr(13)
Return Gps_String

An dieser Stelle sollte die Variable Gps_String den Inhalt "$xxxxxxxxxxxxxxxCHR(13)" zurückgeben ?
In der TextArea kommen allerdings die Bytes auch seriell und nicht als Block an.

Wo kann ich ansetzen ?
Gruß Detlef

Benutzeravatar
gambi
Moderator
Beiträge: 312
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von gambi » Do 28. Dez 2017, 18:09

Hallo sailor,

wenn ich das richtig sehe, dann gilt das Folgende (Quelle: Wikipedia):
Bei den NMEA-Daten handelt es sich um ASCII-basierte Datensätze, die jeweils 80 druckbare Zeichen umfassen können. Jeder Datensatz wird durch eine Kombination aus Wagenrücklauf und Zeilenvorschub abgeschlossen (<CR><LF>).

Der Anfang eines Datensatzes wird durch ein „$“ oder „!“ markiert. Nach diesem Startzeichen folgt die Geräte-ID (normalerweise zwei Zeichen) und die Datensatz-ID (meist drei Zeichen) als eine Zeichenkette. Darauf folgen, jeweils durch Kommata getrennt, die Datenfelder gemäß der Datensatzdefinition. Optional kann zusätzlich eine durch ein „*“ abgetrennte hexadezimale Prüfzahl angehängt werden. Diese wird durch die XOR-Verknüpfung der ASCII-Werte aller Zeichen zwischen dem $ und dem * errechnet.
Das bedeutet, dass du einzelne Datensätze erhältst, die vielleicht schnell hintereinander kommen.
Baue doch erst mal bei dem Return Gps_String einen Haltepunkt ein und schaue, was im String drin steht.
Wenn die Datensätze einzeln kommen, bietet sich ein ReadLine() an [http://gambaswiki.org/wiki/comp/gb/stream/readline].

Mit Split kannst du dann den Datensatz in ein StringArray übergeben. Ich gehe davon aus, dass es immer 15 Werte pro Datensatz gibt; getrennt durch Kommata. Damit kannst du dir die einzelnen Werte direkt herausziehen.

Zu deinem Beispiel: gambas code
Dim s As String
Dim sValues as new String[]

  s=serGPS.ReadLine()
 svalues=split(s,",")
 Print svalues[12]   ' Könnte auch 11 sein
gg

sailor
Foriker
Beiträge: 38
Registriert: So 3. Mär 2013, 19:50
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von sailor » So 31. Dez 2017, 16:31

Hallo Gambi, mit xxx.ReadLine() hatte ich , wie auch schon andere, keinen Erfolg :cry:
Eine weitere Erkenntnis die mich Zeit gekostet hat:
Ich verwende Gambas 3.10.
Wenn ich Änderungen im Code vorgenommen habe, gab es nach einigen Änderungen keine Ausgabe mehr.
Dann mußte ich Gambas erst beenden und neu starten.
Hier mal mein Code. In TextBox2 wird die aktuelle Uhrzeit in UTC angezeigt.
Hinweise auf Fehler oder Berichtigungen nehme ich gerne entgegen.

' Gambas class file

Public GpsString As String
Public GpsDaten As String[]

Public Sub Form_Open()
serGps = New SerialPort As "serGps"
serGps.PortName = "/dev/ttyUSB0"
serGps.Speed = "4800"
serGps.DataBits = "8"
serGps.StopBits = "1"
serGps.Parity = "0"
serGps.FlowControl = "0"
connect()
End

Public Sub Form_Close()
If serGps.Status = Net.Active Then
serGps.Close()
Endif
End

Public Sub connect()
Try serGps.Open()
TextBox1.Text = serGps.Status
End

Public Sub serGps_Read()
Dim s As String

Read #serGps, s, Lof(serGps)
GpsString = GpsString & s
If s = Chr(10) Then
GpsDaten = Split(GpsString, ",")
TextBox1.Text = GpsDaten[0]
If GpsDaten[0] = "$GPRMC" Then
TextBox2.Text = GpsDaten[1]
Endif
WriteData(GpsString)
GpsString = ""
Endif
End
Public Sub WriteData(msg As String)
TextArea1.Text = TextArea1.Text & msg
End

Guten Rutsch
Gruß Detlef

sailor
Foriker
Beiträge: 38
Registriert: So 3. Mär 2013, 19:50
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von sailor » So 31. Dez 2017, 17:08

Zu früh gefreut, nach ca 30sec wird die Uhrzeit nicht mehr regelmäßig aktualisiert.
Gruß Detlef

sailor
Foriker
Beiträge: 38
Registriert: So 3. Mär 2013, 19:50
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von sailor » So 14. Jan 2018, 22:34

Hallo zusammen, ich hab mal weiter gemacht und hab meinen Code gekürzt.
In der Form Text1 und Text2.
GPS-Mouse über ttyUSB0
In Text2 Anzeige der Uhrzeit
Mit $GPRMC erfolgt die Sekundenanzeige nicht im gleichen Takt, mit $GPGGA schon :?: gambas code
' Gambas class file

Public GpsString As String
Public GpsDaten As String[] 

Public Sub Form_Open()  
  serGps = New SerialPort As "serGps"
  serGps.PortName = "/dev/ttyUSB0"
  serGps.Speed = "4800"
  serGps.DataBits = "8"
  serGps.StopBits = "1"
  serGps.Parity = "0"
  serGps.FlowControl = "0"
  connect()    
End

Public Sub Form_Close()    
  If serGps.Status = Net.Active Then
    serGps.Close()
  Endif
End

Public Sub connect()  
  Try serGps.Open()
  TextBox1.Text = serGps.Status 
End

Public Sub serGps_Read()
  Dim s As String
  Read #serGps, s, Lof(serGps)
  GpsString = GpsString & s
    If s = Chr(10) Then
      GpsDaten = Split(GpsString, ",")
        If GpsDaten[0] = "$GPGGA" Then 'changed from $GPRMC
          TextBox2.Text = GpsDaten[1]
        Endif
    
      GpsString = ""
      
    Endif 
End



Gruß Detlef

Benutzeravatar
gambi
Moderator
Beiträge: 312
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von gambi » Di 16. Jan 2018, 21:08

Hallo Detlef,
mein Ansatz wäre hier in der Read() ein Print Now oder Debug Now einzubauen.
Damit siehst du wie oft und in welchen Abständen serGps_Read() aufgerufen wird.

gg

sailor
Foriker
Beiträge: 38
Registriert: So 3. Mär 2013, 19:50
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von sailor » Fr 19. Jan 2018, 08:49

Hallo Gambi,
ich habe vor GpsString = "" ein
Debug Now
Print GpsString
eingebaut. Das Ergebnis:
FMain.serGps_Read.41: 19.01.2018 08:21:38
$GPGSV,3,3,12,09,21,211,32,06,19,307,17,14,13,045,18,12,05,342,*73

FMain.serGps_Read.41: 19.01.2018 08:21:38
$GPRMC,072137.000,A,5135.2185,N,00719.4521,E,0.13,58.44,190118,,,A*50

FMain.serGps_Read.41: 19.01.2018 08:21:38
$GPVTG,58.44,T,,M,0.13,N,0.2,K,A*30

FMain.serGps_Read.41: 19.01.2018 08:21:38
$GPGGA,072138.000,5135.2185,N,00719.4522,E,1,09,0.9,57.6,M,47.4,M,,0000*62

FMain.serGps_Read.41: 19.01.2018 08:21:38
$GPGSA,A,3,01,11,19,23,31,09,17,22,14,,,,1.9,0.9,1.7*35

FMain.serGps_Read.41: 19.01.2018 08:21:38
$GPRMC,072138.000,A,5135.2185,N,00719.4522,E,0.04,62.09,190118,,,A*5A

FMain.serGps_Read.41: 19.01.2018 08:21:38
$GPVTG,62.09,T,,M,0.04,N,0.1,K,A*35

FMain.serGps_Read.41: 19.01.2018 08:21:39
$GPGGA,072139.000,5135.2184,N,00719.4522,E,1,09,0.9,57.9,M,47.4,M,,0000*6D

FMain.serGps_Read.41: 19.01.2018 08:21:39
$GPGSA,A,3,01,11,19,23,31,09,17,22,14,,,,1.9,0.9,1.7*35

FMain.serGps_Read.41: 19.01.2018 08:21:39
$GPRMC,072139.000,A,5135.2184,N,00719.4522,E,0.16,63.86,190118,,,A*5F

FMain.serGps_Read.41: 19.01.2018 08:21:39
$GPVTG,63.86,T,,M,0.16,N,0.3,K,A*32

FMain.serGps_Read.41: 19.01.2018 08:21:40
$GPGGA,072140.000,5135.2183,N,00719.4522,E,1,09,0.9,58.4,M,47.4,M,,0000*66

FMain.serGps_Read.41: 19.01.2018 08:21:40
$GPGSA,A,3,01,11,19,23,31,09,17,22,14,,,,1.9,0.9,1.7*35

FMain.serGps_Read.41: 19.01.2018 08:21:40
$GPRMC,072140.000,A,5135.2183,N,00719.4522,E,0.07,191.23,190118,,,A*65

FMain.serGps_Read.41: 19.01.2018 08:21:40
$GPVTG,191.23,T,,M,0.07,N,0.1,K,A*03

FMain.serGps_Read.41: 19.01.2018 08:21:41
$GPGGA,072141.000,5135.2182,N,00719.4521,E,1,09,0.9,58.5,M,47.4,M,,0000*64

FMain.serGps_Read.41: 19.01.2018 08:21:41
$GPGSA,A,3,01,11,19,23,31,09,17,22,14,,,,1.9,0.9,1.7*35

FMain.serGps_Read.41: 19.01.2018 08:21:41
$GPRMC,072141.000,A,5135.2182,N,00719.4521,E,0.32,215.29,190118,,,A*65

FMain.serGps_Read.41: 19.01.2018 08:21:41
$GPVTG,215.29,T,,M,0.32,N,0.6,K,A*07

FMain.serGps_Read.41: 19.01.2018 08:21:42
$GPGGA,072142.000,5135.2181,N,00719.4520,E,1,09,0.9,58.8,M,47.4,M,,0000*68

FMain.serGps_Read.41: 19.01.2018 08:21:42
$GPGSA,A,3,01,11,19,23,31,09,17,22,14,,,,1.9,0.9,1.7*35

FMain.serGps_Read.41: 19.01.2018 08:21:42
$GPGSV,3,1,12,03,77,065,,22,55,085,23,23,55,191,22,01,42,143,27*78

FMain.serGps_Read.41: 19.01.2018 08:21:42
$GPGSV,3,2,12,17,40,262,26,19,38,288,30,31,25,060,26,11,21,163,35*7F

So wiederholen sich die Datensätze. :?:
An dieser Stelle möchte ich aber die GPS-Maus zur Seite legen, da diese nur zum Lernen diente. An ihre Stelle kommt ein Arduino, bei dem ich die Datensätze selber aufbereite.

Desweiteren ärgert mich, daß ich die ReadLine() Funktion, trotz Recherche in anderen Foren und Mailingliste, noch nicht hinbekommen habe.

Hat dazu noch jemand eine Idee ????
Gruß Detlef

Benutzeravatar
gambi
Moderator
Beiträge: 312
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von gambi » Fr 19. Jan 2018, 21:07

Hallo sailor,
beim letzten Durchlauf zur Sekunde 42 fehlt $GPRMC. Oder hast du vorher abgebrochen?

gg

sailor
Foriker
Beiträge: 38
Registriert: So 3. Mär 2013, 19:50
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von sailor » Fr 19. Jan 2018, 23:47

Hallo Gambi, habe die Zeile beim kopieren wohl vergessen. Hab heut mal meine Arduinos in Betrieb genommen. Ich habe das Gefühl, daß die Baudrate der GPS-Maus (4800) ein Problem bereitet. Bei dem Arduino arbeite ich mit 115200 und die Datensätze kommen sauber ??

Des weiteren nochmal die Bemerkung - als BS arbeite ich mit XUbuntu 16.04 und Gambas 3,10, installiert mit dem PackedManager - wenn ich Änderungen im Programm mache, muß ich Gambas neu starten damit diese ausgeführt werden.

Ich berichte weiter und hoffe auf Hilfe
Gruß Detlef

sailor
Foriker
Beiträge: 38
Registriert: So 3. Mär 2013, 19:50
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von sailor » Sa 3. Feb 2018, 20:19

Hallo zusammen, ich habe nun meinen Arduino soweit programmiert, daß er mir Datensätze im Format
!,8970,46,35315,1416,27,210931+CRLF
liefert
Der Code des Serialport

Code: Alles auswählen

Public Sub serNmea_Read()

  Dim s As String
  Dim nmeaString As String
  Dim nmeaDaten As String[]
  ' 
  Sleep 0.005 

  Read #serNmea, s, Lof(serNmea)    
    nmeaString = nmeaString & s
    Debug nmeaString      
        If Left(nmeaString, 1) = "!" Then
          If Right(nmeaString, 1) = Chr(10) Then
            nmeaDaten = Split(nmeaString, ",")
            gbRpm = Val(nmeaDaten[1])
            gbTrim = Val(nmeaDaten[2])
            gbMottemp = Val(nmeaDaten[3])
            gbLadespg = Val(nmeaDaten[4])
            gbVerbr = Val(nmeaDaten[5])
            gbBetrstd = Val(nmeaDaten[6])
          Endif
       
Damit läuft das Program ohne Absturz, allerdings mit Aussetzern bei den Betriebsstunden im Sekundenbereich.
In der Debug-Ausgabe kann man fehlerhafte Daten sehen - zB
FTest.serNmea_Read.46: !,3512,49,30415,1426,9,210361

FTest.serNmea_Read.46: !,3512,49,30415,1426,9,210361

FTest.serNmea_Read.46: !,35 ///was passiert hier ??????????
FTest.serNmea_Read.46: 12,49,30415,1416,9,210361

FTest.serNmea_Read.46: !,3536,49,30415,1416,9,210362

FTest.serNmea_Read.46: !,3536,49,30415,1416,9,210362

Hat noch jemand eine Idee ?
Gruß Detlef

sailor
Foriker
Beiträge: 38
Registriert: So 3. Mär 2013, 19:50
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von sailor » So 4. Feb 2018, 21:24

So, ich melde mich noch mal. Hab mein Programm weiter fehlerfrei gemacht. Abstürze hatte ich sporadisch, wenn der Arduino lief und Daten sendete und ich dann das Programm startete. Das erledigt nun die Funktion checkNULL.
Nach wie vor werden viele Datensätze verworfen, aber damit kann ich im Augenblick leben - unter python ist das anders.
Hier mein code - Verbesserungen nehm ich gerne an und Fragen werd ich beantworten

Code: Alles auswählen

' Gambas class file

Public serNmea As SerialPort
Public gbRpm As Integer
Public gbTrim As Integer
Public gbMottemp As Integer
Public gbLadespg As Integer
Public gbVerbr As Integer
Public gbBetrstd As Integer
Public gbLuftdr As Integer
Public gbLufttemp As Integer


Public Sub Form_Open()
  serNmea = New SerialPort As "serNmea"
  serNmea.PortName = "/dev/ttyACM0"
  serNmea.Speed = "115200"
  serNmea.DataBits = "8"
  serNmea.StopBits = "1"
  serNmea.Parity = "0"
  serNmea.FlowControl = "0"
  Try serNmea.Open()  
  FTest.Center
  FTest.Resizable = False
  gauge1Property
  Gauge2Property
  Gauge3Property
  VBox4.X = Me.Width - 168
  
End

Public Sub Form_Close() 
  If serNmea.Status = Net.Active Then
    serNmea.Close()
  Endif
End

Public Sub serNmea_Read()

  Dim s As String
  Dim nmeaString As String
  Dim dataString As String
  Dim nmeaDaten As String[]
  ' 
  Sleep 0.005 

  Try Read #serNmea, s, Lof(serNmea)
    dataString = dataString & s    
    'nmeaString = nmeaString & s
    nmeaString = Conv$(dataString, "WINDOWS-1253", "UTF-8")
    Debug nmeaString
          
        If Left(nmeaString, 1) = "!" Then
          If Right(nmeaString, 1) = Chr(10) Then
            nmeaDaten = Split(nmeaString, ",")
            gbRpm = Val(nmeaDaten[1])
            gbTrim = Val(nmeaDaten[2])
            gbMottemp = Val(nmeaDaten[3])
            gbLadespg = Val(nmeaDaten[4])
            gbVerbr = Val(nmeaDaten[5])
            gbBetrstd = checkNull(nmeaDaten[6])
            gbLuftdr = checkNull(nmeaDaten[7])
            gbLufttemp = checkNull(nmeaDaten[8])
          Endif
        Endif 
  
  
   Gauge2.Value = gbRpm / 400
   Gauge3.Value = gbTrim
   LVerbrauch.Text = CString(Format(gbVerbr / 10, "0.0")) & " l/h"
   LLadespg.Text = CString(Format(gbLadespg / 100, "#.0")) & " V"
   LMottemp.Text = CString((gbMottemp - 27315) / 100) & " °C"
   LBetriebsstd.Text = secinhms(gbBetrstd)
   LLufttemp.Text = CString(Format(gbLufttemp / 10, "#.0")) & " °C"
   LLuftdruck.Text = CString(gbLuftdr) & " hp"
   
End

Public Sub gauge1Property()
 
  Gauge1.Width = 200
  Gauge1.Height = 200
  Gauge1.X = Me.Width / 2 - Gauge1.Width - 10
  Gauge1.Y = 10  
  
  Gauge1.MaxValue = 60
  Gauge1.MajorTicks = 7
  Gauge1.MinorTicks = 9
  Gauge1.BorderColor = Color.RGB(255, 255, 0)
  Gauge1.FaceColor = Color.RGB(0, 0, 0)
  Gauge1.Text = "km/h"
End
Public Sub Gauge2Property()
  Dim CB As New ColorBand[]    
  Dim GreenBand As New ColorBand
  Dim YellowBand As New ColorBand
  Dim RedBand As New ColorBand
    
  GreenBand.Color = Color.Transparent
  GreenBand.Width = 0.58
  CB.Add(GreenBand, 0)
    
  YellowBand.Color = Color.Transparent
  YellowBand.Width = 0.25
  CB.Add(YellowBand, 1)
    
  RedBand.Color = Color.Red
  RedBand.Width = 0.17
  CB.Add(RedBand, 2)
  
  Gauge2.Width = 200
  Gauge2.Height = 200
  Gauge2.X = Me.Width / 2 + 10
  Gauge2.Y = 10
  Gauge2.BorderColor = Color.RGB(255, 255, 0)
  Gauge2.ColorBands = CB
  Gauge2.MaxValue = 70
  Gauge2.MajorTicks = 8
  Gauge2.MinorTicks = 9
  Gauge2.FaceColor = Color.RGB(0, 0, 0)
  Gauge2.Text = "U/min (x100)"
  Gauge2.Foreground = Color.White
End
Public Sub Gauge3Property()
  Gauge3.Width = 130
  Gauge3.Height = 130
  Gauge3.X = Me.Width / 2 - 65
  Gauge3.Y = 200
  Gauge3.BorderColor = Color.Yellow
  Gauge3.MaxValue = 100
  Gauge3.CenterAngleDeg = 0
  Gauge3.DeadAngleDeg = 220
  Gauge3.MajorTicks = 3
  Gauge3.MinorTicks = 1
  Gauge3.FaceColor = Color.RGB(0, 0, 0)
  Gauge3.Text = "Trim"
  Gauge3.Foreground = Color.White
  
End

Public Sub secinhms(z As Integer) As String
  Dim x As String
  Dim h As Integer
  Dim m As Integer
  Dim s As Integer
  h = z / 3600
  m = (z - h * 3600) / 60
  s = (z - h * 3600 - m * 60)
  x = CString(h) & ":" & CString(Format(m, "0#")) & ":" & CString(Format(s, "0#"))  
  Return x
End

Public Sub checkNull(z As String) As Integer / / Programastürze abgefangen, weil String = Null
  Dim x As Integer  
    If IsNumber(z) = True Then
          x = Val(z)
    Else If
      x = 0      
    Endif        
  Return x
End
Gruß Detlef

Benutzeravatar
gambi
Moderator
Beiträge: 312
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von gambi » Mo 5. Feb 2018, 21:11

Hallo Detlef,
was macht denn das Sleep da?

gg

sailor
Foriker
Beiträge: 38
Registriert: So 3. Mär 2013, 19:50
Kontaktdaten:

Re: SerialPort - wie Daten aufbereiten ?

Beitrag von sailor » Sa 10. Feb 2018, 17:16

Hallo Gambi,
hab sleep grad noch mal auskommentiert und es kommen keine Daten an.
Gruß Detlef

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste