Problemas con la comunicación por el puerto serie
Publicado por José Luis (16 intervenciones) el 10/06/2018 12:18:31
Buenos días,
He empezado a trabajar con el puerto serie en Gambas y tengo un pronelam. Quiero hacer un pequeño monitot del ouerto serie, que vaya escribiendo en un TextArea lo que va enviando un dispositivo por el puerto serie. Para testearlo estoy usando un Arduino Uno que cada segundo va enviando una linea que dice "El valor es: " y a continuación envía un valor que es la lectura de una entrada analógica del Arduino uno y hace un salto de linea. El programa no va fino del todo, me caza unas cuantas líneas y luego se para y no lee más.
A continuación os dejo el código, a ver si alguien me puede decir que es lo que hago mal, tengo un Form1 del que no dejo el código que se dedica a leer los parámetros del puerto serie, copio el código del Form2 que es el que abre el puerto serie y trata de leer los datos
Gracias por viestra ayuda. Saludos
He empezado a trabajar con el puerto serie en Gambas y tengo un pronelam. Quiero hacer un pequeño monitot del ouerto serie, que vaya escribiendo en un TextArea lo que va enviando un dispositivo por el puerto serie. Para testearlo estoy usando un Arduino Uno que cada segundo va enviando una linea que dice "El valor es: " y a continuación envía un valor que es la lectura de una entrada analógica del Arduino uno y hace un salto de linea. El programa no va fino del todo, me caza unas cuantas líneas y luego se para y no lee más.
A continuación os dejo el código, a ver si alguien me puede decir que es lo que hago mal, tengo un Form1 del que no dejo el código que se dedica a leer los parámetros del puerto serie, copio el código del Form2 que es el que abre el puerto serie y trata de leer los datos
Gracias por viestra ayuda. Saludos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
' Gambas class file
Private Sp As New SerialPort
Public Sub Form_Open()
Form2.Text = Form1.Puerto
ToggleButton1.Text = "Connect"
ToggleButton1.Width = 100
ToggleButton1.x = Form2.Width / 2 - 50
ToggleButton1.y = 15
TextArea1.Width = Form2.Width
TextArea1.Height = Form2.Height - 50
TextArea1.x = 0
TextArea1.y = 50
End
Public Sub Form_Resize()
ToggleButton1.x = Form2.Width / 2 - 50
ToggleButton1.y = 15
TextArea1.Width = Form2.Width
TextArea1.Height = Form2.Height - 50
TextArea1.x = 0
TextArea1.y = 50
End
Public Sub SComm_Read()
Dim Rx As String
Sleep 0.01
Try Read #Sp, Rx, Lof(Sp)
If Error Then
Message.info("No received data!", "Ok")
Endif
If Len(Rx) > Sp.DataBits Then
TextArea1.Text = CStr(Rx)
End If
End
Public Sub ToggleButton1_Click()
If ToggleButton1.Text = "Connect" Then 'Si te la etiqueta Connect
ToggleButton1.Text = "Disconnect"
Sp.PortName = Form1.Puerto 'Carreguem el nom del port
Sp.Speed = Val(Form1.Baudios) 'Carreguem la velocitat del port
Select Form1.Datos 'Carreguem els bits de dades del port
Case "6"
Sp.DataBits = SerialPort.Bits6
Case "7"
Sp.DataBits = SerialPort.Bits7
Case "8"
Sp.DataBits = SerialPort.Bits8
End Select
Select Form1.Final 'Carreguem els nits de stop del port
Case "1"
Sp.StopBits = SerialPort.Bits1
Case "2"
Sp.StopBits = SerialPort.Bits2
End Select
Select Form1.Paridad 'Carreguem la paritat del port
Case "None"
Sp.Parity = SerialPort.None
Case "Odd"
Sp.Parity = SerialPort.Odd
Case "Even"
Sp.Parity = SerialPort.Even
End Select
'-----------------------------
Sp.FlowControl = SerialPort.None
If Sp.Status = Net.Active Then
Close Sp
Endif
Try 'Intentem obrir el port
Sp.Open
If Error Then 'Si dona error
Message("No Serial Come Exiting...") 'Missatge d'error
Quit 'Sortirm
Endif
SComm_Read
Else
ToggleButton1.Text = "Connect" 'Canviem la etiqueta del boto
Sp.Close 'Tanquem el port
Endif
End
Valora esta pregunta


0