Autor Tema: Leer OutBufferCount  (Leído 2714 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Leer OutBufferCount
« en: 10 de Septiembre de 2010, 20:24:24 »
Saludos a todos:

Quiero testear el valor de OutBufferCount, asi como otras propiedades asi:

MsComm1.Output="Mensaje de prueba"
Do while MsComm1.OutBufferCount>0
Label1.Caption=MsComm1.OutBufferCount
Loop

pero no visualizo el decremento de OutBufferCount. Alguna idea?

Javicho.

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Leer OutBufferCount
« Respuesta #1 en: 11 de Septiembre de 2010, 21:24:11 »
en vb6

Código: [Seleccionar]
debug.print "valor de OutBufferCount: " & MsComm1.OutBufferCount & & Chr$(13) & Chr$(10)
y miras en la ventana de inspección

« Última modificación: 11 de Septiembre de 2010, 21:26:50 por PalitroqueZ »
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: Leer OutBufferCount
« Respuesta #2 en: 13 de Septiembre de 2010, 11:48:51 »
Hola:

No se ve el decremento, solo aparece un valor po ejemplo si envio 200 caracteres aparece en la ventana de inmediato:

valor de OutBufferCount: 186

Yo queria que aparezca en un label o textbox pero igual en la ventana inmediato solo aparece el valor 186 y nada mas, tal vez el sistema prioriza la transmisión de los datos y la visualización le toma mucho tiempo no lo se, a que puede deberse?

Javicho.

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Leer OutBufferCount
« Respuesta #3 en: 13 de Septiembre de 2010, 12:23:49 »
¿y a cuanto le pusiste a la propiedad OutBufferSize ?



La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: Leer OutBufferCount
« Respuesta #4 en: 13 de Septiembre de 2010, 14:32:11 »
Hola:

Tengo configurado OutBufferSize=512 bytes, SThreshold=1, 2400bps

'------------------------------------------------------------
Private Sub Command1_Click()

MSComm1.Output = Text8.Text
Debug.Print "valor de OutBufferCount: " & MSComm1.OutBufferCount & Chr$(13) & Chr$(10)

End Sub
'------------------------------------------------------------

Javicho.

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Leer OutBufferCount
« Respuesta #5 en: 13 de Septiembre de 2010, 19:12:24 »
ah pero si encierras el debug.print dentro de command_click, te imprimirá solo una vez

tienes que estar continuamente imprimiendo, una forma (aunque no precisa) es con el timer, configuras el timer para ejecute cada 50ms

Código: Visual Basic
  1. Private Sub Form_Load()
  2.  
  3. Timer1.Enabled = False
  4. Timer1.Interval = 50
  5.  
  6. End Sub
  7.  
  8. Private Sub Command1_Click()
  9.  
  10. timer1.enable=true
  11. MSComm1.Output = Text8.Text
  12. Timer1.Enabled = False
  13.  
  14. End Sub
  15.  
  16. Private Sub Timer1_Timer()
  17. Debug.Print "valor de OutBufferCount: " & MSComm1.OutBufferCount & Chr$(13) & Chr$(10)
  18. End Sub

a 2400bps tendrías unos 120 bits cada 50ms, siendo los caracteres ascii, entonces se lleva 1Byte entonces, 15 caracteres cada 50 ms aproximadamente



La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: Leer OutBufferCount
« Respuesta #6 en: 14 de Septiembre de 2010, 12:43:53 »
Hola:

Me salen 0s pero mejor lo cambié por esto:

Private Sub Command1_Click()
Timer1.Enabled = True   'Activo el Timer para visualizar el OutBufferCount
Timer1.Interval = 1     'Intervalo: 1mS
MSComm1.Output = Text8.Text 'Envio el contenido de Text8 por el Puerto
End Sub

Private Sub Timer1_Timer()
Label8.Caption = MSComm1.OutBufferCount 'Muestra el OutBufferCount en el Label8
If MSComm1.OutBufferCount = 0 Then 'Si OutBufferCount = 0 detiene el Timer1
Timer1.Enabled = False
End If
End Sub

Con esto al menos se ve decremento siempre que hayan bastantes datos a enviar y a una baja velocidad, y eso ya que el decremento se ve asi:
100, 74, 61, 35, 27, 0

... algo asi se muestra, buno es mejor que nada. Gracias PalitroqueZ.


Javicho.

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Leer OutBufferCount
« Respuesta #7 en: 14 de Septiembre de 2010, 22:59:02 »
jeje sip, ese es el problemita cuando se trabaja con el timer a valores menores a 50ms

y además que cuenta el hecho del período de latencia entre el UART<->msvbvm60.dll<->mscomm32.ocx<->aplicación


La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: Leer OutBufferCount
« Respuesta #8 en: 15 de Septiembre de 2010, 11:25:30 »
Saludos:

Si pues debe ser la razón de un lenguaje de alto nivel, hay procesan en las aplicaciones que toman su tiempo. Gracias de todas maneras.

Javicho.


 

anything