Repository navigation
Releases: caradag/glaciotools-android
Release list
v2.3 -- Explicacion, zoom arreglado y seleccion multiple
El zoom, arreglado
Arrastrar estando acercado apenas movia nada. Era un error de aritmetica: a zoom 10 el contenido se movia la decima parte de lo que se movia el dedo. Ahora sigue al dedo exactamente, a cualquier zoom. De paso se corrigio un segundo desfase que estaba escondido: incluso sin zoom, el contenido de la nube se movia al 60 % de la velocidad del dedo.
El grafico de altitud ya acerca en los dos ejes. El vertical estaba fijo, que era justo el que interesa mirar de cerca: la dispersion son decimetros sobre un rango de metros.
Un icono de informacion
En la lista y en la pantalla de medir, con el metodo explicado en lenguaje llano: por que promediar sirve, por que un arreglo pesa mas que otro, por que se descartan los disparates, la diferencia entre sd y ± est., por que mil arreglos en veinte minutos no son mil datos, y por que volver otro dia vale mas que quedarse una hora.
Incluye que es la MAD: la mediana de las distancias de cada valor a la mediana. Se usa en vez de la desviacion tipica porque a la desviacion tipica la arrastran los mismos disparates que se quieren encontrar — un arreglo a 500 m la infla tanto que despues nada parece raro.
Y dice tambien lo que el numero no cubre: ± est. supone que lo que queda se promedia, y un sesgo sistematico no se promedia por mucho que uno espere.
Seleccion multiple
Casilla a la izquierda de cada punto. Con algo marcado aparece una barra con Exportar y Borrar, y hay un Select all al pie.
Exportar varios da solo las soluciones finales, una fila o un waypoint por punto. El cuadro pregunta el formato y el nombre del fichero; la carpeta se elige en el cuadro del sistema.
Nada cambia en lo de la placa.
v2.2 -- GPS: ponderacion por calidad y por sesiones
Arreglos
- Pausa ya no pierde nada. Reanudar conservaba el punto pero tiraba las medidas; ahora sigue sobre la misma nube.
- Fuera el boton Done. Save and finish guarda y vuelve a la lista. Queda un Discard para salir tirando lo que haya.
- Se retira una afirmacion falsa. La nota decia que la desviacion tipica "no se achica". No es cierto: describe el ruido del receptor, y lo normal es que baje segun se asienta, porque los primeros arreglos suelen ser los peores.
Graficos
Ejes con nombre y cifras en los dos. Dos dedos acercan, uno arrastra, y hay un boton para volver a la vista completa. Los anillos de la nube llevan escrita su distancia. En el de altitud, el eje horizontal pasa a ser el numero de muestra: con el tiempo, un punto medido en dos visitas separadas por una semana dejaba un desierto vacio con dos rayas en los extremos.
La estimacion ahora pondera
La posicion pasa de mediana a media ponderada por la precision que declara el receptor, con peso 1/sigma². La altitud se pondera con su propia precision vertical, que un GNSS estima peor que la horizontal.
Para no perder la robustez de la mediana, se criban los disparates antes de ponderar (mediana y MAD; fuera lo que se aparte mas de cinco MAD) y las descartadas se cuentan en pantalla. Importa porque un arreglo a cientos de metros a veces viene declarado como preciso, y sin cribado la ponderacion le daria mas peso, no menos.
Sesiones
Mil arreglos en veinte minutos no son mil datos: el error de un GNSS cambia en minutos, no en segundos. Dos visitas en dias distintos, en cambio, ven constelaciones y atmosferas distintas.
Ahora la app mide, de los propios datos, cuanta informacion independiente hay en cada sesion, y combina las sesiones por su peso real. Volver tres dias a medir veinte minutos vale mucho mas que dejar el telefono una hora el primer dia, y la pantalla lo dice: al lado del numero de arreglos aparece cuantos cuentan de verdad.
Los exportados llevan esa informacion: numero de sesiones, n efectivo, descartadas, y la columna de sesion en el fichero de muestras.
Nada cambia en lo de la placa.
v2.1 -- GPS tools, y una pantalla de inicio
GlacioTools deja de ser solo la app de la placa. Ahora abre en un repartidor de herramientas: Connect to a device lleva a lo de siempre (Device y Terminal) y GPS tools a la primera herramienta que no necesita ningun aparato.
Promediar posiciones
Acumula arreglos del GNSS y estima la posicion con mas precision de la que da una lectura suelta. Dos graficos en vivo: la nube horizontal en UTM y la altitud contra el tiempo, con la mediana marcada en los dos y las cifras debajo. Se guarda cuando uno quiere, y se puede volver otro dia a seguir sumando muestras al mismo punto.
Exportacion en CSV o GPX, de la mediana sola o de todas las muestras.
Tres cosas que conviene saber al usarla
Se ensenan tres numeros, no uno. La desviacion tipica (sd) describe al receptor y al sitio, y no baja por mucho que se siga midiendo. La que baja es ± est., la incertidumbre de la mediana. Si solo se mirara la primera, uno esperaria diez minutos, veria el numero quieto y concluiria que promediar no sirve. La segunda es ademas algo optimista: los arreglos sucesivos de un GNSS no son independientes.
Mediana y no promedio. Un GNSS suelta de vez en cuando una posicion a cientos de metros; con el promedio basta una para estropear media hora de trabajo.
La pantalla se queda encendida mientras mide. Android limita las actualizaciones de posicion de una app que no esta en primer plano a unas pocas por hora, asi que con la pantalla apagada la sesion no serviria de nada.
Los puntos viven en la carpeta privada de la app -- no hacen falta permisos de almacenamiento -- y salen de ahi con Exportar.
Nada cambia en lo de la placa: sigue funcionando igual con firmware 3.4.
v2.0 -- Datos en directo
Un boton See live data debajo de la descarga: la placa mide continuamente y la app ensena cada canal en grande, cambiando mientras cambia. Para apuntar la sonda a algo y ver como responde, sin tener que descargar despues para enterarse.
Requiere firmware 3.4. El boton solo aparece si la placa lo entiende; con firmware anterior todo lo demas sigue funcionando igual.
Nada de esto se graba: ni flash, ni contador. El registro sigue con su cadencia y su memoria intactos.
Detalles que importan al usarlo:
- La placa para sola a los diez minutos. Mientras el directo corre, la placa no duerme ni registra, asi que si el telefono se bloquea o el cable se va, vuelve sola a lo suyo. La barra de estado distingue haber parado tu de que se acabara el plazo -- lo segundo significa que hay que volver a pedirlo.
- Al parar, la ultima lectura se queda en pantalla, en gris para que se vea que ya no se esta refrescando.
- Una muestra que llega cortada se descarta entera. Por Bluetooth pasa. Ensenar los campos que si llegaron correria las etiquetas un puesto y el resultado pareceria un dato bueno.
Tambien: las lineas del directo se ven en el terminal, por si hace falta mirarlas en crudo.
v1.9 -- Se despide al desconectar
Tres detalles.
Disconnect manda Q. La consola de la placa se queda escuchando dos minutos despues del ultimo comando, y durante esos dos minutos la placa no graba. Soltar el enlace sin avisar dejaba un agujero en el registro tan largo como la ventana de consola. Ahora la app se despide: la placa contesta Bye y vuelve a medir en el acto.
La barra dice la velocidad de ahora. Durante un volcado rapido por cable la linea sube a 230400 y la barra seguia diciendo 115200 -- justo cuando uno mira ese numero para comprobar que el volcado rapido entro. Ahora dice Cable · 230400 baud · fast dump mientras dura, y vuelve sola al terminar.
La version, en el titulo. En pequeno a la derecha de GlacioTools, siempre a la vista.
Funciona con firmware 3.2 y 3.3.
v1.8 -- El terminal durante un volcado
Durante una descarga el terminal se llenaba de [1 bytes]U[4 bytes]@[2 bytes]05.... El resumen del espia esta pensado para texto con algun byte raro, y un bloque de datos es lo contrario: de los 256 valores de un byte, 95 son ASCII imprimible, asi que uno de cada 2,7 bytes rompia el resumen y salia como un caracter suelto.
Medido contra el simulador, una descarga de 4.000 registros (47 kB): 151 lineas y 133.535 caracteres antes, 2 lineas y 58 caracteres ahora. El terminal ya no crece con la descarga.
Lo que importa no se pierde, se dice mejor y una sola vez:
LOGB 0..3999 · 4000 records · 46.9 kB
LOGB sig=0x100F rec=12 blocks=188 blocksize=256
[dump: 64.0 kB]
[dump: 128.0 kB]
Requiere firmware 3.3 para aprovechar el otro ahorro (los volcados ya no piden el prompt "Waiting commands"), pero funciona igual con 3.2.
v1.7 -- El abort vuelve a parar la placa por cable
El fallo. Por cable, el boton de abortar no paraba nada: la placa seguia volcando la memoria entera. Por Bluetooth funcionaba bien.
Por que. Durante un volcado rapido la placa sube la linea a 230400 baudios y es ahi donde escucha. Al cancelar, la limpieza bajaba la linea a 115200 antes de que se mandara el byte de cancelacion, asi que ese byte salia a la velocidad equivocada y la placa lo leia como un byte cualquiera. Por Bluetooth la velocidad no se cambia nunca --la fija el modulo-- y por eso ahi el problema no aparecia.
El arreglo. Quien abandona el volcado ya no toca la velocidad. La manda el propio aborto: el byte de cancelacion sale a la velocidad en que la placa escucha, y la linea la sigue de vuelta justo a tiempo de leer el "LOGB aborted" con que la placa confirma que paro.
Cancelar es ademas mas rapido: ya no se pasan dos segundos tragando la cola del volcado antes de mandar la orden de parar.
El mismo fallo estaba en el volcado crudo (Raw log) y se arreglo igual. No hace falta cambiar el firmware.
v1.6 -- Un solo lector del enlace
El terminal ahora muestra lo que la placa dice por su cuenta, sin tener que escribir un comando para que aparezca.
El fallo. Al pulsar RESET, la placa emite todo su bloque de arranque --version, memoria, identificador, hora-- y en pantalla no salia nada. Venia a salir despues, junto y por delante de la respuesta del siguiente comando.
Por que. Un puerto serie tiene un solo flujo de bytes: quien lea primero se los lleva. Cada operacion leia el puerto por su cuenta, asi que la escucha del terminal competia por esas mismas lecturas. Turnarse con un cerrojo no resuelve la competencia, solo la vuelve intermitente.
El arreglo. Ahora lee un unico hilo, siempre, y de ahi consumen todos: las operaciones y el terminal. Lo no solicitado aparece porque ese hilo no deja de leer.
Ademas, las descargas por tramos cortos son mas rapidas: ya no se esperan 120 ms de silencio por tramo cuando el cierre del bloque ya se habia leido.
v1.5 -- El terminal escucha siempre
Requiere firmware 2.2.0 o posterior:
https://github.com/caradag/glaciertemp-firmware/releases/tag/v2.2.0
Corregido
Lo que la placa dice por su cuenta ya sale en el terminal cuando ocurre. Al pulsar
RESET en la placa, todo su bloque de arranque --version, memoria detectada,
identificador, estado de la flash, hora-- se quedaba en el enlace hasta que uno escribia
un comando, y aparecia entonces delante de su respuesta. Ahora el terminal escucha de
forma continua.
Tambien
El comando ID daba solo los 16 digitos del identificador completo; con el firmware
2.2.0 devuelve la misma linea que el arranque, con el corto delante:
Board ID: GT001-556677 (full 0011223344556677)
v1.4 -- Reiniciar el contador
Requiere firmware 2.1.0 o posterior:
https://github.com/caradag/glaciertemp-firmware/releases/tag/v2.1.0
Nuevo
Boton para reiniciar el contador al final de la zona de descarga, con confirmacion.
El aviso explica lo que de verdad pasa, que no es lo que el nombre del comando sugiere:
no borra la flash, mueve el contador a cero. La descarga normal deja de alcanzar los
datos, pero siguen fisicamente ahi hasta que la placa tome mas mediciones, que escriben
desde el principio y los van sobrescribiendo uno a uno.
Esa diferencia importa si uno se equivoca: el volcado crudo todavia puede rescatarlos,
y solo antes de que la placa vuelva a medir.
El dialogo dice cuantos registros hay en juego, y avisa en rojo si no se ha descargado
nada de esa placa todavia.
Tras reiniciar, la app vuelve a leer la cabecera de la placa en vez de fiarse de lo que
tenia guardado, y limpia los datos en pantalla: son de antes del reinicio y dejarlos ahi
invitaria a creer que se pueden volver a descargar.