Luego vamos a subir documentación detallada en una nota de
aplicación sobre las nueva interfaz, pero para que puedas
ir utilizando, te paso una breve reseña de las nuevas
funciones del cliente TCP (a modo preliminar).
TcpClInit(ServerIP, ServerPort=9999, Timeout=30)
Inicializa/Configura cliente TCP.
Entradas:
- ServerIP = Direccion IP del servidor.
- ServerPort = Puerto TCP del servidor.
- Timeout = Tiempo para esperar una respuesta del servidor
en segundos (max. 125). Solo valido si el cliente se conecta
al server, de otra forma el timeout es de 60 segundos.
Retorno:
- ( 0 ) = Operacion exitosa.
- ( -1 ) = Error, Falla en inicializacion.
- ( -10 ) = Error, cliente conectado, desconectar antes.
Las siguientes dos funciones, activan los eventos
para recepcion y transmision.
TcpClSetRxEvent()
TcpClSetTxEvent()
Retorno:
- ( 0 ) = Operacion exitosa.
- ( -1 ) = Error, el evento no pudo ser activado.
Hay dos eventos asincronicos:
@OnTcpClientRx() y @OnTcpClientTx(),
podes utilizarlos para obtener los estados de la conexión
o datos recibidos.
TcpClClose()
Cierra la conexion actual.
Retorno:
- ( 0 ) = Conexion cerrada con exito.
- ( -1 ) = Error, cliente no conectado.
- ( -2 ) = Error, no hay conexion asignada.
- ( -4 ) = Error, la libreria no fue inicializada.
TcpClSend(Data[], Length=1, Pack=0)
Envia datos al servidor.
Entradas:
- Data[] = Array de valores para enviar.
- Length = Numero de bytes a enviar.
- Pack = Si es 1, los datos estan empaquetados (4 bytes por entero) en el array.
Retorno:
- ( 0 ) = Operacion exitosa.
- ( -1 ) = Error, libreria ocupada.
- ( -2 ) = Error, conexion no asignada.
- ( -4 ) = Error, la libreria no fue inicializada.
- ( -10 ) = Error, direccion de array erronea.
- ( -20 ) = Error, valor de Length invalido.
TcpClGetRxLength()
Obtiene la cantidad de datos no leidos y recibidos.
Retorno:
- ( >0 ) = Numero de bytes recibidos.
- ( 0 ) = No hay datos sin leer o recibidos.
- ( -1 ) = Error, no hay datos disponibles, comprobar conexion.
- ( -4 ) = Error, la libreria no fue inicializada.
TcpClGetRxData(Data[], Index=0, Max=1, Pack=0)
Obtiene los datos recibidos y no leidos.
Entradas:
- Data[] = Array donde los valores seran copiados.
- Index = Indice del array donde la copia comienza.
- Max = Numero de bytes a copiar (max. 50).
Si es 0, copia todos los bytes recibidos (asegurar que array
tiene el tamaño suficiente).
- Pack = Si es 1, los 4 bytes de datos seran empaquetados en cada elemento
del array.
Retorno:
- ( 0 ) = Operacion exitosa.
- ( -1 ) = Error, no hay datos disponibles para copiar.
- ( -2 ) = Valor de Max es invalido.
- ( -4 ) = Direccion de Data es erronea.
TcpClConnect()
Solo se conecta al servidor. No es necesario utilizarla para enviar
datos al servidor con TcpClSend(), ya que el cliente se conecta
automaticamente.
Retorno:
- ( 0 ) = Operacion exitosa.
- ( -1 ) = Error, libreria ocupada.
- ( -2 ) = Error, conexion no asignada.
- ( -4 ) = Error, la libreria no fue inicializada.
TcpClGetLibStatus()
Obtiene el estado de la libreria, muy util para determinar si existe
un error en la conexion (en general numeros negativos)
Los posibles valores son:
TCPCL_STAT_TRY_TO_SEND (127) // Intentando enviar datos.
TCPCL_STAT_LIB_NOT_INIT (126) // Libreria no inicializada.
TCPCL_STAT_INITIALIZED (124) // La libreria fue inicializada.
TCPCL_STAT_CLOSED (123) // Conexion cerrada por el cliente.
TCPCL_STAT_SEND_OK (122) // Datos transmitidos con exito.
TCPCL_STAT_OK (0) // Libreria OK/Lista, datos transmitidos.
TCPCL_STAT_ERR_ABORTED (-1) // Error, conexion abortada.
TCPCL_STAT_ERR_CONN_TO (-2) // Error, conexion timeout.
TCPCL_STAT_ERR_CLOSED (-3) // Error, conexion cerrada por el host.
TCPCL_STAT_ERR_TO (-4) // Error, timeout en transaccion.
TCPCL_STAT_ERR_ALLOC (-5) // Error, no se pudo asignar conexion.
TCPCL_STAT_ERR_FUNC (-6) // Error, error interno.