![]() |
|
|
|
| VHF: Canal 77 |    | ![]() |
![]() |
![]() |
![]() |
![]() |
|
|
|
#1
|
||||
|
||||
|
Cita:
He estado pensando un poco y la solución podría ser:
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
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
|
| 2 Cofrades agradecieron a gilinas este mensaje: | ||
Diavolo (27-10-2014) | ||
|
#2
|
||||
|
||||
|
Cita:
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. |
|
#3
|
||||
|
||||
|
Cita:
y no arraque. Deberia de pasar de esa conexion y continuar con el proceso. ¿no?
__________________
MMSI: 205907310 Callsign: OR9073 |
|
#4
|
||||
|
||||
|
Cita:
[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. |
| Los siguientes cofrades agradecieron este mensaje a | ||
Diavolo (28-10-2014) | ||
|
#5
|
||||
|
||||
|
Cita:
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 |
|
#6
|
||||
|
||||
|
Cita:
|
|
#7
|
||||
|
||||
|
__________________
MMSI: 205907310 Callsign: OR9073 |
![]() |
Ver todos los foros en uno |
| Herramientas | |
| Estilo | |
|
|