Para recibir los datos necesarios para la visualización desde
el ordenador, hemos implementado un sencillo protocolo para el puerto serie.
Este permite recibir tanto tramas como bytes de comando.
Los bytes de comando son los siguientes:
- 205 – Activar visualización audiorítmica
- 206 – Activar visualización de vúmetro
- 207 – Activar visualización de puntos
- 208 – Activar modo demo de la matriz.
Así mismo, es necesario que reciba tramas de datos con datos
tanto de energía espectral como de notas tocadas por un instrumento. Para ello
se definen las siguientes tramas:
- Trama de energías: 200 + 8 bytes de energía (intervalo 1-100), uno por banda + byte de energía total
- Tramas de instrumentos: hay cuatro canales, el primer byte será 201, 202, 203 o 204 según el canal 0 a 3, y los dos bytes siguientes serán la frecuencia de nota y la intensidad, en escala de 1 a 17, y 1 a 16 respectivamente.
Los canales de instrumentos comentados no son los canales
de instrumentos de la norma MIDI, sino los que nosotros vamos a usar en la
visualización.
Nuestra rutina de recepción se encarga de almacenar estos
datos, y una vez que la trama en recepción se ha completado, activa una
variable flag global para informar al hilo principal del programa. De igual forma, tenemos un contador de bytes recibidos, que es usado por la visualización PopVis.
El esquema del funcionamiento de la rutina de recepción es el siguiente:
El esquema del funcionamiento de la rutina de recepción es el siguiente:
Diagrama de flujo de la rutina de interrupción. |
No hay comentarios:
Publicar un comentario