Menu

#1 Pequeños problemas

open
nobody
None
5
2006-05-05
2006-05-05
No

He probado la versión 0.3, que me permite por fin
operar contra DS200 (y por tanto, la comodidad de
hacer las pruebas en casa). He aquí dos pequeños
problemas:

- DSRouter no registra en el log, ni hace broadcast
del Inicio de Pausa, Fin de Pausa ni de la pulsación
del GO que aborta la carrera. En el log hay una
entrada en blanco para estos eventos, con fecha y hora
solamente. Las he comentado dentro del mismo log.
Están hacia el final del archivo.

- Hay un mensaje de error recurrente (SendData -
IOException = 'Unable to write data to the transport
connection.' en socket ..), que corresponde a la
siguiente circunstancia (sobre programa en VBasic, con
Winsock). El winsock cliente ha sido cerrado
(Winsock.Close), el programa ha terminado su
ejecución, el programa se ha vuelto a reiniciar y el
winsock cliente se ha conectado con DSRouter A TRAVES
DE OTRO LOCALPORT. La razón de cambiar el LocalPort es
porque rara vez o ninguna la conexión se produce
reutilizando el mismo LocalPort de la conexión
anterior. (Quizás no utilizo el procedimiento adecuado
para retomar la conexión)

A pesar del mensaje de error en el log, la conexión
establecida funciona correctamente CASI SIEMPRE. En
una ocasión, los datos no llegaron, y eso fue lo que
me llevó a fijarme en el error en el log.

La conexión la realizo mediante el siguiente bucle:

Winsock1.RemoteHost = Winsock1.LocalIP
Winsock1.RemotePort = 7000
Winsock1.LocalPort = 7001

On Error Resume Next

While Winsock1.State <> sckConnected
Winsock1.Close
Winsock1.Connect
pausa = Timer
While Winsock1.State = sckConnecting And
(pausa + 3) > Timer
DoEvents
Wend
If Winsock1.State = sckConnected Then
MsgBox ("Conectado por el Puerto " + Format
(Winsock1.LocalPort))
Else
resp = MsgBox("No hay conexión con
DSRouter por el puerto " + Format(Winsock1.LocalPort),
vbOKCancel)
If resp <> vbOK Then
Unload Me
Exit Sub
End If
Winsock1.Close
Winsock1.LocalPort = Winsock1.LocalPort + 1
End If
Wend

Discussion

  • Felipe Martin

    Felipe Martin - 2006-05-05

    Log de pruebas

     
  • Nobody/Anonymous

    Logged In: NO

    El tema del LocalPort es mucho menos crítico sobre Windows
    2000 (el s.o. del PC del club). Prácticamente, la conexión
    al DSRouter funcionó a la primera casi siempre reutilizando
    el mismo puerto de la conexión anterior, y en algunos casos
    a la segunda, reutilizando un segundo puerto. Cuando la
    conexión fue rechazada, sobre Windows 2000, hubo un evento
    de error en el control Winsock. En Windows 98 (lo siento,
    ser tan antiguo) no hubo en ningún caso evento de error.

    Muy fiable el funcionamiento del DSRouter. Varias horas de
    funcionamiento, sin problemas, con varios coches en la
    pista. Rápido: el programa cliente registraba el paso de los
    coches instantáneamente, sin demoras.

    Registrar los eventos de Inicio y Fin de Pausa, y el de
    Carrera Abortada, me parece imprescindible.

     
  • roliva

    roliva - 2006-05-06

    Logged In: YES
    user_id=1469844

    Los comandos de Pausa y de carrera abortada no estan
    implementados en el proctocolo. Me pondre con ello lo antes
    posible.
    Sobre lo segundo que comentas lo probare para detectar el
    problema.

    Muchas gracias! Te mantendre informado de todo
    Un saludo
    Roberto

     

Log in to post a comment.

MongoDB Logo MongoDB