La Taberna del Puerto Sergio Ponce
"Se navega por los astros, por la mar, por la tierra, por las gentes, por los sentimientos...Se navega." Altair
VHF: Canal 77   
Regresar   La Taberna del Puerto > Foro > Foros Náuticos > Foro Náutico Deportivo

Avisos

Responder
 
Herramientas Estilo
  #1  
Antiguo 27-10-2014, 16:38
Avatar de gilinas
gilinas gilinas esta desconectado
Corsario
 
Registrado: 11-12-2006
Localización: Indignao por los Golfos de Valencia
Edad: 64
Mensajes: 1,759
Agradecimientos que ha otorgado: 849
Recibió 754 Agradecimientos en 335 Mensajes
Sexo:
Predeterminado Respuesta: Re: Respuesta: SailPi Navegando con Raspberry Pi

Cita:
Originalmente publicado por Diavolo Ver mensaje
Con ShippingExplorer he hablado y mas que hablado, que solo acepta conexiones UDP, no TCP. Ya le comenté a ellos, que un servidor puerto de serie, puedo enviar datos a varias IP en modo TCP o UDP, pero Todas con el mismo tipo de conexion, por ello usaba un servidor de serie unica y exclusivamente para mi como servidor de serie TCP, para IPad, PC, y de mas, otro para enviar UDP como cliente a Marinetraffic, ShippingExplorer y el de Localizatodo aparte para ellos.

Ahora voy a poner la Fresa, y el servidor de Localizatodo, y todo lo demás va a ir fuera.

Al final voy a optar por poner Kplex TCP en modo server a la fresa, y Marinetraffic (que ya hemos probado que funciona), y desde casa a ShippingExplorer. Localizatodo voy a mantener el Servidor de ellos (Micro-Pc), de todas formas es el mas pequeño que tengo y fácil de ocultar.
Hola
He estado pensando un poco y la solución podría ser:
  1. Poner el kplex para que envíe por TCP como server
  2. hacer un programa que se conecte como cliente al TCP del kplex y que lo reenvíe por UDP a la dirección y puerto de ShippingExplore
El programa (en python) podría ser algo así:

Código:
#!/usr/bin/python 

import socket
import argparse

parser = argparse.ArgumentParser(description='Reenvia por UDP lo que recibe por TCP')
parser.add_argument('UDPhost', 
                   help='host destino del UDP')
parser.add_argument('UDPport', type=int,
                   help='puerto UDP')
parser.add_argument('--TCPhost', default='localhost', 
                   help='host fuente TCP (localhost por defecto)')
parser.add_argument('--TCPport', type=int, default=10110,
                   help='puerto TCP (10110 por defecto)')
args = parser.parse_args()

tcps = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcps.connect((args.TCPhost, args.TCPport))
tcpin=tcps.makefile()
udps = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while 1:
    lineaNMEA=tcpin.readline()
    udps.sendto(lineaNMEA, (args.UDPhost, args.UDPport))
tcpin.close
tcps.close
udps.close
lo salvas a un fichero.py (ShippingExplore.py por ejemplo)
y lo invocas como:

>python ShippingExplore.py UDPhost UDPport
donde:
UDPhost es el servidor de ShippingExplore y
UDPport el puerto de ShippingExplore

El programa supone por defecto que puede conectarse a kplex en localhost y el puerto 10110, si no es así, admite cambiarlos con
--TCPhost <dirección_servidor_TCP>
--TCPport <puerto_servidor_UDP>




Espero que te sirva
Se podría mejorar añadiendo gestión de excepciones ...
__________________
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
El mar es de TODOS.
Lo que es de TODOS, NO ES MÍO.


"No hay nada como el MAR"
Tinico N'Hielo
Citar y responder
2 Cofrades agradecieron a gilinas este mensaje:
Diavolo (27-10-2014)
  #2  
Antiguo 27-10-2014, 18:14
Avatar de Diavolo
Diavolo Diavolo esta desconectado
Capitán pirata
 
Registrado: 29-05-2008
Localización: Mediterraneo
Edad: 58
Mensajes: 503
Agradecimientos que ha otorgado: 293
Recibió 114 Agradecimientos en 85 Mensajes
Sexo:
Predeterminado SailPi Navegando con Raspberry Pi

Cita:
Originalmente publicado por gilinas Ver mensaje
Hola
He estado pensando un poco y la solución podría ser:
  1. Poner el kplex para que envíe por TCP como server
  2. hacer un programa que se conecte como cliente al TCP del kplex y que lo reenvíe por UDP a la dirección y puerto de ShippingExplore
El programa (en python) podría ser algo así:

Código:
#!/usr/bin/python 

import socket
import argparse

parser = argparse.ArgumentParser(description='Reenvia por UDP lo que recibe por TCP')
parser.add_argument('UDPhost', 
                   help='host destino del UDP')
parser.add_argument('UDPport', type=int,
                   help='puerto UDP')
parser.add_argument('--TCPhost', default='localhost', 
                   help='host fuente TCP (localhost por defecto)')
parser.add_argument('--TCPport', type=int, default=10110,
                   help='puerto TCP (10110 por defecto)')
args = parser.parse_args()

tcps = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcps.connect((args.TCPhost, args.TCPport))
tcpin=tcps.makefile()
udps = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while 1:
    lineaNMEA=tcpin.readline()
    udps.sendto(lineaNMEA, (args.UDPhost, args.UDPport))
tcpin.close
tcps.close
udps.close
lo salvas a un fichero.py (ShippingExplore.py por ejemplo)
y lo invocas como:

>python ShippingExplore.py UDPhost UDPport
donde:
UDPhost es el servidor de ShippingExplore y
UDPport el puerto de ShippingExplore

El programa supone por defecto que puede conectarse a kplex en localhost y el puerto 10110, si no es así, admite cambiarlos con
--TCPhost <dirección_servidor_TCP>
--TCPport <puerto_servidor_UDP>




Espero que te sirva
Se podría mejorar añadiendo gestión de excepciones ...

Ya esta instalado pero no funciona, edito: Kplex si arranca al iniciar.
El caso es que tengo abierto el puerto en casa tcp y lo configuró de la misma forma que Marinetraffic, exceptuando los filtros, y me da error kplex, me dice que no se puede conectar a la ip bme.ole32.com/5432 y no he cometido ningún error.

EDITO: SHIPPINGEXPLORER, NO FUNCIONA, al desconectarlo de casa, con el ais que tengo, deja de funcionar. A ver si instalo el nuevo moden router con Pepephone, y accedeis vosotros a la fresa, lo que si funciona es Marinetraffic con Kplex, y opencpn

Enviado desde mi iPone5 con TaPaTa
__________________
MMSI: 205907310
Callsign: OR9073

Editado por Diavolo en 27-10-2014 a las 20:49.
Citar y responder
  #3  
Antiguo 27-10-2014, 21:01
Avatar de Diavolo
Diavolo Diavolo esta desconectado
Capitán pirata
 
Registrado: 29-05-2008
Localización: Mediterraneo
Edad: 58
Mensajes: 503
Agradecimientos que ha otorgado: 293
Recibió 114 Agradecimientos en 85 Mensajes
Sexo:
Predeterminado Re: SailPi Navegando con Raspberry Pi

Cita:
Originalmente publicado por Diavolo Ver mensaje
Ya esta instalado pero no funciona, edito: Kplex si arranca al iniciar.
El caso es que tengo abierto el puerto en casa tcp y lo configuró de la misma forma que Marinetraffic, exceptuando los filtros, y me da error kplex, me dice que no se puede conectar a la ip bme.ole32.com/5432 y no he cometido ningún error.

EDITO: SHIPPINGEXPLORER, NO FUNCIONA, al desconectarlo de casa, con el ais que tengo, deja de funcionar. A ver si instalo el nuevo moden router con Pepephone, y accedeis vosotros a la fresa, lo que si funciona es Marinetraffic con Kplex, y opencpn

Enviado desde mi iPone5 con TaPaTa
Me autocito. Una pregunta, si configuro una conexión tcp client en la fresa direccionada a mi casa, en casa debo de tener un servidor tcp, osea configuro opencpn para aceptar conexiones entrantes por el susodicho puerto, aparte de redireccionar al equipo donde tengo opencpn en el router. ¿o no vale?, por ese motivo no creo que Kplex no de el error que da.
y no arraque. Deberia de pasar de esa conexion y continuar con el proceso. ¿no?
__________________
MMSI: 205907310
Callsign: OR9073
Citar y responder
  #4  
Antiguo 28-10-2014, 00:00
Avatar de ...
...
Invitado
 
Mensajes: n/a
Predeterminado Re: SailPi Navegando con Raspberry Pi

Cita:
Originalmente publicado por Diavolo Ver mensaje
Me autocito. Una pregunta, si configuro una conexión tcp client en la fresa direccionada a mi casa, en casa debo de tener un servidor tcp, osea configuro opencpn para aceptar conexiones entrantes por el susodicho puerto, aparte de redireccionar al equipo donde tengo opencpn en el router. ¿o no vale?, por ese motivo no creo que Kplex no de el error que da.
y no arraque. Deberia de pasar de esa conexion y continuar con el proceso. ¿no?
Como te comenté, es mejor preparar la Frambuesa como servidor universal.

[tcp]
mode=server
port=10110

Esto es como decir: A cualquiera que entre llamando a la puerta 10110 sirvele los datos NMEA.

Y basta que tu ordenador de casa ------> se conecte a la Frambuesa y ella le envía los datos. Es exactamente lo que hace Olaje pero el en el puerto 951.

En las pruebas del otro día lo que hice es que opencpn en tu casa enviara los datos en forma UDP a mi ip pública-------->[mi ip].

Después en mi opencpn de casa lo ajusté para que recibiera los datos UDP pero no poniendo la ip de tu dispositivo si no también mi ip publica.

opencpn <-----[mi ip] Y así funcionó.

Todo esto lo hice con opencpn, kplex no envía datos UDP fuera de la red interna.

Ademas es un rollo enviar los datos de ip en ip. Cuesta trabajo de cpu y no se cuan bien funcionaria usando TCP. Por ejemplo, acabo de intentar enviar datos a marinetraffic usando la ip de ellos y funciona. Pero también he intentado enviarlos a tu ip tanto en bme.ole32.com como Usando tu ip pública 79.144.89.82 y en ambos casos da error como si tu dispositivo no aceptara la conexión.

Por otro lado con UDP se pierden algunos paquetes.
Ademas hay que premeditar las conexiones de antemano y no se pueden espontanear según lo requerido.

Lo mejor:

[tcp]
mode=server
port=10110

Y conectando tu pc de casa a la ip del barco puerto 10110 recibes todo. Si ademas estas en el trabajo y conectas tu teléfono a la ip del barco puerto 10110 también recibirás.

O, por ejemplo, tienes una tableta en red local y conectando a localhost puerto 10110 también recibes los datos.

La Raspberry ira creando conexiones nuevas cuando se le requiera y cerrando las que se cortan mientras su CPU de de si.

Lo que necesitas,para que todo rule desde el barco, es una conexión 3g con ip pública para que puedas enviar y recibir sin bloqueos.
Ahora que ya tienes Pepephone ese problema está resuelto, pero como siempre los angelitos de Orange te han bloqueado el dispositivo.

Recuerda, si no lo liberas siempre puedes usar un pincho 3g libre. He hallado un modo bastante sencillo de hacerlo funcionar con pepephone.

Otra opción es usar un móvil Android libre y se puede conectar por wifi, e incluso he hallado la forma de conectar el mio (Android 4.2) por cable.

Como siempre, es con los dispositivos por donde te tienen las compañías telefonicas cogido por las .... nueces.

¿Tienes alguno libre?

Editado por ... en 28-10-2014 a las 00:37.
Citar y responder
Los siguientes cofrades agradecieron este mensaje a
Diavolo (28-10-2014)
  #5  
Antiguo 28-10-2014, 08:08
Avatar de Diavolo
Diavolo Diavolo esta desconectado
Capitán pirata
 
Registrado: 29-05-2008
Localización: Mediterraneo
Edad: 58
Mensajes: 503
Agradecimientos que ha otorgado: 293
Recibió 114 Agradecimientos en 85 Mensajes
Sexo:
Predeterminado SailPi Navegando con Raspberry Pi

Cita:
Originalmente publicado por pinguino Ver mensaje
Como te comenté, es mejor preparar la Frambuesa como servidor universal.

[tcp]
mode=server
port=10110

Esto es como decir: A cualquiera que entre llamando a la puerta 10110 sirvele los datos NMEA.

Y basta que tu ordenador de casa ------> se conecte a la Frambuesa y ella le envía los datos. Es exactamente lo que hace Olaje pero el en el puerto 951.

En las pruebas del otro día lo que hice es que opencpn en tu casa enviara los datos en forma UDP a mi ip pública-------->[mi ip].

Después en mi opencpn de casa lo ajusté para que recibiera los datos UDP pero no poniendo la ip de tu dispositivo si no también mi ip publica.

opencpn <-----[mi ip] Y así funcionó.

Todo esto lo hice con opencpn, kplex no envía datos UDP fuera de la red interna.

Ademas es un rollo enviar los datos de ip en ip. Cuesta trabajo de cpu y no se cuan bien funcionaria usando TCP. Por ejemplo, acabo de intentar enviar datos a marinetraffic usando la ip de ellos y funciona. Pero también he intentado enviarlos a tu ip tanto en bme.ole32.com como Usando tu ip pública 79.144.89.82 y en ambos casos da error como si tu dispositivo no aceptara la conexión.

Por otro lado con UDP se pierden algunos paquetes.
Ademas hay que premeditar las conexiones de antemano y no se pueden espontanear según lo requerido.

Lo mejor:

[tcp]
mode=server
port=10110

Y conectando tu pc de casa a la ip del barco puerto 10110 recibes todo. Si ademas estas en el trabajo y conectas tu teléfono a la ip del barco puerto 10110 también recibirás.

O, por ejemplo, tienes una tableta en red local y conectando a localhost puerto 10110 también recibes los datos.

La Raspberry ira creando conexiones nuevas cuando se le requiera y cerrando las que se cortan mientras su CPU de de si.

Lo que necesitas,para que todo rule desde el barco, es una conexión 3g con ip pública para que puedas enviar y recibir sin bloqueos.
Ahora que ya tienes Pepephone ese problema está resuelto, pero como siempre los angelitos de Orange te han bloqueado el dispositivo.

Recuerda, si no lo liberas siempre puedes usar un pincho 3g libre. He hallado un modo bastante sencillo de hacerlo funcionar con pepephone.

Otra opción es usar un móvil Android libre y se puede conectar por wifi, e incluso he hallado la forma de conectar el mio (Android 4.2) por cable.

Como siempre, es con los dispositivos por donde te tienen las compañías telefonicas cogido por las .... nueces.

¿Tienes alguno libre?

Ya he comprado un router wifi con un pincho, que recibiré mañana, creo. Hablado con Orange, con huawei sat españa. Y lo que más me fastidia es que habiéndolo pagado a Orange, ósea de mi propiedad, y capado por Orange, no hay posibilidad de liberarlo. Orange me da el código de desbloqueo. Pero el firmware del aparato es de Orange, y el de Vodafone no me va a funcionar, según huawei sat, este aparato sólo se vendió a estas 2 empresas, y no al público, por lo que no hay firmware libre.

El miércoles haré lo que tengo previsto, y haré más pruebas con el programita de gilinas, desconectando antes en casa para asegurarme bien de que shippingexplorer funciona.


Enviado desde mi iPone5 con TaPaTa
__________________
MMSI: 205907310
Callsign: OR9073
Citar y responder
  #6  
Antiguo 28-10-2014, 09:36
Avatar de ...
...
Invitado
 
Mensajes: n/a
Predeterminado Re: SailPi Navegando con Raspberry Pi

Cita:
Originalmente publicado por Diavolo Ver mensaje
Ya he comprado un router wifi con un pincho, que recibiré mañana, creo. Hablado con Orange, con huawei sat españa. Y lo que más me fastidia es que habiéndolo pagado a Orange, ósea de mi propiedad, y capado por Orange, no hay posibilidad de liberarlo. Orange me da el código de desbloqueo. Pero el firmware del aparato es de Orange, y el de Vodafone no me va a funcionar, según huawei sat, este aparato sólo se vendió a estas 2 empresas, y no al público, por lo que no hay firmware libre.

El miércoles haré lo que tengo previsto, y haré más pruebas con el programita de gilinas, desconectando antes en casa para asegurarme bien de que shippingexplorer funciona.


Enviado desde mi iPone5 con TaPaTa
¿Que modelo de router es el que no puedes liberar?
Citar y responder
  #7  
Antiguo 28-10-2014, 10:19
Avatar de Diavolo
Diavolo Diavolo esta desconectado
Capitán pirata
 
Registrado: 29-05-2008
Localización: Mediterraneo
Edad: 58
Mensajes: 503
Agradecimientos que ha otorgado: 293
Recibió 114 Agradecimientos en 85 Mensajes
Sexo:
Predeterminado Re: SailPi Navegando con Raspberry Pi

Cita:
Originalmente publicado por pinguino Ver mensaje
¿Que modelo de router es el que no puedes liberar?
Un Huawei B970b como este
http://www.youtube.com/watch?v=4BujUwyzvX0

pero de orange.
__________________
MMSI: 205907310
Callsign: OR9073
Citar y responder
Responder Ver todos los foros en uno

Sergio Ponce

Herramientas
Estilo

Reglas del foro
No puedes crear discusiones
No puedes responder a mensajes
No puedes editar tus adjuntos
No puedes editar tus mensajes

BB code está activado
Emoticonos está activado
El código [IMG] está activado
El código HTML está desactivado
Ir a


Todas las horas son GMT +1. La hora es 18:44.


Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
© La Taberna del Puerto