Envie dados do GPS ao UDP no modo de transmissão com Socat

1

MUPLEX é um script do Linux usando SOCAT que pode misturar diferentes fluxos de entrada de dados NMEA seriais reais ou emulados e compartilhá-los entre vários aplicativos usando portas seriais virtuais e / ou TCP. Agora eu enviaria dados para muitos terminais no modo de transmissão UDP; Eu tentei muitas combinações de endereço / opções e procure por exemplos da Web, mas sem resultado.

ex de uma forma simples:

# parameters port for standard NMEA
params_port="b4800,raw,clocal=1,cs8,cstopb=0,parenb=0,crtscts=0,echo=0,icanon"
# GPS port
dev_gps=/dev/ttyUSB0

# network is 192.168.127.0, GPS is on the 192.168.127.1 machine
# testing broadcast
# first enable ping
echo 0 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
ping -c5 -b 192.168.127.255
# result OK

# send datas to 10110 UDP port
socat -d -v FILE:$dev_gps,$params_port UDP4-DATAGRAM:192.168.127.255:10110,broadcast

Não há erros, mas quaisquer dados do lado do cliente com:

netcat -u 192.168.127.1 10110

ou

socat -d UDP:192.168.127.1:10110 -

Se alguém tiver a solução, ele é bem-vindo!

O script completo do Muplex está ativado: link

    
por Frank Marinux 20.02.2017 / 13:32

1 resposta

2

Eu lembro de ter um problema semelhante, e a solução foi usar a sintaxe "multicast", por exemplo: socat -d -v FILE:$dev_gps,$params_port UDP4-RECVFROM:10110,ip-add-membership=224.1.0.1:192.168.127.10,fork

Recebendo final, socat UDP4-DATAGRAM:224.1.0.1:10110,range=192.168.127.0/24 -

Acho que o x.x.x.255 foi silenciosamente descartado, mas vou ter que procurar para ter certeza.

    
por 20.02.2017 / 21:22