Hola,
estoy intentando mandar datos de la estación al CWOP (Citizen Weather Observation Program, parte del ARPS) mediante telnet. Es decir, he pasado de programas comerciales y he modificado un script en perl que enviaba datos a Weatherunderground. El problema es que no hay manera de que me acepte los datos, ni mediante el script de perl ni manualmente haciendo un telnet.
Manualmente obtengo esto:
telnet arizona.aprs2.net
Trying 206.123.154.98...
Connected to arizona.aprs2.net (206.123.154.98).
Escape character is '^]'.
# javAPRSSrvr 3.10b09
user CW4214 pass -1 vers linux-wx2000-2
CW4214>APRS,TCPXX*:@252138z4035.58N/00154.40W_030/a000g000t021r000p000h00b10170linux
# javAPRSSrvr 3.10b09 25 Jan 2006 21:52:05 GMT T2WXCWOP 206.123.154.98:23
o esto otro:
telnet arizona.aprs2.net
Trying 206.123.154.98...
Connected to arizona.aprs2.net (206.123.154.98).
Escape character is '^]'.
# javAPRSSrvr 3.10b09
user CW4214 pass -1 vers linux-wx2000-2
# javAPRSSrvr 3.10b09 25 Jan 2006 21:54:28 GMT T2WXCWOP 206.123.154.98:23
CW4214>APRS,TCPXX*:@252154z4035.58N/00154.40W_060/a000g000t020r000p000h00b10170linux
# javAPRSSrvr 3.10b09 25 Jan 2006 21:54:48 GMT T2WXCWOP 206.123.154.98:23
O cosas similares.
os pongo el trozo de código perl para enviar los datos. la variable $res contiene la cadena con los datos (algo así: CW4214>APRS,TCPXX*:@252154z4035.58N/00154.40W_060/a000g000t020r000p000h00b10170linux)
$telnet = new Net::Telnet ( Timeout=>10,
Errmode=>'die');
print("Abrimos: is0grb.ods.org\n");
$telnet->open('arizona.aprs2.net');
$output=$telnet->get;
print "\n$output";
print "Mandamos: user CW4214 pass -1 vers linux-wx2000-2\r\n";
$telnet->print ("user CW4214 pass -1 vers linux-wx2000-2\r\n");
$output=$telnet->get;
print "$output";
sleep 3;
print("Mandamos: $res\r\n");
$telnet->print("$res\r");
#print $res;
$output=$telnet->get;
print "$output";
$telnet -> close;
Pero el resultado es algo así:
# javAPRSSrvr 3.10b09
Mandamos: user CW4214 pass -1 vers linux-wx2000-2
# logresp CW4214 unverified, server T2WXCWOP
Mandamos: CW4214>APRS,TCPXX*:@252158z4035.58N/00154.40W_060/a000g000t020r000p000h00b10170linux
read timed-out at ws2000toaprs line 494
o cosas similares (lo he cambiado muchas veces y probado tropecientas).
¿alguien sabe cómo se mandan estos datos? es decir, la secuencia correcta. Conectarse al servidor, cuando se obtiene la respuesta X mandar user..., esperar la siguiente respuesta o mandar inmediatamente los datos....
Gracias