Buenas noches
Ante todo saludarlos y agradecerles la atencion prestada al siguiente problema:
- Me dieron de prueba un GPS sierra MP750, son viejitos pero bastante robustos.
- Estoy analizando la trama de dichos aparejos y viene de la siguiente manera:
>RLNAAAAABBBSCCDDDDDDDSEEEFFFFFFFSGGGGGGHHIIIJSKKKLMMMNOOPPQQ……PPQQRRRRRRRRRRXT<
la que yo recibo es la siguiente:
>RLN86050000+047397322-0740295031+008472670000+0000000006036711041308206923623224000000000012;ID=G100;*33
que traduce:
RLN;TIME;LAT;LON;ALTURA;VEL H;VEL V;;SAT;;;;;;;ID;
Despues de tanto "cacharear" logre hacer el siguiente "script" para organizar la informacion almacenada en un archivo plano.
#1 Escanea puerto udp por 240 segundos y genera archivo plano****problemas no escanea
nc -ul 5005 -w 240 > gps.1
#2 Organiza Archivo gps.1 archivo
cat gps.1 | tr '<>' '\012' > gps.2
#3 Esperar 235 segundos y volver con el PASO1 ****No pierde trama del paso 4
#4 Escanea puerto udp por 240 segundos genera archivo plano****problemas no escanea
nc -ul 5005 -w 240 > gps.3
#5 Organiza Archivo gps.3
cat gps.3 | tr '<>' '\012' > gps.4
#6 Esperar 235 segundos y volver con el PASO4****No pierde trama del paso 1
#7 Suma los dos archivos
cat gps.2 gps.4 |tr -s "\n*" > gps_db
#9 Quitar lineas en blanco
sed '/^$/d' gps_db > gps_db1
#7 borrar ;
cat gps_db1 | tr ';' ' ' > gps_db2
#8 mover columna ID al incio de la fila
awk '{ print $2, $1, $3}' gps_db2 > gps_db3
#9 quitar espacios
cat gps_db3 | tr ' ' '-' > gps_db4
#10 insertar tabuladores en las filas*****Problema
#11 borrar filas duplicadas.
#12 Organizar tabla cronologicamente Columna TIME. Usar Sort -u
despues de todo este proceso la fila que sale es la siguiente.
ID=G100-RLN83505000+047397197-0740295104+008497550000+0000000006066911041913206923623224000000000012-*39
Hasta aqui logre llegar claro esta todavia tengo dos problemas los cuales creo que con su colaboracion llegare a buen puerto:
- El primero es lograr que el archivo nc escuche en el puerto udp por 240 segundo, he tratado por todos los medio y la unica forma es cuando esta acompañanda con -l pero si es asi el comado -w (timeout) no funciona.
- El segundo problema es que la trama no tiene ningun tipo de delimitador de campo, la delimitacion se hace de acuerdo a la posicion de cada caracter. Segun se puede observar. He tratado con cut, awk y todos sus amigos. Pero no he podido.
Como se podran dar cuenta no soy programador y acepto todas las criticas de una forma que yo pueda entender....jajajajaja. Espero que exista una alma que se apiade de mi.....
Saludos
Gianni
Ps: y eso que todavia tengo que subir todo a la base de datos y montarlo a google map.