Autor Tema: Aplicacion VB6.0 para Visualizar Datos de un ECG  (Leído 3069 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado agonzalezs

  • PIC10
  • *
  • Mensajes: 4
Aplicacion VB6.0 para Visualizar Datos de un ECG
« en: 12 de Enero de 2012, 18:38:10 »
hola a todos, estoy trabajando en una aplicacion(en visual 6.0) que me permita visualizar los datos de un ECG en tiempo real, los datos para esta aplicacion se alimentan desde un microcontrolador que realiza la conversion analogica-digital y que a la vez permite enviar los datos por el puerto serie, la aplicacion la realice modificando partes de otros codigos relacionados a la adquisicion de datos (codigo visual basic 6.0) y en primer instancia logre que se graficaran hasta llegar al extremo derecho de un picturebox que es donde visualizo la señal del ECG con el inconveniente de que no podia visualizar los trazos continuamente, ahora con un poco mas de tiempo me dedique a revisar el codigo y buscando en la web encontre informacion con lo cual me dispuse a realizar que la aplicacion graficara la señal de forma continua, pero me presenta un problema, la grafica una vez que alcanza el limite del picturebox definido por el scalewidth sigue su curso graficando los datos reemplazandolos de derecha a izquierda pero con un efecto de intermitencia que es algo molesto porque no permite examinar los trazos, he tratado de resolver modificando el codigo varias veces pero sin mejores resultados, la ayuda que les pido es para que me guien un poco en la forma que se puede resolver este problema
o si tienen algun tipo de informacion que me puedan proporcionar para examinarla y ver que cambios debo realizarle al codigo
de antemano agradezco la colaboracion que me puedan brindar.

aqui les dejo el codigo con el que actualmente estoy realizando pruebas

Option Explicit
Dim cadena As String, valor As String
Dim x As Integer, y As Integer, z As Integer
Dim i As Integer, j As Integer
Dim cx As Integer, cy As Integer
Dim c As Integer, k As Integer

Dim buffer(1000) As Long


Private Sub Command1_Click()
PB1.Cls
On_Off
TM1.Enabled = True
TM1.Interval = 1
x = -1: y = 0: i = 0: j = -1
End Sub

Private Sub Command2_Click()
Unload Me
End Sub

Private Sub Form_Load()

SP1.CommPort = 3
SP1.PortOpen = True
SP1.Settings = "9600,n,8,1"
SP1.InputLen = 0
SP1.RThreshold = 1

With PB1
.Height = 3000
.Width = 8000
.ScaleHeight = 60
.ScaleWidth = 100
.BackColor = vbBlack
End With

PB1.Scale (0, 30)-(100, -30)

TM1.Enabled = False
TM2.Enabled = False
TM2.Interval = 1
cx = PB1.ScaleWidth
cy = PB1.ScaleHeight
End Sub


Function On_Off()
If Command1.Caption = "&Iniciar ECG" Then
    If SP1.PortOpen = True Then
       Command1.Caption = "&Detener ECG"
    Else
       SP1.PortOpen = True
       Command1.Caption = "&Detener ECG"
    End If
  Else
     If Command1.Caption = "&Detener ECG" Then
        SP1.PortOpen = False
        Command1.Caption = "&Iniciar ECG"
     End If
  End If
End Function


Private Sub TM1_Timer()

If Not j > (cx - 1) Then
If SP1.PortOpen = True Then
    valor = SP1.Input
    c = InStr(valor, Chr(13))
    If c = 0 Then
    cadena = cadena & valor
    Else
    cadena = cadena & Left(valor, c - 1)
    z = Val(cadena)
    cadena = ""
    buffer(i + 1) = z
   
    PB1.Line (x, buffer(i))-(j, buffer(i + 1)), vbGreen
    x = j
    i = i + 1
    j = j + 1
    End If
Else
    i = 0
    PB1.Line (x, buffer(i))-(j, buffer(i + 1)), vbGreen
    x = j
    i = i + 1
    j = j + 1
End If

Else
TM1.Enabled = False
TM2.Enabled = True

End If
End Sub

Private Sub TM2_Timer()
PB1.Cls

x = -1
j = -1

If SP1.PortOpen = True Then

    valor = SP1.Input
   
    c = InStr(valor, Chr(13))
    If c = 0 Then
    cadena = cadena & valor
    Else
    cadena = cadena & Left(valor, c - 1)
    z = Val(cadena)
    buffer(cx + 1) = z
    cadena = ""
   
   
    'For k = 0 To 1000
    'DoEvents
    'Next k
   
    For i = 0 To cx
    PB1.Line (x, buffer(i))-(j, buffer(i + 1)), vbGreen
    x = j
    j = j + 1
    buffer(i) = buffer(i + 1)
    DoEvents
    Next i
    End If
   
Else

End If
End Sub

saludes cordiales   
       
Una forma de Aprender es Compartiendo el Conocimiento Propio

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Aplicacion VB6.0 para Visualizar Datos de un ECG
« Respuesta #1 en: 14 de Enero de 2012, 20:32:50 »
agonzalezs haz un experimento para ir descartando.

toma el código y metele valores simulados, que no provengan del rs232, sino con un scrollbar o un timer aleatorio.

porque puede ser que sea una demora introducida por la asincronía del puerto serial
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek


 

anything