Terminamos de documentar el código de accion.cpp
y robot.cpp
. Finalmente
ha aparecido algún error que provocaba un mapeo erróneo del laberinto.
Al empezar la primera acción de arranque ya se incrementaba una casilla la cuenta de la posición, y a veces se sincronizaba correctamente al desaparecer la pared derecha, pero a veces no. Se soluciona poniendo como primer estado el de PAUSA INICIAL.
Hemos tenido que añadir una función accion_interrumpe()
que cancela la acción actual.
No quisimos dedicarle más tiempo ahora porque lo que queremos es documentar lo que hay,
pero cuando nos encontrábamos con una pared que no habíamos detectado al entrar en la
casilla, también se controlaba mal el cambio de posición. Por ahora, parece que se soluciona
poniendo también la velocidad final a 0, para que la función accion_cambio_casilla()
no
interprete que efectivamente ha habido un cambio.
Estábamos acostumbrados a compilar con pio run
en otra ventana, pero ya que usamos vim
para compilar, hacemos un fichero Makefile para que funcione la instrucción make
y podamos
invocarla desde vim y utilizar la ventana de quickfix
para movernos rápidamente por los
errores de compilación. Aprovechamos para meter unos cuando comandos que estamos utilizando
continuamente.
PIO := pio run
LOGFILE := /tmp/datos.dat
BTADDR := 98:D3:32:10:90:95
PORT := /dev/rfcomm0
default:
$(PIO)
upload:
$(PIO) --target upload --upload-port=/dev/ttyUSB0
monitor:
pio device monitor --port /dev/ttyUSB0
$(PORT):
@echo "No existe port. Creando bind"
sudo rfcomm bind /dev/rfcomm0 $(PORT)
monitortee: $(PORT)
pio device monitor --port /dev/rfcomm0 | tee $(LOGFILE)
doc:
doxygen